From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS31976 209.132.180.0/23 X-Spam-Status: No, score=-4.0 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 992FB20248 for ; Sat, 2 Mar 2019 22:05:24 +0000 (UTC) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:to:from:reply-to:subject:message-id :mime-version:content-type; q=dns; s=default; b=iukv83UiUgvtzhc7 eV2bdV0l1+mZEAu3qo4Z2P1hmMgsnkWXVlQLc1XsJNNwh8oOcJEZuKvNJ8L335N4 LMUDhkw2BKwt4INS/VY4lhISAqyvTKulSIaYQHS0jJpdZRJtcCyr0umOiF0QQetm z8Ua/ZaqhHexBzffyljOlcZoOhE= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:to:from:reply-to:subject:message-id :mime-version:content-type; s=default; bh=2D/WF2WZ/HL32yS/7JR/wM 63OSc=; b=IuY9E+4IhC8i98AXkGi6i5SClCKYuCLFfPQ+0s5VTb/d7GlRkwI+9e t+3zlwvIbgVagI47mshA+ZzNe08yVxOIhmj1GZlE0tTZ2kvXPNKCIOZlCoAQhpmF z65OprdVUkiGY7x1DEejvGzrtN3yHDmRwWbe1wZeVxBHgG2nCpkBw= Received: (qmail 107989 invoked by alias); 2 Mar 2019 22:05:18 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 107914 invoked by uid 89); 2 Mar 2019 22:05:17 -0000 Authentication-Results: sourceware.org; auth=none X-HELO: mail-40136.protonmail.ch Date: Sat, 02 Mar 2019 22:05:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=default; t=1551564312; bh=jDMSPHchFUMkv4BMRvpJ4m3VCtxFwsuJVMLdWbQTtM4=; h=Date:To:From:Reply-To:Subject:Feedback-ID:From; b=JOrTgXx953zvXci8QN4O93OD9l8jkQvohrwxl0oTppJYz5SLigSL4wY9j6eO4qWew 2QaGHI/101ORJVoJlKbvrLNcq/EVOiFn+jj2AZApzk8PC9IZiADLaqLZ1u4fcrF07U ksDeokCGZ83Y4N2Czw9foCa9j6lHhtiqgLrTbSa8= To: "libc-alpha@sourceware.org" , "tnggil@protonmail.com" From: GT Reply-To: GT Subject: [PATCH] PPC64: First in the series implementing libmvec on POWER8 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_e24e007a539c32ad565cfdd9c56286f3" This is a multi-part message in MIME format. --b1_e24e007a539c32ad565cfdd9c56286f3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Differences from previous patch submission: 1. Configure verifies that the compiler implements VSX builtins. If so vector math library is built by default. 2. A runtime check prevents vector math tests running on systems lacking VSX hardware. 3. File vec_finite_alias.c is now empty. Its existence ensures that libmvec_nonshared.a is created. Otherwise, linking during testing of a newly-installed glibc fails. --b1_e24e007a539c32ad565cfdd9c56286f3 Content-Type: application/octet-stream; name="0001-PPC64-First-in-the-series-of-patches-implementing-PO.patch.20190302" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-PPC64-First-in-the-series-of-patches-implementing-PO.patch.20190302 RnJvbSA0ZmE2MmZhNTYyMzI4NzllZWEzZjRhNWQxMDBhN2E5MWE3ZWQxZDk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJ0IFRlbmp5IDxiZXJ0LnRlbmp5QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyIE1hciAyMDE5IDIxOjQyOjU4ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gUFBDNjQ6 IEZpcnN0IGluIHRoZSBzZXJpZXMgb2YgcGF0Y2hlcyBpbXBsZW1lbnRpbmcgUE9XRVI4CiB2ZWN0 b3IgbWF0aC4KCltCWiAjMjQyMDVdCgpJbXBsZW1lbnRzIGRvdWJsZS1wcmVjaXNpb24gY29zaW5l IHVzaW5nIFZTWCB2ZWN0b3IgY2FwYWJpbGl0eS4gQWxnb3JpdGhtIGZvcgpjb3NpbmUgaXMgZnJv bSB4ODZfNjQgW2NvbW1pdCAjMjE5MzMxMTI4OF0gYWRhcHRlZCB0byBQUEM2NC4KCk5hbWUtbWFu Z2xpbmcgZXhhY3RseSBkdXBsaWNhdGVzIFNTRSBJU0Egb2YgdGhlIHg4Nl82NCBBQkkuIFRoZSBk ZXRhaWxzIGFyZSBhdAo8aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9nbGliYy93aWtpLwpsaWJtdmVj P2FjdGlvbj1BdHRhY2hGaWxlJmRvPXZpZXcmdGFyZ2V0PVZlY3RvckFCSS50eHQ+CgpUaGUgcGF0 Y2ggaGFzIGJlZW4gdGVzdGVkIG9uIFBQQzY0L1BPV0VSOCBMaXR0bGUgRW5kaWFuIGFuZCBCaWcg RW5kaWFuLiBJdCBpcwp0ZXN0ZWQgdXNpbmcgdGhlIGZyYW1ld29yayBjcmVhdGVkIGZvciBsaWJt dmVjIG9uIHg4Nl82NCB3aGljaCBydW5zIHRlc3RzIG9uCmlzc3VpbmcgJ21ha2UgY2hlY2snLiBU ZXN0cyBvZiB0aGUgbmV3IHZlY3RvciBjb3NpbmUgZnVuY3Rpb24gYWxsIHBhc3MuCgpDb25maWd1 cmUgdmVyaWZpZXMgdGhhdCB0aGUgY29tcGlsZXIgaW1wbGVtZW50cyBWU1ggYnVpbHRpbnMuIElm IHNvCnZlY3RvciBtYXRoIGxpYnJhcnkgaXMgYnVpbHQgYnkgZGVmYXVsdC4KCkEgcnVudGltZSBj aGVjayBwcmV2ZW50cyB2ZWN0b3IgdGVzdHMgcnVubmluZyBvbiBzeXN0ZW1zIGxhY2tpbmcgVlNY IGhhcmR3YXJlLgoKRmlsZSB2ZWNfZmluaXRlX2FsaWFzLmMgaXMgZW1wdHkuIEl0cyBleGlzdGVu Y2UgZW5zdXJlcyB0aGF0IGxpYm12ZWNfbm9uc2hhcmVkLmEKaXMgY3JlYXRlZC4gT3RoZXJ3aXNl LCBsaW5raW5nIGR1cmluZyB0ZXN0aW5nIG9mIGEgbmV3bHktaW5zdGFsbGVkIGdsaWJjIGZhaWxz LgoKR2xpYmMgYnVpbHQgd2l0aCB0aGlzIHBhdGNoIHdhcyBpbnN0YWxsZWQgdXNpbmcgdGhlIHBy b2NlZHVyZSBvdXRsaW5lZCBhdAo8aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9nbGliYy93aWtpL1Rl c3RpbmcvQnVpbGRzPi4gQ29tcGlsaW5nIGFnYWluc3QgdGhlIG5ldwpsaWJyYXJ5IGNyZWF0ZWQg YSB0ZXN0IGV4ZWN1dGFibGUgd2hpY2ggY29tcHV0ZXMgY29zaW5lcyB1c2luZyB0aGUgdmVjdG9y CnZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uLiBUaGUgcmVzdWx0cyBhcmUgYXQgbW9zdCAyLXVscHMg YXdheSBmcm9tIHRoZSBzY2FsYXIKY29zaW5lLiBUaGF0IGlzIGV4cGVjdGVkIGFuZCBpbmRpY2F0 ZWQgaW4gdGhlIGNvbW1lbnRzIGRlc2NyaWJpbmcgdGhlCmFsZ29yaXRobSAtIGFzIG9idGFpbmVk IGZyb20geDg2XzY0IGNvbW1pdCAjMjE5MzMxMTI4OC4KLS0tCiBDaGFuZ2VMb2cgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMSArKysrKwogTkVXUyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrCiBzeXNkZXBzL3Bvd2VycGMvYml0 cy9tYXRoLXZlY3Rvci5oICAgICAgICAgICAgfCA0MSArKysrKysrKysKIHN5c2RlcHMvcG93ZXJw Yy9mcHUvbGlibS10ZXN0LXVscHMgICAgICAgICAgICB8ICAzICsKIHN5c2RlcHMvcG93ZXJwYy9w b3dlcnBjNjQvZnB1L01ha2VmaWxlICAgICAgICB8ICA3ICsrCiBzeXNkZXBzL3Bvd2VycGMvcG93 ZXJwYzY0L2ZwdS9WZXJzaW9ucyAgICAgICAgfCAgNSArKwogc3lzZGVwcy9wb3dlcnBjL3Bvd2Vy cGM2NC9mcHUvY29uZmlndXJlICAgICAgIHwgNTEgKysrKysrKysrKysKIHN5c2RlcHMvcG93ZXJw Yy9wb3dlcnBjNjQvZnB1L2NvbmZpZ3VyZS5hYyAgICB8IDMxICsrKysrKysKIC4uLi9wb3dlcnBj L3Bvd2VycGM2NC9mcHUvbWF0aC10ZXN0cy1hcmNoLmggICB8IDM0ICsrKysrKysKIC4uLi9wb3dl cnBjL3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL01ha2VmaWxlICB8IDE3ICsrKysKIC4uLi9tdWx0 aWFyY2gvdGVzdC1kb3VibGUtdmxlbjItd3JhcHBlcnMuYyAgICB8IDI0ICsrKysrCiAuLi4vcG93 ZXJwYzY0L2ZwdS9tdWx0aWFyY2gvdmVjX2RfY29zMl92c3guYyAgfCA4OCArKysrKysrKysrKysr KysrKysrCiAuLi4vcG93ZXJwYzY0L2ZwdS9tdWx0aWFyY2gvdmVjX2RfdHJpZ19kYXRhLmggfCA2 MCArKysrKysrKysrKysrCiAuLi4vcG93ZXJwYy9wb3dlcnBjNjQvZnB1L3ZlY19maW5pdGVfYWxp YXMuYyAgfCAxNyArKysrCiAuLi4vbGludXgvcG93ZXJwYy9wb3dlcnBjNjQvbGlibXZlYy5hYmls aXN0ICAgfCAgMSArCiAxNSBmaWxlcyBjaGFuZ2VkLCA0MTMgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHN5c2RlcHMvcG93ZXJwYy9iaXRzL21hdGgtdmVjdG9yLmgKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9NYWtlZmlsZQogY3JlYXRl IG1vZGUgMTAwNjQ0IHN5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L1ZlcnNpb25zCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvY29uZmlndXJlCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvY29uZmlndXJl LmFjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbWF0 aC10ZXN0cy1hcmNoLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Bvd2VycGMvcG93ZXJw YzY0L2ZwdS9tdWx0aWFyY2gvdGVzdC1kb3VibGUtdmxlbjItd3JhcHBlcnMuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHN5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC92ZWNfZF9j b3MyX3ZzeC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9m cHUvbXVsdGlhcmNoL3ZlY19kX3RyaWdfZGF0YS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVw cy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvdmVjX2Zpbml0ZV9hbGlhcy5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9wb3dlcnBjNjQvbGlibXZlYy5h YmlsaXN0CgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDgwOTYxNzVj YzkuLjJiOTg4NGNlNWMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAg LTEsMyArMSwyNCBAQAorMjAxOS0wMy0wMiAgICA8YmVydC50ZW5qeUBnbWFpbC5jb20+CisKKwlb QlogIzI0MjA1XQorCSogc3lzZGVwcy9wb3dlcnBjL2JpdHMvbWF0aC12ZWN0b3IuaDogTmV3IGZp bGUuCisJKiBzeXNkZXBzL3Bvd2VycGMvZnB1L2xpYm0tdGVzdC11bHBzIChjb3NfdmxlbjIpOiBS ZWdlbmVyYXRlZC4KKwkqIHN5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L01ha2VmaWxlOiBO ZXcgZmlsZS4KKwkqIHN5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L1ZlcnNpb25zOiBMaWtl d2lzZS4KKwkqIHN5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L2NvbmZpZ3VyZTogR2VuZXJh dGVkLgorCSogc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvY29uZmlndXJlLmFjOiBOZXcg ZmlsZS4KKwkqIHN5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L21hdGgtdGVzdHMtYXJjaC5o OiBOZXcgZmlsZS4KKwkqIHN5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC9N YWtlZmlsZSAobGlibXZlYy1zeXNkZXBfcm91dGluZXMpCisJKENGTEFHUy12ZWNfZF9jb3MyX3Zz eC5jLCBsaWJtdmVjLXRlc3RzLCBkb3VibGUtdmxlbjItZnVuY3MpCisJKGRvdWJsZS12bGVuMi1h cmNoLWV4dC1jZmxhZ3MpOiBBZGRlZCBidWlsZCBvZiBWU1ggdmVjdG9yIGNvcyBmdW5jdGlvbgor CWFuZCBpdHMgdGVzdHMuCisJKiBzeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9tdWx0aWFy Y2gvdGVzdC1kb3VibGUtdmxlbjItd3JhcHBlcnMuYzogTmV3IGZpbGUuCisJKiBzeXNkZXBzL3Bv d2VycGMvcG93ZXJwYzY0L2ZwdS9tdWx0aWFyY2gvdmVjX2RfY29zMl92c3guYzogTGlrZXdpc2Uu CisJKiBzeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9tdWx0aWFyY2gvdmVjX2RfdHJpZ19k YXRhLmg6IExpa2V3aXNlLgorCSogc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvdmVjX2Zp bml0ZV9hbGlhcy5jOiBMaWtld2lzZS4KKwkqIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bvd2Vy cGMvcG93ZXJwYzY0L2xpYm12ZWMuYWJpbGlzdDogTGlrZXdpc2UuCisKKwogMjAxOS0wMi0yNiAg Sm9zZXBoIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CiAKIAkqIHN5c2RlcHMvYXJt L3N5c2RlcC5oICgjaWYgY29uZGl0aW9uKTogQnJlYWsgbGluZXMgYmVmb3JlIHJhdGhlcgpkaWZm IC0tZ2l0IGEvTkVXUyBiL05FV1MKaW5kZXggMGEzYjZjN2E1YS4uMmYwZTJmNTFjMiAxMDA2NDQK LS0tIGEvTkVXUworKysgYi9ORVdTCkBAIC01LDYgKzUsMTkgQEAgU2VlIHRoZSBlbmQgZm9yIGNv cHlpbmcgY29uZGl0aW9ucy4KIFBsZWFzZSBzZW5kIEdOVSBDIGxpYnJhcnkgYnVnIHJlcG9ydHMg dmlhIDxodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhLz4KIHVzaW5nIGBnbGliYycgaW4g dGhlICJwcm9kdWN0IiBmaWVsZC4KIAwKKworKiBTdGFydCBvZiBpbXBsZW1lbnRpbmcgdmVjdG9y IG1hdGggbGlicmFyeSBsaWJtdmVjIG9uIFBQQzY0L1BPV0VSOC4KKyAgVGhlIGRvdWJsZS1wcmVj aXNpb24gY29zaW5lIG5vdyBoYXMgYSB2ZWN0b3IgdmVyc2lvbi4KKyAgR0NDIHN1cHBvcnQgZm9y IGF1dG8tdmVjdG9yaXphdGlvbiBvZiBmdW5jdGlvbnMgb24gUFBDNjQgaXMgbm90IHlldAorICBh dmFpbGFibGUuIFVudGlsIHRoYXQgaXMgZG9uZSwgdGhlIG5ldyB2ZWN0b3IgbWF0aCBmdW5jdGlv bnMgYXJlCisgIGluYWNjZXNzaWJsZSB0byBhcHBsaWNhdGlvbnMuCisgIExpYnJhcnkgbGlibXZl YyBpcyBidWlsdCBieSBkZWZhdWx0IGZvciBQUEM2NC4gRGlzYWJsZSBpdHMgY3JlYXRpb24gYnkK KyAgcGFzc2luZyBmbGFnIC0tZGlzYWJsZS1tYXRodmVjIHRvIGNvbmZpZ3VyZS4KKyAgVGhlIGxp YnJhcnkgQUJJIHNwZWNpZmljYXRpb24gaXMgeDg2XzY0IFZlY3RvciBGdW5jdGlvbiBBQkkuCisg IE1vcmUgaW5mb3JtYXRpb24gb24gbGlibXZlYyBpbmNsdWRpbmcgYSBsaW5rIHRvIHRoZSBBQkkg ZG9jdW1lbnQgaXMgYXQ6CisgIDxodHRwczovL3NvdXJjZXdhcmUub3JnL2dsaWJjL3dpa2kvbGli bXZlYz4KKworDAogVmVyc2lvbiAyLjMwCiAKIE1ham9yIG5ldyBmZWF0dXJlczoKZGlmZiAtLWdp dCBhL3N5c2RlcHMvcG93ZXJwYy9iaXRzL21hdGgtdmVjdG9yLmggYi9zeXNkZXBzL3Bvd2VycGMv Yml0cy9tYXRoLXZlY3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu Ljc4ZDlkYjY0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Bvd2VycGMvYml0cy9tYXRo LXZlY3Rvci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qIFBsYXRmb3JtLXNwZWNpZmljIFNJTUQgZGVj bGFyYXRpb25zIG9mIG1hdGggZnVuY3Rpb25zLgorICAgQ29weXJpZ2h0IChDKSAyMDE5IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdO VSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIu MSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGlj ZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2lmbmRlZiBfTUFUSF9ICisjIGVycm9y ICJOZXZlciBpbmNsdWRlIDxiaXRzL21hdGgtdmVjdG9yLmg+IGRpcmVjdGx5O1wKKyBpbmNsdWRl IDxtYXRoLmg+IGluc3RlYWQuIgorI2VuZGlmCisKKy8qIEdldCBkZWZhdWx0IGVtcHR5IGRlZmlu aXRpb25zIGZvciBzaW1kIGRlY2xhcmF0aW9ucy4gICovCisjaW5jbHVkZSA8Yml0cy9saWJtLXNp bWQtZGVjbC1zdHVicy5oPgorCisjaWYgZGVmaW5lZCBfX1BQQzY0X18gJiYgZGVmaW5lZCBfX0ZB U1RfTUFUSF9fCisjIGlmIGRlZmluZWQgX09QRU5NUCAmJiBfT1BFTk1QID49IDIwMTMwNworLyog T3Blbk1QIGNhc2UuICAqLworIyAgZGVmaW5lIF9fREVDTF9TSU1EX1BQQzY0IF9QcmFnbWEgKCJv bXAgZGVjbGFyZSBzaW1kIG5vdGluYnJhbmNoIikKKyMgZWxpZiBfX0dOVUNfUFJFUkVRICg2LDAp CisvKiBXL28gT3Blbk1QIHVzZSBHQ0MgNi4qIF9fYXR0cmlidXRlX18gKChfX3NpbWRfXykpLiAg Ki8KKyMgIGRlZmluZSBfX0RFQ0xfU0lNRF9QUEM2NCBfX2F0dHJpYnV0ZV9fICgoX19zaW1kX18g KCJub3RpbmJyYW5jaCIpKSkKKyMgZW5kaWYKKworIyBpZmRlZiBfX0RFQ0xfU0lNRF9QUEM2NAor IyAgdW5kZWYgX19ERUNMX1NJTURfY29zCisjICBkZWZpbmUgX19ERUNMX1NJTURfY29zIF9fREVD TF9TSU1EX1BQQzY0CisKKyMgZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9wb3dl cnBjL2ZwdS9saWJtLXRlc3QtdWxwcyBiL3N5c2RlcHMvcG93ZXJwYy9mcHUvbGlibS10ZXN0LXVs cHMKaW5kZXggMWVlYzI3YzFkYy4uZDM5MmIxMzVhNyAxMDA2NDQKLS0tIGEvc3lzZGVwcy9wb3dl cnBjL2ZwdS9saWJtLXRlc3QtdWxwcworKysgYi9zeXNkZXBzL3Bvd2VycGMvZnB1L2xpYm0tdGVz dC11bHBzCkBAIC0xMzExLDYgKzEzMTEsOSBAQCBpZmxvYXQxMjg6IDIKIGlsZG91YmxlOiA1CiBs ZG91YmxlOiA1CiAKK0Z1bmN0aW9uOiAiY29zX3ZsZW4yIjoKK2RvdWJsZTogMgorCiBGdW5jdGlv bjogImNvc2giOgogZG91YmxlOiAxCiBmbG9hdDogMQpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9wb3dl cnBjL3Bvd2VycGM2NC9mcHUvTWFrZWZpbGUgYi9zeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2Zw dS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yMWRjNjdm ZjczCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvTWFr ZWZpbGUKQEAgLTAsMCArMSw3IEBACitpZmVxICgkKHN1YmRpciksbWF0aHZlYykKK2xpYm12ZWMt c3VwcG9ydCArPSB2ZWNfZmluaXRlX2FsaWFzCisKK0NGTEFHUy12ZWNfZmluaXRlX2FsaWFzLmMg Kz0gLW12c3gKKworbGlibXZlYy1zdGF0aWMtb25seS1yb3V0aW5lcyA9IHZlY19maW5pdGVfYWxp YXMKK2VuZGlmCmRpZmYgLS1naXQgYS9zeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9WZXJz aW9ucyBiL3N5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L1ZlcnNpb25zCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjlhM2UxMjExY2MKLS0tIC9kZXYvbnVsbAorKysg Yi9zeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9WZXJzaW9ucwpAQCAtMCwwICsxLDUgQEAK K2xpYm12ZWMgeworICBHTElCQ18yLjMwIHsKKyAgICBfWkdWYk4ydl9jb3M7CisgIH0KK30KZGlm ZiAtLWdpdCBhL3N5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L2NvbmZpZ3VyZSBiL3N5c2Rl cHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L2NvbmZpZ3VyZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi42MTc0NjdiMjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9w b3dlcnBjL3Bvd2VycGM2NC9mcHUvY29uZmlndXJlCkBAIC0wLDAgKzEsNTEgQEAKKyMgVGhpcyBm aWxlIGlzIGdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBBdXRvY29uZi4gIERPIE5PVCBF RElUIQorICMgTG9jYWwgY29uZmlndXJlIGZyYWdtZW50IGZvciBzeXNkZXBzL3Bvd2VycGMvcG93 ZXJwYzY0L2ZwdS8uCisKKworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyB3aGV0aGVyICRDQyBoYXMgVlNYIGJ1aWx0aW4gZnVuY3Rpb25zIiA+JjUKKyRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJENDIGhhcyBWU1ggYnVpbHRpbiBmdW5jdGlvbnMu Li4gIiA+JjY7IH0KK2lmICR7bGliY19jdl9jY19oYXNfdnN4Kzp9IGZhbHNlOyB0aGVuIDoKKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisgICAgI2lu Y2x1ZGUgPGFsdGl2ZWMuaD4KKworICAgICNpZm5kZWYgX19WU1hfXworICAgICMgZXJyb3IgImNv bXBpbGVyIGRvZXNuJ3Qgc3VwcG9ydCBWU1ggb3BlcmF0aW9ucyIKKyAgICAjZW5kaWYKKworICAg IHZlY3RvciBkb3VibGUgZm9vYmFyICh2ZWN0b3IgZG91YmxlIHgpCisgICAgeworICAgICAgdmVj dG9yIGRvdWJsZSB5OworICAgICAgeVswXSA9IHhbMV07CisgICAgICB5WzFdID0geFswXTsKKyAg ICAgIHJldHVybiB5OworICAgIH0KK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7 Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAg bGliY19jdl9jY19oYXNfdnN4PXllcworZWxzZQorICBsaWJjX2N2X2NjX2hhc192c3g9bm8KK2Zp CitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh Y19leHQKKworZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkbGliY19jdl9jY19oYXNfdnN4IiA+JjUKKyRhc19lY2hvICIkbGliY19jdl9jY19oYXNf dnN4IiA+JjY7IH0KKworaWYgdGVzdCAiJGVuYWJsZV9tYXRodmVjIiA9ICJ5ZXMiIC1hICIkbGli Y19jdl9jY19oYXNfdnN4IiA9ICJubyI7IHRoZW4KKyAgYXNfZm5fZXJyb3IgJD8gIm1hdGh2ZWMg bmVlZHMgR0NDIHZlcnNpb24gNC41IG9yIGxhdGVyLiBEaXNhYmxlIG1hdGh2ZWMgdG8gYnVpbGQg Z2xpYmMuIiAiJExJTkVOTyIgNQorZmkKKworaWYgdGVzdCAiJGVuYWJsZV9tYXRodmVjIiAhPSAi bm8iIC1hICIkbGliY19jdl9jY19oYXNfdnN4IiA9ICJ5ZXMiOyB0aGVuCisgIGJ1aWxkX21hdGh2 ZWM9eWVzCitmaQpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvY29u ZmlndXJlLmFjIGIvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvY29uZmlndXJlLmFjCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQ1OGJlY2FlNTMKLS0tIC9kZXYv bnVsbAorKysgYi9zeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9jb25maWd1cmUuYWMKQEAg LTAsMCArMSwzMSBAQAorR0xJQkNfUFJPVklERVMgZG5sIFNlZSBhY2xvY2FsLm00IGluIHRoZSB0 b3AgbGV2ZWwgc291cmNlIGRpcmVjdG9yeS4KKyMgTG9jYWwgY29uZmlndXJlIGZyYWdtZW50IGZv ciBzeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS8uCisKK0FDX0NBQ0hFX0NIRUNLKHdoZXRo ZXIgJENDIGhhcyBWU1ggYnVpbHRpbiBmdW5jdGlvbnMsCisgICAgICAgICAgICAgICBsaWJjX2N2 X2NjX2hhc192c3gsIFtkbmwKK0FDX0NPTVBJTEVfSUZFTFNFKAorICBbQUNfTEFOR19QUk9HUkFN KFsKKyAgICAjaW5jbHVkZSA8YWx0aXZlYy5oPgorCisgICAgI2lmbmRlZiBfX1ZTWF9fCisgICAg IyBlcnJvciAiY29tcGlsZXIgZG9lc24ndCBzdXBwb3J0IFZTWCBvcGVyYXRpb25zIgorICAgICNl bmRpZgorCisgICAgdmVjdG9yIGRvdWJsZSBmb29iYXIgKHZlY3RvciBkb3VibGUgeCkKKyAgICB7 CisgICAgICB2ZWN0b3IgZG91YmxlIHk7CisgICAgICBbeVswXSA9IHhbMV07XQorICAgICAgW3lb MV0gPSB4WzBdO10KKyAgICAgIHJldHVybiB5OworICAgIH1dKV0sCisgIFtsaWJjX2N2X2NjX2hh c192c3g9eWVzXSwKKyAgW2xpYmNfY3ZfY2NfaGFzX3ZzeD1ub10pCitdKQorCitpZiB0ZXN0ICIk ZW5hYmxlX21hdGh2ZWMiID0gInllcyIgLWEgIiRsaWJjX2N2X2NjX2hhc192c3giID0gIm5vIjsg dGhlbgorICBBQ19NU0dfRVJST1IoW21hdGh2ZWMgbmVlZHMgR0NDIHZlcnNpb24gNC41IG9yIGxh dGVyLiBEaXNhYmxlIG1hdGh2ZWMgdG8gYnVpbGQgZ2xpYmMuXSkKK2ZpCisKK2lmIHRlc3QgIiRl bmFibGVfbWF0aHZlYyIgIT0gIm5vIiAtYSAiJGxpYmNfY3ZfY2NfaGFzX3ZzeCIgPSAieWVzIjsg dGhlbgorICBidWlsZF9tYXRodmVjPXllcworZmkKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcG93ZXJw Yy9wb3dlcnBjNjQvZnB1L21hdGgtdGVzdHMtYXJjaC5oIGIvc3lzZGVwcy9wb3dlcnBjL3Bvd2Vy cGM2NC9mcHUvbWF0aC10ZXN0cy1hcmNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uNzRmYWMyOThkMgotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcG93ZXJwYy9w b3dlcnBjNjQvZnB1L21hdGgtdGVzdHMtYXJjaC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qIFJ1bnRp bWUgYXJjaGl0ZWN0dXJlIGNoZWNrIGZvciBtYXRoIHRlc3RzLiBQUEM2NCB2ZXJzaW9uLgorICAg Q29weXJpZ2h0IChDKSAyMDE0LTIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisg ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExp YnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LworCisjaWYgZGVmaW5lZCBSRVFVSVJFX1ZTWAorCisjIGluY2x1ZGUgImluaXQtYXJjaC5oIgor CisjIGRlZmluZSBJTklUX0FSQ0hfRVhUCisjIGRlZmluZSBDSEVDS19BUkNIX0VYVCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgIGRvICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICBJTklUX0FSQ0goKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICBpZiAoIShod2NhcCAmIFBQQ19GRUFUVVJFX0hBU19WU1ggKSkgcmV0dXJuOyAg ICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgIHdoaWxlICgwKQorCisjZWxzZQorIyBpbmNsdWRlIDxz eXNkZXBzL2dlbmVyaWMvbWF0aC10ZXN0cy1hcmNoLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5 c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC9NYWtlZmlsZSBiL3N5c2RlcHMv cG93ZXJwYy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC9NYWtlZmlsZQppbmRleCAzOWI1NTc2MDRj Li40NGMxYzA0YzEzIDEwMDY0NAotLS0gYS9zeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9t dWx0aWFyY2gvTWFrZWZpbGUKKysrIGIvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVs dGlhcmNoL01ha2VmaWxlCkBAIC00MiwzICs0MiwyMCBAQCBDRkxBR1MtZV9oeXBvdGYtcG93ZXI3 LmMgPSAtbWNwdT1wb3dlcjcKIENGTEFHUy1zX21vZGYtcHBjNjQuYyArPSAtZnNpZ25hbGluZy1u YW5zCiBDRkxBR1Mtc19tb2RmZi1wcGM2NC5jICs9IC1mc2lnbmFsaW5nLW5hbnMKIGVuZGlmCisK K2lmZXEgKCQoc3ViZGlyKSxtYXRodmVjKQorbGlibXZlYy1zeXNkZXBfcm91dGluZXMgKz0gdmVj X2RfY29zMl92c3gKK0NGTEFHUy12ZWNfZF9jb3MyX3ZzeC5jICs9IC1tdnN4CitlbmRpZgorCisj IFZhcmlhYmxlcyBmb3IgbGlibXZlYyB0ZXN0cy4KK2lmZXEgKCQoc3ViZGlyKSxtYXRoKQoraWZl cSAoJChidWlsZC1tYXRodmVjKSx5ZXMpCitsaWJtdmVjLXRlc3RzICs9IGRvdWJsZS12bGVuMgor Citkb3VibGUtdmxlbjItZnVuY3MgPSBjb3MKKworZG91YmxlLXZsZW4yLWFyY2gtZXh0LWNmbGFn cyA9IC1tdnN4IC1EUkVRVUlSRV9WU1gKKworZW5kaWYKK2VuZGlmCmRpZmYgLS1naXQgYS9zeXNk ZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9tdWx0aWFyY2gvdGVzdC1kb3VibGUtdmxlbjItd3Jh cHBlcnMuYyBiL3N5c2RlcHMvcG93ZXJwYy9wb3dlcnBjNjQvZnB1L211bHRpYXJjaC90ZXN0LWRv dWJsZS12bGVuMi13cmFwcGVycy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLjE3ZTJjYzA3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Bvd2VycGMvcG93ZXJw YzY0L2ZwdS9tdWx0aWFyY2gvdGVzdC1kb3VibGUtdmxlbjItd3JhcHBlcnMuYwpAQCAtMCwwICsx LDI0IEBACisvKiBXcmFwcGVyIHBhcnQgb2YgdGVzdHMgZm9yIFZTWCBJU0EgdmVyc2lvbnMgb2Yg dmVjdG9yIG1hdGggZnVuY3Rpb25zLgorICAgQ29weXJpZ2h0IChDKSAyMDE5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBh bG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgInRlc3QtZG91YmxlLXZsZW4yLmgi CisjaW5jbHVkZSA8YWx0aXZlYy5oPgorCisjZGVmaW5lIFZFQ19UWVBFIHZlY3RvciBkb3VibGUK KworVkVDVE9SX1dSQVBQRVIgKFdSQVBQRVJfTkFNRSAoY29zKSwgX1pHVmJOMnZfY29zKQpkaWZm IC0tZ2l0IGEvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL3ZlY19kX2Nv czJfdnN4LmMgYi9zeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9tdWx0aWFyY2gvdmVjX2Rf Y29zMl92c3guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lZDhmZTMz MGMxCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVs dGlhcmNoL3ZlY19kX2NvczJfdnN4LmMKQEAgLTAsMCArMSw4OCBAQAorLyogRnVuY3Rpb24gY29z IHZlY3Rvcml6ZWQgd2l0aCBWU1guCisgICBDb3B5cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGli cmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRo ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBU aGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFs b25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgInZl Y19kX3RyaWdfZGF0YS5oIgorCit2ZWN0b3IgZG91YmxlCitfWkdWYk4ydl9jb3MgKHZlY3RvciBk b3VibGUgeCkKK3sKKworICAvKgorICAgQVJHVU1FTlQgUkFOR0UgUkVEVUNUSU9OOgorICAgQWRk IFBpLzIgdG8gYXJndW1lbnQ6IFgnID0gWCtQaS8yLiAgKi8KKyAgdmVjdG9yIGRvdWJsZSB4X3By aW1lID0gKHZlY3RvciBkb3VibGUpIGRfaGFsZl9waSArIHg7CisKKyAgLyogR2V0IGFic29sdXRl IGFyZ3VtZW50IHZhbHVlOiBYJyA9IHxYJ3wuICAqLworICB2ZWN0b3IgZG91YmxlIGFic194X3By aW1lID0gdmVjX2FicyAoeF9wcmltZSk7CisKKyAgLyogWSA9IFgnKkludlBpICsgUlMgOiByaWdo dCBzaGlmdGVyIGFkZC4gICovCisgIHZlY3RvciBkb3VibGUgeSA9ICh4X3ByaW1lICogZF9pbnZf cGkpICsgZF9yc2hpZnRlcjsKKworICAvKiBDaGVjayBmb3IgbGFyZ2UgYXJndW1lbnRzIHBhdGgu ICAqLworICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgbGFyZ2VfaW4gPSB2ZWNfY21wZ3QgKGFic194 X3ByaW1lLCBkX3JhbmdldmFsKTsKKworICAvKiBOID0gWSAtIFJTIDogcmlnaHQgc2hpZnRlciBz dWIuICAqLworICB2ZWN0b3IgZG91YmxlIG4gPSB5IC0gZF9yc2hpZnRlcjsKKworICAvKiBTaWdu UmVzID0gWTw8NjMgOiBzaGlmdCBMU0IgdG8gTVNCIHBsYWNlIGZvciByZXN1bHQgc2lnbi4gICov CisgIHZlY3RvciBkb3VibGUgc2lnbl9yZXMgPSAodmVjdG9yIGRvdWJsZSkgdmVjX3NsICgodmVj dG9yIGxvbmcgbG9uZykgeSwKKwkJCQkJCSAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKQor CQkJCQkJICAgdmVjX3NwbGF0cyAoNjMpKTsKKworICAvKiBOID0gTiAtIDAuNS4gICovCisgIG4g PSBuIC0gZF9vbmVfaGFsZjsKKworICAvKiBSID0gWCAtIE4qUGkxLiAgKi8KKyAgdmVjdG9yIGRv dWJsZSByID0geCAtIChuICogZF9waTFfZm1hKTsKKworICAvKiBSID0gUiAtIE4qUGkyLiAgKi8K KyAgciA9IHIgLSAobiAqIGRfcGkyX2ZtYSk7CisKKyAgLyogUiA9IFIgLSBOKlBpMy4gICovCisg IHIgPSByIC0gKG4gKiBkX3BpM19mbWEpOworCisgIC8qIFIyID0gUipSLiAgKi8KKyAgdmVjdG9y IGRvdWJsZSByMiA9IHIgKiByOworCisgIC8qIFBvbHkgPSBDMytSMiooQzQrUjIqKEM1K1IyKihD NitSMipDNykpKS4gICovCisgIHZlY3RvciBkb3VibGUgcG9seSA9IHIyICogZF9jb2VmZjcgKyBk X2NvZWZmNjsKKyAgcG9seSA9IHBvbHkgKiByMiArIGRfY29lZmY1OworICBwb2x5ID0gcG9seSAq IHIyICsgZF9jb2VmZjQ7CisgIHBvbHkgPSBwb2x5ICogcjIgKyBkX2NvZWZmMzsKKworICAvKiBQ b2x5ID0gUitSKihSMiooQzErUjIqKEMyK1IyKlBvbHkpKSkuICAqLworICBwb2x5ID0gcG9seSAq IHIyICsgZF9jb2VmZjI7CisgIHBvbHkgPSBwb2x5ICogcjIgKyBkX2NvZWZmMTsKKyAgcG9seSA9 IHBvbHkgKiByMiAqIHIgKyByOworCisgIC8qCisgICAgIFJFQ09OU1RSVUNUSU9OOgorICAgICBG aW5hbCBzaWduIHNldHRpbmc6IFJlcyA9IFBvbHleU2lnblJlcy4gICovCisgIHZlY3RvciBkb3Vi bGUgb3V0CisgICAgPSAodmVjdG9yIGRvdWJsZSkgKCh2ZWN0b3IgbG9uZyBsb25nKSBwb2x5IF4g KHZlY3RvciBsb25nIGxvbmcpIHNpZ25fcmVzKTsKKworICBpZiAobGFyZ2VfaW5bMF0gIT0gMCkK KyAgICBvdXRbMF0gPSBjb3MgKHhbMF0pOworCisgIGlmIChsYXJnZV9pblsxXSAhPSAwKQorICAg IG91dFsxXSA9IGNvcyAoeFsxXSk7CisKKyAgcmV0dXJuIG91dDsKKworfQpkaWZmIC0tZ2l0IGEv c3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL3ZlY19kX3RyaWdfZGF0YS5o IGIvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvbXVsdGlhcmNoL3ZlY19kX3RyaWdfZGF0 YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjRiMjY3ODkyOGYKLS0t IC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2ZwdS9tdWx0aWFyY2gv dmVjX2RfdHJpZ19kYXRhLmgKQEAgLTAsMCArMSw2MCBAQAorLyogQ29uc3RhbnRzIHVzZWQgaW4g cG9seW5vbWFpbCBhcHByb3hpbWF0aW9ucyBmb3IgdmVjdG9yaXplZCBzaW4sIGNvcywKKyAgIGFu ZCBzaW5jb3MgZnVuY3Rpb25zLgorICAgQ29weXJpZ2h0IChDKSAyMDE5IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJh cnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9u ZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2lmbmRlZiBEX1RSSUdfREFUQV9ICisjZGVmaW5lIERf VFJJR19EQVRBX0gKKworI2luY2x1ZGUgPGFsdGl2ZWMuaD4KKworLyogUEkvMi4gICovCitjb25z dCB2ZWN0b3IgZG91YmxlIGRfaGFsZl9waSAgPSB7MHgxLjkyMWZiNTQ0NDJkMThwKzAsIDB4MS45 MjFmYjU0NDQyZDE4cCswfTsKKworLyogSW52ZXJzZSBQSS4gICovCitjb25zdCB2ZWN0b3IgZG91 YmxlIGRfaW52X3BpICAgPSB7MHgxLjQ1ZjMwNmRjOWM4ODNwLTIsIDB4MS40NWYzMDZkYzljODgz cC0yfTsKKworLyogUmlnaHQtc2hpZnRlciBjb25zdGFudC4gICovCitjb25zdCB2ZWN0b3IgZG91 YmxlIGRfcnNoaWZ0ZXIgPSB7MHgxLjhwKzUyLCAweDEuOHArNTJ9OworCisvKiBXb3JraW5nIHJh bmdlIHRocmVzaG9sZC4gICovCitjb25zdCB2ZWN0b3IgZG91YmxlIGRfcmFuZ2V2YWwgPSB7MHgx cCsyMywgMHgxcCsyM307CisKKy8qIE9uZS1oYWxmIC4gKi8KK2NvbnN0IHZlY3RvciBkb3VibGUg ZF9vbmVfaGFsZiA9IHsweDFwLTEsIDB4MXAtMX07CisKKy8qIFJhbmdlIHJlZHVjdGlvbiBQSS1i YXNlZCBjb25zdGFudHMgaWYgRk1BIGF2YWlsYWJsZToKKyAgIFBJIGhpZ2ggcGFydCAoRk1BIGF2 YWlsYWJsZSkuICAqLworY29uc3QgdmVjdG9yIGRvdWJsZSBkX3BpMV9mbWEgPSB7MHgxLjkyMWZi NTQ0NDJkMThwKzEsIDB4MS45MjFmYjU0NDQyZDE4cCsxfTsKKworLyogUEkgbWlkIHBhcnQgIChG TUEgYXZhaWxhYmxlKS4gICovCitjb25zdCB2ZWN0b3IgZG91YmxlIGRfcGkyX2ZtYSA9IHsweDEu MWE2MjYzMzE0NWMwNnAtNTMsIDB4MS4xYTYyNjMzMTQ1YzA2cC01M307CisKKy8qIFBJIGxvdyBw YXJ0ICAoRk1BIGF2YWlsYWJsZSkuICAqLworY29uc3QgdmVjdG9yIGRvdWJsZSBkX3BpM19mbWEK Kz0gezB4MS5jMWNkMTI5MDI0ZTA5cC0xMDYsMHgxLmMxY2QxMjkwMjRlMDlwLTEwNn07CisKKy8q IFBvbHlub21pYWwgY29lZmZpY2llbnRzIChyZWxhdGl2ZSBlcnJvciAyXigtNTIuMTE1KSkuICAq LworY29uc3QgdmVjdG9yIGRvdWJsZSBkX2NvZWZmNyA9IHstMHgxLjlmMGQ2MDgxMWFhYzhwLTQx LC0weDEuOWYwZDYwODExYWFjOHAtNDF9OworY29uc3QgdmVjdG9yIGRvdWJsZSBkX2NvZWZmNiA9 IHsweDEuNjBlNjg1N2EyZjIycC0zMywweDEuNjBlNjg1N2EyZjIycC0zM307Citjb25zdCB2ZWN0 b3IgZG91YmxlIGRfY29lZmY1ID0gey0weDEuYWU2MzU0NjAwMjIzMXAtMjYsLTB4MS5hZTYzNTQ2 MDAyMjMxcC0yNn07Citjb25zdCB2ZWN0b3IgZG91YmxlIGRfY29lZmY0ID0gezB4MS43MWRlMzgw MzBmZWFwLTE5LDB4MS43MWRlMzgwMzBmZWFwLTE5fTsKK2NvbnN0IHZlY3RvciBkb3VibGUgZF9j b2VmZjMgPSB7LTB4MS5hMDFhMDE5YTViODZkcC0xMywtMHgxLmEwMWEwMTlhNWI4NmRwLTEzfTsK K2NvbnN0IHZlY3RvciBkb3VibGUgZF9jb2VmZjIgPSB7MHgxLjExMTExMTExMGE0YThwLTcsMHgx LjExMTExMTExMGE0YThwLTd9OworY29uc3QgdmVjdG9yIGRvdWJsZSBkX2NvZWZmMSA9IHstMHgx LjU1NTU1NTU1NTU0YTdwLTMsLTB4MS41NTU1NTU1NTU1NGE3cC0zfTsKKworI2VuZGlmIC8qIERf VFJJR19EQVRBX0guICAqLwpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9m cHUvdmVjX2Zpbml0ZV9hbGlhcy5jIGIvc3lzZGVwcy9wb3dlcnBjL3Bvd2VycGM2NC9mcHUvdmVj X2Zpbml0ZV9hbGlhcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjVm ZDE4MGZiZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Bvd2VycGMvcG93ZXJwYzY0L2Zw dS92ZWNfZmluaXRlX2FsaWFzLmMKQEAgLTAsMCArMSwxNyBAQAorLyogQSB0ZW1wb3Jhcnkgd29y a2Fyb3VuZCB0byBmb3JjZSBjcmVhdGlvbiBvZiBsaWJtdmVjX25vbnNoYXJlZC5hLgorICAgQ29w eXJpZ2h0IChDKSAyMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KZGlmZiAt LWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bvd2VycGMvcG93ZXJwYzY0L2xpYm12ZWMu YWJpbGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Bvd2VycGMvcG93ZXJwYzY0L2xpYm12 ZWMuYWJpbGlzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42NTZjZTA1 NDFmCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcG93ZXJwYy9w b3dlcnBjNjQvbGlibXZlYy5hYmlsaXN0CkBAIC0wLDAgKzEgQEAKK0dMSUJDXzIuMzAgX1pHVmJO MnZfY29zIEYKLS0gCjIuMjAuMQoK --b1_e24e007a539c32ad565cfdd9c56286f3--