From owner-freebsd-bugs Sat Jun 8 0:53:20 2002 Delivered-To: freebsd-bugs@freebsd.org Received: from finone.ulp.co.il (line133-201.adsl.actcom.co.il [192.115.133.201]) by hub.freebsd.org (Postfix) with ESMTP id 7F04437B41C; Sat, 8 Jun 2002 00:48:31 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by finone.km.dshapiro.org (8.12.3/8.12.3) with ESMTP id g57L5Uht038048; Sat, 8 Jun 2002 00:05:31 +0300 (IDT) (envelope-from kesor@mail.ru) Date: Sat, 8 Jun 2002 00:05:30 +0300 (IDT) From: ezislis X-X-Sender: kesor@finone.km.dshapiro.org To: fs@freebsd.org Cc: bugs@freebsd.org Subject: File corruption on FAT32 partitions Message-ID: <20020607233917.J37924-300000@finone.km.dshapiro.org> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-891055018-1023483568=:37924" Content-ID: <20020608000527.E37924@finone.km.dshapiro.org> Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --0-891055018-1023483568=:37924 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: <20020608000527.H37924@finone.km.dshapiro.org> I am experiencing file corruption when writing to a fat32 mounted partition with samba. To be more specific, I have FreeBSD RELENG_4 (built world a two weeks ago), uname : FreeBSD finone.km.dshapiro.org 4.6-RC FreeBSD 4.6-RC #4: Fri May 24 18:24:45 IDT 2002 Samba 2.2.4_1 from ports (I also tested it with samba 2_2 cvs) and on the other side I have Windows 2000 professional. I made a little test for a demonstration of the file corruption, I created a 16mb file of random data and made a copy of it with 'cp'. then made a copy of it with smbclient 'get' command from localhost then mounted the partition as a network drive in windows, and used copy to copy the file into another subdirectory. All this was done on a 80Gb FAT32 partition, WDC 80G HD. > dd if=/dev/urandom of=test_file.ext bs=4096 count=4096 > ls -l total 16392 -rw-r--r-- 1 kesor kesor 16777216 Jun 7 23:45 test_file.ext > mkdir 1 > cp test_file.ext 1/ > ls -l 1 total 16392 -rw-r--r-- 1 kesor kesor 16777216 Jun 7 23:46 test_file.ext > mkdir 2 > cd 2 > smbclient //localhost/storage/ Password: Domain=[KM] OS=[Unix] Server=[Samba 2.2.5-pre] smb: \> get test_file.ext getting file test_file.ext of size 16777216 as test_file.ext (10584.0 kb/s) (average 10584.0 kb/s) smb: \1\> exit > cd .. ### Now I used windows to copy the same file to a directory named 3 ### ### and again into a directory named 4 ### > md5 test_file.ext 1/test_file.ext 2/test_file.ext 3/test_file.ext 4/test_file.ext MD5 (test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (1/test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (2/test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (3/test_file.ext) = 50c065bf8ba754f4e26d169b301d2970 MD5 (4/test_file.ext) = dc78ec13ba4d3588b9577e2bdff820ee > md5 test_file.ext 1/test_file.ext 2/test_file.ext 3/test_file.ext 4/test_file.ext MD5 (test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (1/test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (2/test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (3/test_file.ext) = 50c065bf8ba754f4e26d169b301d2970 MD5 (4/test_file.ext) = 556e9096e238a0ac6cb2d19a85451071 > md5 test_file.ext 1/test_file.ext 2/test_file.ext 3/test_file.ext 4/test_file.ext MD5 (test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (1/test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (2/test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (3/test_file.ext) = 50c065bf8ba754f4e26d169b301d2970 MD5 (4/test_file.ext) = 556e9096e238a0ac6cb2d19a85451071 > md5 test_file.ext 1/test_file.ext 2/test_file.ext 3/test_file.ext 4/test_file.ext MD5 (test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (1/test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (2/test_file.ext) = f6d139b1363e9c24bfb9cee3e395a0e7 MD5 (3/test_file.ext) = 50c065bf8ba754f4e26d169b301d2970 MD5 (4/test_file.ext) = 556e9096e238a0ac6cb2d19a85451071 Thats is, as you may see it took some time to settle - but the final resouls is that both the files that were copied via samba with windows are corrupted. I ran the same test on a UFS partition, exactly the same test, but it DOES NOT corrupt the files like on a fat32 partition. included is my kernel config file and dmesg. please reply to to my private email, i am not subscribed to the mailing lists. --0-891055018-1023483568=:37924 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="dmesg.txt" Content-Transfer-Encoding: BASE64 Content-ID: <20020607235928.G37924@finone.km.dshapiro.org> Content-Description: Content-Disposition: ATTACHMENT; FILENAME="dmesg.txt" DQpwaWQgMTAzMTMgKHNtYmQpLCB1aWQgMCBvbiAvdmFyOiBmaWxlIHN5c3Rl bSBmdWxsDQpwaWQgMjQwMTEgKHNtYmQpLCB1aWQgMTAwMCBvbiAvbW50L2Rh MTogZmlsZSBzeXN0ZW0gZnVsbA0KcGlkIDI0MDExIChzbWJkKSwgdWlkIDEw MDAgb24gL21udC9kYTE6IGZpbGUgc3lzdGVtIGZ1bGwNCnBpZCAyNDAxMSAo c21iZCksIHVpZCAxMDAwIG9uIC9tbnQvZGExOiBmaWxlIHN5c3RlbSBmdWxs DQpwaWQgMjQwMTEgKHNtYmQpLCB1aWQgMTAwMCBvbiAvbW50L2RhMTogZmls ZSBzeXN0ZW0gZnVsbA0KcGlkIDI0MDExIChzbWJkKSwgdWlkIDEwMDAgb24g L21udC9kYTE6IGZpbGUgc3lzdGVtIGZ1bGwNCnBpZCAyNDAxMSAoc21iZCks IHVpZCAxMDAwIG9uIC9tbnQvZGExOiBmaWxlIHN5c3RlbSBmdWxsDQpwaWQg MjQwMTEgKHNtYmQpLCB1aWQgMTAwMCBvbiAvbW50L2RhMTogZmlsZSBzeXN0 ZW0gZnVsbA0KcGlkIDI0MDExIChzbWJkKSwgdWlkIDEwMDAgb24gL21udC9k YTE6IGZpbGUgc3lzdGVtIGZ1bGwNCnBpZCAyNDAxMSAoc21iZCksIHVpZCAx MDAwIG9uIC9tbnQvZGExOiBmaWxlIHN5c3RlbSBmdWxsDQpwaWQgMjQwMTEg KHNtYmQpLCB1aWQgMTAwMCBvbiAvbW50L2RhMTogZmlsZSBzeXN0ZW0gZnVs bA0KcGlkIDI0MDExIChzbWJkKSwgdWlkIDEwMDAgb24gL21udC9kYTE6IGZp bGUgc3lzdGVtIGZ1bGwNCnBpZCAyNDAxMSAoc21iZCksIHVpZCAxMDAwIG9u IC9tbnQvZGExOiBmaWxlIHN5c3RlbSBmdWxsDQpwaWQgMjQwMTEgKHNtYmQp LCB1aWQgMTAwMCBvbiAvbW50L2RhMTogZmlsZSBzeXN0ZW0gZnVsbA0KcGlk IDI0MDExIChzbWJkKSwgdWlkIDEwMDAgb24gL21udC9kYTE6IGZpbGUgc3lz dGVtIGZ1bGwNCnBpZCAyNDAxMSAoc21iZCksIHVpZCAxMDAwIG9uIC9tbnQv ZGExOiBmaWxlIHN5c3RlbSBmdWxsDQpwaWQgMjQwMTEgKHNtYmQpLCB1aWQg MTAwMCBvbiAvbW50L2RhMTogZmlsZSBzeXN0ZW0gZnVsbA0KcGlkIDI0MDEx IChzbWJkKSwgdWlkIDEwMDAgb24gL21udC9kYTE6IGZpbGUgc3lzdGVtIGZ1 bGwNCnBpZCAyNDAxMSAoc21iZCksIHVpZCAxMDAwIG9uIC9tbnQvZGExOiBm aWxlIHN5c3RlbSBmdWxsDQpwaWQgMjQwMTEgKHNtYmQpLCB1aWQgMTAwMCBv biAvbW50L2RhMTogZmlsZSBzeXN0ZW0gZnVsbA0KcGlkIDI0MDExIChzbWJk KSwgdWlkIDEwMDAgb24gL21udC9kYTE6IGZpbGUgc3lzdGVtIGZ1bGwNCnBp ZCAyNDAxMSAoc21iZCksIHVpZCAxMDAwIG9uIC9tbnQvZGExOiBmaWxlIHN5 c3RlbSBmdWxsDQpwaWQgMjQwMTEgKHNtYmQpLCB1aWQgMTAwMCBvbiAvbW50 L2RhMTogZmlsZSBzeXN0ZW0gZnVsbA0KcGlkIDI0MDExIChzbWJkKSwgdWlk IDEwMDAgb24gL21udC9kYTE6IGZpbGUgc3lzdGVtIGZ1bGwNCnBpZCAyNDAx MSAoc21iZCksIHVpZCAxMDAwIG9uIC9tbnQvZGExOiBmaWxlIHN5c3RlbSBm dWxsDQpwaWQgMjQwMTEgKHNtYmQpLCB1aWQgMTAwMCBvbiAvbW50L2RhMTog ZmlsZSBzeXN0ZW0gZnVsbA0KcGlkIDI0MDExIChzbWJkKSwgdWlkIDEwMDAg b24gL21udC9kYTE6IGZpbGUgc3lzdGVtIGZ1bGwNCnBpZCAyNDAxMSAoc21i ZCksIHVpZCAxMDAwIG9uIC9tbnQvZGExOiBmaWxlIHN5c3RlbSBmdWxsDQpw aWQgMjQwMTEgKHNtYmQpLCB1aWQgMTAwMCBvbiAvbW50L2RhMTogZmlsZSBz eXN0ZW0gZnVsbA0KcGlkIDI0MDExIChzbWJkKSwgdWlkIDEwMDAgb24gL21u dC9kYTE6IGZpbGUgc3lzdGVtIGZ1bGwNCnBpZCAyNDAxMSAoc21iZCksIHVp ZCAxMDAwIG9uIC9tbnQvZGExOiBmaWxlIHN5c3RlbSBmdWxsDQpwaWQgMjQw MTEgKHNtYmQpLCB1aWQgMTAwMCBvbiAvbW50L2RhMTogZmlsZSBzeXN0ZW0g ZnVsbA0KcGlkIDI0MDExIChzbWJkKSwgdWlkIDEwMDAgb24gL21udC9kYTE6 IGZpbGUgc3lzdGVtIGZ1bGwNCnBpZCAyNDAxMSAoc21iZCksIHVpZCAxMDAw IG9uIC9tbnQvZGExOiBmaWxlIHN5c3RlbSBmdWxsDQpwaWQgODUxIChlZ2dk cm9wLTEuNi4xMCksIHVpZCAxMDAzIG9uIC9tbnQvZGExOiBmaWxlIHN5c3Rl bSBmdWxsDQpwaWQgODUxIChlZ2dkcm9wLTEuNi4xMCksIHVpZCAxMDAzIG9u IC9tbnQvZGExOiBmaWxlIHN5c3RlbSBmdWxsDQpwaWQgODUxIChlZ2dkcm9w LTEuNi4xMCksIHVpZCAxMDAzIG9uIC9tbnQvZGExOiBmaWxlIHN5c3RlbSBm dWxsDQpwaWQgMzc4NDcgKGNwKSwgdWlkIDEwMDMgb24gL21udC9kYTE6IGZp bGUgc3lzdGVtIGZ1bGwNCnBpZCA4NTEgKGVnZ2Ryb3AtMS42LjEwKSwgdWlk IDEwMDMgb24gL21udC9kYTE6IGZpbGUgc3lzdGVtIGZ1bGwNCnBpZCAzNzY1 NyAoc21iZCksIHVpZCAxMDAwIG9uIC9tbnQvZGExOiBmaWxlIHN5c3RlbSBm dWxsDQpwaWQgMzc2NTcgKHNtYmQpLCB1aWQgMTAwMCBvbiAvbW50L2RhMTog ZmlsZSBzeXN0ZW0gZnVsbA0KcGlkIDM3NjU3IChzbWJkKSwgdWlkIDEwMDAg b24gL21udC9kYTE6IGZpbGUgc3lzdGVtIGZ1bGwNCg== --0-891055018-1023483568=:37924 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME=FINONE Content-Transfer-Encoding: BASE64 Content-ID: <20020607235928.U37924@finone.km.dshapiro.org> Content-Description: Content-Disposition: ATTACHMENT; FILENAME=FINONE Iw0KIyBMSU5UIC0tIGNvbmZpZyBmaWxlIGZvciBjaGVja2luZyBhbGwgdGhl IHNvdXJjZXMsIHRyaWVzIHRvIHB1bGwgaW4NCiMJYXMgbXVjaCBvZiB0aGUg c291cmNlIHRyZWUgYXMgaXQgY2FuLg0KIw0KIyAkRnJlZUJTRDogc3JjL3N5 cy9pMzg2L2NvbmYvTElOVCx2IDEuNzQ5LjIuMTA2IDIwMDIvMDMvMTEgMDE6 MjM6MDUgZGQgRXhwICQNCiMNCiMgTkI6IFlvdSBwcm9iYWJseSBkb24ndCB3 YW50IHRvIHRyeSBydW5uaW5nIGEga2VybmVsIGJ1aWx0IGZyb20gdGhpcw0K IyBmaWxlLiAgSW5zdGVhZCwgeW91IHNob3VsZCBzdGFydCBmcm9tIEdFTkVS SUMsIGFuZCBhZGQgb3B0aW9ucyBmcm9tDQojIHRoaXMgZmlsZSBhcyByZXF1 aXJlZC4NCiMNCg0KIw0KIyBUaGlzIGRpcmVjdGl2ZSBpcyBtYW5kYXRvcnk7 IGl0IGRlZmluZXMgdGhlIGFyY2hpdGVjdHVyZSB0byBiZQ0KIyBjb25maWd1 cmVkIGZvcjsgaW4gdGhpcyBjYXNlLCB0aGUgMzg2IGZhbWlseSBiYXNlZCBJ Qk0tUEMgYW5kDQojIGNvbXBhdGlibGVzLg0KIw0KbWFjaGluZQkJaTM4Ng0K DQojDQojIFRoaXMgaXMgdGhlIGBgaWRlbnRpZmljYXRpb24nJyBvZiB0aGUg a2VybmVsLiAgVXN1YWxseSB0aGlzIHNob3VsZA0KIyBiZSB0aGUgc2FtZSBh cyB0aGUgbmFtZSBvZiB5b3VyIGtlcm5lbC4NCiMNCmlkZW50CQlGSU5PTkUN Cg0KIw0KIyBUaGUgYG1heHVzZXJzJyBwYXJhbWV0ZXIgY29udHJvbHMgdGhl IHN0YXRpYyBzaXppbmcgb2YgYSBudW1iZXIgb2YNCiMgaW50ZXJuYWwgc3lz dGVtIHRhYmxlcyBieSBhIGZvcm11bGEgZGVmaW5lZCBpbiBzdWJyX3BhcmFt LmMuICBTZXR0aW5nDQojIG1heHVzZXJzIHRvIDAgd2lsbCBjYXVzZSB0aGUg c3lzdGVtIHRvIGF1dG8tc2l6ZSBiYXNlZCBvbiBwaHlzaWNhbA0KIyBtZW1v cnkuDQojDQptYXh1c2VycwkwDQojNjQNCg0KIw0KIyBUaGUgYG1ha2VvcHRp b25zJyBwYXJhbWV0ZXIgYWxsb3dzIHZhcmlhYmxlcyB0byBiZSBwYXNzZWQg dG8gdGhlDQojIGdlbmVyYXRlZCBNYWtlZmlsZSBpbiB0aGUgYnVpbGQgYXJl YS4NCiMNCiMgQ09ORl9DRkxBR1MgZ2l2ZXMgc29tZSBleHRyYSBjb21waWxl ciBmbGFncyB0aGF0IGFyZSBhZGRlZCB0byAke0NGTEFHU30NCiMgYWZ0ZXIg bW9zdCBvdGhlciBmbGFncy4gIEhlcmUgd2UgdXNlIGl0IHRvIGluaGliaXQg dXNlIG9mIG5vbi1vcHRpbWFsDQojIGdjYyBidWlsdGluIGZ1bmN0aW9ucyAo ZS5nLiwgbWVtY21wKS4NCiMNCiMgREVCVUcgaGFwcGVucyB0byBiZSBtYWdp Yy4NCiMgVGhlIGZvbGxvd2luZyBpcyBlcXVpdmFsZW50IHRvICdjb25maWcg LWcgS0VSTkVMTkFNRScgYW5kIGNyZWF0ZXMNCiMgJ2tlcm5lbC5kZWJ1Zycg Y29tcGlsZWQgd2l0aCAtZyBkZWJ1Z2dpbmcgYXMgd2VsbCBhcyBhIG5vcm1h bA0KIyAna2VybmVsJy4gIFVzZSAnbWFrZSBpbnN0YWxsLmRlYnVnJyB0byBp bnN0YWxsIHRoZSBkZWJ1ZyBrZXJuZWwNCiMgYnV0IHRoYXQgaXNuJ3Qgbm9y bWFsbHkgbmVjZXNzYXJ5IGFzIHRoZSBkZWJ1ZyBzeW1ib2xzIGFyZSBub3Qg bG9hZGVkDQojIGJ5IHRoZSBrZXJuZWwgYW5kIGFyZSBub3QgdXNlZnVsIHRo ZXJlIGFueXdheS4NCiMNCiMgS0VSTkVMIGNhbiBiZSBvdmVycmlkZGVuIHNv IHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIGRlZmF1bHQgbmFtZSBvZiB5b3Vy DQojIGtlcm5lbC4NCiMNCiMgTU9EVUxFU19PVkVSUklERSBjYW4gYmUgdXNl ZCB0byBsaW1pdCBtb2R1bGVzIGJ1aWx0IHRvIGEgc3BlY2lmaWMgbGlzdC4N CiMNCiNtYWtlb3B0aW9ucwlDT05GX0NGTEFHUz0tZm5vLWJ1aWx0aW4gICNE b24ndCBhbGxvdyB1c2Ugb2YgbWVtY21wLCBldGMuDQojbWFrZW9wdGlvbnMJ REVCVUc9LWcJCSNCdWlsZCBrZXJuZWwgd2l0aCBnZGIoMSkgZGVidWcgc3lt Ym9scw0KI21ha2VvcHRpb25zCUtFUk5FTD1mb28JCSNCdWlsZCBrZXJuZWwg ImZvbyIgYW5kIGluc3RhbGwgIi9mb28iDQojIE9ubHkgYnVpbGQgTGludXgg QVBJIG1vZHVsZXMgYW5kIHBsdXMgdGhvc2UgcGFydHMgb2YgdGhlIHNvdW5k IHN5c3RlbSBJIG5lZWQuDQojbWFrZW9wdGlvbnMJTU9EVUxFU19PVkVSUklE RT0ibGludXggc291bmQvc25kIHNvdW5kL3BjbSBzb3VuZC9kcml2ZXIvbWFl c3RybzMiDQoNCiMNCiMgQ2VydGFpbiBhcHBsaWNhdGlvbnMgY2FuIGdyb3cg dG8gYmUgbGFyZ2VyIHRoYW4gdGhlIDEyOE0gbGltaXQNCiMgdGhhdCBGcmVl QlNEIGluaXRpYWxseSBpbXBvc2VzLiAgQmVsb3cgYXJlIHNvbWUgb3B0aW9u cyB0bw0KIyBhbGxvdyB0aGF0IGxpbWl0IHRvIGdyb3cgdG8gMjU2TUIsIGFu ZCBjYW4gYmUgaW5jcmVhc2VkIGZ1cnRoZXINCiMgd2l0aCBjaGFuZ2luZyB0 aGUgcGFyYW1ldGVycy4gIE1BWERTSVogaXMgdGhlIG1heGltdW0gdGhhdCB0 aGUNCiMgbGltaXQgY2FuIGJlIHNldCB0bywgYW5kIHRoZSBERkxEU0laIGlz IHRoZSBkZWZhdWx0IHZhbHVlIGZvcg0KIyB0aGUgbGltaXQuICBNQVhTU0la IGlzIHRoZSBtYXhpbXVtIHRoYXQgdGhlIHN0YWNrIGxpbWl0IGNhbiBiZQ0K IyBzZXQgdG8uICBZb3UgbWlnaHQgd2FudCB0byBzZXQgdGhlIGRlZmF1bHQg bG93ZXIgdGhhbiB0aGUgbWF4LCANCiMgYW5kIGV4cGxpY2l0bHkgc2V0IHRo ZSBtYXhpbXVtIHdpdGggYSBzaGVsbCBjb21tYW5kIGZvciBwcm9jZXNzZXMN CiMgdGhhdCByZWd1bGFybHkgZXhjZWVkIHRoZSBsaW1pdCBsaWtlIElOTkQu DQojDQojb3B0aW9ucyAJTUFYRFNJWj0iKDI1NioxMDI0KjEwMjQpIg0KI29w dGlvbnMgCU1BWFNTSVo9IigyNTYqMTAyNCoxMDI0KSINCiNvcHRpb25zIAlE RkxEU0laPSIoMjU2KjEwMjQqMTAyNCkiDQoNCiMNCiMgQkxLREVWX0lPU0la RSBzZXRzIHRoZSBkZWZhdWx0IGJsb2NrIHNpemUgdXNlZCBpbiB1c2VyIGJs b2NrDQojIGRldmljZSBJL08uICBOb3RlIHRoYXQgdGhpcyB2YWx1ZSB3aWxs IGJlIG92ZXJyaWRlbiBieSB0aGUgbGFiZWwNCiMgd2hlbiBzcGVjaWZ5aW5n IGEgYmxvY2sgZGV2aWNlIGZyb20gYSBsYWJlbCB3aXRoIGEgbm9uLTANCiMg cGFydGl0aW9uIGJsb2Nrc2l6ZS4gIFRoZSBkZWZhdWx0IGlzIFBBR0VfU0la RS4NCiMNCm9wdGlvbnMgCUJMS0RFVl9JT1NJWkU9ODE5Mg0KDQojIE9wdGlv bnMgZm9yIHRoZSBWTSBzdWJzeXN0ZW0uDQpvcHRpb25zCQlQUV9DQUNIRVNJ WkU9MTAyNAkjIGNvbG9yIGZvciA1MTJrLzE2ayBjYWNoZQ0KIyBEZXByZWNh dGVkIG9wdGlvbnMgc3VwcG9ydGVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJp bGl0eS4NCiNvcHRpb25zIAlQUV9OT09QVAkJIyBObyBjb2xvcmluZw0KI29w dGlvbnMgCVBRX0xBUkdFQ0FDSEUJCSMgY29sb3IgZm9yIDUxMmsvMTZrIGNh Y2hlDQojb3B0aW9ucyAJUFFfSFVHRUNBQ0hFCQkjIGNvbG9yIGZvciAxMDI0 ay8xNmsgY2FjaGUNCiNvcHRpb25zIAlQUV9NRURJVU1DQUNIRQkJIyBjb2xv ciBmb3IgMjU2ay8xNmsgY2FjaGUNCiNvcHRpb25zIAlQUV9OT1JNQUxDQUNI RQkJIyBjb2xvciBmb3IgNjRrLzE2ayBjYWNoZQ0KDQojIFRoaXMgYWxsb3dz IHlvdSB0byBhY3R1YWxseSBzdG9yZSB0aGlzIGNvbmZpZ3VyYXRpb24gZmls ZSBpbnRvDQojIHRoZSBrZXJuZWwgYmluYXJ5IGl0c2VsZiwgd2hlcmUgaXQg bWF5IGJlIGxhdGVyIHJlYWQgYnkgc2F5aW5nOg0KIyAgICBzdHJpbmdzIC1u IDMgL2tlcm5lbCB8IHNlZCAtbiAncy9eX19fLy9wJyA+IE1ZS0VSTkVMDQoj DQojb3B0aW9ucyAJSU5DTFVERV9DT05GSUdfRklMRSAgICAgIyBJbmNsdWRl IHRoaXMgZmlsZSBpbiBrZXJuZWwNCg0KIw0KIyBUaGUgcm9vdCBkZXZpY2Ug YW5kIGZpbGVzeXN0ZW0gdHlwZSBjYW4gYmUgY29tcGlsZWQgaW47DQojIHRo aXMgcHJvdmlkZXMgYSBmYWxsYmFjayBvcHRpb24gaWYgdGhlIHJvb3QgZGV2 aWNlIGNhbm5vdA0KIyBiZSBjb3JyZWN0bHkgZ3Vlc3NlZCBieSB0aGUgYm9v dHN0cmFwIGNvZGUsIG9yIGFuIG92ZXJyaWRlIGlmDQojIHRoZSBSQl9ERkxU Uk9PVCBmbGFnICgtcikgaXMgc3BlY2lmaWVkIHdoZW4gYm9vdGluZyB0aGUg a2VybmVsLg0KIw0KI29wdGlvbnMgCVJPT1RERVZOQU1FPVwidWZzOmRhMHMy ZVwiDQoNCgwNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIyBTTVAgT1BU SU9OUzoNCiMNCiMgU01QIGVuYWJsZXMgYnVpbGRpbmcgb2YgYSBTeW1tZXRy aWMgTXVsdGlQcm9jZXNzb3IgS2VybmVsLg0KIyBBUElDX0lPIGVuYWJsZXMg dGhlIHVzZSBvZiB0aGUgSU8gQVBJQyBmb3IgU3ltbWV0cmljIEkvTy4NCiMN CiMgTm90ZXM6DQojDQojICBBbiBTTVAga2VybmVsIHdpbGwgT05MWSBydW4g b24gYW4gSW50ZWwgTVAgc3BlYy4gcXVhbGlmaWVkIG1vdGhlcmJvYXJkLg0K Iw0KIyAgQmUgc3VyZSB0byBkaXNhYmxlICdjcHUgSTM4Nl9DUFUnICYmICdj cHUgSTQ4Nl9DUFUnIGZvciBTTVAga2VybmVscy4NCiMNCiMgIENoZWNrIHRo ZSAnUm9ndWUgU01QIGhhcmR3YXJlJyBzZWN0aW9uIHRvIHNlZSBpZiBhZGRp dGlvbmFsIG9wdGlvbnMNCiMgICBhcmUgcmVxdWlyZWQgYnkgeW91ciBoYXJk d2FyZS4NCiMNCg0KIyBNYW5kYXRvcnk6DQojb3B0aW9ucyAJU01QCQkJIyBT eW1tZXRyaWMgTXVsdGlQcm9jZXNzb3IgS2VybmVsDQojb3B0aW9ucyAJQVBJ Q19JTwkJCSMgU3ltbWV0cmljIChBUElDKSBJL08NCg0KIw0KIyBSb2d1ZSBT TVAgaGFyZHdhcmU6DQojDQoNCiMgQnJpZGdlZCBQQ0kgY2FyZHM6DQojDQoj IFRoZSBNUCB0YWJsZXMgb2YgbW9zdCBvZiB0aGUgY3VycmVudCBnZW5lcmF0 aW9uIE1QIG1vdGhlcmJvYXJkcw0KIyAgZG8gTk9UIHByb3Blcmx5IHN1cHBv cnQgYnJpZGdlZCBQQ0kgY2FyZHMuICBUbyB1c2Ugb25lIG9mIHRoZXNlDQoj ICBjYXJkcyB5b3Ugc2hvdWxkIHJlZmVyIHRvID8/Pw0KDQoMDQojIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMNCiMgQ1BVIE9QVElPTlMNCg0KIw0KIyBZb3Ug bXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBDUFUgKHRoZSBvbmUgeW91IGlu dGVuZCB0byBydW4gb24pOw0KIyBkZWxldGluZyB0aGUgc3BlY2lmaWNhdGlv biBmb3IgQ1BVcyB5b3UgZG9uJ3QgbmVlZCB0byB1c2UgbWF5IG1ha2UNCiMg cGFydHMgb2YgdGhlIHN5c3RlbSBydW4gZmFzdGVyLiAgVGhpcyBpcyBlc3Bl Y2lhbGx5IHRydWUgcmVtb3ZpbmcNCiMgSTM4Nl9DUFUuDQojDQojY3B1CQlJ Mzg2X0NQVQ0KI2NwdQkJSTQ4Nl9DUFUNCiNjcHUJCUk1ODZfQ1BVCQkjIGFr YSBQZW50aXVtKHRtKQ0KY3B1CQlJNjg2X0NQVQkJIyBha2EgUGVudGl1bSBQ cm8odG0pDQoNCiMNCiMgT3B0aW9ucyBmb3IgQ1BVIGZlYXR1cmVzLg0KIw0K IyBDUFVfQkxVRUxJR0hUTklOR19GUFVfT1BfQ0FDSEUgZW5hYmxlcyBGUFUg b3BlcmFuZCBjYWNoZSBvbiBJQk0NCiMgQmx1ZUxpZ2h0bmluZyBDUFUuICBJ dCB3b3JrcyBvbmx5IHdpdGggQ3lyaXggRlBVLCBhbmQgdGhpcyBvcHRpb24N CiMgc2hvdWxkIG5vdCBiZSB1c2VkIHdpdGggSW50ZWwgRlBVLg0KIw0KIyBD UFVfQkxVRUxJR0hUTklOR18zWCBlbmFibGVzIHRyaXBsZS1jbG9jayBtb2Rl IG9uIElCTSBCbHVlIExpZ2h0bmluZw0KIyBDUFUgaWYgQ1BVIHN1cHBvcnRz IGl0LiBUaGUgZGVmYXVsdCBpcyBkb3VibGUtY2xvY2sgbW9kZSBvbg0KIyBC bHVlTGlnaHRuaW5nIENQVSBib3guDQojDQojIENQVV9CVEJfRU4gZW5hYmxl cyBicmFuY2ggdGFyZ2V0IGJ1ZmZlciBvbiBDeXJpeCA1eDg2IChOT1RFIDEp Lg0KIw0KIyBDUFVfRElSRUNUX01BUFBFRF9DQUNIRSBzZXRzIEwxIGNhY2hl IG9mIEN5cml4IDQ4NkRMQyBDUFUgaW4gZGlyZWN0DQojIG1hcHBlZCBtb2Rl LiAgRGVmYXVsdCBpcyAyLXdheSBzZXQgYXNzb2NpYXRpdmUgbW9kZS4NCiMN CiMgQ1BVX0NZUklYX05PX0xPQ0sgZW5hYmxlcyB3ZWFrIGxvY2tpbmcgZm9y IHRoZSBlbnRpcmUgYWRkcmVzcyBzcGFjZQ0KIyBvZiBDeXJpeCA2eDg2IGFu ZCA2eDg2TVggQ1BVcyBieSBzZXR0aW5nIHRoZSBOT19MT0NLIGJpdCBvZiBD Q1IxLg0KIyBPdGhlcndpc2UsIHRoZSBOT19MT0NLIGJpdCBvZiBDQ1IxIGlz IGNsZWFyZWQuICAoTk9URSAzKQ0KIw0KIyBDUFVfRElTQUJMRV81WDg2X0xT U0VSIGRpc2FibGVzIGxvYWQgc3RvcmUgc2VyaWFsaXplIChpLmUuIGVuYWJs ZXMNCiMgcmVvcmRlcikuICBUaGlzIG9wdGlvbiBzaG91bGQgbm90IGJlIHVz ZWQgaWYgeW91IHVzZSBtZW1vcnkgbWFwcGVkDQojIEkvTyBkZXZpY2Uocyku DQojDQojIENQVV9FTkFCTEVfU1NFIGVuYWJsZXMgU1NFL01NWDIgaW5zdHJ1 Y3Rpb25zIHN1cHBvcnQuDQojDQojIENQVV9GQVNURVJfNVg4Nl9GUFUgZW5h YmxlcyBmYXN0ZXIgRlBVIGV4Y2VwdGlvbiBoYW5kbGVyLg0KIw0KIyBDUFVf STQ4Nl9PTl8zODYgZW5hYmxlcyBDUFUgY2FjaGUgb24gaTQ4NiBiYXNlZCBD UFUgdXBncmFkZSBwcm9kdWN0cw0KIyBmb3IgaTM4NiBtYWNoaW5lcy4NCiMN CiMgQ1BVX0lPUlQgZGVmaW5lcyBJL08gY2xvY2sgZGVsYXkgdGltZSAoTk9U RSAxKS4gIERlZmF1bHQgdmFsdWVzIG9mDQojIEkvTyBjbG9jayBkZWxheSB0 aW1lIG9uIEN5cml4IDV4ODYgYW5kIDZ4ODYgYXJlIDAgYW5kIDcscmVzcGVj dGl2ZWx5DQojIChubyBjbG9jayBkZWxheSkuDQojDQojIENQVV9MMl9MQVRF TkNZIHNwZWNpZmVkIHRoZSBMMiBjYWNoZSBsYXRlbmN5IHZhbHVlLiAgVGhp cyBvcHRpb24gaXMgdXNlZA0KIyBvbmx5IHdoZW4gQ1BVX1BQUk8yQ0VMRVJP TiBpcyBkZWZpbmVkIGFuZCBNZW5kb2Npbm8gQ2VsZXJvbiBpcyBkZXRlY3Rl ZC4NCiMgVGhlIGRlZmF1bHQgdmFsdWUgaXMgNS4NCiMNCiMgQ1BVX0xPT1Bf RU4gcHJldmVudHMgZmx1c2hpbmcgdGhlIHByZWZldGNoIGJ1ZmZlciBpZiB0 aGUgZGVzdGluYXRpb24NCiMgb2YgYSBqdW1wIGlzIGFscmVhZHkgcHJlc2Vu dCBpbiB0aGUgcHJlZmV0Y2ggYnVmZmVyIG9uIEN5cml4IDV4ODYoTk9URQ0K IyAxKS4NCiMNCiMgQ1BVX1BQUk8yQ0VMRVJPTiBlbmFibGVzIEwyIGNhY2hl IG9mIE1lbmRvY2lubyBDZWxlcm9uIENQVXMuICBUaGlzIG9wdGlvbg0KIyBp cyB1c2VmdWwgd2hlbiB5b3UgdXNlIFNvY2tldCA4IHRvIFNvY2tldCAzNzAg Y29udmVydGVyLCBiZWNhdXNlIG1vc3QgUGVudGl1bQ0KIyBQcm8gQklPU3Mg ZG8gbm90IGVuYWJsZSBMMiBjYWNoZSBvZiBNZW5kb2Npbm8gQ2VsZXJvbiBD UFVzLg0KIw0KIyBDUFVfUlNUS19FTiBlbmFibGVzIHJldHVybiBzdGFjayBv biBDeXJpeCA1eDg2IChOT1RFIDEpLg0KIw0KIyBDUFVfU1VTUF9ITFQgZW5h YmxlcyBzdXNwZW5kIG9uIEhBTFQuICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQs IENQVQ0KIyBlbnRlcnMgc3VzcGVuZCBtb2RlIGZvbGxvd2luZyBleGVjdXRp b24gb2YgSEFMVCBpbnN0cnVjdGlvbi4NCiMNCiMgQ1BVX1dUX0FMTE9DIGVu YWJsZXMgd3JpdGUgYWxsb2NhdGlvbiBvbiBDeXJpeCA2eDg2LzZ4ODZNWCBh bmQgQU1EDQojIEs1L0s2L0s2LTIgY3B1cy4NCiMNCiMgQ1lSSVhfQ0FDSEVf V09SS1MgZW5hYmxlcyBDUFUgY2FjaGUgb24gQ3lyaXggNDg2IENQVXMgd2l0 aCBjYWNoZQ0KIyBmbHVzaCBhdCBob2xkIHN0YXRlLg0KIw0KIyBDWVJJWF9D QUNIRV9SRUFMTFlfV09SS1MgZW5hYmxlcyAoMSkgQ1BVIGNhY2hlIG9uIEN5 cml4IDQ4NiBDUFVzDQojIHdpdGhvdXQgY2FjaGUgZmx1c2ggYXQgaG9sZCBz dGF0ZSwgYW5kICgyKSB3cml0ZS1iYWNrIENQVSBjYWNoZSBvbg0KIyBDeXJp eCA2eDg2IHdob3NlIHJldmlzaW9uIDwgMi43IChOT1RFIDIpLg0KIw0KIyBO T19GMDBGX0hBQ0sgZGlzYWJsZXMgdGhlIGhhY2sgdGhhdCBwcmV2ZW50cyBQ ZW50aXVtcyAoYW5kIE9OTFkNCiMgUGVudGl1bXMpIGZyb20gbG9ja2luZyB1 cCB3aGVuIGEgTE9DSyBDTVBYQ0hHOEIgaW5zdHJ1Y3Rpb24gaXMNCiMgZXhl Y3V0ZWQuICBUaGlzIG9wdGlvbiBpcyBvbmx5IG5lZWRlZCBpZiBJNTg2X0NQ VSBpcyBhbHNvIGRlZmluZWQsDQojIGFuZCBzaG91bGQgYmUgaW5jbHVkZWQg Zm9yIGFueSBub24tUGVudGl1bSBDUFUgdGhhdCBkZWZpbmVzIGl0Lg0KIw0K IyBOT19NRU1PUllfSE9MRSBpcyBhbiBvcHRpbWlzYXRpb24gZm9yIHN5c3Rl bXMgd2l0aCBBTUQgSzYgcHJvY2Vzc29ycw0KIyB3aGljaCBpbmRpY2F0ZXMg dGhhdCB0aGUgMTUtMTZNQiByYW5nZSBpcyAqZGVmaW5pdGVseSogbm90IGJl aW5nDQojIG9jY3VwaWVkIGJ5IGFuIElTQSBtZW1vcnkgaG9sZS4NCiMNCiMg Tk9URSAxOiBUaGUgb3B0aW9ucywgQ1BVX0JUQl9FTiwgQ1BVX0xPT1BfRU4s IENQVV9JT1JULA0KIyBDUFVfTE9PUF9FTiBhbmQgQ1BVX1JTVEtfRU4gc2hv dWxkIG5vdCBiZSB1c2VkIGJlY2F1c2Ugb2YgQ1BVIGJ1Z3MuDQojIFRoZXNl IG9wdGlvbnMgbWF5IGNyYXNoIHlvdXIgc3lzdGVtLg0KIw0KIyBOT1RFIDI6 IElmIENZUklYX0NBQ0hFX1JFQUxMWV9XT1JLUyBpcyBub3Qgc2V0LCBDUFUg Y2FjaGUgaXMgZW5hYmxlZA0KIyBpbiB3cml0ZS10aHJvdWdoIG1vZGUgd2hl biByZXZpc2lvbiA8IDIuNy4gIElmIHJldmlzaW9uIG9mIEN5cml4DQojIDZ4 ODYgPj0gMi43LCBDUFUgY2FjaGUgaXMgYWx3YXlzIGVuYWJsZWQgaW4gd3Jp dGUtYmFjayBtb2RlLg0KIw0KIyBOT1RFIDM6IFRoaXMgb3B0aW9uIG1heSBj YXVzZSBmYWlsdXJlcyBmb3Igc29mdHdhcmUgdGhhdCByZXF1aXJlcw0KIyBs b2NrZWQgY3ljbGVzIGluIG9yZGVyIHRvIG9wZXJhdGUgY29ycmVjdGx5Lg0K Iw0KI29wdGlvbnMgCUNQVV9CTFVFTElHSFROSU5HX0ZQVV9PUF9DQUNIRQ0K I29wdGlvbnMgCUNQVV9CTFVFTElHSFROSU5HXzNYDQojb3B0aW9ucyAJQ1BV X0JUQl9FTg0KI29wdGlvbnMgCUNQVV9ESVJFQ1RfTUFQUEVEX0NBQ0hFDQoj b3B0aW9ucyAJQ1BVX0RJU0FCTEVfNVg4Nl9MU1NFUg0Kb3B0aW9ucyAJQ1BV X0VOQUJMRV9TU0UNCiNvcHRpb25zIAlDUFVfRkFTVEVSXzVYODZfRlBVDQoj b3B0aW9ucyAJQ1BVX0k0ODZfT05fMzg2DQojb3B0aW9ucyAJQ1BVX0lPUlQN CiNvcHRpb25zIAlDUFVfTDJfTEFURU5DWT01DQojb3B0aW9ucyAJQ1BVX0xP T1BfRU4NCiNvcHRpb25zIAlDUFVfUFBSTzJDRUxFUk9ODQojb3B0aW9ucyAJ Q1BVX1JTVEtfRU4NCiNvcHRpb25zIAlDUFVfU1VTUF9ITFQNCiNvcHRpb25z IAlDUFVfV1RfQUxMT0MNCiNvcHRpb25zIAlDWVJJWF9DQUNIRV9XT1JLUw0K I29wdGlvbnMgCUNZUklYX0NBQ0hFX1JFQUxMWV9XT1JLUw0KI29wdGlvbnMg CU5PX0YwMEZfSEFDSw0KDQojDQojIEEgbWF0aCBlbXVsYXRvciBpcyBtYW5k YXRvcnkgaWYgeW91IHdpc2ggdG8gcnVuIG9uIGhhcmR3YXJlIHdoaWNoDQoj IGRvZXMgbm90IGhhdmUgYSBmbG9hdGluZy1wb2ludCBwcm9jZXNzb3IuICBQ aWNrIGVpdGhlciB0aGUgb3JpZ2luYWwsDQojIGJvZ3VzIChidXQgZnJlZWx5 LWRpc3RyaWJ1dGFibGUpIG1hdGggZW11bGF0b3IsIG9yIGEgbXVjaCBtb3Jl DQojIGZ1bGx5LWZlYXR1cmVkIGJ1dCBHUEwtbGljZW5zZWQgZW11bGF0b3Ig dGFrZW4gZnJvbSBMaW51eC4NCiMNCiNvcHRpb25zIAlNQVRIX0VNVUxBVEUJ CSNTdXBwb3J0IGZvciB4ODcgZW11bGF0aW9uDQojIERvbid0IGVuYWJsZSBi b3RoIG9mIHRoZXNlIGluIGEgcmVhbCBjb25maWcuDQojb3B0aW9ucyAJR1BM X01BVEhfRU1VTEFURQkjU3VwcG9ydCBmb3IgeDg3IGVtdWxhdGlvbiB2aWEN CgkJCQkJI25ldyBtYXRoIGVtdWxhdG9yDQoNCgwNCiMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIw0KIyBDT01QQVRJQklMSVRZIE9QVElPTlMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCg0KIw0KIyBJ bXBsZW1lbnQgc3lzdGVtIGNhbGxzIGNvbXBhdGlibGUgd2l0aCA0LjNCU0Qg YW5kIG9sZGVyIHZlcnNpb25zIG9mDQojIEZyZWVCU0QuICBZb3UgcHJvYmFi bHkgZG8gTk9UIHdhbnQgdG8gcmVtb3ZlIHRoaXMgYXMgbXVjaCBjdXJyZW50 IGNvZGUNCiMgc3RpbGwgcmVsaWVzIG9uIHRoZSA0LjMgZW11bGF0aW9uLg0K Iw0Kb3B0aW9ucyAJQ09NUEFUXzQzDQoNCiMNCiMgQWxsb3cgYXBwbGljYXRp b25zIHJ1bm5pbmcgaW4gdXNlciBzcGFjZSB0byBjb250cm9sIHRoZSBMb2Nh bCBEZXNjcmlwdG9yDQojIFRhYmxlIChMRFQpLiAgVGhpcyBpcyByZXF1aXJl ZCBieSBzb21lIHBvcnRzLiAgRnV0dXJlIHZlcnNpb25zIG9mIEZyZWVCU0QN CiMgbWF5IHJlcXVpcmUgdGhpcyBvcHRpb24gZm9yIHNvbWUgcHJvZ3JhbXMg aW4gdGhlIGJhc2Ugc3lzdGVtLg0KIw0Kb3B0aW9ucyAJVVNFUl9MRFQJCSNh bGxvdyB1c2VyLWxldmVsIGNvbnRyb2wgb2YgaTM4NiBsZHQNCg0KIw0KIyBU aGVzZSB0aHJlZSBvcHRpb25zIHByb3ZpZGUgc3VwcG9ydCBmb3IgU3lzdGVt IFYgSW50ZXJmYWNlDQojIERlZmluaXRpb24tc3R5bGUgaW50ZXJwcm9jZXNz IGNvbW11bmljYXRpb24sIGluIHRoZSBmb3JtIG9mIHNoYXJlZA0KIyBtZW1v cnksIHNlbWFwaG9yZXMsIGFuZCBtZXNzYWdlIHF1ZXVlcywgcmVzcGVjdGl2 ZWx5Lg0KIw0KIyBTeXN0ZW0gViBzaGFyZWQgbWVtb3J5IGFuZCB0dW5hYmxl IHBhcmFtZXRlcnMNCm9wdGlvbnMgCVNZU1ZTSE0JCSMgaW5jbHVkZSBzdXBw b3J0IGZvciBzaGFyZWQgbWVtb3J5DQpvcHRpb25zIAlTSE1NQVhQR1M9MTAy NQkjIG1heCBhbW91bnQgb2Ygc2hhcmVkIG1lbW9yeSBwYWdlcyAoNGsgb24g aTM4NikNCm9wdGlvbnMgCVNITUFMTD0xMDI1CSMgbWF4IGFtb3VudCBvZiBz aGFyZWQgbWVtb3J5IChieXRlcykNCm9wdGlvbnMgCVNITU1BWD0iKFNITU1B WFBHUypQQUdFX1NJWkUrMSkiDQoJCQkJIyBtYXggc2hhcmVkIG1lbW9yeSBz ZWdtZW50IHNpemUgKGJ5dGVzKQ0Kb3B0aW9ucyAJU0hNTUlOPTIJIyBtaW4g c2hhcmVkIG1lbW9yeSBzZWdtZW50IHNpemUgKGJ5dGVzKQ0Kb3B0aW9ucyAJ U0hNTU5JPTMzCSMgbWF4IG51bWJlciBvZiBzaGFyZWQgbWVtb3J5IGlkZW50 aWZpZXJzDQpvcHRpb25zIAlTSE1TRUc9OQkjIG1heCBzaGFyZWQgbWVtb3J5 IHNlZ21lbnRzIHBlciBwcm9jZXNzDQoNCiMgU3lzdGVtIFYgc2VtYXBob3Jl cyBhbmQgdHVuYWJsZSBwYXJhbWV0ZXJzDQpvcHRpb25zIAlTWVNWU0VNCQkj IGluY2x1ZGUgc3VwcG9ydCBmb3Igc2VtYXBob3Jlcw0Kb3B0aW9ucyAJU0VN TUFQPTMxCSMgYW1vdW50IG9mIGVudHJpZXMgaW4gc2VtYXBob3JlIG1hcA0K b3B0aW9ucyAJU0VNTU5JPTExCSMgbnVtYmVyIG9mIHNlbWFwaG9yZSBpZGVu dGlmaWVycyBpbiB0aGUgc3lzdGVtDQpvcHRpb25zIAlTRU1NTlM9NjEJIyBu dW1iZXIgb2Ygc2VtYXBob3JlcyBpbiB0aGUgc3lzdGVtDQpvcHRpb25zIAlT RU1NTlU9MzEJIyBudW1iZXIgb2YgdW5kbyBzdHJ1Y3R1cmVzIGluIHRoZSBz eXN0ZW0NCm9wdGlvbnMgCVNFTU1TTD02MQkjIG1heCBudW1iZXIgb2Ygc2Vt YXBob3JlcyBwZXIgaWQNCm9wdGlvbnMgCVNFTU9QTT0xMDEJIyBtYXggbnVt YmVyIG9mIG9wZXJhdGlvbnMgcGVyIHNlbW9wIGNhbGwNCm9wdGlvbnMgCVNF TVVNRT0xMQkjIG1heCBudW1iZXIgb2YgdW5kbyBlbnRyaWVzIHBlciBwcm9j ZXNzDQoNCiMgU3lzdGVtIFYgbWVzc2FnZSBxdWV1ZXMgYW5kIHR1bmFibGUg cGFyYW1ldGVycw0Kb3B0aW9ucyAJU1lTVk1TRwkJIyBpbmNsdWRlIHN1cHBv cnQgZm9yIG1lc3NhZ2UgcXVldWVzDQpvcHRpb25zIAlNU0dNTkI9MjA0OQkj IG1heCBjaGFyYWN0ZXJzIHBlciBtZXNzYWdlIHF1ZXVlDQpvcHRpb25zIAlN U0dNTkk9NDEJIyBtYXggbnVtYmVyIG9mIG1lc3NhZ2UgcXVldWUgaWRlbnRp ZmllcnMNCm9wdGlvbnMgCU1TR1NFRz0yMDQ5CSMgbWF4IG51bWJlciBvZiBt ZXNzYWdlIHNlZ21lbnRzIGluIHRoZSBzeXN0ZW0NCm9wdGlvbnMgCU1TR1NT Wj0xNgkjIHNpemUgb2YgYSBtZXNzYWdlIHNlZ21lbnQgTVVTVCBiZSBwb3dl ciBvZiAyDQpvcHRpb25zIAlNU0dUUUw9NDEJIyBtYXggYW1vdW50IG9mIG1l c3NhZ2VzIGluIHRoZSBzeXN0ZW0NCg0KDA0KIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjDQojIERFQlVHR0lORyBPUFRJT05TDQoNCiMNCiMgRW5hYmxlIHRo ZSBrZXJuZWwgZGVidWdnZXIuDQojDQojb3B0aW9ucyAJRERCDQoNCiMNCiMg RG9uJ3QgZHJvcCBpbnRvIEREQiBmb3IgYSBwYW5pYy4gSW50ZW5kZWQgZm9y IHVuYXR0ZW5kZWQgb3BlcmF0aW9uDQojIHdoZXJlIHlvdSBtYXkgd2FudCB0 byBkcm9wIHRvIEREQiBmcm9tIHRoZSBjb25zb2xlLCBidXQgc3RpbGwgd2Fu dA0KIyB0aGUgbWFjaGluZSB0byByZWNvdmVyIGZyb20gYSBwYW5pYw0KIw0K I29wdGlvbnMgCUREQl9VTkFUVEVOREVEDQoNCiMNCiMgSWYgdXNpbmcgR0RC IHJlbW90ZSBtb2RlIHRvIGRlYnVnIHRoZSBrZXJuZWwsIHRoZXJlJ3MgYSBu b24tc3RhbmRhcmQNCiMgZXh0ZW5zaW9uIHRvIHRoZSByZW1vdGUgcHJvdG9j b2wgdGhhdCBjYW4gYmUgdXNlZCB0byB1c2UgdGhlIHNlcmlhbA0KIyBwb3J0 IGFzIGJvdGggdGhlIGRlYnVnZ2luZyBwb3J0IGFuZCB0aGUgc3lzdGVtIGNv bnNvbGUuICBJdCdzIG5vbi0NCiMgc3RhbmRhcmQgYW5kIHlvdSdyZSBvbiB5 b3VyIG93biBpZiB5b3UgZW5hYmxlIGl0LiAgU2VlIGFsc28gdGhlDQojICJy ZW1vdGVjaGF0IiB2YXJpYWJsZXMgaW4gdGhlIEZyZWVCU0Qgc3BlY2lmaWMg dmVyc2lvbiBvZiBnZGIuDQojDQojb3B0aW9ucyAJR0RCX1JFTU9URV9DSEFU DQoNCiMNCiMgS1RSQUNFIGVuYWJsZXMgdGhlIHN5c3RlbS1jYWxsIHRyYWNp bmcgZmFjaWxpdHkga3RyYWNlKDIpLg0KIw0KI29wdGlvbnMgCUtUUkFDRQkJ CSNrZXJuZWwgdHJhY2luZw0KDQojDQojIFRoZSBJTlZBUklBTlRTIG9wdGlv biBpcyB1c2VkIGluIGEgbnVtYmVyIG9mIHNvdXJjZSBmaWxlcyB0byBlbmFi bGUNCiMgZXh0cmEgc2FuaXR5IGNoZWNraW5nIG9mIGludGVybmFsIHN0cnVj dHVyZXMuICBUaGlzIHN1cHBvcnQgaXMgbm90DQojIGVuYWJsZWQgYnkgZGVm YXVsdCBiZWNhdXNlIG9mIHRoZSBleHRyYSB0aW1lIGl0IHdvdWxkIHRha2Ug dG8gY2hlY2sNCiMgZm9yIHRoZXNlIGNvbmRpdGlvbnMsIHdoaWNoIGNhbiBv bmx5IG9jY3VyIGFzIGEgcmVzdWx0IG9mDQojIHByb2dyYW1taW5nIGVycm9y cy4NCiMNCiNvcHRpb25zIAlJTlZBUklBTlRTDQoNCiMNCiMgVGhlIElOVkFS SUFOVF9TVVBQT1JUIG9wdGlvbiBtYWtlcyB1cyBjb21waWxlIGluIHN1cHBv cnQgZm9yDQojIHZlcmlmeWluZyBzb21lIG9mIHRoZSBpbnRlcm5hbCBzdHJ1 Y3R1cmVzLiAgSXQgaXMgYSBwcmVyZXF1aXNpdGUgZm9yDQojICdJTlZBUklB TlRTJywgYXMgZW5hYmxpbmcgJ0lOVkFSSUFOVFMnIHdpbGwgbWFrZSB0aGVz ZSBmdW5jdGlvbnMgYmUNCiMgY2FsbGVkLiAgVGhlIGludGVudCBpcyB0aGF0 IHlvdSBjYW4gc2V0ICdJTlZBUklBTlRTJyBmb3Igc2luZ2xlDQojIHNvdXJj ZSBmaWxlcyAoYnkgY2hhbmdpbmcgdGhlIHNvdXJjZSBmaWxlIG9yIHNwZWNp ZnlpbmcgaXQgb24gdGhlDQojIGNvbW1hbmQgbGluZSkgaWYgeW91IGhhdmUg J0lOVkFSSUFOVF9TVVBQT1JUJyBlbmFibGVkLg0KIw0KI29wdGlvbnMgCUlO VkFSSUFOVF9TVVBQT1JUDQoNCiMNCiMgVGhlIERJQUdOT1NUSUMgb3B0aW9u IGlzIHVzZWQgdG8gZW5hYmxlIGV4dHJhIGRlYnVnZ2luZyBpbmZvcm1hdGlv bg0KIyBmcm9tIHNvbWUgcGFydHMgb2YgdGhlIGtlcm5lbC4gIEFzIHRoaXMg bWFrZXMgZXZlcnl0aGluZyBtb3JlIG5vaXN5LA0KIyBpdCBpcyBkaXNhYmxl ZCBieSBkZWZhdWx0Lg0KIw0KI29wdGlvbnMgCURJQUdOT1NUSUMNCg0KIw0K IyBQRVJGTU9OIGNhdXNlcyB0aGUgZHJpdmVyIGZvciBQZW50aXVtL1BlbnRp dW0gUHJvIHBlcmZvcm1hbmNlIGNvdW50ZXJzDQojIHRvIGJlIGNvbXBpbGVk LiAgU2VlIHBlcmZtb24oNCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uDQojDQoj b3B0aW9ucyAJUEVSRk1PTg0KDQoNCiMNCiMgVGhpcyBvcHRpb24gbGV0IHNv bWUgZHJpdmVycyBjby1leGlzdCB0aGF0IGNhbid0IGNvLWV4aXN0IGluIGEg cnVubmluZw0KIyBzeXN0ZW0uICBUaGlzIGlzIHVzZWQgdG8gYmUgYWJsZSB0 byBjb21waWxlIGFsbCBrZXJuZWwgY29kZSBpbiBvbmUgZ28gZm9yDQojIHF1 YWxpdHkgYXNzdXJhbmNlIHB1cnBvc2VzIChsaWtlIHRoaXMgZmlsZSwgd2hp Y2ggdGhlIG9wdGlvbiB0YWtlcyBpdCBuYW1lDQojIGZyb20uKQ0KIw0KI29w dGlvbnMgCUNPTVBJTElOR19MSU5UDQoNCg0KIyBYWFggLSB0aGlzIGRvZXNu J3QgYmVsb25nIGhlcmUuDQojIEFsbG93IG9yZGluYXJ5IHVzZXJzIHRvIHRh a2UgdGhlIGNvbnNvbGUgLSB0aGlzIGlzIHVzZWZ1bCBmb3IgWC4NCm9wdGlv bnMgCVVDT05TT0xFDQoNCiMgWFhYIC0gdGhpcyBkb2Vzbid0IGJlbG9uZyBo ZXJlIGVpdGhlcg0Kb3B0aW9ucyAJVVNFUkNPTkZJRwkJI2Jvb3QgLWMgZWRp dG9yDQojb3B0aW9ucyAJSU5UUk9fVVNFUkNPTkZJRwkjaW1wbHkgLWMgYW5k IHNob3cgaW50cm8gc2NyZWVuDQojb3B0aW9ucyAJVklTVUFMX1VTRVJDT05G SUcJI3Zpc3VhbCBib290IC1jIGVkaXRvcg0KDQoMDQojIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMNCiMgTkVUV09SS0lORyBPUFRJT05TDQoNCiMNCiMgUHJv dG9jb2wgZmFtaWxpZXM6DQojICBPbmx5IHRoZSBJTkVUIChJbnRlcm5ldCkg ZmFtaWx5IGlzIG9mZmljaWFsbHkgc3VwcG9ydGVkIGluIEZyZWVCU0QuDQoj ICBTb3VyY2UgY29kZSBmb3IgdGhlIE5TIChYZXJveCBOZXR3b3JrIFNlcnZp Y2UpIGlzIHByb3ZpZGVkIGZvciBhbXVzZW1lbnQNCiMgIHZhbHVlLg0KIw0K b3B0aW9ucyAJSU5FVAkJCSNJbnRlcm5ldCBjb21tdW5pY2F0aW9ucyBwcm90 b2NvbHMNCm9wdGlvbnMgCUlORVQ2CQkJI0lQdjYgY29tbXVuaWNhdGlvbnMg cHJvdG9jb2xzDQpvcHRpb25zIAlJUFNFQwkJCSNJUCBzZWN1cml0eQ0KI29w dGlvbnMgCUlQU0VDX0VTUAkJI0lQIHNlY3VyaXR5IChjcnlwdG87IGRlZmlu ZSB3LyBJUFNFQykNCiNvcHRpb25zIAlJUFNFQ19ERUJVRwkJI2RlYnVnIGZv ciBJUCBzZWN1cml0eQ0KDQojb3B0aW9ucyAJSVBYCQkJI0lQWC9TUFggY29t bXVuaWNhdGlvbnMgcHJvdG9jb2xzDQojb3B0aW9ucyAJSVBYSVAJCQkjSVBY IGluIElQIGVuY2Fwc3VsYXRpb24gKG5vdCBhdmFpbGFibGUpDQojb3B0aW9u cyAJSVBUVU5ORUwJCSNJUCBpbiBJUFggZW5jYXBzdWxhdGlvbiAobm90IGF2 YWlsYWJsZSkNCg0KI29wdGlvbnMgCU5DUAkJCSNOZXRXYXJlIENvcmUgcHJv dG9jb2wNCg0KI29wdGlvbnMgCU5FVEFUQUxLCQkjQXBwbGV0YWxrIGNvbW11 bmljYXRpb25zIHByb3RvY29scw0KDQojIFRoZXNlIGFyZSBjdXJyZW50bHkg YnJva2VuIGJ1dCBhcmUgc2hpcHBlZCBkdWUgdG8gaW50ZXJlc3QuDQojb3B0 aW9ucyAJTlMJCQkjWGVyb3ggTlMgcHJvdG9jb2xzDQojb3B0aW9ucyAJTlNJ UAkJCSNYTlMgb3ZlciBJUA0KDQojDQojIFNNQi9DSUZTIHJlcXVlc3Rlcg0K IyBORVRTTUIgZW5hYmxlcyBzdXBwb3J0IGZvciBTTUIgcHJvdG9jb2wsIGl0 IHJlcXVpcmVzIExJQk1DSEFJTiBhbmQgTElCSUNPTlYNCiMgb3B0aW9ucy4N CiMgTkVUU01CQ1JZUFRPIGVuYWJsZXMgc3VwcG9ydCBmb3IgZW5jcnlwdGVk IHBhc3N3b3Jkcy4NCiNvcHRpb25zIAlORVRTTUIJCQkjU01CL0NJRlMgcmVx dWVzdGVyDQojb3B0aW9ucyAJTkVUU01CQ1JZUFRPCQkjZW5jcnlwdGVkIHBh c3N3b3JkIHN1cHBvcnQgZm9yIFNNQg0KDQojIG1jaGFpbiBsaWJyYXJ5LiBJ dCBjYW4gYmUgZWl0aGVyIGxvYWRlZCBhcyBLTEQgb3IgY29tcGlsZWQgaW50 byBrZXJuZWwNCiNvcHRpb25zIAlMSUJNQ0hBSU4JCSNtYnVmIG1hbmFnZW1l bnQgbGlicmFyeQ0KDQojIG5ldGdyYXBoKDQpLiBFbmFibGUgdGhlIGJhc2Ug bmV0Z3JhcGggY29kZSB3aXRoIHRoZSBORVRHUkFQSCBvcHRpb24uDQojIElu ZGl2aWR1YWwgbm9kZSB0eXBlcyBjYW4gYmUgZW5hYmxlZCB3aXRoIHRoZSBj b3JyZXNwb25kaW5nIG9wdGlvbg0KIyBsaXN0ZWQgYmVsb3c7IGhvd2V2ZXIs IHRoaXMgaXMgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSBhcyBuZXRncmFwaA0K IyB3aWxsIGF1dG9tYXRpY2FsbHkgbG9hZCB0aGUgY29ycmVzcG9uZGluZyBL TEQgbW9kdWxlIGlmIHRoZSBub2RlIHR5cGUNCiMgaXMgbm90IGFscmVhZHkg Y29tcGlsZWQgaW50byB0aGUga2VybmVsLiBFYWNoIHR5cGUgYmVsb3cgaGFz IGENCiMgY29ycmVzcG9uZGluZyBtYW4gcGFnZSwgZS5nLiwgbmdfYXN5bmMo OCkuDQojb3B0aW9ucyAJTkVUR1JBUEgJCSNuZXRncmFwaCg0KSBzeXN0ZW0N CiNvcHRpb25zIAlORVRHUkFQSF9BU1lOQw0KI29wdGlvbnMgCU5FVEdSQVBI X0JQRg0KI29wdGlvbnMgCU5FVEdSQVBIX0NJU0NPDQojb3B0aW9ucyAJTkVU R1JBUEhfRUNITw0KI29wdGlvbnMgCU5FVEdSQVBIX0VUSEVSDQojb3B0aW9u cyAJTkVUR1JBUEhfRlJBTUVfUkVMQVkNCiNvcHRpb25zIAlORVRHUkFQSF9I T0xFDQojb3B0aW9ucyAJTkVUR1JBUEhfSUZBQ0UNCiNvcHRpb25zIAlORVRH UkFQSF9LU09DS0VUDQojb3B0aW9ucyAJTkVUR1JBUEhfTE1JDQojIE1QUEMg Y29tcHJlc3Npb24gcmVxdWlyZXMgcHJvcHJpZXRhcnkgZmlsZXMgKG5vdCBp bmNsdWRlZCkNCiNvcHRpb25zIAlORVRHUkFQSF9NUFBDX0NPTVBSRVNTSU9O DQojb3B0aW9ucyAJTkVUR1JBUEhfTVBQQ19FTkNSWVBUSU9ODQojb3B0aW9u cyAJTkVUR1JBUEhfT05FMk1BTlkNCiNvcHRpb25zIAlORVRHUkFQSF9QUFAN CiNvcHRpb25zIAlORVRHUkFQSF9QUFBPRQ0KI29wdGlvbnMgCU5FVEdSQVBI X1BQVFBHUkUNCiNvcHRpb25zIAlORVRHUkFQSF9SRkMxNDkwDQojb3B0aW9u cyAJTkVUR1JBUEhfU09DS0VUDQojb3B0aW9ucyAJTkVUR1JBUEhfVEVFDQoj b3B0aW9ucyAJTkVUR1JBUEhfVFRZDQojb3B0aW9ucyAJTkVUR1JBUEhfVUkN CiNvcHRpb25zIAlORVRHUkFQSF9WSkMNCg0KI2RldmljZQkJbW4JIyBNdW5p Y2gzMngvRmFsYzU0IE54NjRrYml0L3NlYyBjYXJkcy4NCg0KIw0KIyBOZXR3 b3JrIGludGVyZmFjZXM6DQojICBUaGUgYGxvb3AnIHBzZXVkby1kZXZpY2Ug aXMgTUFOREFUT1JZIHdoZW4gbmV0d29ya2luZyBpcyBlbmFibGVkLg0KIyAg VGhlIGBldGhlcicgcHNldWRvLWRldmljZSBwcm92aWRlcyBnZW5lcmljIGNv ZGUgdG8gaGFuZGxlDQojICBFdGhlcm5ldHM7IGl0IGlzIE1BTkRBVE9SWSB3 aGVuIGEgRXRoZXJuZXQgZGV2aWNlIGRyaXZlciBpcw0KIyAgY29uZmlndXJl ZCBvciB0b2tlbi1yaW5nIGlzIGVuYWJsZWQuDQojICBUaGUgJ2ZkZGknIHBz ZXVkby1kZXZpY2UgcHJvdmlkZXMgZ2VuZXJpYyBjb2RlIHRvIHN1cHBvcnQg RkRESS4NCiMgIFRoZSBgYXJjbmV0JyBwc2V1ZG8tZGV2aWNlIHByb3ZpZGVz IGdlbmVyaWMgY29kZSB0byBzdXBwb3J0IEFyY25ldC4NCiMgIFRoZSBgc3Bw cCcgcHNldWRvLWRldmljZSBzZXJ2ZXMgYSBzaW1pbGFyIHJvbGUgZm9yIGNl cnRhaW4gdHlwZXMNCiMgIG9mIHN5bmNocm9ub3VzIFBQUCBsaW5rcyAobGlr ZSBgY3gnLCBgYXInKS4NCiMgIFRoZSBgc2wnIHBzZXVkby1kZXZpY2UgaW1w bGVtZW50cyB0aGUgU2VyaWFsIExpbmUgSVAgKFNMSVApIHNlcnZpY2UuDQoj ICBUaGUgYHBwcCcgcHNldWRvLWRldmljZSBpbXBsZW1lbnRzIHRoZSBQb2lu dC10by1Qb2ludCBQcm90b2NvbC4NCiMgIFRoZSBgYnBmJyBwc2V1ZG8tZGV2 aWNlIGVuYWJsZXMgdGhlIEJlcmtlbGV5IFBhY2tldCBGaWx0ZXIuICBCZQ0K IyAgYXdhcmUgb2YgdGhlIGxlZ2FsIGFuZCBhZG1pbmlzdHJhdGl2ZSBjb25z ZXF1ZW5jZXMgb2YgZW5hYmxpbmcgdGhpcw0KIyAgb3B0aW9uLiAgVGhlIG51 bWJlciBvZiBkZXZpY2VzIGRldGVybWluZXMgdGhlIG1heGltdW0gbnVtYmVy IG9mDQojICBzaW11bHRhbmVvdXMgQlBGIGNsaWVudHMgcHJvZ3JhbXMgcnVu bmFibGUuDQojICBUaGUgYGRpc2MnIHBzZXVkby1kZXZpY2UgaW1wbGVtZW50 cyBhIG1pbmltYWwgbmV0d29yayBpbnRlcmZhY2UsDQojICB3aGljaCB0aHJv d3MgYXdheSBhbGwgcGFja2V0cyBzZW50IGFuZCBuZXZlciByZWNlaXZlcyBh bnkuICBJdCBpcw0KIyAgaW5jbHVkZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMu ICBUaGlzIHNob3dzIHVwIGFzIHRoZSAnZHMnIGludGVyZmFjZS4NCiMgIFRo ZSBgdHVuJyBwc2V1ZG8tZGV2aWNlIGltcGxlbWVudHMgKHVzZXItKXBwcCBh bmQgbm9zLXR1bg0KIyAgVGhlIGBnaWYnIHBzZXVkby1kZXZpY2UgaW1wbGVt ZW50cyBJUHY2IG92ZXIgSVA0IHR1bm5lbGluZywNCiMgIElQdjQgb3ZlciBJ UHY2IHR1bm5lbGluZywgSVB2NCBvdmVyIElQdjQgdHVubmVsaW5nIGFuZA0K IyAgSVB2NiBvdmVyIElQdjYgdHVubmVsaW5nLg0KIyAgVGhlIGBmYWl0aCcg cHNldWRvLWRldmljZSBjYXB0dXJlcyBwYWNrZXRzIHNlbnQgdG8gaXQgYW5k IGRpdmVydHMgdGhlbQ0KIyAgdG8gdGhlIElQdjQvSVB2NiB0cmFuc2xhdGlv biBkYWVtb24uDQojICBUaGUgYHN0ZicgZGV2aWNlIGltcGxlbWVudHMgNnRv NCBlbmNhcHN1bGF0aW9uLg0KIyAgVGhlIGBlZicgcHNldWRvLWRldmljZSBw cm92aWRlcyBzdXBwb3J0IGZvciBtdWx0aXBsZSBldGhlcm5ldCBmcmFtZSB0 eXBlcw0KIyAgc3BlY2lmaWVkIHZpYSBFVEhFUl8qIG9wdGlvbnMuIFNlZSBl Zig0KSBmb3IgZGV0YWlscy4NCiMNCiMgVGhlIFBQUF9CU0RDT01QIG9wdGlv biBlbmFibGVzIHN1cHBvcnQgZm9yIGNvbXByZXNzKDEpIHN0eWxlIGVudGly ZQ0KIyBwYWNrZXQgY29tcHJlc3Npb24sIHRoZSBQUFBfREVGTEFURSBpcyBm b3IgemxpYi9nemlwIHN0eWxlIGNvbXByZXNzaW9uLg0KIyBQUFBfRklMVEVS IGVuYWJsZXMgY29kZSBmb3IgZmlsdGVyaW5nIHRoZSBwcHAgZGF0YSBzdHJl YW0gYW5kIHNlbGVjdGluZw0KIyBldmVudHMgZm9yIHJlc2V0dGluZyB0aGUg ZGVtYW5kIGRpYWwgYWN0aXZpdHkgdGltZXIgLSByZXF1aXJlcyBicGYuDQoj IFNlZSBwcHBkKDgpIGZvciBtb3JlIGRldGFpbHMuDQojDQpwc2V1ZG8tZGV2 aWNlCWV0aGVyCQkJI0dlbmVyaWMgRXRoZXJuZXQNCiNwc2V1ZG8tZGV2aWNl CXZsYW4JMQkJI1ZMQU4gc3VwcG9ydA0KI3BzZXVkby1kZXZpY2UJdG9rZW4J CQkjR2VuZXJpYyBUb2tlblJpbmcNCiNwc2V1ZG8tZGV2aWNlCWZkZGkJCQkj R2VuZXJpYyBGRERJDQojcHNldWRvLWRldmljZQlhcmNuZXQJCQkjR2VuZXJp YyBBcmNuZXQNCiNwc2V1ZG8tZGV2aWNlCXNwcHAJCQkjR2VuZXJpYyBTeW5j aHJvbm91cyBQUFANCnBzZXVkby1kZXZpY2UJbG9vcAkJCSNOZXR3b3JrIGxv b3BiYWNrIGRldmljZQ0KcHNldWRvLWRldmljZQlicGYJCQkjQmVya2VsZXkg cGFja2V0IGZpbHRlcg0KI3BzZXVkby1kZXZpY2UJZGlzYwkJCSNEaXNjYXJk IGRldmljZSAoZHMwLCBkczEsIGV0YykNCiNwc2V1ZG8tZGV2aWNlCXR1bgkJ CSNUdW5uZWwgZHJpdmVyIChwcHAoOCksIG5vcy10dW4oOCkpDQojcHNldWRv LWRldmljZQlzbAkyCQkjU2VyaWFsIExpbmUgSVANCiNwc2V1ZG8tZGV2aWNl CXBwcAkyCQkjUG9pbnQtdG8tcG9pbnQgcHJvdG9jb2wNCiNvcHRpb25zIAlQ UFBfQlNEQ09NUAkJI1BQUCBCU0QtY29tcHJlc3Mgc3VwcG9ydA0KI29wdGlv bnMgCVBQUF9ERUZMQVRFCQkjUFBQIHpsaWIvZGVmbGF0ZS9nemlwIHN1cHBv cnQNCiNvcHRpb25zIAlQUFBfRklMVEVSCQkjZW5hYmxlIGJwZiBmaWx0ZXJp bmcgKG5lZWRzIGJwZikNCg0KI3BzZXVkby1kZXZpY2UJZWYJCQkjIE11bHRp cGxlIGV0aGVybmV0IGZyYW1lcyBzdXBwb3J0DQojb3B0aW9ucyAJRVRIRVJf SUkJCSMgZW5hYmxlIEV0aGVybmV0X0lJIGZyYW1lDQojb3B0aW9ucyAJRVRI RVJfODAyMwkJIyBlbmFibGUgRXRoZXJuZXRfODAyLjMgKE5vdmVsbCkgZnJh bWUNCiNvcHRpb25zIAlFVEhFUl84MDIyCQkjIGVuYWJsZSBFdGhlcm5ldF84 MDIuMiBmcmFtZQ0KI29wdGlvbnMgCUVUSEVSX1NOQVAJCSMgZW5hYmxlIEV0 aGVybmV0XzgwMi4yL1NOQVAgZnJhbWUNCg0KIyBmb3IgSVB2Ng0KI3BzZXVk by1kZXZpY2UJZ2lmCQkJI0lQdjYgYW5kIElQdjQgdHVubmVsaW5nDQojcHNl dWRvLWRldmljZQlmYWl0aAkxCQkjZm9yIElQdjYgYW5kIElQdjQgdHJhbnNs YXRpb24NCiNwc2V1ZG8tZGV2aWNlCXN0ZgkJCSM2dG80IElQdjYgb3ZlciBJ UHY0IGVuY2Fwc3VsYXRpb24NCg0KIw0KIyBJbnRlcm5ldCBmYW1pbHkgb3B0 aW9uczoNCiMNCiMgTVJPVVRJTkcgZW5hYmxlcyB0aGUga2VybmVsIG11bHRp Y2FzdCBwYWNrZXQgZm9yd2FyZGVyLCB3aGljaCB3b3Jrcw0KIyB3aXRoIG1y b3V0ZWQoOCkuDQojDQojIElQRklSRVdBTEwgZW5hYmxlcyBzdXBwb3J0IGZv ciBJUCBmaXJld2FsbCBjb25zdHJ1Y3Rpb24sIGluDQojIGNvbmp1bmN0aW9u IHdpdGggdGhlIGBpcGZ3JyBwcm9ncmFtLiAgSVBGSVJFV0FMTF9WRVJCT1NF IHNlbmRzDQojIGxvZ2dlZCBwYWNrZXRzIHRvIHRoZSBzeXN0ZW0gbG9nZ2Vy LiAgSVBGSVJFV0FMTF9WRVJCT1NFX0xJTUlUDQojIGxpbWl0cyB0aGUgbnVt YmVyIG9mIHRpbWVzIGEgbWF0Y2hpbmcgZW50cnkgY2FuIGJlIGxvZ2dlZC4N CiMNCiMgV0FSTklORzogIElQRklSRVdBTEwgZGVmYXVsdHMgdG8gYSBwb2xp Y3kgb2YgImRlbnkgaXAgZnJvbSBhbnkgdG8gYW55Ig0KIyBhbmQgaWYgeW91 IGRvIG5vdCBhZGQgb3RoZXIgcnVsZXMgZHVyaW5nIHN0YXJ0dXAgdG8gYWxs b3cgYWNjZXNzLA0KIyBZT1UgV0lMTCBMT0NLIFlPVVJTRUxGIE9VVC4gIEl0 IGlzIHN1Z2dlc3RlZCB0aGF0IHlvdSBzZXQgZmlyZXdhbGxfdHlwZT1vcGVu DQojIGluIC9ldGMvcmMuY29uZiB3aGVuIGZpcnN0IGVuYWJsaW5nIHRoaXMg ZmVhdHVyZSwgdGhlbiByZWZpbmluZyB0aGUNCiMgZmlyZXdhbGwgcnVsZXMg aW4gL2V0Yy9yYy5maXJld2FsbCBhZnRlciB5b3UndmUgdGVzdGVkIHRoYXQg dGhlIG5ldyBrZXJuZWwNCiMgZmVhdHVyZSB3b3JrcyBwcm9wZXJseS4NCiMN CiMgSVBGSVJFV0FMTF9ERUZBVUxUX1RPX0FDQ0VQVCBjYXVzZXMgdGhlIGRl ZmF1bHQgcnVsZSAoYXQgYm9vdCkgdG8NCiMgYWxsb3cgZXZlcnl0aGluZy4g IFVzZSB3aXRoIGNhcmUsIGlmIGEgY3JhY2tlciBjYW4gY3Jhc2ggeW91cg0K IyBmaXJld2FsbCBtYWNoaW5lLCB0aGV5IGNhbiBnZXQgdG8geW91ciBwcm90 ZWN0ZWQgbWFjaGluZXMuICBIb3dldmVyLA0KIyBpZiB5b3UgYXJlIHVzaW5n IGl0IGFzIGFuIGFzLW5lZWRlZCBmaWx0ZXIgZm9yIHNwZWNpZmljIHByb2Js ZW1zIGFzDQojIHRoZXkgYXJpc2UsIHRoZW4gdGhpcyBtYXkgYmUgZm9yIHlv dS4gIENoYW5naW5nIHRoZSBkZWZhdWx0IHRvICdhbGxvdycNCiMgbWVhbnMg dGhhdCB5b3Ugd29uJ3QgZ2V0IHN0dWNrIGlmIHRoZSBrZXJuZWwgYW5kIC9z YmluL2lwZncgYmluYXJ5IGdldA0KIyBvdXQgb2Ygc3luYy4NCiMNCiMgSVBE SVZFUlQgZW5hYmxlcyB0aGUgZGl2ZXJ0IElQIHNvY2tldHMsIHVzZWQgYnkg YGBpcGZ3IGRpdmVydCcnDQojDQojIElQU1RFQUxUSCBlbmFibGVzIGNvZGUg dG8gc3VwcG9ydCBzdGVhbHRoIGZvcndhcmRpbmcgKGkuZS4sIGZvcndhcmRp bmcNCiMgcGFja2V0cyB3aXRob3V0IHRvdWNoaW5nIHRoZSB0dGwpLiAgVGhp cyBjYW4gYmUgdXNlZnVsIHRvIGhpZGUgZmlyZXdhbGxzDQojIGZyb20gdHJh Y2Vyb3V0ZSBhbmQgc2ltaWxhciB0b29scy4NCiMNCiMgVENQREVCVUcgaXMg dW5kb2N1bWVudGVkLg0KIw0KI29wdGlvbnMgCU1ST1VUSU5HCQkjIE11bHRp Y2FzdCByb3V0aW5nDQojb3B0aW9ucyAJSVBGSVJFV0FMTAkJI2ZpcmV3YWxs DQojb3B0aW9ucyAJSVBGSVJFV0FMTF9WRVJCT1NFCSNlbmFibGUgbG9nZ2lu ZyB0byBzeXNsb2dkKDgpDQojb3B0aW9ucyAJSVBGSVJFV0FMTF9GT1JXQVJE CSNlbmFibGUgdHJhbnNwYXJlbnQgcHJveHkgc3VwcG9ydA0KI29wdGlvbnMg CUlQRklSRVdBTExfVkVSQk9TRV9MSU1JVD0xMDAJI2xpbWl0IHZlcmJvc2l0 eQ0KI29wdGlvbnMgCUlQRklSRVdBTExfREVGQVVMVF9UT19BQ0NFUFQJI2Fs bG93IGV2ZXJ5dGhpbmcgYnkgZGVmYXVsdA0KI29wdGlvbnMgCUlQVjZGSVJF V0FMTAkJI2ZpcmV3YWxsIGZvciBJUHY2DQojb3B0aW9ucyAJSVBWNkZJUkVX QUxMX1ZFUkJPU0UNCiNvcHRpb25zIAlJUFY2RklSRVdBTExfVkVSQk9TRV9M SU1JVD0xMDANCiNvcHRpb25zIAlJUFY2RklSRVdBTExfREVGQVVMVF9UT19B Q0NFUFQNCiNvcHRpb25zIAlJUERJVkVSVAkJI2RpdmVydCBzb2NrZXRzDQoj b3B0aW9ucyAJSVBGSUxURVIJCSNpcGZpbHRlciBzdXBwb3J0DQojb3B0aW9u cyAJSVBGSUxURVJfTE9HCQkjaXBmaWx0ZXIgbG9nZ2luZw0KI29wdGlvbnMJ CUlQRklMVEVSX0RFRkFVTFRfQkxPQ0sJI2Jsb2NrIGFsbCBwYWNrZXRzIGJ5 IGRlZmF1bHQNCiNvcHRpb25zIAlJUFNURUFMVEgJCSNzdXBwb3J0IGZvciBz dGVhbHRoIGZvcndhcmRpbmcNCiNvcHRpb25zIAlUQ1BERUJVRw0KDQojIFJB TkRPTV9JUF9JRCBjYXVzZXMgdGhlIElEIGZpZWxkIGluIElQIHBhY2tldHMg dG8gYmUgcmFuZG9taXplZA0KIyBpbnN0ZWFkIG9mIGluY3JlbWVudGVkIGJ5 IDEgd2l0aCBlYWNoIHBhY2tldCBnZW5lcmF0ZWQuICBUaGlzDQojIG9wdGlv biBjbG9zZXMgYSBtaW5vciBpbmZvcm1hdGlvbiBsZWFrIHdoaWNoIGFsbG93 cyByZW1vdGUNCiMgb2JzZXJ2ZXJzIHRvIGRldGVybWluZSB0aGUgcmF0ZSBv ZiBwYWNrZXQgZ2VuZXJhdGlvbiBvbiB0aGUNCiMgbWFjaGluZSBieSB3YXRj aGluZyB0aGUgY291bnRlci4NCiNvcHRpb25zCQlSQU5ET01fSVBfSUQNCg0K IyBTdGF0aWNhbGx5IExpbmsgaW4gYWNjZXB0IGZpbHRlcnMNCiNvcHRpb25z ICAgICAgICAgICAgICAgIEFDQ0VQVF9GSUxURVJfREFUQQ0KI29wdGlvbnMg ICAgICAgICAgICAgICAgQUNDRVBUX0ZJTFRFUl9IVFRQDQoNCiMNCiMgVENQ X0RST1BfU1lORklOIGFkZHMgc3VwcG9ydCBmb3IgaWdub3JpbmcgVENQIHBh Y2tldHMgd2l0aCBTWU4rRklOLiBUaGlzDQojIHByZXZlbnRzIG5tYXAgZXQg YWwuIGZyb20gaWRlbnRpZnlpbmcgdGhlIFRDUC9JUCBzdGFjaywgYnV0IGJy ZWFrcyBzdXBwb3J0DQojIGZvciBSRkMxNjQ0IGV4dGVuc2lvbnMgYW5kIGlz IG5vdCByZWNvbW1lbmRlZCBmb3Igd2ViIHNlcnZlcnMuDQojDQojb3B0aW9u cyAJVENQX0RST1BfU1lORklOCQkjZHJvcCBUQ1AgcGFja2V0cyB3aXRoIFNZ TitGSU4NCg0KIyBJQ01QX0JBTkRMSU0gZW5hYmxlcyBpY21wIGVycm9yIHJl c3BvbnNlIGJhbmR3aWR0aCBsaW1pdGluZy4gICBZb3UNCiMgdHlwaWNhbGx5 IHdhbnQgdGhpcyBvcHRpb24gYXMgaXQgd2lsbCBoZWxwIHByb3RlY3QgdGhl IG1hY2hpbmUgZnJvbQ0KIyBELk8uUy4gcGFja2V0IGF0dGFja3MuDQojDQoj b3B0aW9ucyAJSUNNUF9CQU5ETElNDQoNCiMgRFVNTVlORVQgZW5hYmxlcyB0 aGUgImR1bW15bmV0IiBiYW5kd2lkdGggbGltaXRlci4gWW91IG5lZWQNCiMg SVBGSVJFV0FMTCBhcyB3ZWxsLiBTZWUgdGhlIGR1bW15bmV0KDQpIGFuZCBp cGZ3KDgpIG1hbnBhZ2VzIGZvciBtb3JlIGluZm8uDQojIFdoZW4geW91IHJ1 biBEVU1NWU5FVCBpdCBpcyBhZHZpc2FibGUgdG8gYWxzbyBoYXZlICJvcHRp b25zIEhaPTEwMDAiDQojIHRvIGFjaGlldmUgYSBzbW9vdGhlciBzY2hlZHVs aW5nIG9mIHRoZSB0cmFmZmljLg0KIw0KIyBCUklER0UgZW5hYmxlcyBicmlk Z2luZyBiZXR3ZWVuIGV0aGVybmV0IGNhcmRzIC0tIHNlZSBicmlkZ2UoNCku DQojIFlvdSBjYW4gdXNlIElQRklSRVdBTEwgYW5kIERVTU1ZTkVUIHRvZ2V0 aGVyIHdpdGggYnJpZGdpbmcuDQojDQojb3B0aW9ucyAJRFVNTVlORVQNCiNv cHRpb25zIAlCUklER0UNCg0KIw0KIyBBVE0gKEhBUlAgdmVyc2lvbikgb3B0 aW9ucw0KIw0KIyBBVE1fQ09SRSBpbmNsdWRlcyB0aGUgYmFzZSBBVE0gZnVu Y3Rpb25hbGl0eSBjb2RlLiAgVGhpcyBtdXN0IGJlIGluY2x1ZGVkDQojCWZv ciBBVE0gc3VwcG9ydC4NCiMNCiMgQVRNX0lQIGluY2x1ZGVzIHN1cHBvcnQg Zm9yIHJ1bm5pbmcgSVAgb3ZlciBBVE0uDQojDQojIEF0IGxlYXN0IG9uZSAo YW5kIHVzdWFsbHkgb25seSBvbmUpIG9mIHRoZSBmb2xsb3dpbmcgc2lnbmFs bGluZyBtYW5hZ2Vycw0KIyBtdXN0IGJlIGluY2x1ZGVkIChub3RlIHRoYXQg YWxsIHNpZ25hbGxpbmcgbWFuYWdlcnMgaW5jbHVkZSBQVkMgc3VwcG9ydCk6 DQojIEFUTV9TSUdQVkMgaW5jbHVkZXMgc3VwcG9ydCBmb3IgdGhlIFBWQy1v bmx5IHNpZ25hbGxpbmcgbWFuYWdlciBgc2lncHZjJy4NCiMgQVRNX1NQQU5T IGluY2x1ZGVzIHN1cHBvcnQgZm9yIHRoZSBgc3BhbnMnIHNpZ25hbGxpbmcg bWFuYWdlciwgd2hpY2ggcnVucw0KIwl0aGUgRk9SRSBTeXN0ZW1zJ3MgcHJv cHJpZXRhcnkgU1BBTlMgc2lnbmFsbGluZyBwcm90b2NvbC4NCiMgQVRNX1VO SSBpbmNsdWRlcyBzdXBwb3J0IGZvciB0aGUgYHVuaTMwJyBhbmQgYHVuaTMx JyBzaWduYWxsaW5nIG1hbmFnZXJzLA0KIwl3aGljaCBydW4gdGhlIEFUTSBG b3J1bSBVTkkgMy54IHNpZ25hbGxpbmcgcHJvdG9jb2xzLg0KIw0KIyBUaGUg YGhlYScgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBFZmZpY2ll bnQgTmV0d29ya3MsIEluYy4NCiMgRU5JLTE1NXAgQVRNIFBDSSBBZGFwdGVy Lg0KIw0KIyBUaGUgYGhmYScgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9y IHRoZSBGT1JFIFN5c3RlbXMsIEluYy4NCiMgUENBLTIwMEUgQVRNIFBDSSBB ZGFwdGVyLg0KIw0KI29wdGlvbnMgCUFUTV9DT1JFCQkjY29yZSBBVE0gcHJv dG9jb2wgZmFtaWx5DQojb3B0aW9ucyAJQVRNX0lQCQkJI0lQIG92ZXIgQVRN IHN1cHBvcnQNCiNvcHRpb25zIAlBVE1fU0lHUFZDCQkjU0lHUFZDIHNpZ25h bGxpbmcgbWFuYWdlcg0KI29wdGlvbnMgCUFUTV9TUEFOUwkJI1NQQU5TIHNp Z25hbGxpbmcgbWFuYWdlcg0KI29wdGlvbnMgCUFUTV9VTkkJCQkjVU5JIHNp Z25hbGxpbmcgbWFuYWdlcg0KI2RldmljZQkJaGVhCQkJI0VmZmljaWVudCBF TkktMTU1cCBBVE0gUENJDQojZGV2aWNlCQloZmEJCQkjRk9SRSBQQ0EtMjAw RSBBVE0gUENJDQoNCiMgREVWSUNFX1BPTExJTkcgYWRkcyBzdXBwb3J0IGZv ciBtaXhlZCBpbnRlcnJ1cHQtcG9sbGluZyBoYW5kbGluZw0KIyBvZiBuZXR3 b3JrIGRldmljZSBkcml2ZXJzLCB3aGljaCBoYXMgc2lnbmlmaWNhbnQgYmVu ZWZpdHMgaW4gdGVybXMNCiMgb2Ygcm9idXN0bmVzcyB0byBvdmVybG9hZHMg YW5kIHJlc3BvbnNpdml0eSwgYXMgd2VsbCBhcyBwZXJtaXR0aW5nDQojIGFj Y3VyYXRlIHNjaGVkdWxpbmcgb2YgdGhlIENQVSB0aW1lIGJldHdlZW4ga2Vy bmVsIG5ldHdvcmsgcHJvY2Vzc2luZw0KIyBhbmQgb3RoZXIgYWN0aXZpdGll cy4gVGhlIGRyYXdiYWNrIGlzIGEgbW9kZXJhdGUgKHVwIHRvIDEvSFogc2Vj b25kcykNCiMgcG90ZW50aWFsIGluY3JlYXNlIGluIHJlc3BvbnNlIHRpbWVz Lg0KIyBJdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0byB1c2UgSFo9MTAw MCBvciAyMDAwIHdpdGggREVWSUNFX1BPTExJTkcNCiMgdG8gYWNoaWV2ZSBz bW9vdGhlciBiZWhhdmlvdXIuDQojIEFkZGl0aW9uYWxseSwgeW91IGNhbiBl bmFibGUvZGlzYWJsZSBwb2xsaW5nIGF0IHJ1bnRpbWUgd2l0aCB0aGUNCiMg c3lzY3RsIHZhcmlhYmxlIGtlcm4ucG9sbGluZy5lbmFibGUgKGRlZmF1bHRz IG9mZiksIGFuZCBzZWxlY3QNCiMgdGhlIENQVSBmcmFjdGlvbiByZXNlcnZl ZCB0byB1c2VybGFuZCB3aXRoIHRoZSBzeXNjdGwgdmFyaWFibGUNCiMga2Vy bi5wb2xsaW5nLnVzZXJfZnJhYyAoZGVmYXVsdCA1MCwgcmFuZ2UgMC4uMTAw KS4NCiMNCiMgT25seSB0aGUgImRjIiAiZnhwIiBhbmQgInNpcyIgZGV2aWNl cyBzdXBwb3J0IHRoaXMgbW9kZSBvZiBvcGVyYXRpb24gYXQNCiMgdGhlIHRp bWUgb2YgdGhpcyB3cml0aW5nLg0KIA0KI29wdGlvbnMgICAgICAgICBERVZJ Q0VfUE9MTElORw0KDQoMDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMg RklMRVNZU1RFTSBPUFRJT05TDQoNCiMNCiMgT25seSB0aGUgcm9vdCwgL3Vz ciwgYW5kIC90bXAgZmlsZXN5c3RlbXMgbmVlZCBiZSBzdGF0aWNhbGx5DQoj IGNvbXBpbGVkOyBldmVyeXRoaW5nIGVsc2Ugd2lsbCBiZSBhdXRvbWF0aWNh bGx5IGxvYWRlZCBhdCBtb3VudA0KIyB0aW1lLiAgKEV4Y2VwdGlvbjogdGhl IFVGUyBmYW1pbHktLS1GRlMsIGFuZCBNRlMgLS0tIGNhbm5vdA0KIyBjdXJy ZW50bHkgYmUgZGVtYW5kLWxvYWRlZC4pICBTb21lIHBlb3BsZSBzdGlsbCBw cmVmZXIgdG8gc3RhdGljYWxseQ0KIyBjb21waWxlIG90aGVyIGZpbGVzeXN0 ZW1zIGFzIHdlbGwuDQojDQojIE5COiBUaGUgTlVMTCwgUE9SVEFMLCBVTUFQ IGFuZCBVTklPTiBmaWxlc3lzdGVtcyBhcmUga25vd24gdG8gYmUNCiMgYnVn Z3ksIGFuZCBXSUxMIHBhbmljIHlvdXIgc3lzdGVtIGlmIHlvdSBhdHRlbXB0 IHRvIGRvIGFueXRoaW5nIHdpdGgNCiMgdGhlbS4gIFRoZXkgYXJlIGluY2x1 ZGVkIGhlcmUgYXMgYW4gaW5jZW50aXZlIGZvciBzb21lIGVudGVycHJpc2lu Zw0KIyBzb3VsIHRvIHNpdCBkb3duIGFuZCBmaXggdGhlbS4NCiMNCg0KIyBP bmUgb2YgdGhlc2UgaXMgbWFuZGF0b3J5Og0Kb3B0aW9ucyAJRkZTCQkJI0Zh c3QgZmlsZXN5c3RlbQ0KI29wdGlvbnMgCU1GUwkJCSNNZW1vcnkgRmlsZSBT eXN0ZW0NCiNvcHRpb25zIAlORlMJCQkjTmV0d29yayBGaWxlIFN5c3RlbQ0K DQojIFRoZSByZXN0IGFyZSBvcHRpb25hbDoNCiNvcHRpb25zIAlORlNfTk9T RVJWRVIJCSNEaXNhYmxlIHRoZSBORlMtc2VydmVyIGNvZGUuDQojb3B0aW9u cyAJQ0Q5NjYwCQkJI0lTTyA5NjYwIGZpbGVzeXN0ZW0NCiNvcHRpb25zIAlG REVTQwkJCSNGaWxlIGRlc2NyaXB0b3IgZmlsZXN5c3RlbQ0KI29wdGlvbnMg CUtFUk5GUwkJCSNLZXJuZWwgZmlsZXN5c3RlbQ0KI29wdGlvbnMgCU1TRE9T RlMJCQkjTVMgRE9TIEZpbGUgU3lzdGVtDQojb3B0aW9ucyAJTlRGUwkJCSNO VCBGaWxlIFN5c3RlbQ0KI29wdGlvbnMgCU5VTExGUwkJCSNOVUxMIGZpbGVz eXN0ZW0NCiNvcHRpb25zIAlOV0ZTCQkJI05ldFdhcmUgZmlsZXN5c3RlbQ0K I29wdGlvbnMgCVBPUlRBTAkJCSNQb3J0YWwgZmlsZXN5c3RlbQ0KI29wdGlv bnMgCVBST0NGUwkJCSNQcm9jZXNzIGZpbGVzeXN0ZW0NCiNvcHRpb25zCQlT TUJGUwkJCSNTTUIvQ0lGUyBmaWxlc3lzdGVtDQojb3B0aW9ucyAJVU1BUEZT CQkJI1VJRCBtYXAgZmlsZXN5c3RlbQ0KI29wdGlvbnMgCVVOSU9OCQkJI1Vu aW9uIGZpbGVzeXN0ZW0NCiMgVGhlIHhGU19ST09UIG9wdGlvbnMgUkVRVUlS RSB0aGUgYXNzb2NpYXRlZCBgYG9wdGlvbnMgeEZTJycNCiNvcHRpb25zIAlD RDk2NjBfUk9PVAkJI0NELVJPTSB1c2FibGUgYXMgcm9vdCBkZXZpY2UNCm9w dGlvbnMgCUZGU19ST09UCQkjRkZTIHVzYWJsZSBhcyByb290IGRldmljZQ0K I29wdGlvbnMgCU5GU19ST09UCQkjTkZTIHVzYWJsZSBhcyByb290IGRldmlj ZQ0KDQojIFNvZnQgdXBkYXRlcyBpcyB0ZWNobmlxdWUgZm9yIGltcHJvdmlu ZyBmaWxlIHN5c3RlbSBzcGVlZCBhbmQNCiMgbWFraW5nIGFicnVwdCBzaHV0 ZG93biBsZXNzIHJpc2t5Lg0Kb3B0aW9ucyAJU09GVFVQREFURVMNCg0KIyBE aXJlY3RvcnkgaGFzaGluZyBpbXByb3ZlcyB0aGUgc3BlZWQgb2Ygb3BlcmF0 aW9ucyBvbiB2ZXJ5IGxhcmdlDQojIGRpcmVjdG9yaWVzIGF0IHRoZSBleHBl bnNlIG9mIHNvbWUgbWVtb3J5Lg0Kb3B0aW9ucwkJVUZTX0RJUkhBU0gNCg0K IyBNYWtlIHNwYWNlIGluIHRoZSBrZXJuZWwgZm9yIGEgcm9vdCBmaWxlc3lz dGVtIG9uIGEgbWQgZGV2aWNlLg0KIyBEZWZpbmUgdG8gdGhlIG51bWJlciBv ZiBraWxvYnl0ZXMgdG8gcmVzZXJ2ZSBmb3IgdGhlIGZpbGVzeXN0ZW0uDQoj b3B0aW9ucyAJTURfUk9PVF9TSVpFPTEwDQoNCiMgTWFrZSB0aGUgbWQgZGV2 aWNlIGEgcG90ZW50aWFsIHJvb3QgZGV2aWNlLCBlaXRoZXIgd2l0aCBwcmVs b2FkZWQNCiMgaW1hZ2VzIG9mIHR5cGUgbWZzX3Jvb3Qgb3IgbWRfcm9vdC4N CiNvcHRpb25zIAlNRF9ST09UDQoNCiMgU3BlY2lmeSBkb3VibGUgdGhlIGRl ZmF1bHQgbWF4aW11bSBzaXplIGZvciBtYWxsb2MoOSktYmFja2VkIG1kIGRl dmljZXMuDQojb3B0aW9ucyAJTURfTlNFQ1Q9NDAwMDANCg0KIyBBbGxvdyB0 aGlzIG1hbnkgc3dhcC1kZXZpY2VzLg0KIw0KIyBJbiBvcmRlciB0byBtYW5h Z2Ugc3dhcCwgdGhlIHN5c3RlbSBtdXN0IHJlc2VydmUgYml0bWFwIHNwYWNl IHRoYXQNCiMgc2NhbGVzIHdpdGggdGhlIGxhcmdlc3QgbW91bnRlZCBzd2Fw IGRldmljZSBtdWx0aXBsaWVkIGJ5IE5TV0FQREVWLCANCiMgaXJyZWdhcmRs ZXNzIG9mIHdoZXRoZXIgb3RoZXIgc3dhcCBkZXZpY2VzIGV4aXN0IG9yIG5v dC4gIFNvIGl0DQojIGlzIG5vdCBhIGdvb2QgaWRlYSB0byBtYWtlIHRoaXMg dmFsdWUgdG9vIGxhcmdlLg0KI29wdGlvbnMgCU5TV0FQREVWPTUNCg0KIyBE aXNrIHF1b3RhcyBhcmUgc3VwcG9ydGVkIHdoZW4gdGhpcyBvcHRpb24gaXMg ZW5hYmxlZC4NCiNvcHRpb25zIAlRVU9UQQkJCSNlbmFibGUgZGlzayBxdW90 YXMNCg0KIyBJZiB5b3UgYXJlIHJ1bm5pbmcgYSBtYWNoaW5lIGp1c3QgYXMg YSBmaWxlc2VydmVyIGZvciBQQyBhbmQgTUFDDQojIHVzZXJzLCB1c2luZyBT QU1CQSBvciBOZXRhdGFsaywgeW91IG1heSBjb25zaWRlciBzZXR0aW5nIHRo aXMgb3B0aW9uDQojIGFuZCBrZWVwaW5nIGFsbCB0aG9zZSB1c2VycycgZGly ZWN0b3JpZXMgb24gYSBmaWxlc3lzdGVtIHRoYXQgaXMNCiMgbW91bnRlZCB3 aXRoIHRoZSBzdWlkZGlyIG9wdGlvbi4gVGhpcyBnaXZlcyBuZXcgZmlsZXMg dGhlIHNhbWUNCiMgb3duZXJzaGlwIGFzIHRoZSBkaXJlY3RvcnkgKHNpbWls YXIgdG8gZ3JvdXApLiBJdCdzIGEgc2VjdXJpdHkgaG9sZQ0KIyBpZiB5b3Ug bGV0IHRoZXNlIHVzZXJzIHJ1biBwcm9ncmFtcywgc28gY29uZmluZSBpdCB0 byBmaWxlLXNlcnZlcnMNCiMgKGJ1dCBpdCdsbCBzYXZlIHlvdSBsb3RzIG9m IGhlYWRhY2hlcyBpbiB0aG9zZSBjYXNlcykuIFJvb3Qgb3duZWQNCiMgZGly ZWN0b3JpZXMgYXJlIGV4ZW1wdCBhbmQgWCBiaXRzIGFyZSBjbGVhcmVkLiBU aGUgc3VpZCBiaXQgbXVzdCBiZQ0KIyBzZXQgb24gdGhlIGRpcmVjdG9yeSBh cyB3ZWxsOyBzZWUgY2htb2QoMSkgUEMgb3duZXJzIGNhbid0IHNlZS9zZXQN CiMgb3duZXJzaGlwcyBzbyB0aGV5IGtlZXAgZ2V0dGluZyB0aGVpciB0b2Vz IHRyb2RkZW4gb24uIFRoaXMgc2F2ZXMNCiMgeW91IGFsbCB0aGUgc3VwcG9y dCBjYWxscyBhcyB0aGUgZmlsZXN5c3RlbSBpdCdzIHVzZWQgb24gd2lsbCBh Y3QgYXMNCiMgdGhleSBleHBlY3Q6ICJJdCdzIG15IGRpciBzbyBpdCBtdXN0 IGJlIG15IGZpbGUiLg0KIw0KI29wdGlvbnMgCVNVSURESVINCg0KIyBORlMg b3B0aW9uczoNCiNvcHRpb25zIAlORlNfTUlOQVRUUlRJTU89MwkjIFZSRUcg YXR0cmliIGNhY2hlIHRpbWVvdXQgaW4gc2VjDQojb3B0aW9ucyAJTkZTX01B WEFUVFJUSU1PPTYwDQojb3B0aW9ucyAJTkZTX01JTkRJUkFUVFJUSU1PPTMw CSMgVkRJUiBhdHRyaWIgY2FjaGUgdGltZW91dCBpbiBzZWMNCiNvcHRpb25z IAlORlNfTUFYRElSQVRUUlRJTU89NjANCiNvcHRpb25zIAlORlNfR0FUSEVS REVMQVk9MTAJIyBEZWZhdWx0IHdyaXRlIGdhdGhlciBkZWxheSAobXNlYykN CiNvcHRpb25zIAlORlNfVUlESEFTSFNJWj0yOQkjIFR1bmUgdGhlIHNpemUg b2YgbmZzc3ZjX3NvY2sgd2l0aCB0aGlzDQojb3B0aW9ucyAJTkZTX1dERUxB WUhBU0hTSVo9MTYJIyBhbmQgd2l0aCB0aGlzDQojb3B0aW9ucyAJTkZTX01V SURIQVNIU0laPTYzCSMgVHVuZSB0aGUgc2l6ZSBvZiBuZnNtb3VudCB3aXRo IHRoaXMNCiNvcHRpb25zIAlORlNfREVCVUcJCSMgRW5hYmxlIE5GUyBEZWJ1 Z2dpbmcNCg0KIyBDb2RhIHN0dWZmOg0KI29wdGlvbnMgCUNPREEJCQkjQ09E QSBmaWxlc3lzdGVtLg0KI3BzZXVkby1kZXZpY2UJdmNvZGEJNAkJI2NvZGEg bWluaWNhY2hlIDwtPiB2ZW51cyBjb21tLg0KDQojDQojIEFkZCBzdXBwb3J0 IGZvciB0aGUgRVhUMkZTIGZpbGVzeXN0ZW0gb2YgTGludXggZmFtZS4gIEJl IGEgYml0DQojIGNhcmVmdWwgd2l0aCB0aGlzIC0gdGhlIGV4dDJmcyBjb2Rl IGhhcyBhIHRlbmRlbmN5IHRvIGxhZyBiZWhpbmQNCiMgY2hhbmdlcyBhbmQg bm90IGJlIGV4ZXJjaXNlZCB2ZXJ5IG11Y2gsIHNvIG1vdW50aW5nIHJlYWQv d3JpdGUgY291bGQNCiMgYmUgZGFuZ2Vyb3VzIChhbmQgZXZlbiBtb3VudGlu ZyByZWFkIG9ubHkgY291bGQgcmVzdWx0IGluIHBhbmljcy4pDQojDQojb3B0 aW9ucyAJRVhUMkZTDQoNCiMgVXNlIHJlYWwgaW1wbGVtZW50YXRpb25zIG9m IHRoZSBhaW9fKiBzeXN0ZW0gY2FsbHMuICBUaGVyZSBhcmUgbnVtZXJvdXMN CiMgc3RhYmlsaXR5IGFuZCBzZWN1cml0eSBpc3N1ZXMgaW4gdGhlIGN1cnJl bnQgYWlvIGNvZGUgdGhhdCBtYWtlIGl0DQojIHVuc3VpdGFibGUgZm9yIGlu Y2x1c2lvbiBvbiBtYWNoaW5lcyB3aXRoIHVudHJ1c3RlZCBsb2NhbCB1c2Vy cy4NCiNvcHRpb25zIAlWRlNfQUlPDQoNCgwNCiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIw0KIyBQT1NJWCBQMTAwMy4xQg0KDQojIFJlYWwgdGltZSBleHRl bnNpb25zIGFkZGVkIGluIHRoZSAxOTkzIFBvc2l4DQojIFAxMDAzXzFCOiBJ bmZyYXN0cnVjdHVyZQ0KIyBfS1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkc6 IEJ1aWxkIGluIF9QT1NJWF9QUklPUklUWV9TQ0hFRFVMSU5HDQojIF9LUE9T SVhfVkVSU0lPTjogICAgICAgICAgICAgVmVyc2lvbiBrZXJuZWwgaXMgYnVp bHQgZm9yDQoNCm9wdGlvbnMgCVAxMDAzXzFCDQpvcHRpb25zIAlfS1BPU0lY X1BSSU9SSVRZX1NDSEVEVUxJTkcNCm9wdGlvbnMgCV9LUE9TSVhfVkVSU0lP Tj0xOTkzMDlMDQoNCgwNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIyBD TE9DSyBPUFRJT05TDQoNCiMgVGhlIGdyYW51bGFyaXR5IG9mIG9wZXJhdGlv biBpcyBjb250cm9sbGVkIGJ5IHRoZSBrZXJuZWwgb3B0aW9uIEhaIHdob3Nl DQojIGRlZmF1bHQgdmFsdWUgKDEwMCkgbWVhbnMgYSBncmFudWxhcml0eSBv ZiAxMG1zICgxcy9IWikuDQojIFNvbWUgc3Vic3lzdGVtcywgc3VjaCBhcyBE VU1NWU5FVCBvciBERVZJQ0VfUE9MTElORywgbWlnaHQgYmVuZWZpdCBmcm9t DQojIGEgc21hbGxlciBncmFudWxhcml0eSBzdWNoIGFzIDFtcyBvciBsZXNz Lg0KIyBDb25zaWRlciwgaG93ZXZlciwgdGhhdCByZWR1Y2luZyB0aGUgZ3Jh bnVsYXJpdHkgdG9vIG11Y2ggbWlnaHQNCiMgY2F1c2UgZXhjZXNzaXZlIG92 ZXJoZWFkIGluIGNsb2NrIGludGVycnVwdCBwcm9jZXNzaW5nLA0KIyBwb3Rl bnRpYWxseSBjYXVzaW5nIHRpY2tzIHRvIGJlIG1pc3NlZCBhbmQgdGh1cyBh Y3R1YWxseSByZWR1Y2luZw0KIyB0aGUgYWNjdXJhY3kgb2Ygb3BlcmF0aW9u Lg0KDQpvcHRpb25zIAlIWj0xMDAwDQoNCiMgVGhlIGZvbGxvd2luZyBvcHRp b25zIGFyZSB1c2VkIGZvciBkZWJ1Z2dpbmcgY2xvY2sgYmVoYXZpb3Igb25s eSwgYW5kDQojIHNob3VsZCBub3QgYmUgdXNlZCBmb3IgcHJvZHVjdGlvbiBz eXN0ZW1zLg0KIyANCiMgQ0xLX0NBTElCUkFUSU9OX0xPT1Agd2lsbCBydW4g dGhlIGNsb2NrIGNhbGlicmF0aW9uIGxvb3AgYXQgc3RhcnR1cA0KIyB1bnRp bCB0aGUgdXNlciBwcmVzc2VzIGEga2V5Lg0KDQojb3B0aW9ucyAJQ0xLX0NB TElCUkFUSU9OX0xPT1ANCg0KIyBUaGUgZm9sbG93aW5nIHR3byBvcHRpb25z IG1lYXN1cmUgdGhlIGZyZXF1ZW5jeSBvZiB0aGUgY29ycmVzcG9uZGluZw0K IyBjbG9jayByZWxhdGl2ZSB0byB0aGUgUlRDIChvbmJvYXJkIG1jMTQ2ODE4 YSkuDQoNCiNvcHRpb25zIAlDTEtfVVNFX0k4MjU0X0NBTElCUkFUSU9ODQoj b3B0aW9ucyAJQ0xLX1VTRV9UU0NfQ0FMSUJSQVRJT04NCg0KDA0KIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjDQojIFNDU0kgREVWSUNFUw0KDQojIFNDU0kg REVWSUNFIENPTkZJR1VSQVRJT04NCg0KIyBUaGUgU0NTSSBzdWJzeXN0ZW0g Y29uc2lzdHMgb2YgdGhlIGBiYXNlJyBTQ1NJIGNvZGUsIGEgbnVtYmVyIG9m DQojIGhpZ2gtbGV2ZWwgU0NTSSBkZXZpY2UgYHR5cGUnIGRyaXZlcnMsIGFu ZCB0aGUgbG93LWxldmVsIGhvc3QtYWRhcHRlcg0KIyBkZXZpY2UgZHJpdmVy cy4gIFRoZSBob3N0IGFkYXB0ZXJzIGFyZSBsaXN0ZWQgaW4gdGhlIElTQSBh bmQgUENJDQojIGRldmljZSBjb25maWd1cmF0aW9uIHNlY3Rpb25zIGJlbG93 Lg0KIw0KIyBCZWdpbm5pbmcgd2l0aCBGcmVlQlNEIDIuMC41IHlvdSBjYW4g d2lyZSBkb3duIHlvdXIgU0NTSSBkZXZpY2VzIHNvDQojIHRoYXQgYSBnaXZl biBidXMsIHRhcmdldCwgYW5kIExVTiBhbHdheXMgY29tZSBvbiBsaW5lIGFz IHRoZSBzYW1lDQojIGRldmljZSB1bml0LiAgSW4gZWFybGllciB2ZXJzaW9u cyB0aGUgdW5pdCBudW1iZXJzIHdlcmUgYXNzaWduZWQNCiMgaW4gdGhlIG9y ZGVyIHRoYXQgdGhlIGRldmljZXMgd2VyZSBwcm9iZWQgb24gdGhlIFNDU0kg YnVzLiAgVGhpcw0KIyBtZWFucyB0aGF0IGlmIHlvdSByZW1vdmVkIGEgZGlz ayBkcml2ZSwgeW91IG1heSBoYXZlIGhhZCB0byByZXdyaXRlDQojIHlvdXIg L2V0Yy9mc3RhYiBmaWxlLCBhbmQgYWxzbyB0aGF0IHlvdSBoYWQgdG8gYmUg Y2FyZWZ1bCB3aGVuIGFkZGluZw0KIyBhIG5ldyBkaXNrIGFzIGl0IG1heSBo YXZlIGJlZW4gcHJvYmVkIGVhcmxpZXIgYW5kIG1vdmVkIHlvdXIgZGV2aWNl DQojIGNvbmZpZ3VyYXRpb24gYXJvdW5kLg0KDQojIFRoaXMgb2xkIGJlaGF2 aW9yIGlzIG1haW50YWluZWQgYXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IuICBU aGUgdW5pdA0KIyBhc3NpZ25tZW50IGJlZ2lucyB3aXRoIHRoZSBmaXJzdCBu b24td2lyZWQgZG93biB1bml0IGZvciBhIGRldmljZQ0KIyB0eXBlLiAgRm9y IGV4YW1wbGUsIGlmIHlvdSB3aXJlIGEgZGlzayBhcyAiZGEzIiB0aGVuIHRo ZSBmaXJzdA0KIyBub24td2lyZWQgZGlzayB3aWxsIGJlIGFzc2lnbmVkIGRh NC4NCg0KIyBUaGUgc3ludGF4IGZvciB3aXJpbmcgZG93biBkZXZpY2VzIGlz Og0KDQojIGRldmljZQlzY2J1czAgYXQgYWhjMAkJIyBTaW5nbGUgYnVzIGRl dmljZQ0KIyBkZXZpY2UJc2NidXMxIGF0IGFoYzEgYnVzIDAJIyBTaW5nbGUg YnVzIGRldmljZQ0KIyBkZXZpY2UJc2NidXMzIGF0IGFoYzIgYnVzIDAJIyBU d2luIGJ1cyBkZXZpY2UNCiMgZGV2aWNlCXNjYnVzMiBhdCBhaGMyIGJ1cyAx CSMgVHdpbiBidXMgZGV2aWNlDQojIGRldmljZSAJZGEwIGF0IHNjYnVzMCB0 YXJnZXQgMCB1bml0IDANCiMgZGV2aWNlCWRhMSBhdCBzY2J1czMgdGFyZ2V0 IDENCiMgZGV2aWNlCWRhMiBhdCBzY2J1czIgdGFyZ2V0IDMNCiMgZGV2aWNl CXNhMSBhdCBzY2J1czEgdGFyZ2V0IDYNCiMgZGV2aWNlCWNkDQoNCiMgInVu aXRzIiAoU0NTSSBsb2dpY2FsIHVuaXQgbnVtYmVyKSB0aGF0IGFyZSBub3Qg c3BlY2lmaWVkIGFyZQ0KIyB0cmVhdGVkIGFzIGlmIHNwZWNpZmllZCBhcyBM VU4gMC4NCg0KIyBBbGwgU0NTSSBkZXZpY2VzIGFsbG9jYXRlIGFzIG1hbnkg dW5pdHMgYXMgYXJlIHJlcXVpcmVkLg0KDQojIFRoZSAidW5rbm93biIgZGV2 aWNlICh1az8gaW4gcHJlLTIuMC41KSBpcyBub3cgcGFydCBvZiB0aGUgYmFz ZSBTQ1NJDQojIGNvbmZpZ3VyYXRpb24gYW5kIGRvZXNuJ3QgaGF2ZSB0byBi ZSBleHBsaWNpdGx5IGNvbmZpZ3VyZWQuDQoNCmRldmljZQkJc2NidXMJCQkj YmFzZSBTQ1NJIGNvZGUNCiNkZXZpY2UJCWNoCQkJI1NDU0kgbWVkaWEgY2hh bmdlcnMNCmRldmljZQkJZGEJCQkjU0NTSSBkaXJlY3QgYWNjZXNzIGRldmlj ZXMgKGFrYSBkaXNrcykNCiNkZXZpY2UJCXNhCQkJI1NDU0kgdGFwZXMNCiNk ZXZpY2UJCWNkCQkJI1NDU0kgQ0QtUk9Ncw0KI2RldmljZQkJcGFzcwkJCSND QU0gcGFzc3Rocm91Z2ggZHJpdmVyDQojZGV2aWNlCQlwdAkJCSNTQ1NJIHBy b2Nlc3NvciB0eXBlDQojZGV2aWNlCQlzZXMJCQkjU0NTSSBTRVMvU0FGLVRF IGRyaXZlcg0KDQojIENBTSBPUFRJT05TOg0KIyBkZWJ1Z2dpbmcgb3B0aW9u czoNCiMgLS0gTk9URSAtLSAgSWYgeW91IHNwZWNpZnkgb25lIG9mIHRoZSBi dXMvdGFyZ2V0L2x1biBvcHRpb25zLCB5b3UgbXVzdA0KIyAgICAgICAgICAg ICBzcGVjaWZ5IHRoZW0gYWxsIQ0KIyBDQU1ERUJVRzogV2hlbiBkZWZpbmVk IGVuYWJsZXMgZGVidWdnaW5nIG1hY3Jvcw0KIyBDQU1fREVCVUdfQlVTOiAg RGVidWcgdGhlIGdpdmVuIGJ1cy4gIFVzZSAtMSB0byBkZWJ1ZyBhbGwgYnVz c2VzLg0KIyBDQU1fREVCVUdfVEFSR0VUOiAgRGVidWcgdGhlIGdpdmVuIHRh cmdldC4gIFVzZSAtMSB0byBkZWJ1ZyBhbGwgdGFyZ2V0cy4NCiMgQ0FNX0RF QlVHX0xVTjogIERlYnVnIHRoZSBnaXZlbiBsdW4uICBVc2UgLTEgdG8gZGVi dWcgYWxsIGx1bnMuDQojIENBTV9ERUJVR19GTEFHUzogIE9SIHRvZ2V0aGVy IENBTV9ERUJVR19JTkZPLCBDQU1fREVCVUdfVFJBQ0UsDQojICAgICAgICAg ICAgICAgICAgIENBTV9ERUJVR19TVUJUUkFDRSwgYW5kIENBTV9ERUJVR19D REINCiMNCiMgQ0FNX01BWF9ISUdIUE9XRVI6IE1heGltdW0gbnVtYmVyIG9m IGNvbmN1cnJlbnQgaGlnaCBwb3dlciAoc3RhcnQgdW5pdCkgY21kcw0KIyBT Q1NJX05PX1NFTlNFX1NUUklOR1M6IFdoZW4gZGVmaW5lZCBkaXNhYmxlcyBz ZW5zZSBkZXNjcmlwdGlvbnMNCiMgU0NTSV9OT19PUF9TVFJJTkdTOiBXaGVu IGRlZmluZWQgZGlzYWJsZXMgb3Bjb2RlIGRlc2NyaXB0aW9ucw0KIyBTQ1NJ X0RFTEFZOiBUaGUgbnVtYmVyIG9mIE1JTExJU0VDT05EUyB0byBmcmVlemUg dGhlIFNJTSAoc2NzaSBhZGFwdGVyKQ0KIyAgICAgICAgICAgICBxdWV1ZSBh ZnRlciBhIGJ1cyByZXNldCwgYW5kIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNv bmRzIHRvDQojICAgICAgICAgICAgIGZyZWV6ZSB0aGUgZGV2aWNlIHF1ZXVl IGFmdGVyIGEgYnVzIGRldmljZSByZXNldC4NCiNvcHRpb25zIAlDQU1ERUJV Rw0KI29wdGlvbnMgCUNBTV9ERUJVR19CVVM9LTENCiNvcHRpb25zIAlDQU1f REVCVUdfVEFSR0VUPS0xDQojb3B0aW9ucyAJQ0FNX0RFQlVHX0xVTj0tMQ0K I29wdGlvbnMgCUNBTV9ERUJVR19GTEFHUz0iQ0FNX0RFQlVHX0lORk98Q0FN X0RFQlVHX1RSQUNFfENBTV9ERUJVR19DREIiDQojb3B0aW9ucyAJQ0FNX01B WF9ISUdIUE9XRVI9NA0KI29wdGlvbnMgCVNDU0lfTk9fU0VOU0VfU1RSSU5H Uw0KI29wdGlvbnMgCVNDU0lfTk9fT1BfU1RSSU5HUw0KI29wdGlvbnMgCVND U0lfREVMQVk9ODAwMAkjIEJlIHBlc3NpbWlzdGljIGFib3V0IEpvZSBTQ1NJ IGRldmljZQ0KDQojIE9wdGlvbnMgZm9yIHRoZSBDQU0gQ0RST00gZHJpdmVy Og0KIyBDSEFOR0VSX01JTl9CVVNZX1NFQ09ORFM6IEd1YXJhbnRlZWQgbWlu aW11bSB0aW1lIHF1YW50dW0gZm9yIGEgY2hhbmdlciBMVU4NCiMgQ0hBTkdF Ul9NQVhfQlVTWV9TRUNPTkRTOiBNYXhpbXVtIHRpbWUgcXVhbnR1bSBwZXIg Y2hhbmdlciBMVU4sIG9ubHkNCiMgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbmZvcmNlZCBpZiB0aGVyZSBpcyBJL08gd2FpdGluZyBmb3IgYW5vdGhl ciBMVU4NCiMgVGhlIGNvbXBpbGVkIGluIGRlZmF1bHRzIGZvciB0aGVzZSB2 YXJpYWJsZXMgYXJlIDIgYW5kIDEwIHNlY29uZHMsDQojIHJlc3BlY3RpdmVs eS4NCiMNCiMgVGhlc2UgY2FuIGFsc28gYmUgY2hhbmdlZCBvbiB0aGUgZmx5 IHdpdGggdGhlIGZvbGxvd2luZyBzeXNjdGwgdmFyaWFibGVzOg0KIyBrZXJu LmNhbS5jZC5jaGFuZ2VyLm1pbl9idXN5X3NlY29uZHMNCiMga2Vybi5jYW0u Y2QuY2hhbmdlci5tYXhfYnVzeV9zZWNvbmRzDQojDQojb3B0aW9ucyAJQ0hB TkdFUl9NSU5fQlVTWV9TRUNPTkRTPTINCiNvcHRpb25zIAlDSEFOR0VSX01B WF9CVVNZX1NFQ09ORFM9MTANCg0KIyBPcHRpb25zIGZvciB0aGUgQ0FNIHNl cXVlbnRpYWwgYWNjZXNzIGRyaXZlcjoNCiMgU0FfSU9fVElNRU9VVDogVGlt ZW91dCBmb3IgcmVhZC93cml0ZS93Zm0gIG9wZXJhdGlvbnMsIGluIG1pbnV0 ZXMNCiMgU0FfU1BBQ0VfVElNRU9VVDogVGltZW91dCBmb3Igc3BhY2Ugb3Bl cmF0aW9ucywgaW4gbWludXRlcw0KIyBTQV9SRVdJTkRfVElNRU9VVDogVGlt ZW91dCBmb3IgcmV3aW5kIG9wZXJhdGlvbnMsIGluIG1pbnV0ZXMNCiMgU0Ff RVJBU0VfVElNRU9VVDogVGltZW91dCBmb3IgZXJhc2Ugb3BlcmF0aW9ucywg aW4gbWludXRlcw0KIyBTQV8xRk1fQVRfRU9EOiBEZWZhdWx0IHRvIG1vZGVs IHdoaWNoIG9ubHkgaGFzIGEgZGVmYXVsdCBvbmUgZmlsZW1hcmsgYXQgRU9U Lg0KI29wdGlvbnMgCVNBX0lPX1RJTUVPVVQ9Iig0KSINCiNvcHRpb25zIAlT QV9TUEFDRV9USU1FT1VUPSIoNjApIg0KI29wdGlvbnMgCVNBX1JFV0lORF9U SU1FT1VUPSIoMio2MCkiDQojb3B0aW9ucyAJU0FfRVJBU0VfVElNRU9VVD0i KDQqNjApIg0KI29wdGlvbnMgCVNBXzFGTV9BVF9FT0QNCg0KIyBPcHRpb25h bCB0aW1lb3V0IGZvciB0aGUgQ0FNIHByb2Nlc3NvciB0YXJnZXQgKHB0KSBk ZXZpY2UNCiMgVGhpcyBpcyBzcGVjaWZpZWQgaW4gc2Vjb25kcy4gIFRoZSBk ZWZhdWx0IGlzIDYwIHNlY29uZHMuDQojb3B0aW9ucyAJU0NTSV9QVF9ERUZB VUxUX1RJTUVPVVQ9IjYwIg0KDQojIE9wdGlvbmFsIGVuYWJsZSBvZiBkb2lu ZyBTRVMgcGFzc3Rocm91Z2ggb24gb3RoZXIgZGV2aWNlcyAoZS5nLiwgZGlz a3MpDQojDQojIE5vcm1hbGx5IGRpc2FibGVkIGJlY2F1c2UgYSBsb3Qgb2Yg bmV3ZXIgU0NTSSBkaXNrcyByZXBvcnQgdGhlbXNlbHZlcw0KIyBhcyBoYXZp bmcgU0VTIGNhcGFiaWxpdGllcywgYnV0IHRoaXMgY2FuIHRoZW4gY2xvdCB1 cCBhdHRlbXB0cyB0byBidWlsZA0KIyBidWlsZCBhIHRvcG9sb2d5IHdpdGgg dGhlIFNFUyBkZXZpY2UgdGhhdCdzIG9uIHRoZSBib3ggdGhlc2UgZHJpdmVz DQojIGFyZSBpbi4uLi4NCiNvcHRpb25zCQlTRVNfRU5BQkxFX1BBU1NUSFJP VUdIDQoNCgwNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIyBNSVNDRUxM QU5FT1VTIERFVklDRVMgQU5EIE9QVElPTlMNCg0KIyBUaGUgYHB0eScgZGV2 aWNlIHVzdWFsbHkgdHVybnMgb3V0IHRvIGJlIGBgZWZmZWN0aXZlbHkgbWFu ZGF0b3J5JycsDQojIGFzIGl0IGlzIHJlcXVpcmVkIGZvciBgdGVsbmV0ZCcs IGBybG9naW5kJywgYHNjcmVlbicsIGBlbWFjcycsIGFuZA0KIyBgeHRlcm0n LCBhbW9uZyBvdGhlcnMuDQoNCnBzZXVkby1kZXZpY2UJcHR5CQkjUHNldWRv IHR0eXMNCnBzZXVkby1kZXZpY2UJc3BlYWtlcgkJI1BsYXkgSUJNIEJBU0lD LXN0eWxlIG5vaXNlcyBvdXQgeW91ciBzcGVha2VyDQojcHNldWRvLWRldmlj ZQlnemlwCQkjRXhlYyBnemlwcGVkIGEub3V0J3MNCiNwc2V1ZG8tZGV2aWNl CXZuCQkjVm5vZGUgZHJpdmVyICh0dXJucyBhIGZpbGUgaW50byBhIGRldmlj ZSkNCiNwc2V1ZG8tZGV2aWNlCW1kCQkjTWVtb3J5L21hbGxvYyBkaXNrDQoj cHNldWRvLWRldmljZQlzbnAJCSNTbm9vcCBkZXZpY2UgLSB0byBsb29rIGF0 IHB0eS92dHkvZXRjLi4NCiNwc2V1ZG8tZGV2aWNlCWNjZAk0CSNDb25jYXRl bmF0ZWQgZGlzayBkcml2ZXINCg0KIyBDb25maWd1cmluZyBWaW51bSBpbnRv IHRoZSBrZXJuZWwgaXMgbm90IG5lY2Vzc2FyeSwgc2luY2UgdGhlIGtsZA0K IyBtb2R1bGUgZ2V0cyBzdGFydGVkIGF1dG9tYXRpY2FsbHkgd2hlbiB2aW51 bSg4KSBzdGFydHMuICBUaGlzDQojIGRldmljZSBpcyBhbHNvIHVudGVzdGVk LiAgVXNlIGF0IHlvdXIgb3duIHJpc2suDQojDQojIFRoZSBvcHRpb24gVklO VU1ERUJVRyBtdXN0IG1hdGNoIHRoZSB2YWx1ZSBzZXQgaW4gQ0ZMQUdTDQoj IGluIHNyYy9zYmluL3ZpbnVtL01ha2VmaWxlLiAgRmFpbHVyZSB0byBkbyBz byB3aWxsIHJlc3VsdCBpbg0KIyB0aGUgZm9sbG93aW5nIG1lc3NhZ2UgZnJv bSB2aW51bSg4KToNCiMNCiMgQ2FuJ3QgZ2V0IHZpbnVtIGNvbmZpZzogSW52 YWxpZCBhcmd1bWVudA0KIw0KIyBzZWUgdmludW0oNCkgZm9yIG1vcmUgcmVh c29ucyBub3QgdG8gdXNlIHRoZXNlIG9wdGlvbnMuDQojcHNldWRvLWRldmlj ZQl2aW51bQkJI1ZpbnVtIGNvbmNhdC9taXJyb3IvcmFpZCBkcml2ZXINCiNv cHRpb25zIAlWSU5VTURFQlVHCSNlbmFibGUgVmludW0gZGVidWdnaW5nIGhv b2tzDQoNCiMgS2VybmVsIHNpZGUgaWNvbnYgbGlicmFyeQ0KI29wdGlvbnMg CUxJQklDT05WDQoNCiMgU2l6ZSBvZiB0aGUga2VybmVsIG1lc3NhZ2UgYnVm ZmVyLiAgU2hvdWxkIGJlIE4gKiBwYWdlc2l6ZS4NCiNvcHRpb25zIAlNU0dC VUZfU0laRT00MDk2MA0KDQoMDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMN CiMgSEFSRFdBUkUgREVWSUNFIENPTkZJR1VSQVRJT04NCg0KIyBJU0EgYW5k IEVJU0EgZGV2aWNlczoNCiMgRUlTQSBzdXBwb3J0IGlzIGF2YWlsYWJsZSBm b3Igc29tZSBkZXZpY2UsIHNvIHRoZXkgY2FuIGJlIGF1dG8tcHJvYmVkLg0K IyBNaWNyb0NoYW5uZWwgKE1DQSkgc3VwcG9ydCBpcyBhdmFpbGFibGUgZm9y IHNvbWUgZGV2aWNlcy4NCg0KIw0KIyBNYW5kYXRvcnkgSVNBIGRldmljZXM6 IGlzYSwgbnB4DQojDQpkZXZpY2UJCWlzYQ0KDQojDQojIE9wdGlvbnMgZm9y IGBpc2EnOg0KIw0KIyBBVVRPX0VPSV8xIGVuYWJsZXMgdGhlIGBhdXRvbWF0 aWMgRU9JJyBmZWF0dXJlIGZvciB0aGUgbWFzdGVyIDgyNTlBDQojIGludGVy cnVwdCBjb250cm9sbGVyLiAgVGhpcyBzYXZlcyBhYm91dCAwLjctMS4yNSB1 c2VjIGZvciBlYWNoIGludGVycnVwdC4NCiMgVGhpcyBvcHRpb24gYnJlYWtz IHN1c3BlbmQvcmVzdW1lIG9uIHNvbWUgcG9ydGFibGVzLg0KIw0KIyBBVVRP X0VPSV8yIGVuYWJsZXMgdGhlIGBhdXRvbWF0aWMgRU9JJyBmZWF0dXJlIGZv ciB0aGUgc2xhdmUgODI1OUENCiMgaW50ZXJydXB0IGNvbnRyb2xsZXIuICBU aGlzIHNhdmVzIGFib3V0IDAuNy0xLjI1IHVzZWMgZm9yIGVhY2ggaW50ZXJy dXB0Lg0KIyBBdXRvbWF0aWMgRU9JIGlzIGRvY3VtZW50ZWQgbm90IHRvIHdv cmsgZm9yIGZvciB0aGUgc2xhdmUgd2l0aCB0aGUNCiMgb3JpZ2luYWwgaTgy NTlBLCBidXQgaXQgd29ya3MgZm9yIHNvbWUgY2xvbmVzIGFuZCBzb21lIGlu dGVncmF0ZWQNCiMgdmVyc2lvbnMuDQojDQojIE1BWE1FTSBzcGVjaWZpZXMg dGhlIGFtb3VudCBvZiBSQU0gb24gdGhlIG1hY2hpbmU7IGlmIHRoaXMgaXMg bm90DQojIHNwZWNpZmllZCwgRnJlZUJTRCB3aWxsIGZpcnN0IHJlYWQgdGhl IGFtb3VudCBvZiBtZW1vcnkgZnJvbSB0aGUgQ01PUw0KIyBSQU0sIHNvIHRo ZSBhbW91bnQgb2YgbWVtb3J5IHdpbGwgaW5pdGlhbGx5IGJlIGxpbWl0ZWQg dG8gNjRNQiBvciAxNk1CDQojIGRlcGVuZGluZyBvbiB0aGUgQklPUy4gIElm IHRoZSBCSU9TIHJlcG9ydHMgNjRNQiwgYSBtZW1vcnkgcHJvYmUgd2lsbA0K IyB0aGVuIGF0dGVtcHQgdG8gZGV0ZWN0IHRoZSBpbnN0YWxsZWQgYW1vdW50 IG9mIFJBTS4gIElmIHRoaXMgcHJvYmUNCiMgZmFpbHMgdG8gZGV0ZWN0ID42 NE1CIFJBTSB5b3Ugd2lsbCBoYXZlIHRvIHVzZSB0aGUgTUFYTUVNIG9wdGlv bi4NCiMgVGhlIGFtb3VudCBpcyBpbiBraWxvYnl0ZXMsIHNvIGZvciBhIG1h Y2hpbmUgd2l0aCAxMjhNQiBvZiBSQU0sIGl0IHdvdWxkDQojIGJlIDEzMTA3 MiAoMTI4ICogMTAyNCkuDQojDQojIEJST0tFTl9LRVlCT0FSRF9SRVNFVCBk aXNhYmxlcyB0aGUgdXNlIG9mIHRoZSBrZXlib2FyZCBjb250cm9sbGVyIHRv DQojIHJlc2V0IHRoZSBDUFUgZm9yIHJlYm9vdC4gIFRoaXMgaXMgbmVlZGVk IG9uIHNvbWUgc3lzdGVtcyB3aXRoIGJyb2tlbg0KIyBrZXlib2FyZCBjb250 cm9sbGVycy4NCiMNCiMgUEFTX0pPWVNUSUNLX0VOQUJMRSBlbmFibGVzIHRo ZSBnYW1lcG9ydCBvbiB0aGUgUHJvQXVkaW8gU3BlY3RydW0NCg0KI29wdGlv bnMgCUFVVE9fRU9JXzENCiNvcHRpb25zIAlBVVRPX0VPSV8yDQojb3B0aW9u cyAJTUFYTUVNPSIoMTI4KjEwMjQpIg0KI29wdGlvbnMgCUJST0tFTl9LRVlC T0FSRF9SRVNFVA0KI29wdGlvbnMgCVBBU19KT1lTVElDS19FTkFCTEUNCg0K IyBFbmFibGUgc3VwcG9ydCBmb3IgdGhlIGtlcm5lbCBQTEwgdG8gdXNlIGFu IGV4dGVybmFsIFBQUyBzaWduYWwsDQojIHVuZGVyIHN1cGVydmlzaW9uIG9m IFt4XW50cGQoOCkNCiMgTW9yZSBpbmZvIGluIG50cGQgZG9jdW1lbnRhdGlv bjogaHR0cDovL3d3dy5lZWNpcy51ZGVsLmVkdS9+bnRwDQoNCiNvcHRpb25z IAlQUFNfU1lOQw0KDQojIElmIHlvdSBzZWUgdGhlICJjYWxjcnU6IG5lZ2F0 aXZlIHRpbWUgb2YgJWxkIHVzZWMgZm9yIHBpZCAlZCAoJXMpXG4iDQojIG1l c3NhZ2UgeW91IHByb2JhYmx5IGhhdmUgc29tZSBicm9rZW4gc3cvaHcgd2hp Y2ggZGlzYWJsZXMgaW50ZXJydXB0cw0KIyBmb3IgdG9vIGxvbmcuICBZb3Ug Y2FuIG1ha2UgdGhlIHN5c3RlbSBtb3JlIHJlc2lzdGFudCB0byB0aGlzIGJ5 DQojIGNob29zaW5nIGEgaGlnaCB2YWx1ZSBmb3IgTlRJTUVDT1VOVEVSLiAg VGhlIGRlZmF1bHQgaXMgNSwgdGhlcmUNCiMgaXMgbm8gdXBwZXIgbGltaXQg YnV0IG1vcmUgdGhhbiBhIGNvdXBsZSBvZiBodW5kcmVkIGFyZSBub3QgcHJv ZHVjdGl2ZS4NCiMgQSBiZXR0ZXIgc3RyYXRlZ3kgbWF5IGJlIHRvIHN5c2N0 bCAtdyBrZXJuLnRpbWVjb3VudGVyLm1ldGhvZD0xDQoNCiNvcHRpb25zIAlO VElNRUNPVU5URVI9MjANCg0KIyBUaGUga2V5Ym9hcmQgY29udHJvbGxlcjsg aXQgY29udHJvbHMgdGhlIGtleWJvYXJkIGFuZCB0aGUgUFMvMiBtb3VzZS4N CmRldmljZQkJYXRrYmRjMAlhdCBpc2E/IHBvcnQgSU9fS0JEDQoNCiMgVGhl IEFUIGtleWJvYXJkDQpkZXZpY2UJCWF0a2JkMAlhdCBhdGtiZGM/IGlycSAx DQoNCiMgT3B0aW9ucyBmb3IgYXRrYmQ6DQojb3B0aW9ucyAJQVRLQkRfREZM VF9LRVlNQVAJIyBzcGVjaWZ5IHRoZSBidWlsdC1pbiBrZXltYXANCiNtYWtl b3B0aW9ucwlBVEtCRF9ERkxUX0tFWU1BUD0ianAuMTA2Ig0KDQojIFRoZXNl IG9wdGlvbnMgYXJlIHZhbGlkIGZvciBvdGhlciBrZXlib2FyZCBkcml2ZXJz IGFzIHdlbGwuDQojb3B0aW9ucyAJS0JEX0RJU0FCTEVfS0VZTUFQX0xPQUQJ IyByZWZ1c2UgdG8gbG9hZCBhIGtleW1hcA0KI29wdGlvbnMgCUtCRF9JTlNU QUxMX0NERVYJIyBpbnN0YWxsIGEgQ0RFViBlbnRyeSBpbiAvZGV2DQoNCiMg YGZsYWdzJyBmb3IgYXRrYmQ6DQojICAgICAgIDB4MDEgICAgRm9yY2UgZGV0 ZWN0aW9uIG9mIGtleWJvYXJkLCBlbHNlIHdlIGFsd2F5cyBhc3N1bWUgYSBr ZXlib2FyZA0KIyAgICAgICAweDAyICAgIERvbid0IHJlc2V0IGtleWJvYXJk LCB1c2VmdWwgZm9yIHNvbWUgbmV3ZXIgVGhpbmtQYWRzDQojCTB4MDMJRm9y Y2UgZGV0ZWN0aW9uIGFuZCBhdm9pZCByZXNldCwgbWlnaHQgaGVscCB3aXRo IGNlcnRhaW4NCiMJCWRvY2tpbmdzdGF0aW9ucw0KIyAgICAgICAweDA0ICAg IE9sZC1zdHlsZSAoWFQpIGtleWJvYXJkIHN1cHBvcnQsIHVzZWZ1bCBmb3Ig b2xkZXIgVGhpbmtQYWRzDQoNCiMgUFMvMiBtb3VzZQ0KZGV2aWNlCQlwc20w CWF0IGF0a2JkYz8gaXJxIDEyDQoNCiMgT3B0aW9ucyBmb3IgcHNtOg0KI29w dGlvbnMgCVBTTV9IT09LUkVTVU1FCQkjaG9vayB0aGUgc3lzdGVtIHJlc3Vt ZSBldmVudCwgdXNlZnVsDQoJCQkJCSNmb3Igc29tZSBsYXB0b3BzDQojb3B0 aW9ucyAJUFNNX1JFU0VUQUZURVJTVVNQRU5ECSNyZXNldCB0aGUgZGV2aWNl IGF0IHRoZSByZXN1bWUgZXZlbnQNCg0KIyBUaGUgdmlkZW8gY2FyZCBkcml2 ZXIuDQpkZXZpY2UJCXZnYTAJYXQgaXNhPw0KDQojIE9wdGlvbnMgZm9yIHZn YToNCiMgVHJ5IHRoZSBmb2xsb3dpbmcgb3B0aW9uIGlmIHRoZSBtb3VzZSBw b2ludGVyIGlzIG5vdCBkcmF3biBjb3JyZWN0bHkNCiMgb3IgZm9udCBkb2Vz IG5vdCBzZWVtIHRvIGJlIGxvYWRlZCBwcm9wZXJseS4gIE1heSBjYXVzZSBm bGlja2VyIG9uDQojIHNvbWUgc3lzdGVtcy4NCiNvcHRpb25zIAlWR0FfQUxU X1NFUUFDQ0VTUw0KDQojIElmIHlvdSBjYW4gZGlzcGVuc2Ugd2l0aCBzb21l IHZnYSBkcml2ZXIgZmVhdHVyZXMsIHlvdSBtYXkgd2FudCB0bw0KIyB1c2Ug dGhlIGZvbGxvd2luZyBvcHRpb25zIHRvIHNhdmUgc29tZSBtZW1vcnkuDQoj b3B0aW9ucyAJVkdBX05PX0ZPTlRfTE9BRElORwkjIGRvbid0IHNhdmUvbG9h ZCBmb250DQojb3B0aW9ucyAJVkdBX05PX01PREVfQ0hBTkdFCSMgZG9uJ3Qg Y2hhbmdlIHZpZGVvIG1vZGVzDQoNCiMgT2xkZXIgdmlkZW8gY2FyZHMgbWF5 IHJlcXVpcmUgdGhpcyBvcHRpb24gZm9yIHByb3BlciBvcGVyYXRpb24uDQoj b3B0aW9ucyAJVkdBX1NMT1dfSU9BQ0NFU1MJIyBkbyBieXRlLXdpZGUgaS9v J3MgdG8gVFMgYW5kIEdEQyByZWdzDQoNCiMgVGhlIGZvbGxvd2luZyBvcHRp b24gcHJvYmFibHkgd29uJ3Qgd29yayB3aXRoIHRoZSBMQ0QgZGlzcGxheXMu DQpvcHRpb25zIAlWR0FfV0lEVEg5MAkJIyBzdXBwb3J0IDkwIGNvbHVtbiBt b2Rlcw0KDQojIFRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgVkVTQSB2aWRlbyBt b2Rlcw0KI29wdGlvbnMgCVZFU0ENCg0KIyBTcGxhc2ggc2NyZWVuIGF0IHN0 YXJ0IHVwISAgU2NyZWVuIHNhdmVycyByZXF1aXJlIHRoaXMgdG9vLg0KI3Bz ZXVkby1kZXZpY2UJc3BsYXNoDQoNCiMgVGhlIHBjdnQgY29uc29sZSBkcml2 ZXIgKHZ0MjIwIGNvbXBhdGlibGUpLg0KI2RldmljZQkJdnQwCWF0IGlzYT8N CiNvcHRpb25zIAlYU0VSVkVSCQkJIyBzdXBwb3J0IGZvciBydW5uaW5nIGFu IFggc2VydmVyIG9uIHZ0DQojb3B0aW9ucyAJRkFUX0NVUlNPUgkJIyBzdGFy dCB3aXRoIGJsb2NrIGN1cnNvcg0KIyBUaGlzIFBDVlQgb3B0aW9uIGlzIGZv ciBrZXlib2FyZHMgc3VjaCBhcyB0aG9zZSB1c2VkIG9uIElCTSBUaGlua1Bh ZCBsYXB0b3BzDQojb3B0aW9ucyAJUENWVF9TQ0FOU0VUPTIgCQkjIElCTSBr ZXlib2FyZHMgYXJlIG5vbi1zdGQNCiMgT3RoZXIgUENWVCBvcHRpb25zIGFy ZSBkb2N1bWVudGVkIGluIHBjdnQoNCkuDQojb3B0aW9ucyAJUENWVF8yNExJ TkVTREVGDQojb3B0aW9ucyAJUENWVF9DVFJMX0FMVF9ERUwNCiNvcHRpb25z IAlQQ1ZUX0VNVV9NT1VTRQ0KI29wdGlvbnMgCVBDVlRfRlJFRUJTRD0yMTEN CiNvcHRpb25zIAlQQ1ZUX01FVEFfRVNDDQojb3B0aW9ucyAJUENWVF9OU0NS RUVOUz05DQojb3B0aW9ucyAJUENWVF9QUkVUVFlTQ1JOUw0KI29wdGlvbnMg CVBDVlRfU0NSRUVOU0FWRVINCiNvcHRpb25zIAlQQ1ZUX1VTRUtCRFNFQw0K I29wdGlvbnMgCVBDVlRfVlQyMjBLRVlCDQoNCiMgVGhlIHN5c2NvbnMgY29u c29sZSBkcml2ZXIgKHNjbyBjb2xvciBjb25zb2xlIGNvbXBhdGlibGUpLg0K ZGV2aWNlCQlzYzAJYXQgaXNhPw0Kb3B0aW9ucyAJTUFYQ09OUz0xNgkJIyBu dW1iZXIgb2YgdmlydHVhbCBjb25zb2xlcw0Kb3B0aW9ucyAJU0NfQUxUX01P VVNFX0lNQUdFCSMgc2ltcGxpZmllZCBtb3VzZSBjdXJzb3IgaW4gdGV4dCBt b2RlDQojb3B0aW9ucyAJU0NfREZMVF9GT05UCQkjIGNvbXBpbGUgZm9udCBp bg0KI21ha2VvcHRpb25zCVNDX0RGTFRfRk9OVD1jcDg1MA0KI29wdGlvbnMg CVNDX0RJU0FCTEVfRERCS0VZCSMgZGlzYWJsZSBgZGVidWcnIGtleQ0KI29w dGlvbnMgCVNDX0RJU0FCTEVfUkVCT09UCSMgZGlzYWJsZSByZWJvb3Qga2V5 IHNlcXVlbmNlDQpvcHRpb25zIAlTQ19ISVNUT1JZX1NJWkU9NTAwCSMgbnVt YmVyIG9mIGhpc3RvcnkgYnVmZmVyIGxpbmVzDQpvcHRpb25zIAlTQ19NT1VT RV9DSEFSPTB4MwkjIGNoYXIgY29kZSBmb3IgdGV4dCBtb2RlIG1vdXNlIGN1 cnNvcg0Kb3B0aW9ucyAJU0NfUElYRUxfTU9ERQkJIyBhZGQgc3VwcG9ydCBm b3IgdGhlIHJhc3RlciB0ZXh0IG1vZGUNCg0KIyBUaGUgZm9sbG93aW5nIG9w dGlvbnMgd2lsbCBsZXQgeW91IGNoYW5nZSB0aGUgZGVmYXVsdCBjb2xvcnMg b2Ygc3lzY29ucy4NCiNvcHRpb25zIAlTQ19OT1JNX0FUVFI9IihGR19HUkVF TnxCR19CTEFDSykiDQojb3B0aW9ucyAJU0NfTk9STV9SRVZfQVRUUj0iKEZH X1lFTExPV3xCR19HUkVFTikiDQojb3B0aW9ucyAJU0NfS0VSTkVMX0NPTlNf QVRUUj0iKEZHX1JFRHxCR19CTEFDSykiDQojb3B0aW9ucyAJU0NfS0VSTkVM X0NPTlNfUkVWX0FUVFI9IihGR19CTEFDS3xCR19SRUQpIg0KDQojIElmIHlv dSBoYXZlIGEgdHdvIGJ1dHRvbiBtb3VzZSwgeW91IG1heSB3YW50IHRvIGFk ZCB0aGUgZm9sbG93aW5nIG9wdGlvbg0KIyB0byB1c2UgdGhlIHJpZ2h0IGJ1 dHRvbiBvZiB0aGUgbW91c2UgdG8gcGFzdGUgdGV4dC4NCiNvcHRpb25zIAlT Q19UV09CVVRUT05fTU9VU0UNCg0KIyBZb3UgY2FuIHNlbGVjdGl2ZWx5IGRp c2FibGUgZmVhdHVyZXMgaW4gc3lzY29ucy4NCiNvcHRpb25zIAlTQ19OT19D VVRQQVNURQ0KI29wdGlvbnMgCVNDX05PX0ZPTlRfTE9BRElORw0KI29wdGlv bnMgCVNDX05PX0hJU1RPUlkNCiNvcHRpb25zIAlTQ19OT19TWVNNT1VTRQ0K DQojDQojIFRoZSBOdW1lcmljIFByb2Nlc3NpbmcgZVh0ZW5zaW9uIGRyaXZl ci4gIEluIGFkZGl0aW9uIHRvIHRoaXMsIHlvdQ0KIyBtYXkgY29uZmlndXJl IGEgbWF0aCBlbXVsYXRvciAoc2VlIGFib3ZlKS4gIElmIHlvdXIgbWFjaGlu ZSBoYXMgYQ0KIyBoYXJkd2FyZSBGUFUgYW5kIHRoZSBrZXJuZWwgY29uZmln dXJhdGlvbiBpbmNsdWRlcyB0aGUgbnB4IGRldmljZQ0KIyAqYW5kKiBhIG1h dGggZW11bGF0b3IgY29tcGlsZWQgaW50byB0aGUga2VybmVsLCB0aGUgaGFy ZHdhcmUgRlBVDQojIHdpbGwgYmUgdXNlZCwgdW5sZXNzIGl0IGlzIGZvdW5k IHRvIGJlIGJyb2tlbiBvciB1bmxlc3MgImZsYWdzIiB0bw0KIyBucHgwIGlu Y2x1ZGVzICIweDA4Iiwgd2hpY2ggcmVxdWVzdHMgcHJlZmVyZW5jZSBmb3Ig dGhlIGVtdWxhdG9yLg0KZGV2aWNlCQlucHgwCWF0IG5leHVzPyBwb3J0IElP X05QWCBmbGFncyAweDAgaXJxIDEzDQoNCiMNCiMgYGZsYWdzJyBmb3IgbnB4 MDoNCiMJMHgwMQlkb24ndCB1c2UgdGhlIG5weCByZWdpc3RlcnMgdG8gb3B0 aW1pemUgYmNvcHkuDQojCTB4MDIJZG9uJ3QgdXNlIHRoZSBucHggcmVnaXN0 ZXJzIHRvIG9wdGltaXplIGJ6ZXJvLg0KIwkweDA0CWRvbid0IHVzZSB0aGUg bnB4IHJlZ2lzdGVycyB0byBvcHRpbWl6ZSBjb3B5aW4gb3IgY29weW91dC4N CiMJMHgwOAl1c2UgZW11bGF0b3IgZXZlbiBpZiBoYXJkd2FyZSBGUFUgaXMg YXZhaWxhYmxlLg0KIyBUaGUgbnB4IHJlZ2lzdGVycyBhcmUgbm9ybWFsbHkg dXNlZCB0byBvcHRpbWl6ZSBjb3B5aW5nIGFuZCB6ZXJvaW5nIHdoZW4NCiMg YWxsIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgc2F0aXNmaWVk Og0KIwlJNTg2X0NQVSBpcyBhbiBvcHRpb24NCiMJdGhlIGNwdSBpcyBhbiBp NTg2IChwZXJoYXBzIG5vdCBhIFBlbnRpdW0pDQojCXRoZSBwcm9iZSBmb3Ig bnB4MCBzdWNjZWVkcw0KIwlJTlQgMTYgZXhjZXB0aW9uIGhhbmRsaW5nIHdv cmtzLg0KIyBUaGVuIGNvcHlpbmcgYW5kIHplcm9pbmcgdXNpbmcgdGhlIG5w eCByZWdpc3RlcnMgaXMgbm9ybWFsbHkgMzAtMTAwJSBmYXN0ZXIuDQojIFRo ZSBmbGFncyBjYW4gYmUgdXNlZCB0byBjb250cm9sIGNhc2VzIHdoZXJlIGl0 IGRvZXNuJ3Qgd29yayBvciBpcyBzbG93ZXIuDQojIFNldHRpbmcgdGhlbSBh dCBib290IHRpbWUgdXNpbmcgdXNlcmNvbmZpZyB3b3JrcyByaWdodCAodGhl IG9wdGltaXphdGlvbnMNCiMgYXJlIG5vdCB1c2VkIHVudGlsIGxhdGVyIGlu IHRoZSBib290c3RyYXAgd2hlbiBucHgwIGlzIGF0dGFjaGVkKS4NCiMgRmxh ZyAweDA4IGF1dG9tYXRpY2FsbHkgZGlzYWJsZXMgdGhlIGk1ODYgb3B0aW1p emVkIHJvdXRpbmVzLg0KIw0KDQojDQojIE9wdGlvbmFsIElTQSBhbmQgRUlT QSBkZXZpY2VzOg0KIw0KDQojDQojIFNDU0kgaG9zdCBhZGFwdGVyczogYGFo YScsIGBhaWMnLCBgYnQnDQojDQojIGFkdjogQWxsIE5hcnJvdyBTQ1NJIGJ1 cyBBZHZhblN5cyBjb250cm9sbGVycy4NCiMgYWR3OiBTZWNvbmQgR2VuZXJh dGlvbiBBZHZhblN5cyBjb250cm9sbGVycyBpbmNsdWRpbmcgdGhlIEFEVjk0 MFVXLg0KIyBhaGE6IEFkYXB0ZWMgMTU0eA0KIyBhaGM6IEFkYXB0ZWMgMjc0 eC8yODR4LzI5NHgNCiMgYWljOiBBZGFwdGVjIDE1MngNCiMgYnQ6IE1vc3Qg QnVzbG9naWMgY29udHJvbGxlcnMNCiMgbmN2OiBOQ1IgNTNDNTAwIGJhc2Vk IFNDU0kgaG9zdCBhZGFwdGVycy4NCiMgbnNwOiBXb3JrYml0IE5pbmphIFND U0ktMyBiYXNlZCBQQyBDYXJkIFNDU0kgaG9zdCBhZGFwdGVycy4NCiMgc3Rn OiBUTUMgMThDMzAsIDE4QzUwIGJhc2VkIElTQS9QQyBDYXJkIFNDU0kgaG9z dCBhZGFwdGVycy4NCiMNCiMgTm90ZSB0aGF0IHRoZSBvcmRlciBpcyBpbXBv cnRhbnQgaW4gb3JkZXIgZm9yIEJ1c2xvZ2ljIGNhcmRzIHRvIGJlDQojIHBy b2JlZCBjb3JyZWN0bHkuDQojDQoNCiNkZXZpY2UJCWJ0MAlhdCBpc2E/IHBv cnQgSU9fQlQwDQojZGV2aWNlCQlhZHYwCWF0IGlzYT8NCiNkZXZpY2UJCWFk dw0KI2RldmljZQkJYWhhMAlhdCBpc2E/DQojZGV2aWNlCQlhaWMwCWF0IGlz YT8NCiNkZXZpY2UJCW5jdg0KI2RldmljZQkJbnNwDQojZGV2aWNlCQlzdGcw CWF0IGlzYT8gcG9ydCAweDE0MCBpcnEgMTENCg0KIw0KIyBBZGFwdGVjIEZT QSBSQUlEIGNvbnRyb2xsZXJzLCBpbmNsdWRpbmcgaW50ZWdyYXRlZCBERUxM IGNvbnRyb2xsZXIsDQojIHRoZSBEZWxsIFBFUkMgMi9RQyBhbmQgdGhlIEhQ IE5ldFJBSUQtNE0NCiMNCiMgQUFDX0NPTVBBVF9MSU5VWAlJbmNsdWRlIGNv ZGUgdG8gc3VwcG9ydCBMaW51eC1iaW5hcnkgbWFuYWdlbWVudA0KIwkJCXV0 aWxpdGllcyAocmVxdWlyZXMgTGludXggY29tcGF0aWJpbGl0eQ0KIwkJCXN1 cHBvcnQpLg0KIw0KI2RldmljZQkJYWFjDQoNCiMNCiMgQ29tcGFxIFNtYXJ0 IFJBSUQsIE15bGV4IERBQzk2MCBhbmQgQU1JIE1lZ2FSQUlEIGNvbnRyb2xs ZXJzLiAgT25seQ0KIyBvbmUgZW50cnkgaXMgbmVlZGVkOyB0aGUgY29kZSB3 aWxsIGZpbmQgYW5kIGNvbmZpZ3VyZSBhbGwgc3VwcG9ydGVkDQojIGNvbnRy b2xsZXJzLg0KIw0KI2RldmljZQkJaWRhCQkjIENvbXBhcSBTbWFydCBSQUlE DQojZGV2aWNlCQltbHgJCSMgTXlsZXggREFDOTYwDQojZGV2aWNlCQlhbXIJ CSMgQU1JIE1lZ2FSQUlEDQoNCiMNCiMgM3dhcmUgQVRBIFJBSUQNCiMNCiNk ZXZpY2UJCXR3ZQkJIyAzd2FyZSBBVEEgUkFJRA0KDQojDQojIFRoZSAnQVRB JyBkcml2ZXIgc3VwcG9ydHMgYWxsIEFUQSBhbmQgQVRBUEkgZGV2aWNlcy4N CiMgSXQgY2FuIHJldXNlIHRoZSBtYWpvcnMgb2Ygd2QuYyBmb3IgYm9vdGlu ZyBwdXJwb3Nlcy4NCiMgWW91IG9ubHkgbmVlZCBvbmUgImRldmljZSBhdGEi IGZvciBpdCB0byBmaW5kIGFsbA0KIyBQQ0kgQVRBL0FUQVBJIGRldmljZXMg b24gbW9kZXJuIG1hY2hpbmVzLg0KZGV2aWNlCQlhdGENCmRldmljZQkJYXRh ZGlzawkJIyBBVEEgZGlzayBkcml2ZXMNCmRldmljZQkJYXRhcGljZAkJIyBB VEFQSSBDRFJPTSBkcml2ZXMNCiNkZXZpY2UJCWF0YXBpZmQJCSMgQVRBUEkg ZmxvcHB5IGRyaXZlcw0KI2RldmljZQkJYXRhcGlzdAkJIyBBVEFQSSB0YXBl IGRyaXZlcw0KDQojVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSB2YWxpZCBv biB0aGUgQVRBIGRyaXZlcjoNCiMNCiMgQVRBX1NUQVRJQ19JRDoJY29udHJv bGxlciBudW1iZXJpbmcgaXMgc3RhdGljIChsaWtlIHRoZSBvbGQgZHJpdmVy KQ0KIwkJCWVsc2UgdGhlIGRldmljZSBudW1iZXJzIGFyZSBkeW5hbWljYWxs eSBhbGxvY2F0ZWQuDQojb3B0aW9ucyAJQVRBX1NUQVRJQ19JRA0KDQojDQoj IEZvciBvbGRlciBub24tUENJIHN5c3RlbXMsIHRoZXNlIGFyZSB0aGUgbGlu ZXMgdG8gdXNlOg0KI2RldmljZQkJYXRhMAlhdCBpc2E/IHBvcnQgSU9fV0Qx IGlycSAxNA0KI2RldmljZQkJYXRhMQlhdCBpc2E/IHBvcnQgSU9fV0QyIGly cSAxNQ0KDQojDQojIFNULTUwNiwgRVNESSwgYW5kIElERSBoYXJkIGRpc2tz OiBgd2RjJyBhbmQgYHdkJw0KIw0KIyBUaGUgZmxhZ3MgZmllbGRzIGFyZSB1 c2VkIHRvIGVuYWJsZSB0aGUgbXVsdGktc2VjdG9yIEkvTyBhbmQNCiMgdGhl IDMyQklUIEkvTyBtb2Rlcy4gIFRoZSBmbGFncyBtYXkgYmUgdXNlZCBpbiBl aXRoZXIgdGhlIGNvbnRyb2xsZXINCiMgZGVmaW5pdGlvbiBvciBpbiB0aGUg aW5kaXZpZHVhbCBkaXNrIGRlZmluaXRpb25zLiAgVGhlIGNvbnRyb2xsZXIN CiMgZGVmaW5pdGlvbiBpcyBzdXBwb3J0ZWQgZm9yIHRoZSBib290IGNvbmZp Z3VyYXRpb24gc3R1ZmYuDQojDQojIEVhY2ggZHJpdmUgaGFzIGEgMTYgYml0 IGZsYWdzIHZhbHVlIGRlZmluZWQ6DQojCVRoZSBsb3cgOCBiaXRzIGFyZSB0 aGUgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIG11bHRpLXNlY3RvciBJL08sDQoj CXdoZXJlIDB4ZmYgZGVmYXVsdHMgdG8gdGhlIG1heGltdW0gdGhhdCB0aGUg ZHJpdmUgY2FuIGhhbmRsZS4NCiMJVGhlIGhpZ2ggYml0IG9mIHRoZSAxNiBi aXQgZmxhZ3MgKDB4ODAwMCkgYWxsb3dzIHByb2JpbmcgZm9yDQojCTMyIGJp dCB0cmFuc2ZlcnMuICBCaXQgMTQgKDB4NDAwMCkgZW5hYmxlcyBhIGhhY2sg dG8gd2FrZQ0KIwl1cCBwb3dlcmVkLWRvd24gbGFwdG9wIGRyaXZlcy4gIEJp dCAxMyAoMHgyMDAwKSBhbGxvd3MNCiMJcHJvYmluZyBmb3IgUENJIElERSBE TUEgY29udHJvbGxlcnMsIHN1Y2ggYXMgSW50ZWwncyBQSUlYDQojCXNvdXRo IGJyaWRnZXMuIEJpdCAxMiAoMHgxMDAwKSBzZXRzIExCQSBtb2RlIGluc3Rl YWQgb2YgdGhlDQojCWRlZmF1bHQgQ0hTIG1vZGUgZm9yIGFjY2Vzc2luZyB0 aGUgZHJpdmUuIFNlZSB0aGUgd2QuNCBtYW4gcGFnZS4NCiMNCiMgVGhlIGZs YWdzIGZpZWxkIGZvciB0aGUgZHJpdmVzIGNhbiBiZSBzcGVjaWZpZWQgaW4g dGhlIGNvbnRyb2xsZXINCiMgc3BlY2lmaWNhdGlvbiB3aXRoIHRoZSBsb3cg MTYgYml0cyBmb3IgZHJpdmUgMCwgYW5kIHRoZSBoaWdoIDE2IGJpdHMNCiMg Zm9yIGRyaXZlIDEuDQojIGUuZy46DQojZGV2aWNlCQl3ZGMwCWF0IGlzYT8g cG9ydCBJT19XRDEgaXJxIDE0IGZsYWdzIDB4MDBmZjgwMDQNCiMNCiMgc3Bl Y2lmaWVzIHRoYXQgZHJpdmUgMCB3aWxsIGJlIGFsbG93ZWQgdG8gcHJvYmUg Zm9yIDMyIGJpdCB0cmFuc2ZlcnMgYW5kDQojIGEgbWF4aW11bSBtdWx0aS1z ZWN0b3IgdHJhbnNmZXIgb2YgNCBzZWN0b3JzLCBhbmQgZHJpdmUgMSB3aWxs IG5vdCBiZQ0KIyBhbGxvd2VkIHRvIHByb2JlIGZvciAzMiBiaXQgdHJhbnNm ZXJzLCBidXQgd2lsbCBhbGxvdyBtdWx0aS1zZWN0b3INCiMgdHJhbnNmZXJz IHVwIHRvIHRoZSBtYXhpbXVtIHRoYXQgdGhlIGRyaXZlIHN1cHBvcnRzLg0K Iw0KIyBJZiB5b3UgYXJlIHVzaW5nIGEgUENJIGNvbnRyb2xsZXIgdGhhdCBp cyBub3QgcnVubmluZyBpbiBjb21wYXRpYmlsaXR5DQojIG1vZGUgKGZvciBl eGFtcGxlLCBpdCBpcyBhIDJuZCBJREUgUENJIGludGVyZmFjZSksIHRoZW4g dXNlIGNvbmZpZyBsaW5lKHMpDQojIHN1Y2ggYXM6DQojDQojZGV2aWNlCQl3 ZGMyCWF0IGlzYT8gcG9ydCAwIGZsYWdzIDB4YTBmZmEwZmYNCiNkZXZpY2UJ CXdkNAlhdCB3ZGMyIGRyaXZlIDANCiNkZXZpY2UJCXdkNQlhdCB3ZGMyIGRy aXZlIDENCiMNCiNkZXZpY2UJCXdkYzMJYXQgaXNhPyBwb3J0IDAgZmxhZ3Mg MHhhMGZmYTBmZg0KI2RldmljZQkJd2Q2CWF0IHdkYzMgZHJpdmUgMA0KI2Rl dmljZQkJd2Q3CWF0IHdkYzMgZHJpdmUgMQ0KIw0KIyBOb3RlIHRoYXQgdGhl IGFib3ZlIGNvbmZpZyB3b3VsZCBiZSB1c2VmdWwgZm9yIGEgUHJvbWlzZSBj YXJkLCB3aGVuIHVzZWQNCiMgb24gYSBNQiB0aGF0IGFscmVhZHkgaGFzIGEg UElJWCBjb250cm9sbGVyLiAgTm90ZSB0aGUgYm9ndXMgaXJxIGFuZCBwb3J0 DQojIGVudHJpZXMuICBUaGVzZSBhcmUgYXV0b21hdGljYWxseSBmaWxsZWQg aW4gYnkgdGhlIElERS9QQ0kgc3VwcG9ydC4NCiMNCiMgVGhpcyBkcml2ZXIg bXVzdCBiZSBjb21tZW50ZWQgb3V0IGJlY2F1c2UgaXQgaXMgbXV0dWFsbHkg ZXhjbHVzaXZlIHdpdGgNCiMgdGhlIGF0YSg0KSBkcml2ZXIuDQojDQojZGV2 aWNlCQl3ZGMwCWF0IGlzYT8gcG9ydCBJT19XRDEgaXJxIDE0DQojZGV2aWNl CQl3ZDAJYXQgd2RjMCBkcml2ZSAwDQojZGV2aWNlCQl3ZDEJYXQgd2RjMCBk cml2ZSAxDQojZGV2aWNlCQl3ZGMxCWF0IGlzYT8gcG9ydCBJT19XRDIgaXJx IDE1DQojZGV2aWNlCQl3ZDIJYXQgd2RjMSBkcml2ZSAwDQojZGV2aWNlCQl3 ZDMJYXQgd2RjMSBkcml2ZSAxDQoNCiMNCiMgVGhpcyBvcHRpb24gYWxsb3cg eW91IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb2JlIHRpbWUgZm9yIElE RQ0KIyBkZXZpY2VzLCB0byBnZXQgYSBmYXN0ZXIgcHJvYmUuICBTZXR0aW5n IHRoaXMgYmVsb3cgMTAwMDAgdmlvbGF0ZQ0KIyB0aGUgSURFIHNwZWNzLCBi dXQgbWF5IHN0aWxsIHdvcmsgZm9yIHlvdSAoaXQgd2lsbCB3b3JrIGZvciBt b3N0DQojIHBlb3BsZSkuDQojDQojb3B0aW9ucyAJSURFX0RFTEFZPTgwMDAJ IyBCZSBvcHRpbWlzdGljIGFib3V0IEpvZSBJREUgZGV2aWNlDQoNCiMgSURF IENELVJPTSAmIENELVIvUlcgIGRyaXZlciAtIHJlcXVpcmVzIHdkYyBjb250 cm9sbGVyDQojZGV2aWNlCQl3Y2QNCg0KIyBJREUgZmxvcHB5IGRyaXZlciAt IHJlcXVpcmVzIHdkYyBjb250cm9sbGVyDQojZGV2aWNlCQl3ZmQNCg0KIyBJ REUgdGFwZSBkcml2ZXIgLSByZXF1aXJlcyB3ZGMgY29udHJvbGxlcg0KI2Rl dmljZQkJd3N0DQoNCg0KIw0KIyBTdGFuZGFyZCBmbG9wcHkgZGlzayBjb250 cm9sbGVyczogYGZkYycgYW5kIGBmZCcNCiMNCmRldmljZQkJZmRjMAlhdCBp c2E/IHBvcnQgSU9fRkQxIGlycSA2IGRycSAyDQojDQojIEZEQ19ERUJVRyBl bmFibGVzIGZsb3BweSBkZWJ1Z2dpbmcuICBTaW5jZSB0aGUgZGVidWcgb3V0 cHV0IGlzIGh1Z2UsIHlvdQ0KIyBnb3R0YSB0dXJuIGl0IGFjdHVhbGx5IG9u IGJ5IHNldHRpbmcgdGhlIHZhcmlhYmxlIGZkX2RlYnVnIHdpdGggRERCLA0K IyBob3dldmVyLg0KI29wdGlvbnMgCUZEQ19ERUJVRw0KDQpkZXZpY2UJCWZk MAlhdCBmZGMwIGRyaXZlIDANCiNkZXZpY2UJCWZkMQlhdCBmZGMwIGRyaXZl IDENCg0KIyBNLXN5c3RlbXMgRGlza09uY2hpcCBwcm9kdWN0cyBzZWUgc3Jj L3N5cy9jb250cmliL2Rldi9mbGEvUkVBRE1FDQojZGV2aWNlCQlmbGEwCWF0 IGlzYT8NCg0KIw0KIyBPdGhlciBzdGFuZGFyZCBQQyBoYXJkd2FyZTogYG1z ZScsIGBzaW8nLCBldGMuDQojDQojIG1zZTogTG9naXRlY2ggYW5kIEFUSSBJ blBvcnQgYnVzIG1vdXNlIHBvcnRzDQojIHNpbzogc2VyaWFsIHBvcnRzIChz ZWUgc2lvKDQpKQ0KDQojZGV2aWNlCQltc2UwCWF0IGlzYT8gcG9ydCAweDIz YyBpcnEgNQ0KDQpkZXZpY2UJCXNpbzAJYXQgaXNhPyBwb3J0IElPX0NPTTEg ZmxhZ3MgMHgxMCBpcnEgNA0KDQojDQojIGBmbGFncycgZm9yIHNlcmlhbCBk cml2ZXJzIHRoYXQgc3VwcG9ydCBjb25zb2xlcyAob25seSBmb3Igc2lvIG5v dyk6DQojCTB4MTAJZW5hYmxlIGNvbnNvbGUgc3VwcG9ydCBmb3IgdGhpcyB1 bml0LiAgVGhlIG90aGVyIGNvbnNvbGUgZmxhZ3MNCiMJCWFyZSBpZ25vcmVk IHVubGVzcyB0aGlzIGlzIHNldC4gIEVuYWJsaW5nIGNvbnNvbGUgc3VwcG9y dCBkb2VzDQojCQlub3QgbWFrZSB0aGUgdW5pdCB0aGUgcHJlZmVycmVkIGNv bnNvbGUgLSBib290IHdpdGggLWggb3Igc2V0DQojCQl0aGUgMHgyMCBmbGFn IGZvciB0aGF0LiAgQ3VycmVudGx5LCBhdCBtb3N0IG9uZSB1bml0IGNhbiBo YXZlDQojCQljb25zb2xlIHN1cHBvcnQ7IHRoZSBmaXJzdCBvbmUgKGluIGNv bmZpZyBmaWxlIG9yZGVyKSB3aXRoDQojCQl0aGlzIGZsYWcgc2V0IGlzIHBy ZWZlcnJlZC4gIFNldHRpbmcgdGhpcyBmbGFnIGZvciBzaW8wIGdpdmVzDQoj CQl0aGUgb2xkIGJlaGF2aW91ci4NCiMJMHgyMAlmb3JjZSB0aGlzIHVuaXQg dG8gYmUgdGhlIGNvbnNvbGUgKHVubGVzcyB0aGVyZSBpcyBhbm90aGVyDQoj CQloaWdoZXIgcHJpb3JpdHkgY29uc29sZSkuICBUaGlzIHJlcGxhY2VzIHRo ZSBDT01DT05TT0xFIG9wdGlvbi4NCiMJMHg0MAlyZXNlcnZlIHRoaXMgdW5p dCBmb3IgbG93IGxldmVsIGNvbnNvbGUgb3BlcmF0aW9ucy4gIERvIG5vdA0K IwkJYWNjZXNzIHRoZSBkZXZpY2UgaW4gYW55IG5vcm1hbCB3YXkuDQojCTB4 ODAJdXNlIHRoaXMgcG9ydCBmb3Igc2VyaWFsIGxpbmUgZ2RiIHN1cHBvcnQg aW4gZGRiLg0KIw0KIyBQblAgYGZsYWdzJyAoc2V0IHZpYSB1c2VyY29uZmln IHVzaW5nIHBucCB4IGZsYWdzIHkpDQojCTB4MQlkaXNhYmxlIHByb2Jpbmcg b2YgdGhpcyBkZXZpY2UuICBVc2VkIHRvIHByZXZlbnQgeW91ciBtb2RlbQ0K IwkJZnJvbSBiZWluZyBhdHRhY2hlZCBhcyBhIFBuUCBtb2RlbS4NCiMNCg0K IyBPcHRpb25zIGZvciBzZXJpYWwgZHJpdmVycyB0aGF0IHN1cHBvcnQgY29u c29sZXMgKG9ubHkgZm9yIHNpbyBub3cpOg0KI29wdGlvbnMgCUJSRUFLX1RP X0RFQlVHR0VSCSNhIEJSRUFLIG9uIGEgY29tY29uc29sZSBnb2VzIHRvDQoJ CQkJCSNEREIsIGlmIGF2YWlsYWJsZS4NCiNvcHRpb25zIAlDT05TUEVFRD0x MTUyMDAJCSMgc3BlZWQgZm9yIHNlcmlhbCBjb25zb2xlDQoJCQkJCSMgKGRl ZmF1bHQgOTYwMCkNCg0KIyBTb2xhcmlzIGltcGxlbWVudHMgYSBuZXcgQlJF QUsgd2hpY2ggaXMgaW5pdGlhdGVkIGJ5IGEgY2hhcmFjdGVyDQojIHNlcXVl bmNlIENSIH4gXmIgd2hpY2ggaXMgc2ltaWxhciB0byBhIGZhbWlsaWFyIHBh dHRlcm4gdXNlZCBvbg0KIyBTdW4gc2VydmVycyBieSB0aGUgUmVtb3RlIENv bnNvbGUuDQojb3B0aW9ucyAJQUxUX0JSRUFLX1RPX0RFQlVHR0VSDQoNCiMg T3B0aW9ucyBmb3Igc2lvOg0KI29wdGlvbnMgCUNPTV9FU1AJCQkjY29kZSBm b3IgSGF5ZXMgRVNQDQojb3B0aW9ucyAJQ09NX01VTFRJUE9SVAkJI2NvZGUg Zm9yIHNvbWUgY2FyZHMgd2l0aCBzaGFyZWQgSVJRcw0KDQojIE90aGVyIGZs YWdzIGZvciBzaW8gdGhhdCBhcmVuJ3QgZG9jdW1lbnRlZCBpbiB0aGUgbWFu IHBhZ2UuDQojCTB4MjAwMDAJZW5hYmxlIGhhcmR3YXJlIFJUUy9DVFMgYW5k IGxhcmdlciBGSUZPcy4gIE9ubHkgd29ya3MgZm9yDQojCQlTVDE2NjUwQS1j b21wYXRpYmxlIFVBUlRzLg0KDQojIFBDSSBVbml2ZXJzYWwgQ29tbXVuaWNh dGlvbnMgZHJpdmVyDQojIFN1cHBvcnRzIHZhcmlvdXMgc2luZ2xlIGFuZCBt dWx0aSBwb3J0IFBDSSBzZXJpYWwgY2FyZHMuIE1heWJlIGxhdGVyDQojIGFs c28gdGhlIHBhcmFsbGVsIHBvcnRzIG9uIGNvbWJpbmF0aW9uIHNlcmlhbC9w YXJhbGxlbCBjYXJkcy4gTmV3IGNhcmRzDQojIGNhbiBiZSBhZGRlZCBpbiBz cmMvc3lzL2Rldi9wdWMvcHVjZGF0YS5jLg0KIw0KIyBJZiB0aGUgUFVDX0ZB U1RJTlRSIG9wdGlvbiBpcyB1c2VkIHRoZSBkcml2ZXIgd2lsbCB0cnkgdG8g dXNlIGZhc3QNCiMgaW50ZXJydXB0cy4gVGhlIGNhcmQgbXVzdCB0aGVuIGJl IHRoZSBvbmx5IHVzZXIgb2YgdGhhdCBpbnRlcnJ1cHQuDQojIEludGVycnVw dHMgY2Fubm90IGJlIHNoYXJlZCB3aGVuIHVzaW5nIFBVQ19GQVNUSU5UUi4N CiNkZXZpY2UJCXB1Yw0KI29wdGlvbnMgCVBVQ19GQVNUSU5UUg0KDQojDQoj IE5ldHdvcmsgaW50ZXJmYWNlczogYGN4JywgYGVkJywgYGVsJywgYGVwJywg YGllJywgYGlzJywgYGxlJywgYGxuYycNCiMNCiMgYXI6IEFybmV0IFNZTkMv NTcwaSBoZGxjIHN5bmMgMi80IHBvcnQgVi4zNS9YLjIxIHNlcmlhbCBkcml2 ZXIgKHJlcXVpcmVzIHNwcHApDQojIGNtOiBBcmNuZXQgU01DIENPTTkwYzI2 IC8gU01DIENPTTkwYzU2DQojICAgICAoYW5kIFNNQyBDT005MGM2NiBpbiAn NTYgY29tcGF0aWJpbGl0eSBtb2RlKSBhZGFwdGVycy4NCiMgY3M6IElCTSBF dGhlcmpldCBhbmQgb3RoZXIgQ3J5c3RhbCBTZW1pIENTODl4MC1iYXNlZCBh ZGFwdGVycw0KIyBjeDogQ3Jvbnl4L1NpZ21hIG11bHRpcG9ydCBzeW5jL2Fz eW5jICh3aXRoIENpc2NvIG9yIFBQUCBmcmFtaW5nKQ0KIyBlZDogV2VzdGVy biBEaWdpdGFsIGFuZCBTTUMgODB4eDsgTm92ZWxsIE5FMTAwMCBhbmQgTkUy MDAwOyAzQ29tIDNDNTAzDQojIGVsOiAzQ29tIDNDNTAxIChzbG93ISkNCiMg ZXA6IDNDb20gM0M1MDkNCiMgZXg6IEludGVsIEV0aGVyRXhwcmVzcyBQcm8v MTAgYW5kIG90aGVyIGk4MjU5NS1iYXNlZCBhZGFwdGVycw0KIyBmZTogRnVq aXRzdSBNQjg2OTYwQS9NQjg2OTY1QSBFdGhlcm5ldA0KIyBpZTogQVQmVCBT dGFyTEFOIDEwIGFuZCBFTjEwMDsgM0NvbSAzQzUwNzsgdW5rbm93biBOSTUy MTA7IEludGVsIEV0aGVyRXhwcmVzcw0KIyBsZTogRGlnaXRhbCBFcXVpcG1l bnQgRXRoZXJXb3JrcyAyIGFuZCBFdGhlcldvcmtzIDMgKERFUENBLCBERTEw MCwNCiMgICAgIERFMTAxLCBERTIwMCwgREUyMDEsIERFMjAyLCBERTIwMywg REUyMDQsIERFMjA1LCBERTQyMikNCiMgbG5jOiBMYW5jZS9QQ25ldCBjYXJk cyAoSXNvbGFuLCBOb3ZlbGwgTkUyMTAwLCBORTMyLVZMLCBBTUQgQW03OTkw ICYgQW03OUM5NjApDQojIHJkcDogUmVhbFRlayBSVEwgODAwMi1iYXNlZCBw b2NrZXQgZXRoZXJuZXQgYWRhcHRlcnMNCiMgc2JuaTogR3JhbmNoIFNCTkkx Mi14eCBhZGFwdGVycw0KIyBzcjogUklTQ29tL04yIGhkbGMgc3luYyAxLzIg cG9ydCBWLjM1L1guMjEgc2VyaWFsIGRyaXZlciAocmVxdWlyZXMgc3BwcCkN CiMgd2w6IEx1Y2VudCBXYXZlbGFuIChJU0EgY2FyZCBvbmx5KS4NCiMgYXdp OiBJRUVFIDgwMi4xMWIgUFJJU00gSSBjYXJkcy4NCiMgd2k6IEx1Y2VudCBX YXZlTEFOL0lFRUUgODAyLjExIFBDTUNJQSBhZGFwdGVycy4gTm90ZTogdGhp cyBzdXBwb3J0cyBib3RoDQojICAgICB0aGUgUENNQ0lBIGFuZCBJU0EgY2Fy ZHM6IHRoZSBJU0EgY2FyZCBpcyByZWFsbHkgYSBQQ01DSUEgdG8gSVNBDQoj ICAgICBicmlkZ2Ugd2l0aCBhIFBDTUNJQSBhZGFwdGVyIHBsdWdnZWQgaW50 byBpdC4NCiMgYW46IEFpcm9uZXQgNDUwMC80ODAwIDgwMi4xMSB3aXJlbGVz cyBhZGFwdGVycy4gU3VwcG9ydHMgdGhlIFBDTUNJQSwNCiMgICAgIFBDSSBh bmQgSVNBIHZhcmlldGllcy4NCiMgeGU6IFhpcmNvbS9JbnRlbCBFdGhlckV4 cHJlc3MgUHJvMTAwLzE2IFBDIENhcmQgZXRoZXJuZXQgY29udHJvbGxlci4N CiMgcmF5OiBSYXl0aGVvbiBSYXlsaW5rIDgwMi4xMSB3aXJlbGVzcyBOSUNz LCBPRU0gYXMgV2ViZ2VhciBBdmlhdG9yIDIuNEdIeg0KIyBvbHRyOiBPbGlj b20gSVNBIHRva2VuLXJpbmcgYWRhcHRlcnMgT0MtMzExNSwgT0MtMzExNywg T0MtMzExOCBhbmQgT0MtMzEzMw0KIyAgICAgICAobm8gb3B0aW9ucyBuZWVk ZWQpDQojDQojZGV2aWNlIGFyMCBhdCBpc2E/IHBvcnQgMHgzMDAgaXJxIDEw IGlvbWVtIDB4ZDAwMDANCiNkZXZpY2UgY20wIGF0IGlzYT8gcG9ydCAweDJl MCBpcnEgOSBpb21lbSAweGRjMDAwDQojZGV2aWNlIGNzMCBhdCBpc2E/IHBv cnQgMHgzMDANCiNkZXZpY2UgY3gwIGF0IGlzYT8gcG9ydCAweDI0MCBpcnEg MTUgZHJxIDcNCmRldmljZSBlZDANCiMgYXQgaXNhPyBwb3J0IDB4MjgwIGly cSA1IGlvbWVtIDB4ZDgwMDANCiNkZXZpY2UgZWwwIGF0IGlzYT8gcG9ydCAw eDMwMCBpcnEgOQ0KI2RldmljZSBlcA0KI2RldmljZSBleA0KI2RldmljZSBm ZTAgYXQgaXNhPyBwb3J0IDB4MzAwDQojZGV2aWNlIGllMCBhdCBpc2E/IHBv cnQgMHgzMDAgaXJxIDUgaW9tZW0gMHhkMDAwMA0KI2RldmljZSBpZTEgYXQg aXNhPyBwb3J0IDB4MzYwIGlycSA3IGlvbWVtIDB4ZDAwMDANCiNkZXZpY2Ug bGUwIGF0IGlzYT8gcG9ydCAweDMwMCBpcnEgNSBpb21lbSAweGQwMDAwDQoj ZGV2aWNlIGxuYzAgYXQgaXNhPyBwb3J0IDB4MjgwIGlycSAxMCBkcnEgMA0K I2RldmljZSByZHAwIGF0IGlzYT8gcG9ydCAweDM3OCBpcnEgNyBmbGFncyAy DQojZGV2aWNlIHNibmkwIGF0IGlzYT8gcG9ydCAweDIxMCBpcnEgNSBmbGFn cyAweGVmZGVhZA0KI2RldmljZSBzcjAgYXQgaXNhPyBwb3J0IDB4MzAwIGly cSA1IGlvbWVtIDB4ZDAwMDANCiNkZXZpY2Ugc24wIGF0IGlzYT8gcG9ydCAw eDMwMCBpcnEgMTANCiNkZXZpY2UgYXdpDQojZGV2aWNlIHdpDQojZGV2aWNl IGFuDQojb3B0aW9ucyAJV0xDQUNIRQkJIyBlbmFibGVzIHRoZSBzaWduYWwt c3RyZW5ndGggY2FjaGUNCiNvcHRpb25zIAlXTERFQlVHCQkjIGVuYWJsZXMg dmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0DQojZGV2aWNlIHdsMCBhdCBpc2E/ IHBvcnQgMHgzMDANCiNkZXZpY2UgeGUNCiNkZXZpY2UgcmF5DQoNCiNkZXZp Y2Ugb2x0cjAgYXQgaXNhPw0KDQojDQojIEFUTSByZWxhdGVkIG9wdGlvbnMN CiMNCiMgVGhlIGBlbicgZGV2aWNlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIEVm ZmljaWVudCBOZXR3b3JrcyAoRU5JKQ0KIyBFTkktMTU1IFBDSSBtaWR3YXkg Y2FyZHMsIGFuZCB0aGUgQWRhcHRlYyAxNTVNYnBzIFBDSSBBVE0gY2FyZHMg KEFOQS01OXgwKS4NCiMNCiMgYXRtIHBzZXVkby1kZXZpY2UgcHJvdmlkZXMg Z2VuZXJpYyBhdG0gZnVuY3Rpb25zIGFuZCBpcyByZXF1aXJlZCBmb3INCiMg YXRtIGRldmljZXMuDQojIE5BVE0gZW5hYmxlcyB0aGUgbmV0bmF0bSBwcm90 b2NvbCBmYW1pbHkgdGhhdCBjYW4gYmUgdXNlZCB0bw0KIyBieXBhc3MgVENQ L0lQLg0KIw0KIyB0aGUgY3VycmVudCBkcml2ZXIgc3VwcG9ydHMgb25seSBQ VkMgb3BlcmF0aW9ucyAobm8gYXRtLWFycCwgbm8gbXVsdGljYXN0KS4NCiMg Zm9yIG1vcmUgZGV0YWlscywgcGxlYXNlIHJlYWQgdGhlIG9yaWdpbmFsIGRv Y3VtZW50cyBhdA0KIyBodHRwOi8vd3d3LmNjcmMud3VzdGwuZWR1L3B1Yi9j aHVjay90ZWNoL2JzZGF0bS9ic2RhdG0uaHRtbA0KIw0KI3BzZXVkby1kZXZp Y2UJYXRtDQojZGV2aWNlCQllbg0KI29wdGlvbnMgCU5BVE0JCQkjbmF0aXZl IEFUTQ0KDQojDQojIEF1ZGlvIGRyaXZlcnM6IGBzbmQnLCBgc2InLCBgcGFz JywgYGd1cycsIGBwY2EnDQojDQojIHNuZDogVm94d2FyZSBzb3VuZCBzdXBw b3J0IGNvZGUNCiMgc2I6IFNvdW5kQmxhc3RlciBQQ00gLSBTb3VuZEJsYXN0 ZXIsIFNCIFBybywgU0IxNiwgUHJvQXVkaW9TcGVjdHJ1bQ0KIyBzYnh2aTog U291bmRCbGFzdGVyIDE2DQojIHNibWlkaTogU291bmRCbGFzdGVyIDE2IE1J REkgaW50ZXJmYWNlDQojIHBhczogUHJvQXVkaW9TcGVjdHJ1bSBQQ00gYW5k IE1JREkNCiMgZ3VzOiBHcmF2aXMgVWx0cmFzb3VuZCAtIFVsdHJhc291bmQs IFVsdHJhc291bmQgMTYsIFVsdHJhc291bmQgTUFYDQojIGd1c3h2aTogR3Jh dmlzIFVsdHJhc291bmQgMTYtYml0IFBDTQkoZG8gbm90IHVzZSkNCiMgbXNz OiBNaWNyb3NvZnQgU291bmQgU3lzdGVtDQojIGNzczogQ3J5c3RhbCBTb3Vu ZCBTeXN0ZW0gKENTUyA0MjN4IFBuUCkNCiMgc3NjYXBlOiBFbnNvbmlxIFNv dW5kc2NhcGUgTUlESSBpbnRlcmZhY2UNCiMgc3NjYXBlX21zczogRW5zb25p cSBTb3VuZHNjYXBlIFBDTSAocmVxdWlyZXMgc3NjYXBlKQ0KIyBvcGw6IFlh bWFoYSBPUEwtMiBhbmQgT1BMLTMgRk0gLSBTQiwgU0IgUHJvLCBTQiAxNiwg UHJvQXVkaW9TcGVjdHJ1bQ0KIyB1YXJ0OiBzdGFuZC1hbG9uZSA2ODUwIFVB UlQgZm9yIE1JREkNCiMgbXB1OiBSb2xhbmQgTVBVLTQwMSBzdGFuZC1hbG9u ZSBjYXJkDQojDQojIE5vdGU6IEl0IGhhcyBiZWVuIHJlcG9ydGVkIHRoYXQg SVNBIERNQSB3aXRoIHRoZSBTb3VuZEJsYXN0ZXIgd2lsbA0KIyBsb2NrIHVw IHRoZSBtYWNoaW5lIChQUiBkb2NzLzUzNTgpLiAgSWYgdGhpcyBoYXBwZW5z IHRvIHlvdSwNCiMgdHVybmluZyBvZmYgVVNXQyB3cml0ZSBwb3N0aW5nIGlu IHlvdXIgbWFjaGluZSdzIEJJT1MgbWF5IGZpeA0KIyB0aGUgcHJvYmxlbS4N CiMNCiMgQmV3YXJlISAgVGhlIGFkZHJlc3NlcyBzcGVjaWZpZWQgYmVsb3cg YXJlIGFsc28gaGFyZC1jb2RlZCBpbg0KIyBzcmMvc3lzL2kzODYvaXNhL3Nv dW5kL3NvdW5kX2NvbmZpZy5oLiAgSWYgeW91IGNoYW5nZSB0aGUgdmFsdWVz IGhlcmUsIHlvdQ0KIyBtdXN0IGFsc28gY2hhbmdlIHRoZSB2YWx1ZXMgaW4g dGhlIGluY2x1ZGUgZmlsZS4NCiMNCiMgcGNtOiBQQ00gYXVkaW8gdGhyb3Vn aCB2YXJpb3VzIHNvdW5kIGNhcmRzLg0KIw0KIyBUaGlzIGhhcyBzdXBwb3J0 IGZvciBhIGxhcmdlIG51bWJlciBvZiBuZXcgYXVkaW8gY2FyZHMsIGJhc2Vk IG9uDQojIENTNDIzeCwgT1BUaTkzMSwgWWFtYWhhIE9QTC1TQXgsIGFuZCBh bHNvIGZvciBTQjE2LCBHdXNQblAuDQojIEZvciBtb3JlIGluZm9ybWF0aW9u IGFib3V0IHRoaXMgZHJpdmVyIGFuZCBzdXBwb3J0ZWQgY2FyZHMsDQojIHNl ZSB0aGUgcGNtLjQgbWFuIHBhZ2UuDQojDQojIFRoZSBmbGFncyBvZiB0aGUg ZGV2aWNlIHRlbGxzIHRoZSBkZXZpY2UgYSBiaXQgbW9yZSBpbmZvIGFib3V0 IHRoZQ0KIyBkZXZpY2UgdGhhdCBub3JtYWxseSBpcyBvYnRhaW5lZCB0aHJv dWdoIHRoZSBQblAgaW50ZXJmYWNlLg0KIwliaXQgIDIuLjAgICBzZWNvbmRh cnkgRE1BIGNoYW5uZWw7DQojCWJpdCAgNCAgICAgIHNldCBpZiB0aGUgYm9h cmQgdXNlcyB0d28gZG1hIGNoYW5uZWxzOw0KIwliaXQgMTUuLjggICBib2Fy ZCB0eXBlLCBvdmVycmlkZXMgYXV0b2RldGVjdGlvbjsgbGVhdmUgaXQNCiMJ CSAgICB6ZXJvIGlmIGRvbid0IGtub3cgd2hhdCB0byBwdXQgaW4gKGFuZCB5 b3UgZG9uJ3QsDQojCQkgICAgc2luY2UgdGhpcyBpcyB1bnN1cHBvcnRlZCBh dCB0aGUgbW9tZW50Li4uKS4NCiMNCiMgVGhpcyBkcml2ZXIgd2lsbCB1c2Ug dGhlIG5ldyBQblAgY29kZSBpZiBpdCdzIGF2YWlsYWJsZS4NCiMNCiMgcGNh OiBQQ00gYXVkaW8gdGhyb3VnaCB5b3VyIFBDIHNwZWFrZXINCiMNCiMgSWYg eW91IGhhdmUgYSBHVVMtTUFYIGNhcmQgYW5kIHdhbnQgdG8gdXNlIHRoZSBD UzQyMzEgY29kZWMgb24gdGhlDQojIGNhcmQgdGhlIGRycXMgZm9yIHRoZSBn dXMgbWF4IG11c3QgYmUgOCBiaXQgKDEsIDIsIG9yIDMpLg0KIw0KIyBJZiB5 b3Ugd291bGQgbGlrZSB0byB1c2UgdGhlIGZ1bGwgZHVwbGV4IG9wdGlvbiBv biB0aGUgZ3VzLCB0aGVuIGRlZmluZQ0KIyBmbGFncyB0byBiZSB0aGUgYGBy ZWFkIGRtYSBjaGFubmVsJycuDQojDQojIG9wdGlvbnMgQlJPS0VOX0JVU19D TE9DSwkjUEFTLTE2IGlzbid0IHdvcmtpbmcgYW5kIE9QVEkgY2hpcHNldA0K IyBvcHRpb25zIFNZTVBIT05ZX1BBUwkJI1BBUy0xNiBpc24ndCB3b3JraW5n IGFuZCBTWU1QSE9OWSBjaGlwc2V0DQojIG9wdGlvbnMgRVhDTFVERV9TQlBS TwkJI1BBUy0xNg0KIyBvcHRpb25zIFNCQ19JUlE9NQkJI1BBUy0xNi4gTXVz dCBtYXRjaCBpcnEgb24gc2IwIGxpbmUuDQojIFBBUzE2OiBUaGUgb3JkZXIg b2YgdGhlIHBhczAvc2IwL29wbDAgaXMgaW1wb3J0YW50IHNpbmNlIHRoZQ0K IwlzYiBlbXVsYXRpb24gaXMgZW5hYmxlZCBpbiB0aGUgcGFzLTE2IGF0dGFj aC4NCiMNCiMgVG8gb3ZlcnJpZGUgdGhlIEdVUyBkZWZhdWx0cyB1c2U6DQoj IG9wdGlvbnMgR1VTX0RNQTINCiMgb3B0aW9ucyBHVVNfRE1BDQojIG9wdGlv bnMgR1VTX0lSUQ0KIw0KIyBUaGUgc3JjL3N5cy9pMzg2L2lzYS9zb3VuZC9z b3VuZC5kb2MgaGFzIG1vcmUgaW5mb3JtYXRpb24uDQoNCiMgQ29udHJvbHMg YWxsICJWT1hXQVJFIiBkcml2ZXIgc291bmQgZGV2aWNlcy4gIFNlZSBMdWln aSdzIGRyaXZlcg0KIyBiZWxvdyBmb3IgYW4gYWx0ZXJuYXRlIHdoaWNoIG1h eSB3b3JrIGJldHRlciBmb3Igc29tZSBjYXJkcy4NCiMNCiNkZXZpY2UJCXNu ZA0KI2RldmljZSBwYXMwCWF0IGlzYT8gcG9ydCAweDM4OCBpcnEgMTAgZHJx IDYNCiNkZXZpY2Ugc2IwCWF0IGlzYT8gcG9ydCAweDIyMCBpcnEgNSBkcnEg MQ0KI2RldmljZSBzYnh2aTAJYXQgaXNhPyBkcnEgNQ0KI2RldmljZSBzYm1p ZGkwCWF0IGlzYT8gcG9ydCAweDMzMA0KI2RldmljZSBhd2UwCWF0IGlzYT8g cG9ydCAweDYyMA0KI2RldmljZSBndXMwCWF0IGlzYT8gcG9ydCAweDIyMCBp cnEgMTIgZHJxIDENCiMjZGV2aWNlIGd1czAJYXQgaXNhPyBwb3J0IDB4MjIw IGlycSAxMiBkcnEgMSBmbGFncyAweDMNCiNkZXZpY2UgbXNzMAlhdCBpc2E/ IHBvcnQgMHg1MzAgaXJxIDEwIGRycSAxDQojZGV2aWNlIGNzczAJYXQgaXNh PyBwb3J0IDB4NTM0IGlycSA1IGRycSAxIGZsYWdzIDB4MDgNCiNkZXZpY2Ug c3NjYXBlMAlhdCBpc2E/IHBvcnQgMHgzMzAgaXJxIDkgZHJxIDANCiNkZXZp Y2UgdHJpeDAJYXQgaXNhPyBwb3J0IDB4MzMwIGlycSA2IGRycSAwDQojZGV2 aWNlIHNzY2FwZV9tc3MwIGF0IGlzYT8gcG9ydCAweDUzNCBpcnEgNSBkcnEg MQ0KI2RldmljZSBvcGwwCWF0IGlzYT8gcG9ydCAweDM4OA0KI2RldmljZSBt cHUwCWF0IGlzYT8gcG9ydCAweDMzMCBpcnEgNiBkcnEgMA0KI2RldmljZSB1 YXJ0MAlhdCBpc2E/IHBvcnQgMHgzMzAgaXJxIDUNCg0KIyBUaGUgbmV3cGNt IGRyaXZlciAodXNlIElOU1RFQUQgb2Ygc25kMCBhbmQgYWxsIFZPWFdBUkUg ZHJpdmVycyEpLg0KIyBOb3RlIHRoYXQgbW90aGVyYm9hcmQgc291bmQgZGV2 aWNlcyBtYXkgcmVxdWlyZSBvcHRpb25zIFBOUEJJT1MuDQojDQojIFN1cHBv cnRlZCBjYXJkcyBpbmNsdWRlOg0KIyBDcmVhdGl2ZSBTb3VuZEJsYXN0ZXIg SVNBIFBuUC9ub24tUG5QDQojIFN1cHBvcnRzIEVTUyBhbmQgQXZhbmNlIElT QSBjaGlwcyBhcyB3ZWxsLg0KIyBHcmF2aXMgVWx0cmFTb3VuZCBJU0EgUG5Q L25vbi1QblANCiMgQ3J5c3RhbCBTZW1pY29uZHVjdG9yIENTNDYxeC80Mjh4 IFBDSQ0KIyBOZW9tYWdpYyAyNTZBViAoYWM5NykNCiMgTW9zdCBvZiB0aGUg bW9yZSBjb21tb24gSVNBL1BuUCBzYi9tc3MvZXNzIGNvbXBhdGFibGUgY2Fy ZHMuDQoNCiMgRm9yIG5vbi1wbnAgc291bmQgY2FyZHMgd2l0aCBubyBicmlk Z2UgZHJpdmVycyBvbmx5Og0KI2RldmljZQkJcGNtMCBhdCBpc2E/IGlycSAx MCBkcnEgMSBmbGFncyAweDANCiMNCiMgRm9yIFBuUC9QQ0kgc291bmQgY2Fy ZHMNCiNkZXZpY2UJCXBjbQ0KDQojIFRoZSBicmlkZ2UgZHJpdmVycyBmb3Ig c291bmQgY2FyZHMuICBUaGVzZSBjYW4gYmUgc2VwZXJhdGVseSBjb25maWd1 cmVkDQojIGZvciBwcm92aWRpbmcgc2VydmljZXMgdG8gdGhlIGxpa2VzIG9m IG5ldy1taWRpIChub3QgaW4gdGhlIHRyZWUgeWV0KS4NCiMgV2hlbiB1c2Vk IHdpdGggJ2RldmljZSBwY20nIHRoZXkgYWxzbyBwcm92aWRlIHBjbSBzb3Vu ZCBzZXJ2aWNlcy4NCiMNCiMgc2JjOiAgQ3JlYXRpdmUgU291bmRCbGFzdGVy IElTQSBQblAvbm9uLVBuUA0KIwlTdXBwb3J0cyBFU1MgYW5kIEF2YW5jZSBJ U0EgY2hpcHMgYXMgd2VsbC4NCiMgZ3VzYzogR3JhdmlzIFVsdHJhU291bmQg SVNBIFBuUC9ub24tUG5QDQojIGNzYTogIENyeXN0YWwgU2VtaWNvbmR1Y3Rv ciBDUzQ2MXgvNDI4eCBQQ0kNCg0KIyBGb3Igbm9uLVBuUCBjYXJkczoNCiNk ZXZpY2UJCXNiYzAJYXQgaXNhPyBwb3J0IDB4MjIwIGlycSA1IGRycSAxIGZs YWdzIDB4MTUNCiNkZXZpY2UJCWd1c2MwCWF0IGlzYT8gcG9ydCAweDIyMCBp cnEgNSBkcnEgMSBmbGFncyAweDEzDQoNCiMgTm90IGNvbnRyb2xsZWQgYnkg YHNuZCcNCiNkZXZpY2UJCXBjYTAgYXQgaXNhPyBwb3J0IElPX1RJTUVSMQ0K DQojDQojIE1pc2NlbGxhbmVvdXMgaGFyZHdhcmU6DQojDQojIG1jZDogTWl0 c3VtaSBDRC1ST00gdXNpbmcgcHJvcHJpZXRhcnkgKG5vbi1BVEFQSSkgaW50 ZXJmYWNlDQojIHNjZDogU29ueSBDRC1ST00gdXNpbmcgcHJvcHJpZXRhcnkg KG5vbi1BVEFQSSkgaW50ZXJmYWNlDQojIG1hdGNkOiBNYXRzdXNoaXRhL1Bh bmFzb25pYyBDRC1ST00gdXNpbmcgcHJvcHJpZXRhcnkgKG5vbi1BVEFQSSkg aW50ZXJmYWNlDQojIHd0OiBXYW5ndGVrIGFuZCBBcmNoaXZlIFFJQy0wMi9R SUMtMzYgdGFwZSBkcml2ZXMNCiMgY3R4OiBDb3J0ZXgtSSBmcmFtZSBncmFi YmVyDQojIGFwbTogTGFwdG9wIEFkdmFuY2VkIFBvd2VyIE1hbmFnZW1lbnQg KGV4cGVyaW1lbnRhbCkNCiMgc3BpZ290OiBUaGUgQ3JlYXRpdmUgTGFicyBW aWRlbyBTcGlnb3QgdmlkZW8tYWNxdWlzaXRpb24gYm9hcmQNCiMgbWV0ZW9y OiBNYXRyb3ggTWV0ZW9yIHZpZGVvIGNhcHR1cmUgYm9hcmQNCiMgYmt0cjog QnJvb2t0cmVlIGJ0ODQ4Lzg0OGEvODQ5YS84NzgvODc5IHZpZGVvIGNhcHR1 cmUgYW5kIFRWIFR1bmVyIGJvYXJkDQojIGN5OiBDeWNsYWRlcyBzZXJpYWwg ZHJpdmVyDQojIGRnYjogRGlnaWJvYXJkIFBDL1hpIGFuZCBQQy9YZSBzZXJp ZXMgZHJpdmVyIChBTFBIQSBRVUFMSVRZISkNCiMgZGdtOiBEaWdpYm9hcmQg UEMvWGVtIGRyaXZlcg0KIyBncDogIE5hdGlvbmFsIEluc3RydW1lbnRzIEFU LUdQSUIgYW5kIEFULUdQSUIvVE5UIGJvYXJkDQojIGFzYzogR0kxOTA0LWJh c2VkIGhhbmQgc2Nhbm5lcnMsIGUuZy4gdGhlIFRydXN0IEFtaXNjYW4gR3Jl eQ0KIyBnc2M6IEdlbml1cyBHUy00NTAwIGhhbmQgc2Nhbm5lci4NCiMgam95 OiBqb3lzdGljaw0KIyBsYWJwYzogTmF0aW9uYWwgSW5zdHJ1bWVudCdzIExh Yi1QQyBhbmQgTGFiLVBDKw0KIyByYzogUklTQ29tLzggbXVsdGlwb3J0IGNh cmQNCiMgcnA6IENvbXRyb2wgUm9ja2V0cG9ydChJU0EpIC0gc2luZ2xlIGNh cmQNCiMgdHc6IFRXLTUyMyBwb3dlciBsaW5lIGludGVyZmFjZSBmb3IgdXNl IHdpdGggWC0xMCBob21lIGNvbnRyb2wgcHJvZHVjdHMNCiMgc2k6IFNwZWNp YWxpeCBTSS9YSU8gNC0zMiBwb3J0IHRlcm1pbmFsIG11bHRpcGxleG9yDQoj IHN0bDogU3RhbGxpb24gRWFzeUlPIGFuZCBFYXN5Q29ubmVjdGlvbiA4LzMy IChJU0EgYW5kIFBDSSksIEVhc3lDb25uZWN0aW9uIDgvNjQgUENJDQojIHN0 bGk6IFN0YWxsaW9uIEVhc3lDb25uZWN0aW9uIDgvNjQgSVNBL0VJU0EsIE9O Ym9hcmQsIEJydW1ieSAoaW50ZWxsaWdlbnQpDQojIG5tZG06IG51bGxtb2Rl bSB0ZXJtaW5hbCBkcml2ZXIgKHNlZSBubWRtKDQpKQ0KDQojIE5vdGVzIG9u IEFQTQ0KIyAgVGhlIGZsYWdzIHRha2VzIHRoZSBmb2xsb3dpbmcgbWVhbmlu ZyBmb3IgYXBtMDoNCiMgICAgMHgwMDIwICBTdGF0Y2xvY2sgaXMgYnJva2Vu Lg0KIyAgSWYgYXBtIGlzIG9taXR0ZWQsIHNvbWUgc3lzdGVtcyByZXF1aXJl IHN5c2N0bCAtdyBrZXJuLnRpbWVjb3VudGVyLm1ldGhvZD0xDQojICBmb3Ig Y29ycmVjdCB0aW1la2VlcGluZy4NCg0KIyBOb3RlcyBvbiB0aGUgc3BpZ290 Og0KIyAgVGhlIHZpZGVvIHNwaWdvdCBpcyBhdCAweGFkNi4gIFRoaXMgcG9y dCBhZGRyZXNzIGNhbiBub3QgYmUgY2hhbmdlZC4NCiMgIFRoZSBpcnEgdmFs dWVzIG1heSBvbmx5IGJlIDEwLCAxMSwgb3IgMTUNCiMgIEkvTyBtZW1vcnkg aXMgYW4gOGtiIHJlZ2lvbi4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQojICAg IDBhMDAwMCwgMGEyMDAwLCAuLi4sIDBmZmZmZiwgZjAwMDAwLCBmMDIwMDAs IC4uLiwgZmZmZmZmDQojICAgIFRoZSBzdGFydCBhZGRyZXNzIG11c3QgYmUg b24gYW4gZXZlbiBib3VuZGFyeS4NCiMgIEFkZCB0aGUgZm9sbG93aW5nIG9w dGlvbiBpZiB5b3Ugd2FudCB0byBhbGxvdyBub24tcm9vdCB1c2VycyB0byBi ZSBhYmxlDQojICB0byBhY2Nlc3MgdGhlIHNwaWdvdC4gIFRoaXMgb3B0aW9u IGlzIG5vdCBzZWN1cmUgYmVjYXVzZSBpdCBhbGxvd3MgdXNlcnMNCiMgIGRp cmVjdCBhY2Nlc3MgdG8gdGhlIEkvTyBwYWdlLg0KIyAgCW9wdGlvbnMgU1BJ R09UX1VOU0VDVVJFDQoNCiMgTm90ZXMgb24gdGhlIENvbXRyb2wgUm9ja2V0 cG9ydCBkcml2ZXI6DQojDQojIFRoZSBleGFjdCB2YWx1ZXMgdXNlZCBmb3Ig cnAwIGRlcGVuZCBvbiBob3cgbWFueSBib2FyZHMgeW91IGhhdmUNCiMgaW4g dGhlIHN5c3RlbS4gIFRoZSBtYW51ZmFjdHVyZXIncyBzYW1wbGUgY29uZmln cyBhcmUgbGlzdGVkIGFzOg0KIw0KIyAgIENvbXRyb2wgUm9ja2V0cG9ydCBJ U0Egc2luZ2xlIGNhcmQNCiMgICAgICAgICAgICAgICBkZXZpY2UgIHJwMCAg ICAgYXQgaXNhPyBwb3J0IDB4MjgwDQojDQojICAgSWYgaW5zdGVhZCB5b3Ug aGF2ZSB0d28gSVNBIGNhcmRzLCBvbmUgaW5zdGFsbGVkIGF0IDB4MTAwIGFu ZCB0aGUNCiMgICBzZWNvbmQgaW5zdGFsbGVkIGF0IDB4MTgwLCB0aGVuIHlv dSBzaG91bGQgYWRkIHRoZSBmb2xsb3dpbmcgdG8NCiMgICB5b3VyIGtlcm5l bCBjb25maWd1cmF0aW9uIGZpbGU6DQojDQojICAgICAgICAgICAgICAgZGV2 aWNlICBycDAgICAgIGF0IGlzYT8gcG9ydCAweDEwMA0KIyAgICAgICAgICAg ICAgIGRldmljZSAgcnAxICAgICBhdCBpc2E/IHBvcnQgMHgxODANCiMNCiMg ICBGb3IgNCBJU0EgY2FyZHMsIGl0IG1pZ2h0IGJlIHNvbWV0aGluZyBsaWtl IHRoaXM6DQojDQojICAgICAgICAgICAgICAgZGV2aWNlICBycDAgICAgIGF0 IGlzYT8gcG9ydCAweDE4MA0KIyAgICAgICAgICAgICAgIGRldmljZSAgcnAx ICAgICBhdCBpc2E/IHBvcnQgMHgxMDANCiMgICAgICAgICAgICAgICBkZXZp Y2UgIHJwMiAgICAgYXQgaXNhPyBwb3J0IDB4MzQwDQojICAgICAgICAgICAg ICAgZGV2aWNlICBycDMgICAgIGF0IGlzYT8gcG9ydCAweDI0MA0KIw0KIyAg IEFuZCBmb3IgUENJIGNhcmRzLCB5b3Ugb25seSBuZWVkIHNheToNCiMNCiMg ICAgICAgICAgICAgICBkZXZpY2UgcnANCg0KIyBOb3RlcyBvbiB0aGUgRGln aWJvYXJkIGRyaXZlcjoNCiMNCiMgVGhlIGZvbGxvd2luZyBmbGFnIHZhbHVl cyBoYXZlIHNwZWNpYWwgbWVhbmluZ3M6DQojCTB4MDEgLSBhbHRlcm5hdGUg bGF5b3V0IG9mIHBpbnMgKGRnYiAmIGRnbSkNCiMJMHgwMiAtIHVzZSB0aGUg d2luZG93ZWQgUEMvWGUgaW4gNjRLIG1vZGUgKGRnYiBvbmx5KQ0KDQojIE5v dGVzIG9uIHRoZSBTcGVjaWFsaXggU0kvWElPIGRyaXZlcjoNCiMgICoqVGhp cyBpcyBOT1QgYSBTcGVjaWFsaXggc3VwcG9ydGVkIERyaXZlciEqKg0KIyAg VGhlIGhvc3QgY2FyZCBpcyBtZW1vcnksIG5vdCBJTyBtYXBwZWQuDQojICBU aGUgUmV2IDEgaG9zdCBjYXJkcyB1c2UgYSA2NEsgY2h1bmssIG9uIGEgMzJL IGJvdW5kYXJ5Lg0KIyAgVGhlIFJldiAyIGhvc3QgY2FyZHMgdXNlIGEgMzJL IGNodW5rLCBvbiBhIDMySyBib3VuZGFyeS4NCiMgIFRoZSBjYXJkcyBjYW4g dXNlIGFuIElSUSBvZiAxMSwgMTIgb3IgMTUuDQoNCiMgTm90ZXMgb24gdGhl IFN0YWxsaW9uIHN0bCBhbmQgc3RsaSBkcml2ZXJzOg0KIyAgU2VlIHNyYy9p Mzg2L2lzYS9SRUFETUUuc3RsIGZvciBjb21wbGV0ZSBpbnN0cnVjdGlvbnMu DQojICBUaGlzIGlzIHZlcnNpb24gMi4wLjAsIHVuc3VwcG9ydGVkIGJ5IFN0 YWxsaW9uLg0KIyAgVGhlIHN0bCBkcml2ZXIgaGFzIGEgc2Vjb25kYXJ5IElP IHBvcnQgaGFyZCBjb2RlZCBhdCAweDI4MC4gIFlvdSBuZWVkDQojICAgICB0 byBjaGFuZ2Ugc3JjL2kzODYvaXNhL3N0YWxsaW9uLmMgaWYgeW91IHJlY29u ZmlndXJlIHRoaXMgb24gdGhlIGJvYXJkcy4NCiMgIFRoZSAiZmxhZ3MiIGFu ZCAiaW9zaXoiIHNldHRpbmdzIG9uIHRoZSBzdGxpIGRyaXZlciBkZXBlbmQg b24gdGhlIGJvYXJkOg0KIwlFYXN5Q29ubmVjdGlvbiA4LzY0IElTQTogICAg IGZsYWdzIDIzICAgICAgICAgaW9zaXogMHgxMDAwDQojCUVhc3lDb25uZWN0 aW9uIDgvNjQgRUlTQTogICAgZmxhZ3MgMjQgICAgICAgICBpb3NpeiAweDEw MDAwDQojCUVhc3lDb25uZWN0aW9uIDgvNjQgTUNBOiAgICAgZmxhZ3MgMjUg ICAgICAgICBpb3NpeiAweDEwMDANCiMJT05ib2FyZCBJU0E6ICAgICAgICAg ICAgICAgICBmbGFncyA0ICAgICAgICAgIGlvc2l6IDB4MTAwMDANCiMJT05i b2FyZCBFSVNBOiAgICAgICAgICAgICAgICBmbGFncyA3ICAgICAgICAgIGlv c2l6IDB4MTAwMDANCiMJT05ib2FyZCBNQ0E6ICAgICAgICAgICAgICAgICBm bGFncyAzICAgICAgICAgIGlvc2l6IDB4MTAwMDANCiMJQnJ1bWJ5OiAgICAg ICAgICAgICAgICAgICAgICBmbGFncyAyICAgICAgICAgIGlvc2l6IDB4NDAw MA0KIwlTdGFsbGlvbjogICAgICAgICAgICAgICAgICAgIGZsYWdzIDEgICAg ICAgICAgaW9zaXogMHgxMDAwMA0KIyAgRm9yIHRoZSBQQ0kgY2FyZHMsICJk ZXZpY2Ugc3RsIiB3aWxsIHN1ZmZpY2UuDQoNCiNkZXZpY2UJCW1jZDAJYXQg aXNhPyBwb3J0IDB4MzAwIGlycSAxMA0KIyBmb3IgdGhlIFNvbnkgQ0RVMzEv MzNBIENEUk9NDQojZGV2aWNlCQlzY2QwCWF0IGlzYT8gcG9ydCAweDIzMA0K IyBmb3IgdGhlIFNvdW5kQmxhc3RlciAxNiBtdWx0aWNkIC0gdXAgdG8gNCBk ZXZpY2VzDQojZGV2aWNlCQltYXRjZDAgIGF0IGlzYT8gcG9ydCAweDIzMA0K I2RldmljZQkJd3QwCWF0IGlzYT8gcG9ydCAweDMwMCBpcnEgNSBkcnEgMQ0K I2RldmljZQkJY3R4MAlhdCBpc2E/IHBvcnQgMHgyMzAgaW9tZW0gMHhkMDAw MA0KI2RldmljZQkJc3BpZ290MCBhdCBpc2E/IHBvcnQgMHhhZDYgaXJxIDE1 IGlvbWVtIDB4ZWUwMDANCiNkZXZpY2UJCWFwbTANCiNkZXZpY2UJCWdwMAlh dCBpc2E/IHBvcnQgMHgyYzANCiNkZXZpY2UJCWdzYzAJYXQgaXNhPyBwb3J0 IElPX0dTQzEgZHJxIDMNCiNkZXZpY2UJCWpveTAJYXQgaXNhPyBwb3J0IElP X0dBTUUNCiNkZXZpY2UJCWN5MAlhdCBpc2E/IGlycSAxMCBpb21lbSAweGQ0 MDAwIGlvc2l6IDB4MjAwMA0KI29wdGlvbnMgCUNZX1BDSV9GQVNUSU5UUgkJ IyBVc2Ugd2l0aCBjeV9wY2kgdW5sZXNzIGlycSBpcyBzaGFyZWQNCiNkZXZp Y2UJCWRnYjAJYXQgaXNhPyBwb3J0IDB4MjIwIGlvbWVtIDB4ZmMwMDANCiNv cHRpb25zIAlOREdCUE9SVFM9MTYJCSMgRGVmYXVsdHMgdG8gMTYqTkRHQg0K I2RldmljZQkJZGdtMAlhdCBpc2E/IHBvcnQgMHgxMDQgaW9tZW0gMHhkMDAw MA0KI2RldmljZQkJbGFicGMwCWF0IGlzYT8gcG9ydCAweDI2MCBpcnEgNQ0K I2RldmljZQkJcmMwCWF0IGlzYT8gcG9ydCAweDIyMCBpcnEgMTINCiNkZXZp Y2UJCXJwMAlhdCBpc2E/IHBvcnQgMHgyODANCiMgdGhlIHBvcnQgYW5kIGly cSBmb3IgdHcwIGFyZSBmaWN0aXRpb3VzDQojZGV2aWNlCQl0dzAJYXQgaXNh PyBwb3J0IDB4MzgwIGlycSAxMQ0KI2RldmljZQkJc2kwCWF0IGlzYT8gaW9t ZW0gMHhkMDAwMCBpcnEgMTINCiNkZXZpY2UJCWFzYzAJYXQgaXNhPyBwb3J0 IElPX0FTQzEgZHJxIDMgaXJxIDEwDQojZGV2aWNlCQlzdGwwCWF0IGlzYT8g cG9ydCAweDJhMCBpcnEgMTANCiNkZXZpY2UJCXN0bGkwCWF0IGlzYT8gcG9y dCAweDJhMCBpb21lbSAweGNjMDAwIGZsYWdzIDIzIGlvc2l6IDB4MTAwMA0K IyBZb3UgYXJlIHVubGlrZWx5IHRvIGhhdmUgdGhlIGhhcmR3YXJlIGZvciBs b3JhbjAgPHBoa0BGcmVlQlNELm9yZz4NCiNkZXZpY2UJCWxvcmFuMAlhdCBp c2E/IGlycSA1DQojIEhPVDEgWGlsaW54IDYyMDAgY2FyZCAoaHR0cDovL3d3 dy52Y2MuY29tLykNCiNkZXZpY2UJCXhycHUNCiMgbnVsbG1vZGVtIHRlcm1p bmFsIGRyaXZlcg0KI2RldmljZQkJbm1kbQ0KDQojDQojIE1DQSBkZXZpY2Vz Og0KIw0KIyBUaGUgTUNBIGJ1cyBkZXZpY2UgaXMgYG1jYScuICBJdCBwcm92 aWRlcyBhdXRvLWRldGVjdGlvbiBhbmQNCiMgY29uZmlndXJhdGlvbiBzdXBw b3J0IGZvciBhbGwgZGV2aWNlcyBvbiB0aGUgTUNBIGJ1cy4NCiMNCiMgVGhl ICdhaGEnIGRldmljZSBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgQWRhcHRl YyAxNjQwDQojDQojIFRoZSAnYnQnIGRldmljZSBwcm92aWRlcyBzdXBwb3J0 IGZvciB2YXJpb3VzIEJ1c2xvZ2ljL0J1c3Rlaw0KIyBhbmQgU3RvcmFnZSBE aW1lbnNpb25zIFNDU0kgYWRhcHRlcnMuDQojDQojIFRoZSAnZXAnIGRldmlj ZSBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgM0NvbSAzQzUyOSBldGhlcm5l dCBjYXJkLg0KIw0KZGV2aWNlCQltY2ENCg0KIw0KIyBFSVNBIGRldmljZXM6 DQojDQojIFRoZSBFSVNBIGJ1cyBkZXZpY2UgaXMgYGVpc2EnLiAgSXQgcHJv dmlkZXMgYXV0by1kZXRlY3Rpb24gYW5kDQojIGNvbmZpZ3VyYXRpb24gc3Vw cG9ydCBmb3IgYWxsIGRldmljZXMgb24gdGhlIEVJU0EgYnVzLg0KIw0KIyBU aGUgYGFoYicgZGV2aWNlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBBZGFw dGVjIDE3NFggYWRhcHRlci4NCiMNCiMgVGhlIGBhaGMnIGRldmljZSBwcm92 aWRlcyBzdXBwb3J0IGZvciB0aGUgQWRhcHRlYyAyNzRYIGFuZCAyODRYDQoj IGFkYXB0ZXJzLiAgVGhlIDI4NFgsIGFsdGhvdWdoIGEgVkxCIGNhcmQsIHJl c3BvbmRzIHRvIEVJU0EgcHJvYmVzLg0KIw0KIyBmZWE6IERFQyBERUZFQSBF SVNBIEZEREkgYWRhcHRlcg0KIw0KI2RldmljZQkJZWlzYQ0KI2RldmljZQkJ YWhiDQojZGV2aWNlCQlhaGMNCiNkZXZpY2UJCWZlYQ0KDQojIFRoZSBhaWM3 eHh4IGRyaXZlciB3aWxsIGF0dGVtcHQgdG8gdXNlIG1lbW9yeSBtYXBwZWQg SS9PIGZvciBhbGwgUENJDQojIGNvbnRyb2xsZXJzIHRoYXQgaGF2ZSBpdCBj b25maWd1cmVkIG9ubHkgaWYgdGhpcyBvcHRpb24gaXMgc2V0LiBVbmZvcnR1 bmF0ZWx5LA0KIyB0aGlzIGRvZXNuJ3Qgd29yayBvbiBzb21lIG1vdGhlcmJv YXJkcywgd2hpY2ggcHJldmVudHMgaXQgZnJvbSBiZWluZyB0aGUNCiMgZGVm YXVsdC4NCiNvcHRpb25zIAlBSENfQUxMT1dfTUVNSU8NCg0KIyBUaGUgYWR3 IGRyaXZlciB3aWxsIGF0dGVtcHQgdG8gdXNlIG1lbW9yeSBtYXBwZWQgSS9P IGZvciBhbGwgUENJDQojIGNvbnRyb2xsZXJzIHRoYXQgaGF2ZSBpdCBjb25m aWd1cmVkIG9ubHkgaWYgdGhpcyBvcHRpb24gaXMgc2V0Lg0KI29wdGlvbnMg CUFEV19BTExPV19NRU1JTw0KDQojIEJ5IGRlZmF1bHQsIG9ubHkgMTAgRUlT QSBzbG90cyBhcmUgcHJvYmVkLCBzaW5jZSB0aGUgc2xvdCBudW1iZXJzDQoj IGFib3ZlIGNsYXNoIHdpdGggdGhlIGNvbmZpZ3VyYXRpb24gYWRkcmVzcyBz cGFjZSBvZiB0aGUgUENJIHN1YnN5c3RlbSwNCiMgYW5kIHRoZSBFSVNBIHBy b2JlIGlzIG5vdCB2ZXJ5IHNtYXJ0IGFib3V0IHRoaXMuICBUaGlzIGlzIHN1 ZmZpY2llbnQNCiMgZm9yIG1vc3QgbWFjaGluZXMsIGJ1dCBpbiBwYXJ0aWN1 bGFyIHRoZSBIUCBOZXRTZXJ2ZXIgTEMgc2VyaWVzIGNvbWVzDQojIHdpdGgg YW4gb25ib2FyZCBBSUM3NzcwIGR1YWwtY2hhbm5lbCBTQ1NJIGNvbnRyb2xs ZXIgb24gRUlTQSBzbG90ICMxMSwNCiMgdGh1cyB5b3UgbmVlZCB0byBidW1w IHRoaXMgZmlndXJlIHRvIDEyIGZvciB0aGVtLg0KI29wdGlvbnMgCUVJU0Ff U0xPVFM9MTINCg0KIw0KIyBQQ0kgZGV2aWNlcyAmIFBDSSBvcHRpb25zOg0K Iw0KIyBUaGUgbWFpbiBQQ0kgYnVzIGRldmljZSBpcyBgcGNpJy4gIEl0IHBy b3ZpZGVzIGF1dG8tZGV0ZWN0aW9uIGFuZA0KIyBjb25maWd1cmF0aW9uIHN1 cHBvcnQgZm9yIGFsbCBkZXZpY2VzIG9uIHRoZSBQQ0kgYnVzLCB1c2luZyBl aXRoZXINCiMgY29uZmlndXJhdGlvbiBtb2RlIGRlZmluZWQgaW4gdGhlIFBD SSBzcGVjaWZpY2F0aW9uLg0KDQpkZXZpY2UJCXBjaQ0KDQojIFBDSSBvcHRp b25zDQojDQpvcHRpb25zIAlQQ0lfUVVJRVQJI3F1aWV0cyBQQ0kgY29kZSBv biBjaGlwc2V0IHNldHRpbmdzDQoNCg0KIyBUaGUgYGFoYycgZGV2aWNlIHBy b3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBBZGFwdGVjIDI5LzM5NDAoVSkoVykN CiMgYW5kIG1vdGhlcmJvYXJkIGJhc2VkIEFJQzc4NzAvQUlDNzg4MCBhZGFw dGVycy4NCiMNCiMgVGhlIGBhbWQnIGRldmljZSBwcm92aWRlcyBzdXBwb3J0 IGZvciB0aGUgQU1EIDUzQzk3NCBTQ1NJIGhvc3QNCiMgYWRhcHRlciBjaGlw IGFzIGZvdW5kIG9uIGRldmljZXMgc3VjaCBhcyB0aGUgVGVrcmFtIERDLTM5 MChUKS4NCiMNCiMgVGhlIGBiZ2UnIGRldmljZSBwcm92aWRlcyBzdXBwb3J0 IGZvciBnaWdhYml0IGV0aGVybmV0IGFkYXB0ZXJzDQojIGJhc2VkIG9uIHRo ZSBCcm9hZGNvbSBCQ001NzB4IGZhbWlsaXkgb2YgY29udHJvbGxlcnMsIGlu Y2x1ZGluZyB0aGUNCiMgM0NvbSAzYzk5Ni1ULCB0aGUgTmV0Z2VhciBHQTMw MlQsIHRoZSBTeXNLb25uZWN0IFNLLTlEMjEgYW5kIFNLLTlENDEsDQojIGFu ZCB0aGUgZW1iZWRkZWQgZ2lnRSBOSUNzIG9uIERlbGwgUG93ZXJFZGdlIDI1 NTAgc2VydmVycy4NCiMNCiMgVGhlIGBuY3InIGRldmljZSBwcm92aWRlcyBz dXBwb3J0IGZvciB0aGUgTkNSIDUzQzgxMCBhbmQgNTNDODI1DQojIHNlbGYt Y29udGFpbmVkIFNDU0kgaG9zdCBhZGFwdGVycy4NCiMNCiMgVGhlIGBpc3An IGRldmljZSBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgUWxvZ2ljIElTUCAx MDIwLCAxMDQwDQojIG5kIDEwNDBCIFBDSSBTQ1NJIGhvc3QgYWRhcHRlcnMs IElTUCAxMjQwIER1YWwgVWx0cmEgU0NTSSwNCiMgSVNQIDEwODAgYW5kIDEy ODAgKER1YWwpIFVsdHJhMiwgSVNQIDEyMTYwIFVsdHJhMyBTQ1NJLCBhcyB3 ZWxsIGFzDQojIHRoZSBRbG9naWMgSVNQIDIxMDAgYW5kIElTUCAyMjAwIEZp YnJlIENoYW5uZWwgSG9zdCBBZGFwdGVycy4NCiMNCiMgVGhlIGBkYycgZGV2 aWNlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIFBDSSBmYXN0IGV0aGVybmV0IGFk YXB0ZXJzDQojIGJhc2VkIG9uIHRoZSBERUMvSW50ZWwgMjExNDMgYW5kIHZh cmlvdXMgd29ya2FsaWtlcyBpbmNsdWRpbmc6DQojIHRoZSBBRE10ZWsgQUw5 ODEgQ29tZXQgYW5kIEFOOTg1IENlbnRhdXIsIHRoZSBBU0lYIEVsZWN0cm9u aWNzDQojIEFYODgxNDBBIGFuZCBBWDg4MTQxLCB0aGUgRGF2aWNvbSBETTkx MDAgYW5kIERNOTEwMiwgdGhlIExpdGUtT24NCiMgODJjMTY4IGFuZCA4MmMx NjkgUE5JQywgdGhlIExpdGUtT24vTWFjcm9uaXggTEM4MkMxMTUgUE5JQyBJ SQ0KIyBhbmQgdGhlIE1hY3Jvbml4IDk4NzEzLzk4NzEzQS85ODcxNS85ODcx NUEvOTg3MjUgUE1BQy4gVGhpcyBkcml2ZXINCiMgcmVwbGFjZXMgdGhlIG9s ZCBhbCwgYXgsIGRtLCBwbiBhbmQgbXggZHJpdmVycy4gIExpc3Qgb2YgYnJh bmRzOg0KIyBEaWdpdGFsIERFNTAwLUJBLCBLaW5nc3RvbiBLTkUxMDBUWCwg RC1MaW5rIERGRS01NzBUWCwgU09IT3dhcmUgU0ZBMTEwLCANCiMgU1ZFQyBQ TjEwMi1UWCwgQ05ldCBQcm8xMTBCLCAxMjBBLCBhbmQgMTIwQiwgQ29tcGV4 IFJMMTAwLVRYLCANCiMgTGlua1N5cyBMTkUxMDBUWCwgTE5FMTAwVFggVjIu MCwgSmF0b24gWHByZXNzTmV0LCBBbGZhIEluYyBHRkMyMjA0LA0KIyBLTkUx MTBUWC4NCiMNCiMgVGhlIGBkZScgZGV2aWNlIHByb3ZpZGVzIHN1cHBvcnQg Zm9yIHRoZSBEaWdpdGFsIEVxdWlwbWVudCBEQzIxMDQwDQojIHNlbGYtY29u dGFpbmVkIEV0aGVybmV0IGFkYXB0ZXIuDQojDQojIFRoZSBgZnhwJyBkZXZp Y2UgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlIEludGVsIEV0aGVyRXhwcmVz cyBQcm8vMTAwQg0KIyBQQ0kgRmFzdCBFdGhlcm5ldCBhZGFwdGVycy4NCiMN CiMgVGhlIGBneCcgZGV2aWNlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBJ bnRlbCBQcm8vMTAwMCBHaWdhYml0IEV0aGVybmV0DQojIFBDSSBhZGFwdGVy cyAoODI1NDIsIDgyNTQzLUYsIDgyNTQzLVQpLg0KIw0KIyBUaGUgJ2xnZScg ZGV2aWNlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIFBDSSBnaWdhYml0IGV0aGVy bmV0IGFkYXB0ZXJzDQojIGJhc2VkIG9uIHRoZSBMZXZlbCAxIExYVDEwMDEg TmV0Q2VsbGVyYXRvciBjaGlwc2V0LiBUaGlzIGluY2x1ZGVzIHRoZQ0KIyBE LUxpbmsgREdFLTUwMFNYLCBTTUMgVGlnZXJDYXJkIDEwMDAgKFNNQzk0NjJT WCksIGFuZCBzb21lIEFkZHRyb24gY2FyZHMuDQojDQojIFRoZSAnbmdlJyBk ZXZpY2UgcHJvdmlkZXMgc3VwcG9ydCBmb3IgUENJIGdpZ2FiaXQgZXRoZXJu ZXQgYWRhcHRlcnMNCiMgYmFzZWQgb24gdGhlIE5hdGlvbmFsIFNlbWljb25k dWN0b3IgRFA4MzgyMCBhbmQgRFA4MzgyMSBjaGlwc2V0LiBUaGlzDQojIGlu Y2x1ZGVzIHRoZSBTTUMgRVogQ2FyZCAxMDAwIChTTUM5NDYyVFgpLCBELUxp bmsgREdFLTUwMFQsIEFzYW50ZQ0KIyBGcmllbmRseU5ldCBHaWdhTklYIDEw MDBUQSBhbmQgMTAwMFRQQywgdGhlIEFkZHRyb24gQUVHMzIwVCwgdGhlDQoj IExpbmtTeXMgRUcxMDMyIGFuZCBFRzEwNjQsIHRoZSBTdXJlY29tIEVQLTMy MEctVFggYW5kIHRoZSBOZXRnZWFyIEdBNjIyVC4NCiMNCiMgVGhlICdwY24n IGRldmljZSBwcm92aWRlcyBzdXBwb3J0IGZvciBQQ0kgZmFzdCBldGhlcm5l dCBhZGFwdGVycyBiYXNlZA0KIyBvbiB0aGUgQU1EIEFtNzljOTd4IGNoaXBz ZXRzLCBpbmNsdWRpbmcgdGhlIFBDbmV0L0ZBU1QsIFBDbmV0L0ZBU1QrLA0K IyBQQ25ldC9QUk8gYW5kIFBDbmV0L0hvbWUuIFRoZXNlIHdlcmUgcHJldmlv dXNseSBoYW5kbGVkIGJ5IHRoZSBsbmMNCiMgZHJpdmVyIChhbmQgc3RpbGwg d2lsbCBiZSBpZiB5b3UgbGVhdmUgdGhpcyBkcml2ZXIgb3V0IG9mIHRoZSBr ZXJuZWwpLg0KIw0KIyBUaGUgJ3JsJyBkZXZpY2UgcHJvdmlkZXMgc3VwcG9y dCBmb3IgUENJIGZhc3QgZXRoZXJuZXQgYWRhcHRlcnMgYmFzZWQNCiMgb24g dGhlIFJlYWxUZWsgODEyOS84MTM5IGNoaXBzZXQuIE5vdGUgdGhhdCB0aGUg UmVhbFRlayBkcml2ZXIgZGVmYXVsdHMNCiMgdG8gdXNpbmcgcHJvZ3JhbW1l ZCBJL08gdG8gZG8gcmVnaXN0ZXIgYWNjZXNzZXMgYmVjYXVzZSBtZW1vcnkg bWFwcGVkDQojIG1vZGUgc2VlbXMgdG8gY2F1c2Ugc2V2ZXJlIGxvY2t1cHMg b24gU01QIGhhcmR3YXJlLiBUaGlzIGRyaXZlciBhbHNvDQojIHN1cHBvcnRz IHRoZSBBY2N0b24gRU4xMjA3RCBgQ2hlZXRhaCcgYWRhcHRlciwgd2hpY2gg dXNlcyBhIGNoaXAgY2FsbGVkDQojIHRoZSBNUFggNTAzMC81MDM4LCB3aGlj aCBpcyBlaXRoZXIgYSBSZWFsVGVrIGluIGRpc2d1aXNlIG9yIGEgUmVhbFRl aw0KIyB3b3JrYWxpa2UuICBOb3RlIHRoYXQgdGhlIEQtTGluayBERkUtNTMw VFgrIHVzZXMgdGhlIFJlYWxUZWsgY2hpcHNldA0KIyBhbmQgaXMgc3VwcG9y dGVkIGJ5IHRoaXMgZHJpdmVyLCBub3QgdGhlICd2cicgZHJpdmVyLg0KIw0K IyBUaGUgJ3NmJyBkZXZpY2UgcHJvdmlkZXMgc3VwcG9ydCBmb3IgQWRhcHRl YyBEdXJhbGluayBQQ0kgZmFzdA0KIyBldGhlcm5ldCBhZGFwdGVycyBiYXNl ZCBvbiB0aGUgQWRhcHRlYyBBSUMtNjkxNSAic3RhcmZpcmUiIGNvbnRyb2xs ZXIuDQojIFRoaXMgaW5jbHVkZXMgZHVhbCBhbmQgcXVhZCBwb3J0IGNhcmRz LCBhcyB3ZWxsIGFzIG9uZSAxMDBiYXNlRlggY2FyZC4NCiMgTW9zdCBvZiB0 aGVzZSBhcmUgNjQtYml0IFBDSSBkZXZpY2VzLCBleGNlcHQgZm9yIG9uZSBz aW5nbGUgcG9ydA0KIyBjYXJkIHdoaWNoIGlzIDMyLWJpdC4NCiMNCiMgVGhl ICdzdGUnIGRldmljZSBwcm92aWRlcyBzdXBwb3J0IGZvciBhZGFwdGVycyBi YXNlZCBvbiB0aGUgU3VuZGFuY2UNCiMgVGVjaG5vbG9naWVzIFNUMjAxIFBD SSBmYXN0IGV0aGVybmV0IGNvbnRyb2xsZXIuIFRoaXMgaW5jbHVkZXMgdGhl DQojIEQtTGluayBERkUtNTUwVFguDQojDQojIFRoZSAnc2lzJyBkZXZpY2Ug cHJvdmlkZXMgc3VwcG9ydCBmb3IgYWRhcHRlcnMgYmFzZWQgb24gdGhlIFNp bGljb24NCiMgSW50ZWdyYXRlZCBTeXN0ZW1zIFNpUyA5MDAgYW5kIFNpUyA3 MDE2IFBDSSBmYXN0IGV0aGVybmV0IGNvbnRyb2xsZXINCiMgY2hpcHMuDQoj DQojIFRoZSAnc2snIGRldmljZSBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUg U3lzS29ubmVjdCBTSy05ODR4IHNlcmllcw0KIyBQQ0kgZ2lnYWJpdCBldGhl cm5ldCBOSUNzLiBUaGlzIGluY2x1ZGVzIHRoZSBTSy05ODQxIGFuZCBTSy05 ODQyDQojIHNpbmdsZSBwb3J0IGNhcmRzIChzaW5nbGUgbW9kZSBhbmQgbXVs dGltb2RlIGZpYmVyKSBhbmQgdGhlDQojIFNLLTk4NDMgYW5kIFNLLTk4NDQg ZHVhbCBwb3J0IGNhcmRzIChhbHNvIHNpbmdsZSBtb2RlIGFuZCBtdWx0aW1v ZGUpLg0KIyBUaGUgZHJpdmVyIHdpbGwgYXV0b2RldGVjdCB0aGUgbnVtYmVy IG9mIHBvcnRzIG9uIHRoZSBjYXJkIGFuZA0KIyBhdHRhY2ggZWFjaCBvbmUg YXMgYSBzZXBhcmF0ZSBuZXR3b3JrIGludGVyZmFjZS4NCiMNCiMgVGhlICd0 aScgZGV2aWNlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIFBDSSBnaWdhYml0IGV0 aGVybmV0IE5JQ3MgYmFzZWQNCiMgb24gdGhlIEFsdGVvbiBOZXR3b3JrcyBU aWdvbiAxIGFuZCBUaWdvbiAyIGNoaXBzZXRzLiBUaGlzIGluY2x1ZGVzIHRo ZQ0KIyBBbHRlb24gQWNlTklDLCB0aGUgM0NvbSAzYzk4NSwgdGhlIE5ldGdl YXIgR0E2MjAgYW5kIHZhcmlvdXMgb3RoZXJzLg0KIyBOb3RlIHRoYXQgeW91 IHdpbGwgcHJvYmFibHkgd2FudCB0byBidW1wIHVwIE5NQkNMVVNURVJTIGEg bG90IHRvIHVzZQ0KIyB0aGlzIGRyaXZlci4NCiMNCiMgVGhlICd0bCcgZGV2 aWNlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50 cyBUTkVURTEwMA0KIyBzZXJpZXMgJ1RodW5kZXJMQU4nIGNhcmRzIGFuZCBp bnRlZ3JhdGVkIGV0aGVybmV0IGNvbnRyb2xsZXJzLiBUaGlzDQojIGluY2x1 ZGVzIHNldmVyYWwgQ29tcGFxIE5ldGVsbGlnZW50IDEwLzEwMCBjYXJkcyBh bmQgdGhlIGJ1aWx0LWluDQojIGV0aGVybmV0IGNvbnRyb2xsZXJzIGluIHNl dmVyYWwgQ29tcGFxIFByb3NpZ25pYSwgUHJvbGlhbnQgYW5kDQojIERlc2tw cm8gc3lzdGVtcy4gSXQgYWxzbyBzdXBwb3J0cyBzZXZlcmFsIE9saWNvbSAx ME1icHMgYW5kIDEwLzEwMA0KIyBib2FyZHMuDQojDQojIFRoZSBgdHgnIGRl dmljZSBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgU01DIDk0MzIgVFgsIEJU WCBhbmQgRlRYIGNhcmRzLg0KIw0KIyBUaGUgYHR4cCcgZGV2aWNlIHByb3Zp ZGVzIHN1cHBvcnQgZm9yIHRoZSAzQ29tIDNjUjk5MCAiVHlwaG9vbiINCiMg MTAvMTAwIGFkYXB0ZXJzLg0KIw0KIyBUaGUgYHZyJyBkZXZpY2UgcHJvdmlk ZXMgc3VwcG9ydCBmb3IgdmFyaW91cyBmYXN0IGV0aGVybmV0IGFkYXB0ZXJz DQojIGJhc2VkIG9uIHRoZSBWSUEgVGVjaG5vbG9naWVzIFZUMzA0MyBgUmhp bmUgSScgYW5kIFZUODZDMTAwQSBgUmhpbmUgSUknDQojIGNoaXBzLCBpbmNs dWRpbmcgdGhlIEQtTGluayBERkU1MzBUWCAoc2VlICdybCcgZm9yIERGRTUz MFRYKyksIHRoZSBIYXdraW5nIA0KIyBUZWNobm9sb2dpZXMgUE4xMDJUWCwg YW5kIHRoZSBBT3Blbi9BY2VyIEFMTi0zMjAuDQojDQojIFRoZSBgdngnIGRl dmljZSBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgM0NvbSAzQzU5MCBhbmQg M0M1OTUNCiMgZWFybHkgc3VwcG9ydA0KIw0KIyBUaGUgYHdiJyBkZXZpY2Ug cHJvdmlkZXMgc3VwcG9ydCBmb3IgdmFyaW91cyBmYXN0IGV0aGVybmV0IGFk YXB0ZXJzDQojIGJhc2VkIG9uIHRoZSBXaW5ib25kIFc4OUM4NDBGIGNoaXAu IE5vdGU6IHRoaXMgaXMgbm90IHRoZSBzYW1lIGFzDQojIHRoZSBXaW5ib25k IFc4OUM5NDBGLCB3aGljaCBpcyBhbiBORTIwMDAgY2xvbmUuDQojDQojIFRo ZSBgd3gnIGRldmljZSBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgSW50ZWwg R2lnYWJpdCBFdGhlcm5ldA0KIyBQQ0kgY2FyZCAoYFdpc2VtYW4nKS4NCiMN CiMgVGhlIGB4bCcgZGV2aWNlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSAz Q29tIDNjOTAwLCAzYzkwNSBhbmQNCiMgM2M5MDVCIChGYXN0KSBFdGhlcmxp bmsgWEwgY2FyZHMgYW5kIGludGVncmF0ZWQgY29udHJvbGxlcnMuIFRoaXMN CiMgaW5jbHVkZXMgdGhlIGludGVncmF0ZWQgM2M5MDVCLVRYIGNoaXBzIGlu IGNlcnRhaW4gRGVsbCBPcHRpcGxleCBhbmQNCiMgRGVsbCBQcmVjaXNpb24g ZGVza3RvcCBtYWNoaW5lcyBhbmQgdGhlIGludGVncmF0ZWQgM2M5MDUtVFgg Y2hpcHMNCiMgaW4gRGVsbCBMYXRpdHVkZSBsYXB0b3AgZG9ja2luZyBzdGF0 aW9ucy4NCiMNCiMgVGhlIGBmcGEnIGRldmljZSBwcm92aWRlcyBzdXBwb3J0 IGZvciB0aGUgRGlnaXRhbCBERUZQQSBQQ0kgRkRESQ0KIyBhZGFwdGVyLiBw c2V1ZG8tZGV2aWNlIGZkZGkgaXMgYWxzbyBuZWVkZWQuDQojDQojIFRoZSBg bWV0ZW9yJyBkZXZpY2UgaXMgYSBQQ0kgdmlkZW8gY2FwdHVyZSBib2FyZC4g SXQgY2FuIGFsc28gaGF2ZSB0aGUNCiMgZm9sbG93aW5nIG9wdGlvbnM6DQoj ICAgb3B0aW9ucyBNRVRFT1JfQUxMT0NfUEFHRVM9eHh4CXByZWFsbG9jYXRl IGtlcm5lbCBwYWdlcyBmb3IgZGF0YSBlbnRyeQ0KIwlmaWd1cmUgKFJPV1Mq Q09MVU1OKkJZVEVTX1BFUl9QSVhFTCpGUkFNRStQQUdFX1NJWkUtMSkvUEFH RV9TSVpFDQojICAgb3B0aW9ucyBNRVRFT1JfREVBTExPQ19QQUdFUwlyZW1v dmUgYWxsIGFsbG9jYXRlZCBwYWdlcyBvbiBjbG9zZSgyKQ0KIyAgIG9wdGlv bnMgTUVURU9SX0RFQUxMT0NfQUJPVkU9eHh4CXJlbW92ZSBhbGwgYWxsb2Nh dGVkIHBhZ2VzIGFib3ZlIHRoZQ0KIwlzcGVjaWZpZWQgYW1vdW50LiBJZiB0 aGlzIHZhbHVlIGlzIGJlbG93IHRoZSBhbGxvY2F0ZWQgYW1vdW50IG5vIGFj dGlvbg0KIwl0YWtlbg0KIyAgIG9wdGlvbnMgTUVURU9SX1NZU1RFTV9ERUZB VUxUPXtNRVRFT1JfUEFMfE1FVEVPUl9OVFNDfE1FVEVPUl9TRUNBTX0sIHVz ZWQNCiMJZm9yIGluaXRpYWxpemF0aW9uIG9mIGZwcyByb3V0aW5lIHdoZW4g YSBzaWduYWwgaXMgbm90IHByZXNlbnQuDQojDQojIFRoZSAnYmt0cicgZGV2 aWNlIGlzIGEgUENJIHZpZGVvIGNhcHR1cmUgZGV2aWNlIHVzaW5nIHRoZSBC cm9va3RyZWUNCiMgYnQ4NDgvYnQ4NDhhL2J0ODQ5YS9idDg3OC9idDg3OSBj aGlwc2V0LiBXaGVuIHVzZWQgd2l0aCBhIFRWIFR1bmVyIGl0IGZvcm1zIGEN CiMgVFYgY2FyZCwgZWcgTWlybyBQQy9UViwgSGF1cHBhdWdlIFdpbkNhc3Qv VFYgV2luVFYsIFZpZGVvTG9naWMgQ2FwdGl2YXRvciwNCiMgSW50ZWwgU21h cnQgVmlkZW8gSUlJLCBBdmVyTWVkaWEsIElNUyBUdXJibywgRmx5VmlkZW8u DQojDQojIG9wdGlvbnMgCU9WRVJSSURFX0NBUkQ9eHh4DQojIG9wdGlvbnMg CU9WRVJSSURFX1RVTkVSPXh4eA0KIyBvcHRpb25zIAlPVkVSUklERV9NU1A9 MQ0KIyBvcHRpb25zIAlPVkVSUklERV9EQlg9MQ0KIyBUaGVzZSBvcHRpb25z IGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBhdXRvIGRldGVjdGlvbg0K IyBUaGUgY3VycmVudCB2YWx1ZXMgZm9yIHh4eCBhcmUgZm91bmQgaW4gc3Jj L3N5cy9kZXYvYmt0ci9ia3RyX2NhcmQuaA0KIyBVc2luZyBzeXNjdGwoOCkg cnVuLXRpbWUgb3ZlcnJpZGVzIG9uIGEgcGVyLWNhcmQgYmFzaXMgY2FuIGJl IG1hZGUNCiMNCiMgb3B0aW9ucyAJQlJPT0tUUkVFX1NZU1RFTV9ERUZBVUxU PUJST09LVFJFRV9QQUwNCiMgb3INCiMgb3B0aW9ucyAJQlJPT0tUUkVFX1NZ U1RFTV9ERUZBVUxUPUJST09LVFJFRV9OVFNDDQojIFNwZWNpZmVzIHRoZSBk ZWZhdWx0IHZpZGVvIGNhcHR1cmUgbW9kZS4NCiMgVGhpcyBpcyByZXF1aXJl ZCBmb3IgRHVhbCBDcnlzdGFsICgyOCYzNU1oeikgYm9hcmRzIHdoZXJlIFBB TCBpcyB1c2VkDQojIHRvIHByZXZlbnQgaGFuZ3MgZHVyaW5nIGluaXRpYWxp c2F0aW9uLiAgZWcgVmlkZW9Mb2dpYyBDYXB0aXZhdG9yIFBDSS4NCiMNCiMg b3B0aW9ucyAJQktUUl9VU0VfUExMDQojIFBBTCBvciBTRUNBTSB1c2VycyB3 aG8gaGF2ZSBhIDI4TWh6IGNyeXN0YWwgKGFuZCBubyAzNU1oeiBjcnlzdGFs KQ0KIyBtdXN0IGVuYWJsZSBQTEwgbW9kZSB3aXRoIHRoaXMgb3B0aW9uLiBl ZyBzb21lIG5ldyBCdDg3OCBjYXJkcy4NCiMNCiMgb3B0aW9ucyAJQktUUl9H UElPX0FDQ0VTUw0KIyBUaGlzIGVuYWJsZSBJT0NUTHMgd2hpY2ggZ2l2ZSB1 c2VyIGxldmVsIGFjY2VzcyB0byB0aGUgR1BJTyBwb3J0Lg0KIw0KIyBvcHRp b25zIAlCS1RSX05PX01TUF9SRVNFVA0KIyBQcmV2ZW50cyB0aGUgTVNQMzR4 eCByZXNldC4gR29vZCBpZiB5b3UgaW5pdGlhbGlzZSB0aGUgTVNQIGluIGFu b3RoZXIgT1MgZmlyc3QNCiMNCiMgb3B0aW9ucyAJQktUUl80MzBfRlhfTU9E RQ0KIyBTd2l0Y2ggQnQ4NzgvODc5IGNhcmRzIGludG8gSW50ZWwgNDMwRlgg Y2hpcHNldCBjb21wYXRpYmlsaXR5IG1vZGUuDQojDQojIG9wdGlvbnMgCUJL VFJfU0lTX1ZJQV9NT0RFDQojIFN3aXRjaCBCdDg3OC84NzkgY2FyZHMgaW50 byBTSVMvVklBIGNoaXBzZXQgY29tcGF0aWJpbGl0eSBtb2RlIHdoaWNoIGlz DQojIG5lZWRlZCBmb3Igc29tZSBvbGQgU2lTIGFuZCBWSUEgY2hpcHNldCBt b3RoZXJib2FyZHMuDQojIFRoaXMgYWxzbyBhbGxvd3MgQnQ4NzgvODc5IGNo aXBzIHRvIHdvcmsgb24gb2xkIE9QVGkgKDwxOTk3KSBjaGlwc2V0DQojIG1v dGhlcmJvYXJkcyBhbmQgbW90aGVyYm9hcmRzIHdpdGggYmFkIG9yIGluY29t cGxldGUgUENJIDIuMSBzdXBwb3J0Lg0KIyBBcyBhIHJvdWdoIGd1ZXNzLCBv bGQgPSBiZWZvcmUgMTk5OA0KIw0KIw0KIyBUaGUgb2x0ciBkcml2ZXIgc3Vw cG9ydHMgdGhlIGZvbGxvd2luZyBPbGljb20gUENJIHRva2VuLXJpbmcgYWRh cHRlcnMNCiMgT0MtMzEzNiwgT0MtMzEzNywgT0MtMzEzOSwgT0MtMzE0MCwg T0MtMzE0MSwgT0MtMzU0MCwgT0MtMzI1MA0KIw0KZGV2aWNlCQlhaGMJCSMg QUhBMjk0MCBhbmQgb25ib2FyZCBBSUM3eHh4IGRldmljZXMNCiNkZXZpY2UJ CWFtZAkJIyBBTUQgNTNDOTc0IChUZWNrcmFtIERDLTM5MChUKSkNCiNkZXZp Y2UJCWlzcAkJIyBRbG9naWMgZmFtaWx5DQojZGV2aWNlCQlpc3BmdwkJIyBG aXJtd2FyZSBmb3IgUUxvZ2ljIEhCQXMNCiNkZXZpY2UJCW5jcgkJIyBOQ1Iv U3ltYmlvcyBMb2dpYw0KI2RldmljZQkJc3ltCQkjIE5DUi9TeW1iaW9zIExv Z2ljIChuZXdlciBjaGlwc2V0cykNCiMNCiMgT3B0aW9ucyBmb3IgSVNQDQoj DQojCUlTUF9UQVJHRVRfTU9ERQkJLQllbmFibGUgdGFyZ2V0IG1vZGUgb3Bl cmF0aW9uDQojb3B0aW9ucyAJSVNQX1RBUkdFVF9NT0RFPTENCg0KIyBPcHRp b25zIHVzZWQgaW4gZGV2L3N5bS8gKFN5bWJpb3MgU0NTSSBkcml2ZXIpLg0K I29wdGlvbnMgCVNZTV9TRVRVUF9MUF9QUk9CRV9NQVAJIy1Mb3cgUHJpb3Jp dHkgUHJvYmUgTWFwIChiaXRzKQ0KCQkJCQkjIEFsbG93cyB0aGUgbmNyIHRv IHRha2UgcHJlY2VkZW5jZQ0KCQkJCQkjIDEgKDE8PDApIC0+IDgxMGEsIDg2 MA0KCQkJCQkjIDIgKDE8PDEpIC0+IDgyNWEsIDg3NSwgODg1LCA4OTUNCgkJ CQkJIyA0ICgxPDwyKSAtPiA4OTVhLCA4OTYsIDE1MTBkIA0KI29wdGlvbnMg CVNZTV9TRVRVUF9TQ1NJX0RJRkYJIy1IVkQgc3VwcG9ydCBmb3IgODI1YSwg ODc1LCA4ODUNCgkJCQkJIyBkaXNhYmxlZDowIChkZWZhdWx0KSwgZW5hYmxl ZDoxDQojb3B0aW9ucyAJU1lNX1NFVFVQX1BDSV9QQVJJVFkJIy1QQ0kgcGFy aXR5IGNoZWNraW5nDQoJCQkJCSMgZGlzYWJsZWQ6MCwgZW5hYmxlZDoxIChk ZWZhdWx0KQ0KI29wdGlvbnMgCVNZTV9TRVRVUF9NQVhfTFVOCSMtTnVtYmVy IG9mIExVTnMgc3VwcG9ydGVkDQoJCQkJCSMgZGVmYXVsdDo4LCByYW5nZTpb MS4uNjRdDQoNCg0KIyBNSUkgYnVzIHN1cHBvcnQgaXMgcmVxdWlyZWQgZm9y IHNvbWUgUENJIDEwLzEwMCBldGhlcm5ldCBOSUNzLA0KIyBuYW1lbHkgdGhv c2Ugd2hpY2ggdXNlIE1JSS1jb21wbGlhbnQgdHJhbnNjZWl2ZXJzIG9yIGlt cGxlbWVudA0KIyB0cmFuY2VpdmVyIGNvbnRyb2wgaW50ZXJmYWNlcyB0aGF0 IG9wZXJhdGUgbGlrZSBhbiBNSUkuIEFkZGluZw0KIyAiZGV2aWNlIG1paWJ1 czAiIHRvIHRoZSBrZXJuZWwgY29uZmlnIHB1bGxzIGluIHN1cHBvcnQgZm9y DQojIHRoZSBnZW5lcmljIG1paWJ1cyBBUEkgYW5kIGFsbCBvZiB0aGUgUEhZ IGRyaXZlcnMsIGluY2x1ZGluZyBhDQojIGdlbmVyaWMgb25lIGZvciBQSFlz IHRoYXQgYXJlbid0IHNwZWNpZmljYWxseSBoYW5kbGVkIGJ5IGFuDQojIGlu ZGl2aWR1YWwgZHJpdmVyLg0KZGV2aWNlCQltaWlidXMNCg0KIyBQQ0kgRXRo ZXJuZXQgTklDcyB0aGF0IHVzZSB0aGUgY29tbW9uIE1JSSBidXMgY29udHJv bGxlciBjb2RlLg0KI2RldmljZQkJZGMJCSMgREVDL0ludGVsIDIxMTQzIGFu ZCB2YXJpb3VzIHdvcmthbGlrZXMNCmRldmljZQkJZnhwCQkjIEludGVsIEV0 aGVyRXhwcmVzcyBQUk8vMTAwQiAoODI1NTcsIDgyNTU4KQ0KI2RldmljZQkJ cGNuCQkjIEFNRCBBbTc5Qzk3eCBQQ0kgMTAvMTAwIE5JQ3MNCiNkZXZpY2UJ CXJsCQkjIFJlYWxUZWsgODEyOS84MTM5DQojZGV2aWNlCQlzZgkJIyBBZGFw dGVjIEFJQy02OTE1IChgYFN0YXJmaXJlJycpDQojZGV2aWNlCQlzaXMJCSMg U2lsaWNvbiBJbnRlZ3JhdGVkIFN5c3RlbXMgU2lTIDkwMC9TaVMgNzAxNg0K I2RldmljZQkJc3RlCQkjIFN1bmRhbmNlIFNUMjAxIChELUxpbmsgREZFLTU1 MFRYKQ0KI2RldmljZQkJdGwJCSMgVGV4YXMgSW5zdHJ1bWVudHMgVGh1bmRl ckxBTg0KI2RldmljZQkJdHgJCSMgU01DIEV0aGVyUG93ZXIgSUkgKDgzYzE3 eCBgYEVQSUMnJykNCiNkZXZpY2UJCXZyCQkjIFZJQSBSaGluZSwgUmhpbmUg SUkNCiNkZXZpY2UJCXdiCQkjIFdpbmJvbmQgVzg5Qzg0MEYNCiNkZXZpY2UJ CXhsCQkjIDNDb20gM2M5MHggKGBgQm9vbWVyYW5nJycsIGBgQ3ljbG9uZScn KQ0KDQojIFBDSSBFdGhlcm5ldCBOSUNzLg0KI2RldmljZQkJZGUJCSMgREVD L0ludGVsIERDMjF4NHggKGBgVHVsaXAnJykNCiNkZXZpY2UJCXR4cAkJIyAz Q29tIDNjUjk5MCAoYGBUeXBob29uJycpDQojZGV2aWNlCQl2eAkJIyAzQ29t IDNjNTkwLCAzYzU5NSAoYGBWb3J0ZXgnJykNCg0KIyBHaWdhYml0IEV0aGVy bmV0IE5JQ3MuDQojZGV2aWNlCQliZ2UJCSMgQnJvYWRjb20gQkNNNTcweCAo YGBUaWdvbiBJSUknJykNCiNkZXZpY2UJCWd4CQkjIEludGVsIFByby8xMDAw ICg4MjU0MiwgODI1NDMpDQojZGV2aWNlCQlsZ2UJCSMgTGV2ZWwgMSBMWFQx MDAxIChgYE1lcmN1cnknJykNCiNkZXZpY2UJCW5nZQkJIyBOYXRTZW1pIERQ ODM4MjAgYW5kIERQODM4MjENCiNkZXZpY2UJCXNrCQkjIFN5c0tvbm5lY3Qg R0VuZXNpcw0KI2RldmljZQkJdGkJCSMgQWx0ZW9uIChgYFRpZ29uIEknJywg YGBUaWdvbiBJSScnKQ0KI2RldmljZQkJd3gNCg0KDQojZGV2aWNlCQlmcGEN CiNkZXZpY2UJCW1ldGVvcg0KI1RoZSBvbHRyIGRyaXZlciBpbiB0aGUgSVNB IHNlY3Rpb24gd2lsbCBhbHNvIGZpbmQgUENJIGNhcmRzLg0KI2RldmljZQkJ b2x0cjANCg0KDQojIEJyb29rdHJlZSBkcml2ZXIgaGFzIGJlZW4gcG9ydGVk IHRvIHRoZSBuZXcgSTJDIGZyYW1ld29yay4gVGh1cywNCiMgeW91J2xsIG5l ZWQgdG8gaGF2ZSB0aGUgZm9sbG93aW5nIDMgbGluZXMgaW4gdGhlIGtlcm5l bCBjb25maWcuDQojICAgICBkZXZpY2Ugc21idXMNCiMgICAgIGRldmljZSBp aWNidXMNCiMgICAgIGRldmljZSBpaWNiYg0KIyBUaGUgaWljIGFuZCBzbWIg ZGV2aWNlcyBhcmUgb25seSBuZWVkZWQgaWYgeW91IHdhbnQgdG8gY29udHJv bCBvdGhlcg0KIyBJMkMgc2xhdmVzIGNvbm5lY3RlZCB0byB0aGUgZXh0ZXJu YWwgY29ubmVjdG9yIG9mIHNvbWUgY2FyZHMuDQojDQojZGV2aWNlCQlia3Ry DQoNCiMNCiMgUENDQVJEL1BDTUNJQQ0KIw0KIyBjYXJkOiBwY2NhcmQgc2xv dHMNCiMgcGNpYzogaXNhL3BjY2FyZCBicmlkZ2UNCiNkZXZpY2UJCXBjaWMw IGF0IGlzYT8NCiNkZXZpY2UJCXBjaWMxIGF0IGlzYT8NCiNkZXZpY2UJCWNh cmQNCg0KIyBZb3UgbWF5IG5lZWQgdG8gcmVzZXQgYWxsIHBjY2FyZHMgYWZ0 ZXIgcmVzdW1pbmcNCiNvcHRpb25zIAlQQ0lDX1JFU1VNRV9SRVNFVAkjIHJl c2V0IGFmdGVyIHJlc3VtZQ0KDQojDQojIExhcHRvcC9Ob3RlYm9vayBvcHRp b25zOg0KIw0KIyBTZWUgYWxzbzoNCiMgIGFwbSB1bmRlciBgTWlzY2VsbGFu ZW91cyBoYXJkd2FyZScNCiMgYWJvdmUuDQoNCiMgRm9yIG9sZGVyIG5vdGVi b29rcyB0aGF0IHNpZ25hbCBhIHBvd2VyZmFpbCBjb25kaXRpb24gKGV4dGVy bmFsDQojIHBvd2VyIHN1cHBseSBkcm9wcGVkLCBvciBiYXR0ZXJ5IHN0YXRl IGxvdykgYnkgaXNzdWluZyBhbiBOTUk6DQoNCiNvcHRpb25zIAlQT1dFUkZB SUxfTk1JCSMgbWFrZSBpdCBiZWVwIGluc3RlYWQgb2YgcGFuaWNpbmcNCg0K Iw0KIyBTTUIgYnVzDQojDQojIFN5c3RlbSBNYW5hZ2VtZW50IEJ1cyBzdXBw b3J0IGlzIHByb3ZpZGVkIGJ5IHRoZSAnc21idXMnIGRldmljZS4NCiMgQWNj ZXNzIHRvIHRoZSBTTUJ1cyBkZXZpY2UgaXMgdmlhIHRoZSAnc21iJyBkZXZp Y2UgKC9kZXYvc21iKiksDQojIHdoaWNoIGlzIGEgY2hpbGQgb2YgdGhlICdz bWJ1cycgZGV2aWNlLg0KIw0KIyBTdXBwb3J0ZWQgZGV2aWNlczoNCiMgc21i CQlzdGFuZGFyZCBpbyB0aHJvdWdoIC9kZXYvc21iKg0KIw0KIyBTdXBwb3J0 ZWQgU01CIGludGVyZmFjZXM6DQojIGlpY3NtYglJMkMgdG8gU01CIGJyaWRn ZSB3aXRoIGFueSBpaWNidXMgaW50ZXJmYWNlDQojIGJrdHIJCWJyb29rdHJl ZTg0OCBJMkMgaGFyZHdhcmUgaW50ZXJmYWNlDQojIGludHBtCQlJbnRlbCBQ SUlYNCAoODIzNzFBQiwgODI0NDNNWCkgUG93ZXIgTWFuYWdlbWVudCBVbml0 DQojIGFscG0JCUFjZXIgQWxhZGRpbi1JVi9WL1BybzIgUG93ZXIgTWFuYWdl bWVudCBVbml0DQojIGljaHNtYglJbnRlbCBJQ0ggU01CdXMgY29udHJvbGxl ciBjaGlwcyAoODI4MDFBQSwgODI4MDFBQiwgODI4MDFCQSkNCiMNCmRldmlj ZQkJc21idXMJCSMgQnVzIHN1cHBvcnQsIHJlcXVpcmVkIGZvciBzbWIgYmVs b3cuDQoNCmRldmljZQkJaW50cG0NCiNkZXZpY2UJCWFscG0NCiNkZXZpY2UJ CWljaHNtYg0KDQpkZXZpY2UJCXNtYg0KDQojDQojIEkyQyBCdXMNCiMNCiMg UGhpbGlwcyBpMmMgYnVzIHN1cHBvcnQgaXMgcHJvdmlkZWQgYnkgdGhlIGBp aWNidXMnIGRldmljZS4NCiMNCiMgU3VwcG9ydGVkIGRldmljZXM6DQojIGlj CWkyYyBuZXR3b3JrIGludGVyZmFjZQ0KIyBpaWMJaTJjIHN0YW5kYXJkIGlv DQojIGlpY3NtYiBpMmMgdG8gc21iIGJyaWRnZS4gQWxsb3cgaTJjIGkvbyB3 aXRoIHNtYiBjb21tYW5kcy4NCiMNCiMgU3VwcG9ydGVkIGludGVyZmFjZXM6 DQojIHBjZglQaGlsaXBzIFBDRjg1ODQgSVNBLWJ1cyBjb250cm9sbGVyDQoj IGJrdHIJYnJvb2t0cmVlODQ4IEkyQyBzb2Z0d2FyZSBpbnRlcmZhY2UNCiMN CiMgT3RoZXI6DQojIGlpY2JiCWdlbmVyaWMgSTJDIGJpdC1iYW5naW5nIGNv ZGUgKG5lZWRlZCBieSBscGJiLCBia3RyKQ0KIw0KZGV2aWNlCQlpaWNidXMJ CSMgQnVzIHN1cHBvcnQsIHJlcXVpcmVkIGZvciBpYy9paWMvaWljc21iIGJl bG93Lg0KZGV2aWNlCQlpaWNiYg0KDQpkZXZpY2UJCWljDQpkZXZpY2UJCWlp Yw0KZGV2aWNlCQlpaWNzbWIJCSMgc21iIG92ZXIgaTJjIGJyaWRnZQ0KDQoj ZGV2aWNlCQlwY2YwCWF0IGlzYT8gcG9ydCAweDMyMCBpcnEgNQ0KDQojLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIElTRE40QlNEDQojDQoj IFNlZSAvdXNyL3NoYXJlL2V4YW1wbGVzL2lzZG4vUk9BRE1BUCBmb3IgYW4g aW50cm9kdWN0aW9uIHRvIGlzZG40YnNkLg0KIw0KIyBpNGIgcGFzc2l2ZSBJ U0ROIGNhcmRzIHN1cHBvcnQgY29udGFpbnMgdGhlIGZvbGxvd2luZyBoYXJk d2FyZSBkcml2ZXJzOg0KIw0KIyAgICAgICBpc2ljICAtIFNpZW1lbnMvSW5m aW5lb24gSVNETiBJU0FDL0hTQ1gvSVBBQyBjaGlwc2V0IGRyaXZlcg0KIyAg ICAgICBpd2ljICAtIFdpbmJvbmQgVzY2OTIgUENJIGJ1cyBJU0ROIFMvVCBp bnRlcmZhY2UgY29udHJvbGxlcg0KIyAgICAgICBpZnBpICAtIEFWTSBGcml0 eiFDYXJkIFBDSSBkcml2ZXINCiMgICAgICAgaWhmYyAgLSBDb2xvZ25lIENo aXAgSEZDIElTQS9JU0EtUG5QIGNoaXBzZXQgZHJpdmVyDQojICAgICAgIGlm cG5wIC0gQVZNIEZyaXR6IUNhcmQgUG5QIGRyaXZlciANCiMgICAgICAgaXRq YyAgLSBTaWVtZW5zIElTQUMgLyBUSk5ldCBUaWdlcjMwMC8zMjAgY2hpcHNl dA0KIw0KIyBpNGIgYWN0aXZlIElTRE4gY2FyZHMgc3VwcG9ydCBjb250YWlu cyB0aGUgZm9sbG93aW5nIGhhcmR3YXJlIGRyaXZlcnM6DQojDQojICAgICAg IGlhdmMgIC0gQVZNIEIxIFBDSSwgQVZNIEIxIElTQSwgQVZNIFQxDQojDQoj IE5vdGUgdGhhdCB0aGUgYGBvcHRpb25zJycgKGlmIGdpdmVuKSBhbmQgYGBk ZXZpY2UnJyBsaW5lcyBtdXN0IEJPVEgNCiMgYmUgdW5jb21tZW50ZWQgdG8g ZW5hYmxlIHN1cHBvcnQgZm9yIGEgZ2l2ZW4gY2FyZCAhDQojDQojIEluIGFk ZGl0aW9uIHRvIGEgaGFyZHdhcmUgZHJpdmVyIChhbmQgcHJvYmFibHkgYW4g b3B0aW9uKSB0aGUgbWFuZGF0b3J5DQojIElTRE4gcHJvdG9jb2wgc3RhY2sg ZGV2aWNlcyBhbmQgdGhlIG1hbmRhdG9yeSBzdXBwb3J0IGRldmljZSBtdXN0 IGJlIA0KIyBlbmFibGVkIGFzIHdlbGwgYXMgb25lIG9yIG1vcmUgZGV2aWNl cyBmcm9tIHRoZSBvcHRpb25hbCBkZXZpY2VzIHNlY3Rpb24uDQojDQojLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIGlzaWMgZHJpdmVyIChT aWVtZW5zL0luZmluZW9uIGNoaXBzZXRzKQ0KIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KIw0KIyBJU0EgYnVzIG5vbi1QblAgQ2FyZHM6DQoj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMgVGVsZXMgUzAvOCBvciBO aWNjeSAxMDA4DQojb3B0aW9ucyAJVEVMX1MwXzgNCiNkZXZpY2UJCWlzaWMw CWF0IGlzYT8gaW9tZW0gMHhkMDAwMCBpcnEgNSBmbGFncyAxDQojDQojIFRl bGVzIFMwLzE2IG9yIENyZWF0aXggSVNETi1TMCBvciBOaWNjeSAxMDE2DQoj b3B0aW9ucyAJVEVMX1MwXzE2DQojZGV2aWNlCQlpc2ljMAlhdCBpc2E/IHBv cnQgMHhkODAgaW9tZW0gMHhkMDAwMCBpcnEgNSBmbGFncyAyDQojDQojIFRl bGVzIFMwLzE2LjMNCiNvcHRpb25zIAlURUxfUzBfMTZfMw0KI2RldmljZQkJ aXNpYzAJYXQgaXNhPyBwb3J0IDB4ZDgwIGlycSA1IGZsYWdzIDMNCiMNCiMg QVZNIEExIG9yIEFWTSBGcml0eiFDYXJkDQojb3B0aW9ucyAJQVZNX0ExDQoj ZGV2aWNlCQlpc2ljMAlhdCBpc2E/IHBvcnQgMHgzNDAgaXJxIDUgZmxhZ3Mg NA0KIw0KIyBVU1JvYm90aWNzIFNwb3J0c3RlciBJU0ROIFRBIGludGVybg0K I29wdGlvbnMgCVVTUl9TVEkNCiNkZXZpY2UJCWlzaWMwCWF0IGlzYT8gcG9y dCAweDI2OCBpcnEgNSBmbGFncyA3DQojDQojIElUSyBpeDEgTWljcm8gKCA8 IFYuMywgbm9uLVBuUCB2ZXJzaW9uICkNCiNvcHRpb25zIAlJVEtJWDENCiNk ZXZpY2UJCWlzaWMwCWF0IGlzYT8gcG9ydCAweDM5OCBpcnEgMTAgZmxhZ3Mg MTgNCiMNCiMgRUxTQSBQQ0MtMTYNCiNvcHRpb25zIAlFTFNBX1BDQzE2DQoj ZGV2aWNlCQlpc2ljMAlhdCBpc2E/IHBvcnQgMHgzNjAgaXJxIDEwIGZsYWdz IDIwDQojDQojIElTQSBidXMgUG5QIENhcmRzOg0KIyAtLS0tLS0tLS0tLS0t LS0tLS0NCiMNCiMgVGVsZXMgUzAvMTYuMyBQblANCiNvcHRpb25zIAlURUxf UzBfMTZfM19QDQojZGV2aWNlCQlpc2ljDQojDQojIENyZWF0aXggSVNETi1T MCBQJlANCiNvcHRpb25zIAlDUlRYX1MwX1ANCiNkZXZpY2UJCWlzaWMNCiMN CiMgRHIuIE5ldWhhdXMgTmljY3kgR29ADQojb3B0aW9ucyAJRFJOX05HTw0K I2RldmljZQkJaXNpYw0KIw0KIyBTZWRsYmF1ZXIgV2luIFNwZWVkDQojb3B0 aW9ucyAJU0VETEJBVUVSDQojZGV2aWNlCQlpc2ljDQojDQojIER5bmFsaW5r IElTNjRQSA0KI29wdGlvbnMgCURZTkFMSU5LIA0KI2RldmljZQkJaXNpYw0K Iw0KIyBFTFNBIFF1aWNrU3RlcCAxMDAwcHJvIElTQQ0KI29wdGlvbnMgCUVM U0FfUVMxSVNBDQojZGV2aWNlCQlpc2ljDQojDQojIElUSyBpeDEgTWljcm8g KCBWLjMsIFBuUCB2ZXJzaW9uICkNCiNvcHRpb25zIAlJVEtJWDENCiNkZXZp Y2UJCWlzaWMNCiMNCiMgU2llbWVucyBJLVN1cmYgMi4wDQojb3B0aW9ucyAJ U0lFTUVOU19JU1VSRjINCiNkZXZpY2UJCWlzaWMNCiMNCiMgQXN1c2NvbSBJ U0RObGluayAxMjhLIElTQUMNCiNvcHRpb25zIAlBU1VTQ09NX0lQQUMNCiNk ZXZpY2UgCWlzaWMNCiMNCiMgRWljb24gRGllaGwgRElWQSAyLjAgYW5kIDIu MDINCiNvcHRpb25zICAgICAgIEVJQ09OX0RJVkENCiNkZXZpY2UgCWlzaWMN CiMNCiMgUENJIGJ1cyBDYXJkczoNCiMgLS0tLS0tLS0tLS0tLS0NCiMNCiMg RUxTQSBNaWNyb0xpbmsgSVNETi9QQ0kgKHNhbWUgYXMgRUxTQSBRdWlja1N0 ZXAgMTAwMHBybyBQQ0kpDQojb3B0aW9ucyAJRUxTQV9RUzFQQ0kNCiNkZXZp Y2UJCWlzaWMNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CiMgICAgICAgaWZwbnAgZHJpdmVyIGZvciBBVk0gRnJpdHohQ2FyZCBJU0Eg UG5QDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIEFW TSBGcml0eiFDYXJkIElTQSBQblANCiNkZXZpY2UgaWZwbnANCiMNCiMtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgICAgICAgaWhmYyBkcml2 ZXIgZm9yIENvbG9nbmUgQ2hpcCBJU0EgY2hpcHNldHMgKGV4cGVyaW1lbnRh bCEpDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIFRl bGVzIDE2LjNjIElTQSBQblANCiMgQWNlcklTRE4gUDEwIElTQSBQblANCiMg VEVMRUlOVCBJU0ROIFNQRUVEIE5vLjENCiNkZXZpY2UgaWhmYw0KIw0KIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyAgICAgICBpZnBpIGRy aXZlciBmb3IgQVZNIEZyaXR6IUNhcmQgUENJIDEuMCAoMi4wIHVuc3VwcG9y dGVkISkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCiMg QVZNIEZyaXR6IUNhcmQgUENJIDEuMA0KI2RldmljZSAgaWZwaQ0KIw0KIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyAgICAgICBpd2ljIGRy aXZlciBmb3IgV2luYm9uZCBXNjY5MiBjaGlwc2V0DQojLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQojDQojIEFTVVNDT00gUC1JTjEwMC1TVC1E IChhbmQgb3RoZXIgV2luYm9uZCBXNjY5MiBiYXNlZCBjYXJkcykNCiNkZXZp Y2UgIGl3aWMNCiMNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CiMgICAgICAgaXRqYyBkcml2ZXIgZm9yIFNpbWVucyBJU0FDIC8gVEpOZXQg VGlnZXIzMDAvMzIwIGNoaXBzZXQNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCiMNCiMgVHJhdmVyc2UgVGVjaG5vbG9naWVzIE5FVGpldC1T DQojIFRlbGVzIFBDSS1USg0KI2RldmljZSAgaXRqYw0KIw0KIy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyAgICAgICBpYXZjIGRyaXZlciAo QVZNIGFjdGl2ZSBjYXJkcywgbmVlZHMgaTRiY2FwaSBkcml2ZXIhKQ0KIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIw0KI3BzZXVkby1kZXZp Y2UgICAiaTRiY2FwaSIJMg0KIw0KIyBBVk0gQjEgUENJDQojZGV2aWNlICAg ICAgICAgIGlhdmMwDQojDQojIEFWTSBCMSBJU0EgYnVzIChQblAgbW9kZSBu b3Qgc3VwcG9ydGVkISkNCiNkZXZpY2UgIGlhdmMwIGF0IGlzYT8gcG9ydCAw eDE1MCBpcnEgNQ0KIw0KIw0KIyBJU0ROIFByb3RvY29sIFN0YWNrIChtYW5k YXRvcnkpDQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMN CiMgUS45MjEgLyBsYXllciAyIC0gaTRiIHBhc3NpdmUgY2FyZHMgRCBjaGFu bmVsIGhhbmRsaW5nDQojcHNldWRvLWRldmljZQkiaTRicTkyMSINCiMNCiMg US45MzEgLyBsYXllciAzIC0gaTRiIHBhc3NpdmUgY2FyZHMgRCBjaGFubmVs IGhhbmRsaW5nDQojcHNldWRvLWRldmljZQkiaTRicTkzMSINCiMNCiMgbGF5 ZXIgNCAtIGk0YiBjb21tb24gcGFzc2l2ZSBhbmQgYWN0aXZlIGNhcmQgaGFu ZGxpbmcNCiNwc2V1ZG8tZGV2aWNlCSJpNGIiDQojDQojIElTRE4gZGV2aWNl cw0KIyAtLS0tLS0tLS0tLS0NCiMNCiMgdXNlcmxhbmQgZHJpdmVyIHRvIGRv IElTRE4gdHJhY2luZyAoZm9yIHBhc3NpdmUgY2FyZHMgb25seSkNCiNwc2V1 ZG8tZGV2aWNlCSJpNGJ0cmMiCTQNCiMNCiMgdXNlcmxhbmQgZHJpdmVyIHRv IGNvbnRyb2wgdGhlIHdob2xlIHRoaW5nIChtYW5kYXRvcnkpDQojcHNldWRv LWRldmljZQkiaTRiY3RsIg0KIw0KIyB1c2VybGFuZCBkcml2ZXIgZm9yIGFj Y2VzcyB0byByYXcgQiBjaGFubmVsDQojcHNldWRvLWRldmljZQkiaTRicmJj aCIJNA0KIw0KIyB1c2VybGFuZCBkcml2ZXIgZm9yIHRlbGVwaG9ueQ0KI3Bz ZXVkby1kZXZpY2UJImk0YnRlbCIJMg0KIw0KIyBuZXR3b3JrIGRyaXZlciBm b3IgSVAgb3ZlciByYXcgSERMQyBJU0RODQojcHNldWRvLWRldmljZQkiaTRi aXByIgk0DQojIGVuYWJsZSBWSiBoZWFkZXIgY29tcHJlc3Npb24gZGV0ZWN0 aW9uIGZvciBpcHIgaS9mDQojb3B0aW9ucyAJSVBSX1ZKDQojIGVuYWJsZSBs b2dnaW5nIG9mIHRoZSBmaXJzdCBuIElQIHBhY2tldHMgdG8gaXNkbmQgKG49 MzIgaGVyZSkNCiNvcHRpb25zCUlQUl9MT0c9MzINCiMNCiMgbmV0d29yayBk cml2ZXIgZm9yIHN5bmMgUFBQIG92ZXIgSVNETg0KI3BzZXVkby1kZXZpY2UJ Imk0YmlzcHBwIgk0DQoNCg0KIyBQYXJhbGxlbC1Qb3J0IEJ1cw0KIw0KIyBQ YXJhbGxlbCBwb3J0IGJ1cyBzdXBwb3J0IGlzIHByb3ZpZGVkIGJ5IHRoZSBg cHBidXMnIGRldmljZS4NCiMgTXVsdGlwbGUgZGV2aWNlcyBtYXkgYmUgYXR0 YWNoZWQgdG8gdGhlIHBhcmFsbGVsIHBvcnQsIGRldmljZXMNCiMgYXJlIGF1 dG9tYXRpY2FsbHkgcHJvYmVkIGFuZCBhdHRhY2hlZCB3aGVuIGZvdW5kLg0K Iw0KIyBTdXBwb3J0ZWQgZGV2aWNlczoNCiMgdnBvCUlvbWVnYSBaaXAgRHJp dmUNCiMJUmVxdWlyZXMgU0NTSSBkaXNrIHN1cHBvcnQgKCdzY2J1cycgYW5k ICdkYScpLCBiZXN0DQojCXBlcmZvcm1hbmNlIGlzIGFjaGlldmVkIHdpdGgg cG9ydHMgaW4gRVBQIDEuOSBtb2RlLg0KIyBscHQJUGFyYWxsZWwgUHJpbnRl cg0KIyBwbGlwCVBhcmFsbGVsIG5ldHdvcmsgaW50ZXJmYWNlDQojIHBwaQlH ZW5lcmFsLXB1cnBvc2UgSS9PICgiR2VlayBQb3J0IikgKyBJRUVFMTI4NCBJ L08NCiMgcHBzCVB1bHNlIHBlciBzZWNvbmQgVGltaW5nIEludGVyZmFjZQ0K IyBscGJiCVBoaWxpcHMgb2ZmaWNpYWwgcGFyYWxsZWwgcG9ydCBJMkMgYml0 LWJhbmdpbmcgaW50ZXJmYWNlDQojDQojIFN1cHBvcnRlZCBpbnRlcmZhY2Vz Og0KIyBwcGMJSVNBLWJ1cyBwYXJhbGxlbCBwb3J0IGludGVyZmFjZXMuDQoj DQoNCiNvcHRpb25zCQlQUENfUFJPQkVfQ0hJUFNFVCAjIEVuYWJsZSBjaGlw c2V0IHNwZWNpZmljIGRldGVjdGlvbg0KCQkJCSAgIyAoc2VlIGZsYWdzIGlu IHBwYyg0KSkNCiNvcHRpb25zIAlERUJVR18xMjg0CSMgSUVFRTEyODQgc2ln bmFsaW5nIHByb3RvY29sIGRlYnVnDQojb3B0aW9ucyAJUEVSSVBIXzEyODQJ IyBNYWtlcyB5b3VyIGNvbXB1dGVyIGFjdCBhcyBhIElFRUUxMjg0DQoJCQkJ IyBjb21wbGlhbnQgcGVyaXBoZXJhbA0KI29wdGlvbnMgCURPTlRQUk9CRV8x Mjg0CSMgQXZvaWQgYm9vdCBkZXRlY3Rpb24gb2YgUG5QIHBhcmFsbGVsIGRl dmljZXMNCiNvcHRpb25zIAlWUDBfREVCVUcJIyBaSVAvWklQKyBkZWJ1Zw0K I29wdGlvbnMgCUxQVF9ERUJVRwkjIFByaW50ZXIgZHJpdmVyIGRlYnVnDQoj b3B0aW9ucyAJUFBDX0RFQlVHCSMgUGFyYWxsZWwgY2hpcHNldCBsZXZlbCBk ZWJ1Zw0KI29wdGlvbnMgCVBMSVBfREVCVUcJIyBQYXJhbGxlbCBuZXR3b3Jr IElQIGludGVyZmFjZSBkZWJ1Zw0KI29wdGlvbnMJCVBDRkNMT0NLX1ZFUkJP U0UgICAgICAgICAjIFZlcmJvc2UgcGNmY2xvY2sgZHJpdmVyDQojb3B0aW9u cwkJUENGQ0xPQ0tfTUFYX1JFVFJJRVM9NSAgICMgTWF4aW11bSByZWFkIHRy aWVzIChkZWZhdWx0IDEwKQ0KDQpkZXZpY2UJCXBwYzAJYXQgaXNhPyBpcnEg Nw0KZGV2aWNlCQlwcGJ1cw0KI2RldmljZQkJdnBvDQpkZXZpY2UJCWxwdA0K ZGV2aWNlCQlwbGlwDQojZGV2aWNlCQlwcGkNCiNkZXZpY2UJCXBwcw0KI2Rl dmljZQkJbHBiYg0KI2RldmljZQkJcGNmY2xvY2sNCg0KIyBLZXJuZWwgQk9P VFAgc3VwcG9ydA0KDQojb3B0aW9ucyAJQk9PVFAJCSMgVXNlIEJPT1RQIHRv IG9idGFpbiBJUCBhZGRyZXNzL2hvc3RuYW1lDQojb3B0aW9ucyAJQk9PVFBf TkZTUk9PVAkjIE5GUyBtb3VudCByb290IGZpbGVzeXN0ZW0gdXNpbmcgQk9P VFAgaW5mbw0KI29wdGlvbnMgCUJPT1RQX05GU1YzCSMgVXNlIE5GUyB2MyB0 byBORlMgbW91bnQgcm9vdA0KI29wdGlvbnMgCUJPT1RQX0NPTVBBVAkjIFdv cmthcm91bmQgZm9yIGJyb2tlbiBib290cCBkYWVtb25zLg0KI29wdGlvbnMg CUJPT1RQX1dJUkVEX1RPPWZ4cDAgIyBVc2UgaW50ZXJmYWNlIGZ4cDAgZm9y IEJPT1RQDQoNCiMNCiMgQWRkIHRpZS1pbnMgZm9yIGEgaGFyZHdhcmUgd2F0 Y2hkb2cuICBUaGlzIG9ubHkgZW5hYmxlIHRoZSBob29rczsNCiMgdGhlIHVz ZXIgbXVzdCBzdGlsbCBzdXBwbHkgdGhlIGFjdHVhbCBkcml2ZXIuDQojDQoj b3B0aW9ucyAJSFdfV0RPRw0KDQojDQojIFNldCB0aGUgbnVtYmVyIG9mIFBW IGVudHJpZXMgcGVyIHByb2Nlc3MuICBJbmNyZWFzaW5nIHRoaXMgY2FuDQoj IHN0b3AgcGFuaWNzIHJlbGF0ZWQgdG8gaGVhdnkgdXNlIG9mIHNoYXJlZCBt ZW1vcnkuIEhvd2V2ZXIsIHRoYXQgY2FuDQojIChjb21iaW5lZCB3aXRoIGxh cmdlIGFtb3VudHMgb2YgcGh5c2ljYWwgbWVtb3J5KSBjYXVzZSBwYW5pY3Mg YXQNCiMgYm9vdCB0aW1lIGR1ZSB0aGUga2VybmVsIHJ1bm5pbmcgb3V0IG9m IFZNIHNwYWNlLg0KIw0KIyBJZiB5b3UncmUgdHdlYWtpbmcgdGhpcywgeW91 IG1pZ2h0IGFsc28gd2FudCB0byBpbmNyZWFzZSB0aGUgc3lzY3Rscw0KIyAi dm0udl9mcmVlX21pbiIsICJ2bS52X2ZyZWVfcmVzZXJ2ZWQiLCBhbmQgInZt LnZfZnJlZV90YXJnZXQiLg0KIw0KIyBUaGUgdmFsdWUgYmVsb3cgaXMgdGhl IG9uZSBtb3JlIHRoYW4gdGhlIGRlZmF1bHQuDQojDQojb3B0aW9ucyAJUE1B UF9TSFBHUEVSUFJPQz0yMDENCg0KIw0KIyBDaGFuZ2UgdGhlIHNpemUgb2Yg dGhlIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UuICBEdWUgdG8NCiMg Y29uc3RyYWludHMgaW4gbG9hZGVyKDgpIG9uIGkzODYsIHRoaXMgbXVzdCBi ZSBhIG11bHRpcGxlIG9mIDQuDQojIDI1NiA9IDEgR0Igb2Yga2VybmVsIGFk ZHJlc3Mgc3BhY2UuICBJbmNyZWFzaW5nIHRoaXMgYWxzbyBjYXVzZXMNCiMg YSByZWR1Y3Rpb24gb2YgdGhlIGFkZHJlc3Mgc3BhY2UgaW4gdXNlciBwcm9j ZXNzZXMuICA1MTIgc3BsaXRzDQojIHRoZSA0R0IgY3B1IGFkZHJlc3Mgc3Bh Y2UgaW4gaGFsZiAoMkdCIHVzZXIsIDJHQiBrZXJuZWwpLg0KIw0KI29wdGlv bnMgCUtWQV9QQUdFUz0yNjANCg0KIw0KIyBEaXNhYmxlIHN3YXBwaW5nLiBU aGlzIG9wdGlvbiByZW1vdmVzIGFsbCBjb2RlIHdoaWNoIGFjdHVhbGx5IHBl cmZvcm1zDQojIHN3YXBwaW5nLCBzbyBpdCdzIG5vdCBwb3NzaWJsZSB0byB0 dXJuIGl0IGJhY2sgb24gYXQgcnVuLXRpbWUuDQojDQojIFRoaXMgaXMgc29t ZXRpbWVzIHVzYWJsZSBmb3Igc3lzdGVtcyB3aGljaCBkb24ndCBoYXZlIGFu eSBzd2FwIHNwYWNlDQojIChzZWUgYWxzbyBzeXNjdGxzICJ2bS5kZWZlcl9z d2Fwc3BhY2VfcGFnZW91dHMiIGFuZA0KIyAidm0uZGlzYWJsZV9zd2Fwc3Bh Y2VfcGFnZW91dHMiKQ0KIw0KI29wdGlvbnMgCU5PX1NXQVBQSU5HDQoNCiMg U2V0IHRoZSBudW1iZXIgb2Ygc2ZfYnVmcyB0byBhbGxvY2F0ZS4gc2ZfYnVm cyBhcmUgdmlydHVhbCBidWZmZXJzDQojIGZvciBzZW5kZmlsZSgyKSB0aGF0 IGFyZSB1c2VkIHRvIG1hcCBmaWxlIFZNIHBhZ2VzLCBhbmQgbm9ybWFsbHkN CiMgZGVmYXVsdCB0byBhIHF1YW50aXR5IHRoYXQgaXMgcm91Z2hseSAxNipN QVhVU0VSUys1MTIuIFlvdSB3b3VsZA0KIyB0eXBpY2FsbHkgd2FudCBhYm91 dCA0IG9mIHRoZXNlIGZvciBlYWNoIHNpbXVsdGFuZW91cyBmaWxlIHNlbmQu DQojDQojb3B0aW9ucyAJTlNGQlVGUz0xMDI0DQoNCiMgU2V0IHRoZSBzaXpl IG9mIHRoZSBidWZmZXIgY2FjaGUgS1ZNIHJlc2VydmF0aW9uLCBpbiBidWZm ZXJzLiAgVGhpcyBpcw0KIyBzY2FsZWQgYnkgYXBwcm94aW1hdGVseSAxNjM4 NCBieXRlcy4gIFRoZSBzeXN0ZW0gd2lsbCBhdXRvLXNpemUgdGhlIGJ1ZmZl cg0KIyBjYWNoZSBpZiB0aGlzIG9wdGlvbiBpcyBub3Qgc3BlY2lmaWVkLg0K Iw0KI29wdGlvbnMgCU5CVUY9NTEyDQoNCiMgU2V0IHRoZSBzaXplIG9mIHRo ZSBtYnVmIEtWTSByZXNlcnZhdGlvbiwgaW4gY2x1c3RlcnMuICBUaGlzIGlz IHNjYWxlZA0KIyBieSBhcHByb3hpbWF0ZWx5IDIwNDggYnl0ZXMuICBUaGUg c3lzdGVtIHdpbGwgYXV0by1zaXplIHRoZSBtYnVmIGFyZWENCiMgdG8gKDUx MiArIG1heHVzZXJzKjE2KSBpZiB0aGlzIG9wdGlvbiBpcyBub3Qgc3BlY2lm aWVkLg0KIyBtYXh1c2VycyBpcyBpbiB0dXJuIGNvbXB1dGVkIGF0IGJvb3Qg dGltZSBkZXBlbmRpbmcgb24gYXZhaWxhYmxlIG1lbW9yeQ0KIyBvciBzZXQg dG8gdGhlIHZhbHVlIHNwZWNpZmllZCBieSAib3B0aW9ucyBNQVhVU0VSUz14 IiAoeD0wIG1lYW5zDQojIGF1dG9zY2FsaW5nKS4NCiMgU28sIHRvIHRha2Ug YWR2YW50YWdlIG9mIGF1dG9zY2FsaW5nLCB5b3UgaGF2ZSB0byByZW1vdmUg Ym90aA0KIyBOTUJDTFVTVEVSUyBhbmQgTUFYVVNFUlMgKGFuZCBOTUJVRlMp IGZyb20geW91ciBrZXJuZWwgY29uZmlnLg0KIw0KI29wdGlvbnMgCU5NQkNM VVNURVJTPTEwMjQNCg0KIyBTZXQgdGhlIG51bWJlciBvZiBtYnVmcyBhdmFp bGFibGUgaW4gdGhlIHN5c3RlbS4gRWFjaCBtYnVmDQojIGNvbnN1bWVzIDI1 NiBieXRlcy4gVGhlIHN5c3RlbSB3aWxsIGF1dG9zaXplIHRoaXMgKHRvIDQg dGltZXMNCiMgdGhlIG51bWJlciBvZiBOTUJDTFVTVEVSUywgZGVwZW5kaW5n IG9uIG90aGVyIGNvbnN0cmFpbnRzKQ0KIyBpZiB0aGlzIG9wdGlvbiBpcyBu b3Qgc3BlY2lmaWVkLg0KIw0KI29wdGlvbnMJCU5NQlVGUz00MDk2DQoNCiMg VHVuZSB0aGUga2VybmVsIG1hbGxvYyBhcmVhIHBhcmFtZXRlcnMuICBWTV9L TUVNX1NJWkUgcmVwcmVzZW50cyB0aGUgDQojIG1pbmltdW0sIGluIGJ5dGVz LCBhbmQgaXMgdHlwaWNhbGx5ICgxMioxMDI0KjEwMjQpICgxMk1CKS4gDQoj IFZNX0tNRU1fU0laRV9NQVggcmVwcmVzZW50cyB0aGUgbWF4aW11bSwgdHlw aWNhbGx5IDIwMCBtZWdhYnl0ZXMuDQojIFZNX0tNRU1fU0laRV9TQ0FMRSBj YW4gYmUgc2V0IHRvIGFkanVzdCB0aGUgYXV0by10dW5pbmcgZmFjdG9yLCB3 aGljaA0KIyB0eXBpY2FsbHkgZGVmYXVsdHMgdG8gNCAoa2VybmVsIG1hbGxv YyBhcmVhIHNpemUgaXMgcGh5c2ljYWwgbWVtb3J5IA0KIyBkaXZpZGVkIGJ5 IHRoZSBzY2FsZSBmYWN0b3IpLg0KIw0KI29wdGlvbnMgCVZNX0tNRU1fU0la RT0iKDEwKjEwMjQqMTAyNCkiDQojb3B0aW9ucyAJVk1fS01FTV9TSVpFX01B WD0iKDEwMCoxMDI0KjEwMjQpIg0KI29wdGlvbnMgCVZNX0tNRU1fU0laRV9T Q0FMRT0iNCINCg0KIyBUdW5lIHRoZSBidWZmZXIgY2FjaGUgbWF4aW11bSBL VkEgcmVzZXJ2YXRpb24sIGluIGJ5dGVzLiAgVGhlIG1heGltdW0gaXMNCiMg dXN1YWxseSBjYXBwZWQgYXQgMjAwIE1CLCBlZmZlY3RpbmcgbWFjaGluZXMg d2l0aCA+IDFHQiBvZiByYW0uICBOb3RlDQojIHRoYXQgdGhlIGJ1ZmZlciBj YWNoZSBvbmx5IHJlYWxseSBnb3Zlcm5zIHdyaXRlIGJ1ZmZlcmluZyBhbmQg ZGlzayBibG9jaw0KIyB0cmFuc2xhdGlvbnMuICBUaGUgVk0gcGFnZSBjYWNo ZSBpcyBvdXIgcHJpbWFyeSBkaXNrIGNhY2hlIGFuZCBpcyBub3QNCiMgZWZm ZWN0ZWQgYnkgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBjYWNoZS4NCiMNCiNv cHRpb25zCQlWTV9CQ0FDSEVfU0laRV9NQVg9IigxMDAqMTAyNCoxMDI0KSIN Cg0KIyBUdW5lIHRoZSBzd2FwIHpvbmUgS1ZBIHJlc2VydmF0aW9uLCBpbiBi eXRlcy4gIFRoZSBkZWZhdWx0IGlzIHR5cGljYWxseQ0KIyA3MCBNQiwgZ2l2 aW5nIHRoZSBzeXN0ZW0gdGhlIGFiaWxpdHkgdG8gbWFuYWdlIGEgbWF4aW11 bSBvZiAyOEdCIHdvcnRoDQojIG9mIHN3YXBwZWQgb3V0IGRhdGEuICANCiMN CiNvcHRpb25zCQlWTV9TV1pPTkVfU0laRV9NQVg9Iig1MCoxMDI0KjEwMjQp Ig0KDQojDQojIEVuYWJsZSBleHRyYSBkZWJ1Z2dpbmcgY29kZSBmb3IgbG9j a3MuICBUaGlzIHN0b3JlcyB0aGUgZmlsZW5hbWUgYW5kDQojIGxpbmUgb2Yg d2hhdGV2ZXIgYWNxdWlyZWQgdGhlIGxvY2sgaW4gdGhlIGxvY2sgaXRzZWxm LCBhbmQgY2hhbmdlIGENCiMgbnVtYmVyIG9mIGZ1bmN0aW9uIGNhbGxzIHRv IHBhc3MgYXJvdW5kIHRoZSByZWxldmFudCBkYXRhLiAgVGhpcyBpcw0KIyBu b3QgYXQgYWxsIHVzZWZ1bCB1bmxlc3MgeW91IGFyZSBkZWJ1Z2dpbmcgbG9j ayBjb2RlLiAgQWxzbyBub3RlDQojIHRoYXQgaXQgaXMgbGlrZWx5IHRvIGJy ZWFrIGUuZy4gZnN0YXQoMSkgdW5sZXNzIHlvdSByZWNvbXBpbGUgeW91cg0K IyB1c2VybGFuZCB3aXRoIC1EREVCVUdfTE9DS1MgYXMgd2VsbC4NCiMNCiNv cHRpb25zIAlERUJVR19MT0NLUw0KDQojIFNldCB0aGUgYW1vdW50IG9mIHRp bWUgKGluIHNlY29uZHMpIHRoZSBzeXN0ZW0gd2lsbCB3YWl0IGJlZm9yZQ0K IyByZWJvb3RpbmcgYXV0b21hdGljYWxseSB3aGVuIGEga2VybmVsIHBhbmlj IG9jY3Vycy4gIElmIHNldCB0byAoLTEpLA0KIyB0aGUgc3lzdGVtIHdpbGwg d2FpdCBpbmRlZmluaXRlbHkgdW50aWwgYSBrZXkgaXMgcHJlc3NlZCBvbiB0 aGUNCiMgY29uc29sZS4NCiNvcHRpb25zIAlQQU5JQ19SRUJPT1RfV0FJVF9U SU1FPTE2DQoNCiMNCiMgU3lzVlI0IEFCSSBlbXVsYXRpb24NCiMNCiMgVGhl IHN2cjQgQUJJIGVtdWxhdG9yIGNhbiBiZSBzdGF0aWNhbGx5IGNvbXBpbGVk IGludG8gdGhlIGtlcm5lbCBvciBsb2FkZWQgYXMNCiMgYSBLTEQgbW9kdWxl LiAgDQojIFRoZSBTVFJFQU1TIG5ldHdvcmsgZW11bGF0aW9uIGNvZGUgY2Fu IGFsc28gYmUgY29tcGlsZWQgc3RhdGljYWxseSBvciBhcyBhIA0KIyBtb2R1 bGUuICBJZiBsb2FkZWQgYXMgYSBtb2R1bGUsIGl0IG11c3QgYmUgbG9hZGVk IGJlZm9yZSB0aGUgc3ZyNCBtb2R1bGUNCiMgKHRoZSAvdXNyL3NiaW4vc3Zy NCBzY3JpcHQgZG9lcyB0aGlzIGZvciB5b3UpLiAgSWYgY29tcGlsaW5nIHN0 YXRpY2FsbHksDQojIHRoZSBgc3RyZWFtcycgcHNldWRvLWRldmljZSBtdXN0 IGJlIGNvbmZpZ3VyZWQgaW50byBhbnkga2VybmVsIHdoaWNoIGFsc28NCiMg c3BlY2lmaWVzIENPTVBBVF9TVlI0LiAgSXQgaXMgcG9zc2libGUgdG8gaGF2 ZSBhIHN0YXRpY2FsbHktY29uZmlndXJlZCANCiMgU1RSRUFNUyBkZXZpY2Ug YW5kIGEgZHluYW1pY2FsbHkgbG9hZGFibGUgc3ZyNCBlbXVsYXRvcjsgIHRo ZSAvdXNyL3NiaW4vc3ZyNA0KIyBzY3JpcHQgdW5kZXJzdGFuZHMgdGhhdCBp dCBkb2Vzbid0IG5lZWQgdG8gbG9hZCB0aGUgYHN0cmVhbXMnIG1vZHVsZSB1 bmRlcg0KIyB0aG9zZSBjaXJjdW1zdGFuY2VzLg0KIyBDYXZlYXQ6ICBBdCB0 aGlzIHRpbWUsIGBvcHRpb25zIEtUUkFDRScgaXMgcmVxdWlyZWQgZm9yIHRo ZSBzdnI0IGVtdWxhdG9yDQojICh3aGV0aGVyIHN0YXRpYyBvciBkeW5hbWlj KS4gIA0KIyANCiNvcHRpb25zCQlDT01QQVRfU1ZSNAkjIGJ1aWxkIGVtdWxh dG9yIHN0YXRpY2FsbHkNCiNvcHRpb25zCQlERUJVR19TVlI0CSMgZW5hYmxl IHZlcmJvc2UgZGVidWdnaW5nDQojcHNldWRvLWRldmljZQlzdHJlYW1zCQkj IFNUUkVBTVMgbmV0d29yayBkcml2ZXIgKHJlcXVpcmVkIGZvciBzdnI0KS4N Cg0KIyBUaGUgJ2FzcicgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIGN1 cnJlbnQgRFBUL0FkYXB0ZWMgU0NTSSBSQUlEDQojIGNvbnRyb2xsZXJzIChT bWFydFJBSUQgViBhbmQgVkkgYW5kIGxhdGVyKS4NCiMgVGhlc2UgY29udHJv bGxlcnMgcmVxdWlyZSB0aGUgQ0FNIGluZnJhc3RydWN0dXJlLg0KIw0KI2Rl dmljZQkJYXNyDQoNCiMgVGhlICdkcHQnIGRyaXZlciBwcm92aWRlcyBzdXBw b3J0IGZvciBEUFQgY29udHJvbGxlcnMgKGh0dHA6Ly93d3cuZHB0LmNvbS8p Lg0KIyBUaGVzZSBoYXZlIGhhcmR3YXJlIFJBSUQtezAsMSw1fSBzdXBwb3J0 LCBhbmQgZG8gbXVsdGktaW5pdGlhdG9yIEkvTy4NCiMgVGhlIERQVCBjb250 cm9sbGVycyBhcmUgY29tbW9ubHkgcmUtbGljZW5zZWQgdW5kZXIgb3RoZXIg YnJhbmQtbmFtZXMgLQ0KIyBzb21lIGNvbnRyb2xsZXJzIGJ5IE9saXZldHRp LCBEZWMsIEhQLCBBVCZULCBTTkksIEFTVCwgQWxwaGF0cm9uaWMsIE5FQyBh bmQNCiMgQ29tcGFxIGFyZSBhY3R1YWxseSBEUFQgY29udHJvbGxlcnMuDQoj DQojIFNlZSBzcmMvc3lzL2Rldi9kcHQgZm9yIGRlYnVnZ2luZyBhbmQgb3Ro ZXIgc3VidGxlIG9wdGlvbnMuDQojICAgRFBUX01FQVNVUkVfUEVSRk9STUFO Q0UgRW5hYmxlcyBhIHNldCBvZiAoc2VtaSlpbnZhc2l2ZSBtZXRyaWNzLiBW YXJpb3VzDQojICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdHJ1bWVu dHMgYXJlIGVuYWJsZWQuICBUaGUgdG9vbHMgaW4NCiMgICAgICAgICAgICAg ICAgICAgICAgICAgICAvdXNyL3NiaW4vZHB0XyogYXNzdW1lIHRoZXNlIHRv IGJlIGVuYWJsZWQuDQojICAgRFBUX0hBTkRMRV9USU1FT1VUUyAgICAgTm9y bWFsbHkgZGV2aWNlIHRpbWVvdXRzIGFyZSBoYW5kbGVkIGJ5IHRoZSBEUFQu DQojICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgeW91IGFudCB0aGUg ZHJpdmVyIHRvIGhhbmRsZSB0aW1lb3V0cywgZW5hYmxlDQojICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGhpcyBvcHRpb24uICBJZiB5b3VyIHN5c3Rl bSBpcyB2ZXJ5IGJ1c3ksIHRoaXMNCiMgICAgICAgICAgICAgICAgICAgICAg ICAgICBvcHRpb24gd2lsbCBjcmVhdGUgbW9yZSB0cm91YmxlIHRoYW4gc29s dmUuDQojICAgRFBUX1RJTUVPVVRfRkFDVE9SICAgICAgVXNlZCB0byBjb21w dXRlIHRoZSBleGNlc3NpdmUgYW1vdW50IG9mIHRpbWUgdG8NCiMgICAgICAg ICAgICAgICAgICAgICAgICAgICB3YWl0IHdoZW4gdGltaW5nIG91dCB3aXRo IHRoZSBhYm92ZSBvcHRpb24uDQojICBEUFRfREVCVUdfeHh4eCAgICAgICAg ICAgVGhlc2UgYXJlIGNvbnRyb2xsYWJsZSBmcm9tIHN5cy9kZXYvZHB0L2Rw dC5oDQojICBEUFRfTE9TVF9JUlEgICAgICAgICAgICAgV2hlbiBlbmFibGVk LCB3aWxsIHRyeSwgb25jZSBwZXIgc2Vjb25kLCB0byBjYXRjaA0KIyAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFueSBpbnRlcnJ1cHQgdGhhdCBnb3Qg bG9zdC4gIFNlZW1zIHRvIGhlbHAgaW4gc29tZQ0KIyAgICAgICAgICAgICAg ICAgICAgICAgICAgIERQVC1maXJtd2FyZS9Nb3RoZXJib2FyZCBjb21iaW5h dGlvbnMuICBNaW5pbWFsDQojICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29zdCwgZ3JlYXQgYmVuZWZpdC4NCiMgIERQVF9SRVNFVF9IQkEgICAgICAg ICAgICBNYWtlICJyZXNldCIgYWN0dWFsbHkgcmVzZXQgdGhlIGNvbnRyb2xs ZXINCiMgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0ZWFkIG9mIGZ1 ZGdpbmcgaXQuICBPbmx5IGVuYWJsZSB0aGlzIGlmIHlvdQ0KIwkJCSAgICBh cmUgMTAwJSBjZXJ0YWluIHlvdSBuZWVkIGl0Lg0KDQojZGV2aWNlCQlkcHQN Cg0KIyBEUFQgb3B0aW9ucw0KIyFDQU0jIG9wdGlvbnMgCURQVF9NRUFTVVJF X1BFUkZPUk1BTkNFDQojIUNBTSMgb3B0aW9ucyAJRFBUX0hBTkRMRV9USU1F T1VUUw0KI29wdGlvbnMgCURQVF9USU1FT1VUX0ZBQ1RPUj00DQojb3B0aW9u cyAJRFBUX0xPU1RfSVJRDQojb3B0aW9ucyAJRFBUX1JFU0VUX0hCQQ0KI29w dGlvbnMgCURQVF9BTExPV19NRU1JTw0KDQojDQojIENvbXBhcSAiQ0lTUyIg UkFJRCBjb250cm9sbGVycyAoU21hcnRSQUlEIDUqIHNlcmllcykNCiMgVGhl c2UgY29udHJvbGxlcnMgaGF2ZSBhIFNDU0ktbGlrZSBpbnRlcmZhY2UsIGFu ZCByZXF1aXJlIHRoZQ0KIyBDQU0gaW5mcmFzdHJ1Y3R1cmUuDQojDQojZGV2 aWNlCQljaXNzDQoNCiMNCiMgTXlsZXggQWNjZWxlUkFJRCBhbmQgZVh0cmVt ZVJBSUQgY29udHJvbGxlcnMgd2l0aCB2NiBhbmQgbGF0ZXINCiMgZmlybXdh cmUuICBUaGVzZSBjb250cm9sbGVycyBoYXZlIGEgU0NTSS1saWtlIGludGVy ZmFjZSwgYW5kIHJlcXVpcmUNCiMgdGhlIENBTSBpbmZyYXN0cnVjdHVyZS4N CiMNCiNkZXZpY2UgICAgICAgICAgbWx5DQoNCiMgVVNCIHN1cHBvcnQNCiMg VUhDSSBjb250cm9sbGVyDQojZGV2aWNlCQl1aGNpDQojIE9IQ0kgY29udHJv bGxlcg0KI2RldmljZQkJb2hjaQ0KIyBHZW5lcmFsIFVTQiBjb2RlIChtYW5k YXRvcnkgZm9yIFVTQikNCiNkZXZpY2UJCXVzYg0KIw0KIyBGbSBSYWRpbw0K I2RldmljZQkJdWZtDQojIEdlbmVyaWMgVVNCIGRldmljZSBkcml2ZXINCiNk ZXZpY2UJCXVnZW4NCiMgSHVtYW4gSW50ZXJmYWNlIERldmljZSAoYW55dGhp bmcgd2l0aCBidXR0b25zIGFuZCBkaWFscykNCiNkZXZpY2UJCXVoaWQNCiMg VVNCIGtleWJvYXJkDQojZGV2aWNlCQl1a2JkDQojIFVTQiBwcmludGVyDQoj ZGV2aWNlCQl1bHB0DQojIFVTQiBJb21lZ2EgWmlwIDEwMCBEcml2ZSAoUmVx dWlyZXMgc2NidXMgYW5kIGRhKQ0KI2RldmljZQkJdW1hc3MNCiMgVVNCIG1v ZGVtIHN1cHBvcnQNCiNkZXZpY2UJCXVtb2RlbQ0KIyBVU0IgbW91c2UNCiNk ZXZpY2UJCXVtcw0KIyBVU0IgUmlvIChNUDMgUGxheWVyKQ0KI2RldmljZQkJ dXJpbw0KIyBVU0Igc2Nhbm5lcnMNCiNkZXZpY2UJCXVzY2FubmVyDQojDQoj IEFETXRlayBVU0IgZXRoZXJuZXQuIFN1cHBvcnRzIHRoZSBMaW5rU3lzIFVT QjEwMFRYLA0KIyB0aGUgQmlsbGlvbnRvbiBVU0IxMDAsIHRoZSBNZWxjbyBM VS1BVFgsIHRoZSBELUxpbmsgRFNCLTY1MFRYDQojIGFuZCB0aGUgU01DIDIy MDJVU0IuIEFsc28gd29ya3Mgd2l0aCB0aGUgQURNdGVrIEFOOTg2IFBlZ2Fz dXMNCiMgZXZhbCBib2FyZC4NCiNkZXZpY2UJCWF1ZQ0KIw0KIyBDQVRDIFVT Qi1FTDEyMDFBIFVTQiBldGhlcm5ldC4gU3VwcG9ydHMgdGhlIENBVEMgTmV0 bWF0ZQ0KIyBhbmQgTmV0bWF0ZSBJSSwgYW5kIHRoZSBCZWxraW4gRjVVMTEx Lg0KI2RldmljZQkJY3VlDQojDQojIEthd2FzYWtpIExTSSBldGhlcm5ldC4g U3VwcG9ydHMgdGhlIExpbmtTeXMgVVNCMTBULA0KIyBFbnRyZWdhIFVTQi1O RVQtRTQ1LCBQZXJhY29tIEV0aGVybmV0IEFkYXB0ZXIsIHRoZQ0KIyAzQ29t IDNjMTkyNTAsIHRoZSBBRFMgVGVjaG5vbG9naWVzIFVTQi0xMEJULCB0aGUg QVRlbiBVQzEwVCwNCiMgdGhlIE5ldGdlYXIgRUExMDEsIHRoZSBELUxpbmsg RFNCLTY1MCwgdGhlIFNNQyAyMTAyVVNCDQojIGFuZCAyMTA0VVNCLCBhbmQg dGhlIENvcmVnYSBVU0ItVC4NCiNkZXZpY2UJCWt1ZQ0KDQojIGRlYnVnZ2lu ZyBvcHRpb25zIGZvciB0aGUgVVNCIHN1YnN5c3RlbQ0KIw0KI29wdGlvbnMg CVVIQ0lfREVCVUcNCiNvcHRpb25zIAlPSENJX0RFQlVHDQojb3B0aW9ucyAJ VVNCX0RFQlVHDQoNCiNvcHRpb25zIAlVR0VOX0RFQlVHDQojb3B0aW9ucyAJ VUhJRF9ERUJVRw0KI29wdGlvbnMgCVVIVUJfREVCVUcNCiNvcHRpb25zIAlV S0JEX0RFQlVHDQojb3B0aW9ucyAJVUxQVF9ERUJVRw0KI29wdGlvbnMgCVVN QVNTX0RFQlVHDQojb3B0aW9ucyAJVU1TX0RFQlVHDQoNCiMgb3B0aW9ucyBm b3IgdWtiZDoNCiNvcHRpb25zIAlVS0JEX0RGTFRfS0VZTUFQCSMgc3BlY2lm eSB0aGUgYnVpbHQtaW4ga2V5bWFwDQojbWFrZW9wdGlvbnMJVUtCRF9ERkxU X0tFWU1BUD1pdC5pc28NCg0KIw0KIyBFbWJlZGRlZCBzeXN0ZW0gb3B0aW9u czoNCiMNCiMgQW4gZW1iZWRkZWQgc3lzdGVtIG1pZ2h0IHdhbnQgdG8gcnVu IHNvbWV0aGluZyBvdGhlciB0aGFuIGluaXQuDQojb3B0aW9ucyAJSU5JVF9Q QVRIPSIvc2Jpbi9pbml0Oi9zdGFuZC9zeXNpbnN0YWxsIg0KDQojIERlYnVn IG9wdGlvbnMNCiNvcHRpb25zIAlCVVNfREVCVUcgICAgICAgIyBlbmFibGUg bmV3YnVzIGRlYnVnZ2luZw0KI29wdGlvbnMgCURFQlVHX1ZGU19MT0NLUyAj IGVuYWJsZSB2ZnMgbG9jayBkZWJ1Z2dpbmcNCiNvcHRpb25zIAlOUFhfREVC VUcgICAgICAgIyBlbmFibGUgbnB4IGRlYnVnZ2luZyAoRlBVL21hdGggZW11 KQ0KDQojIE1vcmUgdW5kb2N1bWVudGVkIG9wdGlvbnMgZm9yIGxpbnRpbmcu DQojIE5vdGUgdGhhdCBkb2N1bWVudGluZyB0aGVzZSBhcmUgbm90IGNvbnNp ZGVyZWQgYW4gYWZmcm9udC4NCg0Kb3B0aW9ucyAJQUhDX0RVTVBfRUVQUk9N DQpvcHRpb25zIAlBSENfVE1PREVfRU5BQkxFDQojb3B0aW9ucyAJQ0FNX0RF QlVHX0RFTEFZDQojb3B0aW9ucyAJQ0xVU1RFUkRFQlVHDQojb3B0aW9ucyAJ Q09NUEFUX0xJTlVYDQpvcHRpb25zIAlDUFVfVVBHUkFERV9IV19DQUNIRQ0K I29wdGlvbnMgCURFQlVHDQojb3B0aW9ucyAJREVCVUdfTElOVVgNCiNvcHRp b25zIAlESVNBQkxFX1BTRQ0KI29wdGlvbnMgCUVOQUJMRV9BTEFSVA0KI29w dGlvbnMgCUVOQUJMRV9WRlNfSU9PUFQNCiNvcHRpb25zIAlGQl9ERUJVRw0K I29wdGlvbnMgCUZCX0lOU1RBTExfQ0RFVg0KI29wdGlvbnMgCUZFXzhCSVRf U1VQUE9SVA0KI29wdGlvbnMgCUk0Ql9TTVBfV09SS0FST1VORA0KI29wdGlv bnMgCUk1ODZfUE1DX0dVUFJPRj0weDcwMDAwDQojb3B0aW9ucyAJSUJDUzIN CiNvcHRpb25zIAlLQkRJT19ERUJVRz0yDQojb3B0aW9ucyAJS0JEX01BWFJF VFJZPTQNCiNvcHRpb25zIAlLQkRfTUFYV0FJVD02DQojb3B0aW9ucyAJS0JE X1JFU0VUREVMQVk9MjAxDQojb3B0aW9ucyAJS0VZDQojb3B0aW9ucyAJTE9D S0ZfREVCVUcNCiNvcHRpb25zIAlMT1VUQg0KI29wdGlvbnMgCU5FVEFUQUxL REVCVUcNCiNvcHRpb25zIAlPTFRSX05PX0JVTExTRVlFX01BQw0KI29wdGlv bnMgCU9MVFJfTk9fSEFXS0VZRV9NQUMNCiNvcHRpb25zIAlPTFRSX05PX1RN U19NQUMNCiNvcHRpb25zIAlQTlBCSU9TDQojb3B0aW9ucyAJUFNNX0RFQlVH PTENCiNvcHRpb25zIAlTQ1NJX05DUl9ERUJVRw0KI29wdGlvbnMgCVNDU0lf TkNSX01BWF9TWU5DPTEwMDAwDQojb3B0aW9ucyAJU0NTSV9OQ1JfTUFYX1dJ REU9MQ0KI29wdGlvbnMgCVNDU0lfTkNSX01ZQUREUj03DQojb3B0aW9ucyAJ U0NfREVCVUdfTEVWRUwNCiNvcHRpb25zIAlTQ19SRU5ERVJfREVCVUcNCiNv cHRpb25zIAlTSE9XX0JVU1lCVUZTCSMgTGlzdCBidWZmZXJzIHRoYXQgcHJl dmVudCByb290IHVubW91bnQNCiNvcHRpb25zIAlTSU1QTEVMT0NLX0RFQlVH DQojb3B0aW9ucyAJU0lfREVCVUcNCiNvcHRpb25zIAlTTElQX0lGRl9PUFRT DQojb3B0aW9ucyAJU1BYX0hBQ0sNCiNvcHRpb25zIAlUSU1FUl9GUkVRPSIo KDE0MzE4MTgyKzYpLzEyKSINCiNvcHRpb25zIAlWRlNfQklPX0RFQlVHDQoj b3B0aW9ucwkJWEJPTkVIQUNLDQoNCg== --0-891055018-1023483568=:37924-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message