Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1piK86-0002aJ-2q for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Mar 2023 19:09:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1piK83-0001S4-TC for pgsql-hackers@arkaria.postgresql.org; Fri, 31 Mar 2023 19:09:39 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1piK82-0001Rv-W6 for pgsql-hackers@lists.postgresql.org; Fri, 31 Mar 2023 19:09:39 +0000 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1piK7y-0003TP-Bw for pgsql-hackers@postgresql.org; Fri, 31 Mar 2023 19:09:37 +0000 Received: by mail-pl1-x629.google.com with SMTP id o11so22210540ple.1 for ; Fri, 31 Mar 2023 12:09:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680289773; x=1682881773; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=hoN69z4IlstrC4Ub2rbJZB1Di0ykvl6/PftWNcFuOLA=; b=ch9y/phELQvbOZG1HarmJTYk3cQ7I6iNvJ3A4J75kjSaDSPJeSgr/clvn1L6bJxnxt xue2s/ubcjnPm95KNls5F6Ydc3ILzK+VA8KnBsBImCThVx4PDGxf54YZTsv8z6Rr42m0 Xnnl/kW5p4YaMJWxTk2oZuq0dEpPgIoQToa2poQfwL+BmyikDf/t7wdSBr42CHERo41t Fl28MTf18YUYmEm0adCWCVpTi9MyLpMdzcbIXmZbCqlo3lgntP3yLFA7ZT1pS7JgeHvq sRHk5SyupDh+wNb8dJ1RtglkUP55gYi6IhJKPk0SCF7pw5wGhHSCdp7qSZyuan2fVQ7X S1qA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680289773; x=1682881773; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hoN69z4IlstrC4Ub2rbJZB1Di0ykvl6/PftWNcFuOLA=; b=fMZ2NfWUC4m5eOYCFr7VQkieDD3qaYjZynx6Mdf1ixiHXN508Icr1WWbAj9uFSk/JT a7u5vTF1po89FChETyT7syMi57CleIhbkSEv0OuVvzX92ZEKzyD5V8fUcWYPtLSmBaKX 0ihrgzASAks/Ay/leWHCoV2Ve6tCzen1htT5Redj1SxqU9Lv6/ctuUfgM5Z3hiWZIUGi ymtBd1rkQK6NMA4s8+OiL3LAlFEA8ye+FSQqLHPmwyR2yaR0PgPzVlK+nKX/tFVxRVR3 bHrm+0VRC+iPVTI9bx6g7VQCWSq+HyIzXX56WZ8mZXw/YDQi6ieJSHaFN4DfUS7b7Prw r7Nw== X-Gm-Message-State: AAQBX9czb49jgtTsdu0i5iAErMZ/NUEfQlV+L6lXw4NyDfWp+tZxZjD6 DWskb09lBLDKrGOqPAt25ogCYMIJ/nNFBF9Nno8= X-Google-Smtp-Source: AKy350YICXvOS+qdM2hQMt3ZVtmhzp8rQx6l7fXm9NbaRQGR2qq2YUOJvdy0Xm/HOE7ZqqO5Vq6dRYhz9przqgkubro= X-Received: by 2002:a17:902:b48e:b0:1a1:dfd6:b0f0 with SMTP id y14-20020a170902b48e00b001a1dfd6b0f0mr9878941plr.11.1680289773153; Fri, 31 Mar 2023 12:09:33 -0700 (PDT) MIME-Version: 1.0 References: <20230329.120908.350115307125624430.horikyota.ntt@gmail.com> <20230329.132155.629765142788133576.horikyota.ntt@gmail.com> <20230329.173456.1185961934810139447.horikyota.ntt@gmail.com> <935191FB-083B-4060-89FC-466F61FAA391@yesql.se> In-Reply-To: From: Melanie Plageman Date: Fri, 31 Mar 2023 15:09:21 -0400 Message-ID: Subject: Re: Should vacuum process config file reload more often To: Daniel Gustafsson Cc: Masahiko Sawada , Kyotaro Horiguchi , PostgreSQL Hackers , Andres Freund , amit.kapila16@gmail.com Content-Type: multipart/mixed; boundary="0000000000000e6f2805f836f3a5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000e6f2805f836f3a5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Mar 31, 2023 at 10:31=E2=80=AFAM Melanie Plageman wrote: > > On Thu, Mar 30, 2023 at 3:26=E2=80=AFPM Daniel Gustafsson wrote: > > > > > On 30 Mar 2023, at 04:57, Masahiko Sawada wro= te: > > > > > As another idea, why don't we use macros for that? For example, > > > suppose VacuumCostStatus is like: > > > > > > typedef enum VacuumCostStatus > > > { > > > VACUUM_COST_INACTIVE_LOCKED =3D 0, > > > VACUUM_COST_INACTIVE, > > > VACUUM_COST_ACTIVE, > > > } VacuumCostStatus; > > > VacuumCostStatus VacuumCost; > > > > > > non-vacuum code can use the following macros: > > > > > > #define VacuumCostActive() (VacuumCost =3D=3D VACUUM_COST_ACTIVE) > > > #define VacuumCostInactive() (VacuumCost <=3D VACUUM_COST_INACTIVE) /= / > > > or we can use !VacuumCostActive() instead. > > > > I'm in favor of something along these lines. A variable with a name th= at > > implies a boolean value (active/inactive) but actually contains a tri-v= alue is > > easily misunderstood. A VacuumCostState tri-value variable (or a bette= r name) > > with a set of convenient macros for extracting the boolean active/inact= ive that > > most of the code needs to be concerned with would more for more readabl= e code I > > think. > > The macros are very error-prone. I was just implementing this idea and > mistakenly tried to set the macro instead of the variable in multiple > places. Avoiding this involves another set of macros, and, in the end, I > think the complexity is much worse. Given the reviewers' uniform dislike > of VacuumCostInactive, I favor going back to two variables > (VacuumCostActive + VacuumFailsafeActive) and moving > LVRelState->failsafe_active to the global VacuumFailsafeActive. > > I will reimplement this in the next version. > > On the subject of globals, the next version will implement > Horiguchi-san's proposal to separate GUC variables from the globals used > in the code (quoted below). It should hopefully reduce the complexity of > this patchset. > > > Although it's somewhat unrelated to the goal of this patch, I think we > > should clean up the code tidy before proceeding. Shouldn't we separate > > the actual parameters from the GUC base variables, and sort out the > > all related variaghble? (something like the attached, on top of your > > patch.) Attached is v12. It has a number of updates, including a commit to separate VacuumCostLimit and VacuumCostDelay from the gucs vacuum_cost_limit and vacuum_cost_delay, and a return to VacuumCostActive. - Melanie --0000000000000e6f2805f836f3a5 Content-Type: text/x-patch; charset="US-ASCII"; name="v12-0001-Make-vacuum-s-failsafe_active-a-global.patch" Content-Disposition: attachment; filename="v12-0001-Make-vacuum-s-failsafe_active-a-global.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfwx2jdj0 RnJvbSAxMDZmNWRiNjU4NDZlMDQ5Nzk0NWI2MTcxYmRjMjlmNTcyN2FhZGMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDMxIE1hciAyMDIzIDEwOjM4OjM5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTIgMS80XSBNYWtlIHZhY3V1bSdzIGZhaWxzYWZlX2FjdGl2ZSBhIGdsb2JhbAoKV2hp bGUgdmFjdXVtaW5nIGEgdGFibGUgaW4gZmFpbHNhZmUgbW9kZSwgVmFjdXVtQ29zdEFjdGl2ZSBz aG91bGQgbm90IGJlCnJlLWVuYWJsZWQuIFRoaXMgY3VycmVudGx5IGlzbid0IGEgcHJvYmxlbSBi ZWNhdXNlIHZhY3V1bSBjb3N0CnBhcmFtZXRlcnMgYXJlIG9ubHkgcmVmcmVzaGVkIGluIGJldHdl ZW4gdmFjdXVtaW5nIHRhYmxlcyBhbmQgZmFpbHNhZmUKc3RhdHVzIGlzIHJlc2V0IGZvciBldmVy eSB0YWJsZS4gSW4gcHJlcGFyYXRpb24gZm9yIGFsbG93aW5nIHZhY3V1bSBjb3N0CnBhcmFtZXRl cnMgdG8gYmUgdXBkYXRlZCBtb3JlIGZyZXF1ZW50bHksIGVsZXZhdGUKTFZSZWxTdGF0ZS0+ZmFp bHNhZmVfYWN0aXZlIHRvIGEgZ2xvYmFsLCBWYWN1dW1GYWlsc2FmZUFjdGl2ZSwgd2hpY2gKd2ls bCBiZSBjaGVja2VkIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciBvciBub3QgdG8gcmUtZW5hYmxl IHZhY3V1bQpjb3N0LXJlbGF0ZWQgZGVsYXlzLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYyAgfCAxNiArKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5k cy92YWN1dW0uYyAgICAgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFy YWxsZWwuYyB8ICAxICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oICAgICAgICAgfCAg MSArCiA0IGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDhmMTRjZjg1ZjMuLmY0NzU1YmNj NGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTE1Myw4ICsxNTMsNiBA QCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAJYm9vbAkJYWdncmVzc2l2ZTsKIAkvKiBVc2Ug dmlzaWJpbGl0eSBtYXAgdG8gc2tpcD8gKGRpc2FibGVkIGJ5IERJU0FCTEVfUEFHRV9TS0lQUElO RykgKi8KIAlib29sCQlza2lwd2l0aHZtOwotCS8qIFdyYXBhcm91bmQgZmFpbHNhZmUgaGFzIGJl ZW4gdHJpZ2dlcmVkPyAqLwotCWJvb2wJCWZhaWxzYWZlX2FjdGl2ZTsKIAkvKiBDb25zaWRlciBp bmRleCB2YWN1dW1pbmcgYnlwYXNzIG9wdGltaXphdGlvbj8gKi8KIAlib29sCQljb25zaWRlcl9i eXBhc3Nfb3B0aW1pemF0aW9uOwogCkBAIC0zOTEsNyArMzg5LDcgQEAgaGVhcF92YWN1dW1fcmVs KFJlbGF0aW9uIHJlbCwgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJQXNzZXJ0KHBhcmFtcy0+aW5k ZXhfY2xlYW51cCAhPSBWQUNPUFRWQUxVRV9VTlNQRUNJRklFRCk7CiAJQXNzZXJ0KHBhcmFtcy0+ dHJ1bmNhdGUgIT0gVkFDT1BUVkFMVUVfVU5TUEVDSUZJRUQgJiYKIAkJICAgcGFyYW1zLT50cnVu Y2F0ZSAhPSBWQUNPUFRWQUxVRV9BVVRPKTsKLQl2YWNyZWwtPmZhaWxzYWZlX2FjdGl2ZSA9IGZh bHNlOworCVZhY3V1bUZhaWxzYWZlQWN0aXZlID0gZmFsc2U7CiAJdmFjcmVsLT5jb25zaWRlcl9i eXBhc3Nfb3B0aW1pemF0aW9uID0gdHJ1ZTsKIAl2YWNyZWwtPmRvX2luZGV4X3ZhY3V1bWluZyA9 IHRydWU7CiAJdmFjcmVsLT5kb19pbmRleF9jbGVhbnVwID0gdHJ1ZTsKQEAgLTcwOSw3ICs3MDcs NyBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywK IAkJCX0KIAkJCWVsc2UKIAkJCXsKLQkJCQlpZiAoIXZhY3JlbC0+ZmFpbHNhZmVfYWN0aXZlKQor CQkJCWlmICghVmFjdXVtRmFpbHNhZmVBY3RpdmUpCiAJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJmJ1ZiwgXygiaW5kZXggc2NhbiBieXBhc3NlZDogIikpOwogCQkJCWVsc2UKIAkJCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmLCBfKCJpbmRleCBzY2FuIGJ5cGFzc2VkIGJ5IGZhaWxz YWZlOiAiKSk7CkBAIC0yMjkzLDcgKzIyOTEsNyBAQCBsYXp5X3ZhY3V1bShMVlJlbFN0YXRlICp2 YWNyZWwpCiAJCSAqIHZhY3V1bWluZyBvciBoZWFwIHZhY3V1bWluZy4gIFRoaXMgVkFDVVVNIG9w ZXJhdGlvbiB3b24ndCBlbmQgdXAKIAkJICogYmFjayBoZXJlIGFnYWluLgogCQkgKi8KLQkJQXNz ZXJ0KHZhY3JlbC0+ZmFpbHNhZmVfYWN0aXZlKTsKKwkJQXNzZXJ0KFZhY3V1bUZhaWxzYWZlQWN0 aXZlKTsKIAl9CiAKIAkvKgpAQCAtMjM3NCw3ICsyMzcyLDcgQEAgbGF6eV92YWN1dW1fYWxsX2lu ZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCSAqLwogCUFzc2VydCh2YWNyZWwtPm51bV9pbmRl eF9zY2FucyA+IDAgfHwKIAkJICAgdmFjcmVsLT5kZWFkX2l0ZW1zLT5udW1faXRlbXMgPT0gdmFj cmVsLT5scGRlYWRfaXRlbXMpOwotCUFzc2VydChhbGxpbmRleGVzIHx8IHZhY3JlbC0+ZmFpbHNh ZmVfYWN0aXZlKTsKKwlBc3NlcnQoYWxsaW5kZXhlcyB8fCBWYWN1dW1GYWlsc2FmZUFjdGl2ZSk7 CiAKIAkvKgogCSAqIEluY3JlYXNlIGFuZCByZXBvcnQgdGhlIG51bWJlciBvZiBpbmRleCBzY2Fu cy4KQEAgLTI2MTYsMTIgKzI2MTQsMTIgQEAgc3RhdGljIGJvb2wKIGxhenlfY2hlY2tfd3JhcGFy b3VuZF9mYWlsc2FmZShMVlJlbFN0YXRlICp2YWNyZWwpCiB7CiAJLyogRG9uJ3Qgd2FybiBtb3Jl IHRoYW4gb25jZSBwZXIgVkFDVVVNICovCi0JaWYgKHZhY3JlbC0+ZmFpbHNhZmVfYWN0aXZlKQor CWlmIChWYWN1dW1GYWlsc2FmZUFjdGl2ZSkKIAkJcmV0dXJuIHRydWU7CiAKIAlpZiAodW5saWtl bHkodmFjdXVtX3hpZF9mYWlsc2FmZV9jaGVjaygmdmFjcmVsLT5jdXRvZmZzKSkpCiAJewotCQl2 YWNyZWwtPmZhaWxzYWZlX2FjdGl2ZSA9IHRydWU7CisJCVZhY3V1bUZhaWxzYWZlQWN0aXZlID0g dHJ1ZTsKIAogCQkvKiBEaXNhYmxlIGluZGV4IHZhY3V1bWluZywgaW5kZXggY2xlYW51cCwgYW5k IGhlYXAgcmVsIHRydW5jYXRpb24gKi8KIAkJdmFjcmVsLT5kb19pbmRleF92YWN1dW1pbmcgPSBm YWxzZTsKQEAgLTI4MTEsNyArMjgwOSw3IEBAIHNob3VsZF9hdHRlbXB0X3RydW5jYXRpb24oTFZS ZWxTdGF0ZSAqdmFjcmVsKQogewogCUJsb2NrTnVtYmVyIHBvc3NpYmx5X2ZyZWVhYmxlOwogCi0J aWYgKCF2YWNyZWwtPmRvX3JlbF90cnVuY2F0ZSB8fCB2YWNyZWwtPmZhaWxzYWZlX2FjdGl2ZSB8 fAorCWlmICghdmFjcmVsLT5kb19yZWxfdHJ1bmNhdGUgfHwgVmFjdXVtRmFpbHNhZmVBY3RpdmUg fHwKIAkJb2xkX3NuYXBzaG90X3RocmVzaG9sZCA+PSAwKQogCQlyZXR1cm4gZmFsc2U7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFjdXVtLmMKaW5kZXggYzU0MzYwYTZhMC4uMGUxZGJlZWM3MCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtLmMKQEAgLTg1LDYgKzg1LDcgQEAgc3RhdGljIEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHZh Y19zdHJhdGVneTsKIHBnX2F0b21pY191aW50MzIgKlZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0g TlVMTDsKIHBnX2F0b21pY191aW50MzIgKlZhY3V1bUFjdGl2ZU5Xb3JrZXJzID0gTlVMTDsKIGlu dAkJCVZhY3V1bUNvc3RCYWxhbmNlTG9jYWwgPSAwOworYm9vbAkJVmFjdXVtRmFpbHNhZmVBY3Rp dmUgPSBmYWxzZTsKIAogLyogbm9uLWV4cG9ydCBmdW5jdGlvbiBwcm90b3R5cGVzICovCiBzdGF0 aWMgTGlzdCAqZXhwYW5kX3ZhY3V1bV9yZWwoVmFjdXVtUmVsYXRpb24gKnZyZWwsIGludCBvcHRp b25zKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IGJjZDQwYzgwYTEu LjU3MTg4NTAwZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFs bGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtOTkw LDYgKzk5MCw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90 b2MgKnRvYykKIAkJCQkJCQkJCQkJCSBmYWxzZSk7CiAKIAkvKiBTZXQgY29zdC1iYXNlZCB2YWN1 dW0gZGVsYXkgKi8KKwlWYWN1dW1GYWlsc2FmZUFjdGl2ZSA9IGZhbHNlOwogCVZhY3V1bUNvc3RB Y3RpdmUgPSAoVmFjdXVtQ29zdERlbGF5ID4gMCk7CiAJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOwog CVZhY3V1bVBhZ2VIaXQgPSAwOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCBiZGZkOTZjZmVjLi43 YjhlZTIxNzg4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaApAQCAtMzA2LDYgKzMwNiw3IEBAIGV4dGVy biBQR0RMTElNUE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZTsK IGV4dGVybiBQR0RMTElNUE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1BY3RpdmVOV29ya2Vy czsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgVmFjdXVtQ29zdEJhbGFuY2VMb2NhbDsKIAorZXh0 ZXJuIGJvb2wgVmFjdXVtRmFpbHNhZmVBY3RpdmU7CiAKIC8qIGluIGNvbW1hbmRzL3ZhY3V1bS5j ICovCiBleHRlcm4gdm9pZCBFeGVjVmFjdXVtKFBhcnNlU3RhdGUgKnBzdGF0ZSwgVmFjdXVtU3Rt dCAqdmFjc3RtdCwgYm9vbCBpc1RvcExldmVsKTsKLS0gCjIuMzcuMgoK --0000000000000e6f2805f836f3a5 Content-Type: text/x-patch; charset="US-ASCII"; name="v12-0003-VACUUM-reloads-config-file-more-often.patch" Content-Disposition: attachment; filename="v12-0003-VACUUM-reloads-config-file-more-often.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfwx2jdn2 RnJvbSA3OTU3NzZhZjk3ZDVmM2FiMDVlNDhjN2I3ODM2N2JmNjI5MGU3YWQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDI3IE1hciAyMDIzIDEzOjMzOjE5IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTIgMy80XSBWQUNVVU0gcmVsb2FkcyBjb25maWcgZmlsZSBtb3JlIG9mdGVuCgpQcmV2 aW91c2x5LCBWQUNVVU0gd291bGQgbm90IHJlbG9hZCB0aGUgY29uZmlndXJhdGlvbiBmaWxlLCBz byBjaGFuZ2VzCnRvIGNvc3QtYmFzZWQgZGVsYXkgcGFyYW1ldGVycyBjb3VsZCBvbmx5IHRha2Ug ZWZmZWN0IG9uIHRoZSBuZXh0Cmludm9jYXRpb24gb2YgVkFDVVVNLgoKTm93LCBjaGVjayBpZiBh IHJlbG9hZCBpcyBwZW5kaW5nIHJvdWdobHkgb25jZSBwZXIgYmxvY2ssIHdoZW4gY2hlY2tpbmcK aWYgd2UgbmVlZCB0byBkZWxheS4KCk5vdGUgdGhhdCBhdXRvdmFjdXVtIGlzIHVuYWZmZWN0ZWQg YnkgdGhpcyBjaGFuZ2UuIEF1dG92YWN1dW0gd29ya2VycwpvdmVyd3JpdGUgdGhlIHZhbHVlIG9m IFZhY3V1bUNvc3RMaW1pdCBhbmQgVmFjdXVtQ29zdERlbGF5IHdpdGggdGhlaXIKb3duIFdvcmtl ckluZm8tPndpX2Nvc3RfbGltaXQgYW5kIHdpX2Nvc3RfZGVsYXkgaW5zdGVhZCBvZiB1c2luZwpw b3RlbnRpYWxseSByZWZyZXNoZWQgdmFsdWVzIG9mIGF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGlt aXQgYW5kCmF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkuIExvY2tpbmcgY29uc2lkZXJhdGlv bnMgYW5kIG5lZWRlZCB1cGRhdGVzCnRvIHRoZSB3b3JrZXIgYmFsYW5jaW5nIGxvZ2ljIG1ha2Ug ZW5hYmxpbmcgdGhpcyBmZWF0dXJlIGZvciBhdXRvdmFjdXVtCndvcnRoeSBvZiBhbiBpbmRlcGVu ZGVudCBjb21taXQuCgpSZXZpZXdlZC1ieTogTWFzYWhpa28gU2F3YWRhIDxzYXdhZGEubXNoa0Bn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBLeW90YXJvIEhvcmlndWNoaSA8aG9yaWt5b3RhLm50dEBn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgR3VzdGFmc3NvbiA8ZGFuaWVsQHllc3FsLnNl PgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQv Q0FBS1J1X1puZ3pxbkVPRGM3TG1TMU5IMDRLdDZZOWh1U2p6NXBwNyUyQkRYaHJqREEwZ3clNDBt YWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jICAgICAgICAg fCA0NiArKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMgfCAgMyArLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVt LmMgICB8IDE4ICsrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyks IDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKaW5kZXggMmMzYWZkNGZmNi4uYTI4 OGM0MDJhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRl ICJwZ3N0YXQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL2F1dG92YWN1dW0uaCIKICNpbmNsdWRl ICJwb3N0bWFzdGVyL2Jnd29ya2VyX2ludGVybmFscy5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIv aW50ZXJydXB0LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRlICJzdG9y YWdlL2xtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Btc2lnbmFsLmgiCkBAIC03OCw2ICs3OSw3 IEBAIGludAkJCXZhY3V1bV9jb3N0X2xpbWl0OwogLyogQSBmZXcgdmFyaWFibGVzIHRoYXQgZG9u J3Qgc2VlbSB3b3J0aCBwYXNzaW5nIGFyb3VuZCBhcyBwYXJhbWV0ZXJzICovCiBzdGF0aWMgTWVt b3J5Q29udGV4dCB2YWNfY29udGV4dCA9IE5VTEw7CiBzdGF0aWMgQnVmZmVyQWNjZXNzU3RyYXRl Z3kgdmFjX3N0cmF0ZWd5Oworc3RhdGljIGJvb2wgYW5hbHl6ZV9pbl9vdXRlcl94YWN0ID0gZmFs c2U7CiAKIC8qCiAgKiBWYXJpYWJsZXMgZm9yIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5LiBUaGUg ZGVmYXVsdHMgZGlmZmVyIGJldHdlZW4KQEAgLTMyNSw4ICszMjcsNyBAQCB2YWN1dW0oTGlzdCAq cmVsYXRpb25zLCBWYWN1dW1QYXJhbXMgKnBhcmFtcywKIAlzdGF0aWMgYm9vbCBpbl92YWN1dW0g PSBmYWxzZTsKIAogCWNvbnN0IGNoYXIgKnN0bXR0eXBlOwotCXZvbGF0aWxlIGJvb2wgaW5fb3V0 ZXJfeGFjdCwKLQkJCQl1c2Vfb3duX3hhY3RzOworCXZvbGF0aWxlIGJvb2wgdXNlX293bl94YWN0 czsKIAogCUFzc2VydChwYXJhbXMgIT0gTlVMTCk7CiAKQEAgLTM0MywxMCArMzQ0LDEwIEBAIHZh Y3V1bShMaXN0ICpyZWxhdGlvbnMsIFZhY3V1bVBhcmFtcyAqcGFyYW1zLAogCWlmIChwYXJhbXMt Pm9wdGlvbnMgJiBWQUNPUFRfVkFDVVVNKQogCXsKIAkJUHJldmVudEluVHJhbnNhY3Rpb25CbG9j ayhpc1RvcExldmVsLCBzdG10dHlwZSk7Ci0JCWluX291dGVyX3hhY3QgPSBmYWxzZTsKKwkJYW5h bHl6ZV9pbl9vdXRlcl94YWN0ID0gZmFsc2U7CiAJfQogCWVsc2UKLQkJaW5fb3V0ZXJfeGFjdCA9 IElzSW5UcmFuc2FjdGlvbkJsb2NrKGlzVG9wTGV2ZWwpOworCQlhbmFseXplX2luX291dGVyX3hh Y3QgPSBJc0luVHJhbnNhY3Rpb25CbG9jayhpc1RvcExldmVsKTsKIAogCS8qCiAJICogRHVlIHRv IHN0YXRpYyB2YXJpYWJsZXMgdmFjX2NvbnRleHQsIGFubF9jb250ZXh0IGFuZCB2YWNfc3RyYXRl Z3ksCkBAIC00NjgsNyArNDY5LDcgQEAgdmFjdXVtKExpc3QgKnJlbGF0aW9ucywgVmFjdXVtUGFy YW1zICpwYXJhbXMsCiAJCUFzc2VydChwYXJhbXMtPm9wdGlvbnMgJiBWQUNPUFRfQU5BTFlaRSk7 CiAJCWlmIChJc0F1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkpCiAJCQl1c2Vfb3duX3hhY3RzID0g dHJ1ZTsKLQkJZWxzZSBpZiAoaW5fb3V0ZXJfeGFjdCkKKwkJZWxzZSBpZiAoYW5hbHl6ZV9pbl9v dXRlcl94YWN0KQogCQkJdXNlX293bl94YWN0cyA9IGZhbHNlOwogCQllbHNlIGlmIChsaXN0X2xl bmd0aChyZWxhdGlvbnMpID4gMSkKIAkJCXVzZV9vd25feGFjdHMgPSB0cnVlOwpAQCAtNDg2LDcg KzQ4Nyw3IEBAIHZhY3V1bShMaXN0ICpyZWxhdGlvbnMsIFZhY3V1bVBhcmFtcyAqcGFyYW1zLAog CSAqLwogCWlmICh1c2Vfb3duX3hhY3RzKQogCXsKLQkJQXNzZXJ0KCFpbl9vdXRlcl94YWN0KTsK KwkJQXNzZXJ0KCFhbmFseXplX2luX291dGVyX3hhY3QpOwogCiAJCS8qIEFjdGl2ZVNuYXBzaG90 IGlzIG5vdCBzZXQgYnkgYXV0b3ZhY3V1bSAqLwogCQlpZiAoQWN0aXZlU25hcHNob3RTZXQoKSkK QEAgLTUwMSw5ICs1MDIsOSBAQCB2YWN1dW0oTGlzdCAqcmVsYXRpb25zLCBWYWN1dW1QYXJhbXMg KnBhcmFtcywKIAl7CiAJCUxpc3RDZWxsICAgKmN1cjsKIAotCQlWYWN1dW1VcGRhdGVDb3N0cygp OwogCQlpbl92YWN1dW0gPSB0cnVlOwotCQlWYWN1dW1Db3N0QWN0aXZlID0gKFZhY3V1bUNvc3RE ZWxheSA+IDApOworCQlWYWN1dW1GYWlsc2FmZUFjdGl2ZSA9IGZhbHNlOworCQlWYWN1dW1VcGRh dGVDb3N0cygpOwogCQlWYWN1dW1Db3N0QmFsYW5jZSA9IDA7CiAJCVZhY3V1bVBhZ2VIaXQgPSAw OwogCQlWYWN1dW1QYWdlTWlzcyA9IDA7CkBAIC01MzksNyArNTQwLDcgQEAgdmFjdXVtKExpc3Qg KnJlbGF0aW9ucywgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJCQkJfQogCiAJCQkJYW5hbHl6ZV9y ZWwodnJlbC0+b2lkLCB2cmVsLT5yZWxhdGlvbiwgcGFyYW1zLAotCQkJCQkJCXZyZWwtPnZhX2Nv bHMsIGluX291dGVyX3hhY3QsIHZhY19zdHJhdGVneSk7CisJCQkJCQkJdnJlbC0+dmFfY29scywg YW5hbHl6ZV9pbl9vdXRlcl94YWN0LCB2YWNfc3RyYXRlZ3kpOwogCiAJCQkJaWYgKHVzZV9vd25f eGFjdHMpCiAJCQkJewpAQCAtNTYyLDYgKzU2Myw5IEBAIHZhY3V1bShMaXN0ICpyZWxhdGlvbnMs IFZhY3V1bVBhcmFtcyAqcGFyYW1zLAogCXsKIAkJaW5fdmFjdXVtID0gZmFsc2U7CiAJCVZhY3V1 bUNvc3RBY3RpdmUgPSBmYWxzZTsKKwkJVmFjdXVtRmFpbHNhZmVBY3RpdmUgPSBmYWxzZTsKKwkJ VmFjdXVtQ29zdEJhbGFuY2UgPSAwOworCQlhbmFseXplX2luX291dGVyX3hhY3QgPSBmYWxzZTsK IAl9CiAJUEdfRU5EX1RSWSgpOwogCkBAIC0yMjI3LDcgKzIyMzEsMjkgQEAgdmFjdXVtX2RlbGF5 X3BvaW50KHZvaWQpCiAJLyogQWx3YXlzIGNoZWNrIGZvciBpbnRlcnJ1cHRzICovCiAJQ0hFQ0tf Rk9SX0lOVEVSUlVQVFMoKTsKIAotCWlmICghVmFjdXVtQ29zdEFjdGl2ZSB8fCBJbnRlcnJ1cHRQ ZW5kaW5nKQorCWlmIChJbnRlcnJ1cHRQZW5kaW5nIHx8CisJCSghVmFjdXVtQ29zdEFjdGl2ZSAm JiAhQ29uZmlnUmVsb2FkUGVuZGluZykpCisJCXJldHVybjsKKworCS8qCisJICogUmVsb2FkIHRo ZSBjb25maWd1cmF0aW9uIGZpbGUgaWYgcmVxdWVzdGVkLiBUaGlzIGFsbG93cyBjaGFuZ2VzIHRv CisJICogdmFjdXVtX2Nvc3RfbGltaXQgYW5kIHZhY3V1bV9jb3N0X2RlbGF5IHRvIHRha2UgZWZm ZWN0IHdoaWxlIGEgdGFibGUgaXMKKwkgKiBiZWluZyB2YWN1dW1lZCBvciBhbmFseXplZC4gQW5h bHl6ZSBzaG91bGQgbm90IHJlbG9hZCBjb25maWd1cmF0aW9uCisJICogZmlsZSBpZiBpdCBpcyBp biBhbiBvdXRlciB0cmFuc2FjdGlvbiwgYXMgd2UgY3VycmVudGx5IG9ubHkgYWxsb3cKKwkgKiBj b25maWd1cmF0aW9uIHJlbG9hZCB3aGVuIGluIHRvcC1sZXZlbCBzdGF0ZW1lbnRzLgorCSAqLwor CWlmIChDb25maWdSZWxvYWRQZW5kaW5nICYmICFhbmFseXplX2luX291dGVyX3hhY3QpCisJewor CQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CisJCVByb2Nlc3NDb25maWdGaWxlKFBHQ19T SUdIVVApOworCQlWYWN1dW1VcGRhdGVDb3N0cygpOworCX0KKworCS8qCisJICogSWYgd2UgZGlz YWJsZWQgY29zdC1iYXNlZCBkZWxheXMgYWZ0ZXIgcmVsb2FkaW5nIHRoZSBjb25maWcgZmlsZSwK KwkgKiByZXR1cm4uCisJICovCisJaWYgKCFWYWN1dW1Db3N0QWN0aXZlKQogCQlyZXR1cm47CiAK IAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggNGMzYzkzYjJmZC4u MzY5NjMwOTBlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxs ZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC05OTEs OSArOTkxLDggQEAgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3Rv YyAqdG9jKQogCiAJLyogU2V0IGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5ICovCiAJVmFjdXVtRmFp bHNhZmVBY3RpdmUgPSBmYWxzZTsKLQlWYWN1dW1VcGRhdGVDb3N0cygpOwotCVZhY3V1bUNvc3RB Y3RpdmUgPSAoVmFjdXVtQ29zdERlbGF5ID4gMCk7CiAJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOwor CVZhY3V1bVVwZGF0ZUNvc3RzKCk7CiAJVmFjdXVtUGFnZUhpdCA9IDA7CiAJVmFjdXVtUGFnZU1p c3MgPSAwOwogCVZhY3V1bVBhZ2VEaXJ0eSA9IDA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1 bS5jCmluZGV4IGFjNTRlZDQ1NDYuLmU3ODMzY2Q0OWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0 b3ZhY3V1bS5jCkBAIC0xNzk3LDYgKzE3OTcsMjQgQEAgVmFjdXVtVXBkYXRlQ29zdHModm9pZCkK IAkJVmFjdXVtQ29zdExpbWl0ID0gdmFjdXVtX2Nvc3RfbGltaXQ7CiAJCVZhY3V1bUNvc3REZWxh eSA9IHZhY3V1bV9jb3N0X2RlbGF5OwogCX0KKworCS8qCisJKiBJZiBjb25maWd1cmF0aW9uIGNo YW5nZXMgYXJlIGFsbG93ZWQgdG8gaW1wYWN0IFZhY3V1bUNvc3RBY3RpdmUsCisJKiBtYWtlIHN1 cmUgaXQgaXMgdXBkYXRlZC4KKwkqLworCWlmIChWYWN1dW1GYWlsc2FmZUFjdGl2ZSkKKwl7CisJ CUFzc2VydCghVmFjdXVtQ29zdEFjdGl2ZSk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoVmFjdXVt Q29zdERlbGF5ID4gMCkKKwkJVmFjdXVtQ29zdEFjdGl2ZSA9IHRydWU7CisJZWxzZQorCXsKKwkJ VmFjdXVtQ29zdEFjdGl2ZSA9IGZhbHNlOworCQlWYWN1dW1Db3N0QmFsYW5jZSA9IDA7CisJfQog fQogCiAKLS0gCjIuMzcuMgoK --0000000000000e6f2805f836f3a5 Content-Type: text/x-patch; charset="US-ASCII"; name="v12-0004-Autovacuum-refreshes-cost-based-delay-params-mor.patch" Content-Disposition: attachment; filename="v12-0004-Autovacuum-refreshes-cost-based-delay-params-mor.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfwx2jdo3 RnJvbSA0YzFmYmIyN2UxOGE4ZTE2YjlhMWE3MGUxNzQ1MmE5Yzk4YzAwMjE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI1IE1hciAyMDIzIDE0OjE0OjU1IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTIgNC80XSBBdXRvdmFjdXVtIHJlZnJlc2hlcyBjb3N0LWJhc2VkIGRlbGF5IHBhcmFt cyBtb3JlCiBvZnRlbgoKVGhlIHByZXZpb3VzIGNvbW1pdCBhbGxvd2VkIFZBQ1VVTSB0byByZWxv YWQgdGhlIGNvbmZpZyBmaWxlIG1vcmUgb2Z0ZW4Kc28gdGhhdCBjb3N0LWJhc2VkIGRlbGF5IHBh cmFtZXRlcnMgY291bGQgdGFrZSBlZmZlY3Qgd2hpbGUgVkFDVVVNaW5nIGEKcmVsYXRpb24uIEF1 dG92YWN1dW0sIGhvd2V2ZXIgZGlkIG5vdCBiZW5lZml0IGZyb20gdGhpcyBjaGFuZ2UuCgpJbiBv cmRlciBmb3IgYXV0b3ZhY3V1bSB3b3JrZXJzIHRvIHNhZmVseSB1cGRhdGUgdGhlaXIgb3duIGNv c3QgZGVsYXkKYW5kIGNvc3QgbGltaXQgcGFyYW1ldGVycyB3aXRob3V0IGltcGFjdGluZyBwZXJm b3JtYW5jZSwgd2UgaGFkIHRvCnJldGhpbmsgd2hlbiBhbmQgaG93IHRoZXNlIHZhbHVlcyB3ZXJl IGFjY2Vzc2VkLgoKUHJldmlvdXNseSwgYW4gYXV0b3ZhY3V1bSB3b3JrZXIncyB3aV9jb3N0X2xp bWl0IHdhcyBzZXQgb25seSBhdCB0aGUKYmVnaW5uaW5nIG9mIHZhY3V1bWluZyBhIHRhYmxlLCBh ZnRlciByZWxvYWRpbmcgdGhlIGNvbmZpZyBmaWxlLgpUaGVyZWZvcmUsIGF0IHRoZSB0aW1lIHRo YXQgYXV0b3ZhY19iYWxhbmNlX2Nvc3QoKSBpcyBjYWxsZWQsIHdvcmtlcnMKdmFjdXVtaW5nIHRh YmxlcyB3aXRoIG5vIHRhYmxlIG9wdGlvbnMgY291bGQgc3RpbGwgaGF2ZSBkaWZmZXJlbnQgdmFs dWVzCmZvciB0aGVpciB3aV9jb3N0X2xpbWl0X2Jhc2UgYW5kIHdpX2Nvc3RfZGVsYXkuCgpOb3cg dGhhdCB0aGUgY29zdCBwYXJhbWV0ZXJzIGNhbiBiZSB1cGRhdGVkIHdoaWxlIHZhY3V1bWluZyBh IHRhYmxlLAp3b3JrZXJzIHdpbGwgKHdpdGhpbiBzb21lIG1hcmdpbiBvZiBlcnJvcikgaGF2ZSBu byByZWFzb24gdG8gaGF2ZQpkaWZmZXJlbnQgdmFsdWVzIGZvciBjb3N0IGxpbWl0IGFuZCBjb3N0 IGRlbGF5IChpbiB0aGUgYWJzZW5jZSBvZiB0YWJsZQpvcHRpb25zKS4gVGhpcyByZW1vdmVzIHRo ZSByYXRpb25hbGUgZm9yIGtlZXBpbmcgY29zdCBsaW1pdCBhbmQgY29zdApkZWxheSBpbiBzaGFy ZWQgbWVtb3J5LiBCYWxhbmNpbmcgdGhlIGNvc3QgbGltaXQgcmVxdWlyZXMgb25seSB0aGUKbnVt YmVyIG9mIGFjdGl2ZSBhdXRvdmFjdXVtIHdvcmtlcnMgdmFjdXVtaW5nIGEgdGFibGUgd2l0aCBu byBjb3N0LWJhc2VkCnRhYmxlIG9wdGlvbnMuCgpSZXZpZXdlZC1ieTogTWFzYWhpa28gU2F3YWRh IDxzYXdhZGEubXNoa0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBLeW90YXJvIEhvcmlndWNoaSA8 aG9yaWt5b3RhLm50dEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgR3VzdGFmc3NvbiA8 ZGFuaWVsQHllc3FsLnNlPgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9t ZXNzYWdlLWlkL2ZsYXQvQ0FBS1J1X1puZ3pxbkVPRGM3TG1TMU5IMDRLdDZZOWh1U2p6NXBwNyUy QkRYaHJqREEwZ3clNDBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bS5jICAgICAgIHwgIDE3ICstCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0u YyB8IDIzNSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9jb21tYW5k cy92YWN1dW0uaCAgICAgICB8ICAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25z KCspLCAxMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwppbmRleCBhMjg4YzQwMmE5 Li43NzRjYzVlMmI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwpAQCAtMjIzNywxMCArMjIzNywxMCBA QCB2YWN1dW1fZGVsYXlfcG9pbnQodm9pZCkKIAogCS8qCiAJICogUmVsb2FkIHRoZSBjb25maWd1 cmF0aW9uIGZpbGUgaWYgcmVxdWVzdGVkLiBUaGlzIGFsbG93cyBjaGFuZ2VzIHRvCi0JICogdmFj dXVtX2Nvc3RfbGltaXQgYW5kIHZhY3V1bV9jb3N0X2RlbGF5IHRvIHRha2UgZWZmZWN0IHdoaWxl IGEgdGFibGUgaXMKLQkgKiBiZWluZyB2YWN1dW1lZCBvciBhbmFseXplZC4gQW5hbHl6ZSBzaG91 bGQgbm90IHJlbG9hZCBjb25maWd1cmF0aW9uCi0JICogZmlsZSBpZiBpdCBpcyBpbiBhbiBvdXRl ciB0cmFuc2FjdGlvbiwgYXMgd2UgY3VycmVudGx5IG9ubHkgYWxsb3cKLQkgKiBjb25maWd1cmF0 aW9uIHJlbG9hZCB3aGVuIGluIHRvcC1sZXZlbCBzdGF0ZW1lbnRzLgorCSAqIFthdXRvdmFjdXVt X112YWN1dW1fY29zdF9saW1pdCBhbmQgW2F1dG92YWN1dW1fXXZhY3V1bV9jb3N0X2RlbGF5IHRv CisJICogdGFrZSBlZmZlY3Qgd2hpbGUgYSB0YWJsZSBpcyBiZWluZyB2YWN1dW1lZCBvciBhbmFs eXplZC4gQW5hbHl6ZSBzaG91bGQKKwkgKiBub3QgcmVsb2FkIGNvbmZpZ3VyYXRpb24gZmlsZSBp ZiBpdCBpcyBpbiBhbiBvdXRlciB0cmFuc2FjdGlvbiwgYXMgd2UKKwkgKiBjdXJyZW50bHkgb25s eSBhbGxvdyBjb25maWd1cmF0aW9uIHJlbG9hZCB3aGVuIGluIHRvcC1sZXZlbCBzdGF0ZW1lbnRz LgogCSAqLwogCWlmIChDb25maWdSZWxvYWRQZW5kaW5nICYmICFhbmFseXplX2luX291dGVyX3hh Y3QpCiAJewpAQCAtMjI4Niw3ICsyMjg2LDE0IEBAIHZhY3V1bV9kZWxheV9wb2ludCh2b2lkKQog CiAJCVZhY3V1bUNvc3RCYWxhbmNlID0gMDsKIAotCQlWYWN1dW1VcGRhdGVDb3N0cygpOworCQkv KgorCQkgKiBCYWxhbmNlIGFuZCB1cGRhdGUgbGltaXQgdmFsdWVzIGZvciBhdXRvdmFjdXVtIHdv cmtlcnMuIFdlIG11c3QKKwkJICogYWx3YXlzIGRvIHRoaXMgaW4gY2FzZSB0aGUgYXV0b3ZhY3V1 bSBsYXVuY2hlciBvciBhbm90aGVyCisJCSAqIGF1dG92YWN1dW0gd29ya2VyIGhhcyByZWNhbGN1 bGF0ZWQgdGhlIG51bWJlciBvZiB3b3JrZXJzIGFjcm9zcworCQkgKiB3aGljaCB3ZSBtdXN0IGJh bGFuY2UgdGhlIGxpbWl0LiBUaGlzIGlzIGRvbmUgYnkgdGhlIGxhdW5jaGVyIHdoZW4KKwkJICog bGF1bmNoaW5nIGEgbmV3IHdvcmtlciBhbmQgYnkgd29ya2VycyBiZWZvcmUgdmFjdXVtaW5nIGVh Y2ggdGFibGUuCisJCSAqLworCQlBdXRvVmFjdXVtVXBkYXRlTGltaXQoKTsKIAogCQkvKiBNaWdo dCBoYXZlIGdvdHRlbiBhbiBpbnRlcnJ1cHQgd2hpbGUgc2xlZXBpbmcgKi8KIAkJQ0hFQ0tfRk9S X0lOVEVSUlVQVFMoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3Zh Y3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKaW5kZXggZTc4MzNj ZDQ5ZS4uMWI1Yjc0OTM3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRv dmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTEz OSw2ICsxMzksOSBAQCBpbnQJCQlMb2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gPSA2MDAwMDA7 CiBzdGF0aWMgYm9vbCBhbV9hdXRvdmFjdXVtX2xhdW5jaGVyID0gZmFsc2U7CiBzdGF0aWMgYm9v bCBhbV9hdXRvdmFjdXVtX3dvcmtlciA9IGZhbHNlOwogCitzdGF0aWMgZG91YmxlIGF2X3JlbG9w dF9jb3N0X2RlbGF5ID0gLTE7CitzdGF0aWMgaW50CWF2X3JlbG9wdF9jb3N0X2xpbWl0ID0gMDsK KwogLyogRmxhZ3Mgc2V0IGJ5IHNpZ25hbCBoYW5kbGVycyAqLwogc3RhdGljIHZvbGF0aWxlIHNp Z19hdG9taWNfdCBnb3RfU0lHVVNSMiA9IGZhbHNlOwogCkBAIC0xODksOCArMTkyLDggQEAgdHlw ZWRlZiBzdHJ1Y3QgYXV0b3ZhY190YWJsZQogewogCU9pZAkJCWF0X3JlbGlkOwogCVZhY3V1bVBh cmFtcyBhdF9wYXJhbXM7Ci0JZG91YmxlCQlhdF92YWN1dW1fY29zdF9kZWxheTsKLQlpbnQJCQlh dF92YWN1dW1fY29zdF9saW1pdDsKKwlkb3VibGUJCWF0X3JlbG9wdF92YWNfY29zdF9kZWxheTsK KwlpbnQJCQlhdF9yZWxvcHRfdmFjX2Nvc3RfbGltaXQ7CiAJYm9vbAkJYXRfZG9iYWxhbmNlOwog CWJvb2wJCWF0X3NoYXJlZHJlbDsKIAljaGFyCSAgICphdF9yZWxuYW1lOwpAQCAtMjA5LDcgKzIx Miw3IEBAIHR5cGVkZWYgc3RydWN0IGF1dG92YWNfdGFibGUKICAqIHdpX3NoYXJlZHJlbCBmbGFn IGluZGljYXRpbmcgd2hldGhlciB0YWJsZSBpcyBtYXJrZWQgcmVsaXNzaGFyZWQKICAqIHdpX3By b2MJCXBvaW50ZXIgdG8gUEdQUk9DIG9mIHRoZSBydW5uaW5nIHdvcmtlciwgTlVMTCBpZiBub3Qg c3RhcnRlZAogICogd2lfbGF1bmNodGltZSBUaW1lIGF0IHdoaWNoIHRoaXMgd29ya2VyIHdhcyBs YXVuY2hlZAotICogd2lfY29zdF8qCVZhY3V1bSBjb3N0LWJhc2VkIGRlbGF5IHBhcmFtZXRlcnMg Y3VycmVudCBpbiB0aGlzIHdvcmtlcgorICogd2lfZG9iYWxhbmNlIFdoZXRoZXIgdGhpcyB3b3Jr ZXIgc2hvdWxkIGJlIGluY2x1ZGVkIGluIGJhbGFuY2UgY2FsY3VsYXRpb25zCiAgKgogICogQWxs IGZpZWxkcyBhcmUgcHJvdGVjdGVkIGJ5IEF1dG92YWN1dW1Mb2NrLCBleGNlcHQgZm9yIHdpX3Rh Ymxlb2lkIGFuZAogICogd2lfc2hhcmVkcmVsIHdoaWNoIGFyZSBwcm90ZWN0ZWQgYnkgQXV0b3Zh Y3V1bVNjaGVkdWxlTG9jayAobm90ZSB0aGVzZQpAQCAtMjIzLDExICsyMjYsOCBAQCB0eXBlZGVm IHN0cnVjdCBXb3JrZXJJbmZvRGF0YQogCU9pZAkJCXdpX3RhYmxlb2lkOwogCVBHUFJPQwkgICAq d2lfcHJvYzsKIAlUaW1lc3RhbXBUeiB3aV9sYXVuY2h0aW1lOwotCWJvb2wJCXdpX2RvYmFsYW5j ZTsKKwlwZ19hdG9taWNfZmxhZyB3aV9kb2JhbGFuY2U7CiAJYm9vbAkJd2lfc2hhcmVkcmVsOwot CWRvdWJsZQkJd2lfY29zdF9kZWxheTsKLQlpbnQJCQl3aV9jb3N0X2xpbWl0OwotCWludAkJCXdp X2Nvc3RfbGltaXRfYmFzZTsKIH0gV29ya2VySW5mb0RhdGE7CiAKIHR5cGVkZWYgc3RydWN0IFdv cmtlckluZm9EYXRhICpXb3JrZXJJbmZvOwpAQCAtMjczLDYgKzI3Myw4IEBAIHR5cGVkZWYgc3Ry dWN0IEF1dG9WYWN1dW1Xb3JrSXRlbQogICogYXZfc3RhcnRpbmdXb3JrZXIgcG9pbnRlciB0byBX b3JrZXJJbmZvIGN1cnJlbnRseSBiZWluZyBzdGFydGVkIChjbGVhcmVkIGJ5CiAgKgkJCQkJdGhl IHdvcmtlciBpdHNlbGYgYXMgc29vbiBhcyBpdCdzIHVwIGFuZCBydW5uaW5nKQogICogYXZfd29y a0l0ZW1zCQl3b3JrIGl0ZW0gYXJyYXkKKyAqIGF2X253b3JrZXJzRm9yQmFsYW5jZSB0aGUgbnVt YmVyIG9mIGF1dG92YWN1dW0gd29ya2VycyB0byB1c2Ugd2hlbgorICogCQkJCQljYWxjdWxhdGlu ZyB0aGUgcGVyIHdvcmtlciBjb3N0IGxpbWl0CiAgKgogICogVGhpcyBzdHJ1Y3QgaXMgcHJvdGVj dGVkIGJ5IEF1dG92YWN1dW1Mb2NrLCBleGNlcHQgZm9yIGF2X3NpZ25hbCBhbmQgcGFydHMKICAq IG9mIHRoZSB3b3JrZXIgbGlzdCAoc2VlIGFib3ZlKS4KQEAgLTI4Niw2ICsyODgsNyBAQCB0eXBl ZGVmIHN0cnVjdAogCWRsaXN0X2hlYWQJYXZfcnVubmluZ1dvcmtlcnM7CiAJV29ya2VySW5mbwlh dl9zdGFydGluZ1dvcmtlcjsKIAlBdXRvVmFjdXVtV29ya0l0ZW0gYXZfd29ya0l0ZW1zW05VTV9X T1JLSVRFTVNdOworCXBnX2F0b21pY191aW50MzIgYXZfbndvcmtlcnNGb3JCYWxhbmNlOwogfSBB dXRvVmFjdXVtU2htZW1TdHJ1Y3Q7CiAKIHN0YXRpYyBBdXRvVmFjdXVtU2htZW1TdHJ1Y3QgKkF1 dG9WYWN1dW1TaG1lbTsKQEAgLTMxOSw3ICszMjIsNyBAQCBzdGF0aWMgdm9pZCBsYXVuY2hfd29y a2VyKFRpbWVzdGFtcFR6IG5vdyk7CiBzdGF0aWMgTGlzdCAqZ2V0X2RhdGFiYXNlX2xpc3Qodm9p ZCk7CiBzdGF0aWMgdm9pZCByZWJ1aWxkX2RhdGFiYXNlX2xpc3QoT2lkIG5ld2RiKTsKIHN0YXRp YyBpbnQJZGJfY29tcGFyYXRvcihjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKTsKLXN0YXRp YyB2b2lkIGF1dG92YWNfYmFsYW5jZV9jb3N0KHZvaWQpOworc3RhdGljIHZvaWQgYXV0b3ZhY19y ZWNhbGN1bGF0ZV93b3JrZXJzX2Zvcl9iYWxhbmNlKHZvaWQpOwogCiBzdGF0aWMgdm9pZCBkb19h dXRvdmFjdXVtKHZvaWQpOwogc3RhdGljIHZvaWQgRnJlZVdvcmtlckluZm8oaW50IGNvZGUsIERh dHVtIGFyZyk7CkBAIC02NzAsNyArNjczLDcgQEAgQXV0b1ZhY0xhdW5jaGVyTWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKQogCQkJewogCQkJCUxXTG9ja0FjcXVpcmUoQXV0b3ZhY3V1bUxvY2ss IExXX0VYQ0xVU0lWRSk7CiAJCQkJQXV0b1ZhY3V1bVNobWVtLT5hdl9zaWduYWxbQXV0b1ZhY1Jl YmFsYW5jZV0gPSBmYWxzZTsKLQkJCQlhdXRvdmFjX2JhbGFuY2VfY29zdCgpOworCQkJCWF1dG92 YWNfcmVjYWxjdWxhdGVfd29ya2Vyc19mb3JfYmFsYW5jZSgpOwogCQkJCUxXTG9ja1JlbGVhc2Uo QXV0b3ZhY3V1bUxvY2spOwogCQkJfQogCkBAIC04MjAsOCArODIzLDggQEAgSGFuZGxlQXV0b1Zh Y0xhdW5jaGVySW50ZXJydXB0cyh2b2lkKQogCQkJQXV0b1ZhY0xhdW5jaGVyU2h1dGRvd24oKTsK IAogCQkvKiByZWJhbGFuY2UgaW4gY2FzZSB0aGUgZGVmYXVsdCBjb3N0IHBhcmFtZXRlcnMgY2hh bmdlZCAqLwotCQlMV0xvY2tBY3F1aXJlKEF1dG92YWN1dW1Mb2NrLCBMV19FWENMVVNJVkUpOwot CQlhdXRvdmFjX2JhbGFuY2VfY29zdCgpOworCQlMV0xvY2tBY3F1aXJlKEF1dG92YWN1dW1Mb2Nr LCBMV19TSEFSRUQpOworCQlhdXRvdmFjX3JlY2FsY3VsYXRlX3dvcmtlcnNfZm9yX2JhbGFuY2Uo KTsKIAkJTFdMb2NrUmVsZWFzZShBdXRvdmFjdXVtTG9jayk7CiAKIAkJLyogcmVidWlsZCB0aGUg bGlzdCBpbiBjYXNlIHRoZSBuYXB0aW1lIGNoYW5nZWQgKi8KQEAgLTE3NTUsMTAgKzE3NTgsNyBA QCBGcmVlV29ya2VySW5mbyhpbnQgY29kZSwgRGF0dW0gYXJnKQogCQlNeVdvcmtlckluZm8tPndp X3NoYXJlZHJlbCA9IGZhbHNlOwogCQlNeVdvcmtlckluZm8tPndpX3Byb2MgPSBOVUxMOwogCQlN eVdvcmtlckluZm8tPndpX2xhdW5jaHRpbWUgPSAwOwotCQlNeVdvcmtlckluZm8tPndpX2RvYmFs YW5jZSA9IGZhbHNlOwotCQlNeVdvcmtlckluZm8tPndpX2Nvc3RfZGVsYXkgPSAwOwotCQlNeVdv cmtlckluZm8tPndpX2Nvc3RfbGltaXQgPSAwOwotCQlNeVdvcmtlckluZm8tPndpX2Nvc3RfbGlt aXRfYmFzZSA9IDA7CisJCXBnX2F0b21pY19jbGVhcl9mbGFnKCZNeVdvcmtlckluZm8tPndpX2Rv YmFsYW5jZSk7CiAJCWRsaXN0X3B1c2hfaGVhZCgmQXV0b1ZhY3V1bVNobWVtLT5hdl9mcmVlV29y a2VycywKIAkJCQkJCSZNeVdvcmtlckluZm8tPndpX2xpbmtzKTsKIAkJLyogbm90IG1pbmUgYW55 bW9yZSAqLwpAQCAtMTc4OCwxNCArMTc4OCwyMSBAQCBWYWN1dW1VcGRhdGVDb3N0cyh2b2lkKQog CiAJaWYgKGFtX2F1dG92YWN1dW1fd29ya2VyKQogCXsKLQkJVmFjdXVtQ29zdExpbWl0ID0gTXlX b3JrZXJJbmZvLT53aV9jb3N0X2xpbWl0OwotCQlWYWN1dW1Db3N0RGVsYXkgPSBNeVdvcmtlcklu Zm8tPndpX2Nvc3RfZGVsYXk7CisJCWlmIChhdl9yZWxvcHRfY29zdF9kZWxheSA+PSAwKQorCQkJ VmFjdXVtQ29zdERlbGF5ID0gYXZfcmVsb3B0X2Nvc3RfZGVsYXk7CisJCWVsc2UgaWYgKGF1dG92 YWN1dW1fdmFjX2Nvc3RfZGVsYXkgPj0gMCkKKwkJCVZhY3V1bUNvc3REZWxheSA9IGF1dG92YWN1 dW1fdmFjX2Nvc3RfZGVsYXk7CisJCWVsc2UKKwkJCS8qIGZhbGwgYmFjayB0byB2YWN1dW1fY29z dF9kZWxheSAqLworCQkJVmFjdXVtQ29zdERlbGF5ID0gdmFjdXVtX2Nvc3RfZGVsYXk7CisKKwkJ QXV0b1ZhY3V1bVVwZGF0ZUxpbWl0KCk7CiAJfQogCWVsc2UKIAl7CiAJCS8qIE11c3QgYmUgZXhw bGljaXQgVkFDVVVNIG9yIEFOQUxZWkUgKi8KLQkJVmFjdXVtQ29zdExpbWl0ID0gdmFjdXVtX2Nv c3RfbGltaXQ7CiAJCVZhY3V1bUNvc3REZWxheSA9IHZhY3V1bV9jb3N0X2RlbGF5OworCQlWYWN1 dW1Db3N0TGltaXQgPSB2YWN1dW1fY29zdF9saW1pdDsKIAl9CiAKIAkvKgpAQCAtMTgxOSw4NSAr MTgyNiw4MiBAQCBWYWN1dW1VcGRhdGVDb3N0cyh2b2lkKQogCiAKIC8qCi0gKiBhdXRvdmFjX2Jh bGFuY2VfY29zdAotICoJCVJlY2FsY3VsYXRlIHRoZSBjb3N0IGxpbWl0IHNldHRpbmcgZm9yIGVh Y2ggYWN0aXZlIHdvcmtlci4KLSAqCi0gKiBDYWxsZXIgbXVzdCBob2xkIHRoZSBBdXRvdmFjdXVt TG9jayBpbiBleGNsdXNpdmUgbW9kZS4KLSAqLwotc3RhdGljIHZvaWQKLWF1dG92YWNfYmFsYW5j ZV9jb3N0KHZvaWQpCisqIFVwZGF0ZSBWYWN1dW1Db3N0TGltaXQgd2l0aCB0aGUgY29ycmVjdCB2 YWx1ZSBmb3IgYW4gYXV0b3ZhY3V1bSB3b3JrZXIsIGdpdmVuCisqIHRoZSB2YWx1ZSBvZiBvdGhl ciByZWxldmFudCBjb3N0IGxpbWl0IHBhcmFtZXRlcnMgYW5kIHRoZSBudW1iZXIgb2Ygd29ya2Vy cworKiBhY3Jvc3Mgd2hpY2ggdGhlIGxpbWl0IG11c3QgYmUgYmFsYW5jZWQuIEF1dG92YWN1dW0g d29ya2VycyBtdXN0IGNhbGwgdGhpcworKiByZWd1bGFybHkgaW4gY2FzZSBhdl9ud29ya2Vyc19m b3JfYmFsYW5jZSBoYXMgYmVlbiB1cGRhdGVkIGJ5IGFub3RoZXIgd29ya2VyCisqIG9yIGJ5IHRo ZSBhdXRvdmFjdXVtIGxhdW5jaGVyLiBUaGV5IG11c3QgYWxzbyBjYWxsIGl0IGFmdGVyIGEgY29u ZmlnIHJlbG9hZC4KKyovCit2b2lkCitBdXRvVmFjdXVtVXBkYXRlTGltaXQodm9pZCkKIHsKKwlp ZiAoIWFtX2F1dG92YWN1dW1fd29ya2VyKQorCQlyZXR1cm47CisKIAkvKgotCSAqIFRoZSBpZGVh IGhlcmUgaXMgdGhhdCB3ZSByYXRpb24gb3V0IEkvTyBlcXVhbGx5LiAgVGhlIGFtb3VudCBvZiBJ L08KLQkgKiB0aGF0IGEgd29ya2VyIGNhbiBjb25zdW1lIGlzIGRldGVybWluZWQgYnkgY29zdF9s aW1pdC9jb3N0X2RlbGF5LCBzbyB3ZQotCSAqIHRyeSB0byBlcXVhbGl6ZSB0aG9zZSByYXRpb3Mg cmF0aGVyIHRoYW4gdGhlIHJhdyBsaW1pdCBzZXR0aW5ncy4KLQkgKgogCSAqIG5vdGU6IGluIGNv c3RfbGltaXQsIHplcm8gYWxzbyBtZWFucyB1c2UgdmFsdWUgZnJvbSBlbHNld2hlcmUsIGJlY2F1 c2UKIAkgKiB6ZXJvIGlzIG5vdCBhIHZhbGlkIHZhbHVlLgogCSAqLwotCWludAkJCXZhY19jb3N0 X2xpbWl0ID0gKGF1dG92YWN1dW1fdmFjX2Nvc3RfbGltaXQgPiAwID8KLQkJCQkJCQkJICBhdXRv dmFjdXVtX3ZhY19jb3N0X2xpbWl0IDogdmFjdXVtX2Nvc3RfbGltaXQpOwotCWRvdWJsZQkJdmFj X2Nvc3RfZGVsYXkgPSAoYXV0b3ZhY3V1bV92YWNfY29zdF9kZWxheSA+PSAwID8KLQkJCQkJCQkJ ICBhdXRvdmFjdXVtX3ZhY19jb3N0X2RlbGF5IDogdmFjdXVtX2Nvc3RfZGVsYXkpOwotCWRvdWJs ZQkJY29zdF90b3RhbDsKLQlkb3VibGUJCWNvc3RfYXZhaWw7Ci0JZGxpc3RfaXRlcglpdGVyOwot Ci0JLyogbm90IHNldD8gbm90aGluZyB0byBkbyAqLwotCWlmICh2YWNfY29zdF9saW1pdCA8PSAw IHx8IHZhY19jb3N0X2RlbGF5IDw9IDApCi0JCXJldHVybjsKIAotCS8qIGNhbGN1bGF0ZSB0aGUg dG90YWwgYmFzZSBjb3N0IGxpbWl0IG9mIHBhcnRpY2lwYXRpbmcgYWN0aXZlIHdvcmtlcnMgKi8K LQljb3N0X3RvdGFsID0gMC4wOwotCWRsaXN0X2ZvcmVhY2goaXRlciwgJkF1dG9WYWN1dW1TaG1l bS0+YXZfcnVubmluZ1dvcmtlcnMpCisJaWYgKGF2X3JlbG9wdF9jb3N0X2xpbWl0ID4gMCkKKwkJ VmFjdXVtQ29zdExpbWl0ID0gYXZfcmVsb3B0X2Nvc3RfbGltaXQ7CisJZWxzZQogCXsKLQkJV29y a2VySW5mbwl3b3JrZXIgPSBkbGlzdF9jb250YWluZXIoV29ya2VySW5mb0RhdGEsIHdpX2xpbmtz LCBpdGVyLmN1cik7CisJCWludAkJCW53b3JrZXJzX2Zvcl9iYWxhbmNlOworCisJCWlmIChhdXRv dmFjdXVtX3ZhY19jb3N0X2xpbWl0ID4gMCkKKwkJCVZhY3V1bUNvc3RMaW1pdCA9IGF1dG92YWN1 dW1fdmFjX2Nvc3RfbGltaXQ7CisJCWVsc2UKKwkJCVZhY3V1bUNvc3RMaW1pdCA9IHZhY3V1bV9j b3N0X2xpbWl0OworCisJCS8qIE9ubHkgYmFsYW5jZSBsaW1pdCBpZiBubyB0YWJsZSBvcHRpb25z IHNwZWNpZmllZCAqLworCQlpZiAocGdfYXRvbWljX3VubG9ja2VkX3Rlc3RfZmxhZygmTXlXb3Jr ZXJJbmZvLT53aV9kb2JhbGFuY2UpKQorCQkJcmV0dXJuOworCisJCUFzc2VydChWYWN1dW1Db3N0 TGltaXQgPiAwKTsKIAotCQlpZiAod29ya2VyLT53aV9wcm9jICE9IE5VTEwgJiYKLQkJCXdvcmtl ci0+d2lfZG9iYWxhbmNlICYmCi0JCQl3b3JrZXItPndpX2Nvc3RfbGltaXRfYmFzZSA+IDAgJiYg d29ya2VyLT53aV9jb3N0X2RlbGF5ID4gMCkKLQkJCWNvc3RfdG90YWwgKz0KLQkJCQkoZG91Ymxl KSB3b3JrZXItPndpX2Nvc3RfbGltaXRfYmFzZSAvIHdvcmtlci0+d2lfY29zdF9kZWxheTsKKwkJ bndvcmtlcnNfZm9yX2JhbGFuY2UgPSBwZ19hdG9taWNfcmVhZF91MzIoCisJCQkJCQkJCSZBdXRv VmFjdXVtU2htZW0tPmF2X253b3JrZXJzRm9yQmFsYW5jZSk7CisKKwkJLyogVGhlcmUgaXMgYXQg bGVhc3QgMSBhdXRvdmFjIHdvcmtlciAodGhpcyB3b3JrZXIpLiAqLworCQlBc3NlcnQobndvcmtl cnNfZm9yX2JhbGFuY2UgPiAwKTsKKworCQlWYWN1dW1Db3N0TGltaXQgPSBNYXgoVmFjdXVtQ29z dExpbWl0IC8gbndvcmtlcnNfZm9yX2JhbGFuY2UsIDEpOwogCX0KK30KIAotCS8qIHRoZXJlIGFy ZSBubyBjb3N0IGxpbWl0cyAtLSBub3RoaW5nIHRvIGRvICovCi0JaWYgKGNvc3RfdG90YWwgPD0g MCkKLQkJcmV0dXJuOworLyoKKyAqIGF1dG92YWNfcmVjYWxjdWxhdGVfd29ya2Vyc19mb3JfYmFs YW5jZQorICoJCVJlY2FsY3VsYXRlIHRoZSBudW1iZXIgb2Ygd29ya2VycyB0byBjb25zaWRlciwg Z2l2ZW4gdGFibGUgb3B0aW9ucyBhbmQKKyAqCQl0aGUgY3VycmVudCBudW1iZXIgb2YgYWN0aXZl IHdvcmtlcnMuCisgKgorICogQ2FsbGVyIG11c3QgaG9sZCB0aGUgQXV0b3ZhY3V1bUxvY2sgaW4g YXQgbGVhc3Qgc2hhcmVkIG1vZGUgdG8gYWNjZXNzCisgKiB3b3JrZXItPndpX3Byb2MuCisgKi8K K3N0YXRpYyB2b2lkCithdXRvdmFjX3JlY2FsY3VsYXRlX3dvcmtlcnNfZm9yX2JhbGFuY2Uodm9p ZCkKK3sKKwlkbGlzdF9pdGVyCWl0ZXI7CisJaW50CQkJb3JpZ19ud29ya2Vyc19mb3JfYmFsYW5j ZTsKKwlpbnQJCQlud29ya2Vyc19mb3JfYmFsYW5jZSA9IDA7CisKKwlvcmlnX253b3JrZXJzX2Zv cl9iYWxhbmNlID0KKwkJcGdfYXRvbWljX3JlYWRfdTMyKCZBdXRvVmFjdXVtU2htZW0tPmF2X253 b3JrZXJzRm9yQmFsYW5jZSk7CiAKLQkvKgotCSAqIEFkanVzdCBjb3N0IGxpbWl0IG9mIGVhY2gg YWN0aXZlIHdvcmtlciB0byBiYWxhbmNlIHRoZSB0b3RhbCBvZiBjb3N0Ci0JICogbGltaXQgdG8g YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdC4KLQkgKi8KLQljb3N0X2F2YWlsID0gKGRvdWJs ZSkgdmFjX2Nvc3RfbGltaXQgLyB2YWNfY29zdF9kZWxheTsKIAlkbGlzdF9mb3JlYWNoKGl0ZXIs ICZBdXRvVmFjdXVtU2htZW0tPmF2X3J1bm5pbmdXb3JrZXJzKQogCXsKIAkJV29ya2VySW5mbwl3 b3JrZXIgPSBkbGlzdF9jb250YWluZXIoV29ya2VySW5mb0RhdGEsIHdpX2xpbmtzLCBpdGVyLmN1 cik7CiAKLQkJaWYgKHdvcmtlci0+d2lfcHJvYyAhPSBOVUxMICYmCi0JCQl3b3JrZXItPndpX2Rv YmFsYW5jZSAmJgotCQkJd29ya2VyLT53aV9jb3N0X2xpbWl0X2Jhc2UgPiAwICYmIHdvcmtlci0+ d2lfY29zdF9kZWxheSA+IDApCi0JCXsKLQkJCWludAkJCWxpbWl0ID0gKGludCkKLQkJCShjb3N0 X2F2YWlsICogd29ya2VyLT53aV9jb3N0X2xpbWl0X2Jhc2UgLyBjb3N0X3RvdGFsKTsKLQotCQkJ LyoKLQkJCSAqIFdlIHB1dCBhIGxvd2VyIGJvdW5kIG9mIDEgb24gdGhlIGNvc3RfbGltaXQsIHRv IGF2b2lkIGRpdmlzaW9uLQotCQkJICogYnktemVybyBpbiB0aGUgdmFjdXVtIGNvZGUuICBBbHNv LCBpbiBjYXNlIG9mIHJvdW5kb2ZmIHRyb3VibGUKLQkJCSAqIGluIHRoZXNlIGNhbGN1bGF0aW9u cywgbGV0J3MgYmUgc3VyZSB3ZSBkb24ndCBldmVyIHNldAotCQkJICogY29zdF9saW1pdCB0byBt b3JlIHRoYW4gdGhlIGJhc2UgdmFsdWUuCi0JCQkgKi8KLQkJCXdvcmtlci0+d2lfY29zdF9saW1p dCA9IE1heChNaW4obGltaXQsCi0JCQkJCQkJCQkJCXdvcmtlci0+d2lfY29zdF9saW1pdF9iYXNl KSwKLQkJCQkJCQkJCQkxKTsKLQkJfQorCQlpZiAod29ya2VyLT53aV9wcm9jID09IE5VTEwgfHwK KwkJCXBnX2F0b21pY191bmxvY2tlZF90ZXN0X2ZsYWcoJndvcmtlci0+d2lfZG9iYWxhbmNlKSkK KwkJCWNvbnRpbnVlOwogCi0JCWlmICh3b3JrZXItPndpX3Byb2MgIT0gTlVMTCkKLQkJCWVsb2co REVCVUcyLCAiYXV0b3ZhY19iYWxhbmNlX2Nvc3QocGlkPSVkIGRiPSV1LCByZWw9JXUsIGRvYmFs YW5jZT0lcyBjb3N0X2xpbWl0PSVkLCBjb3N0X2xpbWl0X2Jhc2U9JWQsIGNvc3RfZGVsYXk9JWcp IiwKLQkJCQkgd29ya2VyLT53aV9wcm9jLT5waWQsIHdvcmtlci0+d2lfZGJvaWQsIHdvcmtlci0+ d2lfdGFibGVvaWQsCi0JCQkJIHdvcmtlci0+d2lfZG9iYWxhbmNlID8gInllcyIgOiAibm8iLAot CQkJCSB3b3JrZXItPndpX2Nvc3RfbGltaXQsIHdvcmtlci0+d2lfY29zdF9saW1pdF9iYXNlLAot CQkJCSB3b3JrZXItPndpX2Nvc3RfZGVsYXkpOworCQlud29ya2Vyc19mb3JfYmFsYW5jZSsrOwog CX0KKworCWlmIChud29ya2Vyc19mb3JfYmFsYW5jZSAhPSBvcmlnX253b3JrZXJzX2Zvcl9iYWxh bmNlKQorCQlwZ19hdG9taWNfd3JpdGVfdTMyKCZBdXRvVmFjdXVtU2htZW0tPmF2X253b3JrZXJz Rm9yQmFsYW5jZSwKKwkJCQkJCQlud29ya2Vyc19mb3JfYmFsYW5jZSk7CiB9CiAKIC8qCkBAIC0y NDQ1LDIzICsyNDQ5LDMxIEBAIGRvX2F1dG92YWN1dW0odm9pZCkKIAkJCWNvbnRpbnVlOwogCQl9 CiAKLQkJLyogTXVzdCBob2xkIEF1dG92YWN1dW1Mb2NrIHdoaWxlIG11Y2tpbmcgd2l0aCBjb3N0 IGJhbGFuY2UgaW5mbyAqLwotCQlMV0xvY2tBY3F1aXJlKEF1dG92YWN1dW1Mb2NrLCBMV19FWENM VVNJVkUpOwogCi0JCS8qIGFkdmVydGlzZSBteSBjb3N0IGRlbGF5IHBhcmFtZXRlcnMgZm9yIHRo ZSBiYWxhbmNpbmcgYWxnb3JpdGhtICovCi0JCU15V29ya2VySW5mby0+d2lfZG9iYWxhbmNlID0g dGFiLT5hdF9kb2JhbGFuY2U7Ci0JCU15V29ya2VySW5mby0+d2lfY29zdF9kZWxheSA9IHRhYi0+ YXRfdmFjdXVtX2Nvc3RfZGVsYXk7Ci0JCU15V29ya2VySW5mby0+d2lfY29zdF9saW1pdCA9IHRh Yi0+YXRfdmFjdXVtX2Nvc3RfbGltaXQ7Ci0JCU15V29ya2VySW5mby0+d2lfY29zdF9saW1pdF9i YXNlID0gdGFiLT5hdF92YWN1dW1fY29zdF9saW1pdDsKKwkJLyoKKwkJICogU2F2ZSB0aGUgY29z dC1yZWxhdGVkIHRhYmxlIG9wdGlvbnMgaW4gZ2xvYmFsIHZhcmlhYmxlcyBmb3IKKwkJICogcmVm ZXJlbmNlIHdoZW4gdXBkYXRpbmcgVmFjdXVtQ29zdExpbWl0IGFuZCBWYWN1dW1Db3N0RGVsYXkg ZHVyaW5nCisJCSAqIHZhY3V1bWluZyB0aGlzIHRhYmxlLgorCQkgKi8KKwkJYXZfcmVsb3B0X2Nv c3RfbGltaXQgPSB0YWItPmF0X3JlbG9wdF92YWNfY29zdF9saW1pdDsKKwkJYXZfcmVsb3B0X2Nv c3RfZGVsYXkgPSB0YWItPmF0X3JlbG9wdF92YWNfY29zdF9kZWxheTsKIAotCQkvKiBkbyBhIGJh bGFuY2UgKi8KLQkJYXV0b3ZhY19iYWxhbmNlX2Nvc3QoKTsKKwkJaWYgKHRhYi0+YXRfZG9iYWxh bmNlKQorCQkJcGdfYXRvbWljX3Rlc3Rfc2V0X2ZsYWcoJk15V29ya2VySW5mby0+d2lfZG9iYWxh bmNlKTsKKwkJZWxzZQorCQkJcGdfYXRvbWljX2NsZWFyX2ZsYWcoJk15V29ya2VySW5mby0+d2lf ZG9iYWxhbmNlKTsKIAotCQkvKiBzZXQgdGhlIGFjdGl2ZSBjb3N0IHBhcmFtZXRlcnMgZnJvbSB0 aGUgcmVzdWx0IG9mIHRoYXQgKi8KKwkJTFdMb2NrQWNxdWlyZShBdXRvdmFjdXVtTG9jaywgTFdf U0hBUkVEKTsKKwkJYXV0b3ZhY19yZWNhbGN1bGF0ZV93b3JrZXJzX2Zvcl9iYWxhbmNlKCk7CisJ CUxXTG9ja1JlbGVhc2UoQXV0b3ZhY3V1bUxvY2spOworCisJCS8qCisJCSAqIFdlIHdhaXQgdW50 aWwgdGhpcyBwb2ludCB0byB1cGRhdGUgY29zdCBkZWxheSBhbmQgY29zdCBsaW1pdAorCQkgKiB2 YWx1ZXMsIGV2ZW4gdGhvdWdoIHdlIHJlbG9hZGVkIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgYWJv dmUsIHNvCisJCSAqIHRoYXQgd2UgY2FuIHRha2UgaW50byBhY2NvdW50IHRoZSBjb3N0LXJlbGF0 ZWQgdGFibGUgb3B0aW9ucy4KKwkJICovCiAJCVZhY3V1bVVwZGF0ZUNvc3RzKCk7CiAKLQkJLyog ZG9uZSAqLwotCQlMV0xvY2tSZWxlYXNlKEF1dG92YWN1dW1Mb2NrKTsKIAogCQkvKiBjbGVhbiB1 cCBtZW1vcnkgYmVmb3JlIGVhY2ggaXRlcmF0aW9uICovCiAJCU1lbW9yeUNvbnRleHRSZXNldEFu ZERlbGV0ZUNoaWxkcmVuKFBvcnRhbENvbnRleHQpOwpAQCAtMjU0NiwxMCArMjU1OCwxMCBAQCBk ZWxldGVkOgogCiAJCS8qCiAJCSAqIFJlbW92ZSBteSBpbmZvIGZyb20gc2hhcmVkIG1lbW9yeS4g IFdlIGNvdWxkLCBidXQgaW50ZW50aW9uYWxseQotCQkgKiBkb24ndCwgY2xlYXIgd2lfY29zdF9s aW1pdCBhbmQgZnJpZW5kcyAtLS0gdGhpcyBpcyBvbiB0aGUKLQkJICogYXNzdW1wdGlvbiB0aGF0 IHdlIHByb2JhYmx5IGhhdmUgbW9yZSB0byBkbyB3aXRoIHNpbWlsYXIgY29zdAotCQkgKiBzZXR0 aW5ncywgc28gd2UgZG9uJ3Qgd2FudCB0byBnaXZlIHVwIG91ciBzaGFyZSBvZiBJL08gZm9yIGEg dmVyeQotCQkgKiBzaG9ydCBpbnRlcnZhbCBhbmQgdGhlcmVieSB0aHJhc2ggdGhlIGdsb2JhbCBi YWxhbmNlLgorCQkgKiBkb24ndCwgdW5zZXQgd2lfZG9iYWxhbmNlIG9uIHRoZSBhc3N1bXB0aW9u IHRoYXQgd2UgYXJlIG1vcmUgbGlrZWx5CisJCSAqIHRoYW4gbm90IHRvIHZhY3V1bSBhIHRhYmxl IHdpdGggbm8gdGFibGUgb3B0aW9ucyBuZXh0LCBzbyB3ZSBkb24ndAorCQkgKiB3YW50IHRvIGdp dmUgdXAgb3VyIHNoYXJlIG9mIEkvTyBmb3IgYSB2ZXJ5IHNob3J0IGludGVydmFsIGFuZAorCQkg KiB0aGVyZWJ5IHRocmFzaCB0aGUgZ2xvYmFsIGJhbGFuY2UuCiAJCSAqLwogCQlMV0xvY2tBY3F1 aXJlKEF1dG92YWN1dW1TY2hlZHVsZUxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJCU15V29ya2VySW5m by0+d2lfdGFibGVvaWQgPSBJbnZhbGlkT2lkOwpAQCAtMjU4Niw2ICsyNTk4LDcgQEAgZGVsZXRl ZDoKIAkJewogCQkJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOwogCQkJUHJvY2Vzc0NvbmZp Z0ZpbGUoUEdDX1NJR0hVUCk7CisJCQlWYWN1dW1VcGRhdGVDb3N0cygpOwogCQl9CiAKIAkJTFdM b2NrQWNxdWlyZShBdXRvdmFjdXVtTG9jaywgTFdfRVhDTFVTSVZFKTsKQEAgLTI4MjEsOCArMjgz NCw2IEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxlX3RvYXN0 X21hcCwKIAkJaW50CQkJZnJlZXplX3RhYmxlX2FnZTsKIAkJaW50CQkJbXVsdGl4YWN0X2ZyZWV6 ZV9taW5fYWdlOwogCQlpbnQJCQltdWx0aXhhY3RfZnJlZXplX3RhYmxlX2FnZTsKLQkJaW50CQkJ dmFjX2Nvc3RfbGltaXQ7Ci0JCWRvdWJsZQkJdmFjX2Nvc3RfZGVsYXk7CiAJCWludAkJCWxvZ19t aW5fZHVyYXRpb247CiAKIAkJLyoKQEAgLTI4MzIsMjAgKzI4NDMsNiBAQCB0YWJsZV9yZWNoZWNr X2F1dG92YWMoT2lkIHJlbGlkLCBIVEFCICp0YWJsZV90b2FzdF9tYXAsCiAJCSAqIGRlZmF1bHRz LCBhdXRvdmFjdXVtJ3Mgb3duIGZpcnN0IGFuZCBwbGFpbiB2YWN1dW0gc2Vjb25kLgogCQkgKi8K IAotCQkvKiAtMSBpbiBhdXRvdmFjIHNldHRpbmcgbWVhbnMgdXNlIHBsYWluIHZhY3V1bV9jb3N0 X2RlbGF5ICovCi0JCXZhY19jb3N0X2RlbGF5ID0gKGF2b3B0cyAmJiBhdm9wdHMtPnZhY3V1bV9j b3N0X2RlbGF5ID49IDApCi0JCQk/IGF2b3B0cy0+dmFjdXVtX2Nvc3RfZGVsYXkKLQkJCTogKGF1 dG92YWN1dW1fdmFjX2Nvc3RfZGVsYXkgPj0gMCkKLQkJCT8gYXV0b3ZhY3V1bV92YWNfY29zdF9k ZWxheQotCQkJOiB2YWN1dW1fY29zdF9kZWxheTsKLQotCQkvKiAwIG9yIC0xIGluIGF1dG92YWMg c2V0dGluZyBtZWFucyB1c2UgcGxhaW4gdmFjdXVtX2Nvc3RfbGltaXQgKi8KLQkJdmFjX2Nvc3Rf bGltaXQgPSAoYXZvcHRzICYmIGF2b3B0cy0+dmFjdXVtX2Nvc3RfbGltaXQgPiAwKQotCQkJPyBh dm9wdHMtPnZhY3V1bV9jb3N0X2xpbWl0Ci0JCQk6IChhdXRvdmFjdXVtX3ZhY19jb3N0X2xpbWl0 ID4gMCkKLQkJCT8gYXV0b3ZhY3V1bV92YWNfY29zdF9saW1pdAotCQkJOiB2YWN1dW1fY29zdF9s aW1pdDsKLQogCQkvKiAtMSBpbiBhdXRvdmFjIHNldHRpbmcgbWVhbnMgdXNlIGxvZ19hdXRvdmFj dXVtX21pbl9kdXJhdGlvbiAqLwogCQlsb2dfbWluX2R1cmF0aW9uID0gKGF2b3B0cyAmJiBhdm9w dHMtPmxvZ19taW5fZHVyYXRpb24gPj0gMCkKIAkJCT8gYXZvcHRzLT5sb2dfbWluX2R1cmF0aW9u CkBAIC0yOTAxLDggKzI4OTgsMTAgQEAgdGFibGVfcmVjaGVja19hdXRvdmFjKE9pZCByZWxpZCwg SFRBQiAqdGFibGVfdG9hc3RfbWFwLAogCQl0YWItPmF0X3BhcmFtcy5tdWx0aXhhY3RfZnJlZXpl X3RhYmxlX2FnZSA9IG11bHRpeGFjdF9mcmVlemVfdGFibGVfYWdlOwogCQl0YWItPmF0X3BhcmFt cy5pc193cmFwYXJvdW5kID0gd3JhcGFyb3VuZDsKIAkJdGFiLT5hdF9wYXJhbXMubG9nX21pbl9k dXJhdGlvbiA9IGxvZ19taW5fZHVyYXRpb247Ci0JCXRhYi0+YXRfdmFjdXVtX2Nvc3RfbGltaXQg PSB2YWNfY29zdF9saW1pdDsKLQkJdGFiLT5hdF92YWN1dW1fY29zdF9kZWxheSA9IHZhY19jb3N0 X2RlbGF5OworCQl0YWItPmF0X3JlbG9wdF92YWNfY29zdF9saW1pdCA9IGF2b3B0cyA/CisJCQlh dm9wdHMtPnZhY3V1bV9jb3N0X2xpbWl0IDogMDsKKwkJdGFiLT5hdF9yZWxvcHRfdmFjX2Nvc3Rf ZGVsYXkgPSBhdm9wdHMgPworCQkJYXZvcHRzLT52YWN1dW1fY29zdF9kZWxheSA6IC0xOwogCQl0 YWItPmF0X3JlbG5hbWUgPSBOVUxMOwogCQl0YWItPmF0X25zcG5hbWUgPSBOVUxMOwogCQl0YWIt PmF0X2RhdG5hbWUgPSBOVUxMOwpAQCAtMzM5NCwxMCArMzM5MywxOCBAQCBBdXRvVmFjdXVtU2ht ZW1Jbml0KHZvaWQpCiAJCXdvcmtlciA9IChXb3JrZXJJbmZvKSAoKGNoYXIgKikgQXV0b1ZhY3V1 bVNobWVtICsKIAkJCQkJCQkgICBNQVhBTElHTihzaXplb2YoQXV0b1ZhY3V1bVNobWVtU3RydWN0 KSkpOwogCisKIAkJLyogaW5pdGlhbGl6ZSB0aGUgV29ya2VySW5mbyBmcmVlIGxpc3QgKi8KIAkJ Zm9yIChpID0gMDsgaSA8IGF1dG92YWN1dW1fbWF4X3dvcmtlcnM7IGkrKykKKwkJewogCQkJZGxp c3RfcHVzaF9oZWFkKCZBdXRvVmFjdXVtU2htZW0tPmF2X2ZyZWVXb3JrZXJzLAogCQkJCQkJCSZ3 b3JrZXJbaV0ud2lfbGlua3MpOworCisJCQlwZ19hdG9taWNfaW5pdF9mbGFnKCZ3b3JrZXJbaV0u d2lfZG9iYWxhbmNlKTsKKwkJfQorCisJCXBnX2F0b21pY19pbml0X3UzMigmQXV0b1ZhY3V1bVNo bWVtLT5hdl9ud29ya2Vyc0ZvckJhbGFuY2UsIDApOworCiAJfQogCWVsc2UKIAkJQXNzZXJ0KGZv dW5kKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKaW5kZXggYTYyZGQyZTc4MS4uNmIyODYwMzdjYSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvdmFjdXVtLmgKQEAgLTM1MSw2ICszNTEsNyBAQCBleHRlcm4gSW5kZXhCdWxrRGVs ZXRlUmVzdWx0ICp2YWNfY2xlYW51cF9vbmVfaW5kZXgoSW5kZXhWYWN1dW1JbmZvICppdmluZm8s CiBleHRlcm4gU2l6ZSB2YWNfbWF4X2l0ZW1zX3RvX2FsbG9jX3NpemUoaW50IG1heF9pdGVtcyk7 CiAKIC8qIEluIHBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICovCitleHRlcm4gdm9pZCBBdXRvVmFj dXVtVXBkYXRlTGltaXQodm9pZCk7CiBleHRlcm4gdm9pZCBWYWN1dW1VcGRhdGVDb3N0cyh2b2lk KTsKIAogLyogaW4gY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAqLwotLSAKMi4zNy4yCgo= --0000000000000e6f2805f836f3a5 Content-Type: text/x-patch; charset="US-ASCII"; name="v12-0002-Separate-vacuum-cost-variables-from-gucs.patch" Content-Disposition: attachment; filename="v12-0002-Separate-vacuum-cost-variables-from-gucs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lfwx2jdn1 RnJvbSA3MWE4NDBhY2MyNjJhMzE1NDkwNWY0NDc0MzEzMGI5NjY4ZWM3OGFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDMxIE1hciAyMDIzIDEzOjEwOjI2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MTIgMi80XSBTZXBhcmF0ZSB2YWN1dW0gY29zdCB2YXJpYWJsZXMgZnJvbSBndWNzCgpW YWN1dW0gY29kZSBydW4gYm90aCBieSBhdXRvdmFjdXVtIHdvcmtlcnMgYW5kIGEgYmFja2VuZCBk b2luZwpWQUNVVU0vQU5BTFlaRSBwcmV2aW91c2x5IHVzZWQgVmFjdXVtQ29zdExpbWl0IGFuZCBW YWN1dW1Db3N0RGVsYXkgd2hpY2gKd2VyZSB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgdGhlIGd1 Y3MgdmFjdXVtX2Nvc3RfbGltaXQgYW5kCnZhY3V1bV9jb3N0X2RlbGF5LiBBdXRvdmFjdXVtIHdv cmtlcnMgbmVlZGVkIHRvIG92ZXJyaWRlIHRoZXNlIHZhcmlhYmxlcwp3aXRoIHRoZWlyIG93biB2 YWx1ZXMsIGRlcml2ZWQgZnJvbSBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0IGFuZAphdXRv dmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5IGFuZCB3b3JrZXIgY29zdCBsaW1pdCBiYWxhbmNpbmcg bG9naWMuIFRoaXMKbGVkIHRvIGNvbmZ1c2luZyBjb2RlIHdoaWNoLCBpbiBzb21lIGNhc2VzLCBi b3RoIGRlcml2ZWQgYW5kIHNldCBhIG5ldwp2YWx1ZSBvZiBWYWN1dW1Db3N0TGltaXQgZnJvbSBW YWN1dW1Db3N0TGltaXQuCgpJbiBwcmVwYXJhdGlvbiBmb3IgcmVmcmVzaGluZyB0aGVzZSBndWMg dmFsdWVzIG1vcmUgb2Z0ZW4sIHNlcGFyYXRlCnRoZXNlIHZhcmlhYmxlcyBmcm9tIHRoZSBndWNz IHRoZW1zZWx2ZXMgYW5kIGFkZCBhIGZ1bmN0aW9uIHRvIHVwZGF0ZQp0aGUgZ2xvYmFsIHZhcmlh YmxlcyB1c2luZyB0aGUgZ3VjcyBhbmQgZXhpc3RpbmcgbG9naWMuCi0tLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtLmMgICAgICAgICB8IDE1ICsrKysrKystLQogc3JjL2JhY2tlbmQvY29t bWFuZHMvdmFjdXVtcGFyYWxsZWwuYyB8ICAxICsKIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0 b3ZhY3V1bS5jICAgfCA0NyArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2luaXQvZ2xvYmFscy5jICAgICAgfCAgMiAtLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWNfdGFibGVzLmMgICB8ICA0ICstLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgg ICAgICAgICB8ICA3ICsrKysKIHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oICAgICAgICAgICAgICAg fCAgMiAtLQogc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmggICB8ICAzIC0tCiA4 IGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtLmMKaW5kZXggMGUxZGJlZWM3MC4uMmMzYWZkNGZmNiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFj dXVtLmMKQEAgLTcxLDEyICs3MSwyMiBAQCBpbnQJCQl2YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9t aW5fYWdlOwogaW50CQkJdmFjdXVtX211bHRpeGFjdF9mcmVlemVfdGFibGVfYWdlOwogaW50CQkJ dmFjdXVtX2ZhaWxzYWZlX2FnZTsKIGludAkJCXZhY3V1bV9tdWx0aXhhY3RfZmFpbHNhZmVfYWdl OworZG91YmxlCQl2YWN1dW1fY29zdF9kZWxheTsKK2ludAkJCXZhY3V1bV9jb3N0X2xpbWl0Owog CiAKIC8qIEEgZmV3IHZhcmlhYmxlcyB0aGF0IGRvbid0IHNlZW0gd29ydGggcGFzc2luZyBhcm91 bmQgYXMgcGFyYW1ldGVycyAqLwogc3RhdGljIE1lbW9yeUNvbnRleHQgdmFjX2NvbnRleHQgPSBO VUxMOwogc3RhdGljIEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHZhY19zdHJhdGVneTsKIAorLyoKKyAq IFZhcmlhYmxlcyBmb3IgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkuIFRoZSBkZWZhdWx0cyBkaWZm ZXIgYmV0d2VlbgorICogYXV0b3ZhY3V1bSBhbmQgdmFjdXVtLiBUaGVzZSBzaG91bGQgYmUgb3Zl cnJpZGRlbiB3aXRoIHRoZSBhcHByb3ByaWF0ZSBHVUMKKyAqIHZhbHVlIGluIHZhY3V1bSBjb2Rl LgorICogVE9ETzogc2hvdWxkIHRoZXkgYmUgaW5pdGlhbGl6ZWQgdG8gdmFsaWQgb3IgaW52YWxp ZCB2YWx1ZXM/CisgKi8KK2ludAkJCVZhY3V1bUNvc3RMaW1pdCA9IDA7Citkb3VibGUJCVZhY3V1 bUNvc3REZWxheSA9IC0xOwogCiAvKgogICogVmFyaWFibGVzIGZvciBjb3N0LWJhc2VkIHBhcmFs bGVsIHZhY3V1bS4gIFNlZSBjb21tZW50cyBhdG9wCkBAIC00OTEsNiArNTAxLDcgQEAgdmFjdXVt KExpc3QgKnJlbGF0aW9ucywgVmFjdXVtUGFyYW1zICpwYXJhbXMsCiAJewogCQlMaXN0Q2VsbCAg ICpjdXI7CiAKKwkJVmFjdXVtVXBkYXRlQ29zdHMoKTsKIAkJaW5fdmFjdXVtID0gdHJ1ZTsKIAkJ VmFjdXVtQ29zdEFjdGl2ZSA9IChWYWN1dW1Db3N0RGVsYXkgPiAwKTsKIAkJVmFjdXVtQ29zdEJh bGFuY2UgPSAwOwpAQCAtMjI0OSw4ICsyMjYwLDcgQEAgdmFjdXVtX2RlbGF5X3BvaW50KHZvaWQp CiAKIAkJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOwogCi0JCS8qIHVwZGF0ZSBiYWxhbmNlIHZhbHVl cyBmb3Igd29ya2VycyAqLwotCQlBdXRvVmFjdXVtVXBkYXRlRGVsYXkoKTsKKwkJVmFjdXVtVXBk YXRlQ29zdHMoKTsKIAogCQkvKiBNaWdodCBoYXZlIGdvdHRlbiBhbiBpbnRlcnJ1cHQgd2hpbGUg c2xlZXBpbmcgKi8KIAkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKQEAgLTIzODgsNiArMjM5OCw3 IEBAIHZhY19tYXhfaXRlbXNfdG9fYWxsb2Nfc2l6ZShpbnQgbWF4X2l0ZW1zKQogCXJldHVybiBv ZmZzZXRvZihWYWNEZWFkSXRlbXMsIGl0ZW1zKSArIHNpemVvZihJdGVtUG9pbnRlckRhdGEpICog bWF4X2l0ZW1zOwogfQogCisKIC8qCiAgKgl2YWNfdGlkX3JlYXBlZCgpIC0tIGlzIGEgcGFydGlj dWxhciB0aWQgZGVsZXRhYmxlPwogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhY3V1bXBhcmFsbGVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5j CmluZGV4IDU3MTg4NTAwZDAuLjRjM2M5M2IyZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYwpAQCAtOTkxLDYgKzk5MSw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9z ZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAogCS8qIFNldCBjb3N0LWJhc2VkIHZhY3V1bSBk ZWxheSAqLwogCVZhY3V1bUZhaWxzYWZlQWN0aXZlID0gZmFsc2U7CisJVmFjdXVtVXBkYXRlQ29z dHMoKTsKIAlWYWN1dW1Db3N0QWN0aXZlID0gKFZhY3V1bUNvc3REZWxheSA+IDApOwogCVZhY3V1 bUNvc3RCYWxhbmNlID0gMDsKIAlWYWN1dW1QYWdlSGl0ID0gMDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9h dXRvdmFjdXVtLmMKaW5kZXggNTg1ZDI4MTQ4Yy4uYWM1NGVkNDU0NiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9hdXRvdmFjdXVtLmMKQEAgLTE3NzMsMjAgKzE3NzMsMzMgQEAgRnJlZVdvcmtlckluZm8o aW50IGNvZGUsIERhdHVtIGFyZykKIAl9CiB9CiAKKwogLyoKLSAqIFVwZGF0ZSB0aGUgY29zdC1i YXNlZCBkZWxheSBwYXJhbWV0ZXJzLCBzbyB0aGF0IG11bHRpcGxlIHdvcmtlcnMgY29uc3VtZQot ICogZWFjaCBhIGZyYWN0aW9uIG9mIHRoZSB0b3RhbCBhdmFpbGFibGUgSS9PLgorICogVXBkYXRl IHZhY3V1bSBjb3N0LWJhc2VkIGRlbGF5LXJlbGF0ZWQgcGFyYW1ldGVycyBmb3IgYXV0b3ZhY3V1 bSB3b3JrZXJzIGFuZAorICogYmFja2VuZHMgZXhlY3V0aW5nIFZBQ1VVTSBvciBBTkFMWVpFIHVz aW5nIHRoZSB2YWx1ZSBvZiByZWxldmFudCBndWNzIGFuZAorICogZ2xvYmFsIHN0YXRlLiBUaGlz IG11c3QgYmUgY2FsbGVkIGR1cmluZyBzZXR1cCBmb3IgdmFjdXVtIGFuZCBhZnRlciBldmVyeQor ICogY29uZmlnIHJlbG9hZCB0byBlbnN1cmUgdXAtdG8tZGF0ZSB2YWx1ZXMuCiAgKi8KIHZvaWQK LUF1dG9WYWN1dW1VcGRhdGVEZWxheSh2b2lkKQorVmFjdXVtVXBkYXRlQ29zdHModm9pZCkKIHsK LQlpZiAoTXlXb3JrZXJJbmZvKQorCWlmIChhbV9hdXRvdmFjdXVtX2xhdW5jaGVyKQorCQlyZXR1 cm47CisKKwlpZiAoYW1fYXV0b3ZhY3V1bV93b3JrZXIpCiAJewotCQlWYWN1dW1Db3N0RGVsYXkg PSBNeVdvcmtlckluZm8tPndpX2Nvc3RfZGVsYXk7CiAJCVZhY3V1bUNvc3RMaW1pdCA9IE15V29y a2VySW5mby0+d2lfY29zdF9saW1pdDsKKwkJVmFjdXVtQ29zdERlbGF5ID0gTXlXb3JrZXJJbmZv LT53aV9jb3N0X2RlbGF5OworCX0KKwllbHNlCisJeworCQkvKiBNdXN0IGJlIGV4cGxpY2l0IFZB Q1VVTSBvciBBTkFMWVpFICovCisJCVZhY3V1bUNvc3RMaW1pdCA9IHZhY3V1bV9jb3N0X2xpbWl0 OworCQlWYWN1dW1Db3N0RGVsYXkgPSB2YWN1dW1fY29zdF9kZWxheTsKIAl9CiB9CiAKKwogLyoK ICAqIGF1dG92YWNfYmFsYW5jZV9jb3N0CiAgKgkJUmVjYWxjdWxhdGUgdGhlIGNvc3QgbGltaXQg c2V0dGluZyBmb3IgZWFjaCBhY3RpdmUgd29ya2VyLgpAQCAtMTgwNSw5ICsxODE4LDkgQEAgYXV0 b3ZhY19iYWxhbmNlX2Nvc3Qodm9pZCkKIAkgKiB6ZXJvIGlzIG5vdCBhIHZhbGlkIHZhbHVlLgog CSAqLwogCWludAkJCXZhY19jb3N0X2xpbWl0ID0gKGF1dG92YWN1dW1fdmFjX2Nvc3RfbGltaXQg PiAwID8KLQkJCQkJCQkJICBhdXRvdmFjdXVtX3ZhY19jb3N0X2xpbWl0IDogVmFjdXVtQ29zdExp bWl0KTsKKwkJCQkJCQkJICBhdXRvdmFjdXVtX3ZhY19jb3N0X2xpbWl0IDogdmFjdXVtX2Nvc3Rf bGltaXQpOwogCWRvdWJsZQkJdmFjX2Nvc3RfZGVsYXkgPSAoYXV0b3ZhY3V1bV92YWNfY29zdF9k ZWxheSA+PSAwID8KLQkJCQkJCQkJICBhdXRvdmFjdXVtX3ZhY19jb3N0X2RlbGF5IDogVmFjdXVt Q29zdERlbGF5KTsKKwkJCQkJCQkJICBhdXRvdmFjdXVtX3ZhY19jb3N0X2RlbGF5IDogdmFjdXVt X2Nvc3RfZGVsYXkpOwogCWRvdWJsZQkJY29zdF90b3RhbDsKIAlkb3VibGUJCWNvc3RfYXZhaWw7 CiAJZGxpc3RfaXRlcglpdGVyOwpAQCAtMjMxMiw4ICsyMzI1LDYgQEAgZG9fYXV0b3ZhY3V1bSh2 b2lkKQogCQlhdXRvdmFjX3RhYmxlICp0YWI7CiAJCWJvb2wJCWlzc2hhcmVkOwogCQlib29sCQlz a2lwaXQ7Ci0JCWRvdWJsZQkJc3RkVmFjdXVtQ29zdERlbGF5OwotCQlpbnQJCQlzdGRWYWN1dW1D b3N0TGltaXQ7CiAJCWRsaXN0X2l0ZXIJaXRlcjsKIAogCQlDSEVDS19GT1JfSU5URVJSVVBUUygp OwpAQCAtMjQxNiwxNCArMjQyNyw2IEBAIGRvX2F1dG92YWN1dW0odm9pZCkKIAkJCWNvbnRpbnVl OwogCQl9CiAKLQkJLyoKLQkJICogUmVtZW1iZXIgdGhlIHByZXZhaWxpbmcgdmFsdWVzIG9mIHRo ZSB2YWN1dW0gY29zdCBHVUNzLiAgV2UgaGF2ZSB0bwotCQkgKiByZXN0b3JlIHRoZXNlIGF0IHRo ZSBib3R0b20gb2YgdGhlIGxvb3AsIGVsc2Ugd2UnbGwgY29tcHV0ZSB3cm9uZwotCQkgKiB2YWx1 ZXMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIG9mIGF1dG92YWNfYmFsYW5jZV9jb3N0KCkuCi0JCSAq LwotCQlzdGRWYWN1dW1Db3N0RGVsYXkgPSBWYWN1dW1Db3N0RGVsYXk7Ci0JCXN0ZFZhY3V1bUNv c3RMaW1pdCA9IFZhY3V1bUNvc3RMaW1pdDsKLQogCQkvKiBNdXN0IGhvbGQgQXV0b3ZhY3V1bUxv Y2sgd2hpbGUgbXVja2luZyB3aXRoIGNvc3QgYmFsYW5jZSBpbmZvICovCiAJCUxXTG9ja0FjcXVp cmUoQXV0b3ZhY3V1bUxvY2ssIExXX0VYQ0xVU0lWRSk7CiAKQEAgLTI0MzcsNyArMjQ0MCw3IEBA IGRvX2F1dG92YWN1dW0odm9pZCkKIAkJYXV0b3ZhY19iYWxhbmNlX2Nvc3QoKTsKIAogCQkvKiBz ZXQgdGhlIGFjdGl2ZSBjb3N0IHBhcmFtZXRlcnMgZnJvbSB0aGUgcmVzdWx0IG9mIHRoYXQgKi8K LQkJQXV0b1ZhY3V1bVVwZGF0ZURlbGF5KCk7CisJCVZhY3V1bVVwZGF0ZUNvc3RzKCk7CiAKIAkJ LyogZG9uZSAqLwogCQlMV0xvY2tSZWxlYXNlKEF1dG92YWN1dW1Mb2NrKTsKQEAgLTI1MzQsMTAg KzI1MzcsNiBAQCBkZWxldGVkOgogCQlNeVdvcmtlckluZm8tPndpX3RhYmxlb2lkID0gSW52YWxp ZE9pZDsKIAkJTXlXb3JrZXJJbmZvLT53aV9zaGFyZWRyZWwgPSBmYWxzZTsKIAkJTFdMb2NrUmVs ZWFzZShBdXRvdmFjdXVtU2NoZWR1bGVMb2NrKTsKLQotCQkvKiByZXN0b3JlIHZhY3V1bSBjb3N0 IEdVQ3MgZm9yIHRoZSBuZXh0IGl0ZXJhdGlvbiAqLwotCQlWYWN1dW1Db3N0RGVsYXkgPSBzdGRW YWN1dW1Db3N0RGVsYXk7Ci0JCVZhY3V1bUNvc3RMaW1pdCA9IHN0ZFZhY3V1bUNvc3RMaW1pdDsK IAl9CiAKIAkvKgpAQCAtMjgyMCwxNCArMjgxOSwxNCBAQCB0YWJsZV9yZWNoZWNrX2F1dG92YWMo T2lkIHJlbGlkLCBIVEFCICp0YWJsZV90b2FzdF9tYXAsCiAJCQk/IGF2b3B0cy0+dmFjdXVtX2Nv c3RfZGVsYXkKIAkJCTogKGF1dG92YWN1dW1fdmFjX2Nvc3RfZGVsYXkgPj0gMCkKIAkJCT8gYXV0 b3ZhY3V1bV92YWNfY29zdF9kZWxheQotCQkJOiBWYWN1dW1Db3N0RGVsYXk7CisJCQk6IHZhY3V1 bV9jb3N0X2RlbGF5OwogCiAJCS8qIDAgb3IgLTEgaW4gYXV0b3ZhYyBzZXR0aW5nIG1lYW5zIHVz ZSBwbGFpbiB2YWN1dW1fY29zdF9saW1pdCAqLwogCQl2YWNfY29zdF9saW1pdCA9IChhdm9wdHMg JiYgYXZvcHRzLT52YWN1dW1fY29zdF9saW1pdCA+IDApCiAJCQk/IGF2b3B0cy0+dmFjdXVtX2Nv c3RfbGltaXQKIAkJCTogKGF1dG92YWN1dW1fdmFjX2Nvc3RfbGltaXQgPiAwKQogCQkJPyBhdXRv dmFjdXVtX3ZhY19jb3N0X2xpbWl0Ci0JCQk6IFZhY3V1bUNvc3RMaW1pdDsKKwkJCTogdmFjdXVt X2Nvc3RfbGltaXQ7CiAKIAkJLyogLTEgaW4gYXV0b3ZhYyBzZXR0aW5nIG1lYW5zIHVzZSBsb2df YXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gKi8KIAkJbG9nX21pbl9kdXJhdGlvbiA9IChhdm9wdHMg JiYgYXZvcHRzLT5sb2dfbWluX2R1cmF0aW9uID49IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9pbml0L2dsb2JhbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5j CmluZGV4IDFiMWQ4MTQyNTQuLjhlNWIwNjVlOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2luaXQvZ2xvYmFscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5j CkBAIC0xNDIsOCArMTQyLDYgQEAgaW50CQkJTWF4QmFja2VuZHMgPSAwOwogaW50CQkJVmFjdXVt Q29zdFBhZ2VIaXQgPSAxOwkvKiBHVUMgcGFyYW1ldGVycyBmb3IgdmFjdXVtICovCiBpbnQJCQlW YWN1dW1Db3N0UGFnZU1pc3MgPSAyOwogaW50CQkJVmFjdXVtQ29zdFBhZ2VEaXJ0eSA9IDIwOwot aW50CQkJVmFjdXVtQ29zdExpbWl0ID0gMjAwOwotZG91YmxlCQlWYWN1dW1Db3N0RGVsYXkgPSAw OwogCiBpbnQ2NAkJVmFjdXVtUGFnZUhpdCA9IDA7CiBpbnQ2NAkJVmFjdXVtUGFnZU1pc3MgPSAw OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCA4MDYyNTg5ZWZkLi43N2RiMWEx NDZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMjQwOSw3ICsyNDA5LDcg QEAgc3RydWN0IGNvbmZpZ19pbnQgQ29uZmlndXJlTmFtZXNJbnRbXSA9CiAJCQlnZXR0ZXh0X25v b3AoIlZhY3V1bSBjb3N0IGFtb3VudCBhdmFpbGFibGUgYmVmb3JlIG5hcHBpbmcuIiksCiAJCQlO VUxMCiAJCX0sCi0JCSZWYWN1dW1Db3N0TGltaXQsCisJCSZ2YWN1dW1fY29zdF9saW1pdCwKIAkJ MjAwLCAxLCAxMDAwMCwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCkBAIC0zNzAxLDcgKzM3MDEs NyBAQCBzdHJ1Y3QgY29uZmlnX3JlYWwgQ29uZmlndXJlTmFtZXNSZWFsW10gPQogCQkJTlVMTCwK IAkJCUdVQ19VTklUX01TCiAJCX0sCi0JCSZWYWN1dW1Db3N0RGVsYXksCisJCSZ2YWN1dW1fY29z dF9kZWxheSwKIAkJMCwgMCwgMTAwLAogCQlOVUxMLCBOVUxMLCBOVUxMCiAJfSwKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv dmFjdXVtLmgKaW5kZXggN2I4ZWUyMTc4OC4uYTYyZGQyZTc4MSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVt LmgKQEAgLTMwMCw2ICszMDAsOCBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IHZhY3V1bV9tdWx0 aXhhY3RfZnJlZXplX21pbl9hZ2U7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHZhY3V1bV9tdWx0 aXhhY3RfZnJlZXplX3RhYmxlX2FnZTsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgdmFjdXVtX2Zh aWxzYWZlX2FnZTsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgdmFjdXVtX211bHRpeGFjdF9mYWls c2FmZV9hZ2U7CitleHRlcm4gUEdETExJTVBPUlQgZG91YmxlIHZhY3V1bV9jb3N0X2RlbGF5Owor ZXh0ZXJuIFBHRExMSU1QT1JUIGludCB2YWN1dW1fY29zdF9saW1pdDsKIAogLyogVmFyaWFibGVz IGZvciBjb3N0LWJhc2VkIHBhcmFsbGVsIHZhY3V1bSAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIHBn X2F0b21pY191aW50MzIgKlZhY3V1bVNoYXJlZENvc3RCYWxhbmNlOwpAQCAtMzA3LDYgKzMwOSw4 IEBAIGV4dGVybiBQR0RMTElNUE9SVCBwZ19hdG9taWNfdWludDMyICpWYWN1dW1BY3RpdmVOV29y a2VyczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgVmFjdXVtQ29zdEJhbGFuY2VMb2NhbDsKIAog ZXh0ZXJuIGJvb2wgVmFjdXVtRmFpbHNhZmVBY3RpdmU7CitleHRlcm4gaW50CVZhY3V1bUNvc3RM aW1pdDsKK2V4dGVybiBkb3VibGUgVmFjdXVtQ29zdERlbGF5OwogCiAvKiBpbiBjb21tYW5kcy92 YWN1dW0uYyAqLwogZXh0ZXJuIHZvaWQgRXhlY1ZhY3V1bShQYXJzZVN0YXRlICpwc3RhdGUsIFZh Y3V1bVN0bXQgKnZhY3N0bXQsIGJvb2wgaXNUb3BMZXZlbCk7CkBAIC0zNDYsNiArMzUwLDkgQEAg ZXh0ZXJuIEluZGV4QnVsa0RlbGV0ZVJlc3VsdCAqdmFjX2NsZWFudXBfb25lX2luZGV4KEluZGV4 VmFjdXVtSW5mbyAqaXZpbmZvLAogCQkJCQkJCQkJCQkJCUluZGV4QnVsa0RlbGV0ZVJlc3VsdCAq aXN0YXQpOwogZXh0ZXJuIFNpemUgdmFjX21heF9pdGVtc190b19hbGxvY19zaXplKGludCBtYXhf aXRlbXMpOwogCisvKiBJbiBwb3N0bWFzdGVyL2F1dG92YWN1dW0uYyAqLworZXh0ZXJuIHZvaWQg VmFjdXVtVXBkYXRlQ29zdHModm9pZCk7CisKIC8qIGluIGNvbW1hbmRzL3ZhY3V1bXBhcmFsbGVs LmMgKi8KIGV4dGVybiBQYXJhbGxlbFZhY3V1bVN0YXRlICpwYXJhbGxlbF92YWN1dW1faW5pdChS ZWxhdGlvbiByZWwsIFJlbGF0aW9uICppbmRyZWxzLAogCQkJCQkJCQkJCQkJIGludCBuaW5kZXhl cywgaW50IG5yZXF1ZXN0ZWRfd29ya2VycywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL21pc2Nh ZG1pbi5oIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKaW5kZXggMDZhODZmOWFjMS4uNjZkYjFi MmM2OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKKysrIGIvc3JjL2luY2x1 ZGUvbWlzY2FkbWluLmgKQEAgLTI2Niw4ICsyNjYsNiBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50 IG1heF9wYXJhbGxlbF9tYWludGVuYW5jZV93b3JrZXJzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGlu dCBWYWN1dW1Db3N0UGFnZUhpdDsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgVmFjdXVtQ29zdFBh Z2VNaXNzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBWYWN1dW1Db3N0UGFnZURpcnR5OwotZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBWYWN1dW1Db3N0TGltaXQ7Ci1leHRlcm4gUEdETExJTVBPUlQg ZG91YmxlIFZhY3V1bUNvc3REZWxheTsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGludDY0IFZhY3V1 bVBhZ2VIaXQ7CiBleHRlcm4gUEdETExJTVBPUlQgaW50NjQgVmFjdXVtUGFnZU1pc3M7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2F1dG92YWN1dW0uaCBiL3NyYy9pbmNsdWRl L3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oCmluZGV4IGMxNDAzNzFiNTEuLjY1YWZkMWVhMWUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oCisrKyBiL3NyYy9p bmNsdWRlL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oCkBAIC02Myw5ICs2Myw2IEBAIGV4dGVybiBp bnQJU3RhcnRBdXRvVmFjV29ya2VyKHZvaWQpOwogLyogY2FsbGVkIGZyb20gcG9zdG1hc3RlciB3 aGVuIGEgd29ya2VyIGNvdWxkIG5vdCBiZSBmb3JrZWQgKi8KIGV4dGVybiB2b2lkIEF1dG9WYWNX b3JrZXJGYWlsZWQodm9pZCk7CiAKLS8qIGF1dG92YWN1dW0gY29zdC1kZWxheSBiYWxhbmNlciAq LwotZXh0ZXJuIHZvaWQgQXV0b1ZhY3V1bVVwZGF0ZURlbGF5KHZvaWQpOwotCiAjaWZkZWYgRVhF Q19CQUNLRU5ECiBleHRlcm4gdm9pZCBBdXRvVmFjTGF1bmNoZXJNYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pIHBnX2F0dHJpYnV0ZV9ub3JldHVybigpOwogZXh0ZXJuIHZvaWQgQXV0b1ZhY1dv cmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgcGdfYXR0cmlidXRlX25vcmV0dXJuKCk7 Ci0tIAoyLjM3LjIKCg== --0000000000000e6f2805f836f3a5--