From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5819 invoked by alias); 28 Sep 2014 15:47:03 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 5799 invoked by uid 89); 28 Sep 2014 15:47:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: na01-by2-obe.outbound.protection.outlook.com Received: from mail-by2on0130.outbound.protection.outlook.com (HELO na01-by2-obe.outbound.protection.outlook.com) (207.46.100.130) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Sun, 28 Sep 2014 15:47:00 +0000 Received: from BN1PR0301MB0628.namprd03.prod.outlook.com (25.160.171.13) by BN1PR0301MB0626.namprd03.prod.outlook.com (25.160.171.11) with Microsoft SMTP Server (TLS) id 15.0.1039.15; Sun, 28 Sep 2014 15:46:57 +0000 Received: from BN1PR0301MB0628.namprd03.prod.outlook.com ([25.160.171.13]) by BN1PR0301MB0628.namprd03.prod.outlook.com ([25.160.171.13]) with mapi id 15.00.1039.011; Sun, 28 Sep 2014 15:46:57 +0000 From: "mihail.nistor@freescale.com" To: Keith Seitz , "gdb-patches@sourceware.org" CC: "mihail.nistor@freescale.com" Subject: RE: [PATCH v2] Bug 17394: we cannot put a break-point at a global function for ASM file Date: Sun, 28 Sep 2014 15:47:00 -0000 Message-ID: <23ca9e13576840e280392b69e5cc7de8@BN1PR0301MB0628.namprd03.prod.outlook.com> References: <1410954786-17690-1-git-send-email-mihail.nistor@freescale.com> <542459B9.9090705@redhat.com> In-Reply-To: <542459B9.9090705@redhat.com> x-ms-exchange-transport-fromentityheader: Hosted x-microsoft-antispam: BCL:0;PCL:0;RULEID:;SRVR:BN1PR0301MB0626; x-forefront-prvs: 03484C0ABF x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(13464003)(24454002)(51914003)(479174003)(76104003)(377454003)(199003)(189002)(64706001)(74316001)(80022003)(21056001)(20776003)(92566001)(10300001)(2656002)(74662003)(81342003)(74502003)(46102003)(79102003)(85852003)(77982003)(83072002)(81542003)(4396001)(87936001)(120916001)(76482002)(19580395003)(83322001)(19580405001)(85306004)(95666004)(101416001)(99286002)(50986999)(76576001)(90102001)(99936001)(31966008)(106116001)(54356999)(76176999)(86362001)(66066001)(97736003)(99396003)(33646002)(105586002)(107046002)(106356001)(108616004)(77096002)(24736002);DIR:OUT;SFP:1102;SCL:1;SRVR:BN1PR0301MB0626;H:BN1PR0301MB0628.namprd03.prod.outlook.com;FPR:;MLV:sfv;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Content-Type: multipart/mixed; boundary="_002_23ca9e13576840e280392b69e5cc7de8BN1PR0301MB0628namprd03_" MIME-Version: 1.0 X-OriginatorOrg: freescale.com X-SW-Source: 2014-09/txt/msg00810.txt.bz2 --_002_23ca9e13576840e280392b69e5cc7de8BN1PR0301MB0628namprd03_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 6931 Hi Keith, Thank you for the time you spent on this patch/problem. I have rewritten th= e test case to be run on the targets that support dwarf2_support. I have al= so changed the location of test case from gdb.arch to gdb.linespec as you recommended. Your changes look very well, I have one little observation regarding the fi= ltering condition when we need to get information from minimal symbol. Scenario: We can mix objects that were compiled/assembled by different vend= ors and the third party assembler provides debug information and it doesn't= have this limitation. An application may contain more than one file that h= ave the same name. We cannot put a breakpoint at a function in all objects = that have the same name if an object that comes from ASM file has debug inf= o and is linked before the objects assembled with the GNU-GAS. In the new t= est case I have tried to emulate the third party assembler behavior in the = break-asm-file1.s. { + int prev_len =3D VEC_length (symbolp, info->result.symbols); /* Program spaces that are executing startup should have been filtered out earlier. */ gdb_assert (!SYMTAB_PSPACE (elt)->executing_startup); set_current_program_space (SYMTAB_PSPACE (elt)); iterate_over_file_blocks (elt, name, VAR_DOMAIN, collect_symbols, info); - /* If no symbols were found and this symtab is in + /* If no new symbols were found in this iteration and this symtab is in assembler, we might actually be looking for a label for which we don't have debug info. Check for a minimal symbol in this case. */ - if (VEC_empty (symbolp, info->result.symbols) + if ((prev_len =3D=3D VEC_length (symbolp, info->result.symbols)) && elt->language =3D=3D language_asm) search_minsyms_for_name (info, name, pspace, elt); } Best regards, Mihai -----Original Message----- From: Keith Seitz [mailto:keiths@redhat.com]=20 Sent: Thursday, September 25, 2014 9:07 PM To: Nistor Mihail-MNISTOR1; gdb-patches@sourceware.org Subject: Re: [PATCH v2] Bug 17394: we cannot put a break-point at a global = function for ASM file Hi, On 09/17/2014 04:53 AM, Mihail-Marian Nistor wrote: > We need to cover the following test case: the user wants to do an=20 > action only for the function that was defined into a selected file name. > An example: the user wants to put a breakpoint only for functions "func" > that was defined in the file name "file.s" > e.i. of gdb command line: b file.s:func Due to the limitation=20 > that the GAS doesn't generate debug info for functions/symbols, we=20 > cannot find the function information if we look only in file symbtabs=20 > that was collected by using the file name specified by the user. > We need to look into a global default symtab if we want to find=20 > minimal information about functions that were written in the ASM file. > And after that, we need to select only functions that were defined=20 > into the file name specified by the user. Thanks for the detailed explanation (and *especially* the test case) -- tho= se have helped me immensely to understand the problem. I spent some time looking into this patch/problem, and I am not quite sure = the proposed solution is the right way to attack this. My current feeling on this is: the behavior of the linespec parser (and coo= rdinating routines) should not behave necessarily any different between the= two use cases "break foo.c:func" and "break foo.s:func".=20 Yet, the former works and the later does not. So I did some digging. Maybe you have already discounted the approach I am = going to suggest -- if so, I would be very interested in hearing about it. When a user specifies a C/C++/Ada/Java/Asm/whatever filename, the linespec = parser starts by building a list of file symtabs for the specified files. All subsequent symbol searches are limited to results in those files/symtab= s. The problem here is that, as you point out, gas does not emit any symbol in= formation for the .s file. Thus, we have a symtab for the file ("info sourc= es" shows the file), but it contains no symbols. When find_linespec_symbols is called in linespec_parse_basic, it calls find= _function_symbols, which uses add_matching_symbols_to_info to collect all m= atching symbols. That function does [pardon any mangled formatting]: for (ix =3D 0; VEC_iterate (symtab_ptr, info->file_symtabs, ix, elt); ++= ix) { if (elt =3D=3D NULL) { iterate_over_all_matching_symtabs (info->state, name, VAR_DOMAIN, collect_symbols, info, pspace, 1); search_minsyms_for_name (info, name, pspace); } else if (pspace =3D=3D NULL || pspace =3D=3D SYMTAB_PSPACE (elt)) { /* Program spaces that are executing startup should have been filtered out earlier. */ gdb_assert (!SYMTAB_PSPACE (elt)->executing_startup); set_current_program_space (SYMTAB_PSPACE (elt)); iterate_over_file_blocks (elt, name, VAR_DOMAIN, collect_symbols, info); } } This iterates over the symtabs. In the failing use case, ELT is non-NULL (p= oints to the symtab for the .s file), so it calls iterate_over_file_blocks.= Herein is where the problem exists: it is assumed that if NAME exists, it = must exist in the given symtab -- a reasonable assumption for "normal" (non= -asm) cases. It never searches minimal symbols (or in the global default sy= mtab). This is where I think where the fix should start. While attempting to convi= nce myself that approach is both appropriate and "correct," I've actually w= ritten a version of your patch which does this. It is important to note that iterating over minsyms is fairly expensive, so= in my patch, I've opted to only search minimal symbols for NAME if the sym= tab's language is language_asm and iterate_over_file_blocks returns no symb= ols. That should, hopefully, mitigate any performance impact this might hav= e. This is especially exasperated by the need to map the address of the minima= l symbol back to its symtab. You'll see this (expensive) added complexity i= n add_minsym. When all is said and done, though, when find_linespec_symbols returns, it w= ill have collated the appropriate symbol from the .s file -- exactly the sa= me way it would have if one had typed "break file.c:func". What do you think about this? Does this fail on any use cases you have? As for the test case, I would very much like to see this important function= ality tested on every platform. I haven't tried it yet myself, but I see th= at some other tests in our test suite use some minimal assembler program wh= ich (presumably) runs on nearly every configuration.=20 See, for example, gdb.dwarf2/dw2-anonymous-func.exp. Your test example is simple enough that it should be fairly trivial to fixu= p. In any case, I would move the test from gdb.arch to gdb.linespec, collectin= g it together with its linespec-specific test brethren. Keith --_002_23ca9e13576840e280392b69e5cc7de8BN1PR0301MB0628namprd03_ Content-Type: application/octet-stream; name="bug_17394_new_test_case.patch" Content-Description: bug_17394_new_test_case.patch Content-Disposition: attachment; filename="bug_17394_new_test_case.patch"; size=16708; creation-date="Sun, 28 Sep 2014 15:45:55 GMT"; modification-date="Sun, 28 Sep 2014 15:45:08 GMT" Content-Transfer-Encoding: base64 Content-length: 22652 RnJvbSA5MTQzYTMwNDNlM2U4MzdiZmFhYzlmNGE4YzBkMWFmYWU2M2I3MTZk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWhhaWwtTWFyaWFu IE5pc3RvciA8bWloYWlsLm5pc3RvckBmcmVlc2NhbGUuY29tPgpEYXRlOiBT dW4sIDI4IFNlcCAyMDE0IDE4OjM2OjUyICswMzAwClN1YmplY3Q6IFtQQVRD SF0gQnVnIDE3Mzk0OiB3ZSBjYW5ub3QgcHV0IGEgYnJlYWstcG9pbnQgYXQg YSBnbG9iYWwgZnVuY3Rpb24KIGZvciBBU00gZmlsZQoKZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKICAgICAgMjAxNC0wOS0xNSAgTWloYWlsLU1hcmlhbiBO aXN0b3IgIDxtaWhhaWwubmlzdG9yQGZyZWVzY2FsZS5jb20+CiAgICAgIFBS IGdkYi8xNzM5NAoJICAgICogZ2RiLmxpbmVzcGVjL2JyZWFrLWFzbS14ODYt ZmlsZTAuczogTmV3IGZpbGUuCgkgICAgKiBnZGIubGluZXNwZWMvYnJlYWst YXNtLXg4Ni1maWxlMS5zOiBOZXcgZmlsZS4KCSAgICAqIGdkYi5saW5lc3Bl Yy9icmVhay1hc20teDg2LWZpbGUuYzogTmV3IGZpbGUuCgkgICAgKiBnZGIu bGluZXNwZWMvYnJlYWstYXNtLXg4Ni1maWxlLmV4cDogTmV3IGZpbGUuCgpT aWduZWQtb2ZmLWJ5OiBNaWhhaWwtTWFyaWFuIE5pc3RvciA8bWloYWlsLm5p c3RvckBmcmVlc2NhbGUuY29tPgotLS0KIGdkYi90ZXN0c3VpdGUvZ2RiLmFy Y2gvYnJlYWstYXNtLWZpbGUuYyAgIHwgIDM1ICsrKysrCiBnZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL2JyZWFrLWFzbS1maWxlLmV4cCB8ICA1NSArKysrKysr CiBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2JyZWFrLWFzbS1maWxlMC5zICB8 IDIxOCArKysrKysrKysrKysrKysrKysrKysrKysrKwogZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC9icmVhay1hc20tZmlsZTEucyAgfCAyNDQgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDU1MiBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC9icmVhay1hc20tZmlsZS5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9icmVhay1hc20tZmlsZS5leHAK IGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2Jy ZWFrLWFzbS1maWxlMC5zCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC9icmVhay1hc20tZmlsZTEucwoKZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYnJlYWstYXNtLWZpbGUuYyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmFyY2gvYnJlYWstYXNtLWZpbGUuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjU3MjZiCi0tLSAvZGV2 L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9icmVhay1hc20t ZmlsZS5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qIFRoaXMgdGVzdGNhc2UgaXMg cGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENvcHlyaWdo dCAyMDA0LTIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisK KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKK3ZvaWQgZnVuYzMoKTsK K3ZvaWQgZnVuYzIoKTsKKworc3RhdGljIGZ1bmMoKQoreworfQorCit2b2lk IGZ1bmMxKCkKK3sKKyAgZnVuYzMoKTsKKyAgZnVuYzIoKTsKKyAgZnVuYygp OworfQorCitpbnQgbWFpbigpCit7CisgIGZ1bmMxKCk7Cit9CmRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2JyZWFrLWFzbS1maWxlLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYnJlYWstYXNtLWZpbGUuZXhw Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxMTI5YzMK LS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2Jy ZWFrLWFzbS1maWxlLmV4cApAQCAtMCwwICsxLDU1IEBACisjIENvcHlyaWdo dCAyMDEyLTIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisK KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisKKyMgQnVnIDE3Mzk0CisjIFRlc3QgZm9yIGJy ZWFrLXBvaW50IGF0IGEgZnVuY3Rpb24gb25seSBmb3IgYSBzZWxlY3RlZCBB U00gZmlsZS4KKworbG9hZF9saWIgZHdhcmYuZXhwIAorCitzdGFuZGFyZF90 ZXN0ZmlsZSAuYworc2V0IGV4ZWNmaWxlICR0ZXN0ZmlsZQorc2V0IGFzbV9m aWxlMSBicmVhay1hc20tZmlsZTEucworc2V0IGFzbV9maWxlMCBicmVhay1h c20tZmlsZTAucworCisjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24g dGFyZ2V0cyB3aGljaCBzdXBwb3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCitp ZiB7IVtkd2FyZjJfc3VwcG9ydF19IHsKKyAgICByZXR1cm4gMAorfQorCitp ZiB7W3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICRleGVj ZmlsZSBcCisJIFtsaXN0ICRzcmNmaWxlICRhc21fZmlsZTEgJGFzbV9maWxl MF0gXAorCSB7ZGVidWcgbm93YXJuaW5ncyBvcHRpbWl6ZT0tTzB9XX0gewor ICAgIHVudGVzdGVkICJTa2lwcGluZyAke3Rlc3RmaWxlfS4iCisgICAgcmV0 dXJuCit9CisKK2NsZWFuX3Jlc3RhcnQgJGV4ZWNmaWxlCisKK2dkYl90ZXN0 ICJicmVhayBhLyRhc21fZmlsZTA6ZnVuYyIgXAorICAgICJCcmVha3BvaW50 IDEgYXQgMHhcWzAtOWEtZkEtRlxdKzogZmlsZSAuKmEvJGFzbV9maWxlMCwg bGluZSA3XFxcLiIgXAorICAgICJzZXQgYSBicmVhay1wb2ludCBhdCBhIGds b2JhbCBmdW5jdGlvbiBvbmx5IGZvciBhIHNlbGVjdGVkIEFTTSBmaWxlLiIK KworZ2RiX3Rlc3QgImRlbGV0ZSAxIgorCitnZGJfdGVzdCAiYnJlYWsgYi8k YXNtX2ZpbGUwOmZ1bmMiIFwKKyAgICAiQnJlYWtwb2ludCAyIGF0IDB4XFsw LTlhLWZBLUZcXSs6IGZpbGUgLipiLyRhc21fZmlsZTAsIGxpbmUgN1xcXC4i IFwKKyAgICAic2V0IGEgYnJlYWstcG9pbnQgYXQgYSBmdW5jdGlvbiBvbmx5 IGZvciBhIHNlbGVjdGVkIEFTTSBmaWxlLiIKKworZ2RiX3Rlc3QgImRlbGV0 ZSAyIgorCitnZGJfdGVzdCAiYnJlYWsgJGFzbV9maWxlMDpmdW5jIiBcCisg ICAgIkJyZWFrcG9pbnQgMyBhdCAweFxbMC05YS1mQS1GXF0rOiAuKiRhc21f ZmlsZTAuKigyIGxvY2F0aW9ucykuKiIgXAorICAgICJzZXQgYSBicmVhay1w b2ludCBhdCBmdW5jdGlvbiBpbiBhbGwgaW5zdGFuY2VzIGZvciBhIHNlbGVj dGVkIEFTTSBmaWxlLiIKKwpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC9icmVhay1hc20tZmlsZTAucyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gvYnJlYWstYXNtLWZpbGUwLnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uM2FjNzc2NwotLS0gL2Rldi9udWxsCisrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmFyY2gvYnJlYWstYXNtLWZpbGUwLnMKQEAgLTAs MCArMSwyMTggQEAKKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIs IHRoZSBHTlUgZGVidWdnZXIuCisKKyAgIENvcHlyaWdodCAyMDA0LTIwMTQg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAg IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisKKwkuZmlsZSAiYS9icmVhay1hc20tZmlsZTAu cyIKKwkudGV4dAorLkxiZWdpbl90ZXh0MToKKwkuZ2xvYmwgX2Z1bmMyCitf ZnVuYzI6CisJLmdsb2JsIGZ1bmMyCisJLnR5cGUgZnVuYzIsICVmdW5jdGlv bgorZnVuYzI6CisuTGJlZ2luX2Z1bmMyOgorCS5pbnQgMAorCS5pbnQgMAor LkxlbmRfZnVuYzI6CisJLnNpemUgZnVuYzIsIC4tZnVuYzIKKwkuZ2xvYmwg X2Z1bmMKK19mdW5jOgorICAuZ2xvYmwgZnVuYworCS50eXBlIGZ1bmMsICVm dW5jdGlvbgorZnVuYzoKKy5MYmVnaW5fZnVuYzoKKwkuZmlsZSAxICJhL2Jy ZWFrLWFzbS1maWxlMC5zIgorCS5pbnQgMAorCS5pbnQgMAorLkxlbmRfZnVu YzoKKwkuc2l6ZSBmdW5jLCAuLWZ1bmMKKy5MZW5kX3RleHQxOgorCisvKiBE ZWJ1ZyBpbmZvcm1hdGlvbiAqLworCisJLnNlY3Rpb24gLmRlYnVnX2luZm8K Ky5MY3UxX2JlZ2luOgorCS8qIENVIGhlYWRlciAqLworCS40Ynl0ZQkuTGN1 MV9lbmQgLSAuTGN1MV9zdGFydAkJLyogTGVuZ3RoIG9mIENvbXBpbGF0aW9u IFVuaXQgKi8KKy5MY3UxX3N0YXJ0OgorCS4yYnl0ZQkyCQkJCS8qIERXQVJG IFZlcnNpb24gKi8KKwkuNGJ5dGUJLkxhYmJyZXYxX2JlZ2luCQkJLyogT2Zm c2V0IGludG8gYWJicmV2IHNlY3Rpb24gKi8KKwkuYnl0ZQk0CQkJCS8qIFBv aW50ZXIgc2l6ZSAqLworCisJLyogQ1UgZGllICovCisJLnVsZWIxMjggMQkJ CQkvKiBBYmJyZXY6IERXX1RBR19jb21waWxlX3VuaXQgKi8KKwkuNGJ5dGUJ LkxsaW5lMV9iZWdpbgkJCS8qIERXX0FUX3N0bXRfbGlzdCAqLworCS40Ynl0 ZQkuTGVuZF90ZXh0MQkJCS8qIERXX0FUX2hpZ2hfcGMgKi8KKwkuNGJ5dGUJ LkxiZWdpbl90ZXh0MQkJCS8qIERXX0FUX2xvd19wYyAqLworCS5hc2NpaQki YS9icmVhay1hc20tZmlsZTAuc1wwIgkJCS8qIERXX0FUX25hbWUgKi8KKwku YXNjaWkJIkdOVSBDIDMuMy4zXDAiCQkJLyogRFdfQVRfcHJvZHVjZXIgKi8K KwkuMmJ5dGUJMHg4MDAxCQkJCS8qIERXX0FUX2xhbmd1YWdlIChNaXBzIEFz c2VtYmxlcikgKi8KKworCS5ieXRlCQkwCQkJLyogRW5kIG9mIGNoaWxkcmVu IG9mIENVICovCisKKy5MY3UxX2VuZDoKKworLyogQWJicmV2IHRhYmxlICov CisJLnNlY3Rpb24gLmRlYnVnX2FiYnJldgorLkxhYmJyZXYxX2JlZ2luOgor CS51bGViMTI4CTEJCQkvKiBBYmJyZXYgY29kZSAqLworCS51bGViMTI4CTB4 MTEJCQkvKiBEV19UQUdfY29tcGlsZV91bml0ICovCisJLmJ5dGUJCTEJCQkv KiBoYXNfY2hpbGRyZW4gKi8KKwkudWxlYjEyOAkweDEwCQkJLyogRFdfQVRf c3RtdF9saXN0ICovCisJLnVsZWIxMjgJMHg2CQkJLyogRFdfRk9STV9kYXRh NCAqLworCS51bGViMTI4CTB4MTIJCQkvKiBEV19BVF9oaWdoX3BjICovCisJ LnVsZWIxMjgJMHgxCQkJLyogRFdfRk9STV9hZGRyICovCisJLnVsZWIxMjgJ MHgxMQkJCS8qIERXX0FUX2xvd19wYyAqLworCS51bGViMTI4CTB4MQkJCS8q IERXX0ZPUk1fYWRkciAqLworCS51bGViMTI4CTB4MwkJCS8qIERXX0FUX25h bWUgKi8KKwkudWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLwor CS51bGViMTI4CTB4MjUJCQkvKiBEV19BVF9wcm9kdWNlciAqLworCS51bGVi MTI4CTB4OAkJCS8qIERXX0ZPUk1fc3RyaW5nICovCisJLnVsZWIxMjgJMHgx MwkJCS8qIERXX0FUX2xhbmd1YWdlICovCisJLnVsZWIxMjgJMHg1CQkJLyog RFdfRk9STV9kYXRhMiAqLworCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9y ICovCisJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKworCS51bGVi MTI4CTIJCQkvKiBBYmJyZXYgY29kZSAqLworCS51bGViMTI4CTB4MmUJCQkv KiBEV19UQUdfc3VicHJvZ3JhbSAqLworCS5ieXRlCQkwCQkJLyogaGFzX2No aWxkcmVuICovCisJLnVsZWIxMjgJMHgzZgkJCS8qIERXX0FUX2V4dGVybmFs ICovCisJLnVsZWIxMjgJMHhjCQkJLyogRFdfRk9STV9mbGFnICovCisJLnVs ZWIxMjgJMHgzYQkJCS8qIERXX0FUX2RlY2xfZmlsZSAqLworCS51bGViMTI4 CTB4YgkJCS8qIERXX0ZPUk1fZGF0YTEgKi8KKwkudWxlYjEyOAkweDNiCQkJ LyogRFdfQVRfZGVjbF9saW5lICovCisJLnVsZWIxMjgJMHhiCQkJLyogRFdf Rk9STV9kYXRhMSAqLworCS51bGViMTI4CTB4MwkJCS8qIERXX0FUX25hbWUg Ki8KKwkudWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworCS51 bGViMTI4CTB4NDkJCQkvKiBEV19BVF90eXBlICovCisJLnVsZWIxMjgJMHgx MwkJCS8qIERXX0ZPUk1fcmVmNCAqLworCS51bGViMTI4CTB4MTEJCQkvKiBE V19BVF9sb3dfcGMgKi8KKwkudWxlYjEyOAkweDEJCQkvKiBEV19GT1JNX2Fk ZHIgKi8KKwkudWxlYjEyOAkweDEyCQkJLyogRFdfQVRfaGlnaF9wYyAqLwor CS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1fYWRkciAqLworCS51bGViMTI4 CTB4NDAJCQkvKiBEV19BVF9mcmFtZV9iYXNlICovCisJLnVsZWIxMjgJMHhh CQkJLyogRFdfRk9STV9ibG9jazEgKi8KKwkuYnl0ZQkJMHgwCQkJLyogVGVy bWluYXRvciAqLworCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisK KwkudWxlYjEyOAkzCQkJLyogQWJicmV2IGNvZGUgKi8KKwkudWxlYjEyOAkw eDI0CQkJLyogRFdfVEFHX2Jhc2VfdHlwZSAqLworCS5ieXRlCQkwCQkJLyog aGFzX2NoaWxkcmVuICovCisJLnVsZWIxMjgJMHgzCQkJLyogRFdfQVRfbmFt ZSAqLworCS51bGViMTI4CTB4OAkJCS8qIERXX0ZPUk1fc3RyaW5nICovCisJ LnVsZWIxMjgJMHhiCQkJLyogRFdfQVRfYnl0ZV9zaXplICovCisJLnVsZWIx MjgJMHhiCQkJLyogRFdfRk9STV9kYXRhMSAqLworCS51bGViMTI4CTB4M2UJ CQkvKiBEV19BVF9lbmNvZGluZyAqLworCS51bGViMTI4CTB4YgkJCS8qIERX X0ZPUk1fZGF0YTEgKi8KKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAq LworCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisKKwkuYnl0ZQkJ MHgwCQkJLyogVGVybWluYXRvciAqLworCS5ieXRlCQkweDAJCQkvKiBUZXJt aW5hdG9yICovCisKKy8qIExpbmUgdGFibGUgKi8KKwkuc2VjdGlvbiAuZGVi dWdfbGluZQorLkxsaW5lMV9iZWdpbjoKKwkuNGJ5dGUJCS5MbGluZTFfZW5k IC0gLkxsaW5lMV9zdGFydAkvKiBJbml0aWFsIGxlbmd0aCAqLworLkxsaW5l MV9zdGFydDoKKwkuMmJ5dGUJCTIJCQkvKiBWZXJzaW9uICovCisJLjRieXRl CQkuTGxpbmUxX2xpbmVzIC0gLkxsaW5lMV9oZHIJLyogaGVhZGVyX2xlbmd0 aCAqLworLkxsaW5lMV9oZHI6CisJLmJ5dGUJCTEJCQkvKiBNaW5pbXVtIGlu c24gbGVuZ3RoICovCisJLmJ5dGUJCTEJCQkvKiBkZWZhdWx0X2lzX3N0bXQg Ki8KKwkuYnl0ZQkJMQkJCS8qIGxpbmVfYmFzZSAqLworCS5ieXRlCQkxCQkJ LyogbGluZV9yYW5nZSAqLworCS5ieXRlCQkweDEwCQkJLyogb3Bjb2RlX2Jh c2UgKi8KKworCS8qIFN0YW5kYXJkIGxlbmd0aHMgKi8KKwkuYnl0ZQkJMAor CS5ieXRlCQkxCisJLmJ5dGUJCTEKKwkuYnl0ZQkJMQorCS5ieXRlCQkxCisJ LmJ5dGUJCTAKKwkuYnl0ZQkJMAorCS5ieXRlCQkwCisJLmJ5dGUJCTEKKwku Ynl0ZQkJMAorCS5ieXRlCQkwCisJLmJ5dGUJCTEKKwkuYnl0ZQkJMAorCS5i eXRlCQkwCisJLmJ5dGUJCTAKKworCS8qIEluY2x1ZGUgZGlyZWN0b3JpZXMg Ki8KKwkuYnl0ZQkJMAorCisJLyogRmlsZSBuYW1lcyAqLworCS5hc2NpaQkJ ImEvYnJlYWstYXNtLWZpbGUwLnNcMCIKKwkudWxlYjEyOAkwCisJLnVsZWIx MjgJMAorCS51bGViMTI4CTAKKworCS5ieXRlCQkwCisKKy5MbGluZTFfbGlu ZXM6CisJLmJ5dGUJCTAJLyogRFdfTE5FX3NldF9hZGRyZXNzICovCisJLnVs ZWIxMjgJNQorCS5ieXRlCQkyCisJLjRieXRlCQkuTGJlZ2luX2Z1bmMyCisK KwkuYnl0ZQkJMwkvKiBEV19MTlNfYWR2YW5jZV9saW5lICovCisJLnNsZWIx MjgJMQkvKiAuLi4gdG8gMiAqLworCisJLmJ5dGUJCTEJLyogRFdfTE5TX2Nv cHkgKi8KKworICAuYnl0ZQkJMAkvKiBEV19MTkVfc2V0X2FkZHJlc3MgKi8K KwkudWxlYjEyOAk1CisJLmJ5dGUJCTIKKwkuNGJ5dGUJCS5MYmVnaW5fZnVu YzIrMQorCisJLmJ5dGUJCTMJLyogRFdfTE5TX2FkdmFuY2VfbGluZSAqLwor CS5zbGViMTI4CTEJLyogLi4uIHRvIDMgKi8KKworCS5ieXRlCQkxCS8qIERX X0xOU19jb3B5ICovCisJCisJLmJ5dGUJCTAJLyogRFdfTE5FX3NldF9hZGRy ZXNzICovCisJLnVsZWIxMjgJNQorCS5ieXRlCQkyCisJLjRieXRlCQkuTGJl Z2luX2Z1bmMKKworICAuYnl0ZQkJMwkvKiBEV19MTlNfYWR2YW5jZV9saW5l ICovCisJLnNsZWIxMjgJNAkvKiAuLi4gdG8gNyAqLworCisJLmJ5dGUJCTEJ LyogRFdfTE5TX2NvcHkgKi8KKworCS5ieXRlCQkwCS8qIERXX0xORV9zZXRf YWRkcmVzcyAqLworCS51bGViMTI4CTUKKwkuYnl0ZQkJMgorCS40Ynl0ZQkJ LkxiZWdpbl9mdW5jKzIKKworICAuYnl0ZQkJMwkvKiBEV19MTlNfYWR2YW5j ZV9saW5lICovCisJLnNsZWIxMjgJMQkvKiAuLi4gdG8gOCAqLworCisJLmJ5 dGUJCTEJLyogRFdfTE5TX2NvcHkgKi8KKworICAuYnl0ZQkJMAkvKiBEV19M TkVfc2V0X2FkZHJlc3MgKi8KKwkudWxlYjEyOAk1CisJLmJ5dGUJCTIKKwku NGJ5dGUJCS5MZW5kX2Z1bmMKKworCS5ieXRlCQkwCS8qIERXX0xORV9lbmRf b2Zfc2VxdWVuY2UgKi8KKwkudWxlYjEyOAkxCisJLmJ5dGUJCTEKKworLkxs aW5lMV9lbmQ6CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNo L2JyZWFrLWFzbS1maWxlMS5zIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9i cmVhay1hc20tZmlsZTEucwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi40Mzc1Mjk1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC9icmVhay1hc20tZmlsZTEucwpAQCAtMCwwICsxLDI0 NCBAQAorLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdO VSBkZWJ1Z2dlci4KKworICAgQ29weXJpZ2h0IDIwMDQtMjAxNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LiAgKi8KKworCS50ZXh0CisuTGJlZ2luX3RleHQxOgorCS5nbG9ibCBf ZnVuYzMKK19mdW5jMzoKKwkuZ2xvYmwgZnVuYzMKKwkudHlwZSBmdW5jMywg JWZ1bmN0aW9uCitmdW5jMzoKKy5MYmVnaW5fZnVuYzM6CisJLmludCAwCisJ LmludCAwCisuTGVuZF9mdW5jMzoKKwkuc2l6ZSBmdW5jMywgLi1mdW5jMwor X2Z1bmM6CisJLnR5cGUgZnVuYywgJWZ1bmN0aW9uCitmdW5jOgorLkxiZWdp bl9mdW5jOgorCS5pbnQgMAorCS5pbnQgMAorLkxlbmRfZnVuYzoKKwkuc2l6 ZSBmdW5jLCAuLWZ1bmMKKy5MZW5kX3RleHQxOgorCisvKiBEZWJ1ZyBpbmZv cm1hdGlvbiAqLworCisJLnNlY3Rpb24gLmRlYnVnX2luZm8KKy5MY3UxX2Jl Z2luOgorCS8qIENVIGhlYWRlciAqLworCS40Ynl0ZQkuTGN1MV9lbmQgLSAu TGN1MV9zdGFydAkJLyogTGVuZ3RoIG9mIENvbXBpbGF0aW9uIFVuaXQgKi8K Ky5MY3UxX3N0YXJ0OgorCS4yYnl0ZQkyCQkJCS8qIERXQVJGIFZlcnNpb24g Ki8KKwkuNGJ5dGUJLkxhYmJyZXYxX2JlZ2luCQkJLyogT2Zmc2V0IGludG8g YWJicmV2IHNlY3Rpb24gKi8KKwkuYnl0ZQk0CQkJCS8qIFBvaW50ZXIgc2l6 ZSAqLworCisJLyogQ1UgZGllICovCisJLnVsZWIxMjggMQkJCQkvKiBBYmJy ZXY6IERXX1RBR19jb21waWxlX3VuaXQgKi8KKwkuNGJ5dGUJLkxsaW5lMV9i ZWdpbgkJCS8qIERXX0FUX3N0bXRfbGlzdCAqLworCS40Ynl0ZQkuTGVuZF90 ZXh0MQkJCS8qIERXX0FUX2hpZ2hfcGMgKi8KKwkuNGJ5dGUJLkxiZWdpbl90 ZXh0MQkJCS8qIERXX0FUX2xvd19wYyAqLworCS5hc2NpaQkiYi9icmVhay1h c20tZmlsZTAuc1wwIgkJCS8qIERXX0FUX25hbWUgKi8KKwkuYXNjaWkJIkdO VSBDIDMuMy4zXDAiCQkJLyogRFdfQVRfcHJvZHVjZXIgKi8KKwkuMmJ5dGUJ MHg4MDAxCQkJCS8qIERXX0FUX2xhbmd1YWdlIChNaXBzIEFzc2VtYmxlcikg Ki8KKworCS8qIGZ1bmMzICovCisJLnVsZWIxMjgJMgkJCS8qIEFiYnJldjog RFdfVEFHX3N1YnByb2dyYW0gKi8KKwkuYnl0ZQkJMQkJCS8qIERXX0FUX2V4 dGVybmFsICovCisJLmJ5dGUJCTEJCQkvKiBEV19BVF9kZWNsX2ZpbGUgKi8K KwkuYnl0ZQkJMgkJCS8qIERXX0FUX2RlY2xfbGluZSAqLworCS5hc2NpaQkJ ImZ1bmMzXDAiCQkvKiBEV19BVF9uYW1lICovCisJLjRieXRlCQkuTHR5cGVf aW50LS5MY3UxX2JlZ2luCS8qIERXX0FUX3R5cGUgKi8KKwkuNGJ5dGUJCS5M YmVnaW5fZnVuYzMJLyogRFdfQVRfbG93X3BjICovCisJLjRieXRlCQkuTGVu ZF9mdW5jMwkJLyogRFdfQVRfaGlnaF9wYyAqLworCS5ieXRlCQkxCQkJLyog RFdfQVRfZnJhbWVfYmFzZTogbGVuZ3RoICovCisJLmJ5dGUJCTB4NTUJCQkv KiBEV19BVF9mcmFtZV9iYXNlOiBEV19PUF9yZWc1ICovCisKKwkvKiBmdW5j ICovCisJLnVsZWIxMjgJMgkJCS8qIEFiYnJldjogRFdfVEFHX3N1YnByb2dy YW0gKi8KKwkuYnl0ZQkJMAkJCS8qIERXX0FUX2V4dGVybmFsICovCisJLmJ5 dGUJCTEJCQkvKiBEV19BVF9kZWNsX2ZpbGUgKi8KKwkuYnl0ZQkJNAkJCS8q IERXX0FUX2RlY2xfbGluZSAqLworCS5hc2NpaQkJImZ1bmNcMCIJCS8qIERX X0FUX25hbWUgKi8KKwkuNGJ5dGUJCS5MdHlwZV9pbnQtLkxjdTFfYmVnaW4J LyogRFdfQVRfdHlwZSAqLworCS40Ynl0ZQkJLkxiZWdpbl9mdW5jCS8qIERX X0FUX2xvd19wYyAqLworCS40Ynl0ZQkJLkxlbmRfZnVuYwkJLyogRFdfQVRf aGlnaF9wYyAqLworCS5ieXRlCQkxCQkJLyogRFdfQVRfZnJhbWVfYmFzZTog bGVuZ3RoICovCisJLmJ5dGUJCTB4NTUJCQkvKiBEV19BVF9mcmFtZV9iYXNl OiBEV19PUF9yZWc1ICovCisKKy5MdHlwZV9pbnQ6CisJLnVsZWIxMjgJMwkJ CS8qIEFiYnJldjogRFdfVEFHX2Jhc2VfdHlwZSAqLworCS5hc2NpaQkJImlu dFwwIgkJCS8qIERXX0FUX25hbWUgKi8KKwkuYnl0ZQkJNAkJCS8qIERXX0FU X2J5dGVfc2l6ZSAqLworCS5ieXRlCQk1CQkJLyogRFdfQVRfZW5jb2Rpbmcg Ki8KKworCS5ieXRlCQkwCQkJLyogRW5kIG9mIGNoaWxkcmVuIG9mIENVICov CisKKy5MY3UxX2VuZDoKKworLyogQWJicmV2IHRhYmxlICovCisJLnNlY3Rp b24gLmRlYnVnX2FiYnJldgorLkxhYmJyZXYxX2JlZ2luOgorCS51bGViMTI4 CTEJCQkvKiBBYmJyZXYgY29kZSAqLworCS51bGViMTI4CTB4MTEJCQkvKiBE V19UQUdfY29tcGlsZV91bml0ICovCisJLmJ5dGUJCTEJCQkvKiBoYXNfY2hp bGRyZW4gKi8KKwkudWxlYjEyOAkweDEwCQkJLyogRFdfQVRfc3RtdF9saXN0 ICovCisJLnVsZWIxMjgJMHg2CQkJLyogRFdfRk9STV9kYXRhNCAqLworCS51 bGViMTI4CTB4MTIJCQkvKiBEV19BVF9oaWdoX3BjICovCisJLnVsZWIxMjgJ MHgxCQkJLyogRFdfRk9STV9hZGRyICovCisJLnVsZWIxMjgJMHgxMQkJCS8q IERXX0FUX2xvd19wYyAqLworCS51bGViMTI4CTB4MQkJCS8qIERXX0ZPUk1f YWRkciAqLworCS51bGViMTI4CTB4MwkJCS8qIERXX0FUX25hbWUgKi8KKwku dWxlYjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworCS51bGViMTI4 CTB4MjUJCQkvKiBEV19BVF9wcm9kdWNlciAqLworCS51bGViMTI4CTB4OAkJ CS8qIERXX0ZPUk1fc3RyaW5nICovCisJLnVsZWIxMjgJMHgxMwkJCS8qIERX X0FUX2xhbmd1YWdlICovCisJLnVsZWIxMjgJMHg1CQkJLyogRFdfRk9STV9k YXRhMiAqLworCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisJLmJ5 dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKworCS51bGViMTI4CTIJCQkv KiBBYmJyZXYgY29kZSAqLworCS51bGViMTI4CTB4MmUJCQkvKiBEV19UQUdf c3VicHJvZ3JhbSAqLworCS5ieXRlCQkwCQkJLyogaGFzX2NoaWxkcmVuICov CisJLnVsZWIxMjgJMHgzZgkJCS8qIERXX0FUX2V4dGVybmFsICovCisJLnVs ZWIxMjgJMHhjCQkJLyogRFdfRk9STV9mbGFnICovCisJLnVsZWIxMjgJMHgz YQkJCS8qIERXX0FUX2RlY2xfZmlsZSAqLworCS51bGViMTI4CTB4YgkJCS8q IERXX0ZPUk1fZGF0YTEgKi8KKwkudWxlYjEyOAkweDNiCQkJLyogRFdfQVRf ZGVjbF9saW5lICovCisJLnVsZWIxMjgJMHhiCQkJLyogRFdfRk9STV9kYXRh MSAqLworCS51bGViMTI4CTB4MwkJCS8qIERXX0FUX25hbWUgKi8KKwkudWxl YjEyOAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworCS51bGViMTI4CTB4 NDkJCQkvKiBEV19BVF90eXBlICovCisJLnVsZWIxMjgJMHgxMwkJCS8qIERX X0ZPUk1fcmVmNCAqLworCS51bGViMTI4CTB4MTEJCQkvKiBEV19BVF9sb3df cGMgKi8KKwkudWxlYjEyOAkweDEJCQkvKiBEV19GT1JNX2FkZHIgKi8KKwku dWxlYjEyOAkweDEyCQkJLyogRFdfQVRfaGlnaF9wYyAqLworCS51bGViMTI4 CTB4MQkJCS8qIERXX0ZPUk1fYWRkciAqLworCS51bGViMTI4CTB4NDAJCQkv KiBEV19BVF9mcmFtZV9iYXNlICovCisJLnVsZWIxMjgJMHhhCQkJLyogRFdf Rk9STV9ibG9jazEgKi8KKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAq LworCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisKKwkudWxlYjEy OAkzCQkJLyogQWJicmV2IGNvZGUgKi8KKwkudWxlYjEyOAkweDI0CQkJLyog RFdfVEFHX2Jhc2VfdHlwZSAqLworCS5ieXRlCQkwCQkJLyogaGFzX2NoaWxk cmVuICovCisJLnVsZWIxMjgJMHgzCQkJLyogRFdfQVRfbmFtZSAqLworCS51 bGViMTI4CTB4OAkJCS8qIERXX0ZPUk1fc3RyaW5nICovCisJLnVsZWIxMjgJ MHhiCQkJLyogRFdfQVRfYnl0ZV9zaXplICovCisJLnVsZWIxMjgJMHhiCQkJ LyogRFdfRk9STV9kYXRhMSAqLworCS51bGViMTI4CTB4M2UJCQkvKiBEV19B VF9lbmNvZGluZyAqLworCS51bGViMTI4CTB4YgkJCS8qIERXX0ZPUk1fZGF0 YTEgKi8KKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworCS5ieXRl CQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisKKwkuYnl0ZQkJMHgwCQkJLyog VGVybWluYXRvciAqLworCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICov CisKKy8qIExpbmUgdGFibGUgKi8KKwkuc2VjdGlvbiAuZGVidWdfbGluZQor LkxsaW5lMV9iZWdpbjoKKwkuNGJ5dGUJCS5MbGluZTFfZW5kIC0gLkxsaW5l MV9zdGFydAkvKiBJbml0aWFsIGxlbmd0aCAqLworLkxsaW5lMV9zdGFydDoK KwkuMmJ5dGUJCTIJCQkvKiBWZXJzaW9uICovCisJLjRieXRlCQkuTGxpbmUx X2xpbmVzIC0gLkxsaW5lMV9oZHIJLyogaGVhZGVyX2xlbmd0aCAqLworLkxs aW5lMV9oZHI6CisJLmJ5dGUJCTEJCQkvKiBNaW5pbXVtIGluc24gbGVuZ3Ro ICovCisJLmJ5dGUJCTEJCQkvKiBkZWZhdWx0X2lzX3N0bXQgKi8KKwkuYnl0 ZQkJMQkJCS8qIGxpbmVfYmFzZSAqLworCS5ieXRlCQkxCQkJLyogbGluZV9y YW5nZSAqLworCS5ieXRlCQkweDEwCQkJLyogb3Bjb2RlX2Jhc2UgKi8KKwor CS8qIFN0YW5kYXJkIGxlbmd0aHMgKi8KKwkuYnl0ZQkJMAorCS5ieXRlCQkx CisJLmJ5dGUJCTEKKwkuYnl0ZQkJMQorCS5ieXRlCQkxCisJLmJ5dGUJCTAK KwkuYnl0ZQkJMAorCS5ieXRlCQkwCisJLmJ5dGUJCTEKKwkuYnl0ZQkJMAor CS5ieXRlCQkwCisJLmJ5dGUJCTEKKwkuYnl0ZQkJMAorCS5ieXRlCQkwCisJ LmJ5dGUJCTAKKworCS8qIEluY2x1ZGUgZGlyZWN0b3JpZXMgKi8KKwkuYnl0 ZQkJMAorCisJLyogRmlsZSBuYW1lcyAqLworCS5hc2NpaQkJImIvYnJlYWst YXNtLWZpbGUwLnNcMCIKKwkudWxlYjEyOAkwCisJLnVsZWIxMjgJMAorCS51 bGViMTI4CTAKKworCS5ieXRlCQkwCisKKy5MbGluZTFfbGluZXM6CisJLmJ5 dGUJCTAJLyogRFdfTE5FX3NldF9hZGRyZXNzICovCisJLnVsZWIxMjgJNQor CS5ieXRlCQkyCisJLjRieXRlCQkuTGJlZ2luX2Z1bmMzCisKKwkuYnl0ZQkJ MwkvKiBEV19MTlNfYWR2YW5jZV9saW5lICovCisJLnNsZWIxMjgJMQkvKiAu Li4gdG8gMiAqLworCisJLmJ5dGUJCTEJLyogRFdfTE5TX2NvcHkgKi8KKwor CS5ieXRlCQkwCS8qIERXX0xORV9zZXRfYWRkcmVzcyAqLworCS51bGViMTI4 CTUKKwkuYnl0ZQkJMgorCS40Ynl0ZQkJLkxiZWdpbl9mdW5jMysxCisKKwku Ynl0ZQkJMwkvKiBEV19MTlNfYWR2YW5jZV9saW5lICovCisJLnNsZWIxMjgJ MQkvKiAuLi4gdG8gMyAqLworCisJLmJ5dGUJCTEJLyogRFdfTE5TX2NvcHkg Ki8KKwkKKwkuYnl0ZQkJMAkvKiBEV19MTkVfc2V0X2FkZHJlc3MgKi8KKwku dWxlYjEyOAk1CisJLmJ5dGUJCTIKKwkuNGJ5dGUJCS5MYmVnaW5fZnVuYwor CisgIC5ieXRlCQkzCS8qIERXX0xOU19hZHZhbmNlX2xpbmUgKi8KKwkuc2xl YjEyOAk0CS8qIC4uLiB0byA3ICovCisKKwkuYnl0ZQkJMQkvKiBEV19MTlNf Y29weSAqLworCisJLmJ5dGUJCTAJLyogRFdfTE5FX3NldF9hZGRyZXNzICov CisJLnVsZWIxMjgJNQorCS5ieXRlCQkyCisJLjRieXRlCQkuTGJlZ2luX2Z1 bmMrMQorCisgIC5ieXRlCQkzCS8qIERXX0xOU19hZHZhbmNlX2xpbmUgKi8K Kwkuc2xlYjEyOAkxCS8qIC4uLiB0byA4ICovCisKKwkuYnl0ZQkJMQkvKiBE V19MTlNfY29weSAqLworCQorICAuYnl0ZQkJMAkvKiBEV19MTkVfc2V0X2Fk ZHJlc3MgKi8KKwkudWxlYjEyOAk1CisJLmJ5dGUJCTIKKwkuNGJ5dGUJCS5M ZW5kX2Z1bmMKKwkKKwkuYnl0ZQkJMAkvKiBEV19MTkVfZW5kX29mX3NlcXVl bmNlICovCisJLnVsZWIxMjgJMQorCS5ieXRlCQkxCisKKy5MbGluZTFfZW5k OgotLSAKMS45LjEKCg== --_002_23ca9e13576840e280392b69e5cc7de8BN1PR0301MB0628namprd03_--