From owner-freebsd-ports@FreeBSD.ORG Mon May 31 17:06:33 2010 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6D6C1065673; Mon, 31 May 2010 17:06:33 +0000 (UTC) (envelope-from bernardo.maciel@gmail.com) Received: from mail-yw0-f176.google.com (mail-yw0-f176.google.com [209.85.211.176]) by mx1.freebsd.org (Postfix) with ESMTP id 4E36D8FC12; Mon, 31 May 2010 17:06:33 +0000 (UTC) Received: by ywh6 with SMTP id 6so2919713ywh.16 for ; Mon, 31 May 2010 10:06:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:from:date :message-id:subject:to:cc:content-type; bh=qJuzljFungNcEl7SO2h/4FjYzXm0vTsYltUnrDlg/gw=; b=T3gFTuB46ZJPyBFEIpj5uquDocO5Bsyh/1pajoA35o76MUslnYvMmrnPyrmzq+xP3j LdP4ViVZ4Ktp0HEiQESfPV3vVQjdYjtvIVcR+UrfUnGVcqhMLefQChhLCc0qNPDGDLR8 F1pk++cHpC/mEK8OOnoqEewINvMvKZjPxauA0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:cc:content-type; b=azgnVuXX4dxHAQqjEmWgQdNfFI0B7zSemKgcVqGRi8L9Qo0ymrRKP7wX0CTPhw3XjQ n1cO8YEulIU4UAADw69vjOM9wtCq/xv+tzzBNeeqJvAwCKbWsTYvoDvHsIMohWldjgW0 KQit4Y1wjewM+em3H7QOcOtk9hvU2FDEzbPFg= Received: by 10.101.11.23 with SMTP id o23mr5162950ani.32.1275324611286; Mon, 31 May 2010 09:50:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.121.13 with HTTP; Mon, 31 May 2010 09:49:50 -0700 (PDT) From: Bernardo Maciel Date: Mon, 31 May 2010 17:49:50 +0100 Message-ID: To: python@freebsd.org Content-Type: multipart/mixed; boundary=0016e68fcd6c6dd7160487e6a6d2 Cc: ports@freebsd.org Subject: FreeBSD Port: python26-2.6.5 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2010 17:06:34 -0000 --0016e68fcd6c6dd7160487e6a6d2 Content-Type: text/plain; charset=ISO-8859-1 Hello, I recently ran into a problem when compiling python 2.6.5 under FreeBSD 8.0-p2 . I searched around, asked in FreeBSD forums ( http://forums.freebsd.org/showthread.php?t=14268 ) and then e-mailed the python-help mailing list. The problem isn't yet solved. My problem is that when I compile python 2.6.5, I get a "sem_init: No space left on device" message when the script is building the _ssl extension: ------------------------------ (...) ===> Building for python26-2.6.5 (...) ranlib libpython2.6.a cc -pthread -Wl,--export-dynamic -o python Modules/python.o libpython2.6.a -ldl -lutil -lm libpython2.6.a(posixmodule.o)(.text+0x765): In function `posix_tmpnam': : warning: warning: tmpnam() possibly used unsafely; consider using mkstemp() libpython2.6.a(posixmodule.o)(.text+0x85c): In function `posix_tempnam': : warning: warning: tempnam() possibly used unsafely; consider using mkstemp() running build running build_ext building '_struct' extension creating build creating build/temp.freebsd-8.0-RELEASE-p2-i386-2.6 creating build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr creating build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports creating build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports/lang creating build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports/lang/python26 creating build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports/lang/python26/work creating build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports/lang/python26/work/Python-2.6.5 creating build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports/lang/python26/work/Python-2.6.5/Modules cc -fPIC -fno-strict-aliasing -DNDEBUG -O2 -pipe -D__wchar_t=wchar_t -DTHREAD_STACK_SIZE=0x100000 -fno-strict-aliasing -I. -I/usr/ports /lang/python26/work/Python-2.6.5/./Include -I. -IInclude -I./../Include -I/usr/local/include -I/usr/ports/lang/python26/work/Python- 2.6.5/portbld.static/Include -I/usr/ports/lang/python26/work/Python-2.6.5/portbld.static -c /usr/ports/lang/python26/work/Python-2.6.5/Modules /_struct.c -o build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports/lang/python26/work/Python-2.6.5/Modules/_struct.o creating build/lib.freebsd-8.0-RELEASE-p2-i386-2.6 cc -shared -pthread -O2 -pipe -D__wchar_t=wchar_t -DTHREAD_STACK_SIZE=0x100000 -fno-strict-aliasing build/temp.freebsd-8.0-RELEASE-p2-i386-2.6 /usr/ports/lang/python26/work/Python-2.6.5/Modules/_struct.o -L/usr/local/lib -o build/lib.freebsd-8.0-RELEASE-p2-i386-2.6/_struct.so building '_ctypes_test' extension creating build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports/lang/python26/work/Python-2.6.5/Modules/_ctypes cc -fPIC -fno-strict-aliasing -DNDEBUG -O2 -pipe -D__wchar_t=wchar_t -DTHREAD_STACK_SIZE=0x100000 -fno-strict-aliasing -I. -I/usr/ports /lang/python26/work/Python-2.6.5/./Include -I. -IInclude -I./../Include -I/usr/local/include -I/usr/ports/lang/python26/work/Python- 2.6.5/portbld.static/Include -I/usr/ports/lang/python26/work/Python-2.6.5/portbld.static -c /usr/ports/lang/python26/work/Python-2.6.5/Modules /_ctypes/_ctypes_test.c -o build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports/lang/python26/work/Python-2.6.5/Modules/_ctypes/_ctypes_test.o cc -shared -pthread -O2 -pipe -D__wchar_t=wchar_t -DTHREAD_STACK_SIZE=0x100000 -fno-strict-aliasing build/temp.freebsd-8.0-RELEASE-p2-i386-2.6 /usr/ports/lang/python26/work/Python-2.6.5/Modules/_ctypes/_ctypes_test.o -L/usr/local/lib -o build/lib.freebsd-8.0-RELEASE-p2-i386-2.6 /_ctypes_test.so (...) building '_ssl' extension cc -fPIC -fno-strict-aliasing -DNDEBUG -O2 -pipe -D__wchar_t=wchar_t -DTHREAD_STACK_SIZE=0x100000 -fno-strict-aliasing -I. -I/usr/ports /lang/python26/work/Python-2.6.5/./Include -I. -IInclude -I./../Include -I/usr/local/include -I/usr/ports/lang/python26/work/Python- 2.6.5/portbld.static/Include -I/usr/ports/lang/python26/work/Python-2.6.5/portbld.static -c /usr/ports/lang/python26/work/Python-2.6.5/Modules /_ssl.c -o build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/usr/ports/lang/python26/work/Python-2.6.5/Modules/_ssl.o cc -shared -pthread -O2 -pipe -D__wchar_t=wchar_t -DTHREAD_STACK_SIZE=0x100000 -fno-strict-aliasing build/temp.freebsd-8.0-RELEASE-p2-i386-2.6 /usr/ports/lang/python26/work/Python-2.6.5/Modules/_ssl.o -L/usr/local/lib -lssl -lcrypto -o build/lib.freebsd-8.0-RELEASE-p2-i386-2.6/_ssl.so sem_init: No space left on device ------------------------------ This then transforms into the following problem when importing SSLError, which is used by other apps: ------------------------------ Python 2.6.5 (r265:79063, May 15 2010, 19:22:30) [GCC 4.2.1 20070719 [FreeBSD]] on freebsd8 Type "help", "copyright", "credits" or "license" for more information. >>> from _ssl import SSLError as sslerror sem_init: No space left on device Traceback (most recent call last): File "", line 1, in ImportError: cannot import name SSLError ------------------------------ At the python-help mailing list, it was suggested that I compiled the port manually. I compiled python-2.6.5 manually ( "./configure; make" ) and I no longer got the "sem_init: no space left on device" error. When building the _ssl extension, it goes ok: ------------------------------ (...) building '_ssl' extension gcc -pthread -fPIC -fno-strict-aliasing -DNDEBUG -I. -I/tmp/python/Python-2.6.5/./Include -I. -IInclude -I./Include -I/usr/local/include -I/tmp/python/Python-2.6.5/Include -I/tmp/python/Python-2.6.5 -c /tmp/python/Python-2.6.5/Modules/_ssl.c -o build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/tmp/python/Python-2.6.5/Modules/_ssl.o gcc -shared build/temp.freebsd-8.0-RELEASE-p2-i386-2.6/tmp/python/Python-2.6.5/Modules/_ssl.o -L/usr/local/lib -lssl -lcrypto -o build/lib.freebsd-8.0-RELEASE-p2-i386-2.6/_ssl.so building '_hashlib' extension (...) ------------------------------ So it narrows down the problem to some patch file that is applied, they suggested. I tried to look at the files, but I couldn't identify anything as the source of the problem. It was also suggested that I contacted the port maintainer to see if something could come up, and thus this e-mail. I am using a custom kernel because of the hplip port, but I only removed the ulpt module and added the snp module. I attach the GENERIC and the custom kernels as well as a diff for those two. Also, here is my system info. ------------------------------ %uname -a FreeBSD FPserver.WORKGROUP 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #2: Tue Jan 26 06:10:27 WET 2010 root@FPserver.WORKGROUP:/usr/obj/usr/src/sys/NOULPTKERNEL i386 ------------------------------ If you need further info (build logs, etc), please let me know and I'll send you. Can you help me? Best regards, -- Bernardo Maciel --0016e68fcd6c6dd7160487e6a6d2 Content-Type: application/octet-stream; name="diffCustomKernelGeneric.diff" Content-Disposition: attachment; filename="diffCustomKernelGeneric.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9vjba1s0 MGExLDIxCj4gIwo+ICMgR0VORVJJQyAtLSBHZW5lcmljIGtlcm5lbCBjb25maWd1cmF0aW9uIGZp bGUgZm9yIEZyZWVCU0QvaTM4Ngo+ICMKPiAjIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMg ZmlsZSwgcGxlYXNlIHJlYWQgdGhlIGNvbmZpZyg1KSBtYW51YWwgcGFnZSwKPiAjIGFuZC9vciB0 aGUgaGFuZGJvb2sgc2VjdGlvbiBvbiBLZXJuZWwgQ29uZmlndXJhdGlvbiBGaWxlczoKPiAjCj4g IyAgICBodHRwOi8vd3d3LkZyZWVCU0Qub3JnL2RvYy9lbl9VUy5JU084ODU5LTEvYm9va3MvaGFu ZGJvb2sva2VybmVsY29uZmlnLWNvbmZpZy5odG1sCj4gIwo+ICMgVGhlIGhhbmRib29rIGlzIGFs c28gYXZhaWxhYmxlIGxvY2FsbHkgaW4gL3Vzci9zaGFyZS9kb2MvaGFuZGJvb2sKPiAjIGlmIHlv dSd2ZSBpbnN0YWxsZWQgdGhlIGRvYyBkaXN0cmlidXRpb24sIG90aGVyd2lzZSBhbHdheXMgc2Vl IHRoZQo+ICMgRnJlZUJTRCBXb3JsZCBXaWRlIFdlYiBzZXJ2ZXIgKGh0dHA6Ly93d3cuRnJlZUJT RC5vcmcvKSBmb3IgdGhlCj4gIyBsYXRlc3QgaW5mb3JtYXRpb24uCj4gIwo+ICMgQW4gZXhoYXVz dGl2ZSBsaXN0IG9mIG9wdGlvbnMgYW5kIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb25zIG9mIHRo ZQo+ICMgZGV2aWNlIGxpbmVzIGlzIGFsc28gcHJlc2VudCBpbiB0aGUgLi4vLi4vY29uZi9OT1RF UyBhbmQgTk9URVMgZmlsZXMuCj4gIyBJZiB5b3UgYXJlIGluIGRvdWJ0IGFzIHRvIHRoZSBwdXJw b3NlIG9yIG5lY2Vzc2l0eSBvZiBhIGxpbmUsIGNoZWNrIGZpcnN0Cj4gIyBpbiBOT1RFUy4KPiAj Cj4gIyAkRnJlZUJTRDogc3JjL3N5cy9pMzg2L2NvbmYvR0VORVJJQyx2IDEuNTE5LjIuNC4yLjIg MjAwOS8xMS8wOSAyMzo0ODowMSBrZW5zbWl0aCBFeHAgJAo+IAo+IGNwdQkJSTQ4Nl9DUFUKMmMy MywyNAo8IGlkZW50CQlOT1VMUFRLRVJORUwKLS0tCj4gY3B1CQlJNjg2X0NQVQo+IGlkZW50CQlH RU5FUklDCjI2NWQyODYKPCBkZXZpY2UJCXNucAoyODBjMzAxCjwgI2RldmljZQkJdWxwdAkJIyBQ cmludGVyCi0tLQo+IGRldmljZQkJdWxwdAkJIyBQcmludGVyCg== --0016e68fcd6c6dd7160487e6a6d2 Content-Type: application/octet-stream; name=GENERIC Content-Disposition: attachment; filename=GENERIC Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9vjba1z1 IwojIEdFTkVSSUMgLS0gR2VuZXJpYyBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGZvciBGcmVl QlNEL2kzODYKIwojIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgZmlsZSwgcGxlYXNlIHJl YWQgdGhlIGNvbmZpZyg1KSBtYW51YWwgcGFnZSwKIyBhbmQvb3IgdGhlIGhhbmRib29rIHNlY3Rp b24gb24gS2VybmVsIENvbmZpZ3VyYXRpb24gRmlsZXM6CiMKIyAgICBodHRwOi8vd3d3LkZyZWVC U0Qub3JnL2RvYy9lbl9VUy5JU084ODU5LTEvYm9va3MvaGFuZGJvb2sva2VybmVsY29uZmlnLWNv bmZpZy5odG1sCiMKIyBUaGUgaGFuZGJvb2sgaXMgYWxzbyBhdmFpbGFibGUgbG9jYWxseSBpbiAv dXNyL3NoYXJlL2RvYy9oYW5kYm9vawojIGlmIHlvdSd2ZSBpbnN0YWxsZWQgdGhlIGRvYyBkaXN0 cmlidXRpb24sIG90aGVyd2lzZSBhbHdheXMgc2VlIHRoZQojIEZyZWVCU0QgV29ybGQgV2lkZSBX ZWIgc2VydmVyIChodHRwOi8vd3d3LkZyZWVCU0Qub3JnLykgZm9yIHRoZQojIGxhdGVzdCBpbmZv cm1hdGlvbi4KIwojIEFuIGV4aGF1c3RpdmUgbGlzdCBvZiBvcHRpb25zIGFuZCBtb3JlIGRldGFp bGVkIGV4cGxhbmF0aW9ucyBvZiB0aGUKIyBkZXZpY2UgbGluZXMgaXMgYWxzbyBwcmVzZW50IGlu IHRoZSAuLi8uLi9jb25mL05PVEVTIGFuZCBOT1RFUyBmaWxlcy4KIyBJZiB5b3UgYXJlIGluIGRv dWJ0IGFzIHRvIHRoZSBwdXJwb3NlIG9yIG5lY2Vzc2l0eSBvZiBhIGxpbmUsIGNoZWNrIGZpcnN0 CiMgaW4gTk9URVMuCiMKIyAkRnJlZUJTRDogc3JjL3N5cy9pMzg2L2NvbmYvR0VORVJJQyx2IDEu NTE5LjIuNC4yLjIgMjAwOS8xMS8wOSAyMzo0ODowMSBrZW5zbWl0aCBFeHAgJAoKY3B1CQlJNDg2 X0NQVQpjcHUJCUk1ODZfQ1BVCmNwdQkJSTY4Nl9DUFUKaWRlbnQJCUdFTkVSSUMKCiMgVG8gc3Rh dGljYWxseSBjb21waWxlIGluIGRldmljZSB3aXJpbmcgaW5zdGVhZCBvZiAvYm9vdC9kZXZpY2Uu aGludHMKI2hpbnRzCQkiR0VORVJJQy5oaW50cyIJCSMgRGVmYXVsdCBwbGFjZXMgdG8gbG9vayBm b3IgZGV2aWNlcy4KCiMgVXNlIHRoZSBmb2xsb3dpbmcgdG8gY29tcGlsZSBpbiB2YWx1ZXMgYWNj ZXNzaWJsZSB0byB0aGUga2VybmVsCiMgdGhyb3VnaCBnZXRlbnYoKSAob3Iga2VudigxKSBpbiB1 c2VybGFuZCkuIFRoZSBmb3JtYXQgb2YgdGhlIGZpbGUKIyBpcyAndmFyaWFibGU9dmFsdWUnLCBz ZWUga2VudigxKQojCiMgZW52CQkiR0VORVJJQy5lbnYiCgptYWtlb3B0aW9ucwlERUJVRz0tZwkJ IyBCdWlsZCBrZXJuZWwgd2l0aCBnZGIoMSkgZGVidWcgc3ltYm9scwoKb3B0aW9ucyAJU0NIRURf VUxFCQkjIFVMRSBzY2hlZHVsZXIKb3B0aW9ucyAJUFJFRU1QVElPTgkJIyBFbmFibGUga2VybmVs IHRocmVhZCBwcmVlbXB0aW9uCm9wdGlvbnMgCUlORVQJCQkjIEludGVyTkVUd29ya2luZwpvcHRp b25zIAlJTkVUNgkJCSMgSVB2NiBjb21tdW5pY2F0aW9ucyBwcm90b2NvbHMKb3B0aW9ucyAJU0NU UAkJCSMgU3RyZWFtIENvbnRyb2wgVHJhbnNtaXNzaW9uIFByb3RvY29sCm9wdGlvbnMgCUZGUwkJ CSMgQmVya2VsZXkgRmFzdCBGaWxlc3lzdGVtCm9wdGlvbnMgCVNPRlRVUERBVEVTCQkjIEVuYWJs ZSBGRlMgc29mdCB1cGRhdGVzIHN1cHBvcnQKb3B0aW9ucyAJVUZTX0FDTAkJCSMgU3VwcG9ydCBm b3IgYWNjZXNzIGNvbnRyb2wgbGlzdHMKb3B0aW9ucyAJVUZTX0RJUkhBU0gJCSMgSW1wcm92ZSBw ZXJmb3JtYW5jZSBvbiBiaWcgZGlyZWN0b3JpZXMKb3B0aW9ucyAJVUZTX0dKT1VSTkFMCQkjIEVu YWJsZSBnam91cm5hbC1iYXNlZCBVRlMgam91cm5hbGluZwpvcHRpb25zIAlNRF9ST09UCQkJIyBN RCBpcyBhIHBvdGVudGlhbCByb290IGRldmljZQpvcHRpb25zIAlORlNDTElFTlQJCSMgTmV0d29y ayBGaWxlc3lzdGVtIENsaWVudApvcHRpb25zIAlORlNTRVJWRVIJCSMgTmV0d29yayBGaWxlc3lz dGVtIFNlcnZlcgpvcHRpb25zIAlORlNMT0NLRAkJIyBOZXR3b3JrIExvY2sgTWFuYWdlcgpvcHRp b25zIAlORlNfUk9PVAkJIyBORlMgdXNhYmxlIGFzIC8sIHJlcXVpcmVzIE5GU0NMSUVOVApvcHRp b25zIAlNU0RPU0ZTCQkJIyBNU0RPUyBGaWxlc3lzdGVtCm9wdGlvbnMgCUNEOTY2MAkJCSMgSVNP IDk2NjAgRmlsZXN5c3RlbQpvcHRpb25zIAlQUk9DRlMJCQkjIFByb2Nlc3MgZmlsZXN5c3RlbSAo cmVxdWlyZXMgUFNFVURPRlMpCm9wdGlvbnMgCVBTRVVET0ZTCQkjIFBzZXVkby1maWxlc3lzdGVt IGZyYW1ld29yawpvcHRpb25zIAlHRU9NX1BBUlRfR1BUCQkjIEdVSUQgUGFydGl0aW9uIFRhYmxl cy4Kb3B0aW9ucyAJR0VPTV9MQUJFTAkJIyBQcm92aWRlcyBsYWJlbGl6YXRpb24Kb3B0aW9ucyAJ Q09NUEFUXzQzVFRZCQkjIEJTRCA0LjMgVFRZIGNvbXBhdCAoc2d0dHkpCm9wdGlvbnMgCUNPTVBB VF9GUkVFQlNENAkJIyBDb21wYXRpYmxlIHdpdGggRnJlZUJTRDQKb3B0aW9ucyAJQ09NUEFUX0ZS RUVCU0Q1CQkjIENvbXBhdGlibGUgd2l0aCBGcmVlQlNENQpvcHRpb25zIAlDT01QQVRfRlJFRUJT RDYJCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0Q2Cm9wdGlvbnMgCUNPTVBBVF9GUkVFQlNENwkJ IyBDb21wYXRpYmxlIHdpdGggRnJlZUJTRDcKb3B0aW9ucyAJU0NTSV9ERUxBWT01MDAwCQkjIERl bGF5IChpbiBtcykgYmVmb3JlIHByb2JpbmcgU0NTSQpvcHRpb25zIAlLVFJBQ0UJCQkjIGt0cmFj ZSgxKSBzdXBwb3J0Cm9wdGlvbnMgCVNUQUNLCQkJIyBzdGFjayg5KSBzdXBwb3J0Cm9wdGlvbnMg CVNZU1ZTSE0JCQkjIFNZU1Ytc3R5bGUgc2hhcmVkIG1lbW9yeQpvcHRpb25zIAlTWVNWTVNHCQkJ IyBTWVNWLXN0eWxlIG1lc3NhZ2UgcXVldWVzCm9wdGlvbnMgCVNZU1ZTRU0JCQkjIFNZU1Ytc3R5 bGUgc2VtYXBob3JlcwpvcHRpb25zIAlQMTAwM18xQl9TRU1BUEhPUkVTCSMgUE9TSVgtc3R5bGUg c2VtYXBob3JlcwpvcHRpb25zIAlfS1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkcgIyBQT1NJWCBQ MTAwM18xQiByZWFsLXRpbWUgZXh0ZW5zaW9ucwpvcHRpb25zIAlQUklOVEZfQlVGUl9TSVpFPTEy OAkjIFByZXZlbnQgcHJpbnRmIG91dHB1dCBiZWluZyBpbnRlcnNwZXJzZWQuCm9wdGlvbnMgCUtC RF9JTlNUQUxMX0NERVYJIyBpbnN0YWxsIGEgQ0RFViBlbnRyeSBpbiAvZGV2Cm9wdGlvbnMgCUhX UE1DX0hPT0tTCQkjIE5lY2Vzc2FyeSBrZXJuZWwgaG9va3MgZm9yIGh3cG1jKDQpCm9wdGlvbnMg CUFVRElUCQkJIyBTZWN1cml0eSBldmVudCBhdWRpdGluZwpvcHRpb25zIAlNQUMJCQkjIFRydXN0 ZWRCU0QgTUFDIEZyYW1ld29yawpvcHRpb25zCQlGTE9XVEFCTEUJCSMgcGVyLWNwdSByb3V0aW5n IGNhY2hlCiNvcHRpb25zIAlLRFRSQUNFX0hPT0tTCQkjIEtlcm5lbCBEVHJhY2UgaG9va3MKCiMg VG8gbWFrZSBhbiBTTVAga2VybmVsLCB0aGUgbmV4dCB0d28gbGluZXMgYXJlIG5lZWRlZApvcHRp b25zIAlTTVAJCQkjIFN5bW1ldHJpYyBNdWx0aVByb2Nlc3NvciBLZXJuZWwKZGV2aWNlCQlhcGlj CQkJIyBJL08gQVBJQwoKIyBDUFUgZnJlcXVlbmN5IGNvbnRyb2wKZGV2aWNlCQljcHVmcmVxCgoj IEJ1cyBzdXBwb3J0LgpkZXZpY2UJCWFjcGkKZGV2aWNlCQllaXNhCmRldmljZQkJcGNpCgojIEZs b3BweSBkcml2ZXMKZGV2aWNlCQlmZGMKCiMgQVRBIGFuZCBBVEFQSSBkZXZpY2VzCmRldmljZQkJ YXRhCmRldmljZQkJYXRhZGlzawkJIyBBVEEgZGlzayBkcml2ZXMKZGV2aWNlCQlhdGFyYWlkCQkj IEFUQSBSQUlEIGRyaXZlcwpkZXZpY2UJCWF0YXBpY2QJCSMgQVRBUEkgQ0RST00gZHJpdmVzCmRl dmljZQkJYXRhcGlmZAkJIyBBVEFQSSBmbG9wcHkgZHJpdmVzCmRldmljZQkJYXRhcGlzdAkJIyBB VEFQSSB0YXBlIGRyaXZlcwpvcHRpb25zIAlBVEFfU1RBVElDX0lECSMgU3RhdGljIGRldmljZSBu dW1iZXJpbmcKCiMgU0NTSSBDb250cm9sbGVycwpkZXZpY2UJCWFoYgkJIyBFSVNBIEFIQTE3NDIg ZmFtaWx5CmRldmljZQkJYWhjCQkjIEFIQTI5NDAgYW5kIG9uYm9hcmQgQUlDN3h4eCBkZXZpY2Vz Cm9wdGlvbnMgCUFIQ19SRUdfUFJFVFRZX1BSSU5UCSMgUHJpbnQgcmVnaXN0ZXIgYml0ZmllbGRz IGluIGRlYnVnCgkJCQkJIyBvdXRwdXQuICBBZGRzIH4xMjhrIHRvIGRyaXZlci4KZGV2aWNlCQlh aGQJCSMgQUhBMzkzMjAvMjkzMjAgYW5kIG9uYm9hcmQgQUlDNzl4eCBkZXZpY2VzCm9wdGlvbnMg CUFIRF9SRUdfUFJFVFRZX1BSSU5UCSMgUHJpbnQgcmVnaXN0ZXIgYml0ZmllbGRzIGluIGRlYnVn CgkJCQkJIyBvdXRwdXQuICBBZGRzIH4yMTVrIHRvIGRyaXZlci4KZGV2aWNlCQlhbWQJCSMgQU1E IDUzQzk3NCAoVGVrcmFtIERDLTM5MChUKSkKZGV2aWNlCQlocHRpb3AJCSMgSGlnaHBvaW50IFJv Y2tldFJhaWQgM3h4eCBzZXJpZXMKZGV2aWNlCQlpc3AJCSMgUWxvZ2ljIGZhbWlseQojZGV2aWNl CQlpc3BmdwkJIyBGaXJtd2FyZSBmb3IgUUxvZ2ljIEhCQXMtIG5vcm1hbGx5IGEgbW9kdWxlCmRl dmljZQkJbXB0CQkjIExTSS1Mb2dpYyBNUFQtRnVzaW9uCiNkZXZpY2UJCW5jcgkJIyBOQ1IvU3lt YmlvcyBMb2dpYwpkZXZpY2UJCXN5bQkJIyBOQ1IvU3ltYmlvcyBMb2dpYyAobmV3ZXIgY2hpcHNl dHMgKyB0aG9zZSBvZiBgbmNyJykKZGV2aWNlCQl0cm0JCSMgVGVrcmFtIERDMzk1VS9VVy9GIERD MzE1VSBhZGFwdGVycwoKZGV2aWNlCQlhZHYJCSMgQWR2YW5zeXMgU0NTSSBhZGFwdGVycwpkZXZp Y2UJCWFkdwkJIyBBZHZhbnN5cyB3aWRlIFNDU0kgYWRhcHRlcnMKZGV2aWNlCQlhaGEJCSMgQWRh cHRlYyAxNTR4IFNDU0kgYWRhcHRlcnMKZGV2aWNlCQlhaWMJCSMgQWRhcHRlYyAxNVswMTJdeCBT Q1NJIGFkYXB0ZXJzLCBBSUMtNlsyM102MC4KZGV2aWNlCQlidAkJIyBCdXNsb2dpYy9NeWxleCBN dWx0aU1hc3RlciBTQ1NJIGFkYXB0ZXJzCgpkZXZpY2UJCW5jdgkJIyBOQ1IgNTNDNTAwCmRldmlj ZQkJbnNwCQkjIFdvcmtiaXQgTmluamEgU0NTSS0zCmRldmljZQkJc3RnCQkjIFRNQyAxOEMzMC8x OEM1MAoKIyBTQ1NJIHBlcmlwaGVyYWxzCmRldmljZQkJc2NidXMJCSMgU0NTSSBidXMgKHJlcXVp cmVkIGZvciBTQ1NJKQpkZXZpY2UJCWNoCQkjIFNDU0kgbWVkaWEgY2hhbmdlcnMKZGV2aWNlCQlk YQkJIyBEaXJlY3QgQWNjZXNzIChkaXNrcykKZGV2aWNlCQlzYQkJIyBTZXF1ZW50aWFsIEFjY2Vz cyAodGFwZSBldGMpCmRldmljZQkJY2QJCSMgQ0QKZGV2aWNlCQlwYXNzCQkjIFBhc3N0aHJvdWdo IGRldmljZSAoZGlyZWN0IFNDU0kgYWNjZXNzKQpkZXZpY2UJCXNlcwkJIyBTQ1NJIEVudmlyb25t ZW50YWwgU2VydmljZXMgKGFuZCBTQUYtVEUpCgojIFJBSUQgY29udHJvbGxlcnMgaW50ZXJmYWNl ZCB0byB0aGUgU0NTSSBzdWJzeXN0ZW0KZGV2aWNlCQlhbXIJCSMgQU1JIE1lZ2FSQUlECmRldmlj ZQkJYXJjbXNyCQkjIEFyZWNhIFNBVEEgSUkgUkFJRApkZXZpY2UJCWFzcgkJIyBEUFQgU21hcnRS QUlEIFYsIFZJIGFuZCBBZGFwdGVjIFNDU0kgUkFJRApkZXZpY2UJCWNpc3MJCSMgQ29tcGFxIFNt YXJ0IFJBSUQgNSoKZGV2aWNlCQlkcHQJCSMgRFBUIFNtYXJ0Y2FjaGUgSUlJLCBJViAtIFNlZSBO T1RFUyBmb3Igb3B0aW9ucwpkZXZpY2UJCWhwdG12CQkjIEhpZ2hwb2ludCBSb2NrZXRSQUlEIDE4 MngKZGV2aWNlCQlocHRycgkJIyBIaWdocG9pbnQgUm9ja2V0UkFJRCAxN3h4LCAyMnh4LCAyM3h4 LCAyNXh4CmRldmljZQkJaWlyCQkjIEludGVsIEludGVncmF0ZWQgUkFJRApkZXZpY2UJCWlwcwkJ IyBJQk0gKEFkYXB0ZWMpIFNlcnZlUkFJRApkZXZpY2UJCW1seQkJIyBNeWxleCBBY2NlbGVSQUlE L2VYdHJlbWVSQUlECmRldmljZQkJdHdhCQkjIDN3YXJlIDkwMDAgc2VyaWVzIFBBVEEvU0FUQSBS QUlECgojIFJBSUQgY29udHJvbGxlcnMKZGV2aWNlCQlhYWMJCSMgQWRhcHRlYyBGU0EgUkFJRApk ZXZpY2UJCWFhY3AJCSMgU0NTSSBwYXNzdGhyb3VnaCBmb3IgYWFjIChyZXF1aXJlcyBDQU0pCmRl dmljZQkJaWRhCQkjIENvbXBhcSBTbWFydCBSQUlECmRldmljZQkJbWZpCQkjIExTSSBNZWdhUkFJ RCBTQVMKZGV2aWNlCQltbHgJCSMgTXlsZXggREFDOTYwIGZhbWlseQpkZXZpY2UJCXBzdAkJIyBQ cm9taXNlIFN1cGVydHJhayBTWDYwMDAKZGV2aWNlCQl0d2UJCSMgM3dhcmUgQVRBIFJBSUQKCiMg YXRrYmRjMCBjb250cm9scyBib3RoIHRoZSBrZXlib2FyZCBhbmQgdGhlIFBTLzIgbW91c2UKZGV2 aWNlCQlhdGtiZGMJCSMgQVQga2V5Ym9hcmQgY29udHJvbGxlcgpkZXZpY2UJCWF0a2JkCQkjIEFU IGtleWJvYXJkCmRldmljZQkJcHNtCQkjIFBTLzIgbW91c2UKCmRldmljZQkJa2JkbXV4CQkjIGtl eWJvYXJkIG11bHRpcGxleGVyCgpkZXZpY2UJCXZnYQkJIyBWR0EgdmlkZW8gY2FyZCBkcml2ZXIK CmRldmljZQkJc3BsYXNoCQkjIFNwbGFzaCBzY3JlZW4gYW5kIHNjcmVlbiBzYXZlciBzdXBwb3J0 CgojIHN5c2NvbnMgaXMgdGhlIGRlZmF1bHQgY29uc29sZSBkcml2ZXIsIHJlc2VtYmxpbmcgYW4g U0NPIGNvbnNvbGUKZGV2aWNlCQlzYwoKZGV2aWNlCQlhZ3AJCSMgc3VwcG9ydCBzZXZlcmFsIEFH UCBjaGlwc2V0cwoKIyBQb3dlciBtYW5hZ2VtZW50IHN1cHBvcnQgKHNlZSBOT1RFUyBmb3IgbW9y ZSBvcHRpb25zKQojZGV2aWNlCQlhcG0KIyBBZGQgc3VzcGVuZC9yZXN1bWUgc3VwcG9ydCBmb3Ig dGhlIGk4MjU0LgpkZXZpY2UJCXBtdGltZXIKCiMgUENDQVJEIChQQ01DSUEpIHN1cHBvcnQKIyBQ Q01DSUEgYW5kIGNhcmRidXMgYnJpZGdlIHN1cHBvcnQKZGV2aWNlCQljYmIJCSMgY2FyZGJ1cyAo eWVudGEpIGJyaWRnZQpkZXZpY2UJCXBjY2FyZAkJIyBQQyBDYXJkICgxNi1iaXQpIGJ1cwpkZXZp Y2UJCWNhcmRidXMJCSMgQ2FyZEJ1cyAoMzItYml0KSBidXMKCiMgU2VyaWFsIChDT00pIHBvcnRz CmRldmljZQkJdWFydAkJIyBHZW5lcmljIFVBUlQgZHJpdmVyCgojIFBhcmFsbGVsIHBvcnQKZGV2 aWNlCQlwcGMKZGV2aWNlCQlwcGJ1cwkJIyBQYXJhbGxlbCBwb3J0IGJ1cyAocmVxdWlyZWQpCmRl dmljZQkJbHB0CQkjIFByaW50ZXIKZGV2aWNlCQlwbGlwCQkjIFRDUC9JUCBvdmVyIHBhcmFsbGVs CmRldmljZQkJcHBpCQkjIFBhcmFsbGVsIHBvcnQgaW50ZXJmYWNlIGRldmljZQojZGV2aWNlCQl2 cG8JCSMgUmVxdWlyZXMgc2NidXMgYW5kIGRhCgojIElmIHlvdSd2ZSBnb3QgYSAiZHVtYiIgc2Vy aWFsIG9yIHBhcmFsbGVsIFBDSSBjYXJkIHRoYXQgaXMKIyBzdXBwb3J0ZWQgYnkgdGhlIHB1Yyg0 KSBnbHVlIGRyaXZlciwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcKIyBsaW5lIHRvIGVuYWJsZSBp dCAoY29ubmVjdHMgdG8gc2lvLCB1YXJ0IGFuZC9vciBwcGMgZHJpdmVycyk6CiNkZXZpY2UJCXB1 YwoKIyBQQ0kgRXRoZXJuZXQgTklDcy4KZGV2aWNlCQlkZQkJIyBERUMvSW50ZWwgREMyMXg0eCAo YGBUdWxpcCcnKQpkZXZpY2UJCWVtCQkjIEludGVsIFBSTy8xMDAwIEdpZ2FiaXQgRXRoZXJuZXQg RmFtaWx5CmRldmljZQkJaWdiCQkjIEludGVsIFBSTy8xMDAwIFBDSUUgU2VydmVyIEdpZ2FiaXQg RmFtaWx5CmRldmljZQkJaXhnYgkJIyBJbnRlbCBQUk8vMTBHYkUgRXRoZXJuZXQgQ2FyZApkZXZp Y2UJCWxlCQkjIEFNRCBBbTc5MDAgTEFOQ0UgYW5kIEFtNzlDOXh4IFBDbmV0CmRldmljZQkJdGkJ CSMgQWx0ZW9uIE5ldHdvcmtzIFRpZ29uIEkvSUkgZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCXR4 cAkJIyAzQ29tIDNjUjk5MCAoYGBUeXBob29uJycpCmRldmljZQkJdngJCSMgM0NvbSAzYzU5MCwg M2M1OTUgKGBgVm9ydGV4JycpCgojIFBDSSBFdGhlcm5ldCBOSUNzIHRoYXQgdXNlIHRoZSBjb21t b24gTUlJIGJ1cyBjb250cm9sbGVyIGNvZGUuCiMgTk9URTogQmUgc3VyZSB0byBrZWVwIHRoZSAn ZGV2aWNlIG1paWJ1cycgbGluZSBpbiBvcmRlciB0byB1c2UgdGhlc2UgTklDcyEKZGV2aWNlCQlt aWlidXMJCSMgTUlJIGJ1cyBzdXBwb3J0CmRldmljZQkJYWUJCSMgQXR0YW5zaWMvQXRoZXJvcyBM MiBGYXN0RXRoZXJuZXQKZGV2aWNlCQlhZ2UJCSMgQXR0YW5zaWMvQXRoZXJvcyBMMSBHaWdhYml0 IEV0aGVybmV0CmRldmljZQkJYWxjCQkjIEF0aGVyb3MgQVI4MTMxL0FSODEzMiBFdGhlcm5ldApk ZXZpY2UJCWFsZQkJIyBBdGhlcm9zIEFSODEyMS9BUjgxMTMvQVI4MTE0IEV0aGVybmV0CmRldmlj ZQkJYmNlCQkjIEJyb2FkY29tIEJDTTU3MDYvQkNNNTcwOCBHaWdhYml0IEV0aGVybmV0CmRldmlj ZQkJYmZlCQkjIEJyb2FkY29tIEJDTTQ0MHggMTAvMTAwIEV0aGVybmV0CmRldmljZQkJYmdlCQkj IEJyb2FkY29tIEJDTTU3MHh4IEdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQlkYwkJIyBERUMvSW50 ZWwgMjExNDMgYW5kIHZhcmlvdXMgd29ya2FsaWtlcwpkZXZpY2UJCWV0CQkjIEFnZXJlIEVUMTMx MCAxMC8xMDAvR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCWZ4cAkJIyBJbnRlbCBFdGhlckV4cHJl c3MgUFJPLzEwMEIgKDgyNTU3LCA4MjU1OCkKZGV2aWNlCQlqbWUJCSMgSk1pY3JvbiBKTUMyNTAg R2lnYWJpdC9KTUMyNjAgRmFzdCBFdGhlcm5ldApkZXZpY2UJCWxnZQkJIyBMZXZlbCAxIExYVDEw MDEgZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCW1zawkJIyBNYXJ2ZWxsL1N5c0tvbm5lY3QgWXVr b24gSUkgR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCW5mZQkJIyBuVmlkaWEgbkZvcmNlIE1DUCBv bi1ib2FyZCBFdGhlcm5ldApkZXZpY2UJCW5nZQkJIyBOYXRTZW1pIERQODM4MjAgZ2lnYWJpdCBF dGhlcm5ldAojZGV2aWNlCQludmUJCSMgblZpZGlhIG5Gb3JjZSBNQ1Agb24tYm9hcmQgRXRoZXJu ZXQgTmV0d29ya2luZwpkZXZpY2UJCXBjbgkJIyBBTUQgQW03OUM5N3ggUENJIDEwLzEwMCAocHJl Y2VkZW5jZSBvdmVyICdsZScpCmRldmljZQkJcmUJCSMgUmVhbFRlayA4MTM5QysvODE2OS84MTY5 Uy84MTEwUwpkZXZpY2UJCXJsCQkjIFJlYWxUZWsgODEyOS84MTM5CmRldmljZQkJc2YJCSMgQWRh cHRlYyBBSUMtNjkxNSAoYGBTdGFyZmlyZScnKQpkZXZpY2UJCXNpcwkJIyBTaWxpY29uIEludGVn cmF0ZWQgU3lzdGVtcyBTaVMgOTAwL1NpUyA3MDE2CmRldmljZQkJc2sJCSMgU3lzS29ubmVjdCBT Sy05ODR4ICYgU0stOTgyeCBnaWdhYml0IEV0aGVybmV0CmRldmljZQkJc3RlCQkjIFN1bmRhbmNl IFNUMjAxIChELUxpbmsgREZFLTU1MFRYKQpkZXZpY2UJCXN0Z2UJCSMgU3VuZGFuY2UvVGFtYXJh Y2sgVEM5MDIxIGdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQl0bAkJIyBUZXhhcyBJbnN0cnVtZW50 cyBUaHVuZGVyTEFOCmRldmljZQkJdHgJCSMgU01DIEV0aGVyUG93ZXIgSUkgKDgzYzE3MCBgYEVQ SUMnJykKZGV2aWNlCQl2Z2UJCSMgVklBIFZUNjEyeCBnaWdhYml0IEV0aGVybmV0CmRldmljZQkJ dnIJCSMgVklBIFJoaW5lLCBSaGluZSBJSQpkZXZpY2UJCXdiCQkjIFdpbmJvbmQgVzg5Qzg0MEYK ZGV2aWNlCQl4bAkJIyAzQ29tIDNjOTB4IChgYEJvb21lcmFuZycnLCBgYEN5Y2xvbmUnJykKCiMg SVNBIEV0aGVybmV0IE5JQ3MuICBwY2NhcmQgTklDcyBpbmNsdWRlZC4KZGV2aWNlCQljcwkJIyBD cnlzdGFsIFNlbWljb25kdWN0b3IgQ1M4OXgwIE5JQwojICdkZXZpY2UgZWQnIHJlcXVpcmVzICdk ZXZpY2UgbWlpYnVzJwpkZXZpY2UJCWVkCQkjIE5FWzEyXTAwMCwgU01DIFVsdHJhLCAzYzUwMywg RFM4MzkwIGNhcmRzCmRldmljZQkJZXgJCSMgSW50ZWwgRXRoZXJFeHByZXNzIFByby8xMCBhbmQg UHJvLzEwKwpkZXZpY2UJCWVwCQkjIEV0aGVybGluayBJSUkgYmFzZWQgY2FyZHMKZGV2aWNlCQlm ZQkJIyBGdWppdHN1IE1CODY5NnggYmFzZWQgY2FyZHMKZGV2aWNlCQlpZQkJIyBFdGhlckV4cHJl c3MgOC8xNiwgM0M1MDcsIFN0YXJMQU4gMTAgZXRjLgpkZXZpY2UJCXNuCQkjIFNNQydzIDkwMDAg c2VyaWVzIG9mIEV0aGVybmV0IGNoaXBzCmRldmljZQkJeGUJCSMgWGlyY29tIHBjY2FyZCBFdGhl cm5ldAoKIyBXaXJlbGVzcyBOSUMgY2FyZHMKZGV2aWNlCQl3bGFuCQkjIDgwMi4xMSBzdXBwb3J0 Cm9wdGlvbnMgCUlFRUU4MDIxMV9ERUJVRwkjIGVuYWJsZSBkZWJ1ZyBtc2dzCm9wdGlvbnMgCUlF RUU4MDIxMV9BTVBEVV9BR0UgIyBhZ2UgZnJhbWVzIGluIEFNUERVIHJlb3JkZXIgcSdzCm9wdGlv bnMgCUlFRUU4MDIxMV9TVVBQT1JUX01FU0gJIyBlbmFibGUgODAyLjExcyBkcmFmdCBzdXBwb3J0 CmRldmljZQkJd2xhbl93ZXAJIyA4MDIuMTEgV0VQIHN1cHBvcnQKZGV2aWNlCQl3bGFuX2NjbXAJ IyA4MDIuMTEgQ0NNUCBzdXBwb3J0CmRldmljZQkJd2xhbl90a2lwCSMgODAyLjExIFRLSVAgc3Vw cG9ydApkZXZpY2UJCXdsYW5fYW1ycgkjIEFNUlIgdHJhbnNtaXQgcmF0ZSBjb250cm9sIGFsZ29y aXRobQpkZXZpY2UJCWFuCQkjIEFpcm9uZXQgNDUwMC80ODAwIDgwMi4xMSB3aXJlbGVzcyBOSUNz LgpkZXZpY2UJCWF0aAkJIyBBdGhlcm9zIHBjaS9jYXJkYnVzIE5JQydzCmRldmljZQkJYXRoX2hh bAkJIyBwY2kvY2FyZGJ1cyBjaGlwIHN1cHBvcnQKb3B0aW9ucyAJQUhfU1VQUE9SVF9BUjU0MTYJ IyBlbmFibGUgQVI1NDE2IHR4L3J4IGRlc2NyaXB0b3JzCmRldmljZQkJYXRoX3JhdGVfc2FtcGxl CSMgU2FtcGxlUmF0ZSB0eCByYXRlIGNvbnRyb2wgZm9yIGF0aApkZXZpY2UJCXJhbAkJIyBSYWxp bmsgVGVjaG5vbG9neSBSVDI1MDAgd2lyZWxlc3MgTklDcy4KZGV2aWNlCQl3aQkJIyBXYXZlTEFO L0ludGVyc2lsL1N5bWJvbCA4MDIuMTEgd2lyZWxlc3MgTklDcy4KI2RldmljZQkJd2wJCSMgT2xk ZXIgbm9uIDgwMi4xMSBXYXZlbGFuIHdpcmVsZXNzIE5JQy4KCiMgUHNldWRvIGRldmljZXMuCmRl dmljZQkJbG9vcAkJIyBOZXR3b3JrIGxvb3BiYWNrCmRldmljZQkJcmFuZG9tCQkjIEVudHJvcHkg ZGV2aWNlCmRldmljZQkJZXRoZXIJCSMgRXRoZXJuZXQgc3VwcG9ydApkZXZpY2UJCXR1bgkJIyBQ YWNrZXQgdHVubmVsLgpkZXZpY2UJCXB0eQkJIyBCU0Qtc3R5bGUgY29tcGF0aWJpbGl0eSBwc2V1 ZG8gdHR5cwpkZXZpY2UJCW1kCQkjIE1lbW9yeSAiZGlza3MiCmRldmljZQkJZ2lmCQkjIElQdjYg YW5kIElQdjQgdHVubmVsaW5nCmRldmljZQkJZmFpdGgJCSMgSVB2Ni10by1JUHY0IHJlbGF5aW5n ICh0cmFuc2xhdGlvbikKZGV2aWNlCQlmaXJtd2FyZQkjIGZpcm13YXJlIGFzc2lzdCBtb2R1bGUK CiMgVGhlIGBicGYnIGRldmljZSBlbmFibGVzIHRoZSBCZXJrZWxleSBQYWNrZXQgRmlsdGVyLgoj IEJlIGF3YXJlIG9mIHRoZSBhZG1pbmlzdHJhdGl2ZSBjb25zZXF1ZW5jZXMgb2YgZW5hYmxpbmcg dGhpcyEKIyBOb3RlIHRoYXQgJ2JwZicgaXMgcmVxdWlyZWQgZm9yIERIQ1AuCmRldmljZQkJYnBm CQkjIEJlcmtlbGV5IHBhY2tldCBmaWx0ZXIKCiMgVVNCIHN1cHBvcnQKZGV2aWNlCQl1aGNpCQkj IFVIQ0kgUENJLT5VU0IgaW50ZXJmYWNlCmRldmljZQkJb2hjaQkJIyBPSENJIFBDSS0+VVNCIGlu dGVyZmFjZQpkZXZpY2UJCWVoY2kJCSMgRUhDSSBQQ0ktPlVTQiBpbnRlcmZhY2UgKFVTQiAyLjAp CmRldmljZQkJdXNiCQkjIFVTQiBCdXMgKHJlcXVpcmVkKQojZGV2aWNlCQl1ZGJwCQkjIFVTQiBE b3VibGUgQnVsayBQaXBlIGRldmljZXMKZGV2aWNlCQl1aGlkCQkjICJIdW1hbiBJbnRlcmZhY2Ug RGV2aWNlcyIKZGV2aWNlCQl1a2JkCQkjIEtleWJvYXJkCmRldmljZQkJdWxwdAkJIyBQcmludGVy CmRldmljZQkJdW1hc3MJCSMgRGlza3MvTWFzcyBzdG9yYWdlIC0gUmVxdWlyZXMgc2NidXMgYW5k IGRhCmRldmljZQkJdW1zCQkjIE1vdXNlCmRldmljZQkJcnVtCQkjIFJhbGluayBUZWNobm9sb2d5 IFJUMjUwMVVTQiB3aXJlbGVzcyBOSUNzCmRldmljZQkJdXJhbAkJIyBSYWxpbmsgVGVjaG5vbG9n eSBSVDI1MDBVU0Igd2lyZWxlc3MgTklDcwpkZXZpY2UJCXVhdGgJCSMgQXRoZXJvcyBBUjU1MjMg d2lyZWxlc3MgTklDcwpkZXZpY2UJCXp5ZAkJIyBaeURBUyB6YjEyMTEvemIxMjExYiB3aXJlbGVz cyBOSUNzCmRldmljZQkJdXJpbwkJIyBEaWFtb25kIFJpbyA1MDAgTVAzIHBsYXllcgojIFVTQiBT ZXJpYWwgZGV2aWNlcwpkZXZpY2UJCXUzZwkJIyBVU0ItYmFzZWQgM0cgbW9kZW1zIChPcHRpb24s IEh1YXdlaSwgU2llcnJhKQpkZXZpY2UJCXVhcmsJCSMgVGVjaG5vbG9naWVzIEFSSzMxMTYgYmFz ZWQgc2VyaWFsIGFkYXB0ZXJzCmRldmljZQkJdWJzYQkJIyBCZWxraW4gRjVVMTAzIGFuZCBjb21w YXRpYmxlIHNlcmlhbCBhZGFwdGVycwpkZXZpY2UJCXVmdGRpCQkjIEZvciBGVERJIHVzYiBzZXJp YWwgYWRhcHRlcnMKZGV2aWNlCQl1aXBhcQkJIyBTb21lIFdpbkNFIGJhc2VkIGRldmljZXMKZGV2 aWNlCQl1cGxjb20JCSMgUHJvbGlmaWMgUEwtMjMwMyBzZXJpYWwgYWRhcHRlcnMKZGV2aWNlCQl1 c2xjb20JCSMgU0kgTGFicyBDUDIxMDEvQ1AyMTAyIHNlcmlhbCBhZGFwdGVycwpkZXZpY2UJCXV2 aXNvcgkJIyBWaXNvciBhbmQgUGFsbSBkZXZpY2VzCmRldmljZQkJdXZzY29tCQkjIFVTQiBzZXJp YWwgc3VwcG9ydCBmb3IgRERJIHBvY2tldCdzIFBIUwojIFVTQiBFdGhlcm5ldCwgcmVxdWlyZXMg bWlpYnVzCmRldmljZQkJYXVlCQkjIEFETXRlayBVU0IgRXRoZXJuZXQKZGV2aWNlCQlheGUJCSMg QVNJWCBFbGVjdHJvbmljcyBVU0IgRXRoZXJuZXQKZGV2aWNlCQljZGNlCQkjIEdlbmVyaWMgVVNC IG92ZXIgRXRoZXJuZXQKZGV2aWNlCQljdWUJCSMgQ0FUQyBVU0IgRXRoZXJuZXQKZGV2aWNlCQlr dWUJCSMgS2F3YXNha2kgTFNJIFVTQiBFdGhlcm5ldApkZXZpY2UJCXJ1ZQkJIyBSZWFsVGVrIFJU TDgxNTAgVVNCIEV0aGVybmV0CmRldmljZQkJdWRhdgkJIyBEYXZpY29tIERNOTYwMUUgVVNCCgoj IEZpcmVXaXJlIHN1cHBvcnQKZGV2aWNlCQlmaXJld2lyZQkjIEZpcmVXaXJlIGJ1cyBjb2RlCiNk ZXZpY2UJCXNicAkJIyBTQ1NJIG92ZXIgRmlyZVdpcmUgKFJlcXVpcmVzIHNjYnVzIGFuZCBkYSkK ZGV2aWNlCQlmd2UJCSMgRXRoZXJuZXQgb3ZlciBGaXJlV2lyZSAobm9uLXN0YW5kYXJkISkKZGV2 aWNlCQlmd2lwCQkjIElQIG92ZXIgRmlyZVdpcmUgKFJGQyAyNzM0LDMxNDYpCmRldmljZQkJZGNv bnMJCSMgRHVtYiBjb25zb2xlIGRyaXZlcgpkZXZpY2UJCWRjb25zX2Nyb20JIyBDb25maWd1cmF0 aW9uIFJPTSBmb3IgZGNvbnMK --0016e68fcd6c6dd7160487e6a6d2 Content-Type: application/octet-stream; name=NOULPTKERNEL Content-Disposition: attachment; filename=NOULPTKERNEL Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9vjba202 Y3B1CQlJNTg2X0NQVQppZGVudAkJTk9VTFBUS0VSTkVMCgojIFRvIHN0YXRpY2FsbHkgY29tcGls ZSBpbiBkZXZpY2Ugd2lyaW5nIGluc3RlYWQgb2YgL2Jvb3QvZGV2aWNlLmhpbnRzCiNoaW50cwkJ IkdFTkVSSUMuaGludHMiCQkjIERlZmF1bHQgcGxhY2VzIHRvIGxvb2sgZm9yIGRldmljZXMuCgoj IFVzZSB0aGUgZm9sbG93aW5nIHRvIGNvbXBpbGUgaW4gdmFsdWVzIGFjY2Vzc2libGUgdG8gdGhl IGtlcm5lbAojIHRocm91Z2ggZ2V0ZW52KCkgKG9yIGtlbnYoMSkgaW4gdXNlcmxhbmQpLiBUaGUg Zm9ybWF0IG9mIHRoZSBmaWxlCiMgaXMgJ3ZhcmlhYmxlPXZhbHVlJywgc2VlIGtlbnYoMSkKIwoj IGVudgkJIkdFTkVSSUMuZW52IgoKbWFrZW9wdGlvbnMJREVCVUc9LWcJCSMgQnVpbGQga2VybmVs IHdpdGggZ2RiKDEpIGRlYnVnIHN5bWJvbHMKCm9wdGlvbnMgCVNDSEVEX1VMRQkJIyBVTEUgc2No ZWR1bGVyCm9wdGlvbnMgCVBSRUVNUFRJT04JCSMgRW5hYmxlIGtlcm5lbCB0aHJlYWQgcHJlZW1w dGlvbgpvcHRpb25zIAlJTkVUCQkJIyBJbnRlck5FVHdvcmtpbmcKb3B0aW9ucyAJSU5FVDYJCQkj IElQdjYgY29tbXVuaWNhdGlvbnMgcHJvdG9jb2xzCm9wdGlvbnMgCVNDVFAJCQkjIFN0cmVhbSBD b250cm9sIFRyYW5zbWlzc2lvbiBQcm90b2NvbApvcHRpb25zIAlGRlMJCQkjIEJlcmtlbGV5IEZh c3QgRmlsZXN5c3RlbQpvcHRpb25zIAlTT0ZUVVBEQVRFUwkJIyBFbmFibGUgRkZTIHNvZnQgdXBk YXRlcyBzdXBwb3J0Cm9wdGlvbnMgCVVGU19BQ0wJCQkjIFN1cHBvcnQgZm9yIGFjY2VzcyBjb250 cm9sIGxpc3RzCm9wdGlvbnMgCVVGU19ESVJIQVNICQkjIEltcHJvdmUgcGVyZm9ybWFuY2Ugb24g YmlnIGRpcmVjdG9yaWVzCm9wdGlvbnMgCVVGU19HSk9VUk5BTAkJIyBFbmFibGUgZ2pvdXJuYWwt YmFzZWQgVUZTIGpvdXJuYWxpbmcKb3B0aW9ucyAJTURfUk9PVAkJCSMgTUQgaXMgYSBwb3RlbnRp YWwgcm9vdCBkZXZpY2UKb3B0aW9ucyAJTkZTQ0xJRU5UCQkjIE5ldHdvcmsgRmlsZXN5c3RlbSBD bGllbnQKb3B0aW9ucyAJTkZTU0VSVkVSCQkjIE5ldHdvcmsgRmlsZXN5c3RlbSBTZXJ2ZXIKb3B0 aW9ucyAJTkZTTE9DS0QJCSMgTmV0d29yayBMb2NrIE1hbmFnZXIKb3B0aW9ucyAJTkZTX1JPT1QJ CSMgTkZTIHVzYWJsZSBhcyAvLCByZXF1aXJlcyBORlNDTElFTlQKb3B0aW9ucyAJTVNET1NGUwkJ CSMgTVNET1MgRmlsZXN5c3RlbQpvcHRpb25zIAlDRDk2NjAJCQkjIElTTyA5NjYwIEZpbGVzeXN0 ZW0Kb3B0aW9ucyAJUFJPQ0ZTCQkJIyBQcm9jZXNzIGZpbGVzeXN0ZW0gKHJlcXVpcmVzIFBTRVVE T0ZTKQpvcHRpb25zIAlQU0VVRE9GUwkJIyBQc2V1ZG8tZmlsZXN5c3RlbSBmcmFtZXdvcmsKb3B0 aW9ucyAJR0VPTV9QQVJUX0dQVAkJIyBHVUlEIFBhcnRpdGlvbiBUYWJsZXMuCm9wdGlvbnMgCUdF T01fTEFCRUwJCSMgUHJvdmlkZXMgbGFiZWxpemF0aW9uCm9wdGlvbnMgCUNPTVBBVF80M1RUWQkJ IyBCU0QgNC4zIFRUWSBjb21wYXQgKHNndHR5KQpvcHRpb25zIAlDT01QQVRfRlJFRUJTRDQJCSMg Q29tcGF0aWJsZSB3aXRoIEZyZWVCU0Q0Cm9wdGlvbnMgCUNPTVBBVF9GUkVFQlNENQkJIyBDb21w YXRpYmxlIHdpdGggRnJlZUJTRDUKb3B0aW9ucyAJQ09NUEFUX0ZSRUVCU0Q2CQkjIENvbXBhdGli bGUgd2l0aCBGcmVlQlNENgpvcHRpb25zIAlDT01QQVRfRlJFRUJTRDcJCSMgQ29tcGF0aWJsZSB3 aXRoIEZyZWVCU0Q3Cm9wdGlvbnMgCVNDU0lfREVMQVk9NTAwMAkJIyBEZWxheSAoaW4gbXMpIGJl Zm9yZSBwcm9iaW5nIFNDU0kKb3B0aW9ucyAJS1RSQUNFCQkJIyBrdHJhY2UoMSkgc3VwcG9ydApv cHRpb25zIAlTVEFDSwkJCSMgc3RhY2soOSkgc3VwcG9ydApvcHRpb25zIAlTWVNWU0hNCQkJIyBT WVNWLXN0eWxlIHNoYXJlZCBtZW1vcnkKb3B0aW9ucyAJU1lTVk1TRwkJCSMgU1lTVi1zdHlsZSBt ZXNzYWdlIHF1ZXVlcwpvcHRpb25zIAlTWVNWU0VNCQkJIyBTWVNWLXN0eWxlIHNlbWFwaG9yZXMK b3B0aW9ucyAJUDEwMDNfMUJfU0VNQVBIT1JFUwkjIFBPU0lYLXN0eWxlIHNlbWFwaG9yZXMKb3B0 aW9ucyAJX0tQT1NJWF9QUklPUklUWV9TQ0hFRFVMSU5HICMgUE9TSVggUDEwMDNfMUIgcmVhbC10 aW1lIGV4dGVuc2lvbnMKb3B0aW9ucyAJUFJJTlRGX0JVRlJfU0laRT0xMjgJIyBQcmV2ZW50IHBy aW50ZiBvdXRwdXQgYmVpbmcgaW50ZXJzcGVyc2VkLgpvcHRpb25zIAlLQkRfSU5TVEFMTF9DREVW CSMgaW5zdGFsbCBhIENERVYgZW50cnkgaW4gL2RldgpvcHRpb25zIAlIV1BNQ19IT09LUwkJIyBO ZWNlc3Nhcnkga2VybmVsIGhvb2tzIGZvciBod3BtYyg0KQpvcHRpb25zIAlBVURJVAkJCSMgU2Vj dXJpdHkgZXZlbnQgYXVkaXRpbmcKb3B0aW9ucyAJTUFDCQkJIyBUcnVzdGVkQlNEIE1BQyBGcmFt ZXdvcmsKb3B0aW9ucwkJRkxPV1RBQkxFCQkjIHBlci1jcHUgcm91dGluZyBjYWNoZQojb3B0aW9u cyAJS0RUUkFDRV9IT09LUwkJIyBLZXJuZWwgRFRyYWNlIGhvb2tzCgojIFRvIG1ha2UgYW4gU01Q IGtlcm5lbCwgdGhlIG5leHQgdHdvIGxpbmVzIGFyZSBuZWVkZWQKb3B0aW9ucyAJU01QCQkJIyBT eW1tZXRyaWMgTXVsdGlQcm9jZXNzb3IgS2VybmVsCmRldmljZQkJYXBpYwkJCSMgSS9PIEFQSUMK CiMgQ1BVIGZyZXF1ZW5jeSBjb250cm9sCmRldmljZQkJY3B1ZnJlcQoKIyBCdXMgc3VwcG9ydC4K ZGV2aWNlCQlhY3BpCmRldmljZQkJZWlzYQpkZXZpY2UJCXBjaQoKIyBGbG9wcHkgZHJpdmVzCmRl dmljZQkJZmRjCgojIEFUQSBhbmQgQVRBUEkgZGV2aWNlcwpkZXZpY2UJCWF0YQpkZXZpY2UJCWF0 YWRpc2sJCSMgQVRBIGRpc2sgZHJpdmVzCmRldmljZQkJYXRhcmFpZAkJIyBBVEEgUkFJRCBkcml2 ZXMKZGV2aWNlCQlhdGFwaWNkCQkjIEFUQVBJIENEUk9NIGRyaXZlcwpkZXZpY2UJCWF0YXBpZmQJ CSMgQVRBUEkgZmxvcHB5IGRyaXZlcwpkZXZpY2UJCWF0YXBpc3QJCSMgQVRBUEkgdGFwZSBkcml2 ZXMKb3B0aW9ucyAJQVRBX1NUQVRJQ19JRAkjIFN0YXRpYyBkZXZpY2UgbnVtYmVyaW5nCgojIFND U0kgQ29udHJvbGxlcnMKZGV2aWNlCQlhaGIJCSMgRUlTQSBBSEExNzQyIGZhbWlseQpkZXZpY2UJ CWFoYwkJIyBBSEEyOTQwIGFuZCBvbmJvYXJkIEFJQzd4eHggZGV2aWNlcwpvcHRpb25zIAlBSENf UkVHX1BSRVRUWV9QUklOVAkjIFByaW50IHJlZ2lzdGVyIGJpdGZpZWxkcyBpbiBkZWJ1ZwoJCQkJ CSMgb3V0cHV0LiAgQWRkcyB+MTI4ayB0byBkcml2ZXIuCmRldmljZQkJYWhkCQkjIEFIQTM5MzIw LzI5MzIwIGFuZCBvbmJvYXJkIEFJQzc5eHggZGV2aWNlcwpvcHRpb25zIAlBSERfUkVHX1BSRVRU WV9QUklOVAkjIFByaW50IHJlZ2lzdGVyIGJpdGZpZWxkcyBpbiBkZWJ1ZwoJCQkJCSMgb3V0cHV0 LiAgQWRkcyB+MjE1ayB0byBkcml2ZXIuCmRldmljZQkJYW1kCQkjIEFNRCA1M0M5NzQgKFRla3Jh bSBEQy0zOTAoVCkpCmRldmljZQkJaHB0aW9wCQkjIEhpZ2hwb2ludCBSb2NrZXRSYWlkIDN4eHgg c2VyaWVzCmRldmljZQkJaXNwCQkjIFFsb2dpYyBmYW1pbHkKI2RldmljZQkJaXNwZncJCSMgRmly bXdhcmUgZm9yIFFMb2dpYyBIQkFzLSBub3JtYWxseSBhIG1vZHVsZQpkZXZpY2UJCW1wdAkJIyBM U0ktTG9naWMgTVBULUZ1c2lvbgojZGV2aWNlCQluY3IJCSMgTkNSL1N5bWJpb3MgTG9naWMKZGV2 aWNlCQlzeW0JCSMgTkNSL1N5bWJpb3MgTG9naWMgKG5ld2VyIGNoaXBzZXRzICsgdGhvc2Ugb2Yg YG5jcicpCmRldmljZQkJdHJtCQkjIFRla3JhbSBEQzM5NVUvVVcvRiBEQzMxNVUgYWRhcHRlcnMK CmRldmljZQkJYWR2CQkjIEFkdmFuc3lzIFNDU0kgYWRhcHRlcnMKZGV2aWNlCQlhZHcJCSMgQWR2 YW5zeXMgd2lkZSBTQ1NJIGFkYXB0ZXJzCmRldmljZQkJYWhhCQkjIEFkYXB0ZWMgMTU0eCBTQ1NJ IGFkYXB0ZXJzCmRldmljZQkJYWljCQkjIEFkYXB0ZWMgMTVbMDEyXXggU0NTSSBhZGFwdGVycywg QUlDLTZbMjNdNjAuCmRldmljZQkJYnQJCSMgQnVzbG9naWMvTXlsZXggTXVsdGlNYXN0ZXIgU0NT SSBhZGFwdGVycwoKZGV2aWNlCQluY3YJCSMgTkNSIDUzQzUwMApkZXZpY2UJCW5zcAkJIyBXb3Jr Yml0IE5pbmphIFNDU0ktMwpkZXZpY2UJCXN0ZwkJIyBUTUMgMThDMzAvMThDNTAKCiMgU0NTSSBw ZXJpcGhlcmFscwpkZXZpY2UJCXNjYnVzCQkjIFNDU0kgYnVzIChyZXF1aXJlZCBmb3IgU0NTSSkK ZGV2aWNlCQljaAkJIyBTQ1NJIG1lZGlhIGNoYW5nZXJzCmRldmljZQkJZGEJCSMgRGlyZWN0IEFj Y2VzcyAoZGlza3MpCmRldmljZQkJc2EJCSMgU2VxdWVudGlhbCBBY2Nlc3MgKHRhcGUgZXRjKQpk ZXZpY2UJCWNkCQkjIENECmRldmljZQkJcGFzcwkJIyBQYXNzdGhyb3VnaCBkZXZpY2UgKGRpcmVj dCBTQ1NJIGFjY2VzcykKZGV2aWNlCQlzZXMJCSMgU0NTSSBFbnZpcm9ubWVudGFsIFNlcnZpY2Vz IChhbmQgU0FGLVRFKQoKIyBSQUlEIGNvbnRyb2xsZXJzIGludGVyZmFjZWQgdG8gdGhlIFNDU0kg c3Vic3lzdGVtCmRldmljZQkJYW1yCQkjIEFNSSBNZWdhUkFJRApkZXZpY2UJCWFyY21zcgkJIyBB cmVjYSBTQVRBIElJIFJBSUQKZGV2aWNlCQlhc3IJCSMgRFBUIFNtYXJ0UkFJRCBWLCBWSSBhbmQg QWRhcHRlYyBTQ1NJIFJBSUQKZGV2aWNlCQljaXNzCQkjIENvbXBhcSBTbWFydCBSQUlEIDUqCmRl dmljZQkJZHB0CQkjIERQVCBTbWFydGNhY2hlIElJSSwgSVYgLSBTZWUgTk9URVMgZm9yIG9wdGlv bnMKZGV2aWNlCQlocHRtdgkJIyBIaWdocG9pbnQgUm9ja2V0UkFJRCAxODJ4CmRldmljZQkJaHB0 cnIJCSMgSGlnaHBvaW50IFJvY2tldFJBSUQgMTd4eCwgMjJ4eCwgMjN4eCwgMjV4eApkZXZpY2UJ CWlpcgkJIyBJbnRlbCBJbnRlZ3JhdGVkIFJBSUQKZGV2aWNlCQlpcHMJCSMgSUJNIChBZGFwdGVj KSBTZXJ2ZVJBSUQKZGV2aWNlCQltbHkJCSMgTXlsZXggQWNjZWxlUkFJRC9lWHRyZW1lUkFJRApk ZXZpY2UJCXR3YQkJIyAzd2FyZSA5MDAwIHNlcmllcyBQQVRBL1NBVEEgUkFJRAoKIyBSQUlEIGNv bnRyb2xsZXJzCmRldmljZQkJYWFjCQkjIEFkYXB0ZWMgRlNBIFJBSUQKZGV2aWNlCQlhYWNwCQkj IFNDU0kgcGFzc3Rocm91Z2ggZm9yIGFhYyAocmVxdWlyZXMgQ0FNKQpkZXZpY2UJCWlkYQkJIyBD b21wYXEgU21hcnQgUkFJRApkZXZpY2UJCW1maQkJIyBMU0kgTWVnYVJBSUQgU0FTCmRldmljZQkJ bWx4CQkjIE15bGV4IERBQzk2MCBmYW1pbHkKZGV2aWNlCQlwc3QJCSMgUHJvbWlzZSBTdXBlcnRy YWsgU1g2MDAwCmRldmljZQkJdHdlCQkjIDN3YXJlIEFUQSBSQUlECgojIGF0a2JkYzAgY29udHJv bHMgYm90aCB0aGUga2V5Ym9hcmQgYW5kIHRoZSBQUy8yIG1vdXNlCmRldmljZQkJYXRrYmRjCQkj IEFUIGtleWJvYXJkIGNvbnRyb2xsZXIKZGV2aWNlCQlhdGtiZAkJIyBBVCBrZXlib2FyZApkZXZp Y2UJCXBzbQkJIyBQUy8yIG1vdXNlCgpkZXZpY2UJCWtiZG11eAkJIyBrZXlib2FyZCBtdWx0aXBs ZXhlcgoKZGV2aWNlCQl2Z2EJCSMgVkdBIHZpZGVvIGNhcmQgZHJpdmVyCgpkZXZpY2UJCXNwbGFz aAkJIyBTcGxhc2ggc2NyZWVuIGFuZCBzY3JlZW4gc2F2ZXIgc3VwcG9ydAoKIyBzeXNjb25zIGlz IHRoZSBkZWZhdWx0IGNvbnNvbGUgZHJpdmVyLCByZXNlbWJsaW5nIGFuIFNDTyBjb25zb2xlCmRl dmljZQkJc2MKCmRldmljZQkJYWdwCQkjIHN1cHBvcnQgc2V2ZXJhbCBBR1AgY2hpcHNldHMKCiMg UG93ZXIgbWFuYWdlbWVudCBzdXBwb3J0IChzZWUgTk9URVMgZm9yIG1vcmUgb3B0aW9ucykKI2Rl dmljZQkJYXBtCiMgQWRkIHN1c3BlbmQvcmVzdW1lIHN1cHBvcnQgZm9yIHRoZSBpODI1NC4KZGV2 aWNlCQlwbXRpbWVyCgojIFBDQ0FSRCAoUENNQ0lBKSBzdXBwb3J0CiMgUENNQ0lBIGFuZCBjYXJk YnVzIGJyaWRnZSBzdXBwb3J0CmRldmljZQkJY2JiCQkjIGNhcmRidXMgKHllbnRhKSBicmlkZ2UK ZGV2aWNlCQlwY2NhcmQJCSMgUEMgQ2FyZCAoMTYtYml0KSBidXMKZGV2aWNlCQljYXJkYnVzCQkj IENhcmRCdXMgKDMyLWJpdCkgYnVzCgojIFNlcmlhbCAoQ09NKSBwb3J0cwpkZXZpY2UJCXVhcnQJ CSMgR2VuZXJpYyBVQVJUIGRyaXZlcgoKIyBQYXJhbGxlbCBwb3J0CmRldmljZQkJcHBjCmRldmlj ZQkJcHBidXMJCSMgUGFyYWxsZWwgcG9ydCBidXMgKHJlcXVpcmVkKQpkZXZpY2UJCWxwdAkJIyBQ cmludGVyCmRldmljZQkJcGxpcAkJIyBUQ1AvSVAgb3ZlciBwYXJhbGxlbApkZXZpY2UJCXBwaQkJ IyBQYXJhbGxlbCBwb3J0IGludGVyZmFjZSBkZXZpY2UKI2RldmljZQkJdnBvCQkjIFJlcXVpcmVz IHNjYnVzIGFuZCBkYQoKIyBJZiB5b3UndmUgZ290IGEgImR1bWIiIHNlcmlhbCBvciBwYXJhbGxl bCBQQ0kgY2FyZCB0aGF0IGlzCiMgc3VwcG9ydGVkIGJ5IHRoZSBwdWMoNCkgZ2x1ZSBkcml2ZXIs IHVuY29tbWVudCB0aGUgZm9sbG93aW5nCiMgbGluZSB0byBlbmFibGUgaXQgKGNvbm5lY3RzIHRv IHNpbywgdWFydCBhbmQvb3IgcHBjIGRyaXZlcnMpOgojZGV2aWNlCQlwdWMKCiMgUENJIEV0aGVy bmV0IE5JQ3MuCmRldmljZQkJZGUJCSMgREVDL0ludGVsIERDMjF4NHggKGBgVHVsaXAnJykKZGV2 aWNlCQllbQkJIyBJbnRlbCBQUk8vMTAwMCBHaWdhYml0IEV0aGVybmV0IEZhbWlseQpkZXZpY2UJ CWlnYgkJIyBJbnRlbCBQUk8vMTAwMCBQQ0lFIFNlcnZlciBHaWdhYml0IEZhbWlseQpkZXZpY2UJ CWl4Z2IJCSMgSW50ZWwgUFJPLzEwR2JFIEV0aGVybmV0IENhcmQKZGV2aWNlCQlsZQkJIyBBTUQg QW03OTAwIExBTkNFIGFuZCBBbTc5Qzl4eCBQQ25ldApkZXZpY2UJCXRpCQkjIEFsdGVvbiBOZXR3 b3JrcyBUaWdvbiBJL0lJIGdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQl0eHAJCSMgM0NvbSAzY1I5 OTAgKGBgVHlwaG9vbicnKQpkZXZpY2UJCXZ4CQkjIDNDb20gM2M1OTAsIDNjNTk1IChgYFZvcnRl eCcnKQoKIyBQQ0kgRXRoZXJuZXQgTklDcyB0aGF0IHVzZSB0aGUgY29tbW9uIE1JSSBidXMgY29u dHJvbGxlciBjb2RlLgojIE5PVEU6IEJlIHN1cmUgdG8ga2VlcCB0aGUgJ2RldmljZSBtaWlidXMn IGxpbmUgaW4gb3JkZXIgdG8gdXNlIHRoZXNlIE5JQ3MhCmRldmljZQkJbWlpYnVzCQkjIE1JSSBi dXMgc3VwcG9ydApkZXZpY2UJCWFlCQkjIEF0dGFuc2ljL0F0aGVyb3MgTDIgRmFzdEV0aGVybmV0 CmRldmljZQkJYWdlCQkjIEF0dGFuc2ljL0F0aGVyb3MgTDEgR2lnYWJpdCBFdGhlcm5ldApkZXZp Y2UJCWFsYwkJIyBBdGhlcm9zIEFSODEzMS9BUjgxMzIgRXRoZXJuZXQKZGV2aWNlCQlhbGUJCSMg QXRoZXJvcyBBUjgxMjEvQVI4MTEzL0FSODExNCBFdGhlcm5ldApkZXZpY2UJCWJjZQkJIyBCcm9h ZGNvbSBCQ001NzA2L0JDTTU3MDggR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCWJmZQkJIyBCcm9h ZGNvbSBCQ000NDB4IDEwLzEwMCBFdGhlcm5ldApkZXZpY2UJCWJnZQkJIyBCcm9hZGNvbSBCQ001 NzB4eCBHaWdhYml0IEV0aGVybmV0CmRldmljZQkJZGMJCSMgREVDL0ludGVsIDIxMTQzIGFuZCB2 YXJpb3VzIHdvcmthbGlrZXMKZGV2aWNlCQlldAkJIyBBZ2VyZSBFVDEzMTAgMTAvMTAwL0dpZ2Fi aXQgRXRoZXJuZXQKZGV2aWNlCQlmeHAJCSMgSW50ZWwgRXRoZXJFeHByZXNzIFBSTy8xMDBCICg4 MjU1NywgODI1NTgpCmRldmljZQkJam1lCQkjIEpNaWNyb24gSk1DMjUwIEdpZ2FiaXQvSk1DMjYw IEZhc3QgRXRoZXJuZXQKZGV2aWNlCQlsZ2UJCSMgTGV2ZWwgMSBMWFQxMDAxIGdpZ2FiaXQgRXRo ZXJuZXQKZGV2aWNlCQltc2sJCSMgTWFydmVsbC9TeXNLb25uZWN0IFl1a29uIElJIEdpZ2FiaXQg RXRoZXJuZXQKZGV2aWNlCQluZmUJCSMgblZpZGlhIG5Gb3JjZSBNQ1Agb24tYm9hcmQgRXRoZXJu ZXQKZGV2aWNlCQluZ2UJCSMgTmF0U2VtaSBEUDgzODIwIGdpZ2FiaXQgRXRoZXJuZXQKI2Rldmlj ZQkJbnZlCQkjIG5WaWRpYSBuRm9yY2UgTUNQIG9uLWJvYXJkIEV0aGVybmV0IE5ldHdvcmtpbmcK ZGV2aWNlCQlwY24JCSMgQU1EIEFtNzlDOTd4IFBDSSAxMC8xMDAgKHByZWNlZGVuY2Ugb3ZlciAn bGUnKQpkZXZpY2UJCXJlCQkjIFJlYWxUZWsgODEzOUMrLzgxNjkvODE2OVMvODExMFMKZGV2aWNl CQlybAkJIyBSZWFsVGVrIDgxMjkvODEzOQpkZXZpY2UJCXNmCQkjIEFkYXB0ZWMgQUlDLTY5MTUg KGBgU3RhcmZpcmUnJykKZGV2aWNlCQlzaXMJCSMgU2lsaWNvbiBJbnRlZ3JhdGVkIFN5c3RlbXMg U2lTIDkwMC9TaVMgNzAxNgpkZXZpY2UJCXNrCQkjIFN5c0tvbm5lY3QgU0stOTg0eCAmIFNLLTk4 MnggZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCXN0ZQkJIyBTdW5kYW5jZSBTVDIwMSAoRC1MaW5r IERGRS01NTBUWCkKZGV2aWNlCQlzdGdlCQkjIFN1bmRhbmNlL1RhbWFyYWNrIFRDOTAyMSBnaWdh Yml0IEV0aGVybmV0CmRldmljZQkJdGwJCSMgVGV4YXMgSW5zdHJ1bWVudHMgVGh1bmRlckxBTgpk ZXZpY2UJCXR4CQkjIFNNQyBFdGhlclBvd2VyIElJICg4M2MxNzAgYGBFUElDJycpCmRldmljZQkJ dmdlCQkjIFZJQSBWVDYxMnggZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCXZyCQkjIFZJQSBSaGlu ZSwgUmhpbmUgSUkKZGV2aWNlCQl3YgkJIyBXaW5ib25kIFc4OUM4NDBGCmRldmljZQkJeGwJCSMg M0NvbSAzYzkweCAoYGBCb29tZXJhbmcnJywgYGBDeWNsb25lJycpCgojIElTQSBFdGhlcm5ldCBO SUNzLiAgcGNjYXJkIE5JQ3MgaW5jbHVkZWQuCmRldmljZQkJY3MJCSMgQ3J5c3RhbCBTZW1pY29u ZHVjdG9yIENTODl4MCBOSUMKIyAnZGV2aWNlIGVkJyByZXF1aXJlcyAnZGV2aWNlIG1paWJ1cycK ZGV2aWNlCQllZAkJIyBORVsxMl0wMDAsIFNNQyBVbHRyYSwgM2M1MDMsIERTODM5MCBjYXJkcwpk ZXZpY2UJCWV4CQkjIEludGVsIEV0aGVyRXhwcmVzcyBQcm8vMTAgYW5kIFByby8xMCsKZGV2aWNl CQllcAkJIyBFdGhlcmxpbmsgSUlJIGJhc2VkIGNhcmRzCmRldmljZQkJZmUJCSMgRnVqaXRzdSBN Qjg2OTZ4IGJhc2VkIGNhcmRzCmRldmljZQkJaWUJCSMgRXRoZXJFeHByZXNzIDgvMTYsIDNDNTA3 LCBTdGFyTEFOIDEwIGV0Yy4KZGV2aWNlCQlzbgkJIyBTTUMncyA5MDAwIHNlcmllcyBvZiBFdGhl cm5ldCBjaGlwcwpkZXZpY2UJCXhlCQkjIFhpcmNvbSBwY2NhcmQgRXRoZXJuZXQKCiMgV2lyZWxl c3MgTklDIGNhcmRzCmRldmljZQkJd2xhbgkJIyA4MDIuMTEgc3VwcG9ydApvcHRpb25zIAlJRUVF ODAyMTFfREVCVUcJIyBlbmFibGUgZGVidWcgbXNncwpvcHRpb25zIAlJRUVFODAyMTFfQU1QRFVf QUdFICMgYWdlIGZyYW1lcyBpbiBBTVBEVSByZW9yZGVyIHEncwpvcHRpb25zIAlJRUVFODAyMTFf U1VQUE9SVF9NRVNICSMgZW5hYmxlIDgwMi4xMXMgZHJhZnQgc3VwcG9ydApkZXZpY2UJCXdsYW5f d2VwCSMgODAyLjExIFdFUCBzdXBwb3J0CmRldmljZQkJd2xhbl9jY21wCSMgODAyLjExIENDTVAg c3VwcG9ydApkZXZpY2UJCXdsYW5fdGtpcAkjIDgwMi4xMSBUS0lQIHN1cHBvcnQKZGV2aWNlCQl3 bGFuX2FtcnIJIyBBTVJSIHRyYW5zbWl0IHJhdGUgY29udHJvbCBhbGdvcml0aG0KZGV2aWNlCQlh bgkJIyBBaXJvbmV0IDQ1MDAvNDgwMCA4MDIuMTEgd2lyZWxlc3MgTklDcy4KZGV2aWNlCQlhdGgJ CSMgQXRoZXJvcyBwY2kvY2FyZGJ1cyBOSUMncwpkZXZpY2UJCWF0aF9oYWwJCSMgcGNpL2NhcmRi dXMgY2hpcCBzdXBwb3J0Cm9wdGlvbnMgCUFIX1NVUFBPUlRfQVI1NDE2CSMgZW5hYmxlIEFSNTQx NiB0eC9yeCBkZXNjcmlwdG9ycwpkZXZpY2UJCWF0aF9yYXRlX3NhbXBsZQkjIFNhbXBsZVJhdGUg dHggcmF0ZSBjb250cm9sIGZvciBhdGgKZGV2aWNlCQlyYWwJCSMgUmFsaW5rIFRlY2hub2xvZ3kg UlQyNTAwIHdpcmVsZXNzIE5JQ3MuCmRldmljZQkJd2kJCSMgV2F2ZUxBTi9JbnRlcnNpbC9TeW1i b2wgODAyLjExIHdpcmVsZXNzIE5JQ3MuCiNkZXZpY2UJCXdsCQkjIE9sZGVyIG5vbiA4MDIuMTEg V2F2ZWxhbiB3aXJlbGVzcyBOSUMuCgojIFBzZXVkbyBkZXZpY2VzLgpkZXZpY2UJCWxvb3AJCSMg TmV0d29yayBsb29wYmFjawpkZXZpY2UJCXJhbmRvbQkJIyBFbnRyb3B5IGRldmljZQpkZXZpY2UJ CWV0aGVyCQkjIEV0aGVybmV0IHN1cHBvcnQKZGV2aWNlCQl0dW4JCSMgUGFja2V0IHR1bm5lbC4K ZGV2aWNlCQlwdHkJCSMgQlNELXN0eWxlIGNvbXBhdGliaWxpdHkgcHNldWRvIHR0eXMKZGV2aWNl CQltZAkJIyBNZW1vcnkgImRpc2tzIgpkZXZpY2UJCWdpZgkJIyBJUHY2IGFuZCBJUHY0IHR1bm5l bGluZwpkZXZpY2UJCWZhaXRoCQkjIElQdjYtdG8tSVB2NCByZWxheWluZyAodHJhbnNsYXRpb24p CmRldmljZQkJZmlybXdhcmUJIyBmaXJtd2FyZSBhc3Npc3QgbW9kdWxlCmRldmljZQkJc25wCgoj IFRoZSBgYnBmJyBkZXZpY2UgZW5hYmxlcyB0aGUgQmVya2VsZXkgUGFja2V0IEZpbHRlci4KIyBC ZSBhd2FyZSBvZiB0aGUgYWRtaW5pc3RyYXRpdmUgY29uc2VxdWVuY2VzIG9mIGVuYWJsaW5nIHRo aXMhCiMgTm90ZSB0aGF0ICdicGYnIGlzIHJlcXVpcmVkIGZvciBESENQLgpkZXZpY2UJCWJwZgkJ IyBCZXJrZWxleSBwYWNrZXQgZmlsdGVyCgojIFVTQiBzdXBwb3J0CmRldmljZQkJdWhjaQkJIyBV SENJIFBDSS0+VVNCIGludGVyZmFjZQpkZXZpY2UJCW9oY2kJCSMgT0hDSSBQQ0ktPlVTQiBpbnRl cmZhY2UKZGV2aWNlCQllaGNpCQkjIEVIQ0kgUENJLT5VU0IgaW50ZXJmYWNlIChVU0IgMi4wKQpk ZXZpY2UJCXVzYgkJIyBVU0IgQnVzIChyZXF1aXJlZCkKI2RldmljZQkJdWRicAkJIyBVU0IgRG91 YmxlIEJ1bGsgUGlwZSBkZXZpY2VzCmRldmljZQkJdWhpZAkJIyAiSHVtYW4gSW50ZXJmYWNlIERl dmljZXMiCmRldmljZQkJdWtiZAkJIyBLZXlib2FyZAojZGV2aWNlCQl1bHB0CQkjIFByaW50ZXIK ZGV2aWNlCQl1bWFzcwkJIyBEaXNrcy9NYXNzIHN0b3JhZ2UgLSBSZXF1aXJlcyBzY2J1cyBhbmQg ZGEKZGV2aWNlCQl1bXMJCSMgTW91c2UKZGV2aWNlCQlydW0JCSMgUmFsaW5rIFRlY2hub2xvZ3kg UlQyNTAxVVNCIHdpcmVsZXNzIE5JQ3MKZGV2aWNlCQl1cmFsCQkjIFJhbGluayBUZWNobm9sb2d5 IFJUMjUwMFVTQiB3aXJlbGVzcyBOSUNzCmRldmljZQkJdWF0aAkJIyBBdGhlcm9zIEFSNTUyMyB3 aXJlbGVzcyBOSUNzCmRldmljZQkJenlkCQkjIFp5REFTIHpiMTIxMS96YjEyMTFiIHdpcmVsZXNz IE5JQ3MKZGV2aWNlCQl1cmlvCQkjIERpYW1vbmQgUmlvIDUwMCBNUDMgcGxheWVyCiMgVVNCIFNl cmlhbCBkZXZpY2VzCmRldmljZQkJdTNnCQkjIFVTQi1iYXNlZCAzRyBtb2RlbXMgKE9wdGlvbiwg SHVhd2VpLCBTaWVycmEpCmRldmljZQkJdWFyawkJIyBUZWNobm9sb2dpZXMgQVJLMzExNiBiYXNl ZCBzZXJpYWwgYWRhcHRlcnMKZGV2aWNlCQl1YnNhCQkjIEJlbGtpbiBGNVUxMDMgYW5kIGNvbXBh dGlibGUgc2VyaWFsIGFkYXB0ZXJzCmRldmljZQkJdWZ0ZGkJCSMgRm9yIEZUREkgdXNiIHNlcmlh bCBhZGFwdGVycwpkZXZpY2UJCXVpcGFxCQkjIFNvbWUgV2luQ0UgYmFzZWQgZGV2aWNlcwpkZXZp Y2UJCXVwbGNvbQkJIyBQcm9saWZpYyBQTC0yMzAzIHNlcmlhbCBhZGFwdGVycwpkZXZpY2UJCXVz bGNvbQkJIyBTSSBMYWJzIENQMjEwMS9DUDIxMDIgc2VyaWFsIGFkYXB0ZXJzCmRldmljZQkJdXZp c29yCQkjIFZpc29yIGFuZCBQYWxtIGRldmljZXMKZGV2aWNlCQl1dnNjb20JCSMgVVNCIHNlcmlh bCBzdXBwb3J0IGZvciBEREkgcG9ja2V0J3MgUEhTCiMgVVNCIEV0aGVybmV0LCByZXF1aXJlcyBt aWlidXMKZGV2aWNlCQlhdWUJCSMgQURNdGVrIFVTQiBFdGhlcm5ldApkZXZpY2UJCWF4ZQkJIyBB U0lYIEVsZWN0cm9uaWNzIFVTQiBFdGhlcm5ldApkZXZpY2UJCWNkY2UJCSMgR2VuZXJpYyBVU0Ig b3ZlciBFdGhlcm5ldApkZXZpY2UJCWN1ZQkJIyBDQVRDIFVTQiBFdGhlcm5ldApkZXZpY2UJCWt1 ZQkJIyBLYXdhc2FraSBMU0kgVVNCIEV0aGVybmV0CmRldmljZQkJcnVlCQkjIFJlYWxUZWsgUlRM ODE1MCBVU0IgRXRoZXJuZXQKZGV2aWNlCQl1ZGF2CQkjIERhdmljb20gRE05NjAxRSBVU0IKCiMg RmlyZVdpcmUgc3VwcG9ydApkZXZpY2UJCWZpcmV3aXJlCSMgRmlyZVdpcmUgYnVzIGNvZGUKI2Rl dmljZQkJc2JwCQkjIFNDU0kgb3ZlciBGaXJlV2lyZSAoUmVxdWlyZXMgc2NidXMgYW5kIGRhKQpk ZXZpY2UJCWZ3ZQkJIyBFdGhlcm5ldCBvdmVyIEZpcmVXaXJlIChub24tc3RhbmRhcmQhKQpkZXZp Y2UJCWZ3aXAJCSMgSVAgb3ZlciBGaXJlV2lyZSAoUkZDIDI3MzQsMzE0NikKZGV2aWNlCQlkY29u cwkJIyBEdW1iIGNvbnNvbGUgZHJpdmVyCmRldmljZQkJZGNvbnNfY3JvbQkjIENvbmZpZ3VyYXRp b24gUk9NIGZvciBkY29ucwo= --0016e68fcd6c6dd7160487e6a6d2--