From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id EE19E3858298 for ; Mon, 12 Jun 2023 15:32:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EE19E3858298 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1686583973; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type; bh=Noqm5QhwhY28z4Q0yCwBiaMOcKjHBNnCTsZDqlOX8M8=; b=ZwTYWrhkttLA2B152mjLMrt6uzqpokXaAYQXl1v/3b1XKD2ez+zj+dYTYZE1Xy8SGq2p1W xA6JPFBBMm8ClWJZ2uQ50kVeflsaJ7VvkktmivGKw4GYqy+hYeEUrvCS6RYbA11lGSCWHx 8cWgqkk92PsZ/YGH9EVmUY+aZmc6BYI= Received: from mail-vk1-f199.google.com (mail-vk1-f199.google.com [209.85.221.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-214-Ej-IoP4RPOqc7RhIQTa5Cw-1; Mon, 12 Jun 2023 11:32:49 -0400 X-MC-Unique: Ej-IoP4RPOqc7RhIQTa5Cw-1 Received: by mail-vk1-f199.google.com with SMTP id 71dfb90a1353d-460a63d4923so1304568e0c.0 for ; Mon, 12 Jun 2023 08:32:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686583968; x=1689175968; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=1r17L22mAT9y6S4p1OKlDKftadkeB1PejGHw7H77818=; b=CYPSqK6qv3V8uPXmMANQN2sohh+nVwA3f02MbloM9XA0lwordkOp0h4M1RhbYt+K/F X12Wtz8jyh4pP8IqQ5aBtbZRAjJGS1LVI0GL9Bk041w+AFBZIbKaV5+Dk0pzVmQR9AQR l9loeUqbPvTk37wb+jnmODU86BZaQWBPpoSUl6u9XbDEOhjbnU0wUn3RPRmXC6JKS9XB sk+7xsNr8FPax8m85x4r0zrr61GumOUmNcavBxcHiM7cdV5nC/0oC4vC+3LSd8rcfkbo QLQuCEZ3e7jJEmHNVvgKEwdWt4LwYtvVf44OCOGSGjIVhgqqBw3sFKE5LlNl8rzWGU0T Xe5w== X-Gm-Message-State: AC+VfDzFmPZAwHtqzNjMOfOi0+nPM9YyQVqqzKoCiDR1oZ20vm/iyM4J 9+vWoKm9l8y8NUthWt5rKckgaNShe5zBz0of786mfseI671jAJnUWVJ+lCAk93YJ8bNWNxdfmL5 8FwSz0GWUd4VVOGCAJ3FMVdDjSQqApg2vq6akhq/7bbmh5pX/019yOmwuvJrq4ERZnhgc8BCTFR G4dg== X-Received: by 2002:a1f:4c81:0:b0:457:4515:bdf2 with SMTP id z123-20020a1f4c81000000b004574515bdf2mr3329239vka.1.1686583968524; Mon, 12 Jun 2023 08:32:48 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4D50AuO/0ycuoZB6zG2fhbGL5qhKNvfjHClUFgByEp4Bm0DnORUR4EIRCqfvq8gCmw1UOkJA== X-Received: by 2002:a1f:4c81:0:b0:457:4515:bdf2 with SMTP id z123-20020a1f4c81000000b004574515bdf2mr3329224vka.1.1686583968062; Mon, 12 Jun 2023 08:32:48 -0700 (PDT) Received: from ?IPV6:2607:fea8:51df:4200::ca58? ([2607:fea8:51df:4200::ca58]) by smtp.gmail.com with ESMTPSA id i13-20020a0cf38d000000b0062df1a5e8c4sm247469qvk.27.2023.06.12.08.32.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 12 Jun 2023 08:32:47 -0700 (PDT) Message-ID: <690d98ed-2389-d664-dff6-00617dd596c0@redhat.com> Date: Mon, 12 Jun 2023 11:32:46 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 To: gcc-patches Cc: "hernandez, aldy" From: Andrew MacLeod Subject: [COMMITTED 9/17] - Add a hybrid BIT_AND_EXPR operator for integer and pointer. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------PIYuiu3MFW7jdULguQxh85Gz" Content-Language: en-US X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------PIYuiu3MFW7jdULguQxh85Gz Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Add a hybrid operator to choose between integer and pointer versions at runtime. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew --------------PIYuiu3MFW7jdULguQxh85Gz Content-Type: text/x-patch; charset=UTF-8; name="0009-Add-a-hybrid-BIT_AND_EXPR-operator-for-integer-and-p.patch" Content-Disposition: attachment; filename*0="0009-Add-a-hybrid-BIT_AND_EXPR-operator-for-integer-and-p.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4YWRiOGIyZmQ1Nzk3NzA2ZTlmYmIzNTNkNTJmZGExMjM1NDU0MzFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogU2F0LCAxMCBKdW4gMjAyMyAxNjoyODo0MCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDkv MTddIEFkZCBhIGh5YnJpZCBCSVRfQU5EX0VYUFIgb3BlcmF0b3IgZm9yIGludGVnZXIgYW5kCiBw b2ludGVyLgoKVGhpcyBhZGRzIGFuIG9wZXJhdG9yIHRvIHRoZSB1bmlmaWVkIHRhYmxlIGZvciBC SVRfQU5EX0VYUFIgd2hpY2ggd2lsbApzZWxlY3QgZWl0aGVyIHRoZSBwb2ludGVyIG9yIGludGVn ZXIgdmVyc2lvbiBiYXNlZCBvbiB0aGUgdHlwZSBwYXNzZWQKdG8gdGhlIG1ldGhvZC4gICBUaGlz IGlzIGZvciB1c2UgdW50aWwgd2UgaGF2ZSBhIHNlcGVyYXRlIFBSQU5HRSBjbGFzcy4KCgkqIHJh bmdlLW9wLW1peGVkLmggKG9wZXJhdG9yX2JpdHdpc2VfYW5kKTogUmVtb3ZlIGZpbmFsLgoJKiBy YW5nZS1vcC1wdHIuY2MgKHBvaW50ZXJfdGFibGU6OnBvaW50ZXJfdGFibGUpOiBSZW1vdmUgQklU X0FORF9FWFBSLgoJKGNsYXNzIGh5YnJpZF9hbmRfb3BlcmF0b3IpOiBOZXcuCgkocmFuZ2Vfb3Bf dGFibGU6OmluaXRpYWxpemVfcG9pbnRlcl9vcHMpOiBBZGQgaHlicmlkX2FuZF9vcGVyYXRvci4K CSogcmFuZ2Utb3AuY2MgKHVuaWZpZWRfdGFibGU6OnVuaWZpZWRfdGFibGUpOiBDb21tZW50IG91 dCBCSVRfQU5EX0VYUFIuCi0tLQogZ2NjL3JhbmdlLW9wLW1peGVkLmggfCAxMiArKysrLS0tLS0K IGdjYy9yYW5nZS1vcC1wdHIuY2MgIHwgNjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KIGdjYy9yYW5nZS1vcC5jYyAgICAgIHwgIDkgKysrKy0tLQogMyBmaWxl cyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9nY2MvcmFuZ2Utb3AtbWl4ZWQuaCBiL2djYy9yYW5nZS1vcC1taXhlZC5oCmluZGV4IGIxODhm NWE1MTZlLi40MTc3ODE4ZTRiOSAxMDA2NDQKLS0tIGEvZ2NjL3JhbmdlLW9wLW1peGVkLmgKKysr IGIvZ2NjL3JhbmdlLW9wLW1peGVkLmgKQEAgLTU4NCwxOSArNTg0LDE5IEBAIHB1YmxpYzoKICAg dXNpbmcgcmFuZ2Vfb3BlcmF0b3I6Omxoc19vcDFfcmVsYXRpb247CiAgIGJvb2wgb3AxX3Jhbmdl IChpcmFuZ2UgJnIsIHRyZWUgdHlwZSwKIAkJICBjb25zdCBpcmFuZ2UgJmxocywgY29uc3QgaXJh bmdlICZvcDIsCi0JCSAgcmVsYXRpb25fdHJpbyByZWwgPSBUUklPX1ZBUllJTkcpIGNvbnN0IGZp bmFsIG92ZXJyaWRlOworCQkgIHJlbGF0aW9uX3RyaW8gcmVsID0gVFJJT19WQVJZSU5HKSBjb25z dCBvdmVycmlkZTsKICAgYm9vbCBvcDJfcmFuZ2UgKGlyYW5nZSAmciwgdHJlZSB0eXBlLAogCQkg IGNvbnN0IGlyYW5nZSAmbGhzLCBjb25zdCBpcmFuZ2UgJm9wMSwKLQkJICByZWxhdGlvbl90cmlv IHJlbCA9IFRSSU9fVkFSWUlORykgY29uc3QgZmluYWwgb3ZlcnJpZGU7CisJCSAgcmVsYXRpb25f dHJpbyByZWwgPSBUUklPX1ZBUllJTkcpIGNvbnN0IG92ZXJyaWRlOwogICByZWxhdGlvbl9raW5k IGxoc19vcDFfcmVsYXRpb24gKGNvbnN0IGlyYW5nZSAmbGhzLAogCQkJCSAgY29uc3QgaXJhbmdl ICZvcDEsIGNvbnN0IGlyYW5nZSAmb3AyLAotCQkJCSAgcmVsYXRpb25fa2luZCkgY29uc3QgZmlu YWwgb3ZlcnJpZGU7CisJCQkJICByZWxhdGlvbl9raW5kKSBjb25zdCBvdmVycmlkZTsKICAgdm9p ZCB1cGRhdGVfYml0bWFzayAoaXJhbmdlICZyLCBjb25zdCBpcmFuZ2UgJmxoLAotCQkgICAgICAg Y29uc3QgaXJhbmdlICZyaCkgY29uc3QgZmluYWwgb3ZlcnJpZGU7Ci1wcml2YXRlOgorCQkgICAg ICAgY29uc3QgaXJhbmdlICZyaCkgY29uc3Qgb3ZlcnJpZGU7Citwcm90ZWN0ZWQ6CiAgIHZvaWQg d2lfZm9sZCAoaXJhbmdlICZyLCB0cmVlIHR5cGUsIGNvbnN0IHdpZGVfaW50ICZsaF9sYiwKIAkJ Y29uc3Qgd2lkZV9pbnQgJmxoX3ViLCBjb25zdCB3aWRlX2ludCAmcmhfbGIsCi0JCWNvbnN0IHdp ZGVfaW50ICZyaF91YikgY29uc3QgZmluYWwgb3ZlcnJpZGU7CisJCWNvbnN0IHdpZGVfaW50ICZy aF91YikgY29uc3Qgb3ZlcnJpZGU7CiAgIHZvaWQgc2ltcGxlX29wMV9yYW5nZV9zb2x2ZXIgKGly YW5nZSAmciwgdHJlZSB0eXBlLAogCQkJCWNvbnN0IGlyYW5nZSAmbGhzLAogCQkJCWNvbnN0IGly YW5nZSAmb3AyKSBjb25zdDsKZGlmZiAtLWdpdCBhL2djYy9yYW5nZS1vcC1wdHIuY2MgYi9nY2Mv cmFuZ2Utb3AtcHRyLmNjCmluZGV4IDU1YzM3Y2M4Yzg2Li45NDEwMjY5OTRlZCAxMDA2NDQKLS0t IGEvZ2NjL3JhbmdlLW9wLXB0ci5jYworKysgYi9nY2MvcmFuZ2Utb3AtcHRyLmNjCkBAIC0yNzAs MTIgKzI3MCw3MSBAQCBvcGVyYXRvcl9wb2ludGVyX2RpZmY6Om9wMV9vcDJfcmVsYXRpb25fZWZm ZWN0IChpcmFuZ2UgJmxoc19yYW5nZSwgdHJlZSB0eXBlLAogCiBwb2ludGVyX3RhYmxlOjpwb2lu dGVyX3RhYmxlICgpCiB7Ci0gIHNldCAoQklUX0FORF9FWFBSLCBvcF9wb2ludGVyX2FuZCk7CiAg IHNldCAoQklUX0lPUl9FWFBSLCBvcF9wb2ludGVyX29yKTsKICAgc2V0IChNSU5fRVhQUiwgb3Bf cHRyX21pbl9tYXgpOwogICBzZXQgKE1BWF9FWFBSLCBvcF9wdHJfbWluX21heCk7CiB9CiAKKy8v IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKy8vIEh5YnJpZCBvcGVyYXRvcnMgZm9yIHRoZSA0IG9wZXJhdGlvbnMg d2hpY2ggaW50ZWdlciBhbmQgcG9pbnRlcnMgc2hhcmUsCisvLyBidXQgd2hpY2ggaGF2ZSBkaWZm ZXJlbnQgaW1wbGVtZW50YXRpb25zLiAgU2ltcGx5IGNoZWNrIHRoZSB0eXBlIGluCisvLyB0aGUg Y2FsbCBhbmQgY2hvb3NlIHRoZSBhcHByb3ByaWF0ZSBtZXRob2QuCisvLyBPbmNlIHRoZXJlIGlz IGEgUFJBTkdFIHNpZ25hdHVyZSwgc2ltcGx5IGFkZCB0aGUgYXBwcm9wcmlhdGUKKy8vIHByb3Rv dHlwZXMgaW4gdGhlIHJtaXhlZCByYW5nZSBjbGFzcywgYW5kIHJlbW92ZSB0aGVzZSBoeWJyaWQg Y2xhc3Nlcy4KKworY2xhc3MgaHlicmlkX2FuZF9vcGVyYXRvciA6IHB1YmxpYyBvcGVyYXRvcl9i aXR3aXNlX2FuZAoreworcHVibGljOgorICB1c2luZyByYW5nZV9vcGVyYXRvcjo6b3AxX3Jhbmdl OworICB1c2luZyByYW5nZV9vcGVyYXRvcjo6b3AyX3JhbmdlOworICB1c2luZyByYW5nZV9vcGVy YXRvcjo6bGhzX29wMV9yZWxhdGlvbjsKKyAgYm9vbCBvcDFfcmFuZ2UgKGlyYW5nZSAmciwgdHJl ZSB0eXBlLAorCQkgIGNvbnN0IGlyYW5nZSAmbGhzLCBjb25zdCBpcmFuZ2UgJm9wMiwKKwkJICBy ZWxhdGlvbl90cmlvIHJlbCA9IFRSSU9fVkFSWUlORykgY29uc3QgZmluYWwgb3ZlcnJpZGUKKyAg ICB7CisgICAgICBpZiAoSU5URUdSQUxfVFlQRV9QICh0eXBlKSkKKwlyZXR1cm4gb3BlcmF0b3Jf Yml0d2lzZV9hbmQ6Om9wMV9yYW5nZSAociwgdHlwZSwgbGhzLCBvcDIsIHJlbCk7CisgICAgICBl bHNlCisJcmV0dXJuIGZhbHNlOworICAgIH0KKyAgYm9vbCBvcDJfcmFuZ2UgKGlyYW5nZSAmciwg dHJlZSB0eXBlLAorCQkgIGNvbnN0IGlyYW5nZSAmbGhzLCBjb25zdCBpcmFuZ2UgJm9wMSwKKwkJ ICByZWxhdGlvbl90cmlvIHJlbCA9IFRSSU9fVkFSWUlORykgY29uc3QgZmluYWwgb3ZlcnJpZGUK KyAgICB7CisgICAgICBpZiAoSU5URUdSQUxfVFlQRV9QICh0eXBlKSkKKwlyZXR1cm4gb3BlcmF0 b3JfYml0d2lzZV9hbmQ6Om9wMl9yYW5nZSAociwgdHlwZSwgbGhzLCBvcDEsIHJlbCk7CisgICAg ICBlbHNlCisJcmV0dXJuIGZhbHNlOworICAgIH0KKyAgcmVsYXRpb25fa2luZCBsaHNfb3AxX3Jl bGF0aW9uIChjb25zdCBpcmFuZ2UgJmxocywKKwkJCQkgIGNvbnN0IGlyYW5nZSAmb3AxLCBjb25z dCBpcmFuZ2UgJm9wMiwKKwkJCQkgIHJlbGF0aW9uX2tpbmQgcmVsKSBjb25zdCBmaW5hbCBvdmVy cmlkZQorICAgIHsKKyAgICAgIGlmICghbGhzLnVuZGVmaW5lZF9wICgpICYmIElOVEVHUkFMX1RZ UEVfUCAobGhzLnR5cGUgKCkpKQorCXJldHVybiBvcGVyYXRvcl9iaXR3aXNlX2FuZDo6bGhzX29w MV9yZWxhdGlvbiAobGhzLCBvcDEsIG9wMiwgcmVsKTsKKyAgICAgIGVsc2UKKwlyZXR1cm4gVlJF TF9WQVJZSU5HOworICAgIH0KKyAgdm9pZCB1cGRhdGVfYml0bWFzayAoaXJhbmdlICZyLCBjb25z dCBpcmFuZ2UgJmxoLAorCQkgICAgICAgY29uc3QgaXJhbmdlICZyaCkgY29uc3QgZmluYWwgb3Zl cnJpZGUKKyAgICB7CisgICAgICBpZiAoIXIudW5kZWZpbmVkX3AgKCkgJiYgSU5URUdSQUxfVFlQ RV9QIChyLnR5cGUgKCkpKQorCW9wZXJhdG9yX2JpdHdpc2VfYW5kOjp1cGRhdGVfYml0bWFzayAo ciwgbGgsIHJoKTsKKyAgICB9CisKKyAgdm9pZCB3aV9mb2xkIChpcmFuZ2UgJnIsIHRyZWUgdHlw ZSwgY29uc3Qgd2lkZV9pbnQgJmxoX2xiLAorCQljb25zdCB3aWRlX2ludCAmbGhfdWIsIGNvbnN0 IHdpZGVfaW50ICZyaF9sYiwKKwkJY29uc3Qgd2lkZV9pbnQgJnJoX3ViKSBjb25zdCBmaW5hbCBv dmVycmlkZQorICAgIHsKKyAgICAgIGlmIChJTlRFR1JBTF9UWVBFX1AgKHR5cGUpKQorCXJldHVy biBvcGVyYXRvcl9iaXR3aXNlX2FuZDo6d2lfZm9sZCAociwgdHlwZSwgbGhfbGIsIGxoX3ViLAor CQkJCQkgICAgICByaF9sYiwgcmhfdWIpOworICAgICAgZWxzZQorCXJldHVybiBvcF9wb2ludGVy X2FuZC53aV9mb2xkIChyLCB0eXBlLCBsaF9sYiwgbGhfdWIsIHJoX2xiLCByaF91Yik7CisgICAg fQorfSBvcF9oeWJyaWRfYW5kOworCisKIC8vIEluaXRpYWxpemUgYW55IHBvaW50ZXIgb3BlcmF0 b3JzIHRvIHRoZSBwcmltYXJ5IHRhYmxlCiAKIHZvaWQKQEAgLTI4Myw0ICszNDIsNSBAQCByYW5n ZV9vcF90YWJsZTo6aW5pdGlhbGl6ZV9wb2ludGVyX29wcyAoKQogewogICBzZXQgKFBPSU5URVJf UExVU19FWFBSLCBvcF9wb2ludGVyX3BsdXMpOwogICBzZXQgKFBPSU5URVJfRElGRl9FWFBSLCBv cF9wb2ludGVyX2RpZmYpOworICBzZXQgKEJJVF9BTkRfRVhQUiwgb3BfaHlicmlkX2FuZCk7CiB9 CmRpZmYgLS1naXQgYS9nY2MvcmFuZ2Utb3AuY2MgYi9nY2MvcmFuZ2Utb3AuY2MKaW5kZXggZTBj ZDFiMTA3OTAuLmRjYjkyMjE0M2NlIDEwMDY0NAotLS0gYS9nY2MvcmFuZ2Utb3AuY2MKKysrIGIv Z2NjL3JhbmdlLW9wLmNjCkBAIC0xMTYsOSArMTE2LDEyIEBAIHVuaWZpZWRfdGFibGU6OnVuaWZp ZWRfdGFibGUgKCkKICAgc2V0IChCSVRfWE9SX0VYUFIsIG9wX2JpdHdpc2VfeG9yKTsKIAogICAv LyBUaGVzZSBhcmUgaW4gYm90aCBpbnRlZ2VyIGFuZCBwb2ludGVyIHRhYmxlcywgYnV0IHBvaW50 ZXIgaGFzIGEgZGlmZmVyZW50Ci0gIC8vIGltcGxlbWVudGF0aW9uLiAgVGhlc2UgYWxzbyByZW1h aW4gaW4gdGhlIHBvaW50ZXIgdGFibGUgdW50aWwgYSBwb2ludGVyCi0gIC8vIHNwZWlmYyB2ZXJz aW9uIGlzIHByb3ZpZGVkLgotICBzZXQgKEJJVF9BTkRfRVhQUiwgb3BfYml0d2lzZV9hbmQpOwor ICAvLyBpbXBsZW1lbnRhdGlvbi4KKyAgLy8gSWYgY29tbWVudGVkIG91dCwgdGhlcmUgaXMgYSBo eWJyaWQgdmVyc2lvbiBpbiByYW5nZS1vcC1wdHIuY2Mgd2hpY2gKKyAgLy8gaXMgdXNlZCB1bnRp bCB0aGVyZSBpcyBhIHBvaW50ZXIgcmFuZ2UgY2xhc3MuICBUaGVuIHdlIGNhbiBzaW1wbHkKKyAg Ly8gdW5jb21tZW50IHRoZSBvcGVyYXRvciBoZXJlIGFuZCB1c2UgdGhlIHVuaWZpZWQgdmVyc2lv bi4KKworICAvL3NldCAoQklUX0FORF9FWFBSLCBvcF9iaXR3aXNlX2FuZCk7CiAgIHNldCAoQklU X0lPUl9FWFBSLCBvcF9iaXR3aXNlX29yKTsKICAgc2V0IChNSU5fRVhQUiwgb3BfbWluKTsKICAg c2V0IChNQVhfRVhQUiwgb3BfbWF4KTsKLS0gCjIuNDAuMQoK --------------PIYuiu3MFW7jdULguQxh85Gz--