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 1w7lbK-005fpT-0W for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 02:46:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w7lbG-00ELkE-26 for pgsql-hackers@arkaria.postgresql.org; Wed, 01 Apr 2026 02:46:35 +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 1w7lbG-00ELk6-0n for pgsql-hackers@lists.postgresql.org; Wed, 01 Apr 2026 02:46:34 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w7lbD-00000002HUB-0zy1 for pgsql-hackers@postgresql.org; Wed, 01 Apr 2026 02:46:33 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-66a33f61d80so10569896a12.0 for ; Tue, 31 Mar 2026 19:46:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775011589; cv=none; d=google.com; s=arc-20240605; b=DN011AG9sYySWdFFoUma3ERgmejZzu0oU/6BmCNC5rw9v6TmL4ENP8fSUbjJdv6PqP uPKhtMhkgjLgA8Z983wsabGGaIJX355c1KZloMKp56woTeUPpduPAbOIUksUxoTBsBZ+ eAvPTDOZ++o8Lgsqem7USGyp8Hl8HkKAEoYPQqvySoeTkvYaVMnCGaTX2YvJ91E34yvm mjc+M+JltlDiDeOoUlP5HisouB9VSd3GUKiap2BOOMk0rBo36kLvPNd6uCZ0gimq4/0h i+liDhbGFIEqhxJhprTN/lZHjlBN8ywy9cL9PpaP3ewTmsxVhlvWhfeJ39tqJAxi/M1v IvlA== 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=J/9bkVn+F+u+HSEWcaiedNQqenPuYEbaLlOjZWCQltE=; fh=T/wOU/v1YiKLJd1Mg5s+quEXJxuB2K2X9CENQb2rzik=; b=RTG7HDBjwKOclI2HiI9U+j8eHawx5XnwMuU63AdbtDb/utbFCevOR7x8PXSlp1xlea mtGOQYsqVLpOj4R5BRwBJ1ZEKDsuJCeKwAfXtKOAWL5Wv+twBpNoDa6eIdI+x6Fd7MmD ngyB8v8bG8VdG2zfX36jBxUcwOCbdDNdSO8FPDwSwdCAMRri8zZNd0Yzk9QmPaLX/JAP 4Wiwl/iZY8DaTJRZ1OkeYJSeBP83naVpDENTUF49tN1ZGTKdT4cHOcMLMPU5+ezAqcmS A1jK7/Fm7IrlmvdBEspzhkXcTfsMn/XrkRTJDQiOeN3M1Gm4ND6OoBjMDrDZW5eF3nWz XDfw==; darn=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=1775011589; x=1775616389; darn=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=J/9bkVn+F+u+HSEWcaiedNQqenPuYEbaLlOjZWCQltE=; b=OG8or0c0V014sJNr1HEXrKoA6QkD8L1DhdGuZ6sBjkRHQCfxvn6GAjNcmBWnb0hy6b cGLqYML+gCO4CIdpySeXnZ5HdsMOvhmreoYW5tR1Zvi4KBT6Px03EV/2EJKUmV3mn782 lNAqqLr2A+kRnEvoz9Xti1u0fiKUs/0DGPGPqOxQ2Z0NYJUd9aid3y7EjvC4rQ1Rd5/w aXexXgYxZoOuDrf7vmjWgPD6qk3CqBCvk4gc2ZgPVxnModil+D9cToRvt+ObaKrJizPu NGQkjIYFxfqR7ZqFwtgL1uRLVmSmO5ySpy1q4UeglFjetVu41j+SIiF29uiw5aWCJqOD sy7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775011589; x=1775616389; 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=J/9bkVn+F+u+HSEWcaiedNQqenPuYEbaLlOjZWCQltE=; b=WbjNA7RDx0Y3DTKUZ7xxjr2E2oH/31WWMFUMk1DdJGhDyCxTw5ofPZEd5BZ+vPBAwe WIAxleq4l83ygnVl+GA4cUi8Obd5/rvtVzEm7d4Ss2tUmsMMuujcsO7ipwgBUFCc6uhu 1Br5jrKHHIPvHCrv3RFSteG2Ve6SHK8O9Hfsv4o4hIjZ/5EQwOfhPRDXedVNKO8Nw4ZE o9A24QvuG6+nlkY5+AEEDc2z8mvPPC2Tv+y1anRtFt2xzy/i491nn3Tb8VGb8Tr7auuz cHym4R4+u1tOwCrFbbk1kxrnQc/tnSeVHH0F8Y23ZTXZvGQ3S1r5uej3QjZJbATV7e5t phaQ== X-Forwarded-Encrypted: i=1; AJvYcCXQjiTgwvHOmzwXUZbSBxqk2TG7afk5WLLf6TH16vG30U/oIqvoujP4ek1lNhA6e19K5dl6X25V9IJxBm0O@postgresql.org X-Gm-Message-State: AOJu0YwJNIaRArEleh0UXEjPVniUvsm7o0lqHl0n/H3tCyTXfJgQLAaS xjTYwrCGc1ZtCkgfWRXDlXWjscQ7L8zrGFN4zGgMShLEkzvue098JiOVpKha+MfxAaZ87m2UIuA tAZ5VYb1IcFedmA5pY6ocydJNsZu3DfY= X-Gm-Gg: ATEYQzzzTju47IlLCsiMG103p9gWWyM8RfUAv0c+2ce2KEg85UsDBRdTGuiYdjEmpjT 1LOK8TPlskmjMusyOubF93EhsH4OjaXBArnWpNU1Aa78vkxF5EDXGjEllqsmZiuo2HLiTdR4PMa u/aRdA+VhSq6eBO7ZxoS9cYLA7GplnsE0BtzTDr816vkrpn67zRuSSBrF49rptoF8GRyZmNiNLO kwp8ZnzE33LXRPYQsaxSfTqCEwpJley0DC2Zj09iytO/seXjbdWe7mNo+OD87aaEoENRbI/Vv+T n4KlzedAsugAu08l X-Received: by 2002:a05:6402:35d0:b0:663:4315:7271 with SMTP id 4fb4d7f45d1cf-66db0cfbdaamr1131319a12.23.1775011588678; Tue, 31 Mar 2026 19:46:28 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Sami Imseih Date: Tue, 31 Mar 2026 21:46:16 -0500 X-Gm-Features: AQROBzDCXY2UkUXwWbIuBz0dDEyxtSgYtruZtDB0wTQyEer_ge0vSfj8E79doDo Message-ID: Subject: Re: Add pg_stat_autovacuum_priority To: Nathan Bossart Cc: Bharath Rupireddy , Robert Treat , satyanarlapuram@gmail.com, pgsql-hackers Content-Type: multipart/mixed; boundary="00000000000037585a064e5d172b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000037585a064e5d172b Content-Type: text/plain; charset="UTF-8" > > 1/ + while ((classTup = heap_getnext(relScan, ForwardScanDirection)) != NULL) > > > > Missing check_for_interrupts call while scanning the pg_class system catalog. > > From a glance I don't see one in the scanning code in do_autovacuum(), > either. I'm not sure we need to be worried about this. Yes, I will leave it out. Even for catalogs with thousands of tables, I don't foresee this being an issue. > > + values[8] = Float8GetDatum(scores.vac_ins); > > + values[9] = Float8GetDatum(scores.anl); > > > > Nit: It's a matter of taste. How about using something like below > > instead of hardcoded column numbers? I expect this view to grow in the > > future, so it helps to keep things simple. > > > > values[i++] = Float8GetDatum(scores.anl); > > Assert(i == NUM_AV_SCORE_COLS); > > I don't think either way is substantially better. I agree. using numbers is more readable IMO. > > + > > + > > + vacuum_dead_score double precision > > + > > + > > + Score component based on the estimated number of dead tuples > > + needing removal by vacuum. > > + > > + > > > > I think we should make sure the column names align with the names given to > > the new parameters [0] and the new "Autovacuum Prioritization" section in > > the docs [1]. > I will look into this in the next rev. The field names now match the GUC names (without the _weight). We might as well also make this name change in the AutoVacuumScore struct. I attached v4 which includes 4 patches in the set to address earlier comments: 0001: This modifies relation_needs_vacanalyze() to always compute the score so the monitoring view can report the score regardless if autovacuum is enabled on the table. AutoVacuumScores is renamed to AutoVacuumPriority as it now also tracks needs_analyze, needs_vacuum and is_wraparound which are different from the dovacuum, doanalyze and wraparound output parameters which are acted on by autovacuum. This is a clean separation of reporting the scores/needs for autovacuum/analyze and the eligibility for autovacuum which is based on the state of autovacuum being enabled and set on the table level. 0002: relation_needs_vacanalyze() takes a new elevel argument to control logging. Callers pass DEBUG3 for autovacuum or 0 to suppress logging. 0003: Alvaro's earlier suggestion to factor out recheck_relation_needs_vacanalyze() and introduce compute_autovac_score() 0004: The view implementation with field names that better match the GUCs as suggested by Nathan in an earlier comment. -- Sami --00000000000037585a064e5d172b Content-Type: application/octet-stream; name="v4-0001-Always-compute-autovacuum-priority-scores.patch" Content-Disposition: attachment; filename="v4-0001-Always-compute-autovacuum-priority-scores.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnffyq7b3 RnJvbSBmMTJmZDk4Njc2NGZjMjE4Y2FlNjcwZGRjNGY2YmE2ZWMxZmRjYzk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAzMSBNYXIgMjAyNiAxODoyNTozMCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjQgMS80 XSBBbHdheXMgY29tcHV0ZSBhdXRvdmFjdXVtIHByaW9yaXR5IHNjb3JlcwoKUHJldmlvdXNseSwg WElEL01YSUQgYWdlIHNjb3JlcyB3ZXJlIG9ubHkgY29tcHV0ZWQgd2hlbgphIHRhYmxlIHdhcyBh dCB3cmFwYXJvdW5kIHJpc2ssIGFuZCB0aHJlc2hvbGQtYmFzZWQKc2NvcmVzIHdlcmUgb25seSBj b21wdXRlZCB3aGVuIGF1dG92YWN1dW0gd2FzIGdsb2JhbGx5CmFjdGl2ZS4gVGhpcyBtZWFudCB0 aGUgc2NvcmVzIHdlcmUgdW5hdmFpbGFibGUgZm9yCnRhYmxlcyBub3QgeWV0IGF0IHJpc2sgb3Ig d2l0aCBhdXRvdmFjdXVtIGRpc2FibGVkLgoKQSBmdXR1cmUgcGF0Y2ggdG8gbW9uaXRvciB0aGUg c2NvcmVzIGFuZCB0aGUgbmVlZApmb3IgdmFjdXVtL2FuYWx5emUgbXVzdCBiZSBhYmxlIHRvIGNv bXB1dGUgdGhlc2UKdmFsdWVzIHJlZ2FyZGxlc3Mgb2YgYXV0b3ZhY3V1bSBzdGF0ZSBvbiB0aGUg dGFibGUuClRoZXJlZm9yZSwgc2VwYXJhdGUgdGhlIG5lZWQgZm9yIHZhY3V1bSBhbmQgYW5hbHl6 ZQphbmQgdHJhY2sgdGhlbSBpbiBBdXRvVmFjdXVtU2NvcmUgc28gdGhleSBjYW4gYmUKdXNlZCBm b3IgdGhpcyBwdXJwb3NlIHJhdGhlciB0aGFuIHRoZSBvdXRwdXQKZG92YWN1dW0sIGRvYW5hbHl6 ZSBhbmQgd3JhcGFyb3VuZCBwYXJhbWV0ZXJzIHRoYXQKYXJlIGFjdGVkIHVwb24gYnkgYXV0b3Zh Y3V1bS4KCkF1dG9WYWN1dW1TY29yZXMgaXMgYWxzbyByZW5hbWVkIHRvIEF1dG9WYWN1dW1Qcmlv cml0eQphcyBpdCBubyBsb25nZXIganVzdCB0cmFja3Mgc2NvcmVzLgoKRGlzY3Vzc2lvbjogaHR0 cHM6Ly9wb3N0Z3IuZXMvbS9DQUE1UlowczR4ak1yQi1WQW5MY2NDN2tZOGQwLTQ4MDYtTHNhYy1j ekpzZEExTFh0QXclNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIv YXV0b3ZhY3V1bS5jIHwgMjE2ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIHNyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgIHwgICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDEx MyBpbnNlcnRpb25zKCspLCAxMDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92 YWN1dW0uYwppbmRleCA2Njk0ZjQ4NTIxNi4uMmNhMTVhZWU0ZWIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0 ZXIvYXV0b3ZhY3V1bS5jCkBAIC0zMTgsOCArMzE4LDkgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQg RGF0YWJhc2VMaXN0Q3h0ID0gTlVMTDsKIAogLyoKICAqIFRoaXMgc3RydWN0IGlzIHVzZWQgYnkg cmVsYXRpb25fbmVlZHNfdmFjYW5hbHl6ZSgpIHRvIHJldHVybiB0aGUgdGFibGUncwotICogc2Nv cmUgKGkuZS4sIHRoZSBtYXhpbXVtIG9mIHRoZSBjb21wb25lbnQgc2NvcmVzKSBhcyB3ZWxsIGFz IHRoZSBjb21wb25lbnQKLSAqIHNjb3JlcyB0aGVtc2VsdmVzLgorICogYXV0b3ZhY3V1bSBwcmlv cml0eSwgaW5jbHVkaW5nIHRoZSBvdmVyYWxsIHNjb3JlIChpLmUuLCB0aGUgbWF4aW11bSBvZiB0 aGUKKyAqIGNvbXBvbmVudCBzY29yZXMpLCB0aGUgY29tcG9uZW50IHNjb3JlcyB0aGVtc2VsdmVz LCBhbmQgd2hldGhlciB0aGUgdGFibGUKKyAqIG5lZWRzIHZhY3V1bSwgYW5hbHl6ZSwgb3IgaXMg YXQgcmlzayBvZiB3cmFwYXJvdW5kLgogICovCiB0eXBlZGVmIHN0cnVjdAogewpAQCAtMzI5LDcg KzMzMCwxMCBAQCB0eXBlZGVmIHN0cnVjdAogCWRvdWJsZQkJdmFjOwkJCS8qIHZhY3V1bSBjb21w b25lbnQgKi8KIAlkb3VibGUJCXZhY19pbnM7CQkvKiB2YWN1dW0gaW5zZXJ0IGNvbXBvbmVudCAq LwogCWRvdWJsZQkJYW5sOwkJCS8qIGFuYWx5emUgY29tcG9uZW50ICovCi19IEF1dG9WYWN1dW1T Y29yZXM7CisJYm9vbAkJbmVlZHNfdmFjdXVtOwkvKiB0aHJlc2hvbGQgZXhjZWVkZWQgZm9yIHZh Y3V1bSAqLworCWJvb2wJCW5lZWRzX2FuYWx5emU7CS8qIHRocmVzaG9sZCBleGNlZWRlZCBmb3Ig YW5hbHl6ZSAqLworCWJvb2wJCWlzX3dyYXBhcm91bmQ7CS8qIGF0IHJpc2sgb2YgWElEL01YSUQg d3JhcGFyb3VuZCAqLworfSBBdXRvVmFjdXVtUHJpb3JpdHk7CiAKIC8qCiAgKiBUaGlzIHN0cnVj dCBpcyB1c2VkIHRvIHRyYWNrIGFuZCBzb3J0IHRoZSBsaXN0IG9mIHRhYmxlcyB0byBwcm9jZXNz LgpAQCAtMzc5LDcgKzM4Myw3IEBAIHN0YXRpYyB2b2lkIHJlbGF0aW9uX25lZWRzX3ZhY2FuYWx5 emUoT2lkIHJlbGlkLCBBdXRvVmFjT3B0cyAqcmVsb3B0cywKIAkJCQkJCQkJCSAgUGdTdGF0X1N0 YXRUYWJFbnRyeSAqdGFiZW50cnksCiAJCQkJCQkJCQkgIGludCBlZmZlY3RpdmVfbXVsdGl4YWN0 X2ZyZWV6ZV9tYXhfYWdlLAogCQkJCQkJCQkJICBib29sICpkb3ZhY3V1bSwgYm9vbCAqZG9hbmFs eXplLCBib29sICp3cmFwYXJvdW5kLAotCQkJCQkJCQkJICBBdXRvVmFjdXVtU2NvcmVzICpzY29y ZXMpOworCQkJCQkJCQkJICBBdXRvVmFjdXVtUHJpb3JpdHkgKnByaW9yaXR5KTsKIAogc3RhdGlj IHZvaWQgYXV0b3ZhY3V1bV9kb192YWNfYW5hbHl6ZShhdXRvdmFjX3RhYmxlICp0YWIsCiAJCQkJ CQkJCQkgIEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IGJzdHJhdGVneSk7CkBAIC0yMDM0LDcgKzIwMzgs NyBAQCBkb19hdXRvdmFjdXVtKHZvaWQpCiAJCWJvb2wJCWRvdmFjdXVtOwogCQlib29sCQlkb2Fu YWx5emU7CiAJCWJvb2wJCXdyYXBhcm91bmQ7Ci0JCUF1dG9WYWN1dW1TY29yZXMgc2NvcmVzOwor CQlBdXRvVmFjdXVtUHJpb3JpdHkgcHJpb3JpdHk7CiAKIAkJaWYgKGNsYXNzRm9ybS0+cmVsa2lu ZCAhPSBSRUxLSU5EX1JFTEFUSU9OICYmCiAJCQljbGFzc0Zvcm0tPnJlbGtpbmQgIT0gUkVMS0lO RF9NQVRWSUVXKQpAQCAtMjA3Niw3ICsyMDgwLDcgQEAgZG9fYXV0b3ZhY3V1bSh2b2lkKQogCQly ZWxhdGlvbl9uZWVkc192YWNhbmFseXplKHJlbGlkLCByZWxvcHRzLCBjbGFzc0Zvcm0sIHRhYmVu dHJ5LAogCQkJCQkJCQkgIGVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UsCiAJCQkJ CQkJCSAgJmRvdmFjdXVtLCAmZG9hbmFseXplLCAmd3JhcGFyb3VuZCwKLQkJCQkJCQkJICAmc2Nv cmVzKTsKKwkJCQkJCQkJICAmcHJpb3JpdHkpOwogCiAJCS8qIFJlbGF0aW9ucyB0aGF0IG5lZWQg d29yayBhcmUgYWRkZWQgdG8gdGFibGVzX3RvX3Byb2Nlc3MgKi8KIAkJaWYgKGRvdmFjdXVtIHx8 IGRvYW5hbHl6ZSkKQEAgLTIwODQsNyArMjA4OCw3IEBAIGRvX2F1dG92YWN1dW0odm9pZCkKIAkJ CVRhYmxlVG9Qcm9jZXNzICp0YWJsZSA9IHBhbGxvY19vYmplY3QoVGFibGVUb1Byb2Nlc3MpOwog CiAJCQl0YWJsZS0+b2lkID0gcmVsaWQ7Ci0JCQl0YWJsZS0+c2NvcmUgPSBzY29yZXMubWF4Owor CQkJdGFibGUtPnNjb3JlID0gcHJpb3JpdHkubWF4OwogCQkJdGFibGVzX3RvX3Byb2Nlc3MgPSBs YXBwZW5kKHRhYmxlc190b19wcm9jZXNzLCB0YWJsZSk7CiAJCX0KIApAQCAtMjE0Miw3ICsyMTQ2 LDcgQEAgZG9fYXV0b3ZhY3V1bSh2b2lkKQogCQlib29sCQlkb3ZhY3V1bTsKIAkJYm9vbAkJZG9h bmFseXplOwogCQlib29sCQl3cmFwYXJvdW5kOwotCQlBdXRvVmFjdXVtU2NvcmVzIHNjb3JlczsK KwkJQXV0b1ZhY3V1bVByaW9yaXR5IHByaW9yaXR5OwogCiAJCS8qCiAJCSAqIFdlIGNhbm5vdCBz YWZlbHkgcHJvY2VzcyBvdGhlciBiYWNrZW5kcycgdGVtcCB0YWJsZXMsIHNvIHNraXAgJ2VtLgpA QCAtMjE3Niw3ICsyMTgwLDcgQEAgZG9fYXV0b3ZhY3V1bSh2b2lkKQogCQlyZWxhdGlvbl9uZWVk c192YWNhbmFseXplKHJlbGlkLCByZWxvcHRzLCBjbGFzc0Zvcm0sIHRhYmVudHJ5LAogCQkJCQkJ CQkgIGVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UsCiAJCQkJCQkJCSAgJmRvdmFj dXVtLCAmZG9hbmFseXplLCAmd3JhcGFyb3VuZCwKLQkJCQkJCQkJICAmc2NvcmVzKTsKKwkJCQkJ CQkJICAmcHJpb3JpdHkpOwogCiAJCS8qIGlnbm9yZSBhbmFseXplIGZvciB0b2FzdCB0YWJsZXMg Ki8KIAkJaWYgKGRvdmFjdXVtKQpAQCAtMjE4NCw3ICsyMTg4LDcgQEAgZG9fYXV0b3ZhY3V1bSh2 b2lkKQogCQkJVGFibGVUb1Byb2Nlc3MgKnRhYmxlID0gcGFsbG9jX29iamVjdChUYWJsZVRvUHJv Y2Vzcyk7CiAKIAkJCXRhYmxlLT5vaWQgPSByZWxpZDsKLQkJCXRhYmxlLT5zY29yZSA9IHNjb3Jl cy5tYXg7CisJCQl0YWJsZS0+c2NvcmUgPSBwcmlvcml0eS5tYXg7CiAJCQl0YWJsZXNfdG9fcHJv Y2VzcyA9IGxhcHBlbmQodGFibGVzX3RvX3Byb2Nlc3MsIHRhYmxlKTsKIAkJfQogCkBAIC0yOTg1 LDcgKzI5ODksNyBAQCByZWNoZWNrX3JlbGF0aW9uX25lZWRzX3ZhY2FuYWx5emUoT2lkIHJlbGlk LAogCQkJCQkJCQkgIGJvb2wgKndyYXBhcm91bmQpCiB7CiAJUGdTdGF0X1N0YXRUYWJFbnRyeSAq dGFiZW50cnk7Ci0JQXV0b1ZhY3V1bVNjb3JlcyBzY29yZXM7CisJQXV0b1ZhY3V1bVByaW9yaXR5 IHByaW9yaXR5OwogCiAJLyogZmV0Y2ggdGhlIHBnc3RhdCB0YWJsZSBlbnRyeSAqLwogCXRhYmVu dHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfdGFiZW50cnlfZXh0KGNsYXNzRm9ybS0+cmVsaXNzaGFy ZWQsCkBAIC0yOTk0LDcgKzI5OTgsNyBAQCByZWNoZWNrX3JlbGF0aW9uX25lZWRzX3ZhY2FuYWx5 emUoT2lkIHJlbGlkLAogCXJlbGF0aW9uX25lZWRzX3ZhY2FuYWx5emUocmVsaWQsIGF2b3B0cywg Y2xhc3NGb3JtLCB0YWJlbnRyeSwKIAkJCQkJCQkgIGVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXpl X21heF9hZ2UsCiAJCQkJCQkJICBkb3ZhY3V1bSwgZG9hbmFseXplLCB3cmFwYXJvdW5kLAotCQkJ CQkJCSAgJnNjb3Jlcyk7CisJCQkJCQkJICAmcHJpb3JpdHkpOwogCiAJLyogUmVsZWFzZSB0YWJl bnRyeSB0byBhdm9pZCBsZWFrYWdlICovCiAJaWYgKHRhYmVudHJ5KQpAQCAtMzAzMCwxMCArMzAz NCwxMCBAQCByZWNoZWNrX3JlbGF0aW9uX25lZWRzX3ZhY2FuYWx5emUoT2lkIHJlbGlkLAogICog dHJhbnNhY3Rpb25zIGJhY2ssIGFuZCBpZiBpdHMgcmVsbWlubXhpZCBpcyBtb3JlIHRoYW4KICAq IG11bHRpeGFjdF9mcmVlemVfbWF4X2FnZSBtdWx0aXhhY3RzIGJhY2suCiAgKgotICogQSB0YWJs ZSB3aG9zZSBhdXRvdmFjdXVtX2VuYWJsZWQgb3B0aW9uIGlzIGZhbHNlIGlzCi0gKiBhdXRvbWF0 aWNhbGx5IHNraXBwZWQgKHVubGVzcyB3ZSBoYXZlIHRvIHZhY3V1bSBpdCBkdWUgdG8gZnJlZXpl X21heF9hZ2UpLgotICogVGh1cyBhdXRvdmFjdXVtIGNhbiBiZSBkaXNhYmxlZCBmb3Igc3BlY2lm aWMgdGFibGVzLiBBbHNvLCB3aGVuIHRoZSBjdW11bGF0aXZlCi0gKiBzdGF0cyBzeXN0ZW0gZG9l cyBub3QgaGF2ZSBkYXRhIGFib3V0IGEgdGFibGUsIGl0IHdpbGwgYmUgc2tpcHBlZC4KKyAqIEEg dGFibGUgd2hvc2UgYXV0b3ZhY3V1bV9lbmFibGVkIG9wdGlvbiBpcyBmYWxzZSBpcyBhdXRvbWF0 aWNhbGx5IHNraXBwZWQKKyAqIGJ5IGF1dG92YWN1dW0gKHVubGVzcyB3ZSBoYXZlIHRvIHZhY3V1 bSBpdCBkdWUgdG8gZnJlZXplX21heF9hZ2UpLAorICogYnV0IHNjb3JlcyBhcmUgc3RpbGwgY29t cHV0ZWQuICBBbHNvLCB3aGVuIHRoZSBjdW11bGF0aXZlIHN0YXRzIHN5c3RlbSBkb2VzCisgKiBu b3QgaGF2ZSBkYXRhIGFib3V0IGEgdGFibGUsIHRocmVzaG9sZC1iYXNlZCBzY29yZXMgd2lsbCBi ZSB6ZXJvLgogICoKICAqIEEgdGFibGUgd2hvc2UgdmFjX2Jhc2VfdGhyZXNoIHZhbHVlIGlzIDwg MCB0YWtlcyB0aGUgYmFzZSB2YWx1ZSBmcm9tIHRoZQogICogYXV0b3ZhY3V1bV92YWN1dW1fdGhy ZXNob2xkIEdVQyB2YXJpYWJsZS4gIFNpbWlsYXJseSwgYSB2YWNfc2NhbGVfZmFjdG9yCkBAIC0z MDYxLDEwICszMDY1LDEwIEBAIHJlY2hlY2tfcmVsYXRpb25fbmVlZHNfdmFjYW5hbHl6ZShPaWQg cmVsaWQsCiAgKiBjb21wYXJlZCB0byB0aGUgdmFjdXVtIHRocmVzaG9sZCwgYW5kIHRoZSBudW1i ZXIgb2YgaW5zZXJ0ZWQvdXBkYXRlZC9kZWxldGVkCiAgKiB0dXBsZXMgY29tcGFyZWQgdG8gdGhl IGFuYWx5emUgdGhyZXNob2xkLgogICoKLSAqIE9uZSBleGNlcHRpb24gdG8gdGhlIHByZXZpb3Vz IHBhcmFncmFwaCBpcyBmb3IgdGFibGVzIG5lYXJpbmcgd3JhcGFyb3VuZCwKLSAqIGkuZS4sIHRo b3NlIHRoYXQgaGF2ZSBzdXJwYXNzZWQgdGhlIGVmZmVjdGl2ZSBmYWlsc2FmZSBhZ2VzLiAgSW4g dGhhdCBjYXNlLAotICogdGhlIHJlbGZyb3plbi9yZWxtaW5teGlkLWJhc2VkIHNjb3JlIGlzIHNj YWxlZCBhZ2dyZXNzaXZlbHkgc28gdGhhdCB0aGUKLSAqIHRhYmxlIGhhcyBhIGRlY2VudCBjaGFu Y2Ugb2Ygc29ydGluZyB0byB0aGUgZnJvbnQgb2YgdGhlIGxpc3QuCisgKiBGdXJ0aGVybW9yZSwg Zm9yIHRhYmxlcyBuZWFyaW5nIHdyYXBhcm91bmQsIGkuZS4sIHRob3NlIHRoYXQgaGF2ZSBzdXJw YXNzZWQKKyAqIHRoZSBlZmZlY3RpdmUgZmFpbHNhZmUgYWdlcywgdGhlIHJlbGZyb3plbi9yZWxt aW5teGlkLWJhc2VkIHNjb3JlIGlzIHNjYWxlZAorICogYWdncmVzc2l2ZWx5IHNvIHRoYXQgdGhl IHRhYmxlIGhhcyBhIGRlY2VudCBjaGFuY2Ugb2Ygc29ydGluZyB0byB0aGUgZnJvbnQKKyAqIG9m IHRoZSBsaXN0LgogICoKICAqIFRvIGFkanVzdCBob3cgc3Ryb25nbHkgZWFjaCBjb21wb25lbnQg Y29udHJpYnV0ZXMgdG8gdGhlIHNjb3JlLCB0aGUKICAqIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGNh biBiZSBhZGp1c3RlZCBmcm9tIHRoZWlyIGRlZmF1bHQgb2YgMS4wIHRvIGFueXdoZXJlCkBAIC0z MDc3LDkgKzMwODEsMTIgQEAgcmVjaGVja19yZWxhdGlvbl9uZWVkc192YWNhbmFseXplKE9pZCBy ZWxpZCwKICAqICAgICBhdXRvdmFjdXVtX3ZhY3V1bV9pbnNlcnRfc2NvcmVfd2VpZ2h0CiAgKiAg ICAgYXV0b3ZhY3V1bV9hbmFseXplX3Njb3JlX3dlaWdodAogICoKLSAqIFRoZSBhdXRvdmFjdXVt IHRhYmxlIHNjb3JlIGlzIHJldHVybmVkIGluIHNjb3Jlcy0+bWF4LiAgVGhlIGNvbXBvbmVudCBz Y29yZXMKLSAqIGFyZSBhbHNvIHJldHVybmVkIGluIHRoZSAic2NvcmVzIiBhcmd1bWVudCB2aWEg dGhlIG90aGVyIG1lbWJlcnMgb2YgdGhlCi0gKiBBdXRvVmFjdXVtU2NvcmVzIHN0cnVjdC4KKyAq IFRoZSBhdXRvdmFjdXVtIHRhYmxlIHNjb3JlIGlzIHJldHVybmVkIGluIHByaW9yaXR5LT5tYXgu ICBUaGUgY29tcG9uZW50IHNjb3JlcworICogYXJlIGFsc28gcmV0dXJuZWQgaW4gdGhlICJwcmlv cml0eSIgYXJndW1lbnQgdmlhIHRoZSBvdGhlciBtZW1iZXJzIG9mIHRoZQorICogQXV0b1ZhY3V1 bVByaW9yaXR5IHN0cnVjdC4KKyAqCisgKiBQcmlvcml0eSBzY29yZXMgYXJlIGFsd2F5cyBjb21w dXRlZC4gIGRvdmFjdXVtIGFuZCBkb2FuYWx5emUgYXJlIG9ubHkgc2V0IHdoZW4KKyAqIGF1dG92 YWN1dW0gaXMgYWN0aXZlIGFuZCBlbmFibGVkIGZvciB0aGUgcmVsYXRpb24uCiAgKi8KIHN0YXRp YyB2b2lkCiByZWxhdGlvbl9uZWVkc192YWNhbmFseXplKE9pZCByZWxpZCwKQEAgLTMwOTEsNyAr MzA5OCw3IEBAIHJlbGF0aW9uX25lZWRzX3ZhY2FuYWx5emUoT2lkIHJlbGlkLAogCQkJCQkJICBi b29sICpkb3ZhY3V1bSwKIAkJCQkJCSAgYm9vbCAqZG9hbmFseXplLAogCQkJCQkJICBib29sICp3 cmFwYXJvdW5kLAotCQkJCQkJICBBdXRvVmFjdXVtU2NvcmVzICpzY29yZXMpCisJCQkJCQkgIEF1 dG9WYWN1dW1Qcmlvcml0eSAqcHJpb3JpdHkpCiB7CiAJYm9vbAkJZm9yY2VfdmFjdXVtOwogCWJv b2wJCWF2X2VuYWJsZWQ7CkBAIC0zMTIyLDExICszMTI5LDE1IEBAIHJlbGF0aW9uX25lZWRzX3Zh Y2FuYWx5emUoT2lkIHJlbGlkLAogCVRyYW5zYWN0aW9uSWQgcmVsZnJvemVueGlkOwogCU11bHRp WGFjdElkIHJlbG1pbm14aWQ7CiAJTXVsdGlYYWN0SWQgbXVsdGlGb3JjZUxpbWl0OworCXVpbnQz MgkJeGlkX2FnZTsKKwl1aW50MzIJCW14aWRfYWdlOworCWludAkJCWVmZmVjdGl2ZV94aWRfZmFp bHNhZmVfYWdlOworCWludAkJCWVmZmVjdGl2ZV9teGlkX2ZhaWxzYWZlX2FnZTsKIAogCUFzc2Vy dChjbGFzc0Zvcm0gIT0gTlVMTCk7CiAJQXNzZXJ0KE9pZElzVmFsaWQocmVsaWQpKTsKIAotCW1l bXNldChzY29yZXMsIDAsIHNpemVvZihBdXRvVmFjdXVtU2NvcmVzKSk7CisJbWVtc2V0KHByaW9y aXR5LCAwLCBzaXplb2YoQXV0b1ZhY3V1bVByaW9yaXR5KSk7CiAJKmRvdmFjdXVtID0gZmFsc2U7 CiAJKmRvYW5hbHl6ZSA9IGZhbHNlOwogCkBAIC0zMTk2LDc0ICszMjA3LDY0IEBAIHJlbGF0aW9u X25lZWRzX3ZhY2FuYWx5emUoT2lkIHJlbGlkLAogCX0KIAkqd3JhcGFyb3VuZCA9IGZvcmNlX3Zh Y3V1bTsKIAotCS8qIFVwZGF0ZSB0aGUgc2NvcmUuICovCi0JaWYgKGZvcmNlX3ZhY3V1bSkKLQl7 Ci0JCXVpbnQzMgkJeGlkX2FnZTsKLQkJdWludDMyCQlteGlkX2FnZTsKLQkJaW50CQkJZWZmZWN0 aXZlX3hpZF9mYWlsc2FmZV9hZ2U7Ci0JCWludAkJCWVmZmVjdGl2ZV9teGlkX2ZhaWxzYWZlX2Fn ZTsKKwkvKgorCSAqIFRvIGNhbGN1bGF0ZSB0aGUgKE0pWElEIGFnZSBwb3J0aW9uIG9mIHRoZSBz Y29yZSwgZGl2aWRlIHRoZSBhZ2UgYnkgaXRzCisJICogcmVzcGVjdGl2ZSAqX2ZyZWV6ZV9tYXhf YWdlIHBhcmFtZXRlci4KKwkgKi8KKwl4aWRfYWdlID0gVHJhbnNhY3Rpb25JZElzTm9ybWFsKHJl bGZyb3plbnhpZCkgPyByZWNlbnRYaWQgLSByZWxmcm96ZW54aWQgOiAwOworCW14aWRfYWdlID0g TXVsdGlYYWN0SWRJc1ZhbGlkKHJlbG1pbm14aWQpID8gcmVjZW50TXVsdGkgLSByZWxtaW5teGlk IDogMDsKIAotCQkvKgotCQkgKiBUbyBjYWxjdWxhdGUgdGhlIChNKVhJRCBhZ2UgcG9ydGlvbiBv ZiB0aGUgc2NvcmUsIGRpdmlkZSB0aGUgYWdlIGJ5Ci0JCSAqIGl0cyByZXNwZWN0aXZlICpfZnJl ZXplX21heF9hZ2UgcGFyYW1ldGVyLgotCQkgKi8KLQkJeGlkX2FnZSA9IFRyYW5zYWN0aW9uSWRJ c05vcm1hbChyZWxmcm96ZW54aWQpID8gcmVjZW50WGlkIC0gcmVsZnJvemVueGlkIDogMDsKLQkJ bXhpZF9hZ2UgPSBNdWx0aVhhY3RJZElzVmFsaWQocmVsbWlubXhpZCkgPyByZWNlbnRNdWx0aSAt IHJlbG1pbm14aWQgOiAwOworCXByaW9yaXR5LT54aWQgPSAoZG91YmxlKSB4aWRfYWdlIC8gZnJl ZXplX21heF9hZ2U7CisJcHJpb3JpdHktPm14aWQgPSAoZG91YmxlKSBteGlkX2FnZSAvIG11bHRp eGFjdF9mcmVlemVfbWF4X2FnZTsKIAotCQlzY29yZXMtPnhpZCA9IChkb3VibGUpIHhpZF9hZ2Ug LyBmcmVlemVfbWF4X2FnZTsKLQkJc2NvcmVzLT5teGlkID0gKGRvdWJsZSkgbXhpZF9hZ2UgLyBt dWx0aXhhY3RfZnJlZXplX21heF9hZ2U7CisJLyoKKwkgKiBUbyBlbnN1cmUgdGFibGVzIGFyZSBn aXZlbiBpbmNyZWFzZWQgcHJpb3JpdHkgb25jZSB0aGV5IGJlZ2luCisJICogYXBwcm9hY2hpbmcg d3JhcGFyb3VuZCwgd2Ugc2NhbGUgdGhlIHNjb3JlIGFnZ3Jlc3NpdmVseSBpZiB0aGUgYWdlcwor CSAqIHN1cnBhc3MgdmFjdXVtX2ZhaWxzYWZlX2FnZSBvciB2YWN1dW1fbXVsdGl4YWN0X2ZhaWxz YWZlX2FnZS4KKwkgKgorCSAqIEFzIGluIHZhY3V1bV94aWRfZmFpbHNhZmVfY2hlY2soKSwgdGhl IGVmZmVjdGl2ZSBmYWlsc2FmZSBhZ2UgaXMgbm8KKwkgKiBsZXNzIHRoYW4gMTA1JSB0aGUgdmFs dWUgb2YgdGhlIHJlc3BlY3RpdmUgKl9mcmVlemVfbWF4X2FnZSBwYXJhbWV0ZXIuCisJICogTm90 ZSB0aGF0IHBlci10YWJsZSBzZXR0aW5ncyBjb3VsZCByZXN1bHQgaW4gYSBsb3cgc2NvcmUgZXZl biBpZiB0aGUKKwkgKiB0YWJsZSBzdXJwYXNzZXMgdGhlIGZhaWxzYWZlIHNldHRpbmdzLiAgSG93 ZXZlciwgdGhpcyBpcyBhIHN0cmFuZ2UKKwkgKiBlbm91Z2ggY29ybmVyIGNhc2UgdGhhdCB3ZSBk b24ndCBib3RoZXIgdHJ5aW5nIHRvIGhhbmRsZSBpdC4KKwkgKgorCSAqIFdlIGZ1cnRoZXIgYWRq dXN0IHRoZSBlZmZlY3RpdmUgZmFpbHNhZmUgYWdlcyB3aXRoIHRoZSB3ZWlnaHQKKwkgKiBwYXJh bWV0ZXJzIHNvIHRoYXQgaW5jcmVhc2luZyB0aGVtIGxvd2VycyB0aGUgYWdlcyBhdCB3aGljaCB3 ZSBiZWdpbgorCSAqIHNjYWxpbmcgYWdncmVzc2l2ZWx5LgorCSAqLworCWVmZmVjdGl2ZV94aWRf ZmFpbHNhZmVfYWdlID0gTWF4KHZhY3V1bV9mYWlsc2FmZV9hZ2UsCisJCQkJCQkJCQkgYXV0b3Zh Y3V1bV9mcmVlemVfbWF4X2FnZSAqIDEuMDUpOworCWVmZmVjdGl2ZV9teGlkX2ZhaWxzYWZlX2Fn ZSA9IE1heCh2YWN1dW1fbXVsdGl4YWN0X2ZhaWxzYWZlX2FnZSwKKwkJCQkJCQkJCSAgYXV0b3Zh Y3V1bV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UgKiAxLjA1KTsKIAotCQkvKgotCQkgKiBUbyBl bnN1cmUgdGFibGVzIGFyZSBnaXZlbiBpbmNyZWFzZWQgcHJpb3JpdHkgb25jZSB0aGV5IGJlZ2lu Ci0JCSAqIGFwcHJvYWNoaW5nIHdyYXBhcm91bmQsIHdlIHNjYWxlIHRoZSBzY29yZSBhZ2dyZXNz aXZlbHkgaWYgdGhlIGFnZXMKLQkJICogc3VycGFzcyB2YWN1dW1fZmFpbHNhZmVfYWdlIG9yIHZh Y3V1bV9tdWx0aXhhY3RfZmFpbHNhZmVfYWdlLgotCQkgKgotCQkgKiBBcyBpbiB2YWN1dW1feGlk X2ZhaWxzYWZlX2NoZWNrKCksIHRoZSBlZmZlY3RpdmUgZmFpbHNhZmUgYWdlIGlzIG5vCi0JCSAq IGxlc3MgdGhhbiAxMDUlIHRoZSB2YWx1ZSBvZiB0aGUgcmVzcGVjdGl2ZSAqX2ZyZWV6ZV9tYXhf YWdlCi0JCSAqIHBhcmFtZXRlci4gIE5vdGUgdGhhdCBwZXItdGFibGUgc2V0dGluZ3MgY291bGQg cmVzdWx0IGluIGEgbG93Ci0JCSAqIHNjb3JlIGV2ZW4gaWYgdGhlIHRhYmxlIHN1cnBhc3NlcyB0 aGUgZmFpbHNhZmUgc2V0dGluZ3MuICBIb3dldmVyLAotCQkgKiB0aGlzIGlzIGEgc3RyYW5nZSBl bm91Z2ggY29ybmVyIGNhc2UgdGhhdCB3ZSBkb24ndCBib3RoZXIgdHJ5aW5nIHRvCi0JCSAqIGhh bmRsZSBpdC4KLQkJICoKLQkJICogV2UgZnVydGhlciBhZGp1c3QgdGhlIGVmZmVjdGl2ZSBmYWls c2FmZSBhZ2VzIHdpdGggdGhlIHdlaWdodAotCQkgKiBwYXJhbWV0ZXJzIHNvIHRoYXQgaW5jcmVh c2luZyB0aGVtIGxvd2VycyB0aGUgYWdlcyBhdCB3aGljaCB3ZQotCQkgKiBiZWdpbiBzY2FsaW5n IGFnZ3Jlc3NpdmVseS4KLQkJICovCi0JCWVmZmVjdGl2ZV94aWRfZmFpbHNhZmVfYWdlID0gTWF4 KHZhY3V1bV9mYWlsc2FmZV9hZ2UsCi0JCQkJCQkJCQkJIGF1dG92YWN1dW1fZnJlZXplX21heF9h Z2UgKiAxLjA1KTsKLQkJZWZmZWN0aXZlX214aWRfZmFpbHNhZmVfYWdlID0gTWF4KHZhY3V1bV9t dWx0aXhhY3RfZmFpbHNhZmVfYWdlLAotCQkJCQkJCQkJCSAgYXV0b3ZhY3V1bV9tdWx0aXhhY3Rf ZnJlZXplX21heF9hZ2UgKiAxLjA1KTsKKwlpZiAoYXV0b3ZhY3V1bV9mcmVlemVfc2NvcmVfd2Vp Z2h0ID4gMS4wKQorCQllZmZlY3RpdmVfeGlkX2ZhaWxzYWZlX2FnZSAvPSBhdXRvdmFjdXVtX2Zy ZWV6ZV9zY29yZV93ZWlnaHQ7CisJaWYgKGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9zY29y ZV93ZWlnaHQgPiAxLjApCisJCWVmZmVjdGl2ZV9teGlkX2ZhaWxzYWZlX2FnZSAvPSBhdXRvdmFj dXVtX211bHRpeGFjdF9mcmVlemVfc2NvcmVfd2VpZ2h0OwogCi0JCWlmIChhdXRvdmFjdXVtX2Zy ZWV6ZV9zY29yZV93ZWlnaHQgPiAxLjApCi0JCQllZmZlY3RpdmVfeGlkX2ZhaWxzYWZlX2FnZSAv PSBhdXRvdmFjdXVtX2ZyZWV6ZV9zY29yZV93ZWlnaHQ7Ci0JCWlmIChhdXRvdmFjdXVtX211bHRp eGFjdF9mcmVlemVfc2NvcmVfd2VpZ2h0ID4gMS4wKQotCQkJZWZmZWN0aXZlX214aWRfZmFpbHNh ZmVfYWdlIC89IGF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9zY29yZV93ZWlnaHQ7CisJaWYg KHhpZF9hZ2UgPj0gZWZmZWN0aXZlX3hpZF9mYWlsc2FmZV9hZ2UpCisJCXByaW9yaXR5LT54aWQg PSBwb3cocHJpb3JpdHktPnhpZCwgTWF4KDEuMCwgKGRvdWJsZSkgeGlkX2FnZSAvIDEwMDAwMDAw MCkpOworCWlmIChteGlkX2FnZSA+PSBlZmZlY3RpdmVfbXhpZF9mYWlsc2FmZV9hZ2UpCisJCXBy aW9yaXR5LT5teGlkID0gcG93KHByaW9yaXR5LT5teGlkLCBNYXgoMS4wLCAoZG91YmxlKSBteGlk X2FnZSAvIDEwMDAwMDAwMCkpOwogCi0JCWlmICh4aWRfYWdlID49IGVmZmVjdGl2ZV94aWRfZmFp bHNhZmVfYWdlKQotCQkJc2NvcmVzLT54aWQgPSBwb3coc2NvcmVzLT54aWQsIE1heCgxLjAsIChk b3VibGUpIHhpZF9hZ2UgLyAxMDAwMDAwMDApKTsKLQkJaWYgKG14aWRfYWdlID49IGVmZmVjdGl2 ZV9teGlkX2ZhaWxzYWZlX2FnZSkKLQkJCXNjb3Jlcy0+bXhpZCA9IHBvdyhzY29yZXMtPm14aWQs IE1heCgxLjAsIChkb3VibGUpIG14aWRfYWdlIC8gMTAwMDAwMDAwKSk7CisJcHJpb3JpdHktPnhp ZCAqPSBhdXRvdmFjdXVtX2ZyZWV6ZV9zY29yZV93ZWlnaHQ7CisJcHJpb3JpdHktPm14aWQgKj0g YXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX3Njb3JlX3dlaWdodDsKIAotCQlzY29yZXMtPnhp ZCAqPSBhdXRvdmFjdXVtX2ZyZWV6ZV9zY29yZV93ZWlnaHQ7Ci0JCXNjb3Jlcy0+bXhpZCAqPSBh dXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfc2NvcmVfd2VpZ2h0OworCXByaW9yaXR5LT5tYXgg PSBNYXgocHJpb3JpdHktPnhpZCwgcHJpb3JpdHktPm14aWQpOwogCi0JCXNjb3Jlcy0+bWF4ID0g TWF4KHNjb3Jlcy0+eGlkLCBzY29yZXMtPm14aWQpOworCWlmIChmb3JjZV92YWN1dW0pCisJewog CQkqZG92YWN1dW0gPSB0cnVlOworCQlwcmlvcml0eS0+aXNfd3JhcGFyb3VuZCA9IHByaW9yaXR5 LT5uZWVkc192YWN1dW0gPSB0cnVlOwogCX0KIAotCS8qIFVzZXIgZGlzYWJsZWQgaXQgaW4gcGdf Y2xhc3MucmVsb3B0aW9ucz8gIChCdXQgaWdub3JlIGlmIGF0IHJpc2spICovCi0JaWYgKCFhdl9l bmFibGVkICYmICFmb3JjZV92YWN1dW0pCi0JCXJldHVybjsKLQogCS8qCi0JICogSWYgd2UgZm91 bmQgc3RhdHMgZm9yIHRoZSB0YWJsZSwgYW5kIGF1dG92YWN1dW0gaXMgY3VycmVudGx5IGVuYWJs ZWQsCi0JICogbWFrZSBhIHRocmVzaG9sZC1iYXNlZCBkZWNpc2lvbiB3aGV0aGVyIHRvIHZhY3V1 bSBhbmQvb3IgYW5hbHl6ZS4gIElmCi0JICogYXV0b3ZhY3V1bSBpcyBjdXJyZW50bHkgZGlzYWJs ZWQsIHdlIG11c3QgYmUgaGVyZSBmb3IgYW50aS13cmFwYXJvdW5kCi0JICogdmFjdXVtaW5nIG9u bHksIHNvIGRvbid0IHZhY3V1bSAob3IgYW5hbHl6ZSkgYW55dGhpbmcgdGhhdCdzIG5vdCBiZWlu ZwotCSAqIGZvcmNlZC4KKwkgKiBJZiB3ZSBmb3VuZCBzdGF0cyBmb3IgdGhlIHRhYmxlLCBtYWtl IGEgdGhyZXNob2xkLWJhc2VkIGRlY2lzaW9uCisJICogd2hldGhlciB0byB2YWN1dW0gYW5kL29y IGFuYWx5emUsIGFuZCBjb21wdXRlIHRoZSBjb3JyZXNwb25kaW5nCisJICogcHJpb3JpdHkuIGRv dmFjdXVtL2RvYW5hbHl6ZSBhcmUgb25seSBzZXQgd2hlbiBhdXRvdmFjdXVtIGlzIGFjdGl2ZSBh bmQKKwkgKiBlbmFibGVkIGZvciB0aGlzIHRhYmxlLgogCSAqLwotCWlmICh0YWJlbnRyeSAmJiBB dXRvVmFjdXVtaW5nQWN0aXZlKCkpCisJaWYgKHRhYmVudHJ5KQogCXsKIAkJZmxvYXQ0CQlwY250 X3VuZnJvemVuID0gMTsKIAkJZmxvYXQ0CQlyZWx0dXBsZXMgPSBjbGFzc0Zvcm0tPnJlbHR1cGxl czsKQEAgLTMzMDQsNTIgKzMzMDUsNTkgQEAgcmVsYXRpb25fbmVlZHNfdmFjYW5hbHl6ZShPaWQg cmVsaWQsCiAJCWFubHRocmVzaCA9IChmbG9hdDQpIGFubF9iYXNlX3RocmVzaCArIGFubF9zY2Fs ZV9mYWN0b3IgKiByZWx0dXBsZXM7CiAKIAkJLyoKLQkJICogRGV0ZXJtaW5lIGlmIHRoaXMgdGFi bGUgbmVlZHMgdmFjdXVtLCBhbmQgdXBkYXRlIHRoZSBzY29yZSBpZiBpdAotCQkgKiBkb2VzLgor CQkgKiBEZXRlcm1pbmUgaWYgdGhpcyB0YWJsZSBuZWVkcyB2YWN1dW0sIGFuZCBpZiBpdCBkb2Vz LCB1cGRhdGUgdGhlCisJCSAqIHNjb3JlIGFuZCBtYXJrIHRoZSB0YWJsZSBhcyBuZWVkaW5nIHZh Y3V1bS4KIAkJICovCiAJCWlmICh2YWN0dXBsZXMgPiB2YWN0aHJlc2gpCiAJCXsKLQkJCXNjb3Jl cy0+dmFjID0gKGRvdWJsZSkgdmFjdHVwbGVzIC8gTWF4KHZhY3RocmVzaCwgMSk7Ci0JCQlzY29y ZXMtPnZhYyAqPSBhdXRvdmFjdXVtX3ZhY3V1bV9zY29yZV93ZWlnaHQ7Ci0JCQlzY29yZXMtPm1h eCA9IE1heChzY29yZXMtPm1heCwgc2NvcmVzLT52YWMpOwotCQkJKmRvdmFjdXVtID0gdHJ1ZTsK KwkJCXByaW9yaXR5LT52YWMgPSAoZG91YmxlKSB2YWN0dXBsZXMgLyBNYXgodmFjdGhyZXNoLCAx KTsKKwkJCXByaW9yaXR5LT52YWMgKj0gYXV0b3ZhY3V1bV92YWN1dW1fc2NvcmVfd2VpZ2h0Owor CQkJcHJpb3JpdHktPm1heCA9IE1heChwcmlvcml0eS0+bWF4LCBwcmlvcml0eS0+dmFjKTsKKwkJ CXByaW9yaXR5LT5uZWVkc192YWN1dW0gPSB0cnVlOworCQkJaWYgKGF2X2VuYWJsZWQgJiYgQXV0 b1ZhY3V1bWluZ0FjdGl2ZSgpKQorCQkJCSpkb3ZhY3V1bSA9IHRydWU7CiAJCX0KIAogCQlpZiAo dmFjX2luc19iYXNlX3RocmVzaCA+PSAwICYmIGluc3R1cGxlcyA+IHZhY2luc3RocmVzaCkKIAkJ ewotCQkJc2NvcmVzLT52YWNfaW5zID0gKGRvdWJsZSkgaW5zdHVwbGVzIC8gTWF4KHZhY2luc3Ro cmVzaCwgMSk7Ci0JCQlzY29yZXMtPnZhY19pbnMgKj0gYXV0b3ZhY3V1bV92YWN1dW1faW5zZXJ0 X3Njb3JlX3dlaWdodDsKLQkJCXNjb3Jlcy0+bWF4ID0gTWF4KHNjb3Jlcy0+bWF4LCBzY29yZXMt PnZhY19pbnMpOwotCQkJKmRvdmFjdXVtID0gdHJ1ZTsKKwkJCXByaW9yaXR5LT52YWNfaW5zID0g KGRvdWJsZSkgaW5zdHVwbGVzIC8gTWF4KHZhY2luc3RocmVzaCwgMSk7CisJCQlwcmlvcml0eS0+ dmFjX2lucyAqPSBhdXRvdmFjdXVtX3ZhY3V1bV9pbnNlcnRfc2NvcmVfd2VpZ2h0OworCQkJcHJp b3JpdHktPm1heCA9IE1heChwcmlvcml0eS0+bWF4LCBwcmlvcml0eS0+dmFjX2lucyk7CisJCQlw cmlvcml0eS0+bmVlZHNfdmFjdXVtID0gdHJ1ZTsKKwkJCWlmIChhdl9lbmFibGVkICYmIEF1dG9W YWN1dW1pbmdBY3RpdmUoKSkKKwkJCQkqZG92YWN1dW0gPSB0cnVlOwogCQl9CiAKIAkJLyoKLQkJ ICogRGV0ZXJtaW5lIGlmIHRoaXMgdGFibGUgbmVlZHMgYW5hbHl6ZSwgYW5kIHVwZGF0ZSB0aGUg c2NvcmUgaWYgaXQKLQkJICogZG9lcy4gIE5vdGUgdGhhdCB3ZSBkb24ndCBhbmFseXplIFRPQVNU IHRhYmxlcyBhbmQgcGdfc3RhdGlzdGljLgorCQkgKiBEZXRlcm1pbmUgaWYgdGhpcyB0YWJsZSBu ZWVkcyBhbmFseXplLCBhbmQgaWYgaXQgZG9lcywgdXBkYXRlIHRoZQorCQkgKiBzY29yZSBhbmQg bWFyayB0aGUgdGFibGUgYXMgbmVlZGluZyBhbmFseXplLiBOb3RlIHRoYXQgd2UgZG9uJ3QKKwkJ ICogYW5hbHl6ZSBUT0FTVCB0YWJsZXMgYW5kIHBnX3N0YXRpc3RpYy4KIAkJICovCiAJCWlmIChh bmx0dXBsZXMgPiBhbmx0aHJlc2ggJiYKIAkJCXJlbGlkICE9IFN0YXRpc3RpY1JlbGF0aW9uSWQg JiYKIAkJCWNsYXNzRm9ybS0+cmVsa2luZCAhPSBSRUxLSU5EX1RPQVNUVkFMVUUpCiAJCXsKLQkJ CXNjb3Jlcy0+YW5sID0gKGRvdWJsZSkgYW5sdHVwbGVzIC8gTWF4KGFubHRocmVzaCwgMSk7Ci0J CQlzY29yZXMtPmFubCAqPSBhdXRvdmFjdXVtX2FuYWx5emVfc2NvcmVfd2VpZ2h0OwotCQkJc2Nv cmVzLT5tYXggPSBNYXgoc2NvcmVzLT5tYXgsIHNjb3Jlcy0+YW5sKTsKLQkJCSpkb2FuYWx5emUg PSB0cnVlOworCQkJcHJpb3JpdHktPmFubCA9IChkb3VibGUpIGFubHR1cGxlcyAvIE1heChhbmx0 aHJlc2gsIDEpOworCQkJcHJpb3JpdHktPmFubCAqPSBhdXRvdmFjdXVtX2FuYWx5emVfc2NvcmVf d2VpZ2h0OworCQkJcHJpb3JpdHktPm1heCA9IE1heChwcmlvcml0eS0+bWF4LCBwcmlvcml0eS0+ YW5sKTsKKwkJCXByaW9yaXR5LT5uZWVkc19hbmFseXplID0gdHJ1ZTsKKwkJCWlmIChhdl9lbmFi bGVkICYmIEF1dG9WYWN1dW1pbmdBY3RpdmUoKSkKKwkJCQkqZG9hbmFseXplID0gdHJ1ZTsKIAkJ fQogCiAJCWlmICh2YWNfaW5zX2Jhc2VfdGhyZXNoID49IDApCiAJCQllbG9nKERFQlVHMywgIiVz OiB2YWM6ICUuMGYgKHRocmVzaCAlLjBmLCBzY29yZSAlLjJmKSwgaW5zOiAlLjBmICh0aHJlc2gg JS4wZiwgc2NvcmUgJS4yZiksIGFubDogJS4wZiAodGhyZXNoICUuMGYsIHNjb3JlICUuMmYpLCB4 aWQgc2NvcmU6ICUuMmYsIG14aWQgc2NvcmU6ICUuMmYiLAogCQkJCSBOYW1lU3RyKGNsYXNzRm9y bS0+cmVsbmFtZSksCi0JCQkJIHZhY3R1cGxlcywgdmFjdGhyZXNoLCBzY29yZXMtPnZhYywKLQkJ CQkgaW5zdHVwbGVzLCB2YWNpbnN0aHJlc2gsIHNjb3Jlcy0+dmFjX2lucywKLQkJCQkgYW5sdHVw bGVzLCBhbmx0aHJlc2gsIHNjb3Jlcy0+YW5sLAotCQkJCSBzY29yZXMtPnhpZCwgc2NvcmVzLT5t eGlkKTsKKwkJCQkgdmFjdHVwbGVzLCB2YWN0aHJlc2gsIHByaW9yaXR5LT52YWMsCisJCQkJIGlu c3R1cGxlcywgdmFjaW5zdGhyZXNoLCBwcmlvcml0eS0+dmFjX2lucywKKwkJCQkgYW5sdHVwbGVz LCBhbmx0aHJlc2gsIHByaW9yaXR5LT5hbmwsCisJCQkJIHByaW9yaXR5LT54aWQsIHByaW9yaXR5 LT5teGlkKTsKIAkJZWxzZQogCQkJZWxvZyhERUJVRzMsICIlczogdmFjOiAlLjBmICh0aHJlc2gg JS4wZiwgc2NvcmUgJS4yZiksIGluczogKGRpc2FibGVkKSwgYW5sOiAlLjBmICh0aHJlc2ggJS4w Ziwgc2NvcmUgJS4yZiksIHhpZCBzY29yZTogJS4yZiwgbXhpZCBzY29yZTogJS4yZiIsCiAJCQkJ IE5hbWVTdHIoY2xhc3NGb3JtLT5yZWxuYW1lKSwKLQkJCQkgdmFjdHVwbGVzLCB2YWN0aHJlc2gs IHNjb3Jlcy0+dmFjLAotCQkJCSBhbmx0dXBsZXMsIGFubHRocmVzaCwgc2NvcmVzLT5hbmwsCi0J CQkJIHNjb3Jlcy0+eGlkLCBzY29yZXMtPm14aWQpOworCQkJCSB2YWN0dXBsZXMsIHZhY3RocmVz aCwgcHJpb3JpdHktPnZhYywKKwkJCQkgYW5sdHVwbGVzLCBhbmx0aHJlc2gsIHByaW9yaXR5LT5h bmwsCisJCQkJIHByaW9yaXR5LT54aWQsIHByaW9yaXR5LT5teGlkKTsKIAl9CiB9CiAKZGlmZiAt LWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOGU5YzA2NTQ3ZDYuLmRlODc0YzYyY2QzIDEwMDY0NAot LS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTg3LDcgKzE4Nyw3IEBAIEF1dGhUb2tlbgogQXV0b1By ZXdhcm1SZWFkU3RyZWFtRGF0YQogQXV0b1ByZXdhcm1TaGFyZWRTdGF0ZQogQXV0b1ZhY09wdHMK LUF1dG9WYWN1dW1TY29yZXMKK0F1dG9WYWN1dW1Qcmlvcml0eQogQXV0b1ZhY3V1bVNobWVtU3Ry dWN0CiBBdXRvVmFjdXVtV29ya0l0ZW0KIEF1dG9WYWN1dW1Xb3JrSXRlbVR5cGUKLS0gCjIuNDcu MwoK --00000000000037585a064e5d172b Content-Type: application/octet-stream; name="v4-0002-Add-elevel-parameter-to-relation_needs_vacanalyze.patch" Content-Disposition: attachment; filename="v4-0002-Add-elevel-parameter-to-relation_needs_vacanalyze.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnffyq782 RnJvbSAyZTQ5NzAwY2MyY2UyNDM5OWE1ZjI2MGM3OGJhOTA3YzUxOWRmZmU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAzMSBNYXIgMjAyNiAxODozMzoxOCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjQgMi80 XSBBZGQgZWxldmVsIHBhcmFtZXRlciB0byByZWxhdGlvbl9uZWVkc192YWNhbmFseXplCgpBbGxv dyBjYWxsZXJzIHRvIGNvbnRyb2wgdGhlIGxvZyBsZXZlbCBmb3IgZGVidWcgb3V0cHV0CmJ5IHBh c3NpbmcgYW4gZWxldmVsIHBhcmFtZXRlci4gUGFzc2luZyAwIHN1cHByZXNzZXMKbG9nZ2luZy4g VGhpcyBwcmVwYXJlcyB0aGUgZnVuY3Rpb24gZm9yIHVzZSBieSBhIGZ1dHVyZQp2aWV3IHRoYXQg c2hvdWxkIG5vdCBlbWl0IGRlYnVnIG1lc3NhZ2VzIHdoZW4gcXVlcmllZC4KCkRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FBNVJaMHM0eGpNckItVkFuTGNjQzdrWThkMC00ODA2LUxz YWMtY3pKc2RBMUxYdEF3JTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9wb3N0bWFz dGVyL2F1dG92YWN1dW0uYyB8IDIyICsrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxMyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9h dXRvdmFjdXVtLmMKaW5kZXggMmNhMTVhZWU0ZWIuLjcyYWQzMGY2YWU3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9wb3N0 bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAtMzgzLDcgKzM4Myw4IEBAIHN0YXRpYyB2b2lkIHJlbGF0 aW9uX25lZWRzX3ZhY2FuYWx5emUoT2lkIHJlbGlkLCBBdXRvVmFjT3B0cyAqcmVsb3B0cywKIAkJ CQkJCQkJCSAgUGdTdGF0X1N0YXRUYWJFbnRyeSAqdGFiZW50cnksCiAJCQkJCQkJCQkgIGludCBl ZmZlY3RpdmVfbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlLAogCQkJCQkJCQkJICBib29sICpkb3Zh Y3V1bSwgYm9vbCAqZG9hbmFseXplLCBib29sICp3cmFwYXJvdW5kLAotCQkJCQkJCQkJICBBdXRv VmFjdXVtUHJpb3JpdHkgKnByaW9yaXR5KTsKKwkJCQkJCQkJCSAgQXV0b1ZhY3V1bVByaW9yaXR5 ICpwcmlvcml0eSwKKwkJCQkJCQkJCSAgaW50IGVsZXZlbCk7CiAKIHN0YXRpYyB2b2lkIGF1dG92 YWN1dW1fZG9fdmFjX2FuYWx5emUoYXV0b3ZhY190YWJsZSAqdGFiLAogCQkJCQkJCQkJICBCdWZm ZXJBY2Nlc3NTdHJhdGVneSBic3RyYXRlZ3kpOwpAQCAtMjA4MCw3ICsyMDgxLDcgQEAgZG9fYXV0 b3ZhY3V1bSh2b2lkKQogCQlyZWxhdGlvbl9uZWVkc192YWNhbmFseXplKHJlbGlkLCByZWxvcHRz LCBjbGFzc0Zvcm0sIHRhYmVudHJ5LAogCQkJCQkJCQkgIGVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJl ZXplX21heF9hZ2UsCiAJCQkJCQkJCSAgJmRvdmFjdXVtLCAmZG9hbmFseXplLCAmd3JhcGFyb3Vu ZCwKLQkJCQkJCQkJICAmcHJpb3JpdHkpOworCQkJCQkJCQkgICZwcmlvcml0eSwgREVCVUczKTsK IAogCQkvKiBSZWxhdGlvbnMgdGhhdCBuZWVkIHdvcmsgYXJlIGFkZGVkIHRvIHRhYmxlc190b19w cm9jZXNzICovCiAJCWlmIChkb3ZhY3V1bSB8fCBkb2FuYWx5emUpCkBAIC0yMTgwLDcgKzIxODEs NyBAQCBkb19hdXRvdmFjdXVtKHZvaWQpCiAJCXJlbGF0aW9uX25lZWRzX3ZhY2FuYWx5emUocmVs aWQsIHJlbG9wdHMsIGNsYXNzRm9ybSwgdGFiZW50cnksCiAJCQkJCQkJCSAgZWZmZWN0aXZlX211 bHRpeGFjdF9mcmVlemVfbWF4X2FnZSwKIAkJCQkJCQkJICAmZG92YWN1dW0sICZkb2FuYWx5emUs ICZ3cmFwYXJvdW5kLAotCQkJCQkJCQkgICZwcmlvcml0eSk7CisJCQkJCQkJCSAgJnByaW9yaXR5 LCBERUJVRzMpOwogCiAJCS8qIGlnbm9yZSBhbmFseXplIGZvciB0b2FzdCB0YWJsZXMgKi8KIAkJ aWYgKGRvdmFjdXVtKQpAQCAtMjk5OCw3ICsyOTk5LDcgQEAgcmVjaGVja19yZWxhdGlvbl9uZWVk c192YWNhbmFseXplKE9pZCByZWxpZCwKIAlyZWxhdGlvbl9uZWVkc192YWNhbmFseXplKHJlbGlk LCBhdm9wdHMsIGNsYXNzRm9ybSwgdGFiZW50cnksCiAJCQkJCQkJICBlZmZlY3RpdmVfbXVsdGl4 YWN0X2ZyZWV6ZV9tYXhfYWdlLAogCQkJCQkJCSAgZG92YWN1dW0sIGRvYW5hbHl6ZSwgd3JhcGFy b3VuZCwKLQkJCQkJCQkgICZwcmlvcml0eSk7CisJCQkJCQkJICAmcHJpb3JpdHksIERFQlVHMyk7 CiAKIAkvKiBSZWxlYXNlIHRhYmVudHJ5IHRvIGF2b2lkIGxlYWthZ2UgKi8KIAlpZiAodGFiZW50 cnkpCkBAIC0zMDg3LDYgKzMwODgsOCBAQCByZWNoZWNrX3JlbGF0aW9uX25lZWRzX3ZhY2FuYWx5 emUoT2lkIHJlbGlkLAogICoKICAqIFByaW9yaXR5IHNjb3JlcyBhcmUgYWx3YXlzIGNvbXB1dGVk LiAgZG92YWN1dW0gYW5kIGRvYW5hbHl6ZSBhcmUgb25seSBzZXQgd2hlbgogICogYXV0b3ZhY3V1 bSBpcyBhY3RpdmUgYW5kIGVuYWJsZWQgZm9yIHRoZSByZWxhdGlvbi4KKyAqCisgKiBlbGV2ZWwg Y29udHJvbHMgdGhlIGxvZyBsZXZlbCBmb3IgZGVidWcgb3V0cHV0LiAgUGFzcyAwIHRvIHN1cHBy ZXNzIGxvZ2dpbmcuCiAgKi8KIHN0YXRpYyB2b2lkCiByZWxhdGlvbl9uZWVkc192YWNhbmFseXpl KE9pZCByZWxpZCwKQEAgLTMwOTgsNyArMzEwMSw4IEBAIHJlbGF0aW9uX25lZWRzX3ZhY2FuYWx5 emUoT2lkIHJlbGlkLAogCQkJCQkJICBib29sICpkb3ZhY3V1bSwKIAkJCQkJCSAgYm9vbCAqZG9h bmFseXplLAogCQkJCQkJICBib29sICp3cmFwYXJvdW5kLAotCQkJCQkJICBBdXRvVmFjdXVtUHJp b3JpdHkgKnByaW9yaXR5KQorCQkJCQkJICBBdXRvVmFjdXVtUHJpb3JpdHkgKnByaW9yaXR5LAor CQkJCQkJICBpbnQgZWxldmVsKQogewogCWJvb2wJCWZvcmNlX3ZhY3V1bTsKIAlib29sCQlhdl9l bmFibGVkOwpAQCAtMzM0NSwxNSArMzM0OSwxNSBAQCByZWxhdGlvbl9uZWVkc192YWNhbmFseXpl KE9pZCByZWxpZCwKIAkJCQkqZG9hbmFseXplID0gdHJ1ZTsKIAkJfQogCi0JCWlmICh2YWNfaW5z X2Jhc2VfdGhyZXNoID49IDApCi0JCQllbG9nKERFQlVHMywgIiVzOiB2YWM6ICUuMGYgKHRocmVz aCAlLjBmLCBzY29yZSAlLjJmKSwgaW5zOiAlLjBmICh0aHJlc2ggJS4wZiwgc2NvcmUgJS4yZiks IGFubDogJS4wZiAodGhyZXNoICUuMGYsIHNjb3JlICUuMmYpLCB4aWQgc2NvcmU6ICUuMmYsIG14 aWQgc2NvcmU6ICUuMmYiLAorCQlpZiAoZWxldmVsID4gMCAmJiB2YWNfaW5zX2Jhc2VfdGhyZXNo ID49IDApCisJCQllbG9nKGVsZXZlbCwgIiVzOiB2YWM6ICUuMGYgKHRocmVzaCAlLjBmLCBzY29y ZSAlLjJmKSwgaW5zOiAlLjBmICh0aHJlc2ggJS4wZiwgc2NvcmUgJS4yZiksIGFubDogJS4wZiAo dGhyZXNoICUuMGYsIHNjb3JlICUuMmYpLCB4aWQgc2NvcmU6ICUuMmYsIG14aWQgc2NvcmU6ICUu MmYiLAogCQkJCSBOYW1lU3RyKGNsYXNzRm9ybS0+cmVsbmFtZSksCiAJCQkJIHZhY3R1cGxlcywg dmFjdGhyZXNoLCBwcmlvcml0eS0+dmFjLAogCQkJCSBpbnN0dXBsZXMsIHZhY2luc3RocmVzaCwg cHJpb3JpdHktPnZhY19pbnMsCiAJCQkJIGFubHR1cGxlcywgYW5sdGhyZXNoLCBwcmlvcml0eS0+ YW5sLAogCQkJCSBwcmlvcml0eS0+eGlkLCBwcmlvcml0eS0+bXhpZCk7Ci0JCWVsc2UKLQkJCWVs b2coREVCVUczLCAiJXM6IHZhYzogJS4wZiAodGhyZXNoICUuMGYsIHNjb3JlICUuMmYpLCBpbnM6 IChkaXNhYmxlZCksIGFubDogJS4wZiAodGhyZXNoICUuMGYsIHNjb3JlICUuMmYpLCB4aWQgc2Nv cmU6ICUuMmYsIG14aWQgc2NvcmU6ICUuMmYiLAorCQllbHNlIGlmIChlbGV2ZWwgPiAwKQorCQkJ ZWxvZyhlbGV2ZWwsICIlczogdmFjOiAlLjBmICh0aHJlc2ggJS4wZiwgc2NvcmUgJS4yZiksIGlu czogKGRpc2FibGVkKSwgYW5sOiAlLjBmICh0aHJlc2ggJS4wZiwgc2NvcmUgJS4yZiksIHhpZCBz Y29yZTogJS4yZiwgbXhpZCBzY29yZTogJS4yZiIsCiAJCQkJIE5hbWVTdHIoY2xhc3NGb3JtLT5y ZWxuYW1lKSwKIAkJCQkgdmFjdHVwbGVzLCB2YWN0aHJlc2gsIHByaW9yaXR5LT52YWMsCiAJCQkJ IGFubHR1cGxlcywgYW5sdGhyZXNoLCBwcmlvcml0eS0+YW5sLAotLSAKMi40Ny4zCgo= --00000000000037585a064e5d172b Content-Type: application/octet-stream; name="v4-0004-Add-pg_stat_autovacuum_priority-view.patch" Content-Disposition: attachment; filename="v4-0004-Add-pg_stat_autovacuum_priority-view.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnffyq6t0 RnJvbSBmNTNkMDM3MDJmNDg4MmE5MTM1MTc2YTM5MzJhOTNkZDY2OGNmY2ExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNvbT4KRGF0 ZTogTW9uLCAyMyBNYXIgMjAyNiAxNzowMzo1OSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjQgNC80 XSBBZGQgcGdfc3RhdF9hdXRvdmFjdXVtX3ByaW9yaXR5IHZpZXcKCmQ3OTY1ZDY1ZiBpbnRyb2R1 Y2VkIGF1dG92YWN1dW0gcHJpb3JpdGl6YXRpb24gd2l0aApzY29yaW5nLiBUaGlzIGNoYW5nZSBh ZGRzIGEgdmlldyB0byBleHBvc2UgdGhvc2Ugc2NvcmVzLgoKVGhlIHZpZXcgc2hvd3MgYSByb3cg cGVyIHJlbGF0aW9uIGluZGljYXRpbmcgd2hldGhlciBpdApuZWVkcyB2YWN1dW0gb3IgYW5hbHl6 ZSwgdGhlIHNjb3JlIG9mIGVhY2ggY29tcG9uZW50CmFuZCB0aGUgTWF4IHNjb3JlIGFjcm9zcyBh bGwgY29tcG9uZW50cy4gVGhpcyBwcm92aWRlcwphIHdheSB0byBpbnRyb3NwZWN0IGF1dG92YWN1 dW0gcHJpb3JpdHkgYW5kIHByb3ZpZGUKZmVlZGJhY2sgb24gdHVuaW5nIG9mIHRoZSByZWxhdGVk IEdVQ3MuCgpUaGUgdW5kZXJseWluZyBmdW5jdGlvbiBwZ19zdGF0X2dldF9hdXRvdmFjdXVtX3By aW9yaXR5KCkKc2NhbnMgYWxsIHJlbGF0aW9ucyBpbiB0aGUgY3VycmVudCBkYXRhYmFzZSBhbmQg Y29tcHV0ZXMKc2NvcmVzIHVzaW5nIGNvbXB1dGVfYXV0b3ZhY19zY29yZSgpLiBCeSBkZWZhdWx0 LApvbmx5IHN1cGVydXNlcnMgYW5kIHJvbGVzIHdpdGggcHJpdmlsZWdlcyBvZgpwZ19yZWFkX2Fs bF9zdGF0cyBjYW4gZXhlY3V0ZSB0aGUgZnVuY3Rpb24sIGFzCmNvbnRyb2xsZWQgYnkgdGhlIGZ1 bmN0aW9uJ3MgQUNMIGluIHBnX3Byb2MuCgpUaGUgdmlldyBhbHNvIGVtaXRzIHRoZSByZWxpZCwg bmFtZXNwYWNlIGFuZCByZWxuYW1lLApzbyBpdCBjYW4gYmUgam9pbmVkIHdpdGggb3RoZXIgdmll d3MgbGlrZQpwZ19zdGF0X2FsbF90YWJsZXMgYW5kIHBnX3N0YXRfcHJvZ3Jlc3NfdmFjdXVtIGZv cgpjb21wbGVtZW50YXJ5IHZhY3V1bSBkZXRhaWxzLgoKVGVzdHMgYWRkZWQgdG8gdmFjdXVtLnNx bAoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUE1UlowczR4ak1yQi1WQW5MY2ND N2tZOGQwLTQ4MDYtTHNhYy1jekpzZEExTFh0QXclNDBtYWlsLmdtYWlsLmNvbQotLS0KIGRvYy9z cmMvc2dtbC9tYWludGVuYW5jZS5zZ21sICAgICAgICB8ICAgNiArCiBkb2Mvc3JjL3NnbWwvbW9u aXRvcmluZy5zZ21sICAgICAgICAgfCAxNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBz cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgfCAgMjEgKysrKwogc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgIHwgIDg2ICsrKysrKysrKysrKysrCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgfCAgMTAgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnVsZXMub3V0ICB8ICAxNSArKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dmFjdXVtLm91dCB8ICAzMiArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bS5zcWwg ICAgICB8ICAyMyArKysrCiA4IGZpbGVzIGNoYW5nZWQsIDM1OSBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbWFp bnRlbmFuY2Uuc2dtbAppbmRleCAwZDJhMjgyMDdlZC4uMjEyNTc3NGFmZjMgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tYWludGVu YW5jZS5zZ21sCkBAIC0xMTY0LDYgKzExNjQsMTIgQEAgYW5hbHl6ZSB0aHJlc2hvbGQgPSBhbmFs eXplIGJhc2UgdGhyZXNob2xkICsgYW5hbHl6ZSBzY2FsZSBmYWN0b3IgKiBudW1iZXIgb2YgdHUK ICAgICAgPGxpdGVyYWw+Mi4wPC9saXRlcmFsPiBlZmZlY3RpdmVseSBkb3VibGVzIHRoZQogICAg ICA8ZW1waGFzaXM+YW5hbHl6ZTwvZW1waGFzaXM+IGNvbXBvbmVudCBzY29yZS4KICAgICA8L3Bh cmE+CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIDxsaW5rIGxpbmtlbmQ9Im1vbml0b3JpbmctcGct c3RhdC1hdXRvdmFjdXVtLXByaW9yaXR5LXZpZXciPgorICAgICA8c3RydWN0bmFtZT5wZ19zdGF0 X2F1dG92YWN1dW1fcHJpb3JpdHk8L3N0cnVjdG5hbWU+PC9saW5rPiB2aWV3IGNhbiBiZQorICAg ICB1c2VkIHRvIGluc3BlY3QgZWFjaCB0YWJsZSdzIGF1dG92YWN1dW0gbmVlZCBhbmQgcHJpb3Jp dHkgc2NvcmUuCisgICAgPC9wYXJhPgogICAgPC9zZWN0Mz4KICAgPC9zZWN0Mj4KICA8L3NlY3Qx PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCBiL2RvYy9zcmMvc2dt bC9tb25pdG9yaW5nLnNnbWwKaW5kZXggYmI3NWVkMTA2OWIuLjc5MTg1MGJhZmU3IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tb25p dG9yaW5nLnNnbWwKQEAgLTQ2Myw2ICs0NjMsMTUgQEAgcG9zdGdyZXMgICAyNzA5MyAgMC4wICAw LjAgIDMwMDk2ICAyNzUyID8gICAgICAgIFNzICAgMTE6MzQgICAwOjAwIHBvc3RncmVzOiBzZXIK ICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+ PHN0cnVjdG5hbWU+cGdfc3RhdF9hdXRvdmFjdXVtX3ByaW9yaXR5PC9zdHJ1Y3RuYW1lPjxpbmRl eHRlcm0+PHByaW1hcnk+cGdfc3RhdF9hdXRvdmFjdXVtX3ByaW9yaXR5PC9wcmltYXJ5PjwvaW5k ZXh0ZXJtPjwvZW50cnk+CisgICAgICA8ZW50cnk+T25lIHJvdyBwZXIgcmVsYXRpb24gaW4gdGhl IGN1cnJlbnQgZGF0YWJhc2UsIHNob3dpbmcKKyAgICAgICBhIHRhYmxlJ3MgYXV0b3ZhY3V1bSBu ZWVkIGFuZCBwcmlvcml0eS4gU2VlCisgICAgICAgPGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1w Zy1zdGF0LWF1dG92YWN1dW0tcHJpb3JpdHktdmlldyI+CisgICAgICAgPHN0cnVjdG5hbWU+cGdf c3RhdF9hdXRvdmFjdXVtX3ByaW9yaXR5PC9zdHJ1Y3RuYW1lPjwvbGluaz4gZm9yIGRldGFpbHMu CisgICAgICA8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5 PjxzdHJ1Y3RuYW1lPnBnX3N0YXRfYmd3cml0ZXI8L3N0cnVjdG5hbWU+PGluZGV4dGVybT48cHJp bWFyeT5wZ19zdGF0X2Jnd3JpdGVyPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvZW50cnk+CiAgICAg ICA8ZW50cnk+T25lIHJvdyBvbmx5LCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQgdGhlCkBAIC01 MjU2LDYgKzUyNjUsMTYzIEBAIGRlc2NyaXB0aW9uIHwgV2FpdGluZyBmb3IgYSBuZXdseSBpbml0 aWFsaXplZCBXQUwgZmlsZSB0byByZWFjaCBkdXJhYmxlIHN0b3JhZ2UKIAogIDwvc2VjdDI+CiAK KyA8c2VjdDIgaWQ9Im1vbml0b3JpbmctcGctc3RhdC1hdXRvdmFjdXVtLXByaW9yaXR5LXZpZXci PgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3RhdF9hdXRvdmFjdXVtX3ByaW9yaXR5PC9zdHJ1 Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybT4KKyAgIDxwcmltYXJ5PnBnX3N0YXRfYXV0 b3ZhY3V1bV9wcmlvcml0eTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+Cisg ICBUaGUgPHN0cnVjdG5hbWU+cGdfc3RhdF9hdXRvdmFjdXVtX3ByaW9yaXR5PC9zdHJ1Y3RuYW1l PiB2aWV3IGNvbnRhaW5zCisgICBvbmUgcm93IHBlciByZWxhdGlvbiBpbiB0aGUgY3VycmVudCBk YXRhYmFzZSwgc2hvd2luZyB3aGV0aGVyIGEgdGFibGUKKyAgIG5lZWRzIGF1dG92YWN1dW0gb3Ig YXV0b2FuYWx5emUgYW5kIGl0cyBwcmlvcml0eS4gVGhlCisgICA8c3RydWN0ZmllbGQ+c2NvcmU8 L3N0cnVjdGZpZWxkPiwgPHN0cnVjdGZpZWxkPmZyZWV6ZV9zY29yZTwvc3RydWN0ZmllbGQ+LAor ICAgYW5kIDxzdHJ1Y3RmaWVsZD5tdWx0aXhhY3RfZnJlZXplX3Njb3JlPC9zdHJ1Y3RmaWVsZD4g dmFsdWVzIG1heSBiZSB2ZXJ5IGxhcmdlIGZvcgorICAgdGFibGVzIGFwcHJvYWNoaW5nIHdyYXBh cm91bmQsIGFzIHRoZXNlIHNjb3JlcyBhcmUgc2NhbGVkIGFnZ3Jlc3NpdmVseQorICAgb25jZSB0 aGV5IHN1cnBhc3MgdGhlIGZhaWxzYWZlIGFnZSB0aHJlc2hvbGRzLgorICA8L3BhcmE+CisKKyAg PHRhYmxlIGlkPSJwZy1zdGF0LWF1dG92YWN1dW0tcHJpb3JpdHktdmlldyIgeHJlZmxhYmVsPSJw Z19zdGF0X2F1dG92YWN1dW1fcHJpb3JpdHkiPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3N0 YXRfYXV0b3ZhY3V1bV9wcmlvcml0eTwvc3RydWN0bmFtZT4gVmlldzwvdGl0bGU+CisgICA8dGdy b3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERl c2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVh ZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnJlbGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT0lEIG9mIGEgdGFibGUKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+c2NoZW1hbmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzY2hlbWEg dGhhdCB0aGlzIHRhYmxlIGlzIGluCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48 cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnJlbG5h bWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGlzIHRhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPm5lZWRzX3ZhY3V1bTwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2xlYW48L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSB0YWJsZSBleGNl ZWRzIHRoZSB2YWN1dW0gdGhyZXNob2xkCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm5l ZWRzX2FuYWx5emU8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVHJ1ZSBpZiB0aGUgdGFibGUgZXhjZWVkcyB0aGUg YW5hbHl6ZSB0aHJlc2hvbGQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+d3JhcGFyb3Vu ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHZhY3V1bWluZyBpcyBuZWVkZWQgdG8gcHJldmVudCB0 cmFuc2FjdGlvbiBJRCBvcgorICAgICAgIG11bHRpeGFjdCBJRCB3cmFwYXJvdW5kCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnNjb3JlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ZG91YmxlIHBy ZWNpc2lvbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFByaW9y aXR5IHNjb3JlIHVzZWQgYnkgYXV0b3ZhY3V1bSB0byBvcmRlciB3aGljaCB0YWJsZXMgdG8KKyAg ICAgICBwcm9jZXNzIGZpcnN0LiBIaWdoZXIgdmFsdWVzIGluZGljYXRlIGdyZWF0ZXIgdXJnZW5j eS4gVGhpcyBpcworICAgICAgIHRoZSBtYXhpbXVtIG9mIGFsbCBjb21wb25lbnQgc2NvcmVzIGJl bG93LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5mcmVlemVfc2NvcmU8L3N0cnVjdGZp ZWxkPiA8dHlwZT5kb3VibGUgcHJlY2lzaW9uPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgU2NvcmUgY29tcG9uZW50IGJhc2VkIG9uIHRyYW5zYWN0aW9uIElEIGFn ZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAg ICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9k ZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+bXVsdGl4YWN0X2ZyZWV6ZV9zY29yZTwv c3RydWN0ZmllbGQ+IDx0eXBlPmRvdWJsZSBwcmVjaXNpb248L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBTY29yZSBjb21wb25lbnQgYmFzZWQgb24gbXVsdGl4YWN0 IElEIGFnZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFjdXVtX3Njb3JlPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+ZG91YmxlIHByZWNpc2lvbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFNjb3JlIGNvbXBvbmVudCBiYXNlZCBvbiB0aGUgZXN0aW1hdGVk IG51bWJlciBvZiBkZWFkIHR1cGxlcworICAgICAgIG5lZWRpbmcgcmVtb3ZhbCBieSB2YWN1dW0u CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhY3V1bV9pbnNlcnRfc2NvcmU8L3N0cnVj dGZpZWxkPiA8dHlwZT5kb3VibGUgcHJlY2lzaW9uPC90eXBlPgorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgU2NvcmUgY29tcG9uZW50IGJhc2VkIG9uIHRoZSBudW1iZXIgb2Yg aW5zZXJ0cyBzaW5jZSB0aGUgbGFzdAorICAgICAgIHZhY3V1bS4KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+YW5hbHl6ZV9zY29yZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmRvdWJsZSBwcmVj aXNpb248L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBTY29yZSBj b21wb25lbnQgYmFzZWQgb24gdGhlIG51bWJlciBvZiBtb2RpZmljYXRpb25zIHNpbmNlIHRoZQor ICAgICAgIGxhc3QgYW5hbHl6ZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisKKyAgPHBhcmE+CisgICBC eSBkZWZhdWx0LCB0aGUgPHN0cnVjdG5hbWU+cGdfc3RhdF9hdXRvdmFjdXVtX3ByaW9yaXR5PC9z dHJ1Y3RuYW1lPiB2aWV3IGNhbgorICAgYmUgcmVhZCBvbmx5IGJ5IHN1cGVydXNlcnMgb3Igcm9s ZXMgd2l0aCBwcml2aWxlZ2VzIG9mIHRoZQorICAgPGxpdGVyYWw+cGdfcmVhZF9hbGxfc3RhdHM8 L2xpdGVyYWw+IHJvbGUuCisgIDwvcGFyYT4KKworIDwvc2VjdDI+CisKICA8c2VjdDIgaWQ9Im1v bml0b3Jpbmctc3RhdHMtZnVuY3Rpb25zIj4KICAgPHRpdGxlPlN0YXRpc3RpY3MgRnVuY3Rpb25z PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Mu c3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGU1NDAxODAw NGRiLi4zMGJiZDU1ZTMzMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAt Nzk1LDYgKzc5NSwyNyBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X3hhY3RfdXNlcl90YWJsZXMgQVMK ICAgICBXSEVSRSBzY2hlbWFuYW1lIE5PVCBJTiAoJ3BnX2NhdGFsb2cnLCAnaW5mb3JtYXRpb25f c2NoZW1hJykgQU5ECiAgICAgICAgICAgc2NoZW1hbmFtZSAhfiAnXnBnX3RvYXN0JzsKIAorQ1JF QVRFIFZJRVcgcGdfc3RhdF9hdXRvdmFjdXVtX3ByaW9yaXR5IEFTCisgICAgU0VMRUNUCisgICAg ICAgICAgICBTLnJlbGlkLAorICAgICAgICAgICAgTi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCisg ICAgICAgICAgICBDLnJlbG5hbWUgQVMgcmVsbmFtZSwKKyAgICAgICAgICAgIFMubmVlZHNfdmFj dXVtLAorICAgICAgICAgICAgUy5uZWVkc19hbmFseXplLAorICAgICAgICAgICAgUy53cmFwYXJv dW5kLAorICAgICAgICAgICAgUy5zY29yZSwKKyAgICAgICAgICAgIFMuZnJlZXplX3Njb3JlLAor ICAgICAgICAgICAgUy5tdWx0aXhhY3RfZnJlZXplX3Njb3JlLAorICAgICAgICAgICAgUy52YWN1 dW1fc2NvcmUsCisgICAgICAgICAgICBTLnZhY3V1bV9pbnNlcnRfc2NvcmUsCisgICAgICAgICAg ICBTLmFuYWx5emVfc2NvcmUKKyAgICBGUk9NIHBnX3N0YXRfZ2V0X2F1dG92YWN1dW1fcHJpb3Jp dHkoKSBTCisgICAgICAgICBKT0lOIHBnX2NsYXNzIEMgT04gQy5vaWQgPSBTLnJlbGlkCisgICAg ICAgICBMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIE4gT04gTi5vaWQgPSBDLnJlbG5hbWVzcGFjZTsK KworUkVWT0tFIEFMTCBPTiBwZ19zdGF0X2F1dG92YWN1dW1fcHJpb3JpdHkgRlJPTSBQVUJMSUM7 CitHUkFOVCBTRUxFQ1QgT04gcGdfc3RhdF9hdXRvdmFjdXVtX3ByaW9yaXR5IFRPIHBnX3JlYWRf YWxsX3N0YXRzOworCiBDUkVBVEUgVklFVyBwZ19zdGF0aW9fYWxsX3RhYmxlcyBBUwogICAgIFNF TEVDVAogICAgICAgICAgICAgQy5vaWQgQVMgcmVsaWQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jCmluZGV4IDRiMGQyNTI2ZjViLi5hNDY5ZDI4NThmZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rl ci9hdXRvdmFjdXVtLmMKQEAgLTgwLDYgKzgwLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX25h bWVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ZhY3V1bS5oIgogI2luY2x1ZGUgImNvbW1v bi9pbnQuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAibGliL2lsaXN0LmgiCiAj aW5jbHVkZSAibGlicHEvcHFzaWduYWwuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKQEAgLTEx MSw2ICsxMTIsNyBAQAogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRp bHMvdGltZW91dC5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInV0 aWxzL3R1cGxlc3RvcmUuaCIKICNpbmNsdWRlICJ1dGlscy93YWl0X2V2ZW50LmgiCiAKIApAQCAt MzY3NSwzICszNjc3LDg3IEBAIGNoZWNrX2F2X3dvcmtlcl9ndWNzKHZvaWQpCiAJCQkJIGVycmRl dGFpbCgiVGhlIHNlcnZlciB3aWxsIG9ubHkgc3RhcnQgdXAgdG8gXCJhdXRvdmFjdXVtX3dvcmtl cl9zbG90c1wiICglZCkgYXV0b3ZhY3V1bSB3b3JrZXJzIGF0IGEgZ2l2ZW4gdGltZS4iLAogCQkJ CQkJICAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMpKSk7CiB9CisKKy8qCisgKiBwZ19zdGF0X2dl dF9hdXRvdmFjdXVtX3ByaW9yaXR5CisgKgorICogUmV0dXJucyB0aGUgYXV0b3ZhY3V1bSBwcmlv cml0eSBzY29yZSBmb3IgYSByZWxhdGlvbiBhcyB3ZWxsIGFzIGlmIHRoZQorICogcmVsYXRpb24g bmVlZHMgdmFjdXVtIG9yIGFuYWx5emUsIGFuZCBpZiB0aGUgdmFjdXVtIGlzIGEgZm9yY2UgdmFj dXVtCisgKiBkdWUgdG8gd3JhcGFyb3VuZC4KKyAqCisgKiBUaGlzIGZvbGxvd3MgdGhlIHNhbWUg c2V0dXAgYXMgZG9fYXV0b3ZhY3V1bSgpLiBHbG9iYWwgc3RhdGUgc3VjaAorICogYXMgcmVjZW50 WGlkL3JlY2VudE11bHRpIGFuZCBlZmZlY3RpdmVfbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIGlz CisgKiBjb21wdXRlZCBoZXJlLCB3aGlsZSBjb21wdXRlX2F1dG92YWNfc2NvcmUoKSBoYW5kbGVz IHRoZSBwZXItcmVsYXRpb24KKyAqIHNjb3JlIGNvbXB1dGF0aW9uLgorICovCitEYXR1bQorcGdf c3RhdF9nZXRfYXV0b3ZhY3V1bV9wcmlvcml0eShQR19GVU5DVElPTl9BUkdTKQoreworI2RlZmlu ZSBOVU1fQVZfU0NPUkVfQ09MUyAxMAorCVJldHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5T ZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5mbzsKKwlSZWxhdGlvbgljbGFzc1JlbDsKKwlUdXBs ZURlc2MJcGdfY2xhc3NfZGVzYzsKKwlpbnQJCQllZmZlY3RpdmVfbXVsdGl4YWN0X2ZyZWV6ZV9t YXhfYWdlOworCVRhYmxlU2NhbkRlc2MgcmVsU2NhbjsKKwlIZWFwVHVwbGUJY2xhc3NUdXA7CisK KwlJbml0TWF0ZXJpYWxpemVkU1JGKGZjaW5mbywgMCk7CisKKwllZmZlY3RpdmVfbXVsdGl4YWN0 X2ZyZWV6ZV9tYXhfYWdlID0gTXVsdGlYYWN0TWVtYmVyRnJlZXplVGhyZXNob2xkKCk7CisKKwly ZWNlbnRYaWQgPSBSZWFkTmV4dFRyYW5zYWN0aW9uSWQoKTsKKwlyZWNlbnRNdWx0aSA9IFJlYWRO ZXh0TXVsdGlYYWN0SWQoKTsKKworCWNsYXNzUmVsID0gdGFibGVfb3BlbihSZWxhdGlvblJlbGF0 aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJcGdfY2xhc3NfZGVzYyA9IENyZWF0ZVR1cGxlRGVz Y0NvcHkoUmVsYXRpb25HZXREZXNjcihjbGFzc1JlbCkpOworCisJcmVsU2NhbiA9IHRhYmxlX2Jl Z2luc2Nhbl9jYXRhbG9nKGNsYXNzUmVsLCAwLCBOVUxMKTsKKwl3aGlsZSAoKGNsYXNzVHVwID0g aGVhcF9nZXRuZXh0KHJlbFNjYW4sIEZvcndhcmRTY2FuRGlyZWN0aW9uKSkgIT0gTlVMTCkKKwl7 CisJCUZvcm1fcGdfY2xhc3MgY2xhc3NGb3JtID0gKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVChj bGFzc1R1cCk7CisJCWJvb2wJCWRvdmFjdXVtOworCQlib29sCQlkb2FuYWx5emU7CisJCWJvb2wJ CXdyYXBhcm91bmQ7CisJCUF1dG9WYWN1dW1Qcmlvcml0eSBwcmlvcml0eTsKKwkJQXV0b1ZhY09w dHMgKmF2b3B0czsKKwkJRGF0dW0JCXZhbHVlc1tOVU1fQVZfU0NPUkVfQ09MU107CisJCWJvb2wJ CW51bGxzW05VTV9BVl9TQ09SRV9DT0xTXSA9IHtmYWxzZX07CisKKwkJaWYgKGNsYXNzRm9ybS0+ cmVsa2luZCAhPSBSRUxLSU5EX1JFTEFUSU9OICYmCisJCQljbGFzc0Zvcm0tPnJlbGtpbmQgIT0g UkVMS0lORF9NQVRWSUVXICYmCisJCQljbGFzc0Zvcm0tPnJlbGtpbmQgIT0gUkVMS0lORF9UT0FT VFZBTFVFKQorCQkJY29udGludWU7CisKKwkJaWYgKGNsYXNzRm9ybS0+cmVscGVyc2lzdGVuY2Ug PT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJCWNvbnRpbnVlOworCisJCWF2b3B0cyA9IGV4dHJh Y3RfYXV0b3ZhY19vcHRzKGNsYXNzVHVwLCBwZ19jbGFzc19kZXNjKTsKKworCQljb21wdXRlX2F1 dG92YWNfc2NvcmUoY2xhc3NUdXAsIHBnX2NsYXNzX2Rlc2MsCisJCQkJCQkJICBlZmZlY3RpdmVf bXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlLCBhdm9wdHMsCisJCQkJCQkJICAwLCAmZG92YWN1dW0s ICZkb2FuYWx5emUsCisJCQkJCQkJICAmd3JhcGFyb3VuZCwgJnByaW9yaXR5KTsKKworCQlpZiAo YXZvcHRzKQorCQkJcGZyZWUoYXZvcHRzKTsKKworCQl2YWx1ZXNbMF0gPSBPYmplY3RJZEdldERh dHVtKGNsYXNzRm9ybS0+b2lkKTsKKwkJdmFsdWVzWzFdID0gQm9vbEdldERhdHVtKHByaW9yaXR5 Lm5lZWRzX3ZhY3V1bSk7CisJCXZhbHVlc1syXSA9IEJvb2xHZXREYXR1bShwcmlvcml0eS5uZWVk c19hbmFseXplKTsKKwkJdmFsdWVzWzNdID0gQm9vbEdldERhdHVtKHByaW9yaXR5LmlzX3dyYXBh cm91bmQpOworCQl2YWx1ZXNbNF0gPSBGbG9hdDhHZXREYXR1bShwcmlvcml0eS5tYXgpOworCQl2 YWx1ZXNbNV0gPSBGbG9hdDhHZXREYXR1bShwcmlvcml0eS54aWQpOworCQl2YWx1ZXNbNl0gPSBG bG9hdDhHZXREYXR1bShwcmlvcml0eS5teGlkKTsKKwkJdmFsdWVzWzddID0gRmxvYXQ4R2V0RGF0 dW0ocHJpb3JpdHkudmFjKTsKKwkJdmFsdWVzWzhdID0gRmxvYXQ4R2V0RGF0dW0ocHJpb3JpdHku dmFjX2lucyk7CisJCXZhbHVlc1s5XSA9IEZsb2F0OEdldERhdHVtKHByaW9yaXR5LmFubCk7CisK KwkJdHVwbGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVz YywKKwkJCQkJCQkgdmFsdWVzLCBudWxscyk7CisJfQorCXRhYmxlX2VuZHNjYW4ocmVsU2Nhbik7 CisKKwl0YWJsZV9jbG9zZShjbGFzc1JlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXJldHVybiAo RGF0dW0pIDA7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAzNTc5Y2VjNTc0NC4uNmY1 ZDE5OWE1MDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNTY2Nyw2ICs1NjY3LDE2IEBA CiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3RvdGFsX2F1dG9hbmFseXplX3RpbWUnLCBwcm92 b2xhdGlsZSA9PiAncycsCiAgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnZmxv YXQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfdG90 YWxfYXV0b2FuYWx5emVfdGltZScgfSwKK3sgb2lkID0+ICc4NDA5JywKKyAgZGVzY3IgPT4gJ3N0 YXRpc3RpY3M6IGF1dG92YWN1dW0gcHJpb3JpdHkgc2NvcmVzIGZvciBhbGwgcmVsYXRpb25zJywK KyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfYXV0b3ZhY3V1bV9wcmlvcml0eScsIHByb3Jvd3Mg PT4gJzEwMCcsCisgIHByb3JldHNldCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcGFy YWxsZWwgPT4gJ3InLAorICBwcm9yZXR0eXBlID0+ICdyZWNvcmQnLCBwcm9hcmd0eXBlcyA9PiAn JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tvaWQsYm9vbCxib29sLGJvb2wsZmxvYXQ4LGZsb2F0 OCxmbG9hdDgsZmxvYXQ4LGZsb2F0OCxmbG9hdDh9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8s byxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25hbWVzID0+ICd7cmVsaWQsbmVlZHNfdmFjdXVt LG5lZWRzX2FuYWx5emUsd3JhcGFyb3VuZCxzY29yZSxmcmVlemVfc2NvcmUsbXVsdGl4YWN0X2Zy ZWV6ZV9zY29yZSx2YWN1dW1fc2NvcmUsdmFjdXVtX2luc2VydF9zY29yZSxhbmFseXplX3Njb3Jl fScsCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfYXV0b3ZhY3V1bV9wcmlvcml0eScsCisgIHBy b2FjbCA9PiAne1BPU1RHUkVTPVgscGdfcmVhZF9hbGxfc3RhdHM9WH0nIH0sCiB7IG9pZCA9PiAn MTkzNicsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBjdXJyZW50bHkgYWN0aXZlIGJhY2tlbmQgSURz JywKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfYmFja2VuZF9pZHNldCcsIHByb3Jvd3MgPT4g JzEwMCcsIHByb3JldHNldCA9PiAndCcsCiAgIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxs ZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ0JywKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxl cy5vdXQKaW5kZXggMmIzY2Y2ZDg1NjkuLjUzYmY5YTQ2ZTRmIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3J1bGVzLm91dApAQCAtMTg2MCw2ICsxODYwLDIxIEBAIHBnX3N0YXRfYXJjaGl2ZXJ8IFNF TEVDVCBhcmNoaXZlZF9jb3VudCwKICAgICBsYXN0X2ZhaWxlZF90aW1lLAogICAgIHN0YXRzX3Jl c2V0CiAgICBGUk9NIHBnX3N0YXRfZ2V0X2FyY2hpdmVyKCkgcyhhcmNoaXZlZF9jb3VudCwgbGFz dF9hcmNoaXZlZF93YWwsIGxhc3RfYXJjaGl2ZWRfdGltZSwgZmFpbGVkX2NvdW50LCBsYXN0X2Zh aWxlZF93YWwsIGxhc3RfZmFpbGVkX3RpbWUsIHN0YXRzX3Jlc2V0KTsKK3BnX3N0YXRfYXV0b3Zh Y3V1bV9wcmlvcml0eXwgU0VMRUNUIHMucmVsaWQsCisgICAgbi5uc3BuYW1lIEFTIHNjaGVtYW5h bWUsCisgICAgYy5yZWxuYW1lLAorICAgIHMubmVlZHNfdmFjdXVtLAorICAgIHMubmVlZHNfYW5h bHl6ZSwKKyAgICBzLndyYXBhcm91bmQsCisgICAgcy5zY29yZSwKKyAgICBzLmZyZWV6ZV9zY29y ZSwKKyAgICBzLm11bHRpeGFjdF9mcmVlemVfc2NvcmUsCisgICAgcy52YWN1dW1fc2NvcmUsCisg ICAgcy52YWN1dW1faW5zZXJ0X3Njb3JlLAorICAgIHMuYW5hbHl6ZV9zY29yZQorICAgRlJPTSAo KHBnX3N0YXRfZ2V0X2F1dG92YWN1dW1fcHJpb3JpdHkoKSBzKHJlbGlkLCBuZWVkc192YWN1dW0s IG5lZWRzX2FuYWx5emUsIHdyYXBhcm91bmQsIHNjb3JlLCBmcmVlemVfc2NvcmUsIG11bHRpeGFj dF9mcmVlemVfc2NvcmUsIHZhY3V1bV9zY29yZSwgdmFjdXVtX2luc2VydF9zY29yZSwgYW5hbHl6 ZV9zY29yZSkKKyAgICAgSk9JTiBwZ19jbGFzcyBjIE9OICgoYy5vaWQgPSBzLnJlbGlkKSkpCisg ICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiAoKG4ub2lkID0gYy5yZWxuYW1lc3BhY2Up KSk7CiBwZ19zdGF0X2Jnd3JpdGVyfCBTRUxFQ1QgcGdfc3RhdF9nZXRfYmd3cml0ZXJfYnVmX3dy aXR0ZW5fY2xlYW4oKSBBUyBidWZmZXJzX2NsZWFuLAogICAgIHBnX3N0YXRfZ2V0X2Jnd3JpdGVy X21heHdyaXR0ZW5fY2xlYW4oKSBBUyBtYXh3cml0dGVuX2NsZWFuLAogICAgIHBnX3N0YXRfZ2V0 X2J1Zl9hbGxvYygpIEFTIGJ1ZmZlcnNfYWxsb2MsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3ZhY3V1bS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1 bS5vdXQKaW5kZXggZDQ2OTZiYzMzMjUuLjljYmMyZjZhMTRiIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3ZhY3V1bS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC92YWN1dW0ub3V0CkBAIC03MzAsMyArNzMwLDM1IEBAIFNFTEVDVCBwZ19jb2x1bW5fdG9h c3RfY2h1bmtfaWQoZjEpID0gOidpZF8yX2NodW5rJyBBUyBzYW1lX2NodW5rCiAoMSByb3cpCiAK IERST1AgVEFCTEUgdmFjX3Jld3JpdGVfdG9hc3Q7CistLSBUZXN0IHBnX3N0YXRfYXV0b3ZhY3V1 bV9wcmlvcml0eSB2aWV3LiBTY29yZXMgYXJlIGNoZWNrZWQgdG8gYmUKKy0tIHdpdGhpbiBhbiBl eHBlY3RlZCByYW5nZS4gZnJlZXplX3Njb3JlIGFuZCBtdWx0aXhhY3RfZnJlZXplX3Njb3JlIGFy ZSBleGNsdWRlZAorLS0gYXMgdGhleSByZXF1aXJlIGNvbnN1bWluZyBlbm91Z2ggWElEcyB0byBi ZSBtZWFuaW5nZnVsLgorQ1JFQVRFIFRBQkxFIHZhY3V1bV9wcmlvcml0eV90ZXN0IChpZCBpbnQp CisgIFdJVEggKGF1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQgPSAxLAorICAgICAgICBhdXRv dmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQgPSAxLAorICAgICAgICBhdXRvdmFjdXVtX3ZhY3V1bV9p bnNlcnRfdGhyZXNob2xkID0gMSwKKyAgICAgICAgYXV0b3ZhY3V1bV9lbmFibGVkID0gb2ZmKTsK K0lOU0VSVCBJTlRPIHZhY3V1bV9wcmlvcml0eV90ZXN0IFNFTEVDVCAxOworSU5TRVJUIElOVE8g dmFjdXVtX3ByaW9yaXR5X3Rlc3QgU0VMRUNUIDI7CitERUxFVEUgRlJPTSB2YWN1dW1fcHJpb3Jp dHlfdGVzdCBXSEVSRSBpZCA9IDE7CitERUxFVEUgRlJPTSB2YWN1dW1fcHJpb3JpdHlfdGVzdCBX SEVSRSBpZCA9IDI7CistLSBmb3JjZSB2YWN1dW0gc3RhdHMgdG8gYmUgZmx1c2hlZAorU0VMRUNU IHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBuZWVkc192 YWN1dW0sIG5lZWRzX2FuYWx5emUsCisgIHNjb3JlID4gMCBBTkQgc2NvcmUgPD0gNCBBUyBzY29y ZSwKKyAgdmFjdXVtX3Njb3JlID4gMCBBTkQgdmFjdXVtX3Njb3JlIDw9IDIgQVMgdmFjdXVtX3Nj b3JlLAorICB2YWN1dW1faW5zZXJ0X3Njb3JlID4gMCBBTkQgdmFjdXVtX2luc2VydF9zY29yZSA8 PSAyIEFTIHZhY3V1bV9pbnNlcnRfc2NvcmUsCisgIGFuYWx5emVfc2NvcmUgPiAwIEFORCBhbmFs eXplX3Njb3JlIDw9IDQgQVMgYW5hbHl6ZV9zY29yZQorICBGUk9NIHBnX3N0YXRfYXV0b3ZhY3V1 bV9wcmlvcml0eQorICBXSEVSRSByZWxuYW1lID0gJ3ZhY3V1bV9wcmlvcml0eV90ZXN0JzsKKyBu ZWVkc192YWN1dW0gfCBuZWVkc19hbmFseXplIHwgc2NvcmUgfCB2YWN1dW1fc2NvcmUgfCB2YWN1 dW1faW5zZXJ0X3Njb3JlIHwgYW5hbHl6ZV9zY29yZSAKKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0KKyB0ICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAgfCB0ICAg ICAgICAgICAgfCB0ICAgICAgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCitEUk9QIFRBQkxF IHZhY3V1bV9wcmlvcml0eV90ZXN0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv dmFjdXVtLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bS5zcWwKaW5kZXggMjQ3Yjhl MjNiMjMuLjU1NmZlMzEyN2Y0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC92YWN1 dW0uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ZhY3V1bS5zcWwKQEAgLTUyNSwzICs1 MjUsMjYgQEAgU0VMRUNUIGlkLCBwZ19jb2x1bW5fdG9hc3RfY2h1bmtfaWQoZjEpIElTIE5VTEwg QVMgZjFfY2h1bmtfbnVsbCwKIFNFTEVDVCBwZ19jb2x1bW5fdG9hc3RfY2h1bmtfaWQoZjEpID0g OidpZF8yX2NodW5rJyBBUyBzYW1lX2NodW5rCiAgIEZST00gdmFjX3Jld3JpdGVfdG9hc3QgV0hF UkUgaWQgPSAyOwogRFJPUCBUQUJMRSB2YWNfcmV3cml0ZV90b2FzdDsKKworLS0gVGVzdCBwZ19z dGF0X2F1dG92YWN1dW1fcHJpb3JpdHkgdmlldy4gU2NvcmVzIGFyZSBjaGVja2VkIHRvIGJlCist LSB3aXRoaW4gYW4gZXhwZWN0ZWQgcmFuZ2UuIGZyZWV6ZV9zY29yZSBhbmQgbXVsdGl4YWN0X2Zy ZWV6ZV9zY29yZSBhcmUgZXhjbHVkZWQKKy0tIGFzIHRoZXkgcmVxdWlyZSBjb25zdW1pbmcgZW5v dWdoIFhJRHMgdG8gYmUgbWVhbmluZ2Z1bC4KK0NSRUFURSBUQUJMRSB2YWN1dW1fcHJpb3JpdHlf dGVzdCAoaWQgaW50KQorICBXSVRIIChhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkID0gMSwK KyAgICAgICAgYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkID0gMSwKKyAgICAgICAgYXV0b3Zh Y3V1bV92YWN1dW1faW5zZXJ0X3RocmVzaG9sZCA9IDEsCisgICAgICAgIGF1dG92YWN1dW1fZW5h YmxlZCA9IG9mZik7CitJTlNFUlQgSU5UTyB2YWN1dW1fcHJpb3JpdHlfdGVzdCBTRUxFQ1QgMTsK K0lOU0VSVCBJTlRPIHZhY3V1bV9wcmlvcml0eV90ZXN0IFNFTEVDVCAyOworREVMRVRFIEZST00g dmFjdXVtX3ByaW9yaXR5X3Rlc3QgV0hFUkUgaWQgPSAxOworREVMRVRFIEZST00gdmFjdXVtX3By aW9yaXR5X3Rlc3QgV0hFUkUgaWQgPSAyOworLS0gZm9yY2UgdmFjdXVtIHN0YXRzIHRvIGJlIGZs dXNoZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKK1NFTEVDVCBuZWVkc192 YWN1dW0sIG5lZWRzX2FuYWx5emUsCisgIHNjb3JlID4gMCBBTkQgc2NvcmUgPD0gNCBBUyBzY29y ZSwKKyAgdmFjdXVtX3Njb3JlID4gMCBBTkQgdmFjdXVtX3Njb3JlIDw9IDIgQVMgdmFjdXVtX3Nj b3JlLAorICB2YWN1dW1faW5zZXJ0X3Njb3JlID4gMCBBTkQgdmFjdXVtX2luc2VydF9zY29yZSA8 PSAyIEFTIHZhY3V1bV9pbnNlcnRfc2NvcmUsCisgIGFuYWx5emVfc2NvcmUgPiAwIEFORCBhbmFs eXplX3Njb3JlIDw9IDQgQVMgYW5hbHl6ZV9zY29yZQorICBGUk9NIHBnX3N0YXRfYXV0b3ZhY3V1 bV9wcmlvcml0eQorICBXSEVSRSByZWxuYW1lID0gJ3ZhY3V1bV9wcmlvcml0eV90ZXN0JzsKK0RS T1AgVEFCTEUgdmFjdXVtX3ByaW9yaXR5X3Rlc3Q7Ci0tIAoyLjQ3LjMKCg== --00000000000037585a064e5d172b Content-Type: application/octet-stream; name="v4-0003-Refactor-autovacuum-score-computation-into-comput.patch" Content-Disposition: attachment; filename="v4-0003-Refactor-autovacuum-score-computation-into-comput.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mnffyq721 RnJvbSBlMzZiOGIxNDI3NzU3YjFlMDljMzI3MTNiMGI0OTEyYTBjODA2MDczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW1pIEltc2VpaCA8c2FtaW1zZWloQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAzMSBNYXIgMjAyNiAxODo0MzoyNSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjQgMy80 XSBSZWZhY3RvciBhdXRvdmFjdXVtIHNjb3JlIGNvbXB1dGF0aW9uIGludG8KIGNvbXB1dGVfYXV0 b3ZhY19zY29yZQoKQXV0b3ZhY3V1bSBwcmlvcml0eSBzY29yZSB3aWxsIGJlIGNvbXB1dGVkIGZv ciBzZXZlcmFsCnJlYXNvbnM6IEF1dG92YWN1dW0gcHJvY2Vzc2luZyBhbmQgYSBmdXR1cmUgbW9u aXRvcmluZwp2aWV3IHRvIHJlcG9ydCB0aGUgc2NvcmVzIHBlciB0YWJsZS4KClRoaXMgY29uc29s aWRhdGVzIHRoaXMgY29kZSBpbnRvIGEgbmV3IHJvdXRpbmUKY29tcHV0ZV9hdXRvdmFjX3Njb3Jl KCkgYW5kIGFsc28gcmVtb3ZlcyB0aGUgbmVlZCBmb3IKcmVjaGVja19yZWxhdGlvbl9uZWVkc192 YWNhbmFseXplKCkgd2hpY2ggaXMgZG9pbmcgdGhlCnNhbWUgdGhpbmcuCgpEaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBQTVSWjBzNHhqTXJCLVZBbkxjY0M3a1k4ZDAtNDgwNi1Mc2Fj LWN6SnNkQTFMWHRBdyU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rl ci9hdXRvdmFjdXVtLmMgfCA0NyArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggNzJhZDMwZjZhZTcuLjRiMGQyNTI2ZjViIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYworKysgYi9zcmMvYmFja2Vu ZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwpAQCAtMzc0LDEwICszNzQsMTEgQEAgc3RhdGljIHZv aWQgRnJlZVdvcmtlckluZm8oaW50IGNvZGUsIERhdHVtIGFyZyk7CiBzdGF0aWMgYXV0b3ZhY190 YWJsZSAqdGFibGVfcmVjaGVja19hdXRvdmFjKE9pZCByZWxpZCwgSFRBQiAqdGFibGVfdG9hc3Rf bWFwLAogCQkJCQkJCQkJCQlUdXBsZURlc2MgcGdfY2xhc3NfZGVzYywKIAkJCQkJCQkJCQkJaW50 IGVmZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UpOwotc3RhdGljIHZvaWQgcmVjaGVj a19yZWxhdGlvbl9uZWVkc192YWNhbmFseXplKE9pZCByZWxpZCwgQXV0b1ZhY09wdHMgKmF2b3B0 cywKLQkJCQkJCQkJCQkJICBGb3JtX3BnX2NsYXNzIGNsYXNzRm9ybSwKLQkJCQkJCQkJCQkJICBp bnQgZWZmZWN0aXZlX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSwKLQkJCQkJCQkJCQkJICBib29s ICpkb3ZhY3V1bSwgYm9vbCAqZG9hbmFseXplLCBib29sICp3cmFwYXJvdW5kKTsKK3N0YXRpYyB2 b2lkIGNvbXB1dGVfYXV0b3ZhY19zY29yZShIZWFwVHVwbGUgdHVwbGUsIFR1cGxlRGVzYyBwZ19j bGFzc19kZXNjLAorCQkJCQkJCQkgIGludCBlZmZlY3RpdmVfbXVsdGl4YWN0X2ZyZWV6ZV9tYXhf YWdlLAorCQkJCQkJCQkgIEF1dG9WYWNPcHRzICpyZWxvcHRzLCBpbnQgZWxldmVsLAorCQkJCQkJ CQkgIGJvb2wgKmRvdmFjdXVtLCBib29sICpkb2FuYWx5emUsCisJCQkJCQkJCSAgYm9vbCAqd3Jh cGFyb3VuZCwgQXV0b1ZhY3V1bVByaW9yaXR5ICpwcmlvcml0eSk7CiBzdGF0aWMgdm9pZCByZWxh dGlvbl9uZWVkc192YWNhbmFseXplKE9pZCByZWxpZCwgQXV0b1ZhY09wdHMgKnJlbG9wdHMsCiAJ CQkJCQkJCQkgIEZvcm1fcGdfY2xhc3MgY2xhc3NGb3JtLAogCQkJCQkJCQkJICBQZ1N0YXRfU3Rh dFRhYkVudHJ5ICp0YWJlbnRyeSwKQEAgLTI4MzYsNiArMjgzNyw3IEBAIHRhYmxlX3JlY2hlY2tf YXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxlX3RvYXN0X21hcCwKIAlib29sCQl3cmFwYXJv dW5kOwogCUF1dG9WYWNPcHRzICphdm9wdHM7CiAJYm9vbAkJZnJlZV9hdm9wdHMgPSBmYWxzZTsK KwlBdXRvVmFjdXVtUHJpb3JpdHkgcHJpb3JpdHk7CiAKIAkvKiBmZXRjaCB0aGUgcmVsYXRpb24n cyByZWxjYWNoZSBlbnRyeSAqLwogCWNsYXNzVHVwID0gU2VhcmNoU3lzQ2FjaGVDb3B5MShSRUxP SUQsIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpKTsKQEAgLTI4NjEsOSArMjg2MywxMCBAQCB0YWJs ZV9yZWNoZWNrX2F1dG92YWMoT2lkIHJlbGlkLCBIVEFCICp0YWJsZV90b2FzdF9tYXAsCiAJCQlh dm9wdHMgPSAmaGVudHJ5LT5hcl9yZWxvcHRpb25zOwogCX0KIAotCXJlY2hlY2tfcmVsYXRpb25f bmVlZHNfdmFjYW5hbHl6ZShyZWxpZCwgYXZvcHRzLCBjbGFzc0Zvcm0sCi0JCQkJCQkJCQkgIGVm ZmVjdGl2ZV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UsCi0JCQkJCQkJCQkgICZkb3ZhY3V1bSwg JmRvYW5hbHl6ZSwgJndyYXBhcm91bmQpOworCWNvbXB1dGVfYXV0b3ZhY19zY29yZShjbGFzc1R1 cCwgcGdfY2xhc3NfZGVzYywKKwkJCQkJCSAgZWZmZWN0aXZlX211bHRpeGFjdF9mcmVlemVfbWF4 X2FnZSwKKwkJCQkJCSAgYXZvcHRzLCBERUJVRzMsCisJCQkJCQkgICZkb3ZhY3V1bSwgJmRvYW5h bHl6ZSwgJndyYXBhcm91bmQsICZwcmlvcml0eSk7CiAKIAkvKiBPSywgaXQgbmVlZHMgc29tZXRo aW5nIGRvbmUgKi8KIAlpZiAoZG9hbmFseXplIHx8IGRvdmFjdXVtKQpAQCAtMjk3MywzMyArMjk3 NiwyOSBAQCB0YWJsZV9yZWNoZWNrX2F1dG92YWMoT2lkIHJlbGlkLCBIVEFCICp0YWJsZV90b2Fz dF9tYXAsCiB9CiAKIC8qCi0gKiByZWNoZWNrX3JlbGF0aW9uX25lZWRzX3ZhY2FuYWx5emUKLSAq Ci0gKiBTdWJyb3V0aW5lIGZvciB0YWJsZV9yZWNoZWNrX2F1dG92YWMuCi0gKgotICogRmV0Y2gg dGhlIHBnc3RhdCBvZiBhIHJlbGF0aW9uIGFuZCByZWNoZWNrIHdoZXRoZXIgYSByZWxhdGlvbgot ICogbmVlZHMgdG8gYmUgdmFjdXVtZWQgb3IgYW5hbHl6ZWQuCisgKiBjb21wdXRlX2F1dG92YWNf c2NvcmUKKyAqCQlGZXRjaCB0aGUgcGdzdGF0IGVudHJ5IGZvciBhIHJlbGF0aW9uIGFuZCBjYWxs CisgKgkJcmVsYXRpb25fbmVlZHNfdmFjYW5hbHl6ZSgpIHRvIGRldGVybWluZSB3aGV0aGVyIGl0 IG5lZWRzCisgKgkJdmFjdXVtIG9yIGFuYWx5emUgYW5kIGNvbXB1dGUgaXRzIHByaW9yaXR5IHNj b3Jlcy4KICAqLwogc3RhdGljIHZvaWQKLXJlY2hlY2tfcmVsYXRpb25fbmVlZHNfdmFjYW5hbHl6 ZShPaWQgcmVsaWQsCi0JCQkJCQkJCSAgQXV0b1ZhY09wdHMgKmF2b3B0cywKLQkJCQkJCQkJICBG b3JtX3BnX2NsYXNzIGNsYXNzRm9ybSwKLQkJCQkJCQkJICBpbnQgZWZmZWN0aXZlX211bHRpeGFj dF9mcmVlemVfbWF4X2FnZSwKLQkJCQkJCQkJICBib29sICpkb3ZhY3V1bSwKLQkJCQkJCQkJICBi b29sICpkb2FuYWx5emUsCi0JCQkJCQkJCSAgYm9vbCAqd3JhcGFyb3VuZCkKK2NvbXB1dGVfYXV0 b3ZhY19zY29yZShIZWFwVHVwbGUgdHVwbGUsIFR1cGxlRGVzYyBwZ19jbGFzc19kZXNjLAorCQkJ CQkgIGludCBlZmZlY3RpdmVfbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlLAorCQkJCQkgIEF1dG9W YWNPcHRzICpyZWxvcHRzLCBpbnQgZWxldmVsLAorCQkJCQkgIGJvb2wgKmRvdmFjdXVtLCBib29s ICpkb2FuYWx5emUsCisJCQkJCSAgYm9vbCAqd3JhcGFyb3VuZCwgQXV0b1ZhY3V1bVByaW9yaXR5 ICpwcmlvcml0eSkKIHsKKwlGb3JtX3BnX2NsYXNzIGNsYXNzRm9ybSA9IChGb3JtX3BnX2NsYXNz KSBHRVRTVFJVQ1QodHVwbGUpOwogCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OwotCUF1 dG9WYWN1dW1Qcmlvcml0eSBwcmlvcml0eTsKIAogCS8qIGZldGNoIHRoZSBwZ3N0YXQgdGFibGUg ZW50cnkgKi8KIAl0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5X2V4dChjbGFz c0Zvcm0tPnJlbGlzc2hhcmVkLAotCQkJCQkJCQkJCQkgIHJlbGlkKTsKKwkJCQkJCQkJCQkJICBj bGFzc0Zvcm0tPm9pZCk7CiAKLQlyZWxhdGlvbl9uZWVkc192YWNhbmFseXplKHJlbGlkLCBhdm9w dHMsIGNsYXNzRm9ybSwgdGFiZW50cnksCisJcmVsYXRpb25fbmVlZHNfdmFjYW5hbHl6ZShjbGFz c0Zvcm0tPm9pZCwgcmVsb3B0cywgY2xhc3NGb3JtLCB0YWJlbnRyeSwKIAkJCQkJCQkgIGVmZmVj dGl2ZV9tdWx0aXhhY3RfZnJlZXplX21heF9hZ2UsCiAJCQkJCQkJICBkb3ZhY3V1bSwgZG9hbmFs eXplLCB3cmFwYXJvdW5kLAotCQkJCQkJCSAgJnByaW9yaXR5LCBERUJVRzMpOworCQkJCQkJCSAg cHJpb3JpdHksIGVsZXZlbCk7CiAKIAkvKiBSZWxlYXNlIHRhYmVudHJ5IHRvIGF2b2lkIGxlYWth Z2UgKi8KIAlpZiAodGFiZW50cnkpCi0tIAoyLjQ3LjMKCg== --00000000000037585a064e5d172b--