Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wP19J-000LiM-1e for pgsql-bugs@arkaria.postgresql.org; Mon, 18 May 2026 16:49:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wP19H-002uD0-0M for pgsql-bugs@arkaria.postgresql.org; Mon, 18 May 2026 16:49:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wP19G-002uCr-2S for pgsql-bugs@lists.postgresql.org; Mon, 18 May 2026 16:48:59 +0000 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wP19F-00000000DVD-2CYS for pgsql-bugs@lists.postgresql.org; Mon, 18 May 2026 16:48:59 +0000 Received: by mail-oi1-x234.google.com with SMTP id 5614622812f47-4824b15c19eso2301034b6e.2 for ; Mon, 18 May 2026 09:48:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779122935; cv=none; d=google.com; s=arc-20240605; b=XCC9iUCzUQ5Uj2Or7vkVRexnJlUamaggPM7od+E0GKZEEtjAxhfqmPXGNeLXU76LNJ aZ22WA9XM4an79kskFg509Y9c85O5aUmlQJSWYdbuzek+yM+EJ3QP7MYExWJNVAPbZbm g2AjjfDCX/trV3UJz58wyXG4JJnDXhtoBKrhkPRRWeYJRDVBWZNgrVJCpCLnvnRkLeS8 f5MRRzBSfjxLeFJ7leoitNN3P9XJl95tSjDBWdPEvODBlpMV2ouZdzvIThK9gEWpK8fB aJGeyIPUA1gD68/Fd6qZtovON5PCxaqvT6/SebL1GZ/O9H2hi+eg8CJ43ctqlSn8Y+Gg l8VQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=6PN/1xuzbzwaC5oylvOsyFzRkLYkfui04gGbDzDKZjY=; fh=kevvQjl87yzwTbGBjWN0jW0/Z4WhEHK1r7EZHsDNAMw=; b=af+CljmwYtkU4isrzSlNX0lOyqBD3ZQ7OaQbhVH8XhGcMRuVwN54OmaSKpyTwo4v38 8Olj1bte67vTTK4PhD3qYllBLBl0hQJPo2mb9YKBhPY3zFV+J3xIHdKkHLmsALKhJ+tN aTESbGXLsvylioK9chQKBE40/gKqTqxZjasfPk4Mq0NsQA4IpmpuC00wGuMDZgnbiBNv zkW467kp7u0qKTgm7hREQt2dsO37JAbsbMG85KPxBhC78SgQng8Cv0Q126bEAx0ScO2f 4sUM/ZLjAJ4N7E9zNb+ooJC2J0ocAC/vzt8yMJlSCEgZ7+wmmp7yfFg1o7dLaiU4psYt NGng==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779122935; x=1779727735; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=6PN/1xuzbzwaC5oylvOsyFzRkLYkfui04gGbDzDKZjY=; b=sdPjWFXMPwJo2BE9DkuOLJ2KikejxB5HGDlM0zpNonvVeFip+aBY/p/6juqMnnkZW+ suMP1RUaBdJHpvytxxKRu79u9QfmvmoNqxgIaOHRJrnGwLwZ/Ub2aVMcVBV2kZGhNqgS i2Bz1zZ4D9hrQpk9Ej79SB6dyKaemEvI4CVvcbnRhY+Yl7TlvZ76PQJlCFyCSXRY9dCC yRgw2MiOKJUO817gjJtsIogHVixxqGQaSSXnB5fhDXn7ziykv2Ln+eLrum0rC7MQR7xo Rw4ZBYVsjbUWBOaLDJK8mWV/eNwspMsAlBt73fM/30Ee+OEFMVVCVibZASyi/xnQb4K7 ZzLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779122935; x=1779727735; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=6PN/1xuzbzwaC5oylvOsyFzRkLYkfui04gGbDzDKZjY=; b=Dqa98uzjXXoXkZMShWbYD/zezUAti+DXgAsVuVLKp/Cp4xxLQYb6HfxSmu2iIlVYBP 31I/atTDmCC/v6l1fhCjuGjMrjgrIx9cgQ7Lyw7iC8IWrPCnOKYsvXniY56EZsFug8Ai SlIg12zR1jv1UGxcHIJgyWRNIi28zuei/NQAfYQmvezjzXvod7Ciaus/knotRlEZazbd 9AdQ/siyWo/XqNcvTK9OWwMuAEjY0L+si5c3l4Ga+o6enqW6uhGGimckSI1SNnYObZsZ DZHHaetKk4QL+Rogd4CqANDhkKw/wzKep5erX5htnnyTx8qezEPW0P+HFuPcTKWQ7EVC PQkA== X-Forwarded-Encrypted: i=1; AFNElJ8eHuHCPAuD6NeDq6TAfn7o1PB27cOjY+ydE7iiJY/wwj7tePUZRnHaqdxkdcVsNc2Z4Yj1F28mzgFR@lists.postgresql.org X-Gm-Message-State: AOJu0YztWIsATOOZGlc9bqn4lZI70n2OTdrnrHfdIMUvqfT8clzXzBch y5m3H4lnoYsfIy7I+2gqZbhkM6HTy3H69qWMAF9Lv02oHzukskeVxQZSOmkyq6NFG5uwXq3eT3x vihwcHaa1yqEYPrl7VI4mrddmx9xUfuE= X-Gm-Gg: Acq92OESaXcLxwtqcOaBKoYmBUu4k/XyOhIMVyGlr920TNZjTUrfrIz8mXhkhlVHoZn dfN9ygjaxNJlvayfAsPd/zAmml2cZ3F9z8PJv2mB5IbPZC6qkUkUH4/73rZCSs4dG5iYw8iLWX8 9MWf2vhTycjqmP7QVZZn7DhUgRnVs6jzlWxa9Q+lMTk/9sCX4PlRgLJzOBcCspFjDJIi8v4nJyM 5nKnQgWydPbCTbOGMQDxOQIUBr0iPTJnLhVLusYYwZ2pIyL2W12lRtfxNL19j6q39I4vohoahEQ 5I9MzMzKYSoQvDEzF5Y= X-Received: by 2002:a05:6808:5285:b0:479:eb19:6e66 with SMTP id 5614622812f47-482e598eba1mr10967155b6e.38.1779122935212; Mon, 18 May 2026 09:48:55 -0700 (PDT) MIME-Version: 1.0 References: <40d694df-39fd-4a4a-9459-9d6489165f60@gogi.tv> In-Reply-To: From: surya poondla Date: Mon, 18 May 2026 09:48:43 -0700 X-Gm-Features: AVHnY4KOB-ESQnCsMl3Jgy48dQo3fcRp5zihlPuRQ-FWXuoC4C3GB-2Doj-Z3pA Message-ID: Subject: Re: Two issues with REFRESH MATERIALIZED VIEW CONCURRENTLY To: cca5507 Cc: Rafia Sabih , Giuliano Gagliardi , pgsql-bugs Content-Type: multipart/mixed; boundary="00000000000090f04706521a5689" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000090f04706521a5689 Content-Type: multipart/alternative; boundary="00000000000090f04606521a5687" --00000000000090f04606521a5687 Content-Type: text/plain; charset="UTF-8" Hi All, I rebased the patches to the latest code. Regards, Surya Poondla > --00000000000090f04606521a5687 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi All,

I rebased the patches to the latest co= de.

Regards,
Surya Poondla
--00000000000090f04606521a5687-- --00000000000090f04706521a5689 Content-Type: application/octet-stream; name="0006-Fix-REFRESH-MATERIALIZED-VIEW-CONCURRENTLY-to-detect.patch" Content-Disposition: attachment; filename="0006-Fix-REFRESH-MATERIALIZED-VIEW-CONCURRENTLY-to-detect.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpbfueez0 RnJvbSAxOTg3M2Y0YTAyNTA5YTY4NzA2MjMxNDBlZDVmNjNhOGRkMzkwYjkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzcG9vbmRsYSA8c19wb29uZGxhQGFwcGxlLmNvbT4KRGF0ZTog TW9uLCAyIE1hciAyMDI2IDExOjIyOjExIC0wODAwClN1YmplY3Q6IFtQQVRDSCB2Nl0gRml4IFJF RlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgQ09OQ1VSUkVOVExZIHRvIGRldGVjdAogZHVwbGljYXRl IHJvd3MKClJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgQ09OQ1VSUkVOVExZIHdhcyBpbmNvcnJl Y3RseSBza2lwcGluZwpkdXBsaWNhdGUgZGV0ZWN0aW9uIGZvciByb3dzIGNvbnRhaW5pbmcgTlVM TCB2YWx1ZXMuIFRoZSBwcmUtY2hlY2sKcXVlcnkgdXNlZCAiV0hFUkUgbmV3ZGF0YS4qIElTIE5P VCBOVUxMIiB3aGljaCBjYXVzZWQgcm93cyB3aXRoIGFueQpOVUxMIGNvbHVtbiB0byBieXBhc3Mg ZHVwbGljYXRlIGRldGVjdGlvbiBlbnRpcmVseS4KClRoZSBmaXggcmVidWlsZHMgdGhlIHByZS1j aGVjayB1c2luZyB0aGUgc2FtZSBwZXItY29sdW1uIGVxdWFsaXR5Cm9wZXJhdG9ycyB1c2VkIGJ5 IHRoZSBkaWZmIEpPSU4gKG9uZSBjb25kaXRpb24gcGVyIHVuaXF1ZS1pbmRleGVkCmNvbHVtbiku ICBUaGVzZSBvcGVyYXRvcnMgdHJlYXQgTlVMTCBhcyBub3QgZXF1YWwgdG8gTlVMTCwgbWF0Y2hp bmcKdW5pcXVlIGluZGV4IHNlbWFudGljcyB3aGVyZSBOVUxMcyBhcmUgY29uc2lkZXJlZCBkaXN0 aW5jdC4gIE9ubHkKcm93cyB3aG9zZSBpbmRleGVkIGNvbHVtbnMgYXJlIG5vbi1udWxsIGFuZCBl cXVhbCBhcmUgZmxhZ2dlZCBhcwpkdXBsaWNhdGVzIC0tLSB0aGUgc2FtZSByb3dzIHRoYXQgd291 bGQgY2F1c2Ugam9pbiBhbWJpZ3VpdHkuCgpUaGlzIGNvcnJlY3RseSBoYW5kbGVzIHR3byBjYXNl cyB0aGF0IHRoZSBvbGQgYXBwcm9hY2ggZ290IHdyb25nOgogIC0gKHRlc3QsIE5VTEwpIHgyIHdp dGggaW5kZXggb24gYTogYT0ndGVzdCcgaXMgbm9uLW51bGwgYW5kCiAgICBkdXBsaWNhdGVkLCBz byB0aGUgZHVwbGljYXRlIGlzIGNvcnJlY3RseSBkZXRlY3RlZCBhbmQgYW4gZXJyb3IKICAgIGlz IHJhaXNlZC4KICAtIChOVUxMLCBOVUxMKSB4MiB3aXRoIGluZGV4IG9uIGE6IGE9TlVMTCwgYW5k IHVuaXF1ZSBpbmRleGVzCiAgICBhbGxvdyBtdWx0aXBsZSBOVUxMcyAoZWFjaCBpcyB0cmVhdGVk IGFzIGRpc3RpbmN0KSwgc28gdGhlCiAgICByZWZyZXNoIGNvcnJlY3RseSBzdWNjZWVkcyBhbmQg dXBkYXRlcyB0aGUgdmlldyB0byB0d28gcm93cy4KCkFkZGVkIHJlZ3Jlc3Npb24gdGVzdHMgY292 ZXJpbmcgYm90aCBjYXNlcy4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9tYXR2aWV3LmMgICAg ICAgIHwgMTIyICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL21hdHZpZXcub3V0IHwgIDMzICsrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21h dHZpZXcuc3FsICAgICAgfCAgMjIgKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlv bnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L21hdHZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21hdHZpZXcuYwppbmRleCBmN2Q4MDA3 Zjc5Ni4uYjgwNmFiNDY2NDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21hdHZp ZXcuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tYXR2aWV3LmMKQEAgLTYwNiw2ICs2MDYs OCBAQCByZWZyZXNoX2J5X21hdGNoX21lcmdlKE9pZCBtYXR2aWV3T2lkLCBPaWQgdGVtcE9pZCwg T2lkIHJlbG93bmVyLAogCUxpc3RDZWxsICAgKmluZGV4b2lkc2NhbjsKIAlpbnQxNgkJcmVsbmF0 dHM7CiAJT2lkCQkgICAqb3BVc2VkRm9yUXVhbDsKKwlTdHJpbmdJbmZvRGF0YSBwcmVjaGVja19j b25kX2J1ZjsKKwlib29sCQlwcmVjaGVja19oYXNfY29uZDsKIAogCWluaXRTdHJpbmdJbmZvKCZx dWVyeWJ1Zik7CiAJbWF0dmlld1JlbCA9IHRhYmxlX29wZW4obWF0dmlld09pZCwgTm9Mb2NrKTsK QEAgLTYzNCw0NSArNjM2LDYgQEAgcmVmcmVzaF9ieV9tYXRjaF9tZXJnZShPaWQgbWF0dmlld09p ZCwgT2lkIHRlbXBPaWQsIE9pZCByZWxvd25lciwKIAlpZiAoU1BJX2V4ZWMocXVlcnlidWYuZGF0 YSwgMCkgIT0gU1BJX09LX1VUSUxJVFkpCiAJCWVsb2coRVJST1IsICJTUElfZXhlYyBmYWlsZWQ6 ICVzIiwgcXVlcnlidWYuZGF0YSk7CiAKLQkvKgotCSAqIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQg dGhlcmUgYXJlIG5vdCBkdXBsaWNhdGUgcm93cyB3aXRob3V0IE5VTExzIGluCi0JICogdGhlIG5l dyBkYXRhIHNldCBiZWZvcmUgd2UgY2FuIGNvdW50IG9uIHRoZSAiZGlmZiIgcmVzdWx0cy4gIENo ZWNrIGZvcgotCSAqIHRoYXQgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc2hvd2luZyB0aGUgZmlyc3Qg ZHVwbGljYXRlZCByb3cgZm91bmQuICBFdmVuCi0JICogYWZ0ZXIgd2UgcGFzcyB0aGlzIHRlc3Qs IGEgdW5pcXVlIGluZGV4IG9uIHRoZSBtYXRlcmlhbGl6ZWQgdmlldyBtYXkKLQkgKiBmaW5kIGEg ZHVwbGljYXRlIGtleSBwcm9ibGVtLgotCSAqCi0JICogTm90ZTogaGVyZSBhbmQgYmVsb3csIHdl IHVzZSAidGFibGVuYW1lLio6OnRhYmxlcm93dHlwZSIgYXMgYSBoYWNrIHRvCi0JICoga2VlcCAi LioiIGZyb20gYmVpbmcgZXhwYW5kZWQgaW50byBtdWx0aXBsZSBjb2x1bW5zIGluIGEgU0VMRUNU IGxpc3QuCi0JICogQ29tcGFyZSBydWxldXRpbHMuYydzIGdldF92YXJpYWJsZSgpLgotCSAqLwot CXJlc2V0U3RyaW5nSW5mbygmcXVlcnlidWYpOwotCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVm LAotCQkJCQkgIlNFTEVDVCBuZXdkYXRhLio6OiVzIEZST00gJXMgbmV3ZGF0YSAiCi0JCQkJCSAi V0hFUkUgbmV3ZGF0YS4qIElTIE5PVCBOVUxMIEFORCBFWElTVFMgIgotCQkJCQkgIihTRUxFQ1Qg MSBGUk9NICVzIG5ld2RhdGEyIFdIRVJFIG5ld2RhdGEyLiogSVMgTk9UIE5VTEwgIgotCQkJCQkg IkFORCBuZXdkYXRhMi4qIE9QRVJBVE9SKHBnX2NhdGFsb2cuKj0pIG5ld2RhdGEuKiAiCi0JCQkJ CSAiQU5EIG5ld2RhdGEyLmN0aWQgT1BFUkFUT1IocGdfY2F0YWxvZy48PikgIgotCQkJCQkgIm5l d2RhdGEuY3RpZCkiLAotCQkJCQkgdGVtcG5hbWUsIHRlbXBuYW1lLCB0ZW1wbmFtZSk7Ci0JaWYg KFNQSV9leGVjdXRlKHF1ZXJ5YnVmLmRhdGEsIGZhbHNlLCAxKSAhPSBTUElfT0tfU0VMRUNUKQot CQllbG9nKEVSUk9SLCAiU1BJX2V4ZWMgZmFpbGVkOiAlcyIsIHF1ZXJ5YnVmLmRhdGEpOwotCWlm IChTUElfcHJvY2Vzc2VkID4gMCkKLQl7Ci0JCS8qCi0JCSAqIE5vdGUgdGhhdCB0aGlzIGVyZXBv cnQoKSBpcyByZXR1cm5pbmcgZGF0YSB0byB0aGUgdXNlci4gIEdlbmVyYWxseSwKLQkJICogd2Ug d291bGQgd2FudCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgdXNlciBoYXMgYmVlbiBncmFudGVkIGFj Y2VzcyB0bwotCQkgKiB0aGlzIGRhdGEuICBIb3dldmVyLCBSRUZSRVNIIE1BVCBWSUVXIGlzIG9u bHkgYWJsZSB0byBiZSBydW4gYnkgdGhlCi0JCSAqIG93bmVyIG9mIHRoZSBtYXQgdmlldyAob3Ig YSBzdXBlcnVzZXIpIGFuZCB0aGVyZWZvcmUgdGhlcmUgaXMgbm8KLQkJICogbmVlZCB0byBjaGVj ayBmb3IgYWNjZXNzIHRvIGRhdGEgaW4gdGhlIG1hdCB2aWV3LgotCQkgKi8KLQkJZXJlcG9ydChF UlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0NBUkRJTkFMSVRZX1ZJT0xBVElPTiksCi0JCQkJ IGVycm1zZygibmV3IGRhdGEgZm9yIG1hdGVyaWFsaXplZCB2aWV3IFwiJXNcIiBjb250YWlucyBk dXBsaWNhdGUgcm93cyB3aXRob3V0IGFueSBudWxsIGNvbHVtbnMiLAotCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUobWF0dmlld1JlbCkpLAotCQkJCSBlcnJkZXRhaWwoIlJvdzogJXMiLAot CQkJCQkJICAgU1BJX2dldHZhbHVlKFNQSV90dXB0YWJsZS0+dmFsc1swXSwgU1BJX3R1cHRhYmxl LT50dXBkZXNjLCAxKSkpKTsKLQl9Ci0KIAkvKgogCSAqIENyZWF0ZSB0aGUgdGVtcG9yYXJ5ICJk aWZmIiB0YWJsZS4KIAkgKgpAQCAtNzE1LDYgKzY3OCw4IEBAIHJlZnJlc2hfYnlfbWF0Y2hfbWVy Z2UoT2lkIG1hdHZpZXdPaWQsIE9pZCB0ZW1wT2lkLCBPaWQgcmVsb3duZXIsCiAJdHVwZGVzYyA9 IG1hdHZpZXdSZWwtPnJkX2F0dDsKIAlvcFVzZWRGb3JRdWFsID0gcGFsbG9jMF9hcnJheShPaWQs IHJlbG5hdHRzKTsKIAlmb3VuZFVuaXF1ZUluZGV4ID0gZmFsc2U7CisJaW5pdFN0cmluZ0luZm8o JnByZWNoZWNrX2NvbmRfYnVmKTsKKwlwcmVjaGVja19oYXNfY29uZCA9IGZhbHNlOwogCiAJaW5k ZXhvaWRsaXN0ID0gUmVsYXRpb25HZXRJbmRleExpc3QobWF0dmlld1JlbCk7CiAKQEAgLTgwMiw2 ICs3NjcsMzAgQEAgcmVmcmVzaF9ieV9tYXRjaF9tZXJnZShPaWQgbWF0dmlld09pZCwgT2lkIHRl bXBPaWQsIE9pZCByZWxvd25lciwKIAkJCQkJCQkJCQkgcmlnaHRvcCwgYXR0cnR5cGUpOwogCiAJ CQkJZm91bmRVbmlxdWVJbmRleCA9IHRydWU7CisKKwkJCQkvKgorCQkJCSAqIEFsc28gYWNjdW11 bGF0ZSB0aGUgc2FtZSBjb25kaXRpb24gZm9yIHRoZSBkdXBsaWNhdGUtcm93CisJCQkJICogcHJl LWNoZWNrLCBjb21wYXJpbmcgbmV3ZGF0YTIgYWdhaW5zdCBuZXdkYXRhIChpbnN0ZWFkIG9mCisJ CQkJICogbmV3ZGF0YSBhZ2FpbnN0IG12KS4gIFRoaXMgbGV0cyB1cyBkZXRlY3Qgcm93cyB0aGF0 IGFyZQorCQkJCSAqIGR1cGxpY2F0ZXMgd2l0aCByZXNwZWN0IHRvIHRoZSB1bmlxdWUgaW5kZXgg c2VtYW50aWNzIC0tLQorCQkJCSAqIGkuZS4gcm93cyB3aG9zZSBpbmRleGVkIGNvbHVtbnMgYXJl IG5vbi1udWxsIGFuZCBlcXVhbCAtLS0KKwkJCQkgKiB3aXRob3V0IGZhbHNlbHkgZmxhZ2dpbmcg cm93cyB3aG9zZSBpbmRleGVkIGNvbHVtbnMgYXJlCisJCQkJICogTlVMTCAod2hpY2ggdW5pcXVl IGluZGV4ZXMgdHJlYXQgYXMgZGlzdGluY3QpLgorCQkJCSAqLworCQkJCWlmIChwcmVjaGVja19o YXNfY29uZCkKKwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcHJlY2hlY2tfY29uZF9idWYs ICIgQU5EICIpOworCisJCQkJbGVmdG9wID0gcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoIm5l d2RhdGEyIiwKKwkJCQkJCQkJCQkJCQkJTmFtZVN0cihhdHRyLT5hdHRuYW1lKSk7CisJCQkJcmln aHRvcCA9IHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKCJuZXdkYXRhIiwKKwkJCQkJCQkJCQkJ CQkJIE5hbWVTdHIoYXR0ci0+YXR0bmFtZSkpOworCisJCQkJZ2VuZXJhdGVfb3BlcmF0b3JfY2xh dXNlKCZwcmVjaGVja19jb25kX2J1ZiwKKwkJCQkJCQkJCQkgbGVmdG9wLCBhdHRydHlwZSwKKwkJ CQkJCQkJCQkgb3AsCisJCQkJCQkJCQkJIHJpZ2h0b3AsIGF0dHJ0eXBlKTsKKworCQkJCXByZWNo ZWNrX2hhc19jb25kID0gdHJ1ZTsKIAkJCX0KIAkJfQogCkBAIC04MzEsNiArODIwLDYxIEBAIHJl ZnJlc2hfYnlfbWF0Y2hfbWVyZ2UoT2lkIG1hdHZpZXdPaWQsIE9pZCB0ZW1wT2lkLCBPaWQgcmVs b3duZXIsCiAJCQkJCQkgICAiV0hFUkUgbmV3ZGF0YS4qIElTIE5VTEwgT1IgbXYuKiBJUyBOVUxM ICIKIAkJCQkJCSAgICJPUkRFUiBCWSB0aWQiKTsKIAorCS8qCisJICogQmVmb3JlIHBvcHVsYXRp bmcgdGhlIGRpZmYgdGFibGUsIGNoZWNrIGZvciBkdXBsaWNhdGUgcm93cyBpbiB0aGUKKwkgKiBu ZXcgZGF0YSBzZXQuICBXZSBsb29rIGZvciByb3dzIHRoYXQgYXJlIGVxdWFsIGluIGFsbCB1bmlx dWUgaW5kZXgKKwkgKiBjb2x1bW5zICh1c2luZyB0aGUgc2FtZSBvcGVyYXRvcnMgYXMgdGhlIGpv aW4gYWJvdmUsIHdoZXJlCisJICogTlVMTCA9IE5VTEwgaXMgZmFsc2UpIEFORCBhcmUgYWxzbyAq PS1lcXVhbCBvdmVyYWxsLiAgU3VjaCByb3dzCisJICogd291bGQgYm90aCBtYXRjaCB0aGUgc2Ft ZSBtYXRlcmlhbGl6ZWQgdmlldyByb3cgaW4gdGhlIGpvaW4sCisJICogcHJvZHVjaW5nIGFuIGFt YmlndW91cyBkaWZmLgorCSAqCisJICogVXNpbmcgaW5kZXggY29sdW1uIG9wZXJhdG9ycyByYXRo ZXIgdGhhbiAqPSBhbG9uZSBpcyBpbXBvcnRhbnQ6IGl0CisJICogY29ycmVjdGx5IGV4Y2x1ZGVz IHJvd3Mgd2hvc2UgaW5kZXhlZCBjb2x1bW5zIGFyZSBOVUxMLCBiZWNhdXNlCisJICogdW5pcXVl IGluZGV4ZXMgdHJlYXQgTlVMTHMgYXMgZGlzdGluY3Qgc28gdGhvc2Ugcm93cyBkbyBub3QgY2F1 c2UKKwkgKiBqb2luIGFtYmlndWl0eS4KKwkgKgorCSAqIE5vdGU6IGhlcmUgYW5kIGJlbG93LCB3 ZSB1c2UgInRhYmxlbmFtZS4qOjp0YWJsZXJvd3R5cGUiIGFzIGEgaGFjaworCSAqIHRvIGtlZXAg Ii4qIiBmcm9tIGJlaW5nIGV4cGFuZGVkIGludG8gbXVsdGlwbGUgY29sdW1ucyBpbiBhIFNFTEVD VAorCSAqIGxpc3QuICBDb21wYXJlIHJ1bGV1dGlscy5jJ3MgZ2V0X3ZhcmlhYmxlKCkuCisJICoK KwkgKiBFdmVuIGFmdGVyIHdlIHBhc3MgdGhpcyB0ZXN0LCBhIHVuaXF1ZSBpbmRleCBvbiB0aGUg bWF0ZXJpYWxpemVkCisJICogdmlldyBtYXkgZmluZCBhIGR1cGxpY2F0ZSBrZXkgcHJvYmxlbS4K KwkgKi8KKwl7CisJCVN0cmluZ0luZm9EYXRhIHByZWNoZWNrX3F1ZXJ5YnVmOworCisJCWluaXRT dHJpbmdJbmZvKCZwcmVjaGVja19xdWVyeWJ1Zik7CisJCWFwcGVuZFN0cmluZ0luZm8oJnByZWNo ZWNrX3F1ZXJ5YnVmLAorCQkJCQkJICJTRUxFQ1QgbmV3ZGF0YS4qOjolcyBGUk9NICVzIG5ld2Rh dGEgIgorCQkJCQkJICJXSEVSRSBFWElTVFMgIgorCQkJCQkJICIoU0VMRUNUIDEgRlJPTSAlcyBu ZXdkYXRhMiBXSEVSRSAlcyIKKwkJCQkJCSAiIEFORCBuZXdkYXRhMi4qIE9QRVJBVE9SKHBnX2Nh dGFsb2cuKj0pIG5ld2RhdGEuKiIKKwkJCQkJCSAiIEFORCBuZXdkYXRhMi5jdGlkIE9QRVJBVE9S KHBnX2NhdGFsb2cuPD4pIG5ld2RhdGEuY3RpZCkiLAorCQkJCQkJIHRlbXBuYW1lLCB0ZW1wbmFt ZSwgdGVtcG5hbWUsIHByZWNoZWNrX2NvbmRfYnVmLmRhdGEpOworCisJCWlmIChTUElfZXhlY3V0 ZShwcmVjaGVja19xdWVyeWJ1Zi5kYXRhLCBmYWxzZSwgMSkgIT0gU1BJX09LX1NFTEVDVCkKKwkJ CWVsb2coRVJST1IsICJTUElfZXhlYyBmYWlsZWQ6ICVzIiwgcHJlY2hlY2tfcXVlcnlidWYuZGF0 YSk7CisKKwkJaWYgKFNQSV9wcm9jZXNzZWQgPiAwKQorCQl7CisJCQkvKgorCQkJICogTm90ZSB0 aGF0IHRoaXMgZXJlcG9ydCgpIGlzIHJldHVybmluZyBkYXRhIHRvIHRoZSB1c2VyLgorCQkJICog R2VuZXJhbGx5LCB3ZSB3b3VsZCB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSB1c2VyIGhhcyBi ZWVuCisJCQkgKiBncmFudGVkIGFjY2VzcyB0byB0aGlzIGRhdGEuICBIb3dldmVyLCBSRUZSRVNI IE1BVCBWSUVXIGlzCisJCQkgKiBvbmx5IGFibGUgdG8gYmUgcnVuIGJ5IHRoZSBvd25lciBvZiB0 aGUgbWF0IHZpZXcgKG9yIGEKKwkJCSAqIHN1cGVydXNlcikgYW5kIHRoZXJlZm9yZSB0aGVyZSBp cyBubyBuZWVkIHRvIGNoZWNrIGZvciBhY2Nlc3MKKwkJCSAqIHRvIGRhdGEgaW4gdGhlIG1hdCB2 aWV3LgorCQkJICovCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0NB UkRJTkFMSVRZX1ZJT0xBVElPTiksCisJCQkJCSBlcnJtc2coIm5ldyBkYXRhIGZvciBtYXRlcmlh bGl6ZWQgdmlldyBcIiVzXCIgY29udGFpbnMgZHVwbGljYXRlIHJvd3MiLAorCQkJCQkJCVJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKG1hdHZpZXdSZWwpKSwKKwkJCQkJIGVycmRldGFpbCgiUm93OiAl cyIsCisJCQkJCQkJICAgU1BJX2dldHZhbHVlKFNQSV90dXB0YWJsZS0+dmFsc1swXSwKKwkJCQkJ CQkJCQkgICBTUElfdHVwdGFibGUtPnR1cGRlc2MsIDEpKSkpOworCQl9CisJfQorCiAJLyogUG9w dWxhdGUgdGhlIHRlbXBvcmFyeSAiZGlmZiIgdGFibGUuICovCiAJaWYgKFNQSV9leGVjKHF1ZXJ5 YnVmLmRhdGEsIDApICE9IFNQSV9PS19JTlNFUlQpCiAJCWVsb2coRVJST1IsICJTUElfZXhlYyBm YWlsZWQ6ICVzIiwgcXVlcnlidWYuZGF0YSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL21hdHZpZXcub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tYXR2aWV3 Lm91dAppbmRleCAwMzU1NzIwZGZjNi4uMWRjZmYyNmEyZTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbWF0dmlldy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9tYXR2aWV3Lm91dApAQCAtMzk2LDggKzM5NiwzOSBAQCBSRUZSRVNIIE1BVEVSSUFMSVpF RCBWSUVXIG12dGVzdF9tdjsKIEVSUk9SOiAgY291bGQgbm90IGNyZWF0ZSB1bmlxdWUgaW5kZXgg Im12dGVzdF9tdl9hX2lkeCIKIERFVEFJTDogIEtleSAoYSk9KDEpIGlzIGR1cGxpY2F0ZWQuCiBS RUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIENPTkNVUlJFTlRMWSBtdnRlc3RfbXY7Ci1FUlJPUjog IG5ldyBkYXRhIGZvciBtYXRlcmlhbGl6ZWQgdmlldyAibXZ0ZXN0X212IiBjb250YWlucyBkdXBs aWNhdGUgcm93cyB3aXRob3V0IGFueSBudWxsIGNvbHVtbnMKK0VSUk9SOiAgbmV3IGRhdGEgZm9y IG1hdGVyaWFsaXplZCB2aWV3ICJtdnRlc3RfbXYiIGNvbnRhaW5zIGR1cGxpY2F0ZSByb3dzCiBE RVRBSUw6ICBSb3c6ICgxLDEwKQorRFJPUCBUQUJMRSBtdnRlc3RfZm9vIENBU0NBREU7CitOT1RJ Q0U6ICBkcm9wIGNhc2NhZGVzIHRvIG1hdGVyaWFsaXplZCB2aWV3IG12dGVzdF9tdgorLS0gdGVz dCB0aGF0IGR1cGxpY2F0ZSByb3dzIGNvbnRhaW5pbmcgTlVMTHMgaW4gbm9uLWluZGV4ZWQgY29s dW1ucyBhcmUgZGV0ZWN0ZWQKK0NSRUFURSBUQUJMRSBtdnRlc3RfZm9vKGEgdGV4dCwgYiB0ZXh0 KTsKK0lOU0VSVCBJTlRPIG12dGVzdF9mb28gVkFMVUVTKCd0ZXN0JywgTlVMTCk7CitDUkVBVEUg TUFURVJJQUxJWkVEIFZJRVcgbXZ0ZXN0X212IEFTIFNFTEVDVCAqIEZST00gbXZ0ZXN0X2ZvbzsK K0NSRUFURSBVTklRVUUgSU5ERVggT04gbXZ0ZXN0X212KGEpOworSU5TRVJUIElOVE8gbXZ0ZXN0 X2ZvbyBWQUxVRVMoJ3Rlc3QnLCBOVUxMKTsKK1JFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgbXZ0 ZXN0X212OworRVJST1I6ICBjb3VsZCBub3QgY3JlYXRlIHVuaXF1ZSBpbmRleCAibXZ0ZXN0X212 X2FfaWR4IgorREVUQUlMOiAgS2V5IChhKT0odGVzdCkgaXMgZHVwbGljYXRlZC4KK1JFRlJFU0gg TUFURVJJQUxJWkVEIFZJRVcgQ09OQ1VSUkVOVExZIG12dGVzdF9tdjsKK0VSUk9SOiAgbmV3IGRh dGEgZm9yIG1hdGVyaWFsaXplZCB2aWV3ICJtdnRlc3RfbXYiIGNvbnRhaW5zIGR1cGxpY2F0ZSBy b3dzCitERVRBSUw6ICBSb3c6ICh0ZXN0LCkKK0RST1AgVEFCTEUgbXZ0ZXN0X2ZvbyBDQVNDQURF OworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBtYXRlcmlhbGl6ZWQgdmlldyBtdnRlc3RfbXYK Ky0tIHRlc3QgdGhhdCByb3dzIHdpdGggTlVMTHMgaW4gdGhlIGluZGV4ZWQgY29sdW1uIGFyZSBu b3QgZmFsc2UgcG9zaXRpdmVzOgorLS0gdW5pcXVlIGluZGV4ZXMgdHJlYXQgTlVMTHMgYXMgZGlz dGluY3QsIHNvIChOVUxMLE5VTEwpeDIgaXMgYSB2YWxpZCBzdGF0ZQorLS0gYW5kIENPTkNVUlJF TlRMWSBzaG91bGQgc3VjY2VlZCBhbmQgdXBkYXRlIHRoZSB2aWV3IHRvIHJlZmxlY3QgYm90aCBy b3dzCitDUkVBVEUgVEFCTEUgbXZ0ZXN0X2ZvbyhhIGludCwgYiBpbnQpOworSU5TRVJUIElOVE8g bXZ0ZXN0X2ZvbyBWQUxVRVMoTlVMTCwgTlVMTCk7CitDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcg bXZ0ZXN0X212IEFTIFNFTEVDVCAqIEZST00gbXZ0ZXN0X2ZvbzsKK0NSRUFURSBVTklRVUUgSU5E RVggT04gbXZ0ZXN0X212KGEpOworSU5TRVJUIElOVE8gbXZ0ZXN0X2ZvbyBWQUxVRVMoTlVMTCwg TlVMTCk7CitSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIENPTkNVUlJFTlRMWSBtdnRlc3RfbXY7 CitTRUxFQ1QgQ09VTlQoKikgRlJPTSBtdnRlc3RfbXY7CisgY291bnQgCistLS0tLS0tCisgICAg IDIKKygxIHJvdykKKwogRFJPUCBUQUJMRSBtdnRlc3RfZm9vIENBU0NBREU7CiBOT1RJQ0U6ICBk cm9wIGNhc2NhZGVzIHRvIG1hdGVyaWFsaXplZCB2aWV3IG12dGVzdF9tdgogLS0gbWFrZSBzdXJl IHRoYXQgYWxsIGNvbHVtbnMgY292ZXJlZCBieSB1bmlxdWUgaW5kZXhlcyB3b3JrcwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWF0dmlldy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9tYXR2aWV3LnNxbAppbmRleCA5MzQ0MjZiOWFlOC4uZTY1Y2Q0ZmE5NGIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21hdHZpZXcuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL21hdHZpZXcuc3FsCkBAIC0xMzUsNiArMTM1LDI4IEBAIFJFRlJFU0ggTUFURVJJQUxJ WkVEIFZJRVcgbXZ0ZXN0X212OwogUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBDT05DVVJSRU5U TFkgbXZ0ZXN0X212OwogRFJPUCBUQUJMRSBtdnRlc3RfZm9vIENBU0NBREU7CiAKKy0tIHRlc3Qg dGhhdCBkdXBsaWNhdGUgcm93cyBjb250YWluaW5nIE5VTExzIGluIG5vbi1pbmRleGVkIGNvbHVt bnMgYXJlIGRldGVjdGVkCitDUkVBVEUgVEFCTEUgbXZ0ZXN0X2ZvbyhhIHRleHQsIGIgdGV4dCk7 CitJTlNFUlQgSU5UTyBtdnRlc3RfZm9vIFZBTFVFUygndGVzdCcsIE5VTEwpOworQ1JFQVRFIE1B VEVSSUFMSVpFRCBWSUVXIG12dGVzdF9tdiBBUyBTRUxFQ1QgKiBGUk9NIG12dGVzdF9mb287CitD UkVBVEUgVU5JUVVFIElOREVYIE9OIG12dGVzdF9tdihhKTsKK0lOU0VSVCBJTlRPIG12dGVzdF9m b28gVkFMVUVTKCd0ZXN0JywgTlVMTCk7CitSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIG12dGVz dF9tdjsKK1JFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgQ09OQ1VSUkVOVExZIG12dGVzdF9tdjsK K0RST1AgVEFCTEUgbXZ0ZXN0X2ZvbyBDQVNDQURFOworCistLSB0ZXN0IHRoYXQgcm93cyB3aXRo IE5VTExzIGluIHRoZSBpbmRleGVkIGNvbHVtbiBhcmUgbm90IGZhbHNlIHBvc2l0aXZlczoKKy0t IHVuaXF1ZSBpbmRleGVzIHRyZWF0IE5VTExzIGFzIGRpc3RpbmN0LCBzbyAoTlVMTCxOVUxMKXgy IGlzIGEgdmFsaWQgc3RhdGUKKy0tIGFuZCBDT05DVVJSRU5UTFkgc2hvdWxkIHN1Y2NlZWQgYW5k IHVwZGF0ZSB0aGUgdmlldyB0byByZWZsZWN0IGJvdGggcm93cworQ1JFQVRFIFRBQkxFIG12dGVz dF9mb28oYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIG12dGVzdF9mb28gVkFMVUVTKE5VTEws IE5VTEwpOworQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIG12dGVzdF9tdiBBUyBTRUxFQ1QgKiBG Uk9NIG12dGVzdF9mb287CitDUkVBVEUgVU5JUVVFIElOREVYIE9OIG12dGVzdF9tdihhKTsKK0lO U0VSVCBJTlRPIG12dGVzdF9mb28gVkFMVUVTKE5VTEwsIE5VTEwpOworUkVGUkVTSCBNQVRFUklB TElaRUQgVklFVyBDT05DVVJSRU5UTFkgbXZ0ZXN0X212OworU0VMRUNUIENPVU5UKCopIEZST00g bXZ0ZXN0X212OworRFJPUCBUQUJMRSBtdnRlc3RfZm9vIENBU0NBREU7CisKIC0tIG1ha2Ugc3Vy ZSB0aGF0IGFsbCBjb2x1bW5zIGNvdmVyZWQgYnkgdW5pcXVlIGluZGV4ZXMgd29ya3MKIENSRUFU RSBUQUJMRSBtdnRlc3RfZm9vKGEsIGIsIGMpIEFTIFZBTFVFUygxLCAyLCAzKTsKIENSRUFURSBN QVRFUklBTElaRUQgVklFVyBtdnRlc3RfbXYgQVMgU0VMRUNUICogRlJPTSBtdnRlc3RfZm9vOwot LSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --00000000000090f04706521a5689 Content-Type: application/octet-stream; name="0006-Fix-REFRESH-MATERIALIZED-VIEW-CONCURRENTLY-performan.patch" Content-Disposition: attachment; filename="0006-Fix-REFRESH-MATERIALIZED-VIEW-CONCURRENTLY-performan.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpbfuiv81 RnJvbSA2NjJkYTM2ZWRiZTliMTkwZDc4NDc4YzRmZTEyOGE5MzcyOGY5NTJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzcG9vbmRsYSA8c19wb29uZGxhQGFwcGxlLmNvbT4KRGF0ZTog TW9uLCAyIE1hciAyMDI2IDExOjIzOjE3IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2Nl0gRml4IFJF RlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgQ09OQ1VSUkVOVExZIHBlcmZvcm1hbmNlCiB3aXRoIG51 bGxhYmxlIGluZGV4ZWQgY29sdW1ucwoKV2hlbiBhIG1hdGVyaWFsaXplZCB2aWV3IGhhcyBhIHVu aXF1ZSBpbmRleCBvbiBhIG51bGxhYmxlIGNvbHVtbiwgdGhlIGpvaW4KY29uZGl0aW9uIHVzZWQg dG8gZGV0ZWN0IGNoYW5nZXMgaW5jbHVkZWQgTlVMTCA9IE5VTEwgY29tcGFyaXNvbnMgd2hpY2gK ZXZhbHVhdGUgdG8gTlVMTCAoZmFsc2UpLCBjYXVzaW5nIGV2ZXJ5IHJvdyB3aXRoIGEgTlVMTCBp bmRleGVkIHZhbHVlIHRvCmFwcGVhciBhcyBjaGFuZ2VkIG9uIGV2ZXJ5IENPTkNVUlJFTlRMWSBy ZWZyZXNoIGV2ZW4gd2hlbiB0aGUgZGF0YSB3YXMKdW5jaGFuZ2VkLgoKVGhlIGZpeCBza2lwcyBu dWxsYWJsZSBjb2x1bW5zIGZyb20gdGhlIHBlci1jb2x1bW4gam9pbiBjb25kaXRpb25zIHdoZW4g dGhlCmluZGV4IGhhcyBhdCBsZWFzdCBvbmUgTk9UIE5VTEwgY29sdW1uLiAgVGhlIE5PVCBOVUxM IGNvbHVtbihzKSBhcmUgc3VmZmljaWVudAp0byBpZGVudGlmeSBtYXRjaGluZyByb3dzIHVuaXF1 ZWx5LCBzbyBvbWl0dGluZyB0aGUgbnVsbGFibGUgb25lcyBhdm9pZHMgdGhlCnVubmVjZXNzYXJ5 IE5VTEwgPSBOVUxMIGNvbXBhcmlzb25zLiAgVGhlIHJlY29yZCBlcXVhbGl0eSBvcGVyYXRvciAo Kj0pLAphcHBlbmRlZCB0byB0aGUgam9pbiBjb25kaXRpb24gdW5jb25kaXRpb25hbGx5LCBoYW5k bGVzIGFsbCBjb2x1bW5zIGluY2x1ZGluZwpudWxsYWJsZSBvbmVzIGFuZCBlbnN1cmVzIGNoYW5n ZWQgcm93cyBhcmUgc3RpbGwgZGV0ZWN0ZWQgY29ycmVjdGx5LgoKV2hlbiBhbGwgY29sdW1ucyBv ZiBhIHVuaXF1ZSBpbmRleCBhcmUgbnVsbGFibGUsIG5vIGNvbHVtbnMgYXJlIHNraXBwZWQuClJl bHlpbmcgb24gKj0gYWxvbmUgaW4gdGhhdCBjYXNlIHdvdWxkIGJlIGluY29ycmVjdDogKj0gdHJl YXRzIE5VTEwgYXMgZXF1YWwKdG8gTlVMTCwgd2hpY2ggY2FuIGNhdXNlIGpvaW4gYW1iaWd1aXR5 IG9yIHNpbGVudCBkYXRhIGxvc3Mgd2hlbiByb3dzIGNvbnRhaW4KYWxsLW51bGwgdmFsdWVzLiAg RmFsbGluZyBiYWNrIHRvIGluY2x1ZGluZyBhbGwgY29sdW1ucyBwcmVzZXJ2ZXMgdGhlIG9yaWdp bmFsCihzbG93ZXIgYnV0IGNvcnJlY3QpIGJlaGF2aW9yIGZvciB0aGF0IGVkZ2UgY2FzZS4KCkFk ZGVkIHJlZ3Jlc3Npb24gdGVzdHMgY292ZXJpbmcgYm90aCB0aGUgb3B0aW1pemF0aW9uIHBhdGgg KGluZGV4IHdpdGggYXQKbGVhc3Qgb25lIE5PVCBOVUxMIGNvbHVtbikgYW5kIHRoZSBmYWxsYmFj ayBwYXRoIChhbGwtbnVsbGFibGUgaW5kZXgpLgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL21h dHZpZXcuYyAgICAgICAgfCA2MCArKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbWF0dmlldy5vdXQgfCAyOSArKysrKysrKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9tYXR2aWV3LnNxbCAgICAgIHwgMjQgKysrKysrKysrKysKIDMgZmlsZXMg Y2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvbWF0dmlldy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWF0 dmlldy5jCmluZGV4IGY3ZDgwMDdmNzk2Li5hNDc1MDQ5OTJkNiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvbWF0dmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21hdHZp ZXcuYwpAQCAtNjAyLDYgKzYwMiw3IEBAIHJlZnJlc2hfYnlfbWF0Y2hfbWVyZ2UoT2lkIG1hdHZp ZXdPaWQsIE9pZCB0ZW1wT2lkLCBPaWQgcmVsb3duZXIsCiAJY2hhcgkgICAqbnNwOwogCVR1cGxl RGVzYwl0dXBkZXNjOwogCWJvb2wJCWZvdW5kVW5pcXVlSW5kZXg7CisJYm9vbAkJYWRkZWRBbnlR dWFsczsKIAlMaXN0CSAgICppbmRleG9pZGxpc3Q7CiAJTGlzdENlbGwgICAqaW5kZXhvaWRzY2Fu OwogCWludDE2CQlyZWxuYXR0czsKQEAgLTcxNSw2ICs3MTYsNyBAQCByZWZyZXNoX2J5X21hdGNo X21lcmdlKE9pZCBtYXR2aWV3T2lkLCBPaWQgdGVtcE9pZCwgT2lkIHJlbG93bmVyLAogCXR1cGRl c2MgPSBtYXR2aWV3UmVsLT5yZF9hdHQ7CiAJb3BVc2VkRm9yUXVhbCA9IHBhbGxvYzBfYXJyYXko T2lkLCByZWxuYXR0cyk7CiAJZm91bmRVbmlxdWVJbmRleCA9IGZhbHNlOworCWFkZGVkQW55UXVh bHMgPSBmYWxzZTsKIAogCWluZGV4b2lkbGlzdCA9IFJlbGF0aW9uR2V0SW5kZXhMaXN0KG1hdHZp ZXdSZWwpOwogCkBAIC03MzEsNiArNzMzLDkgQEAgcmVmcmVzaF9ieV9tYXRjaF9tZXJnZShPaWQg bWF0dmlld09pZCwgT2lkIHRlbXBPaWQsIE9pZCByZWxvd25lciwKIAkJCW9pZHZlY3RvciAgKmlu ZGNsYXNzOwogCQkJRGF0dW0JCWluZGNsYXNzRGF0dW07CiAJCQlpbnQJCQlpOworCQkJYm9vbAkJ aW5kZXhfaGFzX25vbm51bGw7CisKKwkJCWZvdW5kVW5pcXVlSW5kZXggPSB0cnVlOwogCiAJCQkv KiBNdXN0IGdldCBpbmRjbGFzcyB0aGUgaGFyZCB3YXkuICovCiAJCQlpbmRjbGFzc0RhdHVtID0g U3lzQ2FjaGVHZXRBdHRyTm90TnVsbChJTkRFWFJFTElELApAQCAtNzM4LDYgKzc0MywyOSBAQCBy ZWZyZXNoX2J5X21hdGNoX21lcmdlKE9pZCBtYXR2aWV3T2lkLCBPaWQgdGVtcE9pZCwgT2lkIHJl bG93bmVyLAogCQkJCQkJCQkJCQkJICAgQW51bV9wZ19pbmRleF9pbmRjbGFzcyk7CiAJCQlpbmRj bGFzcyA9IChvaWR2ZWN0b3IgKikgRGF0dW1HZXRQb2ludGVyKGluZGNsYXNzRGF0dW0pOwogCisJ CQkvKgorCQkJICogUHJlLXNjYW46IGNoZWNrIHdoZXRoZXIgdGhpcyBpbmRleCBoYXMgYXQgbGVh c3Qgb25lIE5PVCBOVUxMCisJCQkgKiBjb2x1bW4uICBJZiBpdCBkb2VzLCB3ZSBjYW4gc2FmZWx5 IHNraXAgbnVsbGFibGUgY29sdW1ucyBpbgorCQkJICogdGhlIGpvaW4gY29uZGl0aW9uIGJlbG93 ICh0aGUgTk9UIE5VTEwgY29sdW1uKHMpIHVuaXF1ZWx5CisJCQkgKiBpZGVudGlmeSByb3dzLCBz byBvbWl0dGluZyBudWxsYWJsZSBjb2x1bW5zIGRvZXMgbm90IGludHJvZHVjZQorCQkJICogam9p biBhbWJpZ3VpdHkpLiAgSWYgYWxsIGNvbHVtbnMgYXJlIG51bGxhYmxlIHdlIG11c3QgaW5jbHVk ZQorCQkJICogYWxsIG9mIHRoZW0gdG8gcHJlc2VydmUgY29ycmVjdG5lc3M6IHNraXBwaW5nIGV2 ZXJ5dGhpbmcgYW5kCisJCQkgKiByZWx5aW5nIG9uICo9IGFsb25lIGNhbiBjYXVzZSBqb2luIGFt YmlndWl0eSBvciBkYXRhIGxvc3MKKwkJCSAqIGJlY2F1c2UgKj0gdHJlYXRzIE5VTEwgYXMgZXF1 YWwgdG8gTlVMTC4KKwkJCSAqLworCQkJaW5kZXhfaGFzX25vbm51bGwgPSBmYWxzZTsKKwkJCWZv ciAoaSA9IDA7IGkgPCBpbmRua2V5YXR0czsgaSsrKQorCQkJeworCQkJCUZvcm1fcGdfYXR0cmli dXRlIGF0dHJfY2hlY2sgPQorCQkJCQlUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGluZGV4U3RydWN0 LT5pbmRrZXkudmFsdWVzW2ldIC0gMSk7CisKKwkJCQlpZiAoYXR0cl9jaGVjay0+YXR0bm90bnVs bCkKKwkJCQl7CisJCQkJCWluZGV4X2hhc19ub25udWxsID0gdHJ1ZTsKKwkJCQkJYnJlYWs7CisJ CQkJfQorCQkJfQorCiAJCQkvKiBBZGQgcXVhbHMgZm9yIGFsbCBjb2x1bW5zIGZyb20gdGhpcyBp bmRleC4gKi8KIAkJCWZvciAoaSA9IDA7IGkgPCBpbmRua2V5YXR0czsgaSsrKQogCQkJewpAQCAt NzUzLDYgKzc4MSwyNCBAQCByZWZyZXNoX2J5X21hdGNoX21lcmdlKE9pZCBtYXR2aWV3T2lkLCBP aWQgdGVtcE9pZCwgT2lkIHJlbG93bmVyLAogCQkJCWNvbnN0IGNoYXIgKmxlZnRvcDsKIAkJCQlj b25zdCBjaGFyICpyaWdodG9wOwogCisJCQkJLyoKKwkJCQkgKiBTa2lwIG51bGxhYmxlIGNvbHVt bnMgd2hlbiB0aGlzIGluZGV4IGhhcyBhdCBsZWFzdCBvbmUgTk9UCisJCQkJICogTlVMTCBjb2x1 bW4uICBOdWxsYWJsZSBjb2x1bW5zIGluIHVuaXF1ZSBpbmRleGVzIGFsbG93CisJCQkJICogbXVs dGlwbGUgTlVMTHMgYW5kIE5VTEwgPSBOVUxMIGV2YWx1YXRlcyB0byBOVUxMIChmYWxzZSkgaW4K KwkJCQkgKiB0aGUgam9pbiwgbWFraW5nIHVuY2hhbmdlZCBOVUxMLWNvbnRhaW5pbmcgcm93cyBh cHBlYXIgYXMKKwkJCQkgKiBjaGFuZ2VkIG9uIGV2ZXJ5IHJlZnJlc2guICBUaGUgTk9UIE5VTEwg Y29sdW1uKHMpIGFyZQorCQkJCSAqIHN1ZmZpY2llbnQgdG8gaWRlbnRpZnkgbWF0Y2hpbmcgcm93 cywgc28gd2UgY2FuIHNhZmVseSBvbWl0CisJCQkJICogbnVsbGFibGUgb25lcyB3aXRob3V0IGlu dHJvZHVjaW5nIGpvaW4gYW1iaWd1aXR5LgorCQkJCSAqCisJCQkJICogV2hlbiBhbGwgY29sdW1u cyBhcmUgbnVsbGFibGUgd2UgbXVzdCBub3Qgc2tpcCBhbnkgb2YgdGhlbToKKwkJCQkgKiB3aXRo IG5vIHBlci1jb2x1bW4gY29uZGl0aW9ucyBvbmx5ICo9IHdvdWxkIHJlbWFpbiwgd2hpY2gKKwkJ CQkgKiBjYW4gY2F1c2Ugam9pbiBhbWJpZ3VpdHkgb3IgZGF0YSBsb3NzIChzZWUgcHJlLXNjYW4g Y29tbWVudAorCQkJCSAqIGFib3ZlKS4gIFdlIGZhbGwgYmFjayB0byBpbmNsdWRpbmcgYWxsIGNv bHVtbnMgc28gdGhlIGpvaW4KKwkJCQkgKiBiZWhhdmVzIGFzIGluIHRoZSBvcmlnaW5hbCBjb2Rl LgorCQkJCSAqLworCQkJCWlmIChpbmRleF9oYXNfbm9ubnVsbCAmJiAhYXR0ci0+YXR0bm90bnVs bCkKKwkJCQkJY29udGludWU7CisKIAkJCQkvKgogCQkJCSAqIElkZW50aWZ5IHRoZSBlcXVhbGl0 eSBvcGVyYXRvciBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbmRleAogCQkJCSAqIGNvbHVtbi4gIEZp cnN0IHdlIG5lZWQgdG8gbG9vayB1cCB0aGUgY29sdW1uJ3Mgb3BjbGFzcy4KQEAgLTc4OCw3ICs4 MzQsNyBAQCByZWZyZXNoX2J5X21hdGNoX21lcmdlKE9pZCBtYXR2aWV3T2lkLCBPaWQgdGVtcE9p ZCwgT2lkIHJlbG93bmVyLAogCQkJCS8qCiAJCQkJICogQWN0dWFsbHkgYWRkIHRoZSBxdWFsLCBB TkRlZCB3aXRoIGFueSBvdGhlcnMuCiAJCQkJICovCi0JCQkJaWYgKGZvdW5kVW5pcXVlSW5kZXgp CisJCQkJaWYgKGFkZGVkQW55UXVhbHMpCiAJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnF1 ZXJ5YnVmLCAiIEFORCAiKTsKIAogCQkJCWxlZnRvcCA9IHF1b3RlX3F1YWxpZmllZF9pZGVudGlm aWVyKCJuZXdkYXRhIiwKQEAgLTgwMSw3ICs4NDcsNyBAQCByZWZyZXNoX2J5X21hdGNoX21lcmdl KE9pZCBtYXR2aWV3T2lkLCBPaWQgdGVtcE9pZCwgT2lkIHJlbG93bmVyLAogCQkJCQkJCQkJCSBv cCwKIAkJCQkJCQkJCQkgcmlnaHRvcCwgYXR0cnR5cGUpOwogCi0JCQkJZm91bmRVbmlxdWVJbmRl eCA9IHRydWU7CisJCQkJYWRkZWRBbnlRdWFscyA9IHRydWU7CiAJCQl9CiAJCX0KIApAQCAtODI2 LDggKzg3MiwxNiBAQCByZWZyZXNoX2J5X21hdGNoX21lcmdlKE9pZCBtYXR2aWV3T2lkLCBPaWQg dGVtcE9pZCwgT2lkIHJlbG93bmVyLAogCQkJCWVycm1zZygiY291bGQgbm90IGZpbmQgc3VpdGFi bGUgdW5pcXVlIGluZGV4IG9uIG1hdGVyaWFsaXplZCB2aWV3IFwiJXNcIiIsCiAJCQkJCSAgIFJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKG1hdHZpZXdSZWwpKSk7CiAKKwkvKgorCSAqIFRoZSByZWNv cmQgZXF1YWxpdHkgb3BlcmF0b3IgKCo9KSBpcyBhbHdheXMgaW5jbHVkZWQgaW4gdGhlIGpvaW4K KwkgKiBwcmVkaWNhdGUuICBJdCBoYW5kbGVzIGFsbCBjb2x1bW5zIGNvcnJlY3RseSBpbmNsdWRp bmcgbnVsbGFibGUgb25lcworCSAqIHRoYXQgd2VyZSBza2lwcGVkIGFib3ZlLCBzaW5jZSAqPSAg dHJlYXRzIE5VTEwgYXMgZXF1YWwgdG8gTlVMTC4KKwkgKi8KKwlpZiAoYWRkZWRBbnlRdWFscykK KwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcXVlcnlidWYsICIgQU5EICIpOworCiAJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmcXVlcnlidWYsCi0JCQkJCQkgICAiIEFORCBuZXdkYXRhLiogT1BF UkFUT1IocGdfY2F0YWxvZy4qPSkgbXYuKikgIgorCQkJCQkJICAgIm5ld2RhdGEuKiBPUEVSQVRP UihwZ19jYXRhbG9nLio9KSBtdi4qKSAiCiAJCQkJCQkgICAiV0hFUkUgbmV3ZGF0YS4qIElTIE5V TEwgT1IgbXYuKiBJUyBOVUxMICIKIAkJCQkJCSAgICJPUkRFUiBCWSB0aWQiKTsKIApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tYXR2aWV3Lm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvbWF0dmlldy5vdXQKaW5kZXggMDM1NTcyMGRmYzYuLjk4ZGIxZTA4MTg1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL21hdHZpZXcub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbWF0dmlldy5vdXQKQEAgLTQxOCw2ICs0MTgsMzUg QEAgQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIG12dGVzdF9tdjIgQVMgU0VMRUNUICogRlJPTSBt dnRlc3RfbXYxCiAgIFdIRVJFIGNvbDEgPSAoU0VMRUNUIExFQVNUKGNvbDEpIEZST00gbXZ0ZXN0 X212MSkgV0lUSCBOTyBEQVRBOwogRFJPUCBNQVRFUklBTElaRUQgVklFVyBtdnRlc3RfbXYxIENB U0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIG1hdGVyaWFsaXplZCB2aWV3IG12dGVz dF9tdjIKKy0tIHRlc3QgdGhhdCBudWxsYWJsZSBpbmRleGVkIGNvbHVtbnMgYXJlIHNraXBwZWQg aW4gdGhlIGpvaW4gY29uZGl0aW9uIHdoZW4KKy0tIHRoZSBpbmRleCBoYXMgYXQgbGVhc3Qgb25l IE5PVCBOVUxMIGNvbHVtbi4gIFRoZSBOT1QgTlVMTCBjb2x1bW4gYWxvbmUKKy0tIGlkZW50aWZp ZXMgbWF0Y2hpbmcgcm93cywgc28gdGhlIG51bGxhYmxlIGNvbHVtbiBkb2VzIG5vdCBuZWVkIHRv IGJlIGluCistLSB0aGUgam9pbiBhbmQgaXRzIE5VTEwgdmFsdWVzIGRvIG5vdCBjYXVzZSB1bm5l Y2Vzc2FyeSBERUxFVEUrSU5TRVJUIGNodXJuLgorQ1JFQVRFIFRBQkxFIG12dGVzdF9mb28oYSBp bnQgTk9UIE5VTEwsIGIgaW50KTsKK0lOU0VSVCBJTlRPIG12dGVzdF9mb28gVkFMVUVTKDEsIE5V TEwpLCAoMiwgTlVMTCksICgzLCBOVUxMKTsKK0NSRUFURSBNQVRFUklBTElaRUQgVklFVyBtdnRl c3RfbXYgQVMgU0VMRUNUICogRlJPTSBtdnRlc3RfZm9vOworQ1JFQVRFIFVOSVFVRSBJTkRFWCBP TiBtdnRlc3RfbXYoYSk7ICAtLSBhIGlzIE5PVCBOVUxMLCBiIGlzIG51bGxhYmxlCistLSBBZGQg YSBzZWNvbmQgaW5kZXggb24gdGhlIG51bGxhYmxlIGNvbHVtbiBhbG9uZSB0byBtYWtlIGl0IGV4 ZXJjaXNlIHRoZQorLS0gYWxsLW51bGxhYmxlIGZhbGxiYWNrIHBhdGggdGhyb3VnaCB0aGUgcHJl LXNjYW4uCitDUkVBVEUgVU5JUVVFIElOREVYIE9OIG12dGVzdF9tdihiKTsKK1JFRlJFU0ggTUFU RVJJQUxJWkVEIFZJRVcgQ09OQ1VSUkVOVExZIG12dGVzdF9tdjsgIC0tIG11c3Qgc3VjY2VlZAor RFJPUCBUQUJMRSBtdnRlc3RfZm9vIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRv IG1hdGVyaWFsaXplZCB2aWV3IG12dGVzdF9tdgorLS0gdGVzdCB0aGF0IENPTkNVUlJFTlRMWSBz dGlsbCB3b3JrcyB3aGVuIGFsbCBpbmRleGVkIGNvbHVtbnMgYXJlIG51bGxhYmxlCistLSAoZmFs bHMgYmFjayB0byBpbmNsdWRpbmcgYWxsIGNvbHVtbnMsIHdoaWNoIGlzIHNsb3dlciBidXQgY29y cmVjdCkuCitDUkVBVEUgVEFCTEUgbXZ0ZXN0X2ZvbyhhIGludCwgYiBpbnQpOworSU5TRVJUIElO VE8gbXZ0ZXN0X2ZvbyBWQUxVRVMoTlVMTCwgMSk7CitDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcg bXZ0ZXN0X212IEFTIFNFTEVDVCAqIEZST00gbXZ0ZXN0X2ZvbzsKK0NSRUFURSBVTklRVUUgSU5E RVggT04gbXZ0ZXN0X212KGEpOyAgLS0gYWxsLW51bGxhYmxlIGluZGV4CitSRUZSRVNIIE1BVEVS SUFMSVpFRCBWSUVXIENPTkNVUlJFTlRMWSBtdnRlc3RfbXY7ICAtLSBtdXN0IHN1Y2NlZWQKK1NF TEVDVCAqIEZST00gbXZ0ZXN0X212OworIGEgfCBiIAorLS0tKy0tLQorICAgfCAxCisoMSByb3cp CisKK0RST1AgVEFCTEUgbXZ0ZXN0X2ZvbyBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRl cyB0byBtYXRlcmlhbGl6ZWQgdmlldyBtdnRlc3RfbXYKIC0tIG1ha2Ugc3VyZSB0aGF0IHR5cGVz IHdpdGggdW51c3VhbCBlcXVhbGl0eSB0ZXN0cyB3b3JrCiBDUkVBVEUgVEFCTEUgbXZ0ZXN0X2Jv eGVzIChpZCBzZXJpYWwgcHJpbWFyeSBrZXksIGIgYm94KTsKIElOU0VSVCBJTlRPIG12dGVzdF9i b3hlcyAoYikgVkFMVUVTCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9tYXR2aWV3 LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL21hdHZpZXcuc3FsCmluZGV4IDkzNDQyNmI5YWU4 Li42MjQwNTZhNGRjNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWF0dmlldy5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbWF0dmlldy5zcWwKQEAgLTE1Myw2ICsxNTMs MzAgQEAgQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVXIG12dGVzdF9tdjIgQVMgU0VMRUNUICogRlJP TSBtdnRlc3RfbXYxCiAgIFdIRVJFIGNvbDEgPSAoU0VMRUNUIExFQVNUKGNvbDEpIEZST00gbXZ0 ZXN0X212MSkgV0lUSCBOTyBEQVRBOwogRFJPUCBNQVRFUklBTElaRUQgVklFVyBtdnRlc3RfbXYx IENBU0NBREU7CiAKKy0tIHRlc3QgdGhhdCBudWxsYWJsZSBpbmRleGVkIGNvbHVtbnMgYXJlIHNr aXBwZWQgaW4gdGhlIGpvaW4gY29uZGl0aW9uIHdoZW4KKy0tIHRoZSBpbmRleCBoYXMgYXQgbGVh c3Qgb25lIE5PVCBOVUxMIGNvbHVtbi4gIFRoZSBOT1QgTlVMTCBjb2x1bW4gYWxvbmUKKy0tIGlk ZW50aWZpZXMgbWF0Y2hpbmcgcm93cywgc28gdGhlIG51bGxhYmxlIGNvbHVtbiBkb2VzIG5vdCBu ZWVkIHRvIGJlIGluCistLSB0aGUgam9pbiBhbmQgaXRzIE5VTEwgdmFsdWVzIGRvIG5vdCBjYXVz ZSB1bm5lY2Vzc2FyeSBERUxFVEUrSU5TRVJUIGNodXJuLgorQ1JFQVRFIFRBQkxFIG12dGVzdF9m b28oYSBpbnQgTk9UIE5VTEwsIGIgaW50KTsKK0lOU0VSVCBJTlRPIG12dGVzdF9mb28gVkFMVUVT KDEsIE5VTEwpLCAoMiwgTlVMTCksICgzLCBOVUxMKTsKK0NSRUFURSBNQVRFUklBTElaRUQgVklF VyBtdnRlc3RfbXYgQVMgU0VMRUNUICogRlJPTSBtdnRlc3RfZm9vOworQ1JFQVRFIFVOSVFVRSBJ TkRFWCBPTiBtdnRlc3RfbXYoYSk7ICAtLSBhIGlzIE5PVCBOVUxMLCBiIGlzIG51bGxhYmxlCist LSBBZGQgYSBzZWNvbmQgaW5kZXggb24gdGhlIG51bGxhYmxlIGNvbHVtbiBhbG9uZSB0byBtYWtl IGl0IGV4ZXJjaXNlIHRoZQorLS0gYWxsLW51bGxhYmxlIGZhbGxiYWNrIHBhdGggdGhyb3VnaCB0 aGUgcHJlLXNjYW4uCitDUkVBVEUgVU5JUVVFIElOREVYIE9OIG12dGVzdF9tdihiKTsKK1JFRlJF U0ggTUFURVJJQUxJWkVEIFZJRVcgQ09OQ1VSUkVOVExZIG12dGVzdF9tdjsgIC0tIG11c3Qgc3Vj Y2VlZAorRFJPUCBUQUJMRSBtdnRlc3RfZm9vIENBU0NBREU7CisKKy0tIHRlc3QgdGhhdCBDT05D VVJSRU5UTFkgc3RpbGwgd29ya3Mgd2hlbiBhbGwgaW5kZXhlZCBjb2x1bW5zIGFyZSBudWxsYWJs ZQorLS0gKGZhbGxzIGJhY2sgdG8gaW5jbHVkaW5nIGFsbCBjb2x1bW5zLCB3aGljaCBpcyBzbG93 ZXIgYnV0IGNvcnJlY3QpLgorQ1JFQVRFIFRBQkxFIG12dGVzdF9mb28oYSBpbnQsIGIgaW50KTsK K0lOU0VSVCBJTlRPIG12dGVzdF9mb28gVkFMVUVTKE5VTEwsIDEpOworQ1JFQVRFIE1BVEVSSUFM SVpFRCBWSUVXIG12dGVzdF9tdiBBUyBTRUxFQ1QgKiBGUk9NIG12dGVzdF9mb287CitDUkVBVEUg VU5JUVVFIElOREVYIE9OIG12dGVzdF9tdihhKTsgIC0tIGFsbC1udWxsYWJsZSBpbmRleAorUkVG UkVTSCBNQVRFUklBTElaRUQgVklFVyBDT05DVVJSRU5UTFkgbXZ0ZXN0X212OyAgLS0gbXVzdCBz dWNjZWVkCitTRUxFQ1QgKiBGUk9NIG12dGVzdF9tdjsKK0RST1AgVEFCTEUgbXZ0ZXN0X2ZvbyBD QVNDQURFOworCiAtLSBtYWtlIHN1cmUgdGhhdCB0eXBlcyB3aXRoIHVudXN1YWwgZXF1YWxpdHkg dGVzdHMgd29yawogQ1JFQVRFIFRBQkxFIG12dGVzdF9ib3hlcyAoaWQgc2VyaWFsIHByaW1hcnkg a2V5LCBiIGJveCk7CiBJTlNFUlQgSU5UTyBtdnRlc3RfYm94ZXMgKGIpIFZBTFVFUwotLSAKMi4z OS41IChBcHBsZSBHaXQtMTU0KQoK --00000000000090f04706521a5689--