From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailout07.t-online.de (mailout07.t-online.de [194.25.134.83]) by sourceware.org (Postfix) with ESMTPS id 6C971385800F for ; Sat, 8 May 2021 20:03:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 6C971385800F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=t-online.de Authentication-Results: sourceware.org; spf=none smtp.mailfrom=Christian.Franke@t-online.de Received: from fwd18.aul.t-online.de (fwd18.aul.t-online.de [172.20.26.244]) by mailout07.t-online.de (Postfix) with SMTP id 040D6C225 for ; Sat, 8 May 2021 22:03:48 +0200 (CEST) Received: from [192.168.2.105] (XZSPS0ZeohOyLphxG7cpOV4rTvy6DJ8LxVzTctTiKYVIDfjhqoKHRg2kPUZH2kGQnS@[79.230.169.184]) by fwd18.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted) esmtp id 1lfTAv-052vei0; Sat, 8 May 2021 22:03:45 +0200 To: cygwin-apps@cygwin.com From: Christian Franke Subject: [PATCH setup] Add new option '--compact-os' Message-ID: <5d57a3f5-b595-2196-12ed-1c409d46be2a@t-online.de> Date: Sat, 8 May 2021 22:03:45 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 SeaMonkey/2.53.6 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------36DC3417B7C3C6EC9674C35F" X-ID: XZSPS0ZeohOyLphxG7cpOV4rTvy6DJ8LxVzTctTiKYVIDfjhqoKHRg2kPUZH2kGQnS X-TOI-EXPURGATEID: 150726::1620504225-00004685-620459D2/0/0 CLEAN NORMAL X-TOI-MSGID: ed5bb360-a315-42ea-875c-a100dd8a69ff X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin-apps@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin package maintainer discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 May 2021 20:03:51 -0000 This is a multi-part message in MIME format. --------------36DC3417B7C3C6EC9674C35F Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit This experimental patch allows to reduce the footprint of a Cygwin installation on Windows 10. The I/O-control itself is in a new file compactos.cc because WIN32_LEAN_AND_MEAN (win32.h) must not be used and some required definitions are still missing in the current headers. Test results with 64bit Cygwin (Disk space used without / with --compact-os): Base installation: 135MiB / 66,1 MiB (-51%) Installation with g++, Mingw, Perl, Python, Tex, ...:  2.19GiB / 854MiB (-62%) Base installation with NTFS compression: 78.7MiB (results in significant file fragmentation, Compact OS does not) -- Regards, Christian --------------36DC3417B7C3C6EC9674C35F Content-Type: text/plain; charset=UTF-8; name="0001-Add-new-option-compact-os.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-new-option-compact-os.patch" RnJvbSAwNWI5MmY2MTgzNzFlYTA1ZDM4MWFhY2Y4NDJmNzRmYjIwODNkMDI3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RpYW4gRnJhbmtlIDxjaHJpc3RpYW4uZnJh bmtlQHQtb25saW5lLmRlPgpEYXRlOiBTYXQsIDggTWF5IDIwMjEgMjE6MjU6MDcgKzAyMDAK U3ViamVjdDogW1BBVENIXSBBZGQgbmV3IG9wdGlvbiAnLS1jb21wYWN0LW9zJy4KCklmIHNw ZWNpZmllZCwgQ29tcGFjdCBPUyBMWlggY29tcHJlc3Npb24gaXMgYXBwbGllZCB0byBmaWxl cyBiZWxvdwovYmluLCAvc2JpbiBhbmQgL3Vzci4gIERMTCBmaWxlcyBhcmUgZXhjbHVkZWQg YmVjYXVzZSByZWJhc2Ugd2lsbApvcGVuIHRoZXNlIGZpbGVzIGFnYWluIGZvciB3cml0aW5n LgotLS0KIE1ha2VmaWxlLmFtICAgICAgICAgIHwgIDIgKysKIGNvbXBhY3Rvcy5jYyAgICAg ICAgIHwgNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGNvbXBhY3Rvcy5oICAgICAgICAgIHwgMjYgKysrKysrKysrKysrKysrKysrKwogaW9fc3Ry ZWFtX2N5Z2ZpbGUuY2MgfCA0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQog aW9fc3RyZWFtX2N5Z2ZpbGUuaCAgfCAgMiArKwogNSBmaWxlcyBjaGFuZ2VkLCAxMzYgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21wYWN0 b3MuY2MKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb21wYWN0b3MuaAoKZGlmZiAtLWdpdCBhL01h a2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KaW5kZXggZDEwYWQ2Yi4uNjNlOTZkYSAxMDA2NDQK LS0tIGEvTWFrZWZpbGUuYW0KKysrIGIvTWFrZWZpbGUuYW0KQEAgLTEwOCw2ICsxMDgsOCBA QCBpbmlsaW50X1NPVVJDRVMgPSBcCiAJYXJjaGl2ZV90YXJfZmlsZS5jYyBcCiAJY2hvb3Nl LmNjIFwKIAljaG9vc2UuaCBcCisJY29tcGFjdG9zLmNjIFwKKwljb21wYWN0b3MuaCBcCiAJ Y29tcHJlc3MuY2MgXAogCWNvbXByZXNzLmggXAogCWNvbXByZXNzX2J6LmNjIFwKZGlmZiAt LWdpdCBhL2NvbXBhY3Rvcy5jYyBiL2NvbXBhY3Rvcy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4yZjFkMWRmCi0tLSAvZGV2L251bGwKKysrIGIvY29tcGFjdG9z LmNjCkBAIC0wLDAgKzEsNjIgQEAKKy8vCisvLyBjb21wYWN0b3MuY2MKKy8vCisvLyBDb3B5 cmlnaHQgKEMpIDIwMjEgQ2hyaXN0aWFuIEZyYW5rZQorLy8KKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBNSVQKKy8vCisKKyNpbmNsdWRlICJjb21wYWN0b3MuaCIKKworI2lmbmRl ZiBGU0NUTF9TRVRfRVhURVJOQUxfQkFDS0lORworI2RlZmluZSBGU0NUTF9TRVRfRVhURVJO QUxfQkFDS0lORyBcCisgIENUTF9DT0RFKEZJTEVfREVWSUNFX0ZJTEVfU1lTVEVNLCAxOTUs IE1FVEhPRF9CVUZGRVJFRCwgRklMRV9TUEVDSUFMX0FDQ0VTUykKKyNlbmRpZgorCisjaWZu ZGVmIFdPRl9DVVJSRU5UX1ZFUlNJT04KKyNkZWZpbmUgV09GX0NVUlJFTlRfVkVSU0lPTiAx CisjZGVmaW5lIFdPRl9QUk9WSURFUl9GSUxFIDIKKwordHlwZWRlZiBzdHJ1Y3QgX1dPRl9F WFRFUk5BTF9JTkZPIHsKKyAgRFdPUkQgVmVyc2lvbjsKKyAgRFdPUkQgUHJvdmlkZXI7Cit9 IFdPRl9FWFRFUk5BTF9JTkZPOworCisjZW5kaWYKKworI2lmbmRlZiBGSUxFX1BST1ZJREVS X0NVUlJFTlRfVkVSU0lPTgorI2RlZmluZSBGSUxFX1BST1ZJREVSX0NVUlJFTlRfVkVSU0lP TiAxCisKK3R5cGVkZWYgc3RydWN0IF9GSUxFX1BST1ZJREVSX0VYVEVSTkFMX0lORk9fVjEg eworICBEV09SRCBWZXJzaW9uOworICBEV09SRCBBbGdvcml0aG07CisgIERXT1JEIEZsYWdz OworfSBGSUxFX1BST1ZJREVSX0VYVEVSTkFMX0lORk9fVjE7CisKKyNlbmRpZgorCisjaWZu ZGVmIEVSUk9SX0NPTVBSRVNTSU9OX05PVF9CRU5FRklDSUFMCisjZGVmaW5lIEVSUk9SX0NP TVBSRVNTSU9OX05PVF9CRU5FRklDSUFMIDM0NAorI2VuZGlmCisKK2ludCBDb21wYWN0T3ND b21wcmVzc0ZpbGUoSEFORExFIGgsIERXT1JEIGFsZ29yaXRobSkKK3sKKyAgc3RydWN0IHsK KyAgICBXT0ZfRVhURVJOQUxfSU5GTyBXb2Y7CisgICAgRklMRV9QUk9WSURFUl9FWFRFUk5B TF9JTkZPX1YxIEZpbGVQcm92aWRlcjsKKyAgfSB3ZnA7CisgIHdmcC5Xb2YuVmVyc2lvbiA9 IFdPRl9DVVJSRU5UX1ZFUlNJT047CisgIHdmcC5Xb2YuUHJvdmlkZXIgPSBXT0ZfUFJPVklE RVJfRklMRTsKKyAgd2ZwLkZpbGVQcm92aWRlci5WZXJzaW9uID0gRklMRV9QUk9WSURFUl9D VVJSRU5UX1ZFUlNJT047CisgIHdmcC5GaWxlUHJvdmlkZXIuQWxnb3JpdGhtID0gYWxnb3Jp dGhtOworICB3ZnAuRmlsZVByb3ZpZGVyLkZsYWdzID0gMDsKKworICBpZiAoIURldmljZUlv Q29udHJvbChoLCBGU0NUTF9TRVRfRVhURVJOQUxfQkFDS0lORywgJndmcCwgc2l6ZW9mKHdm cCksIDAsIDAsIDAsIDApKQorICAgIHsKKyAgICAgIGlmIChHZXRMYXN0RXJyb3IoKSAhPSBF UlJPUl9DT01QUkVTU0lPTl9OT1RfQkVORUZJQ0lBTCkKKyAgICAgICAgcmV0dXJuIC0xOwor ICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEv Y29tcGFjdG9zLmggYi9jb21wYWN0b3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5jMTQ3MGYxCi0tLSAvZGV2L251bGwKKysrIGIvY29tcGFjdG9zLmgKQEAgLTAs MCArMSwyNiBAQAorLy8KKy8vIGNvbXBhY3Rvcy5oCisvLworLy8gQ29weXJpZ2h0IChDKSAy MDIxIENocmlzdGlhbiBGcmFua2UKKy8vCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog TUlUCisvLworCisjaWZuZGVmIENPTVBBQ1RPU19ICisjZGVmaW5lIENPTVBBQ1RPU19ICisK KyNpZm5kZWYgX0lOQ19XSU5ET1dTCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2VuZGlmCisK KyNpZm5kZWYgRklMRV9QUk9WSURFUl9DT01QUkVTU0lPTl9YUFJFU1M0SworI2RlZmluZSBG SUxFX1BST1ZJREVSX0NPTVBSRVNTSU9OX1hQUkVTUzRLICAwCisjZGVmaW5lIEZJTEVfUFJP VklERVJfQ09NUFJFU1NJT05fTFpYICAgICAgIDEKKyNkZWZpbmUgRklMRV9QUk9WSURFUl9D T01QUkVTU0lPTl9YUFJFU1M4SyAgMgorI2RlZmluZSBGSUxFX1BST1ZJREVSX0NPTVBSRVNT SU9OX1hQUkVTUzE2SyAzCisjZW5kaWYKKworLy8gUmV0dXJuczogMT1jb21wcmVzc2VkLCAw PW5vdCBjb21wcmVzc2VkLCAtMT1lcnJvcgoraW50IENvbXBhY3RPc0NvbXByZXNzRmlsZShI QU5ETEUgaCwgRFdPUkQgYWxnb3JpdGhtKTsKKworI2VuZGlmIC8vIENPTVBBQ1RPU19ICmRp ZmYgLS1naXQgYS9pb19zdHJlYW1fY3lnZmlsZS5jYyBiL2lvX3N0cmVhbV9jeWdmaWxlLmNj CmluZGV4IDJkMDcxNmYuLjZiZTI5NDAgMTAwNjQ0Ci0tLSBhL2lvX3N0cmVhbV9jeWdmaWxl LmNjCisrKyBiL2lvX3N0cmVhbV9jeWdmaWxlLmNjCkBAIC0xOCw2ICsxOCw5IEBACiAjaW5j bHVkZSAiZmlsZW1hbmlwLmgiCiAjaW5jbHVkZSAibWtkaXIuaCIKICNpbmNsdWRlICJtb3Vu dC5oIgorI2luY2x1ZGUgImNvbXBhY3Rvcy5oIgorCisjaW5jbHVkZSAiZ2V0b3B0KysvQm9v bE9wdGlvbi5oIgogCiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4K QEAgLTI3LDYgKzMwLDcgQEAKICNpbmNsdWRlICJJT1N0cmVhbVByb3ZpZGVyLmgiCiAjaW5j bHVkZSAiTG9nU2luZ2xldG9uLmgiCiAKK3N0YXRpYyBCb29sT3B0aW9uIENvbXBhY3RPc09w dGlvbiAoZmFsc2UsICdcMCcsICJjb21wYWN0LW9zIiwgIkNvbXByZXNzIGluc3RhbGxlZCBm aWxlcyB3aXRoIENvbXBhY3QgT1MgTFpYIik7CiAKIC8qIGNvbXBsZXRlbHkgcHJpdmF0ZSBp b3N0cmVhbSByZWdpc3RyYXRpb24gY2xhc3MgKi8KIGNsYXNzIEN5Z0ZpbGVQcm92aWRlciA6 IHB1YmxpYyBJT1N0cmVhbVByb3ZpZGVyCkBAIC01OSw3ICs2Myw4IEBAIEN5Z0ZpbGVQcm92 aWRlciBDeWdGaWxlUHJvdmlkZXI6OnRoZUluc3RhbmNlID0gQ3lnRmlsZVByb3ZpZGVyKCk7 CiAKIAogc3RkOjpzdHJpbmcgaW9fc3RyZWFtX2N5Z2ZpbGU6OmN3ZCgiLyIpOwotICAKK2Jv b2wgaW9fc3RyZWFtX2N5Z2ZpbGU6OmNvbXBhY3Rfb3NfaXNfYXZhaWxhYmxlID0gKE9TTWFq b3JWZXJzaW9uICgpID49IDEwKTsKKwogLy8gTm9ybWFsaXNlIGEgdW5peCBzdHlsZSBwYXRo IHJlbGF0aXZlIHRvIAogLy8gY3dkLgogc3RkOjpzdHJpbmcKQEAgLTEyMCw3ICsxMjUsMjIg QEAgZ2V0X3Jvb3RfZGlyX25vdyAoKQogICByZWFkX21vdW50cyAoc3RkOjpzdHJpbmcgKCkp OwogfQogCi1pb19zdHJlYW1fY3lnZmlsZTo6aW9fc3RyZWFtX2N5Z2ZpbGUgKGNvbnN0IHN0 ZDo6c3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6OnN0cmluZyYgbW9kZSwgbW9kZV90IHBlcm1z KSA6IGZwKCksIGxhc3RlcnIgKDApLCBmbmFtZSgpLCB3bmFtZSAoTlVMTCkKK3N0YXRpYyBi b29sCitjb21wYWN0b3NfaXNfdXNlbGVzcyAoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUpCit7 CisgIGNvbnN0IGNoYXIgKiBjb25zdCBwID0gbmFtZS5jX3N0cigpOworICBpZiAoISghc3Ry bmNtcCAocCwgIi9iaW4vIiwgNSkgfHwgIXN0cm5jbXAgKHAsICIvc2Jpbi8iLCA2KSB8fCAh c3RybmNtcCAocCwgIi91c3IvIiwgNSkpKQorICAgIHJldHVybiB0cnVlOyAvKiBGaWxlIGlz IG5vdCBpbiBSL08gdHJlZS4gKi8KKyAgY29uc3Qgc2l6ZV90IGxlbiA9IG5hbWUuc2l6ZSgp OyAvKiA+PSA1ICovCisgIGlmICghc3RyY21wIChwICsgKGxlbiAtIDQpLCAiLmRsbCIpIHx8 ICFzdHJjbXAgKHAgKyAobGVuIC0gMyksICIuc28iKSkKKyAgICByZXR1cm4gdHJ1ZTsgLyog UmViYXNlIHdpbGwgb3BlbiBmaWxlIGZvciB3cml0aW5nIHdoaWNoIHVuY29tcHJlc3NlcyB0 aGUgZmlsZS4gKi8KKyAgaWYgKCFzdHJjbXAgKHAgKyAobGVuIC0gMyksICIuZ3oiKSB8fCAh c3RyY21wIChwICsgKGxlbiAtIDMpLCAiLnh6IikpCisgICAgcmV0dXJuIHRydWU7IC8qIEZp bGUgaXMgYWxyZWFkeSBjb21wcmVzc2VkLiAqLworICByZXR1cm4gZmFsc2U7Cit9CisKK2lv X3N0cmVhbV9jeWdmaWxlOjppb19zdHJlYW1fY3lnZmlsZSAoY29uc3Qgc3RkOjpzdHJpbmcm IG5hbWUsIGNvbnN0IHN0ZDo6c3RyaW5nJiBtb2RlLCBtb2RlX3QgcGVybXMpCis6IGZwKCks IGxhc3RlcnIgKDApLCBmbmFtZSgpLCB3bmFtZSAoTlVMTCksIGNvbXBhY3Rfb3NfYWxnb3Jp dGhtKC0xKQogewogICBlcnJubyA9IDA7CiAgIGlmICghbmFtZS5zaXplKCkpCkBAIC0xNTMs NiArMTczLDEwIEBAIGlvX3N0cmVhbV9jeWdmaWxlOjppb19zdHJlYW1fY3lnZmlsZSAoY29u c3Qgc3RkOjpzdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6c3RyaW5nCiAJTG9nIChMT0dfVElN RVNUQU1QKSA8PCAiaW9fc3RyZWFtX2N5Z2ZpbGU6IGZvcGVuKCIgPDwgbmFtZSA8PCAiKSBm YWlsZWQgIiA8PCBlcnJubyA8PCAiICIKIAkgIDw8IHN0cmVycm9yKGVycm5vKSA8PCBlbmRM b2c7CiAgICAgICB9CisKKyAgICAgIGlmIChtb2RlWzBdID09ICd3JyAmJiBjb21wYWN0X29z X2lzX2F2YWlsYWJsZSAmJiBDb21wYWN0T3NPcHRpb24KKwkgICYmICFjb21wYWN0b3NfaXNf dXNlbGVzcyAobmFtZSkpCisJY29tcGFjdF9vc19hbGdvcml0aG0gPSBGSUxFX1BST1ZJREVS X0NPTVBSRVNTSU9OX0xaWDsgLyogYmVzdCAqLwogICAgIH0KIH0KIApAQCAtMzY3LDYgKzM5 MSwyNCBAQCBpb19zdHJlYW1fY3lnZmlsZTo6c2V0X210aW1lICh0aW1lX3QgbXRpbWUpCiAJ CSAgIEZJTEVfQVRUUklCVVRFX05PUk1BTCB8IEZJTEVfRkxBR19CQUNLVVBfU0VNQU5USUNT LCAwKTsKICAgaWYgKGggPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpCiAgICAgcmV0dXJuIDE7 CisKKyAgaWYgKGNvbXBhY3Rfb3NfYWxnb3JpdGhtID49IDApCisgICAgeworICAgICAgLyog Q29tcGFjdCBPUyBtdXN0IGJlIGFwcGxpZWQgZHVyaW5nIGxhc3QgR0VORVJJQ19XUklURSBh Y2Nlc3MKKwkgYW5kIGJlZm9yZSBTZXRGaWxlVGltZSgpLiAqLworICAgICAgaW50IHJjID0g Q29tcGFjdE9zQ29tcHJlc3NGaWxlIChoLCBjb21wYWN0X29zX2FsZ29yaXRobSk7CisgICAg ICBpZiAocmMgPCAwKQorCXsKKwkgIERXT1JEIGVyciA9IEdldExhc3RFcnJvcigpOworCSAg TG9nIChMT0dfVElNRVNUQU1QKSA8PCAiQ29tcGFjdCBPUyBkaXNhYmxlZCBhZnRlciBlcnJv ciAiIDw8IGVycgorCQkJICAgICAgPDwgIiBvbiAiIDw8IGZuYW1lIDw8IGVuZExvZzsKKwkg IGNvbXBhY3Rfb3NfaXNfYXZhaWxhYmxlID0gZmFsc2U7CisJfQorICAgICAgZWxzZQorCUxv ZyAoTE9HX0JBQkJMRSkgPDwgIkNvbXBhY3QgT1MgYWxnb3JpdGhtICIgPDwgY29tcGFjdF9v c19hbGdvcml0aG0KKwkJCSA8PCAocmMgPT0gMCA/ICIgbm90ICIgOiAiICIpIDw8ICJhcHBs aWVkIHRvICIgPDwgZm5hbWUgPDwgZW5kTG9nOworICAgIH0KKwogICBTZXRGaWxlVGltZSAo aCwgMCwgMCwgJmZ0aW1lKTsKICAgQ2xvc2VIYW5kbGUgKGgpOwogICByZXR1cm4gMDsKZGlm ZiAtLWdpdCBhL2lvX3N0cmVhbV9jeWdmaWxlLmggYi9pb19zdHJlYW1fY3lnZmlsZS5oCmlu ZGV4IDFlY2UyNDIuLmI5Nzc5MDkgMTAwNjQ0Ci0tLSBhL2lvX3N0cmVhbV9jeWdmaWxlLmgK KysrIGIvaW9fc3RyZWFtX2N5Z2ZpbGUuaApAQCAtNjEsNyArNjEsOSBAQCBwcml2YXRlOgog ICBzdGQ6OnN0cmluZyBmbmFtZTsKICAgd2NoYXJfdCAqd25hbWU7CiAgIHdjaGFyX3QgKndf c3RyICgpOworICBpbnQgY29tcGFjdF9vc19hbGdvcml0aG07CiAgIHN0YXRpYyBzdGQ6OnN0 cmluZyBjd2Q7CisgIHN0YXRpYyBib29sIGNvbXBhY3Rfb3NfaXNfYXZhaWxhYmxlOwogfTsK IAogI2VuZGlmIC8qIFNFVFVQX0lPX1NUUkVBTV9DWUdGSUxFX0ggKi8KLS0gCjIuMzEuMQoK --------------36DC3417B7C3C6EC9674C35F--