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.129.124]) by sourceware.org (Postfix) with ESMTPS id C320F3854160 for ; Mon, 12 Jun 2023 15:33:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C320F3854160 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=1686583991; 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=x3OaFfB0OPOuhKgnrwPMY9ss8qcCNevDApfnXjdGnlQ=; b=BdRClljZAnUILTogt6WlQEoFMXZV+YYzLFe2mO6K2rDkui4UEUCxY2kbo1p/nERNEPMf9k SA9e62UL+ROTFla+MN6W+R/EG2BFV0uRt+Zd/HlC5zvpO0ohbpTLvzMT3tQlrXTlcHIeqA q1z0ksyZCqRY7HBjElA4V26fX43W84E= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-121-0TtMpCQpPyK3mcYT13Ls4Q-1; Mon, 12 Jun 2023 11:33:09 -0400 X-MC-Unique: 0TtMpCQpPyK3mcYT13Ls4Q-1 Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-75d5588d7e9so534479685a.1 for ; Mon, 12 Jun 2023 08:33:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686583989; x=1689175989; 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=gzpF9h3wH9CBkv0Qsp8Am7S9P7jMBSsmTy7WmQ4Jrk4=; b=gPMeBN15r3DZDPqgaxqI7s/a+WZCDSBYIrLDDUefhY+ExbiWISJqU2b3ljKjlJVDPy Eu+LeWwUt5xkizl36WVrNpSWZWiuOT6BRDf4B92PKOE4BmbTZvixnul7BCvgqeZcmqxd YCakCwVJfpqVK03pbev8btfeLTYwNvdXRm7ko4FmOHcZvQ3Al1sdw1vB86/niAdSEGQ/ KoZuupImUjNdIjCGmHhJG0bHoyw/Zv7+xM6GCop/PWUvi/+7fJmHww22dmCvinlKwn7x GVIctdJZ7bn3+voWYqIkOVTlVLWIRomaJnoNbaHQfDRFyb6Dn1w+3QTW2KarRdXOmxK1 h+BQ== X-Gm-Message-State: AC+VfDw9ClEcq9N3BRP585X49MhxK45+nSuscECkY+cfRCSxsNGZi2Kw HB6RcB8adUQ4UrAOTMiDwKkhvkibiNOsbBjLCXqJ4pP+OBHR20VBY1UQg/TLg8ynSlsKxLlDZMF es0WIp0e7MOsyIyUGoEcISNM4iyYVmCe3Kg+JiImPM0Ad6D9tNtWA/Lwj+r5nzAL26+9FPXmRWE WAyw== X-Received: by 2002:a05:620a:688e:b0:75e:c36c:e3e8 with SMTP id rv14-20020a05620a688e00b0075ec36ce3e8mr10813696qkn.37.1686583988851; Mon, 12 Jun 2023 08:33:08 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4ESFg+kKv+vzLDJVEnzhampFYbvzIoyukGZ3rdSMQ+ihs7IglEBEgivUha5jW3sppEGlkvZg== X-Received: by 2002:a05:620a:688e:b0:75e:c36c:e3e8 with SMTP id rv14-20020a05620a688e00b0075ec36ce3e8mr10813679qkn.37.1686583988531; Mon, 12 Jun 2023 08:33:08 -0700 (PDT) Received: from ?IPV6:2607:fea8:51df:4200::ca58? ([2607:fea8:51df:4200::ca58]) by smtp.gmail.com with ESMTPSA id v11-20020ae9e30b000000b0074fb15e2319sm2922118qkf.122.2023.06.12.08.33.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 12 Jun 2023 08:33:08 -0700 (PDT) Message-ID: <8989b7ec-874e-dc64-7f2c-0aaf9924ba78@redhat.com> Date: Mon, 12 Jun 2023 11:33:07 -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 13/17] - Remove type from range_op_handler table selection X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------QhEh2qgcpyHv9EqF4hHCj4WX" Content-Language: en-US X-Spam-Status: No, score=-12.2 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,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. --------------QhEh2qgcpyHv9EqF4hHCj4WX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Lucky 13.  WIth the unified table complete, it is no longer necessary to specify a type when constructing a range_op_handler. This patch removes that requirement. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew --------------QhEh2qgcpyHv9EqF4hHCj4WX Content-Type: text/x-patch; charset=UTF-8; name="0013-Remove-type-from-range_op_handler-table-selection.patch" Content-Disposition: attachment; filename*0="0013-Remove-type-from-range_op_handler-table-selection.patch" Content-Transfer-Encoding: base64 RnJvbSA4OTM0ODMwMzMzOTMzMzQ5ZDQxZTYyZjlmZDZhM2QyMWFiNzExNTBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogU2F0LCAxMCBKdW4gMjAyMyAxNjo0MToyMCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MTddIFJlbW92ZSB0eXBlIGZyb20gcmFuZ2Vfb3BfaGFuZGxlciB0YWJsZSBzZWxlY3Rpb24KCldp dGggdGhlIHVuaWZpZWQgdGFibGUgY29tcGxldGUsIHdlIG5vIGxvb25nZXIgbmVlZCB0byBzcGVj aWZ5IGEgdHlwZQp0byBjaG9vc2UgYSB0YWJsZSB3aGVuIHNldHRpbmcgYSByYW5nZV9vcF9oYW5k bGVyLgoKCSogZ2ltcGxlLXJhbmdlLWdvcmkuY2MgKGdvcmlfY29tcHV0ZTo6Y29uZGV4cHJfYWRq dXN0KTogRG8gbm90CglwYXNzIHR5cGUuCgkqIGdpbXBsZS1yYW5nZS1vcC5jYyAoZ2V0X2NvZGUp OiBSZW5hbWUgZnJvbSBnZXRfY29kZV9hbmRfdHlwZQoJYW5kIHNpbXBsaWZ5LgoJKGdpbXBsZV9y YW5nZV9vcF9oYW5kbGVyOjpzdXBwb3J0ZWRfcCk6IE5vIG5lZWQgZm9yIHR5cGUuCgkoZ2ltcGxl X3JhbmdlX29wX2hhbmRsZXI6OmdpbXBsZV9yYW5nZV9vcF9oYW5kbGVyKTogRGl0dG8uCgkoY2Zu X2NvcHlzaWduOjpmb2xkX3JhbmdlKTogRGl0dG8uCgkoY2ZuX3Vic2FuOjpmb2xkX3JhbmdlKTog RGl0dG8uCgkqIGlwYS1jcC5jYyAoaXBhX3ZyX29wZXJhdGlvbl9hbmRfdHlwZV9lZmZlY3RzKTog RGl0dG8uCgkqIGlwYS1mbnN1bW1hcnkuY2MgKGV2YWx1YXRlX2NvbmRpdGlvbnNfZm9yX2tub3du X2FyZ3MpOiBEaXR0by4KCSogcmFuZ2Utb3AtZmxvYXQuY2MgKG9wZXJhdG9yX3BsdXM6Om9wMV9y YW5nZSk6IERpdHRvLgoJKG9wZXJhdG9yX211bHQ6Om9wMV9yYW5nZSk6IERpdHRvLgoJKHJhbmdl X29wX2Zsb2F0X3Rlc3RzKTogRGl0dG8uCgkqIHJhbmdlLW9wLmNjIChnZXRfb3BfaGFuZGxlcik6 IFJlbW92ZS4KCShyYW5nZV9vcF9oYW5kbGVyOjpzZXRfb3BfaGFuZGxlcik6IFJlbW92ZS4KCShv cGVyYXRvcl9wbHVzOjpvcDFfcmFuZ2UpOiBObyBuZWVkIGZvciB0eXBlLgoJKG9wZXJhdG9yX21p bnVzOjpvcDFfcmFuZ2UpOiBEaXR0by4KCShvcGVyYXRvcl9tdWx0OjpvcDFfcmFuZ2UpOiBEaXR0 by4KCShvcGVyYXRvcl9leGFjdF9kaXZpZGU6Om9wMV9yYW5nZSk6IERpdHRvLgoJKG9wZXJhdG9y X2Nhc3Q6Om9wMV9yYW5nZSk6IERpdHRvLgoJKHBlcmF0b3JfYml0d2lzZV9ub3Q6OmZvbGRfcmFu Z2UpOiBEaXR0by4KCShvcGVyYXRvcl9uZWdhdGU6OmZvbGRfcmFuZ2UpOiBEaXR0by4KCSogcmFu Z2Utb3AuaCAocmFuZ2Vfb3BfaGFuZGxlcjo6cmFuZ2Vfb3BfaGFuZGxlcik6IFJlbW92ZSB0eXBl IHBhcmFtLgoJKHJhbmdlX2Nhc3QpOiBObyBuZWVkIGZvciB0eXBlLgoJKHJhbmdlX29wX3RhYmxl OjpvcGVyYXRvcltdKTogQ2hlY2sgZm9yIGVudW1fY29kZSA+PSAwLgoJKiB0cmVlLWRhdGEtcmVm LmNjIChjb21wdXRlX2Rpc3RyaWJ1dGl2ZV9yYW5nZSk6IE5vIG5lZWQgZm9yIHR5cGUuCgkqIHRy ZWUtc3NhLWxvb3AtdW5zd2l0Y2guY2MgKHVuc3dpdGNoX3ByZWRpY2F0ZSk6IERpdHRvLgoJKiB2 YWx1ZS1xdWVyeS5jYyAocmFuZ2VfcXVlcnk6OmdldF90cmVlX3JhbmdlKTogRGl0dG8uCgkqIHZh bHVlLXJlbGF0aW9uLmNjIChyZWxhdGlvbl9vcmFjbGU6OnZhbGlkYXRlX3JlbGF0aW9uKTogRGl0 dG8uCgkqIHZyLXZhbHVlcy5jYyAocmFuZ2Vfb2ZfdmFyX2luX2xvb3ApOiBEaXR0by4KCShzaW1w bGlmeV91c2luZ19yYW5nZXM6OmZvbGRfY29uZF93aXRoX29wcyk6IERpdHRvLgotLS0KIGdjYy9n aW1wbGUtcmFuZ2UtZ29yaS5jYyAgICAgIHwgIDIgKy0KIGdjYy9naW1wbGUtcmFuZ2Utb3AuY2Mg ICAgICAgIHwgNDIgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGdjYy9pcGEt Y3AuY2MgICAgICAgICAgICAgICAgIHwgIDYgKystLS0KIGdjYy9pcGEtZm5zdW1tYXJ5LmNjICAg ICAgICAgIHwgIDYgKystLS0KIGdjYy9yYW5nZS1vcC1mbG9hdC5jYyAgICAgICAgIHwgIDYgKyst LS0KIGdjYy9yYW5nZS1vcC5jYyAgICAgICAgICAgICAgIHwgMzkgKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIGdjYy9yYW5nZS1vcC5oICAgICAgICAgICAgICAgIHwgMTAgKysrLS0t LS0tCiBnY2MvdHJlZS1kYXRhLXJlZi5jYyAgICAgICAgICB8ICA0ICsrLS0KIGdjYy90cmVlLXNz YS1sb29wLXVuc3dpdGNoLmNjIHwgIDIgKy0KIGdjYy92YWx1ZS1xdWVyeS5jYyAgICAgICAgICAg IHwgIDUgKystLS0KIGdjYy92YWx1ZS1yZWxhdGlvbi5jYyAgICAgICAgIHwgIDIgKy0KIGdjYy92 ci12YWx1ZXMuY2MgICAgICAgICAgICAgIHwgIDYgKystLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDQz IGluc2VydGlvbnMoKyksIDg3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9naW1wbGUt cmFuZ2UtZ29yaS5jYyBiL2djYy9naW1wbGUtcmFuZ2UtZ29yaS5jYwppbmRleCBhMWM4ZDUxZTQ4 NC4uYWJjNzBjZDU0ZWUgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUtcmFuZ2UtZ29yaS5jYworKysg Yi9nY2MvZ2ltcGxlLXJhbmdlLWdvcmkuY2MKQEAgLTE0NzgsNyArMTQ3OCw3IEBAIGdvcmlfY29t cHV0ZTo6Y29uZGV4cHJfYWRqdXN0ICh2cmFuZ2UgJnIxLCB2cmFuZ2UgJnIyLCBnaW1wbGUgKiwg dHJlZSBjb25kLAogICB0cmVlIHR5cGUgPSBUUkVFX1RZUEUgKGdpbXBsZV9hc3NpZ25fcmhzMSAo Y29uZF9kZWYpKTsKICAgaWYgKCFyYW5nZV9jb21wYXRpYmxlX3AgKHR5cGUsIFRSRUVfVFlQRSAo Z2ltcGxlX2Fzc2lnbl9yaHMyIChjb25kX2RlZikpKSkKICAgICByZXR1cm4gZmFsc2U7Ci0gIHJh bmdlX29wX2hhbmRsZXIgaGFuZCAoZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAoY29uZF9kZWYpLCB0 eXBlKTsKKyAgcmFuZ2Vfb3BfaGFuZGxlciBoYW5kIChnaW1wbGVfYXNzaWduX3Joc19jb2RlIChj b25kX2RlZikpOwogICBpZiAoIWhhbmQpCiAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg YS9nY2MvZ2ltcGxlLXJhbmdlLW9wLmNjIGIvZ2NjL2dpbXBsZS1yYW5nZS1vcC5jYwppbmRleCBi NmIxMGU0N2I3OC4uNGNiYzk4MWVlMDQgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUtcmFuZ2Utb3Au Y2MKKysrIGIvZ2NjL2dpbXBsZS1yYW5nZS1vcC5jYwpAQCAtOTQsMjggKzk0LDE0IEBAIGdpbXBs ZV9yYW5nZV9iYXNlX29mX2Fzc2lnbm1lbnQgKGNvbnN0IGdpbXBsZSAqc3RtdCkKIAogLy8gSWYg c3RhdGVtZW50IGlzIHN1cHBvcnRlZCBieSByYW5nZS1vcHMsIHNldCB0aGUgQ09ERSBhbmQgcmV0 dXJuIHRoZSBUWVBFLgogCi1zdGF0aWMgdHJlZQotZ2V0X2NvZGVfYW5kX3R5cGUgKGdpbXBsZSAq cywgZW51bSB0cmVlX2NvZGUgJmNvZGUpCitzdGF0aWMgaW5saW5lIGVudW0gdHJlZV9jb2RlCitn ZXRfY29kZSAoZ2ltcGxlICpzKQogewotICB0cmVlIHR5cGUgPSBOVUxMX1RSRUU7Ci0gIGNvZGUg PSBOT1BfRVhQUjsKLQogICBpZiAoY29uc3QgZ2Fzc2lnbiAqYXNzID0gZHluX2Nhc3Q8Y29uc3Qg Z2Fzc2lnbiAqPiAocykpCi0gICAgewotICAgICAgY29kZSA9IGdpbXBsZV9hc3NpZ25fcmhzX2Nv ZGUgKGFzcyk7Ci0gICAgICAvLyBUaGUgTEhTIG9mIGEgY29tcGFyaXNvbiBpcyBhbHdheXMgYW4g aW50LCBzbyB3ZSBtdXN0IGxvb2sgYXQKLSAgICAgIC8vIHRoZSBvcGVyYW5kcy4KLSAgICAgIGlm IChUUkVFX0NPREVfQ0xBU1MgKGNvZGUpID09IHRjY19jb21wYXJpc29uKQotCXR5cGUgPSBUUkVF X1RZUEUgKGdpbXBsZV9hc3NpZ25fcmhzMSAoYXNzKSk7Ci0gICAgICBlbHNlCi0JdHlwZSA9IFRS RUVfVFlQRSAoZ2ltcGxlX2Fzc2lnbl9saHMgKGFzcykpOwotICAgIH0KLSAgZWxzZSBpZiAoY29u c3QgZ2NvbmQgKmNvbmQgPSBkeW5fY2FzdDxjb25zdCBnY29uZCAqPiAocykpCi0gICAgewotICAg ICAgY29kZSA9IGdpbXBsZV9jb25kX2NvZGUgKGNvbmQpOwotICAgICAgdHlwZSA9IFRSRUVfVFlQ RSAoZ2ltcGxlX2NvbmRfbGhzIChjb25kKSk7Ci0gICAgfQotICByZXR1cm4gdHlwZTsKKyAgICBy ZXR1cm4gZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAoYXNzKTsKKyAgaWYgKGNvbnN0IGdjb25kICpj b25kID0gZHluX2Nhc3Q8Y29uc3QgZ2NvbmQgKj4gKHMpKQorICAgIHJldHVybiBnaW1wbGVfY29u ZF9jb2RlIChjb25kKTsKKyAgcmV0dXJuIEVSUk9SX01BUks7CiB9CiAKIC8vIElmIHN0YXRlbWVu dCBTIGhhcyBhIHN1cHBvcnRlZCByYW5nZV9vcCBoYW5kbGVyIHJldHVybiBUUlVFLgpAQCAtMTIz LDkgKzEwOSw4IEBAIGdldF9jb2RlX2FuZF90eXBlIChnaW1wbGUgKnMsIGVudW0gdHJlZV9jb2Rl ICZjb2RlKQogYm9vbAogZ2ltcGxlX3JhbmdlX29wX2hhbmRsZXI6OnN1cHBvcnRlZF9wIChnaW1w bGUgKnMpCiB7Ci0gIGVudW0gdHJlZV9jb2RlIGNvZGU7Ci0gIHRyZWUgdHlwZSA9IGdldF9jb2Rl X2FuZF90eXBlIChzLCBjb2RlKTsKLSAgaWYgKHR5cGUgJiYgcmFuZ2Vfb3BfaGFuZGxlciAoY29k ZSwgdHlwZSkpCisgIGVudW0gdHJlZV9jb2RlIGNvZGUgPSBnZXRfY29kZSAocyk7CisgIGlmIChy YW5nZV9vcF9oYW5kbGVyIChjb2RlKSkKICAgICByZXR1cm4gdHJ1ZTsKICAgaWYgKGlzX2EgPGdj YWxsICo+IChzKSAmJiBnaW1wbGVfcmFuZ2Vfb3BfaGFuZGxlciAocykpCiAgICAgcmV0dXJuIHRy dWU7CkBAIC0xMzUsMTQgKzEyMCwxMSBAQCBnaW1wbGVfcmFuZ2Vfb3BfaGFuZGxlcjo6c3VwcG9y dGVkX3AgKGdpbXBsZSAqcykKIC8vIENvbnN0cnVjdCBhIGhhbmRsZXIgb2JqZWN0IGZvciBzdGF0 ZW1lbnQgUy4KIAogZ2ltcGxlX3JhbmdlX29wX2hhbmRsZXI6OmdpbXBsZV9yYW5nZV9vcF9oYW5k bGVyIChnaW1wbGUgKnMpCisgIDogcmFuZ2Vfb3BfaGFuZGxlciAoZ2V0X2NvZGUgKHMpKQogewot ICBlbnVtIHRyZWVfY29kZSBjb2RlOwotICB0cmVlIHR5cGUgPSBnZXRfY29kZV9hbmRfdHlwZSAo cywgY29kZSk7CiAgIG1fc3RtdCA9IHM7CiAgIG1fb3AxID0gTlVMTF9UUkVFOwogICBtX29wMiA9 IE5VTExfVFJFRTsKLSAgaWYgKHR5cGUpCi0gICAgc2V0X29wX2hhbmRsZXIgKGNvZGUsIHR5cGUp OwogCiAgIGlmIChtX29wZXJhdG9yKQogICAgIHN3aXRjaCAoZ2ltcGxlX2NvZGUgKG1fc3RtdCkp CkBAIC0zODIsOCArMzY0LDggQEAgcHVibGljOgogCQkJICAgY29uc3QgZnJhbmdlICZyaCwgcmVs YXRpb25fdHJpbykgY29uc3Qgb3ZlcnJpZGUKICAgewogICAgIGZyYW5nZSBuZWc7Ci0gICAgcmFu Z2Vfb3BfaGFuZGxlciBhYnNfb3AgKEFCU19FWFBSLCB0eXBlKTsKLSAgICByYW5nZV9vcF9oYW5k bGVyIG5lZ19vcCAoTkVHQVRFX0VYUFIsIHR5cGUpOworICAgIHJhbmdlX29wX2hhbmRsZXIgYWJz X29wIChBQlNfRVhQUik7CisgICAgcmFuZ2Vfb3BfaGFuZGxlciBuZWdfb3AgKE5FR0FURV9FWFBS KTsKICAgICBpZiAoIWFic19vcCB8fCAhYWJzX29wLmZvbGRfcmFuZ2UgKHIsIHR5cGUsIGxoLCBm cmFuZ2UgKHR5cGUpKSkKICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIW5lZ19vcCB8fCAh bmVnX29wLmZvbGRfcmFuZ2UgKG5lZywgdHlwZSwgciwgZnJhbmdlICh0eXBlKSkpCkBAIC0xMDkx LDcgKzEwNzMsNyBAQCBwdWJsaWM6CiAgIHZpcnR1YWwgYm9vbCBmb2xkX3JhbmdlIChpcmFuZ2Ug JnIsIHRyZWUgdHlwZSwgY29uc3QgaXJhbmdlICZsaCwKIAkJCSAgIGNvbnN0IGlyYW5nZSAmcmgs IHJlbGF0aW9uX3RyaW8gcmVsKSBjb25zdAogICB7Ci0gICAgcmFuZ2Vfb3BfaGFuZGxlciBoYW5k bGVyIChtX2NvZGUsIHR5cGUpOworICAgIHJhbmdlX29wX2hhbmRsZXIgaGFuZGxlciAobV9jb2Rl KTsKICAgICBnY2NfY2hlY2tpbmdfYXNzZXJ0IChoYW5kbGVyKTsKIAogICAgIGJvb2wgc2F2ZWRf ZmxhZ193cmFwdiA9IGZsYWdfd3JhcHY7CmRpZmYgLS1naXQgYS9nY2MvaXBhLWNwLmNjIGIvZ2Nj L2lwYS1jcC5jYwppbmRleCAwZjM3YmI1ZTMzNi4uMGJiZDI4OTA3OGQgMTAwNjQ0Ci0tLSBhL2dj Yy9pcGEtY3AuY2MKKysrIGIvZ2NjL2lwYS1jcC5jYwpAQCAtMTkxMSw3ICsxOTExLDcgQEAgaXBh X3ZyX29wZXJhdGlvbl9hbmRfdHlwZV9lZmZlY3RzICh2YWx1ZV9yYW5nZSAqZHN0X3ZyLAogICBp ZiAoIWlyYW5nZTo6c3VwcG9ydHNfcCAoZHN0X3R5cGUpIHx8ICFpcmFuZ2U6OnN1cHBvcnRzX3Ag KHNyY190eXBlKSkKICAgICByZXR1cm4gZmFsc2U7CiAKLSAgcmFuZ2Vfb3BfaGFuZGxlciBoYW5k bGVyIChvcGVyYXRpb24sIGRzdF90eXBlKTsKKyAgcmFuZ2Vfb3BfaGFuZGxlciBoYW5kbGVyIChv cGVyYXRpb24pOwogICByZXR1cm4gKGhhbmRsZXIKIAkgICYmIGhhbmRsZXIuZm9sZF9yYW5nZSAo KmRzdF92ciwgZHN0X3R5cGUsCiAJCQkJICpzcmNfdnIsIHZhbHVlX3JhbmdlIChkc3RfdHlwZSkp CkBAIC0xOTcwLDcgKzE5NzAsNyBAQCBpcGFfdmFsdWVfcmFuZ2VfZnJvbV9qZnVuYyAoaXBhX25v ZGVfcGFyYW1zICppbmZvLCBjZ3JhcGhfZWRnZSAqY3MsCiAJICB2YWx1ZV9yYW5nZSBvcF9yZXMs IHJlczsKIAkgIHRyZWUgb3AgPSBpcGFfZ2V0X2pmX3Bhc3NfdGhyb3VnaF9vcGVyYW5kIChqZnVu Yyk7CiAJICB2YWx1ZV9yYW5nZSBvcF92cjsKLQkgIHJhbmdlX29wX2hhbmRsZXIgaGFuZGxlciAo b3BlcmF0aW9uLCB2cl90eXBlKTsKKwkgIHJhbmdlX29wX2hhbmRsZXIgaGFuZGxlciAob3BlcmF0 aW9uKTsKIAogCSAgaXBhX3JhbmdlX3NldF9hbmRfbm9ybWFsaXplIChvcF92ciwgb3ApOwogCkBA IC0yNzY3LDcgKzI3NjcsNyBAQCBwcm9wYWdhdGVfdnJfYWNyb3NzX2p1bXBfZnVuY3Rpb24gKGNn cmFwaF9lZGdlICpjcywgaXBhX2p1bXBfZnVuYyAqamZ1bmMsCiAJICB0cmVlIG9wID0gaXBhX2dl dF9qZl9wYXNzX3Rocm91Z2hfb3BlcmFuZCAoamZ1bmMpOwogCSAgdmFsdWVfcmFuZ2Ugb3BfdnI7 CiAJICB2YWx1ZV9yYW5nZSBvcF9yZXMscmVzOwotCSAgcmFuZ2Vfb3BfaGFuZGxlciBoYW5kbGVy IChvcGVyYXRpb24sIG9wZXJhbmRfdHlwZSk7CisJICByYW5nZV9vcF9oYW5kbGVyIGhhbmRsZXIg KG9wZXJhdGlvbik7CiAKIAkgIGlwYV9yYW5nZV9zZXRfYW5kX25vcm1hbGl6ZSAob3BfdnIsIG9w KTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2lwYS1mbnN1bW1hcnkuY2MgYi9nY2MvaXBhLWZuc3VtbWFy eS5jYwppbmRleCBiMzI4YmI4Y2UxNC4uZWFlMmY5NDlmNDggMTAwNjQ0Ci0tLSBhL2djYy9pcGEt Zm5zdW1tYXJ5LmNjCisrKyBiL2djYy9pcGEtZm5zdW1tYXJ5LmNjCkBAIC00OTEsNyArNDkxLDcg QEAgZXZhbHVhdGVfY29uZGl0aW9uc19mb3Jfa25vd25fYXJncyAoc3RydWN0IGNncmFwaF9ub2Rl ICpub2RlLAogCQkgIHZhbHVlX3JhbmdlIHJlczsKIAkJICBpZiAoIW9wLT52YWxbMF0pCiAJCSAg ICB7Ci0JCSAgICAgIHJhbmdlX29wX2hhbmRsZXIgaGFuZGxlciAob3AtPmNvZGUsIG9wLT50eXBl KTsKKwkJICAgICAgcmFuZ2Vfb3BfaGFuZGxlciBoYW5kbGVyIChvcC0+Y29kZSk7CiAJCSAgICAg IGlmICghaGFuZGxlcgogCQkJICB8fCAhcmVzLnN1cHBvcnRzX3R5cGVfcCAob3AtPnR5cGUpCiAJ CQkgIHx8ICFoYW5kbGVyLmZvbGRfcmFuZ2UgKHJlcywgb3AtPnR5cGUsIHZyLApAQCAtNTAxLDcg KzUwMSw3IEBAIGV2YWx1YXRlX2NvbmRpdGlvbnNfZm9yX2tub3duX2FyZ3MgKHN0cnVjdCBjZ3Jh cGhfbm9kZSAqbm9kZSwKIAkJICBlbHNlIGlmICghb3AtPnZhbFsxXSkKIAkJICAgIHsKIAkJICAg ICAgdmFsdWVfcmFuZ2Ugb3AwOwotCQkgICAgICByYW5nZV9vcF9oYW5kbGVyIGhhbmRsZXIgKG9w LT5jb2RlLCBvcC0+dHlwZSk7CisJCSAgICAgIHJhbmdlX29wX2hhbmRsZXIgaGFuZGxlciAob3At PmNvZGUpOwogCiAJCSAgICAgIGlwYV9yYW5nZV9zZXRfYW5kX25vcm1hbGl6ZSAob3AwLCBvcC0+ dmFsWzBdKTsKIApAQCAtNTIwLDcgKzUyMCw3IEBAIGV2YWx1YXRlX2NvbmRpdGlvbnNfZm9yX2tu b3duX2FyZ3MgKHN0cnVjdCBjZ3JhcGhfbm9kZSAqbm9kZSwKIAkJewogCQkgIHZhbHVlX3Jhbmdl IHJlczsKIAkJICB2YWx1ZV9yYW5nZSB2YWxfdnI7Ci0JCSAgcmFuZ2Vfb3BfaGFuZGxlciBoYW5k bGVyIChjLT5jb2RlLCBib29sZWFuX3R5cGVfbm9kZSk7CisJCSAgcmFuZ2Vfb3BfaGFuZGxlciBo YW5kbGVyIChjLT5jb2RlKTsKIAogCQkgIGlwYV9yYW5nZV9zZXRfYW5kX25vcm1hbGl6ZSAodmFs X3ZyLCBjLT52YWwpOwogCmRpZmYgLS1naXQgYS9nY2MvcmFuZ2Utb3AtZmxvYXQuY2MgYi9nY2Mv cmFuZ2Utb3AtZmxvYXQuY2MKaW5kZXggNzU3NDg0YTlkZTkuLjI0ZjIyMzU4ODRmIDEwMDY0NAot LS0gYS9nY2MvcmFuZ2Utb3AtZmxvYXQuY2MKKysrIGIvZ2NjL3JhbmdlLW9wLWZsb2F0LmNjCkBA IC0yMjQ0LDcgKzIyNDQsNyBAQCBvcGVyYXRvcl9wbHVzOjpvcDFfcmFuZ2UgKGZyYW5nZSAmciwg dHJlZSB0eXBlLCBjb25zdCBmcmFuZ2UgJmxocywKIHsKICAgaWYgKGxocy51bmRlZmluZWRfcCAo KSkKICAgICByZXR1cm4gZmFsc2U7Ci0gIHJhbmdlX29wX2hhbmRsZXIgbWludXMgKE1JTlVTX0VY UFIsIHR5cGUpOworICByYW5nZV9vcF9oYW5kbGVyIG1pbnVzIChNSU5VU19FWFBSKTsKICAgaWYg KCFtaW51cykKICAgICByZXR1cm4gZmFsc2U7CiAgIGZyYW5nZSB3bGhzID0gZmxvYXRfd2lkZW5f bGhzX3JhbmdlICh0eXBlLCBsaHMpOwpAQCAtMjM2MSw3ICsyMzYxLDcgQEAgb3BlcmF0b3JfbXVs dDo6b3AxX3JhbmdlIChmcmFuZ2UgJnIsIHRyZWUgdHlwZSwKIHsKICAgaWYgKGxocy51bmRlZmlu ZWRfcCAoKSkKICAgICByZXR1cm4gZmFsc2U7Ci0gIHJhbmdlX29wX2hhbmRsZXIgcmRpdiAoUkRJ Vl9FWFBSLCB0eXBlKTsKKyAgcmFuZ2Vfb3BfaGFuZGxlciByZGl2IChSRElWX0VYUFIpOwogICBp ZiAoIXJkaXYpCiAgICAgcmV0dXJuIGZhbHNlOwogICBmcmFuZ2Ugd2xocyA9IGZsb2F0X3dpZGVu X2xoc19yYW5nZSAodHlwZSwgbGhzKTsKQEAgLTI3MTYsNyArMjcxNiw3IEBAIHJhbmdlX29wX2Zs b2F0X3Rlc3RzICgpCiAgIEFTU0VSVF9FUSAociwgcjEpOwogCiAgIC8vIFstSU5GLCtJTkZdICsg Wy1JTkYsK0lORl0gY291bGQgYmUgYSBOQU4uCi0gIHJhbmdlX29wX2hhbmRsZXIgcGx1cyAoUExV U19FWFBSLCBmbG9hdF90eXBlX25vZGUpOworICByYW5nZV9vcF9oYW5kbGVyIHBsdXMgKFBMVVNf RVhQUik7CiAgIHIwLnNldF92YXJ5aW5nIChmbG9hdF90eXBlX25vZGUpOwogICByMS5zZXRfdmFy eWluZyAoZmxvYXRfdHlwZV9ub2RlKTsKICAgcjAuY2xlYXJfbmFuICgpOwpkaWZmIC0tZ2l0IGEv Z2NjL3JhbmdlLW9wLmNjIGIvZ2NjL3JhbmdlLW9wLmNjCmluZGV4IDA0NmI3NjkxYmI2Li4zZThi MTIyMmIxYyAxMDA2NDQKLS0tIGEvZ2NjL3JhbmdlLW9wLmNjCisrKyBiL2djYy9yYW5nZS1vcC5j YwpAQCAtMTI1LDMwICsxMjUsMTEgQEAgdW5pZmllZF90YWJsZTo6dW5pZmllZF90YWJsZSAoKQog ICAvLyBzZXQgKE1BWF9FWFBSLCBvcF9tYXgpOwogfQogCi0vLyBUaGUgdGFibGVzIGFyZSBoaWRk ZW4gYW5kIGFjY2Vzc2VkIHZpYSBhIHNpbXBsZSBleHRlcm4gZnVuY3Rpb24uCi0KLXJhbmdlX29w ZXJhdG9yICoKLWdldF9vcF9oYW5kbGVyIChlbnVtIHRyZWVfY29kZSBjb2RlLCB0cmVlKQotewot ICByZXR1cm4gdW5pZmllZF90cmVlX3RhYmxlW2NvZGVdOwotfQotCiByYW5nZV9vcF9oYW5kbGVy OjpyYW5nZV9vcF9oYW5kbGVyICgpCiB7CiAgIG1fb3BlcmF0b3IgPSBOVUxMOwogfQogCi12b2lk Ci1yYW5nZV9vcF9oYW5kbGVyOjpzZXRfb3BfaGFuZGxlciAodHJlZV9jb2RlIGNvZGUsIHRyZWUg dHlwZSkKLXsKLSAgbV9vcGVyYXRvciA9IGdldF9vcF9oYW5kbGVyIChjb2RlLCB0eXBlKTsKLX0K LQotcmFuZ2Vfb3BfaGFuZGxlcjo6cmFuZ2Vfb3BfaGFuZGxlciAodHJlZV9jb2RlIGNvZGUsIHRy ZWUgdHlwZSkKLXsKLSAgc2V0X29wX2hhbmRsZXIgKGNvZGUsIHR5cGUpOwotfQotCiAvLyBDb25z dHJ1Y3Rpbmcgd2l0aG91dCBhIHR5cGUgbXVzdCBjb21lIGZyb20gdGhlIHVuaWZpZWQgdGFibGUu CiAKIHJhbmdlX29wX2hhbmRsZXI6OnJhbmdlX29wX2hhbmRsZXIgKHRyZWVfY29kZSBjb2RlKQpA QCAtMTY5Miw3ICsxNjczLDcgQEAgb3BlcmF0b3JfcGx1czo6b3AxX3JhbmdlIChpcmFuZ2UgJnIs IHRyZWUgdHlwZSwKICAgaWYgKGxocy51bmRlZmluZWRfcCAoKSkKICAgICByZXR1cm4gZmFsc2U7 CiAgIC8vIFN0YXJ0IHdpdGggdGhlIGRlZmF1bHQgb3BlcmF0aW9uLgotICByYW5nZV9vcF9oYW5k bGVyIG1pbnVzIChNSU5VU19FWFBSLCB0eXBlKTsKKyAgcmFuZ2Vfb3BfaGFuZGxlciBtaW51cyAo TUlOVVNfRVhQUik7CiAgIGlmICghbWludXMpCiAgICAgcmV0dXJuIGZhbHNlOwogICBib29sIHJl cyA9IG1pbnVzLmZvbGRfcmFuZ2UgKHIsIHR5cGUsIGxocywgb3AyKTsKQEAgLTE5MDgsNyArMTg4 OSw3IEBAIG9wZXJhdG9yX21pbnVzOjpvcDFfcmFuZ2UgKGlyYW5nZSAmciwgdHJlZSB0eXBlLAog ICBpZiAobGhzLnVuZGVmaW5lZF9wICgpKQogICAgIHJldHVybiBmYWxzZTsKICAgLy8gU3RhcnQg d2l0aCB0aGUgZGVmYXVsdCBvcGVyYXRpb24uCi0gIHJhbmdlX29wX2hhbmRsZXIgbWludXMgKFBM VVNfRVhQUiwgdHlwZSk7CisgIHJhbmdlX29wX2hhbmRsZXIgbWludXMgKFBMVVNfRVhQUik7CiAg IGlmICghbWludXMpCiAgICAgcmV0dXJuIGZhbHNlOwogICBib29sIHJlcyA9IG1pbnVzLmZvbGRf cmFuZ2UgKHIsIHR5cGUsIGxocywgb3AyKTsKQEAgLTIwNDYsOCArMjAyNyw3IEBAIG9wZXJhdG9y X211bHQ6Om9wMV9yYW5nZSAoaXJhbmdlICZyLCB0cmVlIHR5cGUsCiAKICAgd2lkZV9pbnQgb2Zm c2V0OwogICBpZiAob3AyLnNpbmdsZXRvbl9wIChvZmZzZXQpICYmIG9mZnNldCAhPSAwKQotICAg IHJldHVybiByYW5nZV9vcF9oYW5kbGVyIChUUlVOQ19ESVZfRVhQUiwgdHlwZSkuZm9sZF9yYW5n ZSAociwgdHlwZSwKLQkJCQkJCQkgICAgICAgbGhzLCBvcDIpOworICAgIHJldHVybiByYW5nZV9v cF9oYW5kbGVyIChUUlVOQ19ESVZfRVhQUikuZm9sZF9yYW5nZSAociwgdHlwZSwgbGhzLCBvcDIp OwogICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTIzNzUsNyArMjM1NSw3IEBAIG9wZXJhdG9yX2V4 YWN0X2RpdmlkZTo6b3AxX3JhbmdlIChpcmFuZ2UgJnIsIHRyZWUgdHlwZSwKICAgLy8gdGhlIHRp bWUgaG93ZXZlci4KICAgLy8gSWYgb3AyIGlzIGEgbXVsdGlwbGUgb2YgMiwgd2Ugd291bGQgYmUg YWJsZSB0byBzZXQgc29tZSBub24temVybyBiaXRzLgogICBpZiAob3AyLnNpbmdsZXRvbl9wIChv ZmZzZXQpICYmIG9mZnNldCAhPSAwKQotICAgIHJldHVybiByYW5nZV9vcF9oYW5kbGVyIChNVUxU X0VYUFIsIHR5cGUpLmZvbGRfcmFuZ2UgKHIsIHR5cGUsIGxocywgb3AyKTsKKyAgICByZXR1cm4g cmFuZ2Vfb3BfaGFuZGxlciAoTVVMVF9FWFBSKS5mb2xkX3JhbmdlIChyLCB0eXBlLCBsaHMsIG9w Mik7CiAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjk0Niw5ICsyOTI2LDggQEAgb3BlcmF0b3Jf Y2FzdDo6b3AxX3JhbmdlIChpcmFuZ2UgJnIsIHRyZWUgdHlwZSwKIAkgIC8vIEFkZCB0aGlzIHRv IHRoZSB1bnNpZ25lZCBMSFMgcmFuZ2UocykuCiAJICBpbnRfcmFuZ2VfbWF4IGxpbV9yYW5nZSAo dHlwZSwgbGltLCBsaW0pOwogCSAgaW50X3JhbmdlX21heCBsaHNfbmVnOwotCSAgcmFuZ2Vfb3Bf aGFuZGxlciAoUExVU19FWFBSLCB0eXBlKS5mb2xkX3JhbmdlIChsaHNfbmVnLCB0eXBlLAotCQkJ CQkJCSBjb252ZXJ0ZWRfbGhzLAotCQkJCQkJCSBsaW1fcmFuZ2UpOworCSAgcmFuZ2Vfb3BfaGFu ZGxlciAoUExVU19FWFBSKS5mb2xkX3JhbmdlIChsaHNfbmVnLCB0eXBlLAorCQkJCQkJICAgY29u dmVydGVkX2xocywgbGltX3JhbmdlKTsKIAkgIC8vIGxoc19uZWcgbm93IGhhcyBhbGwgdGhlIG5l Z2F0aXZlIHZlcnNpb25zIG9mIHRoZSBMSFMuCiAJICAvLyBOb3cgdW5pb24gaW4gYWxsIHRoZSB2 YWx1ZXMgZnJvbSBTSUdORUQgTUlOICgweDgwMDAwKSB0bwogCSAgLy8gbGltLTEgaW4gb3JkZXIg dG8gZmlsbCBpbiBhbGwgdGhlIHJhbmdlcyB3aXRoIHRoZSB1cHBlcgpAQCAtMzk4Nyw3ICszOTY2 LDcgQEAgb3BlcmF0b3JfYml0d2lzZV9ub3Q6OmZvbGRfcmFuZ2UgKGlyYW5nZSAmciwgdHJlZSB0 eXBlLAogICAvLyB+WCBpcyBzaW1wbHkgLTEgLSBYLgogICBpbnRfcmFuZ2U8MT4gbWludXNvbmUg KHR5cGUsIHdpOjptaW51c19vbmUgKFRZUEVfUFJFQ0lTSU9OICh0eXBlKSksCiAJCQkgd2k6Om1p bnVzX29uZSAoVFlQRV9QUkVDSVNJT04gKHR5cGUpKSk7Ci0gIHJldHVybiByYW5nZV9vcF9oYW5k bGVyIChNSU5VU19FWFBSLCB0eXBlKS5mb2xkX3JhbmdlIChyLCB0eXBlLCBtaW51c29uZSwgbGgp OworICByZXR1cm4gcmFuZ2Vfb3BfaGFuZGxlciAoTUlOVVNfRVhQUikuZm9sZF9yYW5nZSAociwg dHlwZSwgbWludXNvbmUsIGxoKTsKIH0KIAogYm9vbApAQCAtNDIzMyw4ICs0MjEyLDggQEAgb3Bl cmF0b3JfbmVnYXRlOjpmb2xkX3JhbmdlIChpcmFuZ2UgJnIsIHRyZWUgdHlwZSwKICAgaWYgKGVt cHR5X3JhbmdlX3ZhcnlpbmcgKHIsIHR5cGUsIGxoLCByaCkpCiAgICAgcmV0dXJuIHRydWU7CiAg IC8vIC1YIGlzIHNpbXBseSAwIC0gWC4KLSAgcmV0dXJuIHJhbmdlX29wX2hhbmRsZXIgKE1JTlVT X0VYUFIsIHR5cGUpLmZvbGRfcmFuZ2UgKHIsIHR5cGUsCi0JCQkJCQkJIHJhbmdlX3plcm8gKHR5 cGUpLCBsaCk7CisgIHJldHVybiByYW5nZV9vcF9oYW5kbGVyIChNSU5VU19FWFBSKS5mb2xkX3Jh bmdlIChyLCB0eXBlLAorCQkJCQkJICAgcmFuZ2VfemVybyAodHlwZSksIGxoKTsKIH0KIAogYm9v bApkaWZmIC0tZ2l0IGEvZ2NjL3JhbmdlLW9wLmggYi9nY2MvcmFuZ2Utb3AuaAppbmRleCAxNWM0 NTEzN2FmMi4uMjk1ZTUxMTZkZDEgMTAwNjQ0Ci0tLSBhL2djYy9yYW5nZS1vcC5oCisrKyBiL2dj Yy9yYW5nZS1vcC5oCkBAIC0xODUsNyArMTg1LDYgQEAgY2xhc3MgcmFuZ2Vfb3BfaGFuZGxlcgog ewogcHVibGljOgogICByYW5nZV9vcF9oYW5kbGVyICgpOwotICByYW5nZV9vcF9oYW5kbGVyIChl bnVtIHRyZWVfY29kZSBjb2RlLCB0cmVlIHR5cGUpOwogICByYW5nZV9vcF9oYW5kbGVyIChlbnVt IHRyZWVfY29kZSBjb2RlKTsKICAgaW5saW5lIG9wZXJhdG9yIGJvb2wgKCkgY29uc3QgeyByZXR1 cm4gbV9vcGVyYXRvciAhPSBOVUxMOyB9CiAKQEAgLTIxMyw3ICsyMTIsNiBAQCBwdWJsaWM6CiBw cm90ZWN0ZWQ6CiAgIHVuc2lnbmVkIGRpc3BhdGNoX2tpbmQgKGNvbnN0IHZyYW5nZSAmbGhzLCBj b25zdCB2cmFuZ2UgJm9wMSwKIAkJCSAgY29uc3QgdnJhbmdlJiBvcDIpIGNvbnN0OwotICB2b2lk IHNldF9vcF9oYW5kbGVyIChlbnVtIHRyZWVfY29kZSBjb2RlLCB0cmVlIHR5cGUpOwogICByYW5n ZV9vcGVyYXRvciAqbV9vcGVyYXRvcjsKIH07CiAKQEAgLTIyNiw5ICsyMjQsOCBAQCByYW5nZV9j YXN0ICh2cmFuZ2UgJnIsIHRyZWUgdHlwZSkKICAgVmFsdWVfUmFuZ2UgdG1wIChyKTsKICAgVmFs dWVfUmFuZ2UgdmFyeWluZyAodHlwZSk7CiAgIHZhcnlpbmcuc2V0X3ZhcnlpbmcgKHR5cGUpOwot ICByYW5nZV9vcF9oYW5kbGVyIG9wIChDT05WRVJUX0VYUFIsIHR5cGUpOwogICAvLyBDYWxsIG9w X2NvbnZlcnQsIGlmIGl0IGZhaWxzLCB0aGUgcmVzdWx0IGlzIHZhcnlpbmcuCi0gIGlmICghb3Ag fHwgIW9wLmZvbGRfcmFuZ2UgKHIsIHR5cGUsIHRtcCwgdmFyeWluZykpCisgIGlmICghcmFuZ2Vf b3BfaGFuZGxlciAoQ09OVkVSVF9FWFBSKS5mb2xkX3JhbmdlIChyLCB0eXBlLCB0bXAsIHZhcnlp bmcpKQogICAgIHsKICAgICAgIHIuc2V0X3ZhcnlpbmcgKHR5cGUpOwogICAgICAgcmV0dXJuIGZh bHNlOwpAQCAtMjQ5LDkgKzI0Niw4IEBAIHJhbmdlX2Nhc3QgKFZhbHVlX1JhbmdlICZyLCB0cmVl IHR5cGUpCiAgIC8vIEVuc3VyZSB3ZSBhcmUgaW4gdGhlIGNvcnJlY3QgbW9kZSBmb3IgdGhlIGNh bGwgdG8gZm9sZC4KICAgci5zZXRfdHlwZSAodHlwZSk7CiAKLSAgcmFuZ2Vfb3BfaGFuZGxlciBv cCAoQ09OVkVSVF9FWFBSLCB0eXBlKTsKICAgLy8gQ2FsbCBvcF9jb252ZXJ0LCBpZiBpdCBmYWls cywgdGhlIHJlc3VsdCBpcyB2YXJ5aW5nLgotICBpZiAoIW9wIHx8ICFvcC5mb2xkX3JhbmdlIChy LCB0eXBlLCB0bXAsIHZhcnlpbmcpKQorICBpZiAoIXJhbmdlX29wX2hhbmRsZXIgKENPTlZFUlRf RVhQUikuZm9sZF9yYW5nZSAociwgdHlwZSwgdG1wLCB2YXJ5aW5nKSkKICAgICB7CiAgICAgICBy LnNldF92YXJ5aW5nICh0eXBlKTsKICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4Niw3ICsyODIs NyBAQCBwcm90ZWN0ZWQ6CiBpbmxpbmUgcmFuZ2Vfb3BlcmF0b3IgKgogcmFuZ2Vfb3BfdGFibGU6 Om9wZXJhdG9yW10gKGVudW0gdHJlZV9jb2RlIGNvZGUpCiB7Ci0gIGdjY19jaGVja2luZ19hc3Nl cnQgKGNvZGUgPiAwICYmIGNvZGUgPCBNQVhfVFJFRV9DT0RFUyk7CisgIGdjY19jaGVja2luZ19h c3NlcnQgKGNvZGUgPj0gMCAmJiBjb2RlIDwgTUFYX1RSRUVfQ09ERVMpOwogICByZXR1cm4gbV9y YW5nZV90cmVlW2NvZGVdOwogfQogCmRpZmYgLS1naXQgYS9nY2MvdHJlZS1kYXRhLXJlZi5jYyBi L2djYy90cmVlLWRhdGEtcmVmLmNjCmluZGV4IGI1NzZjY2U2ZGI2Li42ZDNiN2MyMjkwZSAxMDA2 NDQKLS0tIGEvZ2NjL3RyZWUtZGF0YS1yZWYuY2MKKysrIGIvZ2NjL3RyZWUtZGF0YS1yZWYuY2MK QEAgLTU5Myw3ICs1OTMsNyBAQCBjb21wdXRlX2Rpc3RyaWJ1dGl2ZV9yYW5nZSAodHJlZSB0eXBl LCB2YWx1ZV9yYW5nZSAmb3AwX3JhbmdlLAogICBnY2NfYXNzZXJ0IChJTlRFR1JBTF9UWVBFX1Ag KHR5cGUpICYmICFUWVBFX09WRVJGTE9XX1RSQVBTICh0eXBlKSk7CiAgIGlmIChyZXN1bHRfcmFu Z2UpCiAgICAgewotICAgICAgcmFuZ2Vfb3BfaGFuZGxlciBvcCAoY29kZSwgdHlwZSk7CisgICAg ICByYW5nZV9vcF9oYW5kbGVyIG9wIChjb2RlKTsKICAgICAgIGlmICghb3AuZm9sZF9yYW5nZSAo KnJlc3VsdF9yYW5nZSwgdHlwZSwgb3AwX3JhbmdlLCBvcDFfcmFuZ2UpKQogCXJlc3VsdF9yYW5n ZS0+c2V0X3ZhcnlpbmcgKHR5cGUpOwogICAgIH0KQEAgLTY0MCw3ICs2NDAsNyBAQCBjb21wdXRl X2Rpc3RyaWJ1dGl2ZV9yYW5nZSAodHJlZSB0eXBlLCB2YWx1ZV9yYW5nZSAmb3AwX3JhbmdlLAog ICByYW5nZV9jYXN0IChvcDBfcmFuZ2UsIHNzaXpldHlwZSk7CiAgIHJhbmdlX2Nhc3QgKG9wMV9y YW5nZSwgc3NpemV0eXBlKTsKICAgdmFsdWVfcmFuZ2Ugd2lkZV9yYW5nZTsKLSAgcmFuZ2Vfb3Bf aGFuZGxlciBvcCAoY29kZSwgc3NpemV0eXBlKTsKKyAgcmFuZ2Vfb3BfaGFuZGxlciBvcCAoY29k ZSk7CiAgIGJvb2wgc2F2ZWRfZmxhZ193cmFwdiA9IGZsYWdfd3JhcHY7CiAgIGZsYWdfd3JhcHYg PSAxOwogICBpZiAoIW9wLmZvbGRfcmFuZ2UgKHdpZGVfcmFuZ2UsIHNzaXpldHlwZSwgb3AwX3Jh bmdlLCBvcDFfcmFuZ2UpKQpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtc3NhLWxvb3AtdW5zd2l0Y2gu Y2MgYi9nY2MvdHJlZS1zc2EtbG9vcC11bnN3aXRjaC5jYwppbmRleCA0NzI1NWE0MTI1ZC4uNjE5 YjUwZmI0YmIgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXNzYS1sb29wLXVuc3dpdGNoLmNjCisrKyBi L2djYy90cmVlLXNzYS1sb29wLXVuc3dpdGNoLmNjCkBAIC0xMzksNyArMTM5LDcgQEAgc3RydWN0 IHVuc3dpdGNoX3ByZWRpY2F0ZQogICAgIGNvdW50ID0gRURHRV9TVUNDIChiYiwgMCktPmNvdW50 ICgpLm1heCAoRURHRV9TVUNDIChiYiwgMSktPmNvdW50ICgpKTsKICAgICBpZiAoaXJhbmdlOjpz dXBwb3J0c19wIChUUkVFX1RZUEUgKGxocykpKQogICAgICAgewotCWF1dG8gcmFuZ2Vfb3AgPSBy YW5nZV9vcF9oYW5kbGVyIChjb2RlLCBUUkVFX1RZUEUgKGxocykpOworCWF1dG8gcmFuZ2Vfb3Ag PSByYW5nZV9vcF9oYW5kbGVyIChjb2RlKTsKIAlpbnRfcmFuZ2U8Mj4gcmhzX3JhbmdlIChUUkVF X1RZUEUgKHJocykpOwogCWlmIChDT05TVEFOVF9DTEFTU19QIChyaHMpKQogCSAgewpkaWZmIC0t Z2l0IGEvZ2NjL3ZhbHVlLXF1ZXJ5LmNjIGIvZ2NjL3ZhbHVlLXF1ZXJ5LmNjCmluZGV4IGE4NGYx NjRkNzdiLi5hZGVmOTM0MTViNyAxMDA2NDQKLS0tIGEvZ2NjL3ZhbHVlLXF1ZXJ5LmNjCisrKyBi L2djYy92YWx1ZS1xdWVyeS5jYwpAQCAtMjI4LDggKzIyOCw3IEBAIHJhbmdlX3F1ZXJ5OjpnZXRf dHJlZV9yYW5nZSAodnJhbmdlICZyLCB0cmVlIGV4cHIsIGdpbXBsZSAqc3RtdCkKICAgICAgIGlm IChDT01QQVJJU09OX0NMQVNTX1AgKGV4cHIpCiAJICAmJiAhVmFsdWVfUmFuZ2U6OnN1cHBvcnRz X3R5cGVfcCAoVFJFRV9UWVBFIChvcDApKSkKIAlyZXR1cm4gZmFsc2U7Ci0gICAgICByYW5nZV9v cF9oYW5kbGVyIG9wIChUUkVFX0NPREUgKGV4cHIpLAotCQkJICAgQklOQVJZX0NMQVNTX1AgKGV4 cHIpID8gdHlwZSA6IFRSRUVfVFlQRSAob3AwKSk7CisgICAgICByYW5nZV9vcF9oYW5kbGVyIG9w IChUUkVFX0NPREUgKGV4cHIpKTsKICAgICAgIGlmIChvcCkKIAl7CiAJICBWYWx1ZV9SYW5nZSBy MCAoVFJFRV9UWVBFIChvcDApKTsKQEAgLTI0NSw3ICsyNDQsNyBAQCByYW5nZV9xdWVyeTo6Z2V0 X3RyZWVfcmFuZ2UgKHZyYW5nZSAmciwgdHJlZSBleHByLCBnaW1wbGUgKnN0bXQpCiAgICAgfQog ICBpZiAoVU5BUllfQ0xBU1NfUCAoZXhwcikpCiAgICAgewotICAgICAgcmFuZ2Vfb3BfaGFuZGxl ciBvcCAoVFJFRV9DT0RFIChleHByKSwgdHlwZSk7CisgICAgICByYW5nZV9vcF9oYW5kbGVyIG9w IChUUkVFX0NPREUgKGV4cHIpKTsKICAgICAgIHRyZWUgb3AwX3R5cGUgPSBUUkVFX1RZUEUgKFRS RUVfT1BFUkFORCAoZXhwciwgMCkpOwogICAgICAgaWYgKG9wICYmIFZhbHVlX1JhbmdlOjpzdXBw b3J0c190eXBlX3AgKG9wMF90eXBlKSkKIAl7CmRpZmYgLS1naXQgYS9nY2MvdmFsdWUtcmVsYXRp b24uY2MgYi9nY2MvdmFsdWUtcmVsYXRpb24uY2MKaW5kZXggNjVjZjc2OTRkNDAuLjdkZjJjZDZl OTYxIDEwMDY0NAotLS0gYS9nY2MvdmFsdWUtcmVsYXRpb24uY2MKKysrIGIvZ2NjL3ZhbHVlLXJl bGF0aW9uLmNjCkBAIC0yMTgsNyArMjE4LDcgQEAgcmVsYXRpb25fb3JhY2xlOjp2YWxpZGF0ZV9y ZWxhdGlvbiAocmVsYXRpb25fa2luZCByZWwsIHZyYW5nZSAmb3AxLCB2cmFuZ2UgJm9wMikKICAg ICByZXR1cm4gVlJFTF9WQVJZSU5HOwogCiAgIC8vIElmIHRoZXJlIGlzIG5vIGhhbmRsZXIsIGxl YXZlIHRoZSByZWxhdGlvbiBhcyBpcy4KLSAgcmFuZ2Vfb3BfaGFuZGxlciBoYW5kbGVyIChjb2Rl LCB0MSk7CisgIHJhbmdlX29wX2hhbmRsZXIgaGFuZGxlciAoY29kZSk7CiAgIGlmICghaGFuZGxl cikKICAgICByZXR1cm4gcmVsOwogCmRpZmYgLS1naXQgYS9nY2MvdnItdmFsdWVzLmNjIGIvZ2Nj L3ZyLXZhbHVlcy5jYwppbmRleCA4NmMxYmY4ZWJjNi4uYWM0YTgzYzYwOTcgMTAwNjQ0Ci0tLSBh L2djYy92ci12YWx1ZXMuY2MKKysrIGIvZ2NjL3ZyLXZhbHVlcy5jYwpAQCAtMjkyLDggKzI5Miw4 IEBAIHJhbmdlX29mX3Zhcl9pbl9sb29wICh2cmFuZ2UgJnYsIHRyZWUgbmFtZSwgY2xhc3MgbG9v cCAqbCwgZ2ltcGxlICpzdG10LAogCSAgd2lkZV9pbnQgdyA9IHdpZGVfaW50Ojpmcm9tIChuaXQs IFRZUEVfUFJFQ0lTSU9OICh0eXBlKSwgVFlQRV9TSUdOICh0eXBlKSk7CiAJICBpbnRfcmFuZ2U8 MT4gbml0ZXIgKHR5cGUsIHcsIHcpOwogCSAgaW50X3JhbmdlX21heCBtYXhfc3RlcDsKLQkgIHJh bmdlX29wX2hhbmRsZXIgbXVsdF9oYW5kbGVyIChNVUxUX0VYUFIsIHR5cGUpOwotCSAgcmFuZ2Vf b3BfaGFuZGxlciBwbHVzX2hhbmRsZXIgKFBMVVNfRVhQUiwgdHlwZSk7CisJICByYW5nZV9vcF9o YW5kbGVyIG11bHRfaGFuZGxlciAoTVVMVF9FWFBSKTsKKwkgIHJhbmdlX29wX2hhbmRsZXIgcGx1 c19oYW5kbGVyIChQTFVTX0VYUFIpOwogCSAgaWYgKCFtdWx0X2hhbmRsZXIuZm9sZF9yYW5nZSAo bWF4X3N0ZXAsIHR5cGUsIG5pdGVyLCByc3RlcCkKIAkgICAgICB8fCAhcGx1c19oYW5kbGVyLmZv bGRfcmFuZ2UgKG1heF9pbml0LCB0eXBlLCByaW5pdCwgbWF4X3N0ZXApKQogCSAgICByZXR1cm4g ZmFsc2U7CkBAIC0zMTcsNyArMzE3LDcgQEAgc2ltcGxpZnlfdXNpbmdfcmFuZ2VzOjpmb2xkX2Nv bmRfd2l0aF9vcHMgKGVudW0gdHJlZV9jb2RlIGNvZGUsCiAKICAgdHJlZSB0eXBlID0gVFJFRV9U WVBFIChvcDApOwogICBpbnRfcmFuZ2U8MT4gcmVzOwotICByYW5nZV9vcF9oYW5kbGVyIGhhbmRs ZXIgKGNvZGUsIHR5cGUpOworICByYW5nZV9vcF9oYW5kbGVyIGhhbmRsZXIgKGNvZGUpOwogICBp ZiAoaGFuZGxlciAmJiBoYW5kbGVyLmZvbGRfcmFuZ2UgKHJlcywgdHlwZSwgcjAsIHIxKSkKICAg ICB7CiAgICAgICBpZiAocmVzID09IHJhbmdlX3RydWUgKHR5cGUpKQotLSAKMi40MC4xCgo= --------------QhEh2qgcpyHv9EqF4hHCj4WX--