From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id 11C1F3858C2D for ; Mon, 5 Feb 2024 21:37:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 11C1F3858C2D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 11C1F3858C2D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::42f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707169080; cv=none; b=x03ecA2Qm/yw932L9eNCu97u0EMeOfYwWkshnZotGF93MIp9OO3Eplzp82lKfnzZDPP+g2u6Rw2h0uoGueM4gIQSdBLOKMlVLtnQR66uMkKKeYx8fQQQZ6JSqRU5h9MQAEpyEs32BWB11vBS4OrPtAf3nERoPVOqNkxBcoMGh7g= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707169080; c=relaxed/simple; bh=bmJpa0xNhcqH/QSHzSHq7Dqo+H8sEAeRdG3U/2M0/wI=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:Subject:From; b=S0sdsSyBXzJ3T+LPKV1IkM/VIa/PzcmmogmQgiyIhzc4pFMfL2dt/qTg7cOZ7c7lYhEsztsQCZEjvwq7Y2MBgLHJgEKUd2ABhLbAxaq/MGkbgm9ohmUZLtk2C7Utpa9vvFMiwrHP3SLGKVRr3HZJm7FXGTBM60CFgsRQxDhTo88= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-337d05b8942so3733834f8f.3 for ; Mon, 05 Feb 2024 13:37:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1707169076; x=1707773876; darn=gcc.gnu.org; h=in-reply-to:from:cc:content-language:subject:references:to :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=9ddbkryqXaUasU+dVP9EfbzH6a8uyjI+QHEnHH6sA4U=; b=S1r+RR/EdW4Vvx1Kmam2BfXlLFdp5igmXMtHFbRQsOI8bxVgKFZuvoaY6AsJjpl5Dz N0xzvVaCUXxSpqNatoFJ1GvWbBbGEfOEVfDS4S2ly9ATk6WMhVCsZstb5CWxpUvU7rSx FicYBWqFS0ISiDScch4C00Fdxy1INGmjTpqz1wo5aBOyRJuTjTKefN/SH58cOPPjgulG osYSj4bntFKWo92gh1aExRcHhzbGu+Y4g5304VfcJpVu8TYUgiWGYYpv97yGXM/6RLfb vjGxx8lST0gX2tgh9C6Ze4zkYfka9hlp3YZr0Z+LaUbmauUMTXe54zDb9ZzCNDAYnG/Z jxQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707169076; x=1707773876; h=in-reply-to:from:cc:content-language:subject:references:to :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=9ddbkryqXaUasU+dVP9EfbzH6a8uyjI+QHEnHH6sA4U=; b=QPoAOsJckRzSr+ZhPYtLRukU1Jw/Md4f0eDsyaR0lZaMUIxJYnkb16xSkT0oM/wO/F NFPmq0E52i6lZySqKBcjOXkfyfMK7VFdl0obIR4uEnm6r+Qx5RdiE54G2QqGjK+TC6Lb 2c1YVeBkuM/mm8QRtifTbhpGn9edL1J2ofAAY+xTge21QGmijyD3TZHEAv8jG4qOVuQ7 qZDwhXwIBdAiAp13CnXjDswDeltHYFDthpqAyR4q0/Z3barMVALiWzN1L7HpiKeoMQUC OrinXrrkF0WlxNfKXn3dQ1EypNlDjSYjzt4aswaMru1NAu9eMoGzQltQZC6SO3vhDKe5 VoTA== X-Gm-Message-State: AOJu0Ywzd8TpmyvqfryxJkyf74rnyW3sD+06lB2Qzr7eRfHbVYqZN75i cHvJkWifDdSxD92ucybnfxR+WBI4beDZs6aPmHI84u/XPL78hx3PR+t3UApxH1w= X-Google-Smtp-Source: AGHT+IEYzHXk+9Ndk8DkjeSlkE1hpx8tZ008lFiZZbYpF2GkYnVOJgbjqGA5n9Z89ONNgInBpFvY5w== X-Received: by 2002:a5d:4d8b:0:b0:333:3dd:6cc3 with SMTP id b11-20020a5d4d8b000000b0033303dd6cc3mr436875wru.21.1707169075676; Mon, 05 Feb 2024 13:37:55 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCUCakqEU0+cm7YKLeRTMBEjkb5Sd+K2Wh2/gZpjHv3s4suUKTfP7ocFJDuDr4lPkb3f38Rf1AHXk7k22z+dNNvhGeNrvZ2e3vFIhGUeyHQLHVZX5+f4VFeG3xSjqA== Received: from ?IPV6:2a00:23c6:88e4:c502:1df0:9d5b:de1b:cbd0? ([2a00:23c6:88e4:c502:1df0:9d5b:de1b:cbd0]) by smtp.gmail.com with ESMTPSA id s9-20020a05600c45c900b0040fddaf9ff4sm2667342wmo.40.2024.02.05.13.37.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 05 Feb 2024 13:37:55 -0800 (PST) Content-Type: multipart/mixed; boundary="------------0EpKZnsa0nJzbe7QhXuhNvuk" Message-ID: Date: Mon, 5 Feb 2024 21:37:45 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: tburnus@baylibre.com References: <3290a0f5-3b9d-4c3c-b7c5-e9ddec4520c7@baylibre.com> Subject: [PATCH v2] openmp, fortran: Add Fortran support for indirect clause on the declare target directive Content-Language: en-GB Cc: Jakub Jelinek , gcc-patches , fortran@gcc.gnu.org From: Kwok Cheung Yeung In-Reply-To: <3290a0f5-3b9d-4c3c-b7c5-e9ddec4520c7@baylibre.com> X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,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. --------------0EpKZnsa0nJzbe7QhXuhNvuk Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi As previously discussed, this version of the patch adds code to emit a warning when a directive like this: !$omp declare target indirect(.true.) is encountered (i.e. a target directive containing at least one clause, but no to/enter clause, which appears to violate the OpenMP standard). A test is also added to gfortran.dg/gomp/declare-target-indirect-1.f90 to test for this. I have also added a declare-target-indirect-3.f90 test to libgomp to check that procedures passed via a dummy argument work properly when used in an indirect call. Okay for mainline? Thanks Kwok --------------0EpKZnsa0nJzbe7QhXuhNvuk Content-Type: text/plain; charset=UTF-8; name="0001-openmp-fortran-Add-Fortran-support-for-indirect-clau.patch" Content-Disposition: attachment; filename*0="0001-openmp-fortran-Add-Fortran-support-for-indirect-clau.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmNjY2MmE3YmM3NmQ0MDBmZWNiNTAxM2FkNmQ2YWIzYjAwYjhhNmU3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLd29rIENoZXVuZyBZZXVuZyA8a2N5ZXVuZ0BiYXls aWJyZS5jb20+CkRhdGU6IE1vbiwgNSBGZWIgMjAyNCAyMDozMTo0OSArMDAwMApTdWJqZWN0 OiBbUEFUQ0hdIG9wZW5tcCwgZm9ydHJhbjogQWRkIEZvcnRyYW4gc3VwcG9ydCBmb3IgaW5k aXJlY3QgY2xhdXNlIG9uCiB0aGUgZGVjbGFyZSB0YXJnZXQgZGlyZWN0aXZlCgoyMDI0LTAy LTA1ICBLd29rIENoZXVuZyBZZXVuZyAgPGtjeWV1bmdAYmF5bGlicmUuY29tPgoKCWdjYy9m b3J0cmFuLwoJKiBkdW1wLXBhcnNlLXRyZWUuY2MgKHNob3dfYXR0cik6IEhhbmRsZSBvbXBf ZGVjbGFyZV90YXJnZXRfaW5kaXJlY3QKCWF0dHJpYnV0ZS4KCSogZjk1LWxhbmcuY2MgKGdm Y19nbnVfYXR0cmlidXRlcyk6IEFkZCBlbnRyeSBmb3IgJ29tcCBkZWNsYXJlCgl0YXJnZXQg aW5kaXJlY3QnLgoJKiBnZm9ydHJhbi5oIChzeW1ib2xfYXR0cmlidXRlKTogQWRkIG9tcF9k ZWNsYXJlX3RhcmdldF9pbmRpcmVjdAoJZmllbGQuCgkoc3RydWN0IGdmY19vbXBfY2xhdXNl cyk6IEFkZCBpbmRpcmVjdCBmaWVsZC4KCSogb3Blbm1wLmNjIChvbXBfbWFzazIpOiBBZGQg T01QX0NMQVVTRV9JTkRJUkVDVC4KCShnZmNfbWF0Y2hfb21wX2NsYXVzZXMpOiBNYXRjaCBp bmRpcmVjdCBjbGF1c2UuCgkoT01QX0RFQ0xBUkVfVEFSR0VUX0NMQVVTRVMpOiBBZGQgT01Q X0NMQVVTRV9JTkRJUkVDVC4KCShnZmNfbWF0Y2hfb21wX2RlY2xhcmVfdGFyZ2V0KTogQ2hl Y2sgb21wX2RldmljZV90eXBlIGFuZCBhcHBseQoJb21wX2RlY2xhcmVfdGFyZ2V0X2luZGly ZWN0IGF0dHJpYnV0ZSB0byBzeW1ib2wgaWYgaW5kaXJlY3QgY2xhdXNlCglhY3RpdmUuICBT aG93IHdhcm5pbmcgaWYgdGhlcmUgYXJlIG9ubHkgZGV2aWNlX3R5cGUgYW5kL29yIGluZGly ZWN0CgljbGF1c2VzIG9uIHRoZSBkaXJlY3RpdmUuCgkqIHRyYW5zLWRlY2wuY2MgKGFkZF9h dHRyaWJ1dGVzX3RvX2RlY2wpOiBBZGQgJ29tcCBkZWNsYXJlIHRhcmdldAoJaW5kaXJlY3Qn IGF0dHJpYnV0ZSBpZiBzeW1ib2wgaGFzIGluZGlyZWN0IGF0dHJpYnV0ZSBzZXQuCgoJZ2Nj L3Rlc3RzdWl0ZS8KCSogZ2ZvcnRyYW4uZGcvZ29tcC9kZWNsYXJlLXRhcmdldC00LmY5MCAo ZjEpOiBVcGRhdGUgZXhwZWN0ZWQgd2FybmluZy4KCSogZ2ZvcnRyYW4uZGcvZ29tcC9kZWNs YXJlLXRhcmdldC1pbmRpcmVjdC0xLmY5MDogTmV3LgoJKiBnZm9ydHJhbi5kZy9nb21wL2Rl Y2xhcmUtdGFyZ2V0LWluZGlyZWN0LTIuZjkwOiBOZXcuCgoJbGliZ29tcC8KCSogdGVzdHN1 aXRlL2xpYmdvbXAuZm9ydHJhbi9kZWNsYXJlLXRhcmdldC1pbmRpcmVjdC0xLmY5MDogTmV3 LgoJKiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0 LTIuZjkwOiBOZXcuCgkqIHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVjbGFyZS10YXJn ZXQtaW5kaXJlY3QtMy5mOTA6IE5ldy4KLS0tCiBnY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRy ZWUuY2MgICAgICAgICAgICAgICAgfCAgMiArCiBnY2MvZm9ydHJhbi9mOTUtbGFuZy5jYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgMiArCiBnY2MvZm9ydHJhbi9nZm9ydHJhbi5oICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjICAg ICAgICAgICAgICAgICAgICAgICAgIHwgNTAgKysrKysrKysrKysrKystCiBnY2MvZm9ydHJh bi90cmFucy1kZWNsLmNjICAgICAgICAgICAgICAgICAgICAgfCAgNCArKwogLi4uL2dmb3J0 cmFuLmRnL2dvbXAvZGVjbGFyZS10YXJnZXQtNC5mOTAgICAgIHwgIDIgKy0KIC4uLi9nb21w L2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTEuZjkwICAgICAgICB8IDYyICsrKysrKysrKysr KysrKysrKysKIC4uLi9nb21wL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTIuZjkwICAgICAg ICB8IDI1ICsrKysrKysrCiAuLi4vZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMS5mOTAgICAg ICAgICAgICAgfCAzOSArKysrKysrKysrKysKIC4uLi9kZWNsYXJlLXRhcmdldC1pbmRpcmVj dC0yLmY5MCAgICAgICAgICAgICB8IDUzICsrKysrKysrKysrKysrKysKIC4uLi9kZWNsYXJl LXRhcmdldC1pbmRpcmVjdC0zLmY5MCAgICAgICAgICAgICB8IDI1ICsrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAyNjIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVjbGFyZS10 YXJnZXQtaW5kaXJlY3QtMS5mOTAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMi5mOTAKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsaWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVjbGFy ZS10YXJnZXQtaW5kaXJlY3QtMS5mOTAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJnb21wL3Rl c3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMi5mOTAK IGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4v ZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMy5mOTAKCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJh bi9kdW1wLXBhcnNlLXRyZWUuY2MgYi9nY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MK aW5kZXggMTU2M2I4MTBiOTguLjdiMTU0ZWIzY2E3IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJh bi9kdW1wLXBhcnNlLXRyZWUuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVl LmNjCkBAIC05MTQsNiArOTE0LDggQEAgc2hvd19hdHRyIChzeW1ib2xfYXR0cmlidXRlICph dHRyLCBjb25zdCBjaGFyICogbW9kdWxlKQogICAgIGZwdXRzICgiIE9NUC1ERUNMQVJFLVRB UkdFVCIsIGR1bXBmaWxlKTsKICAgaWYgKGF0dHItPm9tcF9kZWNsYXJlX3RhcmdldF9saW5r KQogICAgIGZwdXRzICgiIE9NUC1ERUNMQVJFLVRBUkdFVC1MSU5LIiwgZHVtcGZpbGUpOwor ICBpZiAoYXR0ci0+b21wX2RlY2xhcmVfdGFyZ2V0X2luZGlyZWN0KQorICAgIGZwdXRzICgi IE9NUC1ERUNMQVJFLVRBUkdFVC1JTkRJUkVDVCIsIGR1bXBmaWxlKTsKICAgaWYgKGF0dHIt PmVsZW1lbnRhbCkKICAgICBmcHV0cyAoIiBFTEVNRU5UQUwiLCBkdW1wZmlsZSk7CiAgIGlm IChhdHRyLT5wdXJlKQpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vZjk1LWxhbmcuY2MgYi9n Y2MvZm9ydHJhbi9mOTUtbGFuZy5jYwppbmRleCAzNThjYjE3ZmNlMi4uNjdmZGEyN2FhM2Ug MTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2Y5NS1sYW5nLmNjCisrKyBiL2djYy9mb3J0cmFu L2Y5NS1sYW5nLmNjCkBAIC05Niw2ICs5Niw4IEBAIHN0YXRpYyBjb25zdCBhdHRyaWJ1dGVf c3BlYyBnZmNfZ251X2F0dHJpYnV0ZXNbXSA9CiAgICAgZ2ZjX2hhbmRsZV9vbXBfZGVjbGFy ZV90YXJnZXRfYXR0cmlidXRlLCBOVUxMIH0sCiAgIHsgIm9tcCBkZWNsYXJlIHRhcmdldCBs aW5rIiwgMCwgMCwgdHJ1ZSwgIGZhbHNlLCBmYWxzZSwgZmFsc2UsCiAgICAgZ2ZjX2hhbmRs ZV9vbXBfZGVjbGFyZV90YXJnZXRfYXR0cmlidXRlLCBOVUxMIH0sCisgIHsgIm9tcCBkZWNs YXJlIHRhcmdldCBpbmRpcmVjdCIsIDAsIDAsIHRydWUsICBmYWxzZSwgZmFsc2UsIGZhbHNl LAorICAgIGdmY19oYW5kbGVfb21wX2RlY2xhcmVfdGFyZ2V0X2F0dHJpYnV0ZSwgTlVMTCB9 LAogICB7ICJvYWNjIGZ1bmN0aW9uIiwgMCwgLTEsIHRydWUsICBmYWxzZSwgZmFsc2UsIGZh bHNlLAogICAgIGdmY19oYW5kbGVfb21wX2RlY2xhcmVfdGFyZ2V0X2F0dHJpYnV0ZSwgTlVM TCB9LAogfTsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmggYi9nY2MvZm9y dHJhbi9nZm9ydHJhbi5oCmluZGV4IGZkNzNlNGNlNDMxLi5mZDg0M2EzMjQxZCAxMDA2NDQK LS0tIGEvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAorKysgYi9nY2MvZm9ydHJhbi9nZm9ydHJh bi5oCkBAIC05OTksNiArOTk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKICAgLyogTWVudGlvbmVk IGluIE9NUCBERUNMQVJFIFRBUkdFVC4gICovCiAgIHVuc2lnbmVkIG9tcF9kZWNsYXJlX3Rh cmdldDoxOwogICB1bnNpZ25lZCBvbXBfZGVjbGFyZV90YXJnZXRfbGluazoxOworICB1bnNp Z25lZCBvbXBfZGVjbGFyZV90YXJnZXRfaW5kaXJlY3Q6MTsKICAgRU5VTV9CSVRGSUVMRCAo Z2ZjX29tcF9kZXZpY2VfdHlwZSkgb21wX2RldmljZV90eXBlOjI7CiAgIHVuc2lnbmVkIG9t cF9hbGxvY2F0ZToxOwogCkBAIC0xNTg0LDcgKzE1ODUsNyBAQCB0eXBlZGVmIHN0cnVjdCBn ZmNfb21wX2NsYXVzZXMKICAgdW5zaWduZWQgZ3JhaW5zaXplX3N0cmljdDoxLCBudW1fdGFz a3Nfc3RyaWN0OjEsIGNvbXBhcmU6MSwgd2VhazoxOwogICB1bnNpZ25lZCBub25fcmVjdGFu Z3VsYXI6MSwgb3JkZXJfY29uY3VycmVudDoxOwogICB1bnNpZ25lZCBjb250YWluc190ZWFt c19jb25zdHJ1Y3Q6MSwgdGFyZ2V0X2ZpcnN0X3N0X2lzX3RlYW1zOjE7Ci0gIHVuc2lnbmVk IGNvbnRhaW5lZF9pbl90YXJnZXRfY29uc3RydWN0OjE7CisgIHVuc2lnbmVkIGNvbnRhaW5l ZF9pbl90YXJnZXRfY29uc3RydWN0OjEsIGluZGlyZWN0OjE7CiAgIEVOVU1fQklURklFTEQg KGdmY19vbXBfc2NoZWRfa2luZCkgc2NoZWRfa2luZDozOwogICBFTlVNX0JJVEZJRUxEIChn ZmNfb21wX2RldmljZV90eXBlKSBkZXZpY2VfdHlwZToyOwogICBFTlVNX0JJVEZJRUxEIChn ZmNfb21wX21lbW9yZGVyKSBtZW1vcmRlcjozOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v b3Blbm1wLmNjIGIvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCmluZGV4IDBhZjgwZDU0ZmFkLi4z MGFiYTQ0MjFmZiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCisrKyBiL2dj Yy9mb3J0cmFuL29wZW5tcC5jYwpAQCAtMTA5Niw2ICsxMDk2LDcgQEAgZW51bSBvbXBfbWFz azIKICAgT01QX0NMQVVTRV9ET0FDUk9TUywgLyogT3Blbk1QIDUuMiAqLwogICBPTVBfQ0xB VVNFX0FTU1VNUFRJT05TLCAvKiBPcGVuTVAgNS4xLiAqLwogICBPTVBfQ0xBVVNFX1VTRVNf QUxMT0NBVE9SUywgLyogT3Blbk1QIDUuMCAgKi8KKyAgT01QX0NMQVVTRV9JTkRJUkVDVCwg LyogT3Blbk1QIDUuMSAgKi8KICAgLyogVGhpcyBtdXN0IGNvbWUgbGFzdC4gICovCiAgIE9N UF9NQVNLMl9MQVNUCiB9OwpAQCAtMjc5OCw2ICsyNzk5LDMyIEBAIGdmY19tYXRjaF9vbXBf Y2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2VzICoqY3AsIGNvbnN0IG9tcF9tYXNrIG1hc2ssCiAJ ICAgICAgbmVlZHNfc3BhY2UgPSB0cnVlOwogCSAgICAgIGNvbnRpbnVlOwogCSAgICB9CisJ ICBpZiAoKG1hc2sgJiBPTVBfQ0xBVVNFX0lORElSRUNUKQorCSAgICAgICYmIChtID0gZ2Zj X21hdGNoX2R1cGxfY2hlY2sgKCFjLT5pbmRpcmVjdCwgImluZGlyZWN0IikpCisJCSAgIT0g TUFUQ0hfTk8pCisJICAgIHsKKwkgICAgICBpZiAobSA9PSBNQVRDSF9FUlJPUikKKwkJZ290 byBlcnJvcjsKKwkgICAgICBnZmNfZXhwciAqaW5kaXJlY3RfZXhwciA9IE5VTEw7CisJICAg ICAgbSA9IGdmY19tYXRjaCAoIiAoICVlICkiLCAmaW5kaXJlY3RfZXhwcik7CisJICAgICAg aWYgKG0gPT0gTUFUQ0hfWUVTKQorCQl7CisJCSAgaWYgKCFnZmNfcmVzb2x2ZV9leHByIChp bmRpcmVjdF9leHByKQorCQkgICAgICB8fCBpbmRpcmVjdF9leHByLT50cy50eXBlICE9IEJU X0xPR0lDQUwKKwkJICAgICAgfHwgaW5kaXJlY3RfZXhwci0+ZXhwcl90eXBlICE9IEVYUFJf Q09OU1RBTlQpCisJCSAgICB7CisJCSAgICAgIGdmY19lcnJvciAoIklORElSRUNUIGNsYXVz ZSBhdCAlQyByZXF1aXJlcyBhIGNvbnN0YW50ICIKKwkJCQkgImxvZ2ljYWwgZXhwcmVzc2lv biIpOworCQkgICAgICBnZmNfZnJlZV9leHByIChpbmRpcmVjdF9leHByKTsKKwkJICAgICAg Z290byBlcnJvcjsKKwkJICAgIH0KKwkJICBjLT5pbmRpcmVjdCA9IGluZGlyZWN0X2V4cHIt PnZhbHVlLmxvZ2ljYWw7CisJCSAgZ2ZjX2ZyZWVfZXhwciAoaW5kaXJlY3RfZXhwcik7CisJ CX0KKwkgICAgICBlbHNlCisJCWMtPmluZGlyZWN0ID0gMTsKKwkgICAgICBjb250aW51ZTsK KwkgICAgfQogCSAgaWYgKChtYXNrICYgT01QX0NMQVVTRV9JU19ERVZJQ0VfUFRSKQogCSAg ICAgICYmIGdmY19tYXRjaF9vbXBfdmFyaWFibGVfbGlzdAogCQkgICAoImlzX2RldmljZV9w dHIgKCIsCkBAIC00NDYwLDcgKzQ0ODcsNyBAQCBjbGVhbnVwOgogICAob21wX21hc2sgKE9N UF9DTEFVU0VfVEhSRUFEUykgfCBPTVBfQ0xBVVNFX1NJTUQpCiAjZGVmaW5lIE9NUF9ERUNM QVJFX1RBUkdFVF9DTEFVU0VTIFwKICAgKG9tcF9tYXNrIChPTVBfQ0xBVVNFX0VOVEVSKSB8 IE9NUF9DTEFVU0VfTElOSyB8IE9NUF9DTEFVU0VfREVWSUNFX1RZUEUgXAotICAgfCBPTVBf Q0xBVVNFX1RPKQorICAgfCBPTVBfQ0xBVVNFX1RPIHwgT01QX0NMQVVTRV9JTkRJUkVDVCkK ICNkZWZpbmUgT01QX0FUT01JQ19DTEFVU0VTIFwKICAgKG9tcF9tYXNrIChPTVBfQ0xBVVNF X0FUT01JQykgfCBPTVBfQ0xBVVNFX0NBUFRVUkUgfCBPTVBfQ0xBVVNFX0hJTlQJXAogICAg fCBPTVBfQ0xBVVNFX01FTU9SREVSIHwgT01QX0NMQVVTRV9DT01QQVJFIHwgT01QX0NMQVVT RV9GQUlMIAlcCkBAIC01NTEzLDYgKzU1NDAsMTUgQEAgZ2ZjX21hdGNoX29tcF9kZWNsYXJl X3RhcmdldCAodm9pZCkKIAkJCSAgICAgICBuLT5zeW0tPm5hbWUsICZuLT53aGVyZSk7CiAJ ICAgICAgbi0+c3ltLT5hdHRyLm9tcF9kZXZpY2VfdHlwZSA9IGMtPmRldmljZV90eXBlOwog CSAgICB9CisJICBpZiAoYy0+aW5kaXJlY3QpCisJICAgIHsKKwkgICAgICBpZiAobi0+c3lt LT5hdHRyLm9tcF9kZXZpY2VfdHlwZSAhPSBPTVBfREVWSUNFX1RZUEVfVU5TRVQKKwkJICAm JiBuLT5zeW0tPmF0dHIub21wX2RldmljZV90eXBlICE9IE9NUF9ERVZJQ0VfVFlQRV9BTlkp CisJCWdmY19lcnJvcl9ub3cgKCJERVZJQ0VfVFlQRSBtdXN0IGJlIEFOWSB3aGVuIHVzZWQg d2l0aCAiCisJCQkgICAgICAgIklORElSRUNUIGF0ICVMIiwgJm4tPndoZXJlKTsKKwkgICAg ICBuLT5zeW0tPmF0dHIub21wX2RlY2xhcmVfdGFyZ2V0X2luZGlyZWN0ID0gYy0+aW5kaXJl Y3Q7CisJICAgIH0KKwogCSAgbi0+c3ltLT5tYXJrID0gMTsKIAl9CiAgICAgICBlbHNlIGlm IChuLT51LmNvbW1vbi0+b21wX2RlY2xhcmVfdGFyZ2V0CkBAIC01NTU4LDE1ICs1NTk0LDIz IEBAIGdmY19tYXRjaF9vbXBfZGVjbGFyZV90YXJnZXQgKHZvaWQpCiAJCQkgICAgICAgIiBU QVJHRVQgZGlyZWN0aXZlIHRvIGEgZGlmZmVyZW50IERFVklDRV9UWVBFIiwKIAkJCSAgICAg ICBzLT5uYW1lLCAmbi0+d2hlcmUpOwogCSAgICAgIHMtPmF0dHIub21wX2RldmljZV90eXBl ID0gYy0+ZGV2aWNlX3R5cGU7CisKKwkgICAgICBpZiAoYy0+aW5kaXJlY3QKKwkJICAmJiBz LT5hdHRyLm9tcF9kZXZpY2VfdHlwZSAhPSBPTVBfREVWSUNFX1RZUEVfVU5TRVQKKwkJICAm JiBzLT5hdHRyLm9tcF9kZXZpY2VfdHlwZSAhPSBPTVBfREVWSUNFX1RZUEVfQU5ZKQorCQln ZmNfZXJyb3Jfbm93ICgiREVWSUNFX1RZUEUgbXVzdCBiZSBBTlkgd2hlbiB1c2VkIHdpdGgg IgorCQkJICAgICAgICJJTkRJUkVDVCBhdCAlTCIsICZuLT53aGVyZSk7CisJICAgICAgcy0+ YXR0ci5vbXBfZGVjbGFyZV90YXJnZXRfaW5kaXJlY3QgPSBjLT5pbmRpcmVjdDsKIAkgICAg fQogCX0KLSAgaWYgKGMtPmRldmljZV90eXBlCisgIGlmICgoYy0+ZGV2aWNlX3R5cGUgfHwg Yy0+aW5kaXJlY3QpCiAgICAgICAmJiAhYy0+bGlzdHNbT01QX0xJU1RfRU5URVJdCiAgICAg ICAmJiAhYy0+bGlzdHNbT01QX0xJU1RfVE9dCiAgICAgICAmJiAhYy0+bGlzdHNbT01QX0xJ U1RfTElOS10pCiAgICAgZ2ZjX3dhcm5pbmdfbm93IChPUFRfV29wZW5tcCwKIAkJICAgICAi T01QIERFQ0xBUkUgVEFSR0VUIGRpcmVjdGl2ZSBhdCAlTCB3aXRoIG9ubHkgIgotCQkgICAg ICJERVZJQ0VfVFlQRSBjbGF1c2UgaXMgaWdub3JlZCIsICZvbGRfbG9jKTsKKwkJICAgICAi REVWSUNFX1RZUEUgb3IgSU5ESVJFQ1QgY2xhdXNlcyBpcyBpZ25vcmVkIiwKKwkJICAgICAm b2xkX2xvYyk7CiAKICAgZ2ZjX2J1ZmZlcl9lcnJvciAodHJ1ZSk7CiAKZGlmZiAtLWdpdCBh L2djYy9mb3J0cmFuL3RyYW5zLWRlY2wuY2MgYi9nY2MvZm9ydHJhbi90cmFucy1kZWNsLmNj CmluZGV4IGRlMTYyZjZjYzc1Li42ZDQ2MzAzNjk2NiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRy YW4vdHJhbnMtZGVjbC5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1kZWNsLmNjCkBAIC0x NTI2LDYgKzE1MjYsMTAgQEAgYWRkX2F0dHJpYnV0ZXNfdG9fZGVjbCAoc3ltYm9sX2F0dHJp YnV0ZSBzeW1fYXR0ciwgdHJlZSBsaXN0KQogICAgIGxpc3QgPSB0cmVlX2NvbnMgKGdldF9p ZGVudGlmaWVyICgib21wIGRlY2xhcmUgdGFyZ2V0IiksCiAJCSAgICAgIGNsYXVzZXMsIGxp c3QpOwogCisgIGlmIChzeW1fYXR0ci5vbXBfZGVjbGFyZV90YXJnZXRfaW5kaXJlY3QpCisg ICAgbGlzdCA9IHRyZWVfY29ucyAoZ2V0X2lkZW50aWZpZXIgKCJvbXAgZGVjbGFyZSB0YXJn ZXQgaW5kaXJlY3QiKSwKKwkJICAgICAgY2xhdXNlcywgbGlzdCk7CisKICAgcmV0dXJuIGxp c3Q7CiB9CiAKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9k ZWNsYXJlLXRhcmdldC00LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9k ZWNsYXJlLXRhcmdldC00LmY5MAppbmRleCA0ZjVkZTRiZDhjNy4uNTU1MzRkOGZlOTkgMTAw NjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZWNsYXJlLXRhcmdl dC00LmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVjbGFyZS10 YXJnZXQtNC5mOTAKQEAgLTIsNyArMiw3IEBACiAhIHsgZGctYWRkaXRpb25hbC1vcHRpb25z ICItZmR1bXAtdHJlZS1vcmlnaW5hbCIgfQogCiBzdWJyb3V0aW5lIGYxCi0gICEkb21wIGRl Y2xhcmUgdGFyZ2V0IGRldmljZV90eXBlIChhbnkpICAhIHsgZGctd2FybmluZyAiT01QIERF Q0xBUkUgVEFSR0VUIGRpcmVjdGl2ZSBhdCAuMS4gd2l0aCBvbmx5IERFVklDRV9UWVBFIGNs YXVzZSBpcyBpZ25vcmVkIiB9CisgICEkb21wIGRlY2xhcmUgdGFyZ2V0IGRldmljZV90eXBl IChhbnkpICAhIHsgZGctd2FybmluZyAiT01QIERFQ0xBUkUgVEFSR0VUIGRpcmVjdGl2ZSBh dCAuMS4gd2l0aCBvbmx5IERFVklDRV9UWVBFIG9yIElORElSRUNUIGNsYXVzZXMgaXMgaWdu b3JlZCIgfQogZW5kIHN1YnJvdXRpbmUKIAogc3Vicm91dGluZSBmMgpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0 LTEuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RlY2xhcmUtdGFyZ2V0 LWluZGlyZWN0LTEuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li41MDRjMWEyOTgxMwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZ29tcC9kZWNsYXJlLXRhcmdldC1pbmRpcmVjdC0xLmY5MApAQCAtMCwwICsxLDYy IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctb3B0aW9ucyAiLWZvcGVubXAiIH0K KworbW9kdWxlIG0KKyAgaW50ZWdlciA6OiBhCisgIGludGVnZXIsIHBhcmFtZXRlciA6OiBY ID0gMQorICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogWSA9IDIKKworICAhIEluZGlyZWN0IG9u IGEgdmFyaWFibGUgc2hvdWxkIGhhdmUgbm8gZWZmZWN0LgorICBpbnRlZ2VyIDo6IHoKKyAg ISRvbXAgZGVjbGFyZSB0YXJnZXQgdG8gKHopIGluZGlyZWN0Citjb250YWlucworICBzdWJy b3V0aW5lIHN1YjEKKyAgICAhJG9tcCBkZWNsYXJlIHRhcmdldCBpbmRpcmVjdCB0byAoc3Vi MSkKKyAgZW5kIHN1YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1YjIKKyAgICAhJG9tcCBk ZWNsYXJlIHRhcmdldCBlbnRlciAoc3ViMikgaW5kaXJlY3QgKC50cnVlLikKKyAgZW5kIHN1 YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1YjMKKyAgICAhJG9tcCBkZWNsYXJlIHRhcmdl dCB0byAoc3ViMykgaW5kaXJlY3QgKC5mYWxzZS4pCisgIGVuZCBzdWJyb3V0aW5lCisKKyAg c3Vicm91dGluZSBzdWI0CisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgdG8gKHN1YjQpIGlu ZGlyZWN0ICgxKSAhIHsgZGctZXJyb3IgIklORElSRUNUIGNsYXVzZSBhdCAuMS4gcmVxdWly ZXMgYSBjb25zdGFudCBsb2dpY2FsIGV4cHJlc3Npb24iIH0KKyAgZW5kIHN1YnJvdXRpbmUK KworICAhIENvbXBpbGUtdGltZSBub24tY29uc3RhbnQgZXhwcmVzc2lvbnMgYXJlIG5vdCBh bGxvd2VkLgorICBzdWJyb3V0aW5lIHN1YjUKKyAgICAhJG9tcCBkZWNsYXJlIHRhcmdldCBp bmRpcmVjdCAoYSA+IDApIHRvIChzdWI1KSAhIHsgZGctZXJyb3IgIklORElSRUNUIGNsYXVz ZSBhdCAuMS4gcmVxdWlyZXMgYSBjb25zdGFudCBsb2dpY2FsIGV4cHJlc3Npb24iIH0KKyAg ZW5kIHN1YnJvdXRpbmUKKworICAhIENvbXBpbGUtdGltZSBjb25zdGFudCBleHByZXNzaW9u cyBhcmUgcGVybWlzc2libGUuCisgIHN1YnJvdXRpbmUgc3ViNgorICAgICEkb21wIGRlY2xh cmUgdGFyZ2V0IGluZGlyZWN0IChYIC5lcS4gWSkgdG8gKHN1YjYpCisgIGVuZCBzdWJyb3V0 aW5lCisKKyAgc3Vicm91dGluZSBzdWI3CisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgaW5k aXJlY3QgISB7IGRnLXdhcm5pbmcgIk9NUCBERUNMQVJFIFRBUkdFVCBkaXJlY3RpdmUgYXQg LjEuIHdpdGggb25seSBERVZJQ0VfVFlQRSBvciBJTkRJUkVDVCBjbGF1c2VzIGlzIGlnbm9y ZWQiIH0KKyAgZW5kIHN1YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1YjgKKyAgICAhJG9t cCBkZWNsYXJlIHRhcmdldCBpbmRpcmVjdCAoLnRydWUuKSBpbmRpcmVjdCAoLmZhbHNlLikg dG8gKHN1YjgpICEgeyBkZy1lcnJvciAiRHVwbGljYXRlZCAuaW5kaXJlY3QuIGNsYXVzZSBh dCAuMS4iIH0KKyAgZW5kIHN1YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1YjkKKyAgICAh JG9tcCBkZWNsYXJlIHRhcmdldCB0byAoc3ViOSkgaW5kaXJlY3QgKCJhYnMiKSAhIHsgZGct ZXJyb3IgIklORElSRUNUIGNsYXVzZSBhdCAuMS4gcmVxdWlyZXMgYSBjb25zdGFudCBsb2dp Y2FsIGV4cHJlc3Npb24iIH0KKyAgZW5kIHN1YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1 YjEwCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgdG8gKHN1YjEwKSBpbmRpcmVjdCAoNS41 KSAhIHsgZGctZXJyb3IgIklORElSRUNUIGNsYXVzZSBhdCAuMS4gcmVxdWlyZXMgYSBjb25z dGFudCBsb2dpY2FsIGV4cHJlc3Npb24iIH0KKyAgZW5kIHN1YnJvdXRpbmUKKworICBzdWJy b3V0aW5lIHN1YjExCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgaW5kaXJlY3QgKC50cnVl LikgZGV2aWNlX3R5cGUgKGhvc3QpIGVudGVyIChzdWIxMSkgISB7IGRnLWVycm9yICJERVZJ Q0VfVFlQRSBtdXN0IGJlIEFOWSB3aGVuIHVzZWQgd2l0aCBJTkRJUkVDVCBhdCAuMS4iIH0K KyAgZW5kIHN1YnJvdXRpbmUKKworICBzdWJyb3V0aW5lIHN1YjEyCisgICAgISRvbXAgZGVj bGFyZSB0YXJnZXQgaW5kaXJlY3QgKC5mYWxzZS4pIGRldmljZV90eXBlIChub2hvc3QpIGVu dGVyIChzdWIxMikKKyAgZW5kIHN1YnJvdXRpbmUKK2VuZCBtb2R1bGUKZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZWNsYXJlLXRhcmdldC1pbmRpcmVj dC0yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZWNsYXJlLXRhcmdl dC1pbmRpcmVjdC0yLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uZjZiM2FlMTc4NTYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2dvbXAvZGVjbGFyZS10YXJnZXQtaW5kaXJlY3QtMi5mOTAKQEAgLTAsMCArMSwy NSBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLW9wdGlvbnMgIi1mb3Blbm1wIC1m ZHVtcC10cmVlLWdpbXBsZSIgfQorCittb2R1bGUgbQorY29udGFpbnMKKyAgc3Vicm91dGlu ZSBzdWIxCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgaW5kaXJlY3QgZW50ZXIgKHN1YjEp CisgIGVuZCBzdWJyb3V0aW5lCisgICEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJf X2F0dHJpYnV0ZV9fXFxcKFxcXChvbXAgZGVjbGFyZSB0YXJnZXQsIG9tcCBkZWNsYXJlIHRh cmdldCBpbmRpcmVjdFxcXClcXFwpXFxcbi4qXFxcbnZvaWQgc3ViMSIgImdpbXBsZSIgfSB9 CisKKyAgc3Vicm91dGluZSBzdWIyCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgaW5kaXJl Y3QgKC5mYWxzZS4pIHRvIChzdWIyKQorICBlbmQgc3Vicm91dGluZQorICAhIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcCAiX19hdHRyaWJ1dGVfX1xcXChcXFwob21wIGRlY2xhcmUg dGFyZ2V0XFxcKVxcXClcXFxuLipcXFxudm9pZCBzdWIyIiAiZ2ltcGxlIiB9IH0KKworICBz dWJyb3V0aW5lIHN1YjMKKyAgICAhJG9tcCBkZWNsYXJlIHRhcmdldCBpbmRpcmVjdCAoLnRy dWUuKSB0byAoc3ViMykKKyAgZW5kIHN1YnJvdXRpbmUKKyAgISB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAgIl9fYXR0cmlidXRlX19cXFwoXFxcKG9tcCBkZWNsYXJlIHRhcmdldCwg b21wIGRlY2xhcmUgdGFyZ2V0IGluZGlyZWN0XFxcKVxcXClcXFxuLipcXFxudm9pZCBzdWIz IiAiZ2ltcGxlIiB9IH0KKworICBzdWJyb3V0aW5lIHN1YjQKKyAgICAhJG9tcCBkZWNsYXJl IHRhcmdldCBpbmRpcmVjdCAoLmZhbHNlLikgZW50ZXIgKHN1YjQpCisgIGVuZCBzdWJyb3V0 aW5lCisgICEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJfX2F0dHJpYnV0ZV9fXFxc KFxcXChvbXAgZGVjbGFyZSB0YXJnZXRcXFwpXFxcKVxcXG4uKlxcXG52b2lkIHN1YjQiICJn aW1wbGUiIH0gfQorZW5kIG1vZHVsZQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUv bGliZ29tcC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTEuZjkwIGIvbGliZ29t cC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTEu ZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zOWE5MWRmY2Rj YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJh bi9kZWNsYXJlLXRhcmdldC1pbmRpcmVjdC0xLmY5MApAQCAtMCwwICsxLDM5IEBACishIHsg ZGctZG8gcnVuIH0KKworbW9kdWxlIG0KK2NvbnRhaW5zCisgIGludGVnZXIgZnVuY3Rpb24g Zm9vICgpCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgdG8gKGZvbykgaW5kaXJlY3QKKyAg ICBmb28gPSA1CisgIGVuZCBmdW5jdGlvbgorCisgIGludGVnZXIgZnVuY3Rpb24gYmFyICgp CisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgdG8gKGJhcikgaW5kaXJlY3QKKyAgICBiYXIg PSA4CisgIGVuZCBmdW5jdGlvbgorCisgIGludGVnZXIgZnVuY3Rpb24gYmF6ICgpCisgICAg ISRvbXAgZGVjbGFyZSB0YXJnZXQgdG8gKGJheikgaW5kaXJlY3QKKyAgICBiYXogPSAxMQor ICBlbmQgZnVuY3Rpb24KK2VuZCBtb2R1bGUKKworcHJvZ3JhbSBtYWluCisgIHVzZSBtCisg IGltcGxpY2l0IG5vbmUKKworICBpbnRlZ2VyIDo6IHgsIGV4cGVjdGVkCisgIHByb2NlZHVy ZSAoZm9vKSwgcG9pbnRlciA6OiBmb29fcHRyLCBiYXJfcHRyLCBiYXpfcHRyCisKKyAgZm9v X3B0ciA9PiBmb28KKyAgYmFyX3B0ciA9PiBiYXIKKyAgYmF6X3B0ciA9PiBiYXoKKworICBl eHBlY3RlZCA9IGZvbyAoKSArIGJhciAoKSArIGJheiAoKQorCisgICEkb21wIHRhcmdldCBt YXAgKHRvOiBmb29fcHRyLCBiYXJfcHRyLCBiYXpfcHRyKSBtYXAgKGZyb206IHgpCisgICAg eCA9IGZvb19wdHIgKCkgKyBiYXJfcHRyICgpICsgYmF6X3B0ciAoKQorICAhJG9tcCBlbmQg dGFyZ2V0CisKKyAgc3RvcCB4IC0gZXhwZWN0ZWQKK2VuZCBwcm9ncmFtCmRpZmYgLS1naXQg YS9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVjbGFyZS10YXJnZXQtaW5k aXJlY3QtMi5mOTAgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vZGVjbGFy ZS10YXJnZXQtaW5kaXJlY3QtMi5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmQzYmFhODFkZDA3Ci0tLSAvZGV2L251bGwKKysrIGIvbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTIuZjkwCkBA IC0wLDAgKzEsNTMgQEAKKyEgeyBkZy1kbyBydW4gfQorCittb2R1bGUgbQorY29udGFpbnMK KyAgaW50ZWdlciBmdW5jdGlvbiBmb28gKCkKKyAgICAhJG9tcCBkZWNsYXJlIHRhcmdldCB0 byAoZm9vKSBpbmRpcmVjdAorICAgIGZvbyA9IDUKKyAgZW5kIGZ1bmN0aW9uCisKKyAgaW50 ZWdlciBmdW5jdGlvbiBiYXIgKCkKKyAgICAhJG9tcCBkZWNsYXJlIHRhcmdldCB0byAoYmFy KSBpbmRpcmVjdAorICAgIGJhciA9IDgKKyAgZW5kIGZ1bmN0aW9uCisKKyAgaW50ZWdlciBm dW5jdGlvbiBiYXogKCkKKyAgICAhJG9tcCBkZWNsYXJlIHRhcmdldCB0byAoYmF6KSBpbmRp cmVjdAorICAgIGJheiA9IDExCisgIGVuZCBmdW5jdGlvbgorZW5kIG1vZHVsZQorCitwcm9n cmFtIG1haW4KKyAgdXNlIG0KKyAgaW1wbGljaXQgbm9uZQorCisgIHR5cGUgZnAKKyAgICBw cm9jZWR1cmUgKGZvbyksIHBvaW50ZXIsIG5vcGFzcyA6OiBmID0+IG51bGwgKCkKKyAgZW5k IHR5cGUKKworICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogTiA9IDI1NgorICBpbnRlZ2VyIDo6 IGksIHggPSAwLCBleHBlY3RlZCA9IDA7CisgIHR5cGUgKGZwKSA6OiBmbl9wdHIgKE4pCisK KyAgZG8gaSA9IDEsIE4KKyAgICBzZWxlY3QgY2FzZSAobW9kIChpLCAzKSkKKyAgICAgIGNh c2UgKDApCisgICAgICAgIGZuX3B0ciAoaSklZiA9PiBmb28KKyAgICAgIGNhc2UgKDEpCisg ICAgICAgIGZuX3B0ciAoaSklZiA9PiBiYXIKKyAgICAgIGNhc2UgKDIpCisgICAgICAgIGZu X3B0ciAoaSklZiA9PiBiYXoKKyAgICBlbmQgc2VsZWN0CisgICAgZXhwZWN0ZWQgPSBleHBl Y3RlZCArIGZuX3B0ciAoaSklZiAoKQorICBlbmQgZG8KKworICAhJG9tcCB0YXJnZXQgdGVh bXMgZGlzdHJpYnV0ZSBwYXJhbGxlbCBkbyAmCisgICEkb21wICYgcmVkdWN0aW9uKCs6IHgp IG1hcCAodG86IGZuX3B0cikgbWFwICh0b2Zyb206IHgpCisgICAgZG8gaSA9IDEsIE4KKyAg ICAgIHggPSB4ICsgZm5fcHRyIChpKSVmICgpCisgICAgZW5kIGRvCisgICEkb21wIGVuZCB0 YXJnZXQgdGVhbXMgZGlzdHJpYnV0ZSBwYXJhbGxlbCBkbworCisgIHN0b3AgeCAtIGV4cGVj dGVkCitlbmQgcHJvZ3JhbQpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29t cC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTMuZjkwIGIvbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5mb3J0cmFuL2RlY2xhcmUtdGFyZ2V0LWluZGlyZWN0LTMuZjkwCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZjk5ODkyZjI1YwotLS0g L2Rldi9udWxsCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9kZWNs YXJlLXRhcmdldC1pbmRpcmVjdC0zLmY5MApAQCAtMCwwICsxLDI1IEBACishIHsgZGctZG8g cnVuIH0KKworISBDaGVjayB0aGF0IGluZGlyZWN0IGNhbGxzIHdvcmsgb24gcHJvY2VkdXJl cyBwYXNzZWQgaW4gdmlhIGEgZHVtbXkgYXJndW1lbnQKKworbW9kdWxlIG0KK2NvbnRhaW5z CisgIHN1YnJvdXRpbmUgYmFyCisgICAgISRvbXAgZGVjbGFyZSB0YXJnZXQgZW50ZXIoYmFy KSBpbmRpcmVjdAorICBlbmQgc3Vicm91dGluZQorCisgIHN1YnJvdXRpbmUgZm9vKGYpCisg ICAgcHJvY2VkdXJlKGJhcikgOjogZgorCisgICAgISRvbXAgdGFyZ2V0CisgICAgICBjYWxs IGYKKyAgICAhJG9tcCBlbmQgdGFyZ2V0CisgIGVuZCBzdWJyb3V0aW5lCitlbmQgbW9kdWxl CisKK3Byb2dyYW0gbWFpbgorICB1c2UgbQorICBpbXBsaWNpdCBub25lCisKKyAgY2FsbCBm b28oYmFyKQorZW5kIHByb2dyYW0KLS0gCjIuMzQuMQoK --------------0EpKZnsa0nJzbe7QhXuhNvuk--