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 1w3EOC-0011sH-1f for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Mar 2026 14:30:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w3ENA-000JNr-2e for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Mar 2026 14:29:17 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1w3EN9-000JNj-36 for pgsql-hackers@lists.postgresql.org; Thu, 19 Mar 2026 14:29:16 +0000 Received: from mail-yw1-x112e.google.com ([2607:f8b0:4864:20::112e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from <3danissimo@gmail.com>) id 1w3EN5-000000000oD-0wlH for pgsql-hackers@lists.postgresql.org; Thu, 19 Mar 2026 14:29:15 +0000 Received: by mail-yw1-x112e.google.com with SMTP id 00721157ae682-797ab169454so11905537b3.3 for ; Thu, 19 Mar 2026 07:29:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773930550; cv=none; d=google.com; s=arc-20240605; b=b4zBf6fKPchE+be/OYaT8lchfO+gWQMcbeImEbf+R19SpRC9HQ7I7VUJOsAKVQhFQi vaFdXeLTLYw2jcCfcdZpi5Rf40ebCQhrOBlDfGF3l9698OL/S/rzEBuJH1aX+8daWx/7 PN8SBjBPFK+buQY/V2qwMmNmzGHmc4rBlrPkCKf/+oIC9QkLdXqj2IK6dUqUc7/vik5g VOD+kS7p+Ikp8MV9qnzC6YAKaY8wKnK/IxDuo/+NVa1NMm0+RNM6qrMgO/EVoKZSweFC DBgWzOZ14DzMgCR8ENCC7EZ0k9LpwYZIEgofeJxwTXBi6h0GQI0rn+aF67TfW9yQ5lYR 9bdQ== 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=kdhvbjdnl79j7l5fT/RM9JQ4qt0iR3ZaOL7EJqH+rRA=; fh=Js8jY8BJ47/hVbdKjs7RwAq3IXTDypfcPLMObuAd2Fc=; b=WlnxD5otxmi9WvW8ZVYXSQJqyylwJ3BLoSmO21GFORWp5n/N+o7FxD6dB8yMDvWeI/ scbrmnZEQmguK2srpvk6BUo8PSu/XLYkQoR96EvLkDXEv6X+zEfOolOJAJUMQoP2gdKk YJEasD5iqIbF/pfz3CPn9kqexN384tcMPBolnFlDafrhXpbMsTNPWfWiATmf+MFDjlkU vE2zy4P+GMsS6GTLBhc4ItydXBwl/RtQdKFn3HXSmjvrwm5kRUeQrQR7AjhgCAb9sgni LRNZf7Y2tjDgvmb00R3iIB2Nyu9EgBNMZF8fYECoAEWL6beRICblYvZi1Ud+pD/fjbgY 8m5A==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773930550; x=1774535350; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kdhvbjdnl79j7l5fT/RM9JQ4qt0iR3ZaOL7EJqH+rRA=; b=HKlblyZG5AdRHkzJZWg5pI1EeCN4T6CIF1Rq603hSYDm+Dc6YaTcbPbZx528CFNQYj rHcX/Tm9ssGxvX+przkATZ1OEDQm4yy4doAoYeGF64LUTOVT1RQaSwRIcAyh3QtnGZpf sBgEGwzwviadAtkR+iP/RrEWabEB3TfySINfd4+xGpzzIKcxHAZussqiWM5NiCkVWvSP 8ZP6bYYEVTfbAIVWbD345nqNVfN+YUr/UUEVCqKRfdbv08xz+qmlIrvoPuAOvaHu7A/A IS0lUOpv3u/TRnYCX9lMyuWeRdoXvXs4BIdfdK3409rAFElrjJyV8/Om++vRz4zFbPio fL9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773930550; x=1774535350; 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=kdhvbjdnl79j7l5fT/RM9JQ4qt0iR3ZaOL7EJqH+rRA=; b=pmGaSzzy4P+F7B4cm9ZjQVD5WvCvC0qd8noc+EBt4hq4oJz4SUNHQ3yjuLalHGyEQR QXwf4XRBiVv7ygg5pvvqu+dQ3N1EKhvWRmeaF5px/c+uqiE++1KH9HhgrKT2vkFDJtkR 9SPwZsNictzCM0iSV+1B9+Ly8uJksJK8dewO553/XH9hxyaH4B9rT+BO5nPtuqKsvajp CfY/5FIiil0lp0YG0SHhOkeiXcBjHPSlCApKx3DzuCpenQMxOszmWaVQPJO7a/jNmsjH 1PtB489k9HRxOjmUPXFEhjXl2ltQHk5KflvOzG5jwukGl35Y4skcex1EtZgm/qPHRAbP 6UjA== X-Forwarded-Encrypted: i=1; AJvYcCXQEa4ffGeBbfTdDddZqeqgDJ4I6r2OyVrvE+Ai/51FDqFq8D6JIGCtdc85Q1rmgXET6obQquA/rSvEC0GK@lists.postgresql.org X-Gm-Message-State: AOJu0YxTz/gSGOY/6UU+2omMPnrv/MtF2p8d3I6i228ka7UGGvodHjgd BH1/FHWfxUvtNQ39bGYzNFBYCsWbl5q603dCO2DcZhFqJfQRrtrFZB71/DMyDZcRW0wHfpHKCvZ ninfwRFNuU4K+0TaOOL8980k5UEKlT44= X-Gm-Gg: ATEYQzwCg+9Ur2N8UsXIzDGi9t6jbmRNnaJVpB3KyyE1QYNcIrDEQ7fQ0AjYWzI+czY xik7whA8krotEp4CG6UyWcpX3Xz8rf3hiMEY+5iSaTRQ6zoz/r/NuWAvjvy8q68G2EQ6xIiM4fs O3TIVkCa5uB6EdpyHzO+EUn8EkyMaofmykBSMU/2y6dlDIRzWi6o4UKwA8P7dfTAzcd2RLfqQG7 nyCalOpIqDogRfTJ5QiraL9+jyX61RhtJJCng9lQ4MQRzkjPnPiD8icZ2U8DhovkWBq7ixwixro X3d1e5su X-Received: by 2002:a05:690c:7281:b0:79a:6fa2:8129 with SMTP id 00721157ae682-79a71804237mr67953177b3.6.1773930550253; Thu, 19 Mar 2026 07:29:10 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Thu, 19 Mar 2026 21:28:57 +0700 X-Gm-Features: AaiRm53HGHB8pci9tbHH6pvsY1OUe_US7kllQZKI97G5ttIS0oc6wx3Zd7h2fQY Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: Masahiko Sawada Cc: Sami Imseih , Alexander Korotkov , Matheus Alcantara , Maxim Orlov , Postgres hackers Content-Type: multipart/mixed; boundary="0000000000004e5413064d6164fe" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004e5413064d6164fe Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Thu, Mar 19, 2026 at 2:49=E2=80=AFAM Masahiko Sawada wrote: > > Yes, we already have such a code for PARALLEL option for the VACUUM comma= nd. > > I guess it's better that autovacuum codes also somewhat follow this > code for better consistency. > I agree. You can find it in the v29-0002 patch. > > I'm afraid that I can't agree with you here. As I wrote above [1], the > > parallel a/v feature will be useful when a user has a few huge tables w= ith > > a big amount of indexes. Only these tables require parallel processing = and a > > user knows about it. > > Isn't it a case where users need to increase > min_parallel_index_scan_size? Suppose that there are two tables that > are big enough and have enough indexes, it's more natural to me to use > parallel vacuum for both tables without user manual settings. > Do you mean that the user can increase this parameter so that smaller table= s are not considered for the parallel a/v? If so, I don't think it will alway= s be handy. When I say "smaller tables" I mean that they are small relative t= o super huge tables. But actually these "smaller tables" can be pretty big an= d require a parallel index scan within parallel queries or VACUUM PARALLEL (n= ot an autovacuum). Increasing the min_scan_size parameter can decrease performance of the queries that are relying on the ability to scan indexes of such tables in parallel. Separated parameter such as "autovacuum_min_parallel_index_scan_size" could help here, but I don't thin= k that we want to introduce many new GUC parameters for a single feature. > > If we implement the feature as you suggested, then after setting the > > av_max_parallel_workers to N > 0, the user will have to manually disabl= e > > processing for all tables except the largest ones. This will need to be= done > > to ensure that parallel workers are launched specifically to process th= e > > largest tables and not wasting on the processing of little ones. > > > > I.e. I'm proposing a design that will require manual actions to *enable= * > > parallel a/v for several large tables rather than *disable* it for all = of > > the rest tables in the cluster. I'm sure that's what users want. > > > > Allowing the system to decide which tables to process in parallel is a = good > > way from a design perspective. But I'm thinking of the following exampl= e : > > Imagine that we have a threshold, when exceeded, parallel a/v is used. > > Several a/v workers encounter tables which exceed this threshold by 1_0= 00 and > > each of these workers decides to launch a few parallel workers. Another= a/v > > worker encounters a table which is beyond this threshold by 1_000_000 a= nd > > tries to launch N parallel workers, but facing the max_parallel_workers > > shortage. Thus, processing of this table will take a very long time to > > complete due to lack of resources. The only way for users to avoid it i= s to > > disable parallel a/v for all tables, which exceeds the threshold and ar= e not > > of particular interest. > > I think the same thing happens even with the current design as long as > users misconfigure max_parallel_workers, no? Setting > autovacuum_max_parallel_workers to >0 would mean that users want to > give additional resources for autovacuums in general, I think it makes > sense to use parallel vacuum even for tables which exceed the > threshold by 1000. > > Users who want to use parallel autovacuum would have to set > max_parallel_workers (and max_worker_processes) high enough so that > each autovacuum worker can use parallel workers. If resource > contention occurs, it's a sign that the limits are not configured > properly. > Yeah, currently user can misconfigure max_parallel_workers, so (for example= ) multiple VACUUM PARALLEL operations running at the same time will face with a shortage of parallel workers. But I guess that every system has some sane limit for this parameter's value. If we want to ensure that all a/v leaders are guaranteed to launch as many parallel workers as required, we might nee= d to increase the max_parallel_workers too much (and cross the sane limit). IMHO it may be unacceptable for many systems in production, because it will undermine the stability. I don't have direct evidence of my words, so I'll try to get the opinion of the people who will use the parallel a/v feature in big productions. > > I'm not sure if this phrase will be understandable to the user. > > I don't see any places where we would define the "autovacuum operation" > > concept, so I suppose it could be ambiguous. What about "Maximum number= of > > parallel processes per autovacuuming of one table"? > > "autovacuuming of one table" sounds unnatural to me. How about > "Maximum number of parallel workers that can be used by a single > autovacuum worker."? > It sounds good, I agree. > > > > > We check only the server logs throughout the new tap tests. I think w= e > > > should also confirm that the autovacuum successfully completes. I've > > > attached the proposed change to the tap tests. > > > > > > > I agree with proposed changes. BTW, don't we need to reduce the strings > > length to 80 characters in the tests? In some tests, this rule is follo= wed, > > and in some it is not. > > Yeah, pgperltidy should be run for new tests. > OK. I'll do it. > The 0001 patch looks good to me. I've updated the commit message and > attached it. I'm going to push the patch, barring any objections. > Great news! > Regarding the documentation changes, I find that the current patch > needs more explanation at appropriate sections. I think we need to: > > 1. describe the new autovacuum_max_parallel_workers GUC parameter (in > config.sgml) > 2. describe the new autovacuum_parallel_workers storage parameter (in > create_table.sgml) > 3. mention that autovacuum could use parallel vacuum (in maintenance.sgml= ). > I agree. > I think that part 1 should include the basic explanation of the GUC > parameter as well as how the number of workers is decided (which could > be similar to the description for PARALLEL options of the VACUUM > command). IMHO, the description of the method for determining the number of parallel workers will look more appropriate in part 3. BTW, do we need to mention that this parameter can be overridden by the per-table setting? > Part 2 can explain the storage parameter as follow: > > Per-table value for > parameter. If -1 is specified, > autovacuum_max_parallel_workers > value will be used. The default value is 0. > It looks very compact and beautiful, I agree. Actually, if -1 is specified then we are "choosing the parallel degree base= d on the number of indexes". We have several places in the code with such phrasing. I don't really like it because 1) even if value !=3D -1 we are st= ill taking the number of indexes into account and 2) basically it is the same a= s to say "limited by GUC parameter". I don't want to touch existing comments in the vacuumparallel.c but in our patch I'd like to say that "GUC paramete= r's value will be used". I hope this will not cause any misunderstanding among readers. > Part 3 can briefly mention that autovacuum can perform parallel vacuum > with parallel workers capped by autovacuum_max_parallel_workers as > follow: > > For tables with the > storage parameter set, an autovacuum worker can perform index vacuuming= and > index cleanup with background workers. The number of workers launched b= y > a single autovacuum worker is limited by the > . I suggest adding here also a description of the method for calculating the number of parallel workers. If so, I feel that this part of documentation w= ill be completely the same as in VACUUM PARALLEL (except a few little details). Maybe we can create some dedicated subchapter in the "Routine vacuuming" wh= ere we describe how the number of parallel workers is decided. Lets call it something like "24.1.7 Parallel Vacuuming". Both VACUUM PARALLEL and parall= el autovacuum can refer to this subchapter. I think it will be much easier to maintain. What do you think? -- Thank you very much for the comments and prepared patch! Please, see an updated set of patches (I didn't touch patches 0001, 0003 an= d 0005). The 0001 patch contains a pretty controversial fix for the "autovacuum_parallel_workers" description, but I didn't come up with anythi= ng better. -- Best regards, Daniil Davydov --0000000000004e5413064d6164fe Content-Type: text/x-patch; charset="US-ASCII"; name="v30-0003-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Disposition: attachment; filename="v30-0003-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxkf40p2 RnJvbSAzMTgxMmZhOWI5MjJiYWQwNDFjZWI5MGE2ZmY2ZTA4MTRhNWUxZjc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUaHUsIDE1IEphbiAyMDI2IDIzOjE1OjQ4ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MzAgMy81XSBDb3N0IGJhc2VkIHBhcmFtZXRlcnMgcHJvcGFnYXRpb24gZm9yIHBhcmFsbGVs CiBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jICAgICAgICAg fCAgMjEgKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyB8IDE2MyAr KysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFj dXVtLmMgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggICAgICAgICB8 ICAgMiArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgIHwgICAxICsKIDUg ZmlsZXMgY2hhbmdlZCwgMTg2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy92YWN1dW0uYwppbmRleCBiY2UzYTJkYWEyNC4uMWI1YmEzY2UxZWYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bS5jCkBAIC0yNDM1LDggKzI0MzUsMTkgQEAgdmFjdXVtX2RlbGF5X3BvaW50KGJvb2wgaXNf YW5hbHl6ZSkKIAkvKiBBbHdheXMgY2hlY2sgZm9yIGludGVycnVwdHMgKi8KIAlDSEVDS19GT1Jf SU5URVJSVVBUUygpOwogCi0JaWYgKEludGVycnVwdFBlbmRpbmcgfHwKLQkJKCFWYWN1dW1Db3N0 QWN0aXZlICYmICFDb25maWdSZWxvYWRQZW5kaW5nKSkKKwlpZiAoSW50ZXJydXB0UGVuZGluZykK KwkJcmV0dXJuOworCisJaWYgKElzUGFyYWxsZWxXb3JrZXIoKSkKKwl7CisJCS8qCisJCSAqIFVw ZGF0ZSBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzIGZvciBhIHBhcmFsbGVsIGF1 dG92YWN1dW0KKwkJICogd29ya2VyIGlmIGFueSBjaGFuZ2VzIGFyZSBkZXRlY3RlZC4KKwkJICov CisJCXBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hhcmVkX2RlbGF5X3BhcmFtcygpOworCX0KKwor CWlmICghVmFjdXVtQ29zdEFjdGl2ZSAmJiAhQ29uZmlnUmVsb2FkUGVuZGluZykKIAkJcmV0dXJu OwogCiAJLyoKQEAgLTI0NTAsNiArMjQ2MSwxMiBAQCB2YWN1dW1fZGVsYXlfcG9pbnQoYm9vbCBp c19hbmFseXplKQogCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CiAJCVByb2Nlc3NDb25m aWdGaWxlKFBHQ19TSUdIVVApOwogCQlWYWN1dW1VcGRhdGVDb3N0cygpOworCisJCS8qCisJCSAq IFByb3BhZ2F0ZSBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzIHRvIHNoYXJlZCBt ZW1vcnkgaWYKKwkJICogYW55IG9mIHRoZW0gaGF2ZSBjaGFuZ2VkIGR1cmluZyB0aGUgY29uZmln IHJlbG9hZC4KKwkJICovCisJCXBhcmFsbGVsX3ZhY3V1bV9wcm9wYWdhdGVfc2hhcmVkX2RlbGF5 X3BhcmFtcygpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92 YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpp bmRleCBiN2ZmZDg1NDAwOS4uOThhZWI2NmVlYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVt cGFyYWxsZWwuYwpAQCAtMTgsNiArMTgsMTMgQEAKICAqIHRoZSBwYXJhbGxlbCBjb250ZXh0IGlz IHJlLWluaXRpYWxpemVkIHNvIHRoYXQgdGhlIHNhbWUgRFNNIGNhbiBiZSB1c2VkIGZvcgogICog bXVsdGlwbGUgcGFzc2VzIG9mIGluZGV4IGJ1bGstZGVsZXRpb24gYW5kIGluZGV4IGNsZWFudXAu CiAgKgorICogRm9yIHBhcmFsbGVsIGF1dG92YWN1dW0sIHdlIG5lZWQgdG8gcHJvcGFnYXRlIGNv c3QtYmFzZWQgdmFjdXVtIGRlbGF5CisgKiBwYXJhbWV0ZXJzIGZyb20gdGhlIGxlYWRlciB0byBp dHMgd29ya2VycywgYXMgdGhlIGxlYWRlcidzIHBhcmFtZXRlcnMgY2FuCisgKiBjaGFuZ2UgZXZl biB3aGlsZSBwcm9jZXNzaW5nIGEgdGFibGUgKGUuZy4sIGR1ZSB0byBhIGNvbmZpZyByZWxvYWQp LgorICogVGhlIFBWU2hhcmVkQ29zdFBhcmFtcyBzdHJ1Y3QgbWFuYWdlcyB0aGVzZSBwYXJhbWV0 ZXJzIHVzaW5nIGEKKyAqIGdlbmVyYXRpb24gY291bnRlci4gRWFjaCBwYXJhbGxlbCB3b3JrZXIg cG9sbHMgdGhpcyBzaGFyZWQgc3RhdGUgYW5kCisgKiByZWZyZXNoZXMgaXRzIGxvY2FsIGRlbGF5 IHBhcmFtZXRlcnMgd2hlbmV2ZXIgYSBjaGFuZ2UgaXMgZGV0ZWN0ZWQuCisgKgogICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjYsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50 IEdyb3VwCiAgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVu aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQogICoKQEAgLTUzLDYgKzYwLDMxIEBACiAjZGVmaW5lIFBB UkFMTEVMX1ZBQ1VVTV9LRVlfV0FMX1VTQUdFCQk0CiAjZGVmaW5lIFBBUkFMTEVMX1ZBQ1VVTV9L RVlfSU5ERVhfU1RBVFMJCTUKIAorLyoKKyAqIFN0cnVjdCBmb3IgY29zdC1iYXNlZCB2YWN1dW0g ZGVsYXkgcmVsYXRlZCBwYXJhbWV0ZXJzIHRvIHNoYXJlIGFtb25nIGFuCisgKiBhdXRvdmFjdXVt IHdvcmtlciBhbmQgaXRzIHBhcmFsbGVsIHZhY3V1bSB3b3JrZXJzLgorICovCit0eXBlZGVmIHN0 cnVjdCBQVlNoYXJlZENvc3RQYXJhbXMKK3sKKwkvKgorCSAqIFRoZSBnZW5lcmF0aW9uIGNvdW50 ZXIgaXMgaW5jcmVtZW50ZWQgYnkgdGhlIGxlYWRlciBwcm9jZXNzIGVhY2ggdGltZQorCSAqIGl0 IHVwZGF0ZXMgdGhlIHNoYXJlZCBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXJzLiBQ YXJhbGVsbAorCSAqIHZhY3V1bSB3b3JrZXJzIGNvbXBhcmVzIGl0IHdpdGggdGhlaXIgbG9jYWwg Z2VuZXJhdGlvbiwKKwkgKiBzaGFyZWRfcGFyYW1zX2dlbmVyYXRpb25fbG9jYWwsIHRvIGRldGVj dCB3aGV0aGVyIHRoZXkgbmVlZCB0byByZWZyZXNoCisJICogdGhlaXIgbG9jYWwgcGFyYW1ldGVy cy4KKwkgKi8KKwlwZ19hdG9taWNfdWludDMyIGdlbmVyYXRpb247CisKKwlzbG9ja190CQltdXRl eDsJCQkvKiBwcm90ZWN0cyBhbGwgZmllbGRzIGJlbG93ICovCisKKwkvKiBQYXJhbWV0ZXJzIHRv IHNoYXJlIHdpdGggcGFyYWxsZWwgd29ya2VycyAqLworCWRvdWJsZQkJY29zdF9kZWxheTsKKwlp bnQJCQljb3N0X2xpbWl0OworCWludAkJCWNvc3RfcGFnZV9kaXJ0eTsKKwlpbnQJCQljb3N0X3Bh Z2VfaGl0OworCWludAkJCWNvc3RfcGFnZV9taXNzOworfSBQVlNoYXJlZENvc3RQYXJhbXM7CisK IC8qCiAgKiBTaGFyZWQgaW5mb3JtYXRpb24gYW1vbmcgcGFyYWxsZWwgd29ya2Vycy4gIFNvIHRo aXMgaXMgYWxsb2NhdGVkIGluIHRoZSBEU00KICAqIHNlZ21lbnQuCkBAIC0xMjIsNiArMTU0LDE4 IEBAIHR5cGVkZWYgc3RydWN0IFBWU2hhcmVkCiAKIAkvKiBTdGF0aXN0aWNzIG9mIHNoYXJlZCBk ZWFkIGl0ZW1zICovCiAJVmFjRGVhZEl0ZW1zSW5mbyBkZWFkX2l0ZW1zX2luZm87CisKKwkvKgor CSAqIElmICd0cnVlJyB0aGVuIHdlIGFyZSBydW5uaW5nIHBhcmFsbGVsIGF1dG92YWN1dW0uIE90 aGVyd2lzZSwgd2UgYXJlCisJICogcnVubmluZyBwYXJhbGxlbCBtYWludGVuZW5jZSBWQUNVVU0u CisJICovCisJYm9vbAkJaXNfYXV0b3ZhY3V1bTsKKworCS8qCisJICogU3RydWN0IGZvciBzeW5j aW5nIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgYmV0d2VlbgorCSAqIHN1cHBv cnRpdmUgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHdpdGggbGVhZGVyIHdvcmtlci4KKwkg Ki8KKwlQVlNoYXJlZENvc3RQYXJhbXMgY29zdF9wYXJhbXM7CiB9IFBWU2hhcmVkOwogCiAvKiBT dGF0dXMgdXNlZCBkdXJpbmcgcGFyYWxsZWwgaW5kZXggdmFjdXVtIG9yIGNsZWFudXAgKi8KQEAg LTIyNCw2ICsyNjgsMTEgQEAgc3RydWN0IFBhcmFsbGVsVmFjdXVtU3RhdGUKIAlQVkluZFZhY1N0 YXR1cyBzdGF0dXM7CiB9OwogCitzdGF0aWMgUFZTaGFyZWRDb3N0UGFyYW1zICpwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSBOVUxMOworCisvKiBTZWUgY29tbWVudHMgaW4gdGhlIFBWU2hhcmVkQ29z dFBhcmFtcyBmb3IgdGhlIGRldGFpbHMgKi8KK3N0YXRpYyB1aW50MzIgc2hhcmVkX3BhcmFtc19n ZW5lcmF0aW9uX2xvY2FsID0gMDsKKwogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0 ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVk LAogCQkJCQkJCQkJCQlib29sICp3aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpw dnMsIGludCBudW1faW5kZXhfc2NhbnMsCkBAIC0yMzUsNiArMjg0LDcgQEAgc3RhdGljIHZvaWQg cGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2 cywgUmVsYXRpb24KIHN0YXRpYyBib29sIHBhcmFsbGVsX3ZhY3V1bV9pbmRleF9pc19wYXJhbGxl bF9zYWZlKFJlbGF0aW9uIGluZHJlbCwgaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJCQkJ CSAgIGJvb2wgdmFjdXVtKTsKIHN0YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9lcnJvcl9jYWxs YmFjayh2b2lkICphcmcpOworc3RhdGljIGlubGluZSB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9zZXRf Y29zdF9wYXJhbWV0ZXJzKFBWU2hhcmVkQ29zdFBhcmFtcyAqcGFyYW1zKTsKIAogLyoKICAqIFRy eSB0byBlbnRlciBwYXJhbGxlbCBtb2RlIGFuZCBjcmVhdGUgYSBwYXJhbGxlbCBjb250ZXh0LiAg VGhlbiBpbml0aWFsaXplCkBAIC0zOTUsNiArNDQ1LDIxIEBAIHBhcmFsbGVsX3ZhY3V1bV9pbml0 KFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlwZ19hdG9t aWNfaW5pdF91MzIoJihzaGFyZWQtPmFjdGl2ZV9ud29ya2VycyksIDApOwogCXBnX2F0b21pY19p bml0X3UzMigmKHNoYXJlZC0+aWR4KSwgMCk7CiAKKwlzaGFyZWQtPmlzX2F1dG92YWN1dW0gPSBB bUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCk7CisKKwkvKgorCSAqIEluaXRpYWxpemUgc2hhcmVk IGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHBhcmFtZXRlcnMgaWYgaXQncyBmb3IKKwkgKiBhdXRv dmFjdXVtLgorCSAqLworCWlmIChzaGFyZWQtPmlzX2F1dG92YWN1dW0pCisJeworCQlwYXJhbGxl bF92YWN1dW1fc2V0X2Nvc3RfcGFyYW1ldGVycygmc2hhcmVkLT5jb3N0X3BhcmFtcyk7CisJCXBn X2F0b21pY19pbml0X3UzMigmc2hhcmVkLT5jb3N0X3BhcmFtcy5nZW5lcmF0aW9uLCAwKTsKKwkJ U3BpbkxvY2tJbml0KCZzaGFyZWQtPmNvc3RfcGFyYW1zLm11dGV4KTsKKworCQlwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSAmKHNoYXJlZC0+Y29zdF9wYXJhbXMpOworCX0KKwogCXNobV90b2NfaW5z ZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9TSEFSRUQsIHNoYXJlZCk7CiAJcHZz LT5zaGFyZWQgPSBzaGFyZWQ7CiAKQEAgLTQ2MCw2ICs1MjUsOSBAQCBwYXJhbGxlbF92YWN1dW1f ZW5kKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICoqaXN0 YXRzKQogCURlc3Ryb3lQYXJhbGxlbENvbnRleHQocHZzLT5wY3h0KTsKIAlFeGl0UGFyYWxsZWxN b2RlKCk7CiAKKwlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCQlwdl9zaGFyZWRf Y29zdF9wYXJhbXMgPSBOVUxMOworCiAJcGZyZWUocHZzLT53aWxsX3BhcmFsbGVsX3ZhY3V1bSk7 CiAJcGZyZWUocHZzKTsKIH0KQEAgLTUzNyw2ICs2MDUsOTUgQEAgcGFyYWxsZWxfdmFjdXVtX2Ns ZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJs ZV90dXAKIAlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMsIG51bV9pbmRl eF9zY2FucywgZmFsc2UsIHdzdGF0cyk7CiB9CiAKKy8qCisgKiBGaWxsIGluIHRoZSBnaXZlbiBz dHJ1Y3R1cmUgd2l0aCBjb3N0LWJhc2VkIHZhY3V1bSBkZWxheSBwYXJhbWV0ZXIgdmFsdWVzLgor ICovCitzdGF0aWMgaW5saW5lIHZvaWQKK3BhcmFsbGVsX3ZhY3V1bV9zZXRfY29zdF9wYXJhbWV0 ZXJzKFBWU2hhcmVkQ29zdFBhcmFtcyAqcGFyYW1zKQoreworCXBhcmFtcy0+Y29zdF9kZWxheSA9 IHZhY3V1bV9jb3N0X2RlbGF5OworCXBhcmFtcy0+Y29zdF9saW1pdCA9IHZhY3V1bV9jb3N0X2xp bWl0OworCXBhcmFtcy0+Y29zdF9wYWdlX2RpcnR5ID0gVmFjdXVtQ29zdFBhZ2VEaXJ0eTsKKwlw YXJhbXMtPmNvc3RfcGFnZV9oaXQgPSBWYWN1dW1Db3N0UGFnZUhpdDsKKwlwYXJhbXMtPmNvc3Rf cGFnZV9taXNzID0gVmFjdXVtQ29zdFBhZ2VNaXNzOworfQorCisvKgorICogVXBkYXRlcyB0aGUg Y29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFyYW1ldGVycyBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1 bQorICogd29ya2Vycy4KKyAqCisgKiBGb3Igbm9uLWF1dG92YWN1dW0gcGFyYWxsZWwgd29ya2Vy IHRoaXMgZnVuY3Rpb24gd2lsbCBoYXZlIG5vIGVmZmVjdC4KKyAqLwordm9pZAorcGFyYWxsZWxf dmFjdXVtX3VwZGF0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpCit7CisJdWludDMyCQlwYXJh bXNfZ2VuZXJhdGlvbjsKKworCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOworCisJLyogUXVp Y2sgcmV0dXJuIGlmIHRoZSB3b2tyZXIgaXMgbm90IHJ1bm5pbmcgZm9yIHRoZSBhdXRvdmFjdXVt ICovCisJaWYgKHB2X3NoYXJlZF9jb3N0X3BhcmFtcyA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlw YXJhbXNfZ2VuZXJhdGlvbiA9IHBnX2F0b21pY19yZWFkX3UzMigmcHZfc2hhcmVkX2Nvc3RfcGFy YW1zLT5nZW5lcmF0aW9uKTsKKwlBc3NlcnQoc2hhcmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2Fs IDw9IHBhcmFtc19nZW5lcmF0aW9uKTsKKworCS8qIFJldHVybiBpZiBwYXJhbWV0ZXJzIGhhZCBu b3QgY2hhbmdlZCBpbiB0aGUgbGVhZGVyICovCisJaWYgKHBhcmFtc19nZW5lcmF0aW9uID09IHNo YXJlZF9wYXJhbXNfZ2VuZXJhdGlvbl9sb2NhbCkKKwkJcmV0dXJuOworCisJU3BpbkxvY2tBY3F1 aXJlKCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPm11dGV4KTsKKwlWYWN1dW1Db3N0RGVsYXkgPSBw dl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfZGVsYXk7CisJVmFjdXVtQ29zdExpbWl0ID0gcHZf c2hhcmVkX2Nvc3RfcGFyYW1zLT5jb3N0X2xpbWl0OworCVZhY3V1bUNvc3RQYWdlRGlydHkgPSBw dl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9kaXJ0eTsKKwlWYWN1dW1Db3N0UGFnZUhp dCA9IHB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+Y29zdF9wYWdlX2hpdDsKKwlWYWN1dW1Db3N0UGFn ZU1pc3MgPSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9taXNzOworCVNwaW5Mb2Nr UmVsZWFzZSgmcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5tdXRleCk7CisKKwlWYWN1dW1VcGRhdGVD b3N0cygpOworCisJc2hhcmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2FsID0gcGFyYW1zX2dlbmVy YXRpb247Cit9CisKKy8qCisgKiBTdG9yZSB0aGUgY29zdC1iYXNlZCB2YWN1dW0gZGVsYXkgcGFy YW1ldGVycyBpbiB0aGUgc2hhcmVkIG1lbW9yeSBzbyB0aGF0CisgKiBwYXJhbGxlbCB2YWN1dW0g d29ya2VycyBjYW4gY29uc3VtZSB0aGVtIChzZWUKKyAqIHBhcmFsbGVsX3ZhY3V1bV91cGRhdGVf c2hhcmVkX2RlbGF5X3BhcmFtcygpKS4KKyAqLwordm9pZAorcGFyYWxsZWxfdmFjdXVtX3Byb3Bh Z2F0ZV9zaGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpCit7CisJQXNzZXJ0KEFtQXV0b1ZhY3V1bVdv cmtlclByb2Nlc3MoKSk7CisKKwkvKgorCSAqIFF1aWNrIHJldHVybiBpZiB0aGUgbGVhZGVyIHBy b2Nlc3MgaXMgbm90IHNoYXJpbmcgdGhlIGRlbGF5IHBhcmFtZXRlcnMuCisJICovCisJaWYgKHB2 X3NoYXJlZF9jb3N0X3BhcmFtcyA9PSBOVUxMKQorCQlyZXR1cm47CisKKwkvKgorCSAqIENoZWNr IGlmIGFueSBkZWxheSBwYXJhbWV0ZXJzIGhhcyBjaGFuZ2VkLiBXZSBjYW4gcmVhZCB0aGVtIHdp dGhvdXQKKwkgKiBsb2NrcyBhcyBvbmx5IHRoZSBsZWFkZXIgY2FuIG1vZGlmeSB0aGVtLgorCSAq LworCWlmICh2YWN1dW1fY29zdF9kZWxheSA9PSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3Rf ZGVsYXkgJiYKKwkJdmFjdXVtX2Nvc3RfbGltaXQgPT0gcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5j b3N0X2xpbWl0ICYmCisJCVZhY3V1bUNvc3RQYWdlRGlydHkgPT0gcHZfc2hhcmVkX2Nvc3RfcGFy YW1zLT5jb3N0X3BhZ2VfZGlydHkgJiYKKwkJVmFjdXVtQ29zdFBhZ2VIaXQgPT0gcHZfc2hhcmVk X2Nvc3RfcGFyYW1zLT5jb3N0X3BhZ2VfaGl0ICYmCisJCVZhY3V1bUNvc3RQYWdlTWlzcyA9PSBw dl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfcGFnZV9taXNzKQorCQlyZXR1cm47CisKKwkvKiBV cGRhdGUgdGhlIHNoYXJlZCBkZWxheSBwYXJhbWV0ZXJzICovCisJU3BpbkxvY2tBY3F1aXJlKCZw dl9zaGFyZWRfY29zdF9wYXJhbXMtPm11dGV4KTsKKwlwYXJhbGxlbF92YWN1dW1fc2V0X2Nvc3Rf cGFyYW1ldGVycyhwdl9zaGFyZWRfY29zdF9wYXJhbXMpOworCVNwaW5Mb2NrUmVsZWFzZSgmcHZf c2hhcmVkX2Nvc3RfcGFyYW1zLT5tdXRleCk7CisKKwkvKgorCSAqIEluY3JlbWVudCB0aGUgZ2Vu ZXJhdGlvbiBvZiB0aGUgcGFyYW1ldGVycywgaS5lLiBsZXQgcGFyYWxsZWwgd29ya2VycworCSAq IGtub3cgdGhhdCB0aGV5IHNob3VsZCByZS1yZWFkIHNoYXJlZCBjb3N0IHBhcmFtcy4KKwkgKi8K KwlwZ19hdG9taWNfZmV0Y2hfYWRkX3UzMigmcHZfc2hhcmVkX2Nvc3RfcGFyYW1zLT5nZW5lcmF0 aW9uLCAxKTsKK30KKwogLyoKICAqIENvbXB1dGUgdGhlIG51bWJlciBvZiBwYXJhbGxlbCB3b3Jr ZXIgcHJvY2Vzc2VzIHRvIHJlcXVlc3QuICBCb3RoIGluZGV4CiAgKiB2YWN1dW0gYW5kIGluZGV4 IGNsZWFudXAgY2FuIGJlIGV4ZWN1dGVkIHdpdGggcGFyYWxsZWwgd29ya2Vycy4KQEAgLTEwNzgs NiArMTIzNSw5IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90 b2MgKnRvYykKIAlWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZSA9ICYoc2hhcmVkLT5jb3N0X2JhbGFu Y2UpOwogCVZhY3V1bUFjdGl2ZU5Xb3JrZXJzID0gJihzaGFyZWQtPmFjdGl2ZV9ud29ya2Vycyk7 CiAKKwlpZiAoc2hhcmVkLT5pc19hdXRvdmFjdXVtKQorCQlwdl9zaGFyZWRfY29zdF9wYXJhbXMg PSAmKHNoYXJlZC0+Y29zdF9wYXJhbXMpOworCiAJLyogU2V0IHBhcmFsbGVsIHZhY3V1bSBzdGF0 ZSAqLwogCXB2cy5pbmRyZWxzID0gaW5kcmVsczsKIAlwdnMubmluZGV4ZXMgPSBuaW5kZXhlczsK QEAgLTExMjcsNiArMTI4Nyw5IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpz ZWcsIHNobV90b2MgKnRvYykKIAl2YWNfY2xvc2VfaW5kZXhlcyhuaW5kZXhlcywgaW5kcmVscywg Um93RXhjbHVzaXZlTG9jayk7CiAJdGFibGVfY2xvc2UocmVsLCBTaGFyZVVwZGF0ZUV4Y2x1c2l2 ZUxvY2spOwogCUZyZWVBY2Nlc3NTdHJhdGVneShwdnMuYnN0cmF0ZWd5KTsKKworCWlmIChzaGFy ZWQtPmlzX2F1dG92YWN1dW0pCisJCXB2X3NoYXJlZF9jb3N0X3BhcmFtcyA9IE5VTEw7CiB9CiAK IC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3Ny Yy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IGU4MTBlMTMwM2RiLi5mMDUz NWEwOTk3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMK KysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTE2NTksNyArMTY1 OSw3IEBAIFZhY3V1bVVwZGF0ZUNvc3RzKHZvaWQpCiAJfQogCWVsc2UKIAl7Ci0JCS8qIE11c3Qg YmUgZXhwbGljaXQgVkFDVVVNIG9yIEFOQUxZWkUgKi8KKwkJLyogTXVzdCBiZSBleHBsaWNpdCBW QUNVVU0gb3IgQU5BTFlaRSBvciBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlciAqLwogCQl2YWN1 dW1fY29zdF9kZWxheSA9IFZhY3V1bUNvc3REZWxheTsKIAkJdmFjdXVtX2Nvc3RfbGltaXQgPSBW YWN1dW1Db3N0TGltaXQ7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCA5NTNhNTA2MTgxZS4u Y2MxNTQ3MzcxMTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC00MjMsNiArNDIzLDggQEAgZXh0 ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1 dW1TdGF0ZSAqcHZzLAogCQkJCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJ CQkJCWJvb2wgZXN0aW1hdGVkX2NvdW50LAogCQkJCQkJCQkJCQkJUFZXb3JrZXJTdGF0cyAqd3N0 YXRzKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hhcmVkX2RlbGF5X3Bh cmFtcyh2b2lkKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9wYWdhdGVfc2hhcmVk X2RlbGF5X3BhcmFtcyh2b2lkKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRz bV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKIC8qIGluIGNvbW1hbmRzL2FuYWx5emUu YyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBhNGEyZWQwNzgxNi4uZDVjN2I5MWUx NjcgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMDkwLDYgKzIwOTAsNyBAQCBQVklu ZFN0YXRzCiBQVkluZFZhY1N0YXR1cwogUFZPSUQKIFBWU2hhcmVkCitQVlNoYXJlZENvc3RQYXJh bXMKIFBWV29ya2VyVXNhZ2UKIFBWV29ya2VyU3RhdHMKIFBYX0FsaWFzCi0tIAoyLjQzLjAKCg== --0000000000004e5413064d6164fe Content-Type: text/x-patch; charset="US-ASCII"; name="v30-0002-Parallel-autovacuum.patch" Content-Disposition: attachment; filename="v30-0002-Parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxkf4153 RnJvbSBiMzQwOWJlOWIzODZhMmRkZDQ3NzhjMzRiZDcxZWNhMzRiZjQ4MzMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjE4OjA5ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MzAgMi81XSBQYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8IDExICsrKysrKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgICAgICAgICB8IDIwICsrKysrKysrKysrKystLS0tLS0K IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICAgICAgICAgICB8IDE4ICsrKysr KysrKysrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyAgICAgICAgICAg ICAgfCAgMSArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jICAgICAgICAgICAgICAgICAg fCAgOCArKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQg ICAgIHwgIDggKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZSB8ICAxICsKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAg ICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oICAgICAgICAgICAgICAgICAgICAg ICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5oICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICsrCiAxMCBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCmluZGV4IDIzN2FiOGQwZWQ5 Li4wM2U2ZmFlOTMwZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxv cHRpb25zLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKQEAg LTIzNSw2ICsyMzUsMTUgQEAgc3RhdGljIHJlbG9wdF9pbnQgaW50UmVsT3B0c1tdID0KIAkJfSwK IAkJU1BHSVNUX0RFRkFVTFRfRklMTEZBQ1RPUiwgU1BHSVNUX01JTl9GSUxMRkFDVE9SLCAxMDAK IAl9LAorCXsKKwkJeworCQkJImF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyIsCisJCQkiT3Zl cnJpZGVzIHZhbHVlIG9mIHRoZSBhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzIHBhcmFt ZXRlciBmb3IgdGhpcyB0YWJsZSwgaWYgPiAtMS4iLAorCQkJUkVMT1BUX0tJTkRfSEVBUCwKKwkJ CVNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jaworCQl9LAorCQkwLCAtMSwgMTAyNAorCX0sCiAJewog CQl7CiAJCQkiYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkIiwKQEAgLTE5NjgsNiArMTk3Nyw4 IEBAIGRlZmF1bHRfcmVsb3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBib29sIHZhbGlkYXRlLCBy ZWxvcHRfa2luZCBraW5kKQogCQl7ImZpbGxmYWN0b3IiLCBSRUxPUFRfVFlQRV9JTlQsIG9mZnNl dG9mKFN0ZFJkT3B0aW9ucywgZmlsbGZhY3Rvcil9LAogCQl7ImF1dG92YWN1dW1fZW5hYmxlZCIs IFJFTE9QVF9UWVBFX0JPT0wsCiAJCW9mZnNldG9mKFN0ZFJkT3B0aW9ucywgYXV0b3ZhY3V1bSkg KyBvZmZzZXRvZihBdXRvVmFjT3B0cywgZW5hYmxlZCl9LAorCQl7ImF1dG92YWN1dW1fcGFyYWxs ZWxfd29ya2VycyIsIFJFTE9QVF9UWVBFX0lOVCwKKwkJb2Zmc2V0b2YoU3RkUmRPcHRpb25zLCBh dXRvdmFjdXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCBhdXRvdmFjdXVtX3BhcmFsbGVsX3dv cmtlcnMpfSwKIAkJeyJhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQiLCBSRUxPUFRfVFlQRV9J TlQsCiAJCW9mZnNldG9mKFN0ZFJkT3B0aW9ucywgYXV0b3ZhY3V1bSkgKyBvZmZzZXRvZihBdXRv VmFjT3B0cywgdmFjdXVtX3RocmVzaG9sZCl9LAogCQl7ImF1dG92YWN1dW1fdmFjdXVtX21heF90 aHJlc2hvbGQiLCBSRUxPUFRfVFlQRV9JTlQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxs ZWwuYwppbmRleCA3NzgzNGI5NmEyMS4uYjdmZmQ4NTQwMDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtcGFyYWxsZWwuYwpAQCAtMSw3ICsxLDkgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoK ICAqIHZhY3V1bXBhcmFsbGVsLmMKLSAqCSAgU3VwcG9ydCByb3V0aW5lcyBmb3IgcGFyYWxsZWwg dmFjdXVtIGV4ZWN1dGlvbi4KKyAqCSAgU3VwcG9ydCByb3V0aW5lcyBmb3IgcGFyYWxsZWwgdmFj dXVtIGFuZCBhdXRvdmFjdXVtIGV4ZWN1dGlvbi4gSW4gdGhlCisgKgkgIGNvbW1lbnRzIGJlbG93 LCB0aGUgd29yZCAidmFjdXVtIiB3aWxsIHJlZmVyIHRvIGJvdGggdmFjdXVtIGFuZAorICoJICBh dXRvdmFjdXVtLgogICoKICAqIFRoaXMgZmlsZSBjb250YWlucyByb3V0aW5lcyB0aGF0IGFyZSBp bnRlbmRlZCB0byBzdXBwb3J0IHNldHRpbmcgdXAsIHVzaW5nLAogICogYW5kIHRlYXJpbmcgZG93 biBhIFBhcmFsbGVsVmFjdXVtU3RhdGUuCkBAIC0zNzQsOCArMzc2LDkgQEAgcGFyYWxsZWxfdmFj dXVtX2luaXQoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLAog CXNoYXJlZC0+cXVlcnlpZCA9IHBnc3RhdF9nZXRfbXlfcXVlcnlfaWQoKTsKIAlzaGFyZWQtPm1h aW50ZW5hbmNlX3dvcmtfbWVtX3dvcmtlciA9CiAJCShuaW5kZXhlc19td20gPiAwKSA/Ci0JCW1h aW50ZW5hbmNlX3dvcmtfbWVtIC8gTWluKHBhcmFsbGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkg OgotCQltYWludGVuYW5jZV93b3JrX21lbTsKKwkJdmFjX3dvcmtfbWVtIC8gTWluKHBhcmFsbGVs X3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgorCQl2YWNfd29ya19tZW07CisKIAlzaGFyZWQtPmRl YWRfaXRlbXNfaW5mby5tYXhfYnl0ZXMgPSB2YWNfd29ya19tZW0gKiAoc2l6ZV90KSAxMDI0Owog CiAJLyogUHJlcGFyZSBEU0Egc3BhY2UgZm9yIGRlYWQgaXRlbXMgKi8KQEAgLTU1NSwxMiArNTU4 LDE3IEBAIHBhcmFsbGVsX3ZhY3V1bV9jb21wdXRlX3dvcmtlcnMoUmVsYXRpb24gKmluZHJlbHMs IGludCBuaW5kZXhlcywgaW50IG5yZXF1ZXN0ZWQsCiAJaW50CQkJbmluZGV4ZXNfcGFyYWxsZWxf YnVsa2RlbCA9IDA7CiAJaW50CQkJbmluZGV4ZXNfcGFyYWxsZWxfY2xlYW51cCA9IDA7CiAJaW50 CQkJcGFyYWxsZWxfd29ya2VyczsKKwlpbnQJCQltYXhfd29ya2VyczsKKworCW1heF93b3JrZXJz ID0gQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpID8KKwkJYXV0b3ZhY3V1bV9tYXhfcGFyYWxs ZWxfd29ya2VycyA6CisJCW1heF9wYXJhbGxlbF9tYWludGVuYW5jZV93b3JrZXJzOwogCiAJLyoK IAkgKiBXZSBkb24ndCBhbGxvdyBwZXJmb3JtaW5nIHBhcmFsbGVsIG9wZXJhdGlvbiBpbiBzdGFu ZGFsb25lIGJhY2tlbmQgb3IKIAkgKiB3aGVuIHBhcmFsbGVsaXNtIGlzIGRpc2FibGVkLgogCSAq LwotCWlmICghSXNVbmRlclBvc3RtYXN0ZXIgfHwgbWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dv cmtlcnMgPT0gMCkKKwlpZiAoIUlzVW5kZXJQb3N0bWFzdGVyIHx8IG1heF93b3JrZXJzID09IDAp CiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTU5OSw4ICs2MDcsOCBAQCBwYXJhbGxlbF92YWN1dW1f Y29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVx dWVzdGVkLAogCXBhcmFsbGVsX3dvcmtlcnMgPSAobnJlcXVlc3RlZCA+IDApID8KIAkJTWluKG5y ZXF1ZXN0ZWQsIG5pbmRleGVzX3BhcmFsbGVsKSA6IG5pbmRleGVzX3BhcmFsbGVsOwogCi0JLyog Q2FwIGJ5IG1heF9wYXJhbGxlbF9tYWludGVuYW5jZV93b3JrZXJzICovCi0JcGFyYWxsZWxfd29y a2VycyA9IE1pbihwYXJhbGxlbF93b3JrZXJzLCBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29y a2Vycyk7CisJLyogQ2FwIGJ5IEdVQyB2YXJpYWJsZSAqLworCXBhcmFsbGVsX3dvcmtlcnMgPSBN aW4ocGFyYWxsZWxfd29ya2VycywgbWF4X3dvcmtlcnMpOwogCiAJcmV0dXJuIHBhcmFsbGVsX3dv cmtlcnM7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0u YyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IDIxOTY3M2RiOTMw Li5lODEwZTEzMDNkYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFj dXVtLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTI3OTgs NiArMjc5OCw3IEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxl X3RvYXN0X21hcCwKIAkJaW50CQkJbXVsdGl4YWN0X2ZyZWV6ZV90YWJsZV9hZ2U7CiAJCWludAkJ CWxvZ192YWN1dW1fbWluX2R1cmF0aW9uOwogCQlpbnQJCQlsb2dfYW5hbHl6ZV9taW5fZHVyYXRp b247CisJCWludAkJCW5wYXJhbGxlbF93b3JrZXJzID0gLTE7IC8qIGRpc2FibGVkIGJ5IGRlZmF1 bHQgKi8KIAogCQkvKgogCQkgKiBDYWxjdWxhdGUgdGhlIHZhY3V1bSBjb3N0IHBhcmFtZXRlcnMg YW5kIHRoZSBmcmVlemUgYWdlcy4gIElmIHRoZXJlCkBAIC0yODU4LDggKzI4NTksMjAgQEAgdGFi bGVfcmVjaGVja19hdXRvdmFjKE9pZCByZWxpZCwgSFRBQiAqdGFibGVfdG9hc3RfbWFwLAogCQkg Ki8KIAkJdGFiLT5hdF9wYXJhbXMuaW5kZXhfY2xlYW51cCA9IFZBQ09QVFZBTFVFX1VOU1BFQ0lG SUVEOwogCQl0YWItPmF0X3BhcmFtcy50cnVuY2F0ZSA9IFZBQ09QVFZBTFVFX1VOU1BFQ0lGSUVE OwotCQkvKiBBcyBvZiBub3csIHdlIGRvbid0IHN1cHBvcnQgcGFyYWxsZWwgdmFjdXVtIGZvciBh dXRvdmFjdXVtICovCi0JCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0gLTE7CisKKwkJLyogRGVj aWRlIHdoZXRoZXIgd2UgbmVlZCB0byBwcm9jZXNzIGluZGV4ZXMgb2YgdGFibGUgaW4gcGFyYWxs ZWwuICovCisJCWlmIChhdm9wdHMpCisJCXsKKwkJCWlmIChhdm9wdHMtPmF1dG92YWN1dW1fcGFy YWxsZWxfd29ya2VycyA+IDApCisJCQkJbnBhcmFsbGVsX3dvcmtlcnMgPSBhdm9wdHMtPmF1dG92 YWN1dW1fcGFyYWxsZWxfd29ya2VyczsKKwkJCWVsc2UgaWYgKGF2b3B0cy0+YXV0b3ZhY3V1bV9w YXJhbGxlbF93b3JrZXJzID09IC0xKQorCQkJeworCQkJCW5wYXJhbGxlbF93b3JrZXJzID0gYXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA+IDAKKwkJCQkJPyBhdXRvdmFjdXVtX21heF9w YXJhbGxlbF93b3JrZXJzCisJCQkJCTogLTE7IC8qIGRpc2FibGUgcGFyYWxsZWxpc20gaWYgcGFy YW1ldGVyJ3MgdmFsdWUgaXMgMCAqLworCQkJfQorCQl9CisKIAkJdGFiLT5hdF9wYXJhbXMuZnJl ZXplX21pbl9hZ2UgPSBmcmVlemVfbWluX2FnZTsKIAkJdGFiLT5hdF9wYXJhbXMuZnJlZXplX3Rh YmxlX2FnZSA9IGZyZWV6ZV90YWJsZV9hZ2U7CiAJCXRhYi0+YXRfcGFyYW1zLm11bHRpeGFjdF9m cmVlemVfbWluX2FnZSA9IG11bHRpeGFjdF9mcmVlemVfbWluX2FnZTsKQEAgLTI4NjgsNiArMjg4 MSw3IEBAIHRhYmxlX3JlY2hlY2tfYXV0b3ZhYyhPaWQgcmVsaWQsIEhUQUIgKnRhYmxlX3RvYXN0 X21hcCwKIAkJdGFiLT5hdF9wYXJhbXMubG9nX3ZhY3V1bV9taW5fZHVyYXRpb24gPSBsb2dfdmFj dXVtX21pbl9kdXJhdGlvbjsKIAkJdGFiLT5hdF9wYXJhbXMubG9nX2FuYWx5emVfbWluX2R1cmF0 aW9uID0gbG9nX2FuYWx5emVfbWluX2R1cmF0aW9uOwogCQl0YWItPmF0X3BhcmFtcy50b2FzdF9w YXJlbnQgPSBJbnZhbGlkT2lkOworCQl0YWItPmF0X3BhcmFtcy5ud29ya2VycyA9IG5wYXJhbGxl bF93b3JrZXJzOwogCiAJCS8qCiAJCSAqIExhdGVyLCBpbiB2YWN1dW1fcmVsKCksIHdlIGNoZWNr IHJlbG9wdGlvbnMgZm9yIGFueQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9n bG9iYWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYwppbmRleCAzNmFkNzA4 YjM2MC4uODI2NWE4MmI2MzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xv YmFscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCkBAIC0xNDMsNiAr MTQzLDcgQEAgaW50CQkJTkJ1ZmZlcnMgPSAxNjM4NDsKIGludAkJCU1heENvbm5lY3Rpb25zID0g MTAwOwogaW50CQkJbWF4X3dvcmtlcl9wcm9jZXNzZXMgPSA4OwogaW50CQkJbWF4X3BhcmFsbGVs X3dvcmtlcnMgPSA4OworaW50CQkJYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA9IDI7 CiBpbnQJCQlNYXhCYWNrZW5kcyA9IDA7CiAKIC8qIEdVQyBwYXJhbWV0ZXJzIGZvciB2YWN1dW0g Ki8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Yy5jCmluZGV4IGUxNTQ2ZDljOTdhLi40NWIzOWI3YzQ3ZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Yy5jCkBAIC0zMzU4LDkgKzMzNTgsMTMgQEAgc2V0X2NvbmZpZ193aXRoX2hhbmRs ZShjb25zdCBjaGFyICpuYW1lLCBjb25maWdfaGFuZGxlICpoYW5kbGUsCiAJICoKIAkgKiBBbHNv IGFsbG93IG5vcm1hbCBzZXR0aW5nIGlmIHRoZSBHVUMgaXMgbWFya2VkIEdVQ19BTExPV19JTl9Q QVJBTExFTC4KIAkgKgotCSAqIE90aGVyIGNoYW5nZXMgbWlnaHQgbmVlZCB0byBhZmZlY3Qgb3Ro ZXIgd29ya2Vycywgc28gZm9yYmlkIHRoZW0uCisJICogT3RoZXIgY2hhbmdlcyBtaWdodCBuZWVk IHRvIGFmZmVjdCBvdGhlciB3b3JrZXJzLCBzbyBmb3JiaWQgdGhlbS4gTm90ZSwKKwkgKiB0aGF0 IHBhcmFsbGVsIGF1dG92YWN1dW0gbGVhZGVyIGlzIGFuIGV4Y2VwdGlvbiwgYmVjYXVzZSBvbmx5 CisJICogY29zdC1iYXNlZCBkZWxheXMgbmVlZCB0byBiZSBhZmZlY3RlZCBhbHNvIHRvIHBhcmFs bGVsIGF1dG92YWN1dW0KKwkgKiB3b3JrZXJzLCBhbmQgd2Ugd2lsbCBoYW5kbGUgaXQgZWxzZXdo ZXJlIGlmIGFwcHJvcHJpYXRlLgogCSAqLwotCWlmIChJc0luUGFyYWxsZWxNb2RlKCkgJiYgY2hh bmdlVmFsICYmIGFjdGlvbiAhPSBHVUNfQUNUSU9OX1NBVkUgJiYKKwlpZiAoSXNJblBhcmFsbGVs TW9kZSgpICYmICFBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYgY2hhbmdlVmFsICYmCisJ CWFjdGlvbiAhPSBHVUNfQUNUSU9OX1NBVkUgJiYKIAkJKHJlY29yZC0+ZmxhZ3MgJiBHVUNfQUxM T1dfSU5fUEFSQUxMRUwpID09IDApCiAJewogCQllcmVwb3J0KGVsZXZlbCwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0IGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKaW5kZXggMGM5ODU0YWQ4ZmMuLjNkMmZkMzVh MDA0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRh dAorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdApAQCAtMTU0 LDYgKzE1NCwxNCBAQAogICBtYXggPT4gJzIwMDAwMDAwMDAnLAogfSwKIAoreyBuYW1lID0+ICdh dXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzJywgdHlwZSA9PiAnaW50JywgY29udGV4dCA9 PiAnUEdDX1NJR0hVUCcsIGdyb3VwID0+ICdWQUNVVU1fQVVUT1ZBQ1VVTScsCisgIHNob3J0X2Rl c2MgPT4gJ01heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgdGhhdCBjYW4gYmUgdXNl ZCBieSBhIHNpbmdsZSBhdXRvdmFjdXVtIHdvcmtlci4nLAorICB2YXJpYWJsZSA9PiAnYXV0b3Zh Y3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycycsCisgIGJvb3RfdmFsID0+ICcyJywKKyAgbWluID0+ ICcwJywKKyAgbWF4ID0+ICdNQVhfUEFSQUxMRUxfV09SS0VSX0xJTUlUJywKK30sCisKIHsgbmFt ZSA9PiAnYXV0b3ZhY3V1bV9tYXhfd29ya2VycycsIHR5cGUgPT4gJ2ludCcsIGNvbnRleHQgPT4g J1BHQ19TSUdIVVAnLCBncm91cCA9PiAnVkFDVVVNX0FVVE9WQUNVVU0nLAogICBzaG9ydF9kZXNj ID0+ICdTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXNseSBydW5uaW5nIGF1 dG92YWN1dW0gd29ya2VyIHByb2Nlc3Nlcy4nLAogICB2YXJpYWJsZSA9PiAnYXV0b3ZhY3V1bV9t YXhfd29ya2VycycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5z YW1wbGUKaW5kZXggZTRhYmU2YzAwNzcuLjExZDk2ZjRkZDRmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTMsNiArNzEzLDcgQEAKICNh dXRvdmFjdXVtX3dvcmtlcl9zbG90cyA9IDE2ICAgICAgICAgICAjIGF1dG92YWN1dW0gd29ya2Vy IHNsb3RzIHRvIGFsbG9jYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAjYXV0b3ZhY3V1bV9tYXhfd29ya2VycyA9 IDMgICAgICAgICAgICAgIyBtYXggbnVtYmVyIG9mIGF1dG92YWN1dW0gc3VicHJvY2Vzc2VzCisj YXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA9IDIgICAgIyBsaW1pdGVkIGJ5IG1heF9w YXJhbGxlbF93b3JrZXJzCiAjYXV0b3ZhY3V1bV9uYXB0aW1lID0gMW1pbiAgICAgICAgICAgICAg IyB0aW1lIGJldHdlZW4gYXV0b3ZhY3V1bSBydW5zCiAjYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNo b2xkID0gNTAgICAgICAgIyBtaW4gbnVtYmVyIG9mIHJvdyB1cGRhdGVzIGJlZm9yZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgdmFjdXVtCmRpZmYgLS1naXQgYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKaW5kZXggNWJkYmYxNTMwYTIuLjI5MTcxZWZiYzFiIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5p bi5jCkBAIC0xNDMyLDYgKzE0MzIsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgdGFibGVf c3RvcmFnZV9wYXJhbWV0ZXJzW10gPSB7CiAJImF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9t YXhfYWdlIiwKIAkiYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21pbl9hZ2UiLAogCSJhdXRv dmFjdXVtX211bHRpeGFjdF9mcmVlemVfdGFibGVfYWdlIiwKKwkiYXV0b3ZhY3V1bV9wYXJhbGxl bF93b3JrZXJzIiwKIAkiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSIsCiAJImF1dG92YWN1 dW1fdmFjdXVtX2Nvc3RfbGltaXQiLAogCSJhdXRvdmFjdXVtX3ZhY3V1bV9pbnNlcnRfc2NhbGVf ZmFjdG9yIiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oIGIvc3JjL2luY2x1 ZGUvbWlzY2FkbWluLmgKaW5kZXggZjE2ZjM1NjU5YjkuLjAwMTkwYzY3ZWNmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAorKysgYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApA QCAtMTc4LDYgKzE3OCw3IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgTWF4QmFja2VuZHM7CiBl eHRlcm4gUEdETExJTVBPUlQgaW50IE1heENvbm5lY3Rpb25zOwogZXh0ZXJuIFBHRExMSU1QT1JU IGludCBtYXhfd29ya2VyX3Byb2Nlc3NlczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3Bh cmFsbGVsX3dvcmtlcnM7CitleHRlcm4gUEdETExJTVBPUlQgaW50IGF1dG92YWN1dW1fbWF4X3Bh cmFsbGVsX3dvcmtlcnM7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgY29tbWl0X3RpbWVzdGFt cF9idWZmZXJzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZl cnM7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaCBiL3NyYy9pbmNsdWRlL3V0 aWxzL3JlbC5oCmluZGV4IDIzNjgzMGY2YjkzLi5jZDFlOTJmMjMwMiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvdXRpbHMvcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKQEAgLTMx MSw2ICszMTEsOCBAQCB0eXBlZGVmIHN0cnVjdCBGb3JlaWduS2V5Q2FjaGVJbmZvCiB0eXBlZGVm IHN0cnVjdCBBdXRvVmFjT3B0cwogewogCWJvb2wJCWVuYWJsZWQ7CisKKwlpbnQJCQlhdXRvdmFj dXVtX3BhcmFsbGVsX3dvcmtlcnM7CiAJaW50CQkJdmFjdXVtX3RocmVzaG9sZDsKIAlpbnQJCQl2 YWN1dW1fbWF4X3RocmVzaG9sZDsKIAlpbnQJCQl2YWN1dW1faW5zX3RocmVzaG9sZDsKLS0gCjIu NDMuMAoK --0000000000004e5413064d6164fe Content-Type: text/x-patch; charset="US-ASCII"; name="v30-0005-Documentation-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v30-0005-Documentation-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxkf3z70 RnJvbSBkYzAxODFmZDU4NWFlNDZjNTVmMjA5ZWE2ZjU2Y2JkZmY0MGIzNWRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAzOjIzOjM4ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MzAgNS81XSBEb2N1bWVudGF0aW9uIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIGRv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sICAgICAgfCAxMiArKysrKysrKysrKysKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgfCAyMSArKysrKysrKysrKysrKysrKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCA4Y2Rk ODI2ZmJkMy4uNzc0MTc5NmM2YjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTI5MTgsNiArMjkxOCw3IEBAIGlu Y2x1ZGVfZGlyICdjb25mLmQnCiAgICAgICAgIDxwYXJhPgogICAgICAgICAgV2hlbiBjaGFuZ2lu ZyB0aGlzIHZhbHVlLCBjb25zaWRlciBhbHNvIGFkanVzdGluZwogICAgICAgICAgPHhyZWYgbGlu a2VuZD0iZ3VjLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+LAorICAgICAgICAgPHhyZWYgbGlua2Vu ZD0iZ3VjLWF1dG92YWN1dW0tbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4sCiAgICAgICAgICA8eHJl ZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFsbGVsLW1haW50ZW5hbmNlLXdvcmtlcnMiLz4sIGFuZAog ICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLW1heC1wYXJhbGxlbC13b3JrZXJzLXBlci1nYXRo ZXIiLz4uCiAgICAgICAgIDwvcGFyYT4KQEAgLTkzOTUsNiArOTM5NiwyMyBAQCBDT1BZIHBvc3Rn cmVzX2xvZyBGUk9NICcvZnVsbC9wYXRoL3RvL2xvZ2ZpbGUuY3N2JyBXSVRIIGNzdjsKICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgIDx2YXJsaXN0ZW50 cnkgaWQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIiB4cmVmbGFiZWw9ImF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMiPgorICAgICAgICA8dGVybT48dmFybmFtZT5h dXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzPC92YXJuYW1lPiAoPHR5cGU+aW50ZWdlcjwv dHlwZT4pCisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT48dmFybmFtZT5h dXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzPC92YXJuYW1lPjwvcHJpbWFyeT4KKyAgICAg ICAgIDxzZWNvbmRhcnk+Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3NlY29uZGFyeT4KKyAgICAg ICAgPC9pbmRleHRlcm0+CisgICAgICAgIDwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAg ICAgICAgPHBhcmE+CisgICAgICAgICAgU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGFyYWxs ZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHRoYXQKKyAgICAgICAgICBjYW4gYmUgdXNlZCBmb3IgcGFy YWxsZWwgaW5kZXggdmFjdXVtaW5nIGF0IG9uZSB0aW1lIGJ5IGEgc2luZ2xlCisgICAgICAgICAg YXV0b3ZhY3V1bSB3b3JrZXIuIElzIGNhcHBlZCBieSA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBh cmFsbGVsLXdvcmtlcnMiLz4uCisgICAgICAgICAgVGhlIGRlZmF1bHQgaXMgMi4KKyAgICAgICAg IDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAg ICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9zZWN0Mj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL21haW50ZW5hbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbAppbmRl eCA3Yzk1OGIwNjI3My4uZjJhMjgwZGI1NjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tYWlu dGVuYW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCkBAIC05MjYs NiArOTI2LDE4IEBAIEhJTlQ6ICBFeGVjdXRlIGEgZGF0YWJhc2Utd2lkZSBWQUNVVU0gaW4gdGhh dCBkYXRhYmFzZS4KICAgICBhdXRvdmFjdXVtIHdvcmtlcnMnIGFjdGl2aXR5LgogICAgPC9wYXJh PgogCisgICA8cGFyYT4KKyAgICBJZiBhbiBhdXRvdmFjdXVtIHdvcmtlciBwcm9jZXNzIGNvbWVz IGFjcm9zcyBhIHRhYmxlIHdpdGggdGhlIGVuYWJsZWQKKyAgICA8eHJlZiBsaW5rZW5kPSJyZWxv cHRpb24tYXV0b3ZhY3V1bS1wYXJhbGxlbC13b3JrZXJzIi8+IHN0b3JhZ2UgcGFyYW1ldGVyLAor ICAgIGl0IHdpbGwgbGF1bmNoIHBhcmFsbGVsIHdvcmtlcnMgaW4gb3JkZXIgdG8gdmFjdXVtIGlu ZGV4ZXMgb2YgdGhpcyB0YWJsZQorICAgIGluIGEgcGFyYWxsZWwgbW9kZS4gUGFyYWxsZWwgd29y a2VycyBhcmUgdGFrZW4gZnJvbSB0aGUgcG9vbCBvZiBwcm9jZXNzZXMKKyAgICBlc3RhYmxpc2hl ZCBieSA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXdvcmtlci1wcm9jZXNzZXMiLz4sIGxpbWl0ZWQg YnkKKyAgICA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4uCisgICAg VGhlIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJzIHRoYXQgY2FuIGJlIHRha2VuIGZyb20gcG9v bCBieSBhIHNpbmdsZQorICAgIGF1dG92YWN1dW0gd29ya2VyIGlzIGxpbWl0ZWQgYnkgdGhlIDx4 cmVmIGxpbmtlbmQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+CisgICAg Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICA8L3BhcmE+CisKICAgIDxwYXJhPgogICAgIElm IHNldmVyYWwgbGFyZ2UgdGFibGVzIGFsbCBiZWNvbWUgZWxpZ2libGUgZm9yIHZhY3V1bWluZyBp biBhIHNob3J0CiAgICAgYW1vdW50IG9mIHRpbWUsIGFsbCBhdXRvdmFjdXVtIHdvcmtlcnMgbWln aHQgYmVjb21lIG9jY3VwaWVkIHdpdGgKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4 IDk4MjUzMmZlNzI1Li5lMzY3MzEwYTU3MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s CkBAIC0xNzE4LDYgKzE3MTgsMjcgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgPHZhcmxpc3RlbnRyeSBpZD0icmVsb3B0 aW9uLWF1dG92YWN1dW0tcGFyYWxsZWwtd29ya2VycyIgeHJlZmxhYmVsPSJhdXRvdmFjdXVtX3Bh cmFsbGVsX3dvcmtlcnMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPmF1dG92YWN1dW1fcGFyYWxsZWxf d29ya2VyczwvbGl0ZXJhbD4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQorICAgIDxpbmRleHRlcm0+ CisgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VyczwvdmFy bmFtZT4gc3RvcmFnZSBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgPC9pbmRleHRlcm0+CisgICAg PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBTZXRzIHRoZSBtYXhp bXVtIG51bWJlciBvZiBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMgdGhhdCBjYW4gcHJvY2Vz cworICAgICAgaW5kZXhlcyBvZiB0aGlzIHRhYmxlLgorICAgICAgVGhlIGRlZmF1bHQgdmFsdWUg aXMgMCwgd2hpY2ggbWVhbnMgbm8gcGFyYWxsZWwgaW5kZXggdmFjdXVtaW5nIGZvcgorICAgICAg dGhpcyB0YWJsZS4gSWYgdmFsdWUgaXMgLTEgdGhlbiBwYXJhbGxlbCBkZWdyZWUgd2lsbCBjb21w dXRlZCBiYXNlZCBvbgorICAgICAgbnVtYmVyIG9mIGluZGV4ZXMgYW5kIGxpbWl0ZWQgYnkgdGhl IDx4cmVmIGxpbmtlbmQ9Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+Cisg ICAgICBwYXJhbWV0ZXIuCisgICAgICBOb3RlIHRoYXQgdGhlIGNvbXB1dGVkIG51bWJlciBvZiB3 b3JrZXJzIG1heSBub3QgYWN0dWFsbHkgYmUgYXZhaWxhYmxlIGF0CisgICAgICBydW4gdGltZS4g SWYgdGhpcyBvY2N1cnMsIHRoZSBhdXRvdmFjdXVtIHdpbGwgcnVuIHdpdGggZmV3ZXIgd29ya2Vy cworICAgICAgdGhhbiBleHBlY3RlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0icmVsb3B0aW9uLWF1dG92 YWN1dW0tdmFjdXVtLXRocmVzaG9sZCIgeHJlZmxhYmVsPSJhdXRvdmFjdXVtX3ZhY3V1bV90aHJl c2hvbGQiPgogICAgIDx0ZXJtPjxsaXRlcmFsPmF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZDwv bGl0ZXJhbD4sIDxsaXRlcmFsPnRvYXN0LmF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZDwvbGl0 ZXJhbD4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQogICAgIDxpbmRleHRlcm0+Ci0tIAoyLjQzLjAK Cg== --0000000000004e5413064d6164fe Content-Type: text/x-patch; charset="US-ASCII"; name="v30-0001-Add-parallel-vacuum-worker-usage-to-VACUUM-VERBO.patch" Content-Disposition: attachment; filename="v30-0001-Add-parallel-vacuum-worker-usage-to-VACUUM-VERBO.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxkf41l4 RnJvbSA5OTQxNTA1YjlkZWRiNDQ3ZGUzNzk0MDc5M2U2ODk5OWMwNmU3YmU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDE2IE1hciAyMDI2IDE5OjAxOjA1ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MzAgMS81XSBBZGQgcGFyYWxsZWwgdmFjdXVtIHdvcmtlciB1c2FnZSB0byBWQUNVVU0gKFZF UkJPU0UpCiBhbmQgYXV0b3ZhY3V1bSBsb2dzLgoKVGhpcyBjb21taXQgYWRkcyBib3RoIHRoZSBu dW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyBwbGFubmVkIGFuZCB0aGUKbnVtYmVyIG9mIHBhcmFs bGVsIHdvcmtlcnMgYWN0dWFsbHkgbGF1bmNoZWQgdG8gdGhlIG91dHB1dCBvZgpWQUNVVU0gKFZF UkJPU0UpIGFuZCBhdXRvdmFjdXVtIGxvZ3MuCgpQcmV2aW91c2x5LCB0aGlzIGluZm9ybWF0aW9u IHdhcyBvbmx5IHJlcG9ydGVkIGFzIGFuIElORk8gbWVzc2FnZQpkdXJpbmcgVkFDVVVNIChWRVJC T1NFKSwgd2hpY2ggbWVhbnQgaXQgd2FzIG5vdCBpbmNsdWRlZCBpbiBhdXRvdmFjdXVtCmxvZ3Mg aW4gcHJhY3RpY2UuIEFsdGhvdWdoIGF1dG92YWN1dW0gZG9lcyBub3QgeWV0IHN1cHBvcnQgcGFy YWxsZWwKdmFjdXVtLCBhIHN1YnNlcXVlbnQgcGF0Y2ggd2lsbCBlbmFibGUgaXQgYW5kIHV0aWxp emUgdGhlc2UgbG9ncyBpbgppdHMgcmVncmVzc2lvbiB0ZXN0cy4gVGhpcyBjaGFuZ2UgYWxzbyBp bXByb3ZlcyBvYnNlcnZhYmlsaXR5IGJ5Cm1ha2luZyBpdCBlYXNpZXIgdG8gdmVyaWZ5IGlmIHBh cmFsbGVsIHZhY3V1bSBpcyB1dGlsaXppbmcgdGhlCmV4cGVjdGVkIG51bWJlciBvZiB3b3JrZXJz LgoKQXV0aG9yOiBEYW5paWwgRGF2eWRvdiA8M2Rhbmlzc2ltb0BnbWFpbC5jb20+ClJldmlld2Vk LWJ5OiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IFNhbWkgSW1zZWloIDxzYW1pbXNlaWhAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tL0NBQ0c9ZXpaT3JOc3VMb0VUTEQxZ0Fzd1pNdUgybkdHcTdPZ2NjMFFPRTVoaFdh dz1jd0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYyAgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3ZhY3V1bXBhcmFsbGVsLmMgfCAyMyArKysrKysrKysrKysrKy0tLS0tLQogc3JjL2luY2x1 ZGUvY29tbWFuZHMvdmFjdXVtLmggICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKysrKyst LQogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICB8ICAyICsrCiA0IGZpbGVz IGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA4MmM1YjI4ZTBhZC4uYzU3NDMyNjcwZTcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTM0Myw2ICszNDMsMTMgQEAgdHlwZWRl ZiBzdHJ1Y3QgTFZSZWxTdGF0ZQogCWludAkJCW51bV9pbmRleF9zY2FuczsKIAlpbnQJCQludW1f ZGVhZF9pdGVtc19yZXNldHM7CiAJU2l6ZQkJdG90YWxfZGVhZF9pdGVtc19ieXRlczsKKworCS8q CisJICogVG90YWwgbnVtYmVyIG9mIHBsYW5uZWQgYW5kIGFjdHVhbGx5IGxhdW5jaGVkIHBhcmFs bGVsIHdvcmtlcnMgZm9yCisJICogaW5kZXggdmFjdXVtaW5nIGFuZCBpbmRleCBjbGVhbnVwLgor CSAqLworCVBWV29ya2VyVXNhZ2Ugd29ya2VyX3VzYWdlOworCiAJLyogQ291bnRlcnMgdGhhdCBm b2xsb3cgYXJlIG9ubHkgZm9yIHNjYW5uZWRfcGFnZXMgKi8KIAlpbnQ2NAkJdHVwbGVzX2RlbGV0 ZWQ7IC8qICMgZGVsZXRlZCBmcm9tIHRhYmxlICovCiAJaW50NjQJCXR1cGxlc19mcm96ZW47CS8q ICMgbmV3bHkgZnJvemVuICovCkBAIC03ODEsNiArNzg4LDExIEBAIGhlYXBfdmFjdXVtX3JlbChS ZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJdmFjcmVsLT5uZXdfYWxs X3Zpc2libGVfYWxsX2Zyb3plbl9wYWdlcyA9IDA7CiAJdmFjcmVsLT5uZXdfYWxsX2Zyb3plbl9w YWdlcyA9IDA7CiAKKwl2YWNyZWwtPndvcmtlcl91c2FnZS52YWN1dW0ubmxhdW5jaGVkID0gMDsK Kwl2YWNyZWwtPndvcmtlcl91c2FnZS52YWN1dW0ubnBsYW5uZWQgPSAwOworCXZhY3JlbC0+d29y a2VyX3VzYWdlLmNsZWFudXAubmxhdW5jaGVkID0gMDsKKwl2YWNyZWwtPndvcmtlcl91c2FnZS5j bGVhbnVwLm5wbGFubmVkID0gMDsKKwogCS8qCiAJICogR2V0IGN1dG9mZnMgdGhhdCBkZXRlcm1p bmUgd2hpY2ggZGVsZXRlZCB0dXBsZXMgYXJlIGNvbnNpZGVyZWQgREVBRCwKIAkgKiBub3QganVz dCBSRUNFTlRMWV9ERUFELCBhbmQgd2hpY2ggWElEcy9NWElEcyB0byBmcmVlemUuICBUaGVuIGRl dGVybWluZQpAQCAtMTEyMyw2ICsxMTM1LDE5IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiBy ZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCQkJCQkJIG9yaWdfcmVsX3BhZ2VzID09 IDAgPyAxMDAuMCA6CiAJCQkJCQkJIDEwMC4wICogdmFjcmVsLT5scGRlYWRfaXRlbV9wYWdlcyAv IG9yaWdfcmVsX3BhZ2VzLAogCQkJCQkJCSB2YWNyZWwtPmxwZGVhZF9pdGVtcyk7CisKKwkJCWlm ICh2YWNyZWwtPndvcmtlcl91c2FnZS52YWN1dW0ubnBsYW5uZWQgPiAwKQorCQkJCWFwcGVuZFN0 cmluZ0luZm8oJmJ1ZiwKKwkJCQkJCQkJIF8oInBhcmFsbGVsIHdvcmtlcnM6IGluZGV4IHZhY3V1 bTogJWQgcGxhbm5lZCwgJWQgbGF1bmNoZWQgaW4gdG90YWxcbiIpLAorCQkJCQkJCQkgdmFjcmVs LT53b3JrZXJfdXNhZ2UudmFjdXVtLm5wbGFubmVkLAorCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJf dXNhZ2UudmFjdXVtLm5sYXVuY2hlZCk7CisKKwkJCWlmICh2YWNyZWwtPndvcmtlcl91c2FnZS5j bGVhbnVwLm5wbGFubmVkID4gMCkKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsCisJCQkJCQkJ CSBfKCJwYXJhbGxlbCB3b3JrZXJzOiBpbmRleCBjbGVhbnVwOiAlZCBwbGFubmVkLCAlZCBsYXVu Y2hlZFxuIiksCisJCQkJCQkJCSB2YWNyZWwtPndvcmtlcl91c2FnZS5jbGVhbnVwLm5wbGFubmVk LAorCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJfdXNhZ2UuY2xlYW51cC5ubGF1bmNoZWQpOworCiAJ CQlmb3IgKGludCBpID0gMDsgaSA8IHZhY3JlbC0+bmluZGV4ZXM7IGkrKykKIAkJCXsKIAkJCQlJ bmRleEJ1bGtEZWxldGVSZXN1bHQgKmlzdGF0ID0gdmFjcmVsLT5pbmRzdGF0c1tpXTsKQEAgLTI2 NjksNyArMjY5NCw4IEBAIGxhenlfdmFjdXVtX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3Jl bCkKIAl7CiAJCS8qIE91dHNvdXJjZSBldmVyeXRoaW5nIHRvIHBhcmFsbGVsIHZhcmlhbnQgKi8K IAkJcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2luZGV4ZXModmFjcmVsLT5wdnMsIG9sZF9s aXZlX3R1cGxlcywKLQkJCQkJCQkJCQkJdmFjcmVsLT5udW1faW5kZXhfc2NhbnMpOworCQkJCQkJ CQkJCQl2YWNyZWwtPm51bV9pbmRleF9zY2FucywKKwkJCQkJCQkJCQkJJih2YWNyZWwtPndvcmtl cl91c2FnZS52YWN1dW0pKTsKIAogCQkvKgogCQkgKiBEbyBhIHBvc3RjaGVjayB0byBjb25zaWRl ciBhcHBseWluZyB3cmFwYXJvdW5kIGZhaWxzYWZlIG5vdy4gIE5vdGUKQEAgLTMxMDMsNyArMzEy OSw4IEBAIGxhenlfY2xlYW51cF9hbGxfaW5kZXhlcyhMVlJlbFN0YXRlICp2YWNyZWwpCiAJCS8q IE91dHNvdXJjZSBldmVyeXRoaW5nIHRvIHBhcmFsbGVsIHZhcmlhbnQgKi8KIAkJcGFyYWxsZWxf dmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXModmFjcmVsLT5wdnMsIHJlbHR1cGxlcywKIAkJCQkJ CQkJCQkJdmFjcmVsLT5udW1faW5kZXhfc2NhbnMsCi0JCQkJCQkJCQkJCWVzdGltYXRlZF9jb3Vu dCk7CisJCQkJCQkJCQkJCWVzdGltYXRlZF9jb3VudCwKKwkJCQkJCQkJCQkJJih2YWNyZWwtPndv cmtlcl91c2FnZS5jbGVhbnVwKSk7CiAJfQogCiAJLyogUmVzZXQgdGhlIHByb2dyZXNzIGNvdW50 ZXJzICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCAyNzkxMDhjYTg5 Zi4uNzc4MzRiOTZhMjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBh cmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAt MjI1LDcgKzIyNSw3IEBAIHN0cnVjdCBQYXJhbGxlbFZhY3V1bVN0YXRlCiBzdGF0aWMgaW50CXBh cmFsbGVsX3ZhY3V1bV9jb21wdXRlX3dvcmtlcnMoUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5k ZXhlcywgaW50IG5yZXF1ZXN0ZWQsCiAJCQkJCQkJCQkJCWJvb2wgKndpbGxfcGFyYWxsZWxfdmFj dXVtKTsKIHN0YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBh cmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FucywKLQkJCQkJCQkJCQkJ CWJvb2wgdmFjdXVtKTsKKwkJCQkJCQkJCQkJCWJvb2wgdmFjdXVtLCBQVldvcmtlclN0YXRzICp3 c3RhdHMpOwogc3RhdGljIHZvaWQgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfc2FmZV9pbmRleGVz KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cyk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1f cHJvY2Vzc191bnNhZmVfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMpOwogc3RhdGlj IHZvaWQgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4KFBhcmFsbGVsVmFjdXVtU3Rh dGUgKnB2cywgUmVsYXRpb24gaW5kcmVsLApAQCAtNDk5LDcgKzQ5OSw3IEBAIHBhcmFsbGVsX3Zh Y3V1bV9yZXNldF9kZWFkX2l0ZW1zKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cykKICAqLwogdm9p ZAogcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0 ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXBsZXMsCi0JCQkJCQkJCQlpbnQgbnVtX2luZGV4X3Nj YW5zKQorCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2FucywgUFZXb3JrZXJTdGF0cyAqd3N0YXRz KQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKIApAQCAtNTEwLDcgKzUxMCw3IEBA IHBhcmFsbGVsX3ZhY3V1bV9idWxrZGVsX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUg KnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZzLT5zaGFyZWQtPnJlbHR1cGxlcyA9IG51bV90 YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVzdGltYXRlZF9jb3VudCA9IHRydWU7CiAKLQlw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMsIG51bV9pbmRleF9zY2Fucywg dHJ1ZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMocHZzLCBudW1faW5k ZXhfc2NhbnMsIHRydWUsIHdzdGF0cyk7CiB9CiAKIC8qCkBAIC01MTgsNyArNTE4LDggQEAgcGFy YWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZz LCBsb25nIG51bV90YWJsZV90dXAKICAqLwogdm9pZAogcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBf YWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXBs ZXMsCi0JCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLCBib29sIGVzdGltYXRlZF9jb3VudCkK KwkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMsIGJvb2wgZXN0aW1hdGVkX2NvdW50LAorCQkJ CQkJCQkJUFZXb3JrZXJTdGF0cyAqd3N0YXRzKQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtl cigpKTsKIApAQCAtNTMwLDcgKzUzMSw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9jbGVhbnVwX2FsbF9p bmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZz LT5zaGFyZWQtPnJlbHR1cGxlcyA9IG51bV90YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVz dGltYXRlZF9jb3VudCA9IGVzdGltYXRlZF9jb3VudDsKIAotCXBhcmFsbGVsX3ZhY3V1bV9wcm9j ZXNzX2FsbF9pbmRleGVzKHB2cywgbnVtX2luZGV4X3NjYW5zLCBmYWxzZSk7CisJcGFyYWxsZWxf dmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIGZhbHNlLCB3 c3RhdHMpOwogfQogCiAvKgpAQCAtNjA3LDEwICs2MDgsMTIgQEAgcGFyYWxsZWxfdmFjdXVtX2Nv bXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLCBpbnQgbnJlcXVl c3RlZCwKIC8qCiAgKiBQZXJmb3JtIGluZGV4IHZhY3V1bSBvciBpbmRleCBjbGVhbnVwIHdpdGgg cGFyYWxsZWwgd29ya2Vycy4gIFRoaXMgZnVuY3Rpb24KICAqIG11c3QgYmUgdXNlZCBieSB0aGUg cGFyYWxsZWwgdmFjdXVtIGxlYWRlciBwcm9jZXNzLgorICoKKyAqIElmIHdzdGF0cyBpcyBub3Qg TlVMTCwgdGhlIHBhcmFsbGVsIHdvcmtlciBzdGF0aXN0aWNzIGFyZSB1cGRhdGVkLgogICovCiBz dGF0aWMgdm9pZAogcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxW YWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW5zLAotCQkJCQkJCQkJYm9vbCB2YWN1 dW0pCisJCQkJCQkJCQlib29sIHZhY3V1bSwgUFZXb3JrZXJTdGF0cyAqd3N0YXRzKQogewogCWlu dAkJCW53b3JrZXJzOwogCVBWSW5kVmFjU3RhdHVzIG5ld19zdGF0dXM7CkBAIC02NDcsNiArNjUw LDEwIEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVt U3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAJICovCiAJbndvcmtlcnMgPSBNaW4obndv cmtlcnMsIHB2cy0+cGN4dC0+bndvcmtlcnMpOwogCisJLyogVXBkYXRlIHRoZSBzdGF0aXN0aWNz LCBpZiB3ZSBhc2tlZCB0byAqLworCWlmICh3c3RhdHMgIT0gTlVMTCAmJiBud29ya2VycyA+IDAp CisJCXdzdGF0cy0+bnBsYW5uZWQgKz0gbndvcmtlcnM7CisKIAkvKgogCSAqIFNldCBpbmRleCB2 YWN1dW0gc3RhdHVzIGFuZCBtYXJrIHdoZXRoZXIgcGFyYWxsZWwgdmFjdXVtIHdvcmtlciBjYW4K IAkgKiBwcm9jZXNzIGl0LgpAQCAtNzAzLDYgKzcxMCwxMCBAQCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhf c2NhbgogCQkJLyogRW5hYmxlIHNoYXJlZCBjb3N0IGJhbGFuY2UgZm9yIGxlYWRlciBiYWNrZW5k ICovCiAJCQlWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZSA9ICYocHZzLT5zaGFyZWQtPmNvc3RfYmFs YW5jZSk7CiAJCQlWYWN1dW1BY3RpdmVOV29ya2VycyA9ICYocHZzLT5zaGFyZWQtPmFjdGl2ZV9u d29ya2Vycyk7CisKKwkJCS8qIFVwZGF0ZSB0aGUgc3RhdGlzdGljcywgaWYgd2UgYXNrZWQgdG8g Ki8KKwkJCWlmICh3c3RhdHMgIT0gTlVMTCkKKwkJCQl3c3RhdHMtPm5sYXVuY2hlZCArPSBwdnMt PnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOwogCQl9CiAKIAkJaWYgKHZhY3V1bSkKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv dmFjdXVtLmgKaW5kZXggZTg4NWE0YjljNzcuLjk1M2E1MDYxODFlIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1 dW0uaApAQCAtMzAwLDYgKzMwMCwyOCBAQCB0eXBlZGVmIHN0cnVjdCBWYWNEZWFkSXRlbXNJbmZv CiAJaW50NjQJCW51bV9pdGVtczsJCS8qIGN1cnJlbnQgIyBvZiBlbnRyaWVzICovCiB9IFZhY0Rl YWRJdGVtc0luZm87CiAKKy8qCisgKiBTdGF0aXN0aWNzIGZvciBwYXJhbGxlbCB2YWN1dW0gd29y a2VycyAocGxhbm5lZCB2cy4gYWN0dWFsKQorICovCit0eXBlZGVmIHN0cnVjdCBQVldvcmtlclN0 YXRzCit7CisJLyogTnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgcGxhbm5lZCB0byBsYXVuY2gg Ki8KKwlpbnQJCQlucGxhbm5lZDsKKworCS8qIE51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJzIHRo YXQgd2VyZSBzdWNjZXNzZnVsbHkgbGF1bmNoZWQgKi8KKwlpbnQJCQlubGF1bmNoZWQ7Cit9IFBW V29ya2VyU3RhdHM7CisKKy8qCisgKiBQVldvcmtlclVzYWdlIHN0b3JlcyBpbmZvcm1hdGlvbiBh Ym91dCB0b3RhbCBudW1iZXIgb2YgbGF1bmNoZWQgYW5kCisgKiBwbGFubmVkIHdvcmtlcnMgZHVy aW5nIHBhcmFsbGVsIHZhY3V1bSAoYm90aCBmb3IgaW5kZXggdmFjdXVtIGFuZCBjbGVhbnVwKS4K KyAqLwordHlwZWRlZiBzdHJ1Y3QgUFZXb3JrZXJVc2FnZQoreworCVBWV29ya2VyU3RhdHMgdmFj dXVtOworCVBWV29ya2VyU3RhdHMgY2xlYW51cDsKK30gUFZXb3JrZXJVc2FnZTsKKwogLyogR1VD IHBhcmFtZXRlcnMgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgZGVmYXVsdF9zdGF0aXN0aWNz X3RhcmdldDsJLyogUEdETExJTVBPUlQgZm9yIFBvc3RHSVMgKi8KIGV4dGVybiBQR0RMTElNUE9S VCBpbnQgdmFjdXVtX2ZyZWV6ZV9taW5fYWdlOwpAQCAtMzk0LDExICs0MTYsMTMgQEAgZXh0ZXJu IFRpZFN0b3JlICpwYXJhbGxlbF92YWN1dW1fZ2V0X2RlYWRfaXRlbXMoUGFyYWxsZWxWYWN1dW1T dGF0ZSAqcHZzLAogZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX3Jlc2V0X2RlYWRfaXRlbXMo UGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9i dWxrZGVsX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywKIAkJCQkJCQkJCQkJ CWxvbmcgbnVtX3RhYmxlX3R1cGxlcywKLQkJCQkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMp OworCQkJCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2FucywKKwkJCQkJCQkJCQkJCVBWV29ya2Vy U3RhdHMgKndzdGF0cyk7CiBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxf aW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsCiAJCQkJCQkJCQkJCQlsb25nIG51bV90 YWJsZV90dXBsZXMsCiAJCQkJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLAotCQkJCQkJCQkJ CQkJYm9vbCBlc3RpbWF0ZWRfY291bnQpOworCQkJCQkJCQkJCQkJYm9vbCBlc3RpbWF0ZWRfY291 bnQsCisJCQkJCQkJCQkJCQlQVldvcmtlclN0YXRzICp3c3RhdHMpOwogZXh0ZXJuIHZvaWQgcGFy YWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKTsKIAogLyog aW4gY29tbWFuZHMvYW5hbHl6ZS5jICovCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDQ2 NzNlY2E5Y2Q2Li5hNGEyZWQwNzgxNiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTIw OTAsNiArMjA5MCw4IEBAIFBWSW5kU3RhdHMKIFBWSW5kVmFjU3RhdHVzCiBQVk9JRAogUFZTaGFy ZWQKK1BWV29ya2VyVXNhZ2UKK1BWV29ya2VyU3RhdHMKIFBYX0FsaWFzCiBQWF9DaXBoZXIKIFBY X0NvbWJvCi0tIAoyLjQzLjAKCg== --0000000000004e5413064d6164fe Content-Type: text/x-patch; charset="US-ASCII"; name="v30-0004-Tests-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v30-0004-Tests-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxkf3zy1 RnJvbSA4YmVjYmNiYjYyYzg5NTM3OTU1ZGUzZWRiNWU3YTU2OGMyNDRiNjMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjUwOjIzICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MzAgNC81XSBUZXN0cyBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bQoKLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAgICAgICAgIHwgIDE4ICsrCiBzcmMvdGVzdC9tb2R1 bGVzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvbW9kdWxl cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUgICB8ICAgMiArCiBzcmMvdGVzdC9tb2R1bGVzL3Rl c3RfYXV0b3ZhY3V1bS9NYWtlZmlsZSAgICAgfCAgMjAgKysKIHNyYy90ZXN0L21vZHVsZXMvdGVz dF9hdXRvdmFjdXVtL21lc29uLmJ1aWxkICB8ICAxNSArKwogLi4uL3QvMDAxX3BhcmFsbGVsX2F1 dG92YWN1dW0ucGwgICAgICAgICAgICAgIHwgMTkxICsrKysrKysrKysrKysrKysrKwogOCBmaWxl cyBjaGFuZ2VkLCAyNTcgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL21lc29uLmJ1aWxkCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxs ZWxfYXV0b3ZhY3V1bS5wbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBj NTc0MzI2NzBlNy4uOGQyOTgwZjNlZjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKQEAgLTE1Miw2ICsxNTIsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2UvbGF0Y2guaCIKICNpbmNs dWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3JlYWRfc3RyZWFtLmgiCisj aW5jbHVkZSAidXRpbHMvaW5qZWN0aW9uX3BvaW50LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2Nh Y2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcGdfcnVzYWdlLmgiCiAjaW5jbHVkZSAidXRpbHMvdGlt ZXN0YW1wLmgiCkBAIC04NzMsNiArODc0LDE0IEBAIGhlYXBfdmFjdXVtX3JlbChSZWxhdGlvbiBy ZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJbGF6eV9jaGVja193cmFwYXJvdW5kX2Zh aWxzYWZlKHZhY3JlbCk7CiAJZGVhZF9pdGVtc19hbGxvYyh2YWNyZWwsIHBhcmFtcy5ud29ya2Vy cyk7CiAKKyNpZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5UUworCS8qCisJICogVHJpZ2dlciBpbmpl Y3Rpb24gcG9pbnQsIGlmIHBhcmFsbGVsIGF1dG92YWN1dW0gaXMgYWJvdXQgdG8gYmUgc3RhcnRl ZC4KKwkgKi8KKwlpZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYmIFBhcmFsbGVsVmFj dXVtSXNBY3RpdmUodmFjcmVsKSkKKwkJSU5KRUNUSU9OX1BPSU5UKCJhdXRvdmFjdXVtLXN0YXJ0 LXBhcmFsbGVsLXZhY3V1bSIsIE5VTEwpOworI2VuZGlmCisKIAkvKgogCSAqIENhbGwgbGF6eV9z Y2FuX2hlYXAgdG8gcGVyZm9ybSBhbGwgcmVxdWlyZWQgaGVhcCBwcnVuaW5nLCBpbmRleAogCSAq IHZhY3V1bWluZywgYW5kIGhlYXAgdmFjdXVtaW5nIChwbHVzIHJlbGF0ZWQgcHJvY2Vzc2luZykK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IDk4YWViNjZlZWM0Li42MmI2 ZjUwYjUzOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwu YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC00Niw2ICs0 Niw3IEBACiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL3By b2MuaCIKICNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCisjaW5jbHVkZSAidXRpbHMvaW5qZWN0 aW9uX3BvaW50LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRp bHMvcmVsLmgiCiAKQEAgLTY1Myw2ICs2NTQsMTQgQEAgcGFyYWxsZWxfdmFjdXVtX3VwZGF0ZV9z aGFyZWRfZGVsYXlfcGFyYW1zKHZvaWQpCiAJVmFjdXVtVXBkYXRlQ29zdHMoKTsKIAogCXNoYXJl ZF9wYXJhbXNfZ2VuZXJhdGlvbl9sb2NhbCA9IHBhcmFtc19nZW5lcmF0aW9uOworCisJZWxvZyhE RUJVRzIsCisJCSAicGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXIgdXBkYXRlZCBjb3N0IHBhcmFt czogY29zdF9saW1pdD0lZCwgY29zdF9kZWxheT0lZywgY29zdF9wYWdlX21pc3M9JWQsIGNvc3Rf cGFnZV9kaXJ0eT0lZCwgY29zdF9wYWdlX2hpdD0lZCIsCisJCSB2YWN1dW1fY29zdF9saW1pdCwK KwkJIHZhY3V1bV9jb3N0X2RlbGF5LAorCQkgVmFjdXVtQ29zdFBhZ2VNaXNzLAorCQkgVmFjdXVt Q29zdFBhZ2VEaXJ0eSwKKwkJIFZhY3V1bUNvc3RQYWdlSGl0KTsKIH0KIAogLyoKQEAgLTg5NSw2 ICs5MDQsMTUgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxW YWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW4KIAkJCQkJCQlwdnMtPnBjeHQtPm53 b3JrZXJzX2xhdW5jaGVkLCBud29ya2VycykpKTsKIAl9CiAKKyNpZmRlZiBVU0VfSU5KRUNUSU9O X1BPSU5UUworCS8qCisJICogVGhpcyBpbmplY3Rpb24gcG9pbnQgaXMgdXNlZCB0byB3YWl0IHVu dGlsIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycworCSAqIGZpbmlzaGVzIHRoZWlyIHBhcnQg b2YgaW5kZXggcHJvY2Vzc2luZy4KKwkgKi8KKwlpZiAobndvcmtlcnMgPiAwKQorCQlJTkpFQ1RJ T05fUE9JTlQoImF1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmciLCBO VUxMKTsKKyNlbmRpZgorCiAJLyogVmFjdXVtIHRoZSBpbmRleGVzIHRoYXQgY2FuIGJlIHByb2Nl c3NlZCBieSBvbmx5IGxlYWRlciBwcm9jZXNzICovCiAJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nf dW5zYWZlX2luZGV4ZXMocHZzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9NYWtl ZmlsZSBiL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKaW5kZXggMjhjZTNiMzVlZGEuLjMzNmEy MTJmYWY0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvTWFrZWZpbGUKQEAgLTE2LDYgKzE2LDcgQEAgU1VCRElSUyA9IFwKIAkJICBw bHNhbXBsZSBcCiAJCSAgc3BnaXN0X25hbWVfb3BzIFwKIAkJICB0ZXN0X2FpbyBcCisJCSAgdGVz dF9hdXRvdmFjdXVtIFwKIAkJICB0ZXN0X2JpbmFyeWhlYXAgXAogCQkgIHRlc3RfYml0bWFwc2V0 IFwKIAkJICB0ZXN0X2Jsb29tZmlsdGVyIFwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv bWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCmluZGV4IDNhYzI5MTY1 NmMxLi45Mjk2NTk5NTZjYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWls ZAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCkBAIC0xNiw2ICsxNiw3IEBAIHN1 YmRpcigncGxzYW1wbGUnKQogc3ViZGlyKCdzcGdpc3RfbmFtZV9vcHMnKQogc3ViZGlyKCdzc2xf cGFzc3BocmFzZV9jYWxsYmFjaycpCiBzdWJkaXIoJ3Rlc3RfYWlvJykKK3N1YmRpcigndGVzdF9h dXRvdmFjdXVtJykKIHN1YmRpcigndGVzdF9iaW5hcnloZWFwJykKIHN1YmRpcigndGVzdF9iaXRt YXBzZXQnKQogc3ViZGlyKCd0ZXN0X2Jsb29tZmlsdGVyJykKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfYXV0b3ZhY3V1bS8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi43MTZlMTdmNWEyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUKQEAgLTAsMCArMSwyIEBACisjIEdlbmVyYXRlZCBz dWJkaXJlY3RvcmllcworL3RtcF9jaGVjay8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE4OGVj OWY5NmEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vTWFrZWZpbGUKQEAgLTAsMCArMSwyMCBAQAorIyBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS9NYWtlZmlsZQorCitQR0ZJTEVERVNDID0gInRlc3RfYXV0b3ZhY3V1bSAtIHRlc3Qg Y29kZSBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bSIKKworVEFQX1RFU1RTID0gMQorCitFWFRSQV9J TlNUQUxMID0gc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzCisKK2V4cG9ydCBlbmFi bGVfaW5qZWN0aW9uX3BvaW50cworCitpZmRlZiBVU0VfUEdYUworUEdfQ09ORklHID0gcGdfY29u ZmlnCitQR1hTIDo9ICQoc2hlbGwgJChQR19DT05GSUcpIC0tcGd4cykKK2luY2x1ZGUgJChQR1hT KQorZWxzZQorc3ViZGlyID0gc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0KK3RvcF9i dWlsZGRpciA9IC4uLy4uLy4uLy4uCitpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZp bGUuZ2xvYmFsCitpbmNsdWRlICQodG9wX3NyY2RpcikvY29udHJpYi9jb250cmliLWdsb2JhbC5t aworZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL21l c29uLmJ1aWxkIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2ZTM5MmJjMGRlCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVp bGQKQEAgLTAsMCArMSwxNSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjQtMjAyNiwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordGVzdHMgKz0geworICAnbmFtZSc6ICd0ZXN0 X2F1dG92YWN1dW0nLAorICAnc2QnOiBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKKyAgJ2Jk JzogbWVzb24uY3VycmVudF9idWlsZF9kaXIoKSwKKyAgJ3RhcCc6IHsKKyAgICAnZW52Jzogewor ICAgICAgICdlbmFibGVfaW5qZWN0aW9uX3BvaW50cyc6IGdldF9vcHRpb24oJ2luamVjdGlvbl9w b2ludHMnKSA/ICd5ZXMnIDogJ25vJywKKyAgICB9LAorICAgICd0ZXN0cyc6IFsKKyAgICAgICd0 LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsJywKKyAgICBdLAorICB9LAorfQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3Zh Y3V1bS5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVs X2F1dG92YWN1dW0ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAz NjQwMTlkNWYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92 YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbApAQCAtMCwwICsxLDE5MSBAQAorIyBU ZXN0IHBhcmFsbGVsIGF1dG92YWN1dW0gYmVoYXZpb3IKKwordXNlIHdhcm5pbmdzIEZBVEFMID0+ ICdhbGwnOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6 VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworaWYgKCRFTlZ7ZW5hYmxlX2luamVjdGlv bl9wb2ludHN9IG5lICd5ZXMnKQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0luamVjdGlvbiBwb2lu dHMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsKK30KKworIyBCZWZvcmUgZWFjaCB0ZXN0 IHdlIHNob3VsZCBkaXNhYmxlIGF1dG92YWN1dW0gZm9yICd0ZXN0X2F1dG92YWMnIHRhYmxlIGFu ZAorIyBnZW5lcmF0ZSBzb21lIGRlYWQgdHVwbGVzIGluIGl0LiBSZXR1cm5zIHRoZSBjdXJyZW50 IGF1dG92YWN1dW1fY291bnQgb2YKKyMgdGhlIHRhYmxlIHRzZXRfYXV0b3ZhYy4KK3N1YiBwcmVw YXJlX2Zvcl9uZXh0X3Rlc3QKK3sKKwlteSAoJG5vZGUsICR0ZXN0X251bWJlcikgPSBAXzsKKwor CSRub2RlLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsIHFxeworCQlBTFRFUiBUQUJMRSB0ZXN0 X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBmYWxzZSk7CisJCVVQREFURSB0ZXN0 X2F1dG92YWMgU0VUIGNvbF8xID0gJHRlc3RfbnVtYmVyOworCX0pOworCisJbXkgJGNvdW50ID0g JG5vZGUtPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywgcXF7CisJCVNFTEVDVCBhdXRvdmFjdXVt X2NvdW50IEZST00gcGdfc3RhdF91c2VyX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Rlc3RfYXV0 b3ZhYycKKwl9KTsKKworCXJldHVybiAkY291bnQ7Cit9CisKKyMgV2FpdCBmb3IgdGhlIHRhYmxl IHRvIGJlIHZhY3V1bWVkIGJ5IGFuIGF1dG92YWN1dW0gd29ya2VyLgorc3ViIHdhaXRfZm9yX2F1 dG92YWN1dW1fY29tcGxldGUKK3sKKwlteSAoJG5vZGUsICRvbGRfY291bnQpID0gQF87CisKKwkk bm9kZS0+cG9sbF9xdWVyeV91bnRpbCgKKwkJJ3Bvc3RncmVzJywgcXF7CisJCVNFTEVDVCBhdXRv dmFjdXVtX2NvdW50ID4gJG9sZF9jb3VudCBGUk9NIHBnX3N0YXRfdXNlcl90YWJsZXMgV0hFUkUg cmVsbmFtZSA9ICd0ZXN0X2F1dG92YWMnCisJfSk7Cit9CisKK215ICRwc3FsX291dDsKKworbXkg JG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ21haW4nKTsKKyRub2RlLT5p bml0OworCisjIENvbmZpZ3VyZSBwb3N0Z3Jlcywgc28gaXQgY2FuIGxhdW5jaCBwYXJhbGxlbCBh dXRvdmFjdXVtIHdvcmtlcnMsIGxvZyBhbGwKKyMgaW5mb3JtYXRpb24gd2UgYXJlIGludGVyZXN0 ZWQgaW4gYW5kIGF1dG92YWN1dW0gd29ya3MgZnJlcXVlbnRseQorJG5vZGUtPmFwcGVuZF9jb25m KAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcXsKKwltYXhfd29ya2VyX3Byb2Nlc3NlcyA9IDIwCisJ bWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAyMAorCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtl cnMgPSA0CisJbG9nX21pbl9tZXNzYWdlcyA9IGRlYnVnMgorCWF1dG92YWN1dW1fbmFwdGltZSA9 ICcxcycKKwltaW5fcGFyYWxsZWxfaW5kZXhfc2Nhbl9zaXplID0gMAorfSk7Ciskbm9kZS0+c3Rh cnQ7CisKKyMgQ2hlY2sgaWYgdGhlIGV4dGVuc2lvbiBpbmplY3Rpb25fcG9pbnRzIGlzIGF2YWls YWJsZSwgYXMgaXQgbWF5IGJlCisjIHBvc3NpYmxlIHRoYXQgdGhpcyBzY3JpcHQgaXMgcnVuIHdp dGggaW5zdGFsbGNoZWNrLCB3aGVyZSB0aGUgbW9kdWxlCisjIHdvdWxkIG5vdCBiZSBpbnN0YWxs ZWQgYnkgZGVmYXVsdC4KK2lmICghJG5vZGUtPmNoZWNrX2V4dGVuc2lvbignaW5qZWN0aW9uX3Bv aW50cycpKQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0V4dGVuc2lvbiBpbmplY3Rpb25fcG9pbnRz IG5vdCBpbnN0YWxsZWQnOworfQorCisjIENyZWF0ZSBhbGwgZnVuY3Rpb25zIG5lZWRlZCBmb3Ig dGVzdGluZworJG5vZGUtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcXsKKwlDUkVBVEUgRVhU RU5TSU9OIGluamVjdGlvbl9wb2ludHM7Cit9KTsKKworbXkgJGluZGV4ZXNfbnVtID0gMzsKK215 ICRpbml0aWFsX3Jvd3NfbnVtID0gMTBfMDAwOworbXkgJGF1dG92YWN1dW1fcGFyYWxsZWxfd29y a2VycyA9IDI7CisKKyMgQ3JlYXRlIHRhYmxlIGFuZCBmaWxsIGl0IHdpdGggc29tZSBkYXRhCisk bm9kZS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxeworCUNSRUFURSBUQUJMRSB0ZXN0X2F1 dG92YWMgKAorCQlpZCBTRVJJQUwgUFJJTUFSWSBLRVksCisJCWNvbF8xIElOVEVHRVIsICBjb2xf MiBJTlRFR0VSLCAgY29sXzMgSU5URUdFUiwgIGNvbF80IElOVEVHRVIKKwkpIFdJVEggKGF1dG92 YWN1dW1fcGFyYWxsZWxfd29ya2VycyA9ICRhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMsCisJ CQlsb2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gPSAwKTsKKworCUlOU0VSVCBJTlRPIHRlc3Rf YXV0b3ZhYworCVNFTEVDVAorCQlnIEFTIGNvbDEsCisJCWcgKyAxIEFTIGNvbDIsCisJCWcgKyAy IEFTIGNvbDMsCisJCWcgKyAzIEFTIGNvbDQKKwlGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkaW5p dGlhbF9yb3dzX251bSkgQVMgZzsKK30pOworCisjIENyZWF0ZSBzcGVjaWZpZWQgbnVtYmVyIG9m IGItdHJlZSBpbmRleGVzIG9uIHRoZSB0YWJsZQorJG5vZGUtPnNhZmVfcHNxbCgKKwkncG9zdGdy ZXMnLCBxcXsKKwlETyBcJFwkCisJREVDTEFSRQorCQlpIElOVEVHRVI7CisJQkVHSU4KKwkJRk9S IGkgSU4gMS4uJGluZGV4ZXNfbnVtIExPT1AKKwkJCUVYRUNVVEUgZm9ybWF0KCdDUkVBVEUgSU5E RVggaWR4X2NvbF9cJXMgT04gdGVzdF9hdXRvdmFjIChjb2xfXCVzKTsnLCBpLCBpKTsKKwkJRU5E IExPT1A7CisJRU5EIFwkXCQ7Cit9KTsKKworIyBUZXN0IDEgOgorIyBPdXIgdGFibGUgaGFzIGVu b3VnaCBpbmRleGVzIGFuZCBhcHByb3ByaWF0ZSByZWxvcHRpb25zLCBzbyBhdXRvdmFjdXVtIG11 c3QKKyMgYmUgYWJsZSB0byBwcm9jZXNzIGl0IGluIHBhcmFsbGVsIG1vZGUuIEp1c3QgY2hlY2sg aWYgaXQgY2FuIGRvIGl0LgorCitteSAkYXZfY291bnQgPSBwcmVwYXJlX2Zvcl9uZXh0X3Rlc3Qo JG5vZGUsIDEpOworbXkgJGxvZ19vZmZzZXQgPSAtcyAkbm9kZS0+bG9nZmlsZTsKKworJG5vZGUt PnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcXsKKwlBTFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMg U0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSB0cnVlKTsKK30pOworCisjIFdhaXQgdW50aWwgdGhl IHBhcmFsbGVsIGF1dG92YWN1dW0gb24gdGFibGUgaXMgY29tcGxldGVkLiBBdCB0aGUgc2FtZSB0 aW1lLAorIyB3ZSBjaGVjayB0aGF0IHRoZSByZXF1aXJlZCBudW1iZXIgb2YgcGFyYWxsZWwgd29y a2VycyBoYXMgYmVlbiBzdGFydGVkLgord2FpdF9mb3JfYXV0b3ZhY3V1bV9jb21wbGV0ZSgkbm9k ZSwgJGF2X2NvdW50KTsKK29rKCAkbm9kZS0+bG9nX2NvbnRhaW5zKAorCQlxci9wYXJhbGxlbCB3 b3JrZXJzOiBpbmRleCB2YWN1dW06IDIgcGxhbm5lZCwgMiBsYXVuY2hlZCBpbiB0b3RhbC8sCisJ CSRsb2dfb2Zmc2V0KSk7CisKKyMgVGVzdCAyOgorIyBDaGVjayB3aGV0aGVyIHBhcmFsbGVsIGF1 dG92YWN1dW0gbGVhZGVyIGNhbiBwcm9wYWdhdGUgY29zdC1iYXNlZCBwYXJhbWV0ZXJzCisjIHRv IHRoZSBwYXJhbGxlbCB3b3JrZXJzLgorCiskYXZfY291bnQgPSBwcmVwYXJlX2Zvcl9uZXh0X3Rl c3QoJG5vZGUsIDIpOworJGxvZ19vZmZzZXQgPSAtcyAkbm9kZS0+bG9nZmlsZTsKKworJG5vZGUt PnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19h dHRhY2goJ2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFjdXVtJywgJ3dhaXQnKTsKKwlTRUxF Q1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2F1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRl eGVzLXByb2Nlc3NpbmcnLCAnd2FpdCcpOworCisJQUxURVIgVEFCTEUgdGVzdF9hdXRvdmFjIFNF VCAoYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzID0gMSwgYXV0b3ZhY3V1bV9lbmFibGVkID0g dHJ1ZSk7Cit9KTsKKworIyBXYWl0IHVudGlsIHBhcmFsbGVsIGF1dG92YWN1dW0gaXMgaW5pdGVk Ciskbm9kZS0+d2FpdF9mb3JfZXZlbnQoJ2F1dG92YWN1dW0gd29ya2VyJywKKwknYXV0b3ZhY3V1 bS1zdGFydC1wYXJhbGxlbC12YWN1dW0nKTsKKworIyBVcGRhdGUgdGhlIHNoYXJlZCBjb3N0LWJh c2VkIGRlbGF5IHBhcmFtZXRlcnMuCiskbm9kZS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFx eworCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nvc3RfbGltaXQgPSA1MDA7CisJQUxURVIgU1lT VEVNIFNFVCB2YWN1dW1fY29zdF9wYWdlX21pc3MgPSAxMDsKKwlBTFRFUiBTWVNURU0gU0VUIHZh Y3V1bV9jb3N0X3BhZ2VfZGlydHkgPSAxMDsKKwlBTFRFUiBTWVNURU0gU0VUIHZhY3V1bV9jb3N0 X3BhZ2VfaGl0ID0gMTA7CisJU0VMRUNUIHBnX3JlbG9hZF9jb25mKCk7Cit9KTsKKworIyBSZXN1 bWUgdGhlIGxlYWRlciBwcm9jZXNzIHRvIHVwZGF0ZSB0aGUgc2hhcmVkIHBhcmFtZXRlcnMgZHVy aW5nIGhlYXAgc2NhbiAoaS5lLgorIyB2YWN1dW1fZGVsYXlfcG9pbnQoKSBpcyBjYWxsZWQpIGFu ZCBsYXVuY2ggYSBwYXJhbGxlbCB2YWN1dW0gd29ya2VyLCBidXQgaXQgc3RvcHMKKyMgYmVmb3Jl IHZhY3V1bWluZyBpbmRleGVzIGR1ZSB0byB0aGUgaW5qZWN0aW9uIHBvaW50LgorJG5vZGUtPnNh ZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtl dXAoJ2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFjdXVtJyk7Cit9KTsKKyRub2RlLT53YWl0 X2Zvcl9ldmVudCgnYXV0b3ZhY3V1bSB3b3JrZXInLAorCSdhdXRvdmFjdXVtLWxlYWRlci1iZWZv cmUtaW5kZXhlcy1wcm9jZXNzaW5nJyk7CisKKyMgQ2hlY2sgd2hldGhlciBwYXJhbGxlbCB3b3Jr ZXIgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgYWxsIHBhcmFtZXRlcnMgZHVyaW5nCisjIGluZGV4IHBy b2Nlc3NpbmcKKyRub2RlLT53YWl0X2Zvcl9sb2coCisJcXIvcGFyYWxsZWwgYXV0b3ZhY3V1bSB3 b3JrZXIgdXBkYXRlZCBjb3N0IHBhcmFtczogY29zdF9saW1pdD01MDAsIGNvc3RfZGVsYXk9Miwg Y29zdF9wYWdlX21pc3M9MTAsIGNvc3RfcGFnZV9kaXJ0eT0xMCwgY29zdF9wYWdlX2hpdD0xMC8s CisJJGxvZ19vZmZzZXQpOworCiskbm9kZS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxewor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3Jl LWluZGV4ZXMtcHJvY2Vzc2luZycpOworfSk7CisKK3dhaXRfZm9yX2F1dG92YWN1dW1fY29tcGxl dGUoJG5vZGUsICRhdl9jb3VudCk7CisKKyMgQ2xlYW51cAorJG5vZGUtPnNhZmVfcHNxbCgKKwkn cG9zdGdyZXMnLCBxcXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2F1dG92YWN1 dW0tc3RhcnQtcGFyYWxsZWwtdmFjdXVtJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0 YWNoKCdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJyk7Cit9KTsK KworJG5vZGUtPnN0b3A7Citkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNDMuMAoK --0000000000004e5413064d6164fe Content-Type: text/x-patch; charset="US-ASCII"; name="v29--v30-diff-for-0004.patch" Content-Disposition: attachment; filename="v29--v30-diff-for-0004.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxkfkz85 RnJvbSAyNDkwZTBmNDkyMDk2ZDMzZjU2ZWI4ZDBhMmEzZGEzNTQzNGRmYTFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUaHUsIDE5IE1hciAyMDI2IDIxOjI1OjQwICswNzAwClN1YmplY3Q6IFtQQVRD SF0gZml4ZXMgZm9yIDAwMDQKCi0tLQogLi4uL3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwg ICAgICAgICAgICAgIHwgNjEgKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDM2 IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBs CmluZGV4IDJmMzQ5OTlkMjVlLi4wMzY0MDE5ZDVmMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbAorKysgYi9z cmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVt LnBsCkBAIC0xNywxMiArMTcsMTQgQEAgc3ViIHByZXBhcmVfZm9yX25leHRfdGVzdAogewogCW15 ICgkbm9kZSwgJHRlc3RfbnVtYmVyKSA9IEBfOwogCi0JJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxcXsKKwkkbm9kZS0+c2FmZV9wc3FsKAorCQkncG9zdGdyZXMnLCBxcXsKIAkJQUxURVIg VEFCTEUgdGVzdF9hdXRvdmFjIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gZmFsc2UpOwogCQlV UERBVEUgdGVzdF9hdXRvdmFjIFNFVCBjb2xfMSA9ICR0ZXN0X251bWJlcjsKIAl9KTsKIAotCW15 ICRjb3VudCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJbXkgJGNvdW50ID0g JG5vZGUtPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywgcXF7CiAJCVNFTEVDVCBhdXRvdmFjdXVt X2NvdW50IEZST00gcGdfc3RhdF91c2VyX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Rlc3RfYXV0 b3ZhYycKIAl9KTsKIApAQCAtMzQsNyArMzYsOCBAQCBzdWIgd2FpdF9mb3JfYXV0b3ZhY3V1bV9j b21wbGV0ZQogewogCW15ICgkbm9kZSwgJG9sZF9jb3VudCkgPSBAXzsKIAotCSRub2RlLT5wb2xs X3F1ZXJ5X3VudGlsKCdwb3N0Z3JlcycsIHFxeworCSRub2RlLT5wb2xsX3F1ZXJ5X3VudGlsKAor CQkncG9zdGdyZXMnLCBxcXsKIAkJU0VMRUNUIGF1dG92YWN1dW1fY291bnQgPiAkb2xkX2NvdW50 IEZST00gcGdfc3RhdF91c2VyX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ3Rlc3RfYXV0b3ZhYycK IAl9KTsKIH0KQEAgLTQ2LDcgKzQ5LDggQEAgJG5vZGUtPmluaXQ7CiAKICMgQ29uZmlndXJlIHBv c3RncmVzLCBzbyBpdCBjYW4gbGF1bmNoIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycywgbG9n IGFsbAogIyBpbmZvcm1hdGlvbiB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBhbmQgYXV0b3ZhY3V1bSB3 b3JrcyBmcmVxdWVudGx5Ci0kbm9kZS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsIHFx eworJG5vZGUtPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcXsKIAltYXhfd29y a2VyX3Byb2Nlc3NlcyA9IDIwCiAJbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAyMAogCWF1dG92YWN1 dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSA0CkBAIC02NSw3ICs2OSw4IEBAIGlmICghJG5vZGUt PmNoZWNrX2V4dGVuc2lvbignaW5qZWN0aW9uX3BvaW50cycpKQogfQogCiAjIENyZWF0ZSBhbGwg ZnVuY3Rpb25zIG5lZWRlZCBmb3IgdGVzdGluZwotJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCBxcXsKKyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CiAJQ1JFQVRFIEVYVEVO U0lPTiBpbmplY3Rpb25fcG9pbnRzOwogfSk7CiAKQEAgLTc0LDcgKzc5LDggQEAgbXkgJGluaXRp YWxfcm93c19udW0gPSAxMF8wMDA7CiBteSAkYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzID0g MjsKIAogIyBDcmVhdGUgdGFibGUgYW5kIGZpbGwgaXQgd2l0aCBzb21lIGRhdGEKLSRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7Ciskbm9kZS0+c2FmZV9wc3FsKAorCSdwb3N0Z3Jlcycs IHFxewogCUNSRUFURSBUQUJMRSB0ZXN0X2F1dG92YWMgKAogCQlpZCBTRVJJQUwgUFJJTUFSWSBL RVksCiAJCWNvbF8xIElOVEVHRVIsICBjb2xfMiBJTlRFR0VSLCAgY29sXzMgSU5URUdFUiwgIGNv bF80IElOVEVHRVIKQEAgLTkxLDcgKzk3LDggQEAgJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCBxcXsKIH0pOwogCiAjIENyZWF0ZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGItdHJlZSBpbmRleGVz IG9uIHRoZSB0YWJsZQotJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKyRub2RlLT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CiAJRE8gXCRcJAogCURFQ0xBUkUKIAkJaSBJTlRF R0VSOwpAQCAtMTA5LDE1ICsxMTYsMTcgQEAgJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx cXsKIG15ICRhdl9jb3VudCA9IHByZXBhcmVfZm9yX25leHRfdGVzdCgkbm9kZSwgMSk7CiBteSAk bG9nX29mZnNldCA9IC1zICRub2RlLT5sb2dmaWxlOwogCi0kbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHFxeworJG5vZGUtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcXsKIAlBTFRFUiBU QUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSB0cnVlKTsKIH0pOwog CiAjIFdhaXQgdW50aWwgdGhlIHBhcmFsbGVsIGF1dG92YWN1dW0gb24gdGFibGUgaXMgY29tcGxl dGVkLiBBdCB0aGUgc2FtZSB0aW1lLAogIyB3ZSBjaGVjayB0aGF0IHRoZSByZXF1aXJlZCBudW1i ZXIgb2YgcGFyYWxsZWwgd29ya2VycyBoYXMgYmVlbiBzdGFydGVkLgogd2FpdF9mb3JfYXV0b3Zh Y3V1bV9jb21wbGV0ZSgkbm9kZSwgJGF2X2NvdW50KTsKLW9rKCRub2RlLT5sb2dfY29udGFpbnMo cXIvcGFyYWxsZWwgd29ya2VyczogaW5kZXggdmFjdXVtOiAyIHBsYW5uZWQsIDIgbGF1bmNoZWQg aW4gdG90YWwvLAotCQkJCQkgICAkbG9nX29mZnNldCkpOworb2soICRub2RlLT5sb2dfY29udGFp bnMoCisJCXFyL3BhcmFsbGVsIHdvcmtlcnM6IGluZGV4IHZhY3V1bTogMiBwbGFubmVkLCAyIGxh dW5jaGVkIGluIHRvdGFsLywKKwkJJGxvZ19vZmZzZXQpKTsKIAogIyBUZXN0IDI6CiAjIENoZWNr IHdoZXRoZXIgcGFyYWxsZWwgYXV0b3ZhY3V1bSBsZWFkZXIgY2FuIHByb3BhZ2F0ZSBjb3N0LWJh c2VkIHBhcmFtZXRlcnMKQEAgLTEyNiw3ICsxMzUsOCBAQCBvaygkbm9kZS0+bG9nX2NvbnRhaW5z KHFyL3BhcmFsbGVsIHdvcmtlcnM6IGluZGV4IHZhY3V1bTogMiBwbGFubmVkLCAyIGxhdW5jaGVk CiAkYXZfY291bnQgPSBwcmVwYXJlX2Zvcl9uZXh0X3Rlc3QoJG5vZGUsIDIpOwogJGxvZ19vZmZz ZXQgPSAtcyAkbm9kZS0+bG9nZmlsZTsKIAotJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx cXsKKyRub2RlLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXF7CiAJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bScsICd3YWl0 Jyk7CiAJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLWxlYWRlci1i ZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJywgJ3dhaXQnKTsKIApAQCAtMTM0LDEzICsxNDQsMTIg QEAgJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKIH0pOwogCiAjIFdhaXQgdW50aWwg cGFyYWxsZWwgYXV0b3ZhY3V1bSBpcyBpbml0ZWQKLSRub2RlLT53YWl0X2Zvcl9ldmVudCgKLQkn YXV0b3ZhY3V1bSB3b3JrZXInLAotCSdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bScK LSk7Ciskbm9kZS0+d2FpdF9mb3JfZXZlbnQoJ2F1dG92YWN1dW0gd29ya2VyJywKKwknYXV0b3Zh Y3V1bS1zdGFydC1wYXJhbGxlbC12YWN1dW0nKTsKIAogIyBVcGRhdGUgdGhlIHNoYXJlZCBjb3N0 LWJhc2VkIGRlbGF5IHBhcmFtZXRlcnMuCi0kbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFx eworJG5vZGUtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcXsKIAlBTFRFUiBTWVNURU0gU0VU IHZhY3V1bV9jb3N0X2xpbWl0ID0gNTAwOwogCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nvc3Rf cGFnZV9taXNzID0gMTA7CiAJQUxURVIgU1lTVEVNIFNFVCB2YWN1dW1fY29zdF9wYWdlX2RpcnR5 ID0gMTA7CkBAIC0xNTEsMjcgKzE2MCwyOSBAQCAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHFxewogIyBSZXN1bWUgdGhlIGxlYWRlciBwcm9jZXNzIHRvIHVwZGF0ZSB0aGUgc2hhcmVkIHBh cmFtZXRlcnMgZHVyaW5nIGhlYXAgc2NhbiAoaS5lLgogIyB2YWN1dW1fZGVsYXlfcG9pbnQoKSBp cyBjYWxsZWQpIGFuZCBsYXVuY2ggYSBwYXJhbGxlbCB2YWN1dW0gd29ya2VyLCBidXQgaXQgc3Rv cHMKICMgYmVmb3JlIHZhY3V1bWluZyBpbmRleGVzIGR1ZSB0byB0aGUgaW5qZWN0aW9uIHBvaW50 LgotJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKyRub2RlLT5zYWZlX3BzcWwoCisJ J3Bvc3RncmVzJywgcXF7CiAJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdhdXRvdmFj dXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bScpOwogfSk7Ci0kbm9kZS0+d2FpdF9mb3JfZXZlbnQo Ci0JJ2F1dG92YWN1dW0gd29ya2VyJywKLQknYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4 ZXMtcHJvY2Vzc2luZycKLSk7Ciskbm9kZS0+d2FpdF9mb3JfZXZlbnQoJ2F1dG92YWN1dW0gd29y a2VyJywKKwknYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZycpOwog CiAjIENoZWNrIHdoZXRoZXIgcGFyYWxsZWwgd29ya2VyIHN1Y2Nlc3NmdWxseSB1cGRhdGVkIGFs bCBwYXJhbWV0ZXJzIGR1cmluZwogIyBpbmRleCBwcm9jZXNzaW5nCi0kbm9kZS0+d2FpdF9mb3Jf bG9nKHFyL3BhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VyIHVwZGF0ZWQgY29zdCBwYXJhbXM6IGNv c3RfbGltaXQ9NTAwLCBjb3N0X2RlbGF5PTIsIGNvc3RfcGFnZV9taXNzPTEwLCBjb3N0X3BhZ2Vf ZGlydHk9MTAsIGNvc3RfcGFnZV9oaXQ9MTAvLAotCQkJCQkkbG9nX29mZnNldCk7Ciskbm9kZS0+ d2FpdF9mb3JfbG9nKAorCXFyL3BhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VyIHVwZGF0ZWQgY29z dCBwYXJhbXM6IGNvc3RfbGltaXQ9NTAwLCBjb3N0X2RlbGF5PTIsIGNvc3RfcGFnZV9taXNzPTEw LCBjb3N0X3BhZ2VfZGlydHk9MTAsIGNvc3RfcGFnZV9oaXQ9MTAvLAorCSRsb2dfb2Zmc2V0KTsK IAotJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKyRub2RlLT5zYWZlX3BzcWwoCisJ J3Bvc3RncmVzJywgcXF7CiAJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdhdXRvdmFj dXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJyk7CiB9KTsKIAogd2FpdF9mb3Jf YXV0b3ZhY3V1bV9jb21wbGV0ZSgkbm9kZSwgJGF2X2NvdW50KTsKIAogIyBDbGVhbnVwCi0kbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworJG5vZGUtPnNhZmVfcHNxbCgKKwkncG9zdGdy ZXMnLCBxcXsKIAlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2F1dG92YWN1dW0tc3Rh cnQtcGFyYWxsZWwtdmFjdXVtJyk7CiAJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdh dXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJyk7CiB9KTsKLS0gCjIu NDMuMAoK --0000000000004e5413064d6164fe Content-Type: text/x-patch; charset="US-ASCII"; name="v29--v30-diff-for-0002.patch" Content-Disposition: attachment; filename="v29--v30-diff-for-0002.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmxkfkzp6 RnJvbSAwMjkzNTRjZjQwZmVhNDI4YzIwZGUwOWNjYWNjNmFmZTUwM2M3M2Y2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUaHUsIDE5IE1hciAyMDI2IDIxOjE5OjM1ICswNzAwClN1YmplY3Q6IFtQQVRD SF0gZml4ZXMgZm9yIDAwMDIKCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRp b25zLmMgICAgfCAyICstCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyAgICAg ICB8IDYgKysrKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCB8 IDIgKy0KIHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5oICAgICAgICAgICAgICAgICAgIHwgNyAtLS0t LS0tCiA0IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYwppbmRleCAwNTU1ODVjMzhmMy4uMDNl NmZhZTkzMGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9u cy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0yMzgs NyArMjM4LDcgQEAgc3RhdGljIHJlbG9wdF9pbnQgaW50UmVsT3B0c1tdID0KIAl7CiAJCXsKIAkJ CSJhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMiLAotCQkJIk1heGltdW0gbnVtYmVyIG9mIHBh cmFsbGVsIGF1dG92YWN1dW0gd29ya2VycyB0aGF0IGNhbiBiZSB1c2VkIGZvciBwcm9jZXNzaW5n IHRoaXMgdGFibGUuIiwKKwkJCSJPdmVycmlkZXMgdmFsdWUgb2YgdGhlIGF1dG92YWN1dW1fbWF4 X3BhcmFsbGVsX3dvcmtlcnMgcGFyYW1ldGVyIGZvciB0aGlzIHRhYmxlLCBpZiA+IC0xLiIsCiAJ CQlSRUxPUFRfS0lORF9IRUFQLAogCQkJU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrCiAJCX0sCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IGZmNTdkOGZjYTJhLi5lODEwZTEzMDNk YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTI4NjYsNyArMjg2NiwxMSBA QCB0YWJsZV9yZWNoZWNrX2F1dG92YWMoT2lkIHJlbGlkLCBIVEFCICp0YWJsZV90b2FzdF9tYXAs CiAJCQlpZiAoYXZvcHRzLT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPiAwKQogCQkJCW5w YXJhbGxlbF93b3JrZXJzID0gYXZvcHRzLT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnM7CiAJ CQllbHNlIGlmIChhdm9wdHMtPmF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyA9PSAtMSkKLQkJ CQlucGFyYWxsZWxfd29ya2VycyA9IDA7CisJCQl7CisJCQkJbnBhcmFsbGVsX3dvcmtlcnMgPSBh dXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzID4gMAorCQkJCQk/IGF1dG92YWN1dW1fbWF4 X3BhcmFsbGVsX3dvcmtlcnMKKwkJCQkJOiAtMTsgLyogZGlzYWJsZSBwYXJhbGxlbGlzbSBpZiBw YXJhbWV0ZXIncyB2YWx1ZSBpcyAwICovCisJCQl9CiAJCX0KIAogCQl0YWItPmF0X3BhcmFtcy5m cmVlemVfbWluX2FnZSA9IGZyZWV6ZV9taW5fYWdlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1 Y19wYXJhbWV0ZXJzLmRhdAppbmRleCBiYzIzZGRmNTIwMS4uM2QyZmQzNWEwMDQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CkBAIC0xNTUsNyArMTU1LDcgQEAK IH0sCiAKIHsgbmFtZSA9PiAnYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycycsIHR5cGUg PT4gJ2ludCcsIGNvbnRleHQgPT4gJ1BHQ19TSUdIVVAnLCBncm91cCA9PiAnVkFDVVVNX0FVVE9W QUNVVU0nLAotICBzaG9ydF9kZXNjID0+ICdNYXhpbXVtIG51bWJlciBvZiBwYXJhbGxlbCBwcm9j ZXNzZXMgcGVyIGF1dG92YWN1dW1pbmcgb2Ygb25lIHRhYmxlLicsCisgIHNob3J0X2Rlc2MgPT4g J01heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgdGhhdCBjYW4gYmUgdXNlZCBieSBh IHNpbmdsZSBhdXRvdmFjdXVtIHdvcmtlci4nLAogICB2YXJpYWJsZSA9PiAnYXV0b3ZhY3V1bV9t YXhfcGFyYWxsZWxfd29ya2VycycsCiAgIGJvb3RfdmFsID0+ICcyJywKICAgbWluID0+ICcwJywK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMv cmVsLmgKaW5kZXggMTk4MTk1NDAwOGUuLmNkMWU5MmYyMzAyIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS91dGlscy9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMzEyLDE0 ICszMTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBBdXRvVmFjT3B0cwogewogCWJvb2wJCWVuYWJsZWQ7 CiAKLQkvKgotCSAqIFRhcmdldCBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJz LiAwIGJ5IGRlZmF1bHQgZGlzYWJsZXMKLQkgKiBwYXJhbGxlbCB2YWN1dW0gZHVyaW5nIGF1dG92 YWN1dW0uIC0xIG1lYW5zIGNob29zZSB0aGUgcGFyYWxsZWwgZGVncmVlCi0JICogYmFzZWQgb24g dGhlIG51bWJlciBvZiBpbmRleGVzICh0aGUgYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2Vy cwotCSAqIHBhcmFtZXRlciB3aWxsIGJlIHVzZWQgYXMgYSBsaW1pdCkuCi0JICovCiAJaW50CQkJ YXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzOwotCiAJaW50CQkJdmFjdXVtX3RocmVzaG9sZDsK IAlpbnQJCQl2YWN1dW1fbWF4X3RocmVzaG9sZDsKIAlpbnQJCQl2YWN1dW1faW5zX3RocmVzaG9s ZDsKLS0gCjIuNDMuMAoK --0000000000004e5413064d6164fe--