From owner-freebsd-multimedia@FreeBSD.ORG Mon Mar 2 11:59:15 2009 Return-Path: Delivered-To: freebsd-multimedia@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0234E106566C for ; Mon, 2 Mar 2009 11:59:15 +0000 (UTC) (envelope-from tomek@slimaczek.pl) Received: from slimaczek.pl (slimaczek.pl [91.121.26.228]) by mx1.freebsd.org (Postfix) with ESMTP id 7F3DD8FC1D for ; Mon, 2 Mar 2009 11:59:14 +0000 (UTC) (envelope-from tomek@slimaczek.pl) Received: from TOMEK-STACJONAR (dynamic-78-8-131-28.ssp.dialog.net.pl [78.8.131.28]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by slimaczek.pl (Postfix) with ESMTPSA id C02A05EE60 for ; Mon, 2 Mar 2009 12:44:18 +0000 (UTC) Date: Mon, 2 Mar 2009 12:44:21 +0100 From: Tomek X-Mailer: The Bat! (v2.12.00) Business X-Priority: 3 (Normal) Message-ID: <972337066.20090302124421@slimaczek.pl> To: freebsd-multimedia@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------B343463472D2F9" Subject: x264 patch X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Tomek List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Mar 2009 11:59:15 -0000 ------------B343463472D2F9 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello I was trying to compile a new x264 package from source and found some difficulties: - there is no log2f() function in mathematical library - some asm code (SSSE3) doesn't want to compile -- GCC 4.2.1 shipped with FreeBSD doesn't understand such instructions like 'pmaddubsw' I've made a patch to solve these problems: - add a log2f() function - fast but less accurate (thanks to the Sun Microsystems) (added files: bsdlog.h, bsdlogf.c) - add --disable-asm-gcc-ssse3 to the configure script How to applay: $ git clone git://git.videolan.org/x264.git $ patch -p0 < x264.bsd.patch $ cd x264 $ ./configure --extra-cflags="-mmmx -msse -msse2 -msse3 -I/usr/local/include -fPIC" --extra-ldflags="-L/usr/local/lib" --enable-shared --enable-mp4-output --enable-pthread --disable-asm-gcc-ssse3 If your CPU does't have sse3 just simply remove -msse3 from --extra-cflags $ gmake # gmake install $ x264 --version x264 0.66.1115M 11863ac built on Mar 1 2009, gcc: 4.2.1 20070719 [FreeBSD] Tested on i386 and amd64 with FreeBSD 7.1. On big endian platforms must be changed ieee_double_shape_type union (declared in bsdlog.h) but I don't have such a platform to make tests. -- Tomasz Sowa ------------B343463472D2F9 Content-Type: application/octet-stream; name="x264.bsd.patch" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="x264.bsd.patch" ZGlmZiAtdXJOIHgyNjQvTWFrZWZpbGUgeDI2NC5uZXcvTWFrZWZpbGUKLS0tIHgyNjQvTWFr ZWZpbGUJMjAwOS0wMy0wMSAwOTowNToyMy4wMDAwMDAwMDAgKzAwMDAKKysrIHgyNjQubmV3 L01ha2VmaWxlCTIwMDktMDMtMDEgMDk6MDY6MTMuMDAwMDAwMDAwICswMDAwCkBAIC0xMCw3 ICsxMCw4IEBACiAgICAgICAgY29tbW9uL3F1YW50LmMgY29tbW9uL3ZsYy5jIFwKICAgICAg ICBlbmNvZGVyL2FuYWx5c2UuYyBlbmNvZGVyL21lLmMgZW5jb2Rlci9yYXRlY29udHJvbC5j IFwKICAgICAgICBlbmNvZGVyL3NldC5jIGVuY29kZXIvbWFjcm9ibG9jay5jIGVuY29kZXIv Y2FiYWMuYyBcCi0gICAgICAgZW5jb2Rlci9jYXZsYy5jIGVuY29kZXIvZW5jb2Rlci5jCisg ICAgICAgZW5jb2Rlci9jYXZsYy5jIGVuY29kZXIvZW5jb2Rlci5jIFwKKyAgICAgICBic2Rs b2dmLmMKIAogU1JDQ0xJID0geDI2NC5jIG1hdHJvc2thLmMgbXV4ZXJzLmMKIApkaWZmIC11 ck4geDI2NC9ic2Rsb2cuaCB4MjY0Lm5ldy9ic2Rsb2cuaAotLS0geDI2NC9ic2Rsb2cuaAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysgeDI2NC5uZXcvYnNkbG9n LmgJMjAwOS0wMy0wMSAwOTowNjoxMy4wMDAwMDAwMDAgKzAwMDAKQEAgLTAsMCArMSwxNDMg QEAKKy8qCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisgKiBDb3B5cmlnaHQgKEMpIDE5OTMgYnkgU3VuIE1pY3Jvc3lzdGVtcywg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIERldmVsb3BlZCBhdCBTdW5Tb2Z0 LCBhIFN1biBNaWNyb3N5c3RlbXMsIEluYy4gYnVzaW5lc3MuCisgKiBQZXJtaXNzaW9uIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzCisgKiBzb2Z0d2FyZSBp cyBmcmVlbHkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGlzIG5vdGljZSAKKyAqIGlzIHBy ZXNlcnZlZC4KKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKyAqLworCisjaWZuZGVmIGJzZGxvZ19oZWFkZXJmaWxlCisjZGVmaW5l IGJzZGxvZ19oZWFkZXJmaWxlCisKKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8c3lz L3R5cGVzLmg+CisKKworZmxvYXQgIGxvZzJmKGZsb2F0KTsKKworCisKKworI2lmIChfX0JZ VEVfT1JERVIgPT0gX19MSVRUTEVfRU5ESUFOKSAmJiAhZGVmaW5lZChfX2FybV9fKQorCit0 eXBlZGVmIHVuaW9uCit7Citkb3VibGUgdmFsdWU7CitzdHJ1Y3QKK3sKK3VfaW50MzJfdCBs c3c7Cit1X2ludDMyX3QgbXN3OworfSBwYXJ0czsKK30gaWVlZV9kb3VibGVfc2hhcGVfdHlw ZTsKKworI2VuZGlmIAorCisKKworCisjaWYgKF9fQllURV9PUkRFUiA9PSBfX0JJR19FTkRJ QU4pIHx8IGRlZmluZWQoX19hcm1fXykKKworLyogdGhpcyBzaG91bGQgYmUgb24gYSBCSUcg RU5ESUFOIHBsYXRmb3JtIGluc3RlYWQgb2YgdGhlIHByZXZpb3VzIGNvZGUgKi8KKy8qIEkg Y29tbWVudGVkIHRoaXMgYmVjYXVzZSBteSBjb21waWxlciBoYXZlIGEgbWVzcyB3aXRoIG1h Y3JvcyAqX0VORElBTiAqLworCisvKgordHlwZWRlZiB1bmlvbgoreworZG91YmxlIHZhbHVl Oworc3RydWN0Cit7Cit1X2ludDMyX3QgbXN3OwordV9pbnQzMl90IGxzdzsKK30gcGFydHM7 Cit9IGllZWVfZG91YmxlX3NoYXBlX3R5cGU7CisqLworCisjZW5kaWYKKworCisKKworCisj ZGVmaW5lIEVYVFJBQ1RfV09SRFMoaXgwLGl4MSxkKSBcCitkbyB7IFwKK2llZWVfZG91Ymxl X3NoYXBlX3R5cGUgZXdfdTsgXAorZXdfdS52YWx1ZSA9IChkKTsgXAorKGl4MCkgPSBld191 LnBhcnRzLm1zdzsgXAorKGl4MSkgPSBld191LnBhcnRzLmxzdzsgXAorfSB3aGlsZSAoMCkg CisvKiBHZXQgdGhlIG1vcmUgc2lnbmlmaWNhbnQgMzIgYml0IGludCBmcm9tIGEgZG91Ymxl LiAqLworCisjZGVmaW5lIEdFVF9ISUdIX1dPUkQoaSxkKSBcCitkbyB7IFwKK2llZWVfZG91 YmxlX3NoYXBlX3R5cGUgZ2hfdTsgXAorZ2hfdS52YWx1ZSA9IChkKTsgXAorKGkpID0gZ2hf dS5wYXJ0cy5tc3c7IFwKK30gd2hpbGUgKDApCisKKy8qIEdldCB0aGUgbGVzcyBzaWduaWZp Y2FudCAzMiBiaXQgaW50IGZyb20gYSBkb3VibGUuICovCisKKyNkZWZpbmUgR0VUX0xPV19X T1JEKGksZCkgXAorZG8geyBcCitpZWVlX2RvdWJsZV9zaGFwZV90eXBlIGdsX3U7IFwKK2ds X3UudmFsdWUgPSAoZCk7IFwKKyhpKSA9IGdsX3UucGFydHMubHN3OyBcCit9IHdoaWxlICgw KQorCisvKiBTZXQgYSBkb3VibGUgZnJvbSB0d28gMzIgYml0IGludHMuICovCisKKworLyog U2V0IHRoZSBtb3JlIHNpZ25pZmljYW50IDMyIGJpdHMgb2YgYSBkb3VibGUgZnJvbSBhbiBp bnQuICovCisKKyNkZWZpbmUgU0VUX0hJR0hfV09SRChkLHYpIFwKK2RvIHsgXAoraWVlZV9k b3VibGVfc2hhcGVfdHlwZSBzaF91OyBcCitzaF91LnZhbHVlID0gKGQpOyBcCitzaF91LnBh cnRzLm1zdyA9ICh2KTsgXAorKGQpID0gc2hfdS52YWx1ZTsgXAorfSB3aGlsZSAoMCkKKwor LyogU2V0IHRoZSBsZXNzIHNpZ25pZmljYW50IDMyIGJpdHMgb2YgYSBkb3VibGUgZnJvbSBh biBpbnQuICovCisKKyNkZWZpbmUgU0VUX0xPV19XT1JEKGQsdikgXAorZG8geyBcCitpZWVl X2RvdWJsZV9zaGFwZV90eXBlIHNsX3U7IFwKK3NsX3UudmFsdWUgPSAoZCk7IFwKK3NsX3Uu cGFydHMubHN3ID0gKHYpOyBcCisoZCkgPSBzbF91LnZhbHVlOyBcCit9IHdoaWxlICgwKQor CisKKworLyogQSB1bmlvbiB3aGljaCBwZXJtaXRzIHVzIHRvIGNvbnZlcnQgYmV0d2VlbiBh IGZsb2F0IGFuZCBhIDMyIGJpdAoraW50LiAqLworCit0eXBlZGVmIHVuaW9uCit7CitmbG9h dCB2YWx1ZTsKK3VfaW50MzJfdCB3b3JkOworfSBpZWVlX2Zsb2F0X3NoYXBlX3R5cGU7CisK Ky8qIEdldCBhIDMyIGJpdCBpbnQgZnJvbSBhIGZsb2F0LiAqLworCisjZGVmaW5lIEdFVF9G TE9BVF9XT1JEKGksZCkgXAorZG8geyBcCitpZWVlX2Zsb2F0X3NoYXBlX3R5cGUgZ2ZfdTsg XAorZ2ZfdS52YWx1ZSA9IChkKTsgXAorKGkpID0gZ2ZfdS53b3JkOyBcCit9IHdoaWxlICgw KQorCisvKiBTZXQgYSBmbG9hdCBmcm9tIGEgMzIgYml0IGludC4gKi8KKworI2RlZmluZSBT RVRfRkxPQVRfV09SRChkLGkpIFwKK2RvIHsgXAoraWVlZV9mbG9hdF9zaGFwZV90eXBlIHNm X3U7IFwKK3NmX3Uud29yZCA9IChpKTsgXAorKGQpID0gc2ZfdS52YWx1ZTsgXAorfSB3aGls ZSAoMCkgCisKKworCisjZW5kaWYKZGlmZiAtdXJOIHgyNjQvYnNkbG9nZi5jIHgyNjQubmV3 L2JzZGxvZ2YuYwotLS0geDI2NC9ic2Rsb2dmLmMJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKKysrIHgyNjQubmV3L2JzZGxvZ2YuYwkyMDA5LTAzLTAxIDA5OjA2OjEz LjAwMDAwMDAwMCArMDAwMApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29udmVyc2lvbiB0 byBmbG9hdCBieSBJYW4gTGFuY2UgVGF5bG9yLCBDeWdudXMgU3VwcG9ydCwgaWFuQHh4eHh4 eHh4eHh4CisgKi8KKworLyoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKyAqIENvcHlyaWdodCAoQykgMTk5MyBieSBTdW4gTWlj cm9zeXN0ZW1zLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogRGV2ZWxvcGVk IGF0IFN1blBybywgYSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIGJ1c2luZXNzLgorICogUGVy bWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcworICog c29mdHdhcmUgaXMgZnJlZWx5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhpcyBub3RpY2UK KyAqIGlzIHByZXNlcnZlZC4KKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKyAqLworCisjaW5jbHVkZSAiYnNkbG9nLmgiCisKKwor c3RhdGljIGNvbnN0IGZsb2F0CitsbjIgPSAwLjY5MzE0NzE4MDU1OTk0NTI4NjIyNjgsIAor dHdvMjUgPSAgICAzLjM1NTQ0MzIwMGUrMDcsICAgIC8qIDB4NGMwMDAwMDAgKi8KK0xnMSA9 IDYuNjY2NjY2ODY1M2UtMDEsICAgICAgICAvKiAzRjJBQUFBQiAqLworTGcyID0gNC4wMDAw MDAwNTk2ZS0wMSwgICAgICAgIC8qIDNFQ0NDQ0NEICovCitMZzMgPSAyLjg1NzE0Mjk4NDll LTAxLCAvKiAzRTkyNDkyNSAqLworTGc0ID0gMi4yMjIyMTk4NTQ2ZS0wMSwgLyogM0U2MzhF MjkgKi8KK0xnNSA9IDEuODE4MzU3MjU5MGUtMDEsIC8qIDNFM0EzMzI1ICovCitMZzYgPSAx LjUzMTM4Mzg0MjJlLTAxLCAvKiAzRTFDRDA0RiAqLworTGc3ID0gMS40Nzk4MTk4NjQwZS0w MTsgLyogM0UxNzg4OTcgKi8KKworc3RhdGljIGNvbnN0IGZsb2F0IHplcm8gICA9ICAwLjA7 CisKKworCitmbG9hdCBsb2cyZihmbG9hdCB4KQoreworICAgICAgIGZsb2F0IGhmc3EsZixz LHosUix3LHQxLHQyLGRrOworICAgICAgIGludDMyX3QgayxpeCxpLGo7CisKKyAgICAgICBH RVRfRkxPQVRfV09SRChpeCx4KTsKKworICAgICAgIGs9MDsKKyAgICAgICBpZiAoaXggPCAw eDAwODAwMDAwKSB7ICAgICAgICAgICAgICAgICAgLyogeCA8IDIqKi0xMjYgICovCisgICAg ICAgICAgIGlmICgoaXgmMHg3ZmZmZmZmZik9PTApCisgICAgICAgICAgICAgICByZXR1cm4g LXR3bzI1L3plcm87ICAgICAgICAgICAgIC8qIGxvZygrLTApPS1pbmYgKi8KKyAgICAgICAg ICAgaWYgKGl4PDApIHJldHVybiAoeC14KS96ZXJvOyAgICAgICAgLyogbG9nKC0jKSA9IE5h TiAqLworICAgICAgICAgICBrIC09IDI1OyB4ICo9IHR3bzI1OyAvKiBzdWJub3JtYWwgbnVt YmVyLCBzY2FsZSB1cCB4ICovCisgICAgICAgICAgIEdFVF9GTE9BVF9XT1JEKGl4LHgpOwor ICAgICAgIH0KKyAgICAgICBpZiAoaXggPj0gMHg3ZjgwMDAwMCkgcmV0dXJuIHgreDsKKyAg ICAgICBrICs9IChpeD4+MjMpLTEyNzsKKyAgICAgICBpeCAmPSAweDAwN2ZmZmZmOworICAg ICAgIGkgPSAoaXgrKDB4OTVmNjQ8PDMpKSYweDgwMDAwMDsKKyAgICAgICBTRVRfRkxPQVRf V09SRCh4LGl4fChpXjB4M2Y4MDAwMDApKTsgICAgLyogbm9ybWFsaXplIHggb3IgeC8yICov CisgICAgICAgayArPSAoaT4+MjMpOworICAgICAgIGRrID0gKGZsb2F0KWs7CisgICAgICAg ZiA9IHgtKGZsb2F0KTEuMDsKKyAgICAgICBpZigoMHgwMDdmZmZmZiYoMTUraXgpKTwxNikg eyAgIC8qIHxmfCA8IDIqKi0yMCAqLworICAgICAgICAgICBpZiAoZj09emVybykgCisgICAg ICAgICAgICAgICAgICAgcmV0dXJuIChkayk7CisgICAgICAgICAgIFIgPSBmKmYqKChmbG9h dCkwLjUtKGZsb2F0KTAuMzMzMzMzMzMzMzMzMzMzMzMqZik7CisgICAgICAgICAgIHJldHVy biAoZGstKFItZikvbG4yKTsKKyAgICAgICB9CisgICAgICAgcyA9IGYvKChmbG9hdCkyLjAr Zik7CisgICAgICAgeiA9IHMqczsKKyAgICAgICBpID0gaXgtKDB4NjE0N2E8PDMpOworICAg ICAgIHcgPSB6Kno7CisgICAgICAgaiA9ICgweDZiODUxPDwzKS1peDsKKyAgICAgICB0MT0g dyooTGcyK3cqKExnNCt3KkxnNikpOworICAgICAgIHQyPSB6KihMZzErdyooTGczK3cqKExn NSt3KkxnNykpKTsKKyAgICAgICBpIHw9IGo7CisgICAgICAgUiA9IHQyK3QxOworICAgICAg IGlmKGk+MCkgeworICAgICAgICAgICBoZnNxPShmbG9hdCkwLjUqZipmOworICAgICAgICAg ICByZXR1cm4gKGRrLShoZnNxLXMqKGhmc3ErUiktZikvbG4yKTsKKyAgICAgICB9IGVsc2UK KyAgICAgICAgICAgICAgIHJldHVybiAoZGstKChzKihmLVIpKS1mKS9sbjIpOworfQpkaWZm IC11ck4geDI2NC9jb21tb24veDg2L3ByZWRpY3QtYy5jIHgyNjQubmV3L2NvbW1vbi94ODYv cHJlZGljdC1jLmMKLS0tIHgyNjQvY29tbW9uL3g4Ni9wcmVkaWN0LWMuYwkyMDA5LTAzLTAx IDA5OjA1OjI0LjAwMDAwMDAwMCArMDAwMAorKysgeDI2NC5uZXcvY29tbW9uL3g4Ni9wcmVk aWN0LWMuYwkyMDA5LTAzLTAxIDA5OjUzOjQ3LjAwMDAwMDAwMCArMDAwMApAQCAtMTExLDYg KzExMSw3IEBACiBQUkVESUNUXzE2eDE2X1AoIHNzZTIgICApCiAKICNpZmRlZiBfX0dOVUNf XworI2lmbmRlZiBESVNBQkxFX0FTTV9HQ0NfU1NTRTMKIHN0YXRpYyB2b2lkIHByZWRpY3Rf MTZ4MTZfcF9zc3NlMyggdWludDhfdCAqc3JjICkKIHsKICAgICBpbnQgYSwgYiwgYywgaTAw OwpAQCAtMTQ2LDYgKzE0Nyw3IEBACiAgICAgcHJlZGljdF8xNngxNl9wX2NvcmVfc3NlMigg c3JjLCBpMDAsIGIsIGMgKTsKIH0KICNlbmRpZgorI2VuZGlmCiAKICNkZWZpbmUgUFJFRElD VF84eDhfUChuYW1lKVwKIHN0YXRpYyB2b2lkIHByZWRpY3RfOHg4Y19wXyMjbmFtZSggdWlu dDhfdCAqc3JjIClcCkBAIC0xNzEsNiArMTczLDcgQEAKIFBSRURJQ1RfOHg4X1AoIHNzZTIg ICApCiAKICNpZmRlZiBfX0dOVUNfXworI2lmbmRlZiBESVNBQkxFX0FTTV9HQ0NfU1NTRTMK IHN0YXRpYyB2b2lkIHByZWRpY3RfOHg4Y19wX3Nzc2UzKCB1aW50OF90ICpzcmMgKQogewog ICAgIGludCBhLCBiLCBjLCBpMDA7CkBAIC0xOTksNiArMjAyLDcgQEAKICAgICBwcmVkaWN0 Xzh4OGNfcF9jb3JlX3NzZTIoIHNyYywgaTAwLCBiLCBjICk7CiB9CiAjZW5kaWYKKyNlbmRp ZgogCiAjZGVmaW5lIFBSRURJQ1RfMTZ4MTZfREMobmFtZSlcCiBzdGF0aWMgdm9pZCBwcmVk aWN0XzE2eDE2X2RjXyMjbmFtZSggdWludDhfdCAqc3JjIClcCkBAIC0zOTUsOCArMzk5LDEw IEBACiAgICAgICAgIHJldHVybjsKICAgICBwZltJX1BSRURfMTZ4MTZfSF0gICAgICA9IHBy ZWRpY3RfMTZ4MTZfaF9zc3NlMzsKICNpZmRlZiBfX0dOVUNfXworI2lmbmRlZiBESVNBQkxF X0FTTV9HQ0NfU1NTRTMgCiAgICAgcGZbSV9QUkVEXzE2eDE2X1BdICAgICAgPSBwcmVkaWN0 XzE2eDE2X3Bfc3NzZTM7CiAjZW5kaWYKKyNlbmRpZgogfQogCiB2b2lkIHgyNjRfcHJlZGlj dF84eDhjX2luaXRfbW14KCBpbnQgY3B1LCB4MjY0X3ByZWRpY3RfdCBwZls3XSApCkBAIC00 MjIsOCArNDI4LDEwIEBACiAgICAgICAgIHJldHVybjsKICAgICBwZltJX1BSRURfQ0hST01B X0hdICAgICAgID0gcHJlZGljdF84eDhjX2hfc3NzZTM7CiAjaWZkZWYgX19HTlVDX18KKyNp Zm5kZWYgRElTQUJMRV9BU01fR0NDX1NTU0UzCiAgICAgcGZbSV9QUkVEX0NIUk9NQV9QXSAg ICAgICA9IHByZWRpY3RfOHg4Y19wX3Nzc2UzOwogI2VuZGlmCisjZW5kaWYKIH0KIAogdm9p ZCB4MjY0X3ByZWRpY3RfOHg4X2luaXRfbW14KCBpbnQgY3B1LCB4MjY0X3ByZWRpY3Q4eDhf dCBwZlsxMl0sIHgyNjRfcHJlZGljdF84eDhfZmlsdGVyX3QgKnByZWRpY3RfOHg4X2ZpbHRl ciApCmRpZmYgLXVyTiB4MjY0L2NvbmZpZ3VyZSB4MjY0Lm5ldy9jb25maWd1cmUKLS0tIHgy NjQvY29uZmlndXJlCTIwMDktMDMtMDEgMDk6MDU6MjQuMDAwMDAwMDAwICswMDAwCisrKyB4 MjY0Lm5ldy9jb25maWd1cmUJMjAwOS0wMy0wMSAwOTo0OTozMS4wMDAwMDAwMDAgKzAwMDAK QEAgLTEsNCArMSw0IEBACi0jIS9iaW4vYmFzaAorIyEvdXNyL2xvY2FsL2Jpbi9iYXNoCiAK IGlmIHRlc3QgeCIkMSIgPSB4Ii1oIiAtbyB4IiQxIiA9IHgiLS1oZWxwIiA7IHRoZW4KIApA QCAtMTAsNiArMTAsNyBAQAogZWNobyAiICAtLWRpc2FibGUtYXZpcy1pbnB1dCAgICAgZGlz YWJsZXMgYXZpc3ludGggaW5wdXQgKHdpbjMyIG9ubHkpIgogZWNobyAiICAtLWRpc2FibGUt bXA0LW91dHB1dCAgICAgZGlzYWJsZXMgbXA0IG91dHB1dCAodXNpbmcgZ3BhYykiCiBlY2hv ICIgIC0tZGlzYWJsZS1wdGhyZWFkICAgICAgICBkaXNhYmxlcyBtdWx0aXRocmVhZGVkIGVu Y29kaW5nIgorZWNobyAiICAtLWRpc2FibGUtYXNtLWdjYy1zc3NlMyAgZGlzYWJsZXMgU1NT RTMgKFNTRTMgZXh0ZW5zaW9uKSBpbiBHQ0Mgb24geDg2ICh1c2VkIG9uIG9sZGVyIEdDQyB0 aGFuIDQuMykiCiBlY2hvICIgIC0tZGlzYWJsZS1hc20gICAgICAgICAgICBkaXNhYmxlcyBh c3NlbWJseSBvcHRpbWl6YXRpb25zIG9uIHg4NiIKIGVjaG8gIiAgLS1lbmFibGUtZGVidWcg ICAgICAgICAgIGFkZHMgLWcsIGRvZXNuJ3Qgc3RyaXAiCiBlY2hvICIgIC0tZW5hYmxlLWdw cm9mICAgICAgICAgICBhZGRzIC1wZywgZG9lc24ndCBzdHJpcCIKQEAgLTkyLDYgKzkzLDkg QEAKICAgICAgICAgLS1lbmFibGUtYXNtKQogICAgICAgICAgICAgYXNtPSJ5ZXMiCiAgICAg ICAgICAgICA7OworICAgICAgICAtLWRpc2FibGUtYXNtLWdjYy1zc3NlMykKKyAgICAgICAg ICAgIENGTEFHUz0iJENGTEFHUyAtRERJU0FCTEVfQVNNX0dDQ19TU1NFMyIKKyAgICAgICAg ICAgIDs7CiAgICAgICAgIC0tZGlzYWJsZS1hc20pCiAgICAgICAgICAgICBhc209Im5vIgog ICAgICAgICAgICAgOzsKZGlmZiAtdXJOIHgyNjQvZW5jb2Rlci9hbmFseXNlLmMgeDI2NC5u ZXcvZW5jb2Rlci9hbmFseXNlLmMKLS0tIHgyNjQvZW5jb2Rlci9hbmFseXNlLmMJMjAwOS0w My0wMSAwOTowNToyNC4wMDAwMDAwMDAgKzAwMDAKKysrIHgyNjQubmV3L2VuY29kZXIvYW5h bHlzZS5jCTIwMDktMDMtMDEgMDk6NDI6MjcuMDAwMDAwMDAwICswMDAwCkBAIC0zNiw2ICsz Niw3IEBACiAjaW5jbHVkZSAicmF0ZWNvbnRyb2wuaCIKICNpbmNsdWRlICJhbmFseXNlLmgi CiAjaW5jbHVkZSAicmRvLmMiCisjaW5jbHVkZSAiLi4vYnNkbG9nLmgiCiAKIHR5cGVkZWYg c3RydWN0CiB7CmRpZmYgLXVyTiB4MjY0L3ZlcnNpb24uc2ggeDI2NC5uZXcvdmVyc2lvbi5z aAotLS0geDI2NC92ZXJzaW9uLnNoCTIwMDktMDMtMDEgMDk6MDU6MjQuMDAwMDAwMDAwICsw MDAwCisrKyB4MjY0Lm5ldy92ZXJzaW9uLnNoCTIwMDktMDMtMDEgMDk6MjE6NTEuMDAwMDAw MDAwICswMDAwCkBAIC0xLDQgKzEsNCBAQAotIyEvYmluL2Jhc2gKKyMhL3Vzci9sb2NhbC9i aW4vYmFzaAogZ2l0IHJldi1saXN0IEhFQUQgfCBzb3J0ID4gY29uZmlnLmdpdC1oYXNoCiBM T0NBTFZFUj1gd2MgLWwgY29uZmlnLmdpdC1oYXNoIHwgYXdrICd7cHJpbnQgJDF9J2AKIGlm IFsgJExPQ0FMVkVSIFw+IDEgXSA7IHRoZW4K ------------B343463472D2F9--