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 1w2Xdl-000Npl-0A for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Mar 2026 16:51:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2Xdj-003KU7-3B for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Mar 2026 16:51:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w2Xdj-003KTy-1o for pgsql-hackers@lists.postgresql.org; Tue, 17 Mar 2026 16:51:31 +0000 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2Xdg-00000000dYD-1klv for pgsql-hackers@lists.postgresql.org; Tue, 17 Mar 2026 16:51:31 +0000 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-5a13d40c760so5969894e87.0 for ; Tue, 17 Mar 2026 09:51:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773766287; cv=none; d=google.com; s=arc-20240605; b=ZgrQr2QUCCwkQvidkRh0EXQr4MluW8awp9uyf2pQvZuuiyxmD8D6domBAU+qrPPbhG sNHFjKivzDcNfEeMtiWkA3XOoRStsHDgMXs9UJi7umNUiTt2JeiCvys4wlPw+vvNqkLr U4+klR03zZJ4rZdiWqcEueuuJRNUKVJ0IAs7A/x1YCyeW4OKa+rmpSGEqUUFawsmncQL w3qveZTXWNAu8teeZ8nMcdnr+rSZIE+PCt7b5IvIYFeZDnFQaCLsStXF8lzt5Fi0iD7E 1Z4h6Tmqj5+Z5+TP+Jo1Kl71vMdOGCmNRAyOUzrP2P4s+JzVKB4Bw1xIcEBO+cfEYaGc yQVA== 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=7+rQYZmVFVjgtkrJWve77RuB435dMtaNR5IIRpj+DZI=; fh=X2532VQjpAP1JCqQYqwmNVwBEy//4aTUvXE3vfPTxPg=; b=IRkBqlw9bUgvdY/oFbgHtmxGIM9E6sm1tgE5pGETTZDzjFwqYVobaOWT1x3T8Ep5mx oQke7DeElH+V4krFAYu56n9aEhY1vlJ4HDQJIQIx4DYLYDefZZHnlt9vsoCjyUuBQ9IO gNlEE/DbzOpywJs4XmXdhyNupI/pROKImHprtggcl3cZfAyjgMT4m1wrA+qz0ligPeAC 10RC52l5+Wdx0xkg1Ux96wNSA0YJpgZQqHJMsqztm9FdTny+46hynu1Cc78Y7B57dV0D 9zPCcG8Q71o5OdiRSoG5Q5VlOt4zwGovGuAeX5gIVdwSFzAr3w6uOVnlBiqsrkBXR30N LwnA==; 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=1773766287; x=1774371087; 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=7+rQYZmVFVjgtkrJWve77RuB435dMtaNR5IIRpj+DZI=; b=TdpxVm3ALygK/o9CyQkd93Lts6/jybJxk+WIR7c6ycRetd0P1InxK1iaPbL27fR3bO 9Cnm6B1GNpbYpRkFQlkDMTR8D3DEoHZ9XmRfMTiDsftifxB91JFUtEL9Bjt+t8keSB6/ KrZhkPIU2Hi/iXVNlKt0xyhPA7EMJtfEygv8h/AJCTjZDACCtw4dZLsIp3+QH/eF5M/d tJNfWSMYub7w7wof0skxJkWWkWSihnWezyuCIG2KU35uTW6NM920HW5J8NVboMh/K8Hr 8BErULIkES/YEd+A+H7oGDzl5NR1jAL+rWunEStMsTEjVgMi8tPHuOJ68FUm1hADIM6a 75Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773766287; x=1774371087; 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=7+rQYZmVFVjgtkrJWve77RuB435dMtaNR5IIRpj+DZI=; b=NdsWfuTRDvdIvWpfEBoMnc0yd8CMjU7/NC1M0dsNRAZ9pKm/p4ddKnxUgOPFudqDdn i5/PUnj95hXRcVGsF1Cr/8Swho2r9UfUGewc2OqjrCWy+cH3uSMKjvVVEJ5LErcr3SOl Vvnatk5PH9AyvqJXhwyE92Ay5iNDCoClexRtZzBYr0spzK0VKl3GdPFrCzamCl5RR3rB smFDPwm+BOOpovNW1opKFJMwucUdWd4dmt01rfbnOOLjpvdSYQGn1zurYmot94NqYgxZ nEohSfbdQQYw5ImGJL61j/V1rcb5mr8EBBsR5eh4mvqz6IPETj9iqCYJDl8ocahfeb6Z 6jEg== X-Forwarded-Encrypted: i=1; AJvYcCVCwpGMjqA4pLeN+hLUraKJI5GjsTRMofD0WdzBUhfNOrsRsMJieSjaeTfohJwrgQGYm4qYEvuZ3mRw15HW@lists.postgresql.org X-Gm-Message-State: AOJu0YwlYKXx7e+OtsUo8CZVBCn+tzAlZCjI95XbNPc2OElzyU6aywQ+ zzSPFcEFQI7s7mJYadkDx0lMfSipDvIGK6alnM1AHkgw4xPHI+3aTP4tVRmdUncFtJvBgrZX3b9 eNij8Ba8iPtRBvu9hSj1azQOFxF2kjGA= X-Gm-Gg: ATEYQzxy4syQsyN4YN8XgVdfnitbzWEqBXlzmitXeDE5n2GfGvhd0jeW7Jl4wmer4KC xSuh3J1UaNWqPhZcqJLE94HHGh5iDeMDlyf8lJNaoEEqcNTPW6VlVty97s9RHgCKK3GeMryAfR9 ufw6J0W6CbLFXWWDOa+AQ0lOLY8HF3MqxgCqYlwfbLgyW3xFkg3rDme9eu1f3vaOPLpJfRI9Otw Q+MTUQoud8SsaboQA6lpriouEo7565my+mQoaO4+PXCbGYDZ40Az9o+he6BhQ9CUwG13S/1jJad CRUeGVfeEwo+WXMLnM8= X-Received: by 2002:a19:6b0c:0:b0:5a2:793d:ce6 with SMTP id 2adb3069b0e04-5a2796cb01dmr70728e87.32.1773766286492; Tue, 17 Mar 2026 09:51:26 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Masahiko Sawada Date: Tue, 17 Mar 2026 09:50:48 -0700 X-Gm-Features: AaiRm52nAOmBDzswPKDRZ5EN5H8NPCh9yOdfeaADcs52tsU0QxNWik8eFWgsXZk Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: Daniil Davydov <3danissimo@gmail.com> Cc: Sami Imseih , Alexander Korotkov , Matheus Alcantara , Maxim Orlov , Postgres hackers Content-Type: multipart/mixed; boundary="0000000000006bed5b064d3b256b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006bed5b064d3b256b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Mar 16, 2026 at 1:54=E2=80=AFPM Daniil Davydov <3danissimo@gmail.co= m> wrote: > > Hi, > > On Mon, Mar 16, 2026 at 11:46=E2=80=AFPM Masahiko Sawada wrote: > > > > While both ideas can achieve our goal of this feature in general, the > > new idea doesn't require an additional layer of reserve/release logic > > on top of the existing bgworker pool, which is good. I've not tried > > coding this idea but I believe the patch can be simplified very much. > > So I agree to move to this idea. > > > > OK, let's do it! > > Please, see an updated set of patches. Main changes are : > 0001 patch - removed all logic related to the parallel workers reserving. > 0002 patch - no changes regarding v26. > 0003 patch - no changes regarding v26. > 0004 patch - removed all stuff related to the "test_autovacuum" extension= . > Also removed 3th, 4th and 5th tests, because they were relat= ed > only to the workers reserving logic. > 0005 patch - minor changes reflecting the new GUC parameter's purpose. > > I have maintained the independence of the tests from the user-facing logg= ing. > Instead of "nworkers released" logs I have added a single log at the end = of > one round of parallel processing : > "av worker: finished parallel index processing with N parallel workers". > This is the only code that I added rather than deleted within the 0001 pa= tch. > > I hope I didn't miss anything. Thank you for updating the patch! I find the current behavior of the autovacuum_parallel_workers storage parameter somewhat unintuitive for users. The documentation currently states: + + Sets the maximum number of parallel autovacuum workers that can proc= ess + indexes of this table. + The default value is -1, which means no parallel index vacuuming for + this table. If value is 0 then parallel degree will computed based o= n + number of indexes. + Note that the computed number of workers may not actually be availab= le at + run time. If this occurs, the autovacuum will run with fewer workers + than expected. + It is quite confusing that setting the value to 0 does not actually disable the parallel vacuum. In many other PostgreSQL parameters, 0 typically means "off" or "no workers." I think that this parameter should behave as follows: -1: Use the value of autovacuum_max_parallel_workers (GUC) as the limit (fallback). >=3D0: Use the specified value as the limit, capped by autovacuum_max_paral= lel_workers. (Specifically, setting this to 0 would disable parallel vacuum= for the table). Currently, the patch implements parallel autovacuum as an "opt-in" style. That is, even after setting the GUC to >0, users must manually set the storage parameter for each table. This assumes that users already know exactly which tables need parallel vacuum. However, I believe it would be more intuitive to let the system decide which tables are eligible for parallel vacuum based on index size and count (via min_parallel_index_scan_size, etc.), rather than forcing manual per-table configuration. Therefore, I'm thinking we might want to make it "opt-out" style by default instead: - Set the default value of the storage parameter to -1 (i.e., fallback to G= UC). - the default value of the GUC autovacuum_max_parallel_workers at 0. With this configuration: - Parallel autovacuum is disabled by default. - Users can enable it globally by simply setting the GUC to >0. - Users can still disable it for specific tables by setting the storage parameter to 0. What do you think? * 0001 patch +{ name =3D> 'autovacuum_max_parallel_workers', type =3D> 'int', context =3D> 'PGC_SIGHUP', group =3D> 'VACUUM_AUTOVACUUM', + short_desc =3D> 'Maximum number of parallel workers that a single autovacuum worker can take from bgworkers pool.', + variable =3D> 'autovacuum_max_parallel_workers', + boot_val =3D> '2', + min =3D> '0', + max =3D> 'MAX_BACKENDS', +}, How about rephrasing the short description to "Maximum number of parallel processes per autovacuum operation."? The maximum value should be MAX_PARALLEL_WORKER_LIMIT. --- * 0002 patch: I think that it's better to rename PVWorkersStats and PVWorkersUsage to PVWorkerStats and PVWorkerUsage (making Worker singular). I've attached the patch for minor fixes including the above comments. --- * 0004 patch: + if (AmAutoVacuumWorkerProcess()) + elog(DEBUG2, + ngettext("autovacuum worker: finished parallel index processing with %d parallel worker", + "autovacuum worker: finished parallel index processing with %d parallel workers", + nworkers), + nworkers); Now that having planned and launched logs in autovacuum logs is straightforward, let's use these logs in the tests instead and make it the first patch. We can apply it independently. --- We check only the server logs throughout the new tap tests. I think we should also confirm that the autovacuum successfully completes. I've attached the proposed change to the tap tests. The attached 0003 and 0006 patches are fixup changes on top v27. Other patches don't have any change from the previous v27 patch set. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com --0000000000006bed5b064d3b256b Content-Type: application/x-patch; name="v28-0006-fixup-updates-tap-tests.patch" Content-Disposition: attachment; filename="v28-0006-fixup-updates-tap-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmudr4ub1 RnJvbSA5MDc2OWZhZjE1YjZkODMwY2FmYjQyMzgwYjllYzVmNWZmOTc0OTEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxNiBNYXIgMjAyNiAxODowMTo0NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djI4IDYvN10gZml4dXA6IHVwZGF0ZXMgdGFwIHRlc3RzLgoKLS0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy92YWN1dW1wYXJhbGxlbC5jICAgICAgICAgfCAgOSArLS0KIC4uLi90LzAwMV9wYXJhbGxl bF9hdXRvdmFjdXVtLnBsICAgICAgICAgICAgICB8IDU3ICsrKysrKysrKysrLS0tLS0tLS0KIDIg ZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggZWYzNmI5YmQyODYuLjYyYjZmNTBiNTM4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTY1Niw3ICs2NTYsNyBA QCBwYXJhbGxlbF92YWN1dW1fdXBkYXRlX3NoYXJlZF9kZWxheV9wYXJhbXModm9pZCkKIAlzaGFy ZWRfcGFyYW1zX2dlbmVyYXRpb25fbG9jYWwgPSBwYXJhbXNfZ2VuZXJhdGlvbjsKIAogCWVsb2co REVCVUcyLAotCQkgInBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VyIGNvc3QgcGFyYW1zOiBjb3N0 X2xpbWl0PSVkLCBjb3N0X2RlbGF5PSVnLCBjb3N0X3BhZ2VfbWlzcz0lZCwgY29zdF9wYWdlX2Rp cnR5PSVkLCBjb3N0X3BhZ2VfaGl0PSVkIiwKKwkJICJwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtl ciB1cGRhdGVkIGNvc3QgcGFyYW1zOiBjb3N0X2xpbWl0PSVkLCBjb3N0X2RlbGF5PSVnLCBjb3N0 X3BhZ2VfbWlzcz0lZCwgY29zdF9wYWdlX2RpcnR5PSVkLCBjb3N0X3BhZ2VfaGl0PSVkIiwKIAkJ IHZhY3V1bV9jb3N0X2xpbWl0LAogCQkgdmFjdXVtX2Nvc3RfZGVsYXksCiAJCSBWYWN1dW1Db3N0 UGFnZU1pc3MsCkBAIC05MzMsMTMgKzkzMyw2IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2Fs bF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAK IAkJZm9yIChpbnQgaSA9IDA7IGkgPCBwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBpKysp CiAJCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcHZzLT5idWZmZXJfdXNhZ2VbaV0sICZwdnMt PndhbF91c2FnZVtpXSk7Ci0KLQkJaWYgKEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSkKLQkJ CWVsb2coREVCVUcyLAotCQkJCSBuZ2V0dGV4dCgiYXV0b3ZhY3V1bSB3b3JrZXI6IGZpbmlzaGVk IHBhcmFsbGVsIGluZGV4IHByb2Nlc3Npbmcgd2l0aCAlZCBwYXJhbGxlbCB3b3JrZXIiLAotCQkJ CQkJICAiYXV0b3ZhY3V1bSB3b3JrZXI6IGZpbmlzaGVkIHBhcmFsbGVsIGluZGV4IHByb2Nlc3Np bmcgd2l0aCAlZCBwYXJhbGxlbCB3b3JrZXJzIiwKLQkJCQkJCSAgbndvcmtlcnMpLAotCQkJCSBu d29ya2Vycyk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9h dXRvdmFjdXVtL3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwgYi9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsCmluZGV4IDlhZDg3 ZDQ4Yjk2Li4wMTQ3ZWUzM2M5MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1 dG92YWN1dW0vdC8wMDFfcGFyYWxsZWxfYXV0b3ZhY3V1bS5wbAorKysgYi9zcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsCkBAIC0xMSw4 ICsxMSw4IEBAIGlmICgkRU5We2VuYWJsZV9pbmplY3Rpb25fcG9pbnRzfSBuZSAneWVzJykKIH0K IAogIyBCZWZvcmUgZWFjaCB0ZXN0IHdlIHNob3VsZCBkaXNhYmxlIGF1dG92YWN1dW0gZm9yICd0 ZXN0X2F1dG92YWMnIHRhYmxlIGFuZAotIyBnZW5lcmF0ZSBzb21lIGRlYWQgdHVwbGVzIGluIGl0 LgotCisjIGdlbmVyYXRlIHNvbWUgZGVhZCB0dXBsZXMgaW4gaXQuIFJldHVybnMgdGhlIGN1cnJl bnQgYXV0b3ZhY3V1bV9jb3VudCBvZgorIyB0aGUgdGFibGUgdHNldF9hdXRvdmFjLgogc3ViIHBy ZXBhcmVfZm9yX25leHRfdGVzdAogewogCW15ICgkbm9kZSwgJHRlc3RfbnVtYmVyKSA9IEBfOwpA QCAtMjEsMTIgKzIxLDI1IEBAIHN1YiBwcmVwYXJlX2Zvcl9uZXh0X3Rlc3QKIAkJQUxURVIgVEFC TEUgdGVzdF9hdXRvdmFjIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gZmFsc2UpOwogCQlVUERB VEUgdGVzdF9hdXRvdmFjIFNFVCBjb2xfMSA9ICR0ZXN0X251bWJlcjsKIAl9KTsKKworCW15ICRj b3VudCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkJCQkJCQkJIHFxe1NFTEVDVCBh dXRvdmFjdXVtX2NvdW50IEZST00gcGdfc3RhdF91c2VyX3RhYmxlcyBXSEVSRSByZWxuYW1lID0g J3Rlc3RfYXV0b3ZhYyd9KTsKKworCXJldHVybiAkY291bnQ7CiB9CiAKKyMgV2FpdCBmb3IgdGhl IHRhYmxlIHRvIGJlIHZhY3V1bWVkIGJ5IGFuIGF1dG92YWN1dW0gd29ya2VyLgorc3ViIHdhaXRf Zm9yX2F1dG92YWN1dW1fY29tcGxldGUKK3sKKwlteSAoJG5vZGUsICRvbGRfY291bnQpID0gQF87 CisKKwkkbm9kZS0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLAorCQkJCQkJCXFxe1NFTEVD VCBhdXRvdmFjdXVtX2NvdW50ID4gJG9sZF9jb3VudCBGUk9NIHBnX3N0YXRfdXNlcl90YWJsZXMg V0hFUkUgcmVsbmFtZSA9ICd0ZXN0X2F1dG92YWMnfSk7Cit9CiAKIG15ICRwc3FsX291dDsKIAot bXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUxJyk7CitteSAk bm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbWFpbicpOwogJG5vZGUtPmlu aXQ7CiAKICMgQ29uZmlndXJlIHBvc3RncmVzLCBzbyBpdCBjYW4gbGF1bmNoIHBhcmFsbGVsIGF1 dG92YWN1dW0gd29ya2VycywgbG9nIGFsbApAQCAtNTQsNyArNjcsNyBAQCAkbm9kZS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHFxewogCUNSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsK IH0pOwogCi1teSAkaW5kZXhlc19udW0gPSA0OworbXkgJGluZGV4ZXNfbnVtID0gMzsKIG15ICRp bml0aWFsX3Jvd3NfbnVtID0gMTBfMDAwOwogbXkgJGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2Vy cyA9IDI7CiAKQEAgLTkxLDcgKzEwNCw4IEBAICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXF7CiAjIE91ciB0YWJsZSBoYXMgZW5vdWdoIGluZGV4ZXMgYW5kIGFwcHJvcHJpYXRlIHJlbG9w dGlvbnMsIHNvIGF1dG92YWN1dW0gbXVzdAogIyBiZSBhYmxlIHRvIHByb2Nlc3MgaXQgaW4gcGFy YWxsZWwgbW9kZS4gSnVzdCBjaGVjayBpZiBpdCBjYW4gZG8gaXQuCiAKLXByZXBhcmVfZm9yX25l eHRfdGVzdCgkbm9kZSwgMSk7CitteSAkYXZfY291bnQgPSBwcmVwYXJlX2Zvcl9uZXh0X3Rlc3Qo JG5vZGUsIDEpOworbXkgJGxvZ19vZmZzZXQgPSAtcyAkbm9kZS0+bG9nZmlsZTsKIAogJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKIAlBTFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VU IChhdXRvdmFjdXVtX2VuYWJsZWQgPSB0cnVlKTsKQEAgLTk5LDE2ICsxMTMsMTYgQEAgJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKIAogIyBXYWl0IHVudGlsIHRoZSBwYXJhbGxlbCBh dXRvdmFjdXVtIG9uIHRhYmxlIGlzIGNvbXBsZXRlZC4gQXQgdGhlIHNhbWUgdGltZSwKICMgd2Ug Y2hlY2sgdGhhdCB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJl ZW4gc3RhcnRlZC4KLSRsb2dfc3RhcnQgPSAkbm9kZS0+d2FpdF9mb3JfbG9nKAotCXFyL2F1dG92 YWN1dW0gd29ya2VyOiBmaW5pc2hlZCBwYXJhbGxlbCBpbmRleCBwcm9jZXNzaW5nIHdpdGggMiBw YXJhbGxlbCB3b3JrZXJzLywKLQkkbG9nX3N0YXJ0Ci0pOword2FpdF9mb3JfYXV0b3ZhY3V1bV9j b21wbGV0ZSgkbm9kZSwgJGF2X2NvdW50KTsKK29rKCAkbm9kZS0+bG9nX2NvbnRhaW5zKHFyL3Bh cmFsbGVsIHdvcmtlcnM6IGluZGV4IHZhY3V1bTogMiBwbGFubmVkLCAyIGxhdW5jaGVkIGluIHRv dGFsLywKKwkJCQkJCSRsb2dfb2Zmc2V0KSk7CiAKICMgVGVzdCAyOgogIyBDaGVjayB3aGV0aGVy IHBhcmFsbGVsIGF1dG92YWN1dW0gbGVhZGVyIGNhbiBwcm9wYWdhdGUgY29zdC1iYXNlZCBwYXJh bWV0ZXJzCiAjIHRvIHRoZSBwYXJhbGxlbCB3b3JrZXJzLgogCi1wcmVwYXJlX2Zvcl9uZXh0X3Rl c3QoJG5vZGUsIDIpOworJGF2X2NvdW50ID0gcHJlcGFyZV9mb3JfbmV4dF90ZXN0KCRub2RlLCAy KTsKKyRsb2dfb2Zmc2V0ID0gLXMgJG5vZGUtPmxvZ2ZpbGU7CiAKICRub2RlLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgcXF7CiAJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdXRvdmFj dXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1bScsICd3YWl0Jyk7CkBAIC0xMjMsOCArMTM3LDcgQEAg JG5vZGUtPndhaXRfZm9yX2V2ZW50KAogCSdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1 bScKICk7CiAKLSMgUmVsb2FkIGNvbmZpZyAtIGxlYWRlciB3b3JrZXIgbXVzdCB1cGRhdGUgaXRz IG93biBwYXJhbWV0ZXJzIGR1cmluZyBpbmRleGVzCi0jIHByb2Nlc3NpbmcKKyMgVXBkYXRlIHRo ZSBzaGFyZWQgY29zdC1iYXNlZCBkZWxheSBwYXJhbWV0ZXJzLgogJG5vZGUtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCBxcXsKIAlBTFRFUiBTWVNURU0gU0VUIHZhY3V1bV9jb3N0X2xpbWl0ID0gNTAw OwogCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nvc3RfcGFnZV9taXNzID0gMTA7CkBAIC0xMzMs MTIgKzE0NiwxMiBAQCAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxewogCVNFTEVDVCBw Z19yZWxvYWRfY29uZigpOwogfSk7CiAKKyMgUmVzdW1lIHRoZSBsZWFkZXIgcHJvY2VzcyB0byB1 cGRhdGUgdGhlIHNoYXJlZCBwYXJhbWV0ZXJzIGR1cmluZyBoZWFwIHNjYW4gKGkuZS4KKyMgdmFj dXVtX2RlbGF5X3BvaW50KCkgaXMgY2FsbGVkKSBhbmQgbGF1bmNoIGEgcGFyYWxsZWwgdmFjdXVt IHdvcmtlciwgYnV0IGl0IHN0b3BzCisjIGJlZm9yZSB2YWN1dW1pbmcgaW5kZXhlcyBkdWUgdG8g dGhlIGluamVjdGlvbiBwb2ludC4KICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CiAJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVs LXZhY3V1bScpOwogfSk7Ci0KLSMgTm93IHdhaXQgdW50aWwgcGFyYWxsZWwgYXV0b3ZhY3V1bSBs ZWFkZXIgY29tcGxldGVzIHByb2Nlc3NpbmcgdGFibGUgKGkuZS4KLSMgZ3VhcmFudGVlZCB0byBj YWxsIHZhY3V1bV9kZWxheV9wb2ludCkgYW5kIGxhdW5jaGVzIHBhcmFsbGVsIHdvcmtlci4KICRu b2RlLT53YWl0X2Zvcl9ldmVudCgKIAknYXV0b3ZhY3V1bSB3b3JrZXInLAogCSdhdXRvdmFjdXVt LWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJwpAQCAtMTQ2LDI0ICsxNTksMTggQEAg JG5vZGUtPndhaXRfZm9yX2V2ZW50KAogCiAjIENoZWNrIHdoZXRoZXIgcGFyYWxsZWwgd29ya2Vy IHN1Y2Nlc3NmdWxseSB1cGRhdGVkIGFsbCBwYXJhbWV0ZXJzIGR1cmluZwogIyBpbmRleCBwcm9j ZXNzaW5nCi0kbG9nX3N0YXJ0ID0gJG5vZGUtPndhaXRfZm9yX2xvZygKLQlxci9wYXJhbGxlbCBh dXRvdmFjdXVtIHdvcmtlciBjb3N0IHBhcmFtczogY29zdF9saW1pdD01MDAsIGNvc3RfZGVsYXk9 MiwgLyAuCi0JcXIvY29zdF9wYWdlX21pc3M9MTAsIGNvc3RfcGFnZV9kaXJ0eT0xMCwgY29zdF9w YWdlX2hpdD0xMC8sCi0JJGxvZ19zdGFydAotKTsKKyRub2RlLT53YWl0X2Zvcl9sb2cocXIvcGFy YWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXIgdXBkYXRlZCBjb3N0IHBhcmFtczogY29zdF9saW1pdD01 MDAsIGNvc3RfZGVsYXk9MiwgY29zdF9wYWdlX21pc3M9MTAsIGNvc3RfcGFnZV9kaXJ0eT0xMCwg Y29zdF9wYWdlX2hpdD0xMC8sCisJCQkJCSRsb2dfb2Zmc2V0KTsKIAogIyBDbGVhbnVwCiAkbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxewotCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dh a2V1cCgnYXV0b3ZhY3V1bS1sZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZycpOwotCiAJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVs LXZhY3V1bScpOwogCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnYXV0b3ZhY3V1bS1s ZWFkZXItYmVmb3JlLWluZGV4ZXMtcHJvY2Vzc2luZycpOwogCi0JQUxURVIgVEFCTEUgdGVzdF9h dXRvdmFjIFNFVCAoYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzID0gJGF1dG92YWN1dW1fcGFy YWxsZWxfd29ya2Vycyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdhdXRvdmFj dXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJyk7CiB9KTsKIAotIyBXZSB3ZXJl IGFibGUgdG8gZ2V0IHRvIHRoaXMgcG9pbnQsIHNvIGV2ZXJ5dGhpbmcgaXMgZmluZS4KLW9rKDEp Oword2FpdF9mb3JfYXV0b3ZhY3V1bV9jb21wbGV0ZSgkbm9kZSwgJGF2X2NvdW50KTsKIAogJG5v ZGUtPnN0b3A7CiBkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNTMuMAoK --0000000000006bed5b064d3b256b Content-Type: application/x-patch; name="v28-0007-Documentation-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v28-0007-Documentation-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmudr4u30 RnJvbSA0MGY5NjA1ZGQ1MmY1MDc5YTY0MTQ1NmNiYjVlNzljOGEyYmVkMTM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAzOjIzOjM4ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjggNy83XSBEb2N1bWVudGF0aW9uIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIGRv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sICAgICAgfCAxMiArKysrKysrKysrKysKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgfCAyMCArKysrKysrKysrKysrKysrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDhjZGQ4 MjZmYmQzLi43NzQxNzk2YzZiMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMjkxOCw2ICsyOTE4LDcgQEAgaW5j bHVkZV9kaXIgJ2NvbmYuZCcKICAgICAgICAgPHBhcmE+CiAgICAgICAgICBXaGVuIGNoYW5naW5n IHRoaXMgdmFsdWUsIGNvbnNpZGVyIGFsc28gYWRqdXN0aW5nCiAgICAgICAgICA8eHJlZiBsaW5r ZW5kPSJndWMtbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4sCisgICAgICAgICA8eHJlZiBsaW5rZW5k PSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxsZWwtd29ya2VycyIvPiwKICAgICAgICAgIDx4cmVm IGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtbWFpbnRlbmFuY2Utd29ya2VycyIvPiwgYW5kCiAg ICAgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtbWF4LXBhcmFsbGVsLXdvcmtlcnMtcGVyLWdhdGhl ciIvPi4KICAgICAgICAgPC9wYXJhPgpAQCAtOTM5NSw2ICs5Mzk2LDIzIEBAIENPUFkgcG9zdGdy ZXNfbG9nIEZST00gJy9mdWxsL3BhdGgvdG8vbG9nZmlsZS5jc3YnIFdJVEggY3N2OwogICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAgPHZhcmxpc3RlbnRy eSBpZD0iZ3VjLWF1dG92YWN1dW0tbWF4LXBhcmFsbGVsLXdvcmtlcnMiIHhyZWZsYWJlbD0iYXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyI+CisgICAgICAgIDx0ZXJtPjx2YXJuYW1lPmF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90 eXBlPikKKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM8L3Zhcm5hbWU+PC9wcmltYXJ5PgorICAgICAg ICAgPHNlY29uZGFyeT5jb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvc2Vjb25kYXJ5PgorICAgICAg ICA8L2luZGV4dGVybT4KKyAgICAgICAgPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgICA8cGFyYT4KKyAgICAgICAgICBTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJhbGxl bCBhdXRvdmFjdXVtIHdvcmtlcnMgdGhhdAorICAgICAgICAgIGNhbiBiZSB1c2VkIGZvciBwYXJh bGxlbCBpbmRleCB2YWN1dW1pbmcgYXQgb25lIHRpbWUgYnkgYSBzaW5nbGUKKyAgICAgICAgICBh dXRvdmFjdXVtIHdvcmtlci4gSXMgY2FwcGVkIGJ5IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFy YWxsZWwtd29ya2VycyIvPi4KKyAgICAgICAgICBUaGUgZGVmYXVsdCBpcyAyLgorICAgICAgICAg PC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg ICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L3NlY3QyPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvbWFpbnRlbmFuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9tYWludGVuYW5jZS5zZ21sCmluZGV4 IDdjOTU4YjA2MjczLi5mMmEyODBkYjU2OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL21haW50 ZW5hbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwKQEAgLTkyNiw2 ICs5MjYsMTggQEAgSElOVDogIEV4ZWN1dGUgYSBkYXRhYmFzZS13aWRlIFZBQ1VVTSBpbiB0aGF0 IGRhdGFiYXNlLgogICAgIGF1dG92YWN1dW0gd29ya2VycycgYWN0aXZpdHkuCiAgICA8L3BhcmE+ CiAKKyAgIDxwYXJhPgorICAgIElmIGFuIGF1dG92YWN1dW0gd29ya2VyIHByb2Nlc3MgY29tZXMg YWNyb3NzIGEgdGFibGUgd2l0aCB0aGUgZW5hYmxlZAorICAgIDx4cmVmIGxpbmtlbmQ9InJlbG9w dGlvbi1hdXRvdmFjdXVtLXBhcmFsbGVsLXdvcmtlcnMiLz4gc3RvcmFnZSBwYXJhbWV0ZXIsCisg ICAgaXQgd2lsbCBsYXVuY2ggcGFyYWxsZWwgd29ya2VycyBpbiBvcmRlciB0byB2YWN1dW0gaW5k ZXhlcyBvZiB0aGlzIHRhYmxlCisgICAgaW4gYSBwYXJhbGxlbCBtb2RlLiBQYXJhbGxlbCB3b3Jr ZXJzIGFyZSB0YWtlbiBmcm9tIHRoZSBwb29sIG9mIHByb2Nlc3NlcworICAgIGVzdGFibGlzaGVk IGJ5IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtd29ya2VyLXByb2Nlc3NlcyIvPiwgbGltaXRlZCBi eQorICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2VycyIvPi4KKyAgICBU aGUgbnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgdGhhdCBjYW4gYmUgdGFrZW4gZnJvbSBwb29s IGJ5IGEgc2luZ2xlCisgICAgYXV0b3ZhY3V1bSB3b3JrZXIgaXMgbGltaXRlZCBieSB0aGUgPHhy ZWYgbGlua2VuZD0iZ3VjLWF1dG92YWN1dW0tbWF4LXBhcmFsbGVsLXdvcmtlcnMiLz4KKyAgICBj b25maWd1cmF0aW9uIHBhcmFtZXRlci4KKyAgIDwvcGFyYT4KKwogICAgPHBhcmE+CiAgICAgSWYg c2V2ZXJhbCBsYXJnZSB0YWJsZXMgYWxsIGJlY29tZSBlbGlnaWJsZSBmb3IgdmFjdXVtaW5nIGlu IGEgc2hvcnQKICAgICBhbW91bnQgb2YgdGltZSwgYWxsIGF1dG92YWN1dW0gd29ya2VycyBtaWdo dCBiZWNvbWUgb2NjdXBpZWQgd2l0aApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVfdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXgg OTgyNTMyZmU3MjUuLjQ4OTRkZTAyMWNkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwK QEAgLTE3MTgsNiArMTcxOCwyNiBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgIDwvbGlz dGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICA8dmFybGlzdGVudHJ5IGlkPSJyZWxvcHRp b24tYXV0b3ZhY3V1bS1wYXJhbGxlbC13b3JrZXJzIiB4cmVmbGFiZWw9ImF1dG92YWN1dW1fcGFy YWxsZWxfd29ya2VycyI+CisgICAgPHRlcm0+PGxpdGVyYWw+YXV0b3ZhY3V1bV9wYXJhbGxlbF93 b3JrZXJzPC9saXRlcmFsPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgPGluZGV4dGVybT4K KyAgICAgPHByaW1hcnk+PHZhcm5hbWU+YXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzPC92YXJu YW1lPiBzdG9yYWdlIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICA8L2luZGV4dGVybT4KKyAgICA8 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFNldHMgdGhlIG1heGlt dW0gbnVtYmVyIG9mIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycyB0aGF0IGNhbiBwcm9jZXNz CisgICAgICBpbmRleGVzIG9mIHRoaXMgdGFibGUuCisgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBp cyAtMSwgd2hpY2ggbWVhbnMgbm8gcGFyYWxsZWwgaW5kZXggdmFjdXVtaW5nIGZvcgorICAgICAg dGhpcyB0YWJsZS4gSWYgdmFsdWUgaXMgMCB0aGVuIHBhcmFsbGVsIGRlZ3JlZSB3aWxsIGNvbXB1 dGVkIGJhc2VkIG9uCisgICAgICBudW1iZXIgb2YgaW5kZXhlcy4KKyAgICAgIE5vdGUgdGhhdCB0 aGUgY29tcHV0ZWQgbnVtYmVyIG9mIHdvcmtlcnMgbWF5IG5vdCBhY3R1YWxseSBiZSBhdmFpbGFi bGUgYXQKKyAgICAgIHJ1biB0aW1lLiBJZiB0aGlzIG9jY3VycywgdGhlIGF1dG92YWN1dW0gd2ls bCBydW4gd2l0aCBmZXdlciB3b3JrZXJzCisgICAgICB0aGFuIGV4cGVjdGVkLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVu dHJ5IGlkPSJyZWxvcHRpb24tYXV0b3ZhY3V1bS12YWN1dW0tdGhyZXNob2xkIiB4cmVmbGFiZWw9 ImF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+YXV0b3Zh Y3V1bV92YWN1dW1fdGhyZXNob2xkPC9saXRlcmFsPiwgPGxpdGVyYWw+dG9hc3QuYXV0b3ZhY3V1 bV92YWN1dW1fdGhyZXNob2xkPC9saXRlcmFsPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCiAgICAg PGluZGV4dGVybT4KLS0gCjIuNTMuMAoK --0000000000006bed5b064d3b256b Content-Type: application/x-patch; name="v28-0005-Tests-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v28-0005-Tests-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmudr4uf2 RnJvbSBlZTE3Y2Q4MzMyYTY3ZDE1ZTRmNWZjMGJkYjRlYzM2NzA5MmQxZmM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjUwOjIzICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjggNS83XSBUZXN0cyBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bQoKLS0tCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyAgICAgICAgIHwgIDI1ICsrKwogc3JjL3Rlc3QvbW9k dWxlcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L21vZHVs ZXMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9tb2R1bGVz L3Rlc3RfYXV0b3ZhY3V1bS8uZ2l0aWdub3JlICAgfCAgIDIgKwogc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2F1dG92YWN1dW0vTWFrZWZpbGUgICAgIHwgIDIwICsrKwogc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQgIHwgIDE1ICsrCiAuLi4vdC8wMDFfcGFyYWxsZWxf YXV0b3ZhY3V1bS5wbCAgICAgICAgICAgICAgfCAxNjkgKysrKysrKysrKysrKysrKysrCiA4IGZp bGVzIGNoYW5nZWQsIDI0MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJh bGxlbF9hdXRvdmFjdXVtLnBsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4 IGM1NzQzMjY3MGU3Li44ZDI5ODBmM2VmMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYwpAQCAtMTUyLDYgKzE1Miw3IEBACiAjaW5jbHVkZSAic3RvcmFnZS9sYXRjaC5oIgogI2lu Y2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcmVhZF9zdHJlYW0uaCIK KyNpbmNsdWRlICJ1dGlscy9pbmplY3Rpb25fcG9pbnQuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lz Y2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9wZ19ydXNhZ2UuaCIKICNpbmNsdWRlICJ1dGlscy90 aW1lc3RhbXAuaCIKQEAgLTg3Myw2ICs4NzQsMTQgQEAgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9u IHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAlsYXp5X2NoZWNrX3dyYXBhcm91bmRf ZmFpbHNhZmUodmFjcmVsKTsKIAlkZWFkX2l0ZW1zX2FsbG9jKHZhY3JlbCwgcGFyYW1zLm53b3Jr ZXJzKTsKIAorI2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJLyoKKwkgKiBUcmlnZ2VyIGlu amVjdGlvbiBwb2ludCwgaWYgcGFyYWxsZWwgYXV0b3ZhY3V1bSBpcyBhYm91dCB0byBiZSBzdGFy dGVkLgorCSAqLworCWlmIChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYgUGFyYWxsZWxW YWN1dW1Jc0FjdGl2ZSh2YWNyZWwpKQorCQlJTkpFQ1RJT05fUE9JTlQoImF1dG92YWN1dW0tc3Rh cnQtcGFyYWxsZWwtdmFjdXVtIiwgTlVMTCk7CisjZW5kaWYKKwogCS8qCiAJICogQ2FsbCBsYXp5 X3NjYW5faGVhcCB0byBwZXJmb3JtIGFsbCByZXF1aXJlZCBoZWFwIHBydW5pbmcsIGluZGV4CiAJ ICogdmFjdXVtaW5nLCBhbmQgaGVhcCB2YWN1dW1pbmcgKHBsdXMgcmVsYXRlZCBwcm9jZXNzaW5n KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggOThhZWI2NmVlYzQuLmVm MzZiOWJkMjg2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxl bC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTQ2LDYg KzQ2LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2J1Zm1nci5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv cHJvYy5oIgogI2luY2x1ZGUgInRjb3AvdGNvcHByb3QuaCIKKyNpbmNsdWRlICJ1dGlscy9pbmpl Y3Rpb25fcG9pbnQuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9yZWwuaCIKIApAQCAtNjUzLDYgKzY1NCwxNCBAQCBwYXJhbGxlbF92YWN1dW1fdXBkYXRl X3NoYXJlZF9kZWxheV9wYXJhbXModm9pZCkKIAlWYWN1dW1VcGRhdGVDb3N0cygpOwogCiAJc2hh cmVkX3BhcmFtc19nZW5lcmF0aW9uX2xvY2FsID0gcGFyYW1zX2dlbmVyYXRpb247CisKKwllbG9n KERFQlVHMiwKKwkJICJwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlciBjb3N0IHBhcmFtczogY29z dF9saW1pdD0lZCwgY29zdF9kZWxheT0lZywgY29zdF9wYWdlX21pc3M9JWQsIGNvc3RfcGFnZV9k aXJ0eT0lZCwgY29zdF9wYWdlX2hpdD0lZCIsCisJCSB2YWN1dW1fY29zdF9saW1pdCwKKwkJIHZh Y3V1bV9jb3N0X2RlbGF5LAorCQkgVmFjdXVtQ29zdFBhZ2VNaXNzLAorCQkgVmFjdXVtQ29zdFBh Z2VEaXJ0eSwKKwkJIFZhY3V1bUNvc3RQYWdlSGl0KTsKIH0KIAogLyoKQEAgLTg5NSw2ICs5MDQs MTUgQEAgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1T dGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW4KIAkJCQkJCQlwdnMtPnBjeHQtPm53b3JrZXJz X2xhdW5jaGVkLCBud29ya2VycykpKTsKIAl9CiAKKyNpZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5U UworCS8qCisJICogVGhpcyBpbmplY3Rpb24gcG9pbnQgaXMgdXNlZCB0byB3YWl0IHVudGlsIHBh cmFsbGVsIGF1dG92YWN1dW0gd29ya2VycworCSAqIGZpbmlzaGVzIHRoZWlyIHBhcnQgb2YgaW5k ZXggcHJvY2Vzc2luZy4KKwkgKi8KKwlpZiAobndvcmtlcnMgPiAwKQorCQlJTkpFQ1RJT05fUE9J TlQoImF1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmciLCBOVUxMKTsK KyNlbmRpZgorCiAJLyogVmFjdXVtIHRoZSBpbmRleGVzIHRoYXQgY2FuIGJlIHByb2Nlc3NlZCBi eSBvbmx5IGxlYWRlciBwcm9jZXNzICovCiAJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfdW5zYWZl X2luZGV4ZXMocHZzKTsKIApAQCAtOTE1LDYgKzkzMywxMyBAQCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhf c2NhbgogCiAJCWZvciAoaW50IGkgPSAwOyBpIDwgcHZzLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hl ZDsgaSsrKQogCQkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJnB2cy0+YnVmZmVyX3VzYWdlW2ld LCAmcHZzLT53YWxfdXNhZ2VbaV0pOworCisJCWlmIChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNz KCkpCisJCQllbG9nKERFQlVHMiwKKwkJCQkgbmdldHRleHQoImF1dG92YWN1dW0gd29ya2VyOiBm aW5pc2hlZCBwYXJhbGxlbCBpbmRleCBwcm9jZXNzaW5nIHdpdGggJWQgcGFyYWxsZWwgd29ya2Vy IiwKKwkJCQkJCSAgImF1dG92YWN1dW0gd29ya2VyOiBmaW5pc2hlZCBwYXJhbGxlbCBpbmRleCBw cm9jZXNzaW5nIHdpdGggJWQgcGFyYWxsZWwgd29ya2VycyIsCisJCQkJCQkgIG53b3JrZXJzKSwK KwkJCQkgbndvcmtlcnMpOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L01ha2VmaWxlIGIvc3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQppbmRleCA0YWM1Yzg0ZGI0My4u MDFmZTAwNDFjOTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKKysrIGIv c3JjL3Rlc3QvbW9kdWxlcy9NYWtlZmlsZQpAQCAtMTYsNiArMTYsNyBAQCBTVUJESVJTID0gXAog CQkgIHBsc2FtcGxlIFwKIAkJICBzcGdpc3RfbmFtZV9vcHMgXAogCQkgIHRlc3RfYWlvIFwKKwkJ ICB0ZXN0X2F1dG92YWN1dW0gXAogCQkgIHRlc3RfYmluYXJ5aGVhcCBcCiAJCSAgdGVzdF9iaXRt YXBzZXQgXAogCQkgIHRlc3RfYmxvb21maWx0ZXIgXApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9k dWxlcy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKaW5kZXggZTJi M2VlZjQxMzYuLjlkY2RjNjhiYzg3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL21lc29u LmJ1aWxkCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKQEAgLTE2LDYgKzE2LDcg QEAgc3ViZGlyKCdwbHNhbXBsZScpCiBzdWJkaXIoJ3NwZ2lzdF9uYW1lX29wcycpCiBzdWJkaXIo J3NzbF9wYXNzcGhyYXNlX2NhbGxiYWNrJykKIHN1YmRpcigndGVzdF9haW8nKQorc3ViZGlyKCd0 ZXN0X2F1dG92YWN1dW0nKQogc3ViZGlyKCd0ZXN0X2JpbmFyeWhlYXAnKQogc3ViZGlyKCd0ZXN0 X2JpdG1hcHNldCcpCiBzdWJkaXIoJ3Rlc3RfYmxvb21maWx0ZXInKQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZSBiL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9hdXRvdmFjdXVtLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjcxNmUxN2Y1YTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZQpAQCAtMCwwICsxLDIgQEAKKyMgR2VuZXJh dGVkIHN1YmRpcmVjdG9yaWVzCisvdG1wX2NoZWNrLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X2F1dG92YWN1dW0vTWFrZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u MTg4ZWM5Zjk2YTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS9NYWtlZmlsZQpAQCAtMCwwICsxLDIwIEBACisjIHNyYy90ZXN0L21vZHVsZXMvdGVz dF9hdXRvdmFjdXVtL01ha2VmaWxlCisKK1BHRklMRURFU0MgPSAidGVzdF9hdXRvdmFjdXVtIC0g dGVzdCBjb2RlIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtIgorCitUQVBfVEVTVFMgPSAxCisKK0VY VFJBX0lOU1RBTEwgPSBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMKKworZXhwb3J0 IGVuYWJsZV9pbmplY3Rpb25fcG9pbnRzCisKK2lmZGVmIFVTRV9QR1hTCitQR19DT05GSUcgPSBw Z19jb25maWcKK1BHWFMgOj0gJChzaGVsbCAkKFBHX0NPTkZJRykgLS1wZ3hzKQoraW5jbHVkZSAk KFBHWFMpCitlbHNlCitzdWJkaXIgPSBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bQor dG9wX2J1aWxkZGlyID0gLi4vLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9N YWtlZmlsZS5nbG9iYWwKK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb250cmliL2NvbnRyaWItZ2xv YmFsLm1rCitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9tZXNvbi5i dWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODZlMzkyYmMwZGUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9tZXNv bi5idWlsZApAQCAtMCwwICsxLDE1IEBACisjIENvcHlyaWdodCAoYykgMjAyNC0yMDI2LCBQb3N0 Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit0ZXN0cyArPSB7CisgICduYW1lJzog J3Rlc3RfYXV0b3ZhY3V1bScsCisgICdzZCc6IG1lc29uLmN1cnJlbnRfc291cmNlX2RpcigpLAor ICAnYmQnOiBtZXNvbi5jdXJyZW50X2J1aWxkX2RpcigpLAorICAndGFwJzogeworICAgICdlbnYn OiB7CisgICAgICAgJ2VuYWJsZV9pbmplY3Rpb25fcG9pbnRzJzogZ2V0X29wdGlvbignaW5qZWN0 aW9uX3BvaW50cycpID8gJ3llcycgOiAnbm8nLAorICAgIH0sCisgICAgJ3Rlc3RzJzogWworICAg ICAgJ3QvMDAxX3BhcmFsbGVsX2F1dG92YWN1dW0ucGwnLAorICAgIF0sCisgIH0sCit9CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9h dXRvdmFjdXVtLnBsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFfcGFy YWxsZWxfYXV0b3ZhY3V1bS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uOWFkODdkNDhiOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf YXV0b3ZhY3V1bS90LzAwMV9wYXJhbGxlbF9hdXRvdmFjdXVtLnBsCkBAIC0wLDAgKzEsMTY5IEBA CisjIFRlc3QgcGFyYWxsZWwgYXV0b3ZhY3V1bSBiZWhhdmlvcgorCit1c2Ugd2FybmluZ3MgRkFU QUwgPT4gJ2FsbCc7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3Jl U1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCitpZiAoJEVOVntlbmFibGVfaW5q ZWN0aW9uX3BvaW50c30gbmUgJ3llcycpCit7CisJcGxhbiBza2lwX2FsbCA9PiAnSW5qZWN0aW9u IHBvaW50cyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQnOworfQorCisjIEJlZm9yZSBlYWNo IHRlc3Qgd2Ugc2hvdWxkIGRpc2FibGUgYXV0b3ZhY3V1bSBmb3IgJ3Rlc3RfYXV0b3ZhYycgdGFi bGUgYW5kCisjIGdlbmVyYXRlIHNvbWUgZGVhZCB0dXBsZXMgaW4gaXQuCisKK3N1YiBwcmVwYXJl X2Zvcl9uZXh0X3Rlc3QKK3sKKwlteSAoJG5vZGUsICR0ZXN0X251bWJlcikgPSBAXzsKKworCSRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3Zh YyBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9IGZhbHNlKTsKKwkJVVBEQVRFIHRlc3RfYXV0b3Zh YyBTRVQgY29sXzEgPSAkdGVzdF9udW1iZXI7CisJfSk7Cit9CisKKworbXkgJHBzcWxfb3V0Owor CitteSAkbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnbm9kZTEnKTsKKyRu b2RlLT5pbml0OworCisjIENvbmZpZ3VyZSBwb3N0Z3Jlcywgc28gaXQgY2FuIGxhdW5jaCBwYXJh bGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMsIGxvZyBhbGwKKyMgaW5mb3JtYXRpb24gd2UgYXJlIGlu dGVyZXN0ZWQgaW4gYW5kIGF1dG92YWN1dW0gd29ya3MgZnJlcXVlbnRseQorJG5vZGUtPmFwcGVu ZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxcXsKKwltYXhfd29ya2VyX3Byb2Nlc3NlcyA9IDIw CisJbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAyMAorCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dv cmtlcnMgPSA0CisJbG9nX21pbl9tZXNzYWdlcyA9IGRlYnVnMgorCWF1dG92YWN1dW1fbmFwdGlt ZSA9ICcxcycKKwltaW5fcGFyYWxsZWxfaW5kZXhfc2Nhbl9zaXplID0gMAorfSk7Ciskbm9kZS0+ c3RhcnQ7CisKKyMgQ2hlY2sgaWYgdGhlIGV4dGVuc2lvbiBpbmplY3Rpb25fcG9pbnRzIGlzIGF2 YWlsYWJsZSwgYXMgaXQgbWF5IGJlCisjIHBvc3NpYmxlIHRoYXQgdGhpcyBzY3JpcHQgaXMgcnVu IHdpdGggaW5zdGFsbGNoZWNrLCB3aGVyZSB0aGUgbW9kdWxlCisjIHdvdWxkIG5vdCBiZSBpbnN0 YWxsZWQgYnkgZGVmYXVsdC4KK2lmICghJG5vZGUtPmNoZWNrX2V4dGVuc2lvbignaW5qZWN0aW9u X3BvaW50cycpKQoreworCXBsYW4gc2tpcF9hbGwgPT4gJ0V4dGVuc2lvbiBpbmplY3Rpb25fcG9p bnRzIG5vdCBpbnN0YWxsZWQnOworfQorCisjIENyZWF0ZSBhbGwgZnVuY3Rpb25zIG5lZWRlZCBm b3IgdGVzdGluZworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlDUkVBVEUgRVhU RU5TSU9OIGluamVjdGlvbl9wb2ludHM7Cit9KTsKKworbXkgJGluZGV4ZXNfbnVtID0gNDsKK215 ICRpbml0aWFsX3Jvd3NfbnVtID0gMTBfMDAwOworbXkgJGF1dG92YWN1dW1fcGFyYWxsZWxfd29y a2VycyA9IDI7CisKKyMgQ3JlYXRlIHRhYmxlIGFuZCBmaWxsIGl0IHdpdGggc29tZSBkYXRhCisk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCUNSRUFURSBUQUJMRSB0ZXN0X2F1dG92 YWMgKAorCQlpZCBTRVJJQUwgUFJJTUFSWSBLRVksCisJCWNvbF8xIElOVEVHRVIsICBjb2xfMiBJ TlRFR0VSLCAgY29sXzMgSU5URUdFUiwgIGNvbF80IElOVEVHRVIKKwkpIFdJVEggKGF1dG92YWN1 dW1fcGFyYWxsZWxfd29ya2VycyA9ICRhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMsCisJCQls b2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gPSAwKTsKKworCUlOU0VSVCBJTlRPIHRlc3RfYXV0 b3ZhYworCVNFTEVDVAorCQlnIEFTIGNvbDEsCisJCWcgKyAxIEFTIGNvbDIsCisJCWcgKyAyIEFT IGNvbDMsCisJCWcgKyAzIEFTIGNvbDQKKwlGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAkaW5pdGlh bF9yb3dzX251bSkgQVMgZzsKK30pOworCisjIENyZWF0ZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGIt dHJlZSBpbmRleGVzIG9uIHRoZSB0YWJsZQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx cXsKKwlETyBcJFwkCisJREVDTEFSRQorCQlpIElOVEVHRVI7CisJQkVHSU4KKwkJRk9SIGkgSU4g MS4uJGluZGV4ZXNfbnVtIExPT1AKKwkJCUVYRUNVVEUgZm9ybWF0KCdDUkVBVEUgSU5ERVggaWR4 X2NvbF9cJXMgT04gdGVzdF9hdXRvdmFjIChjb2xfXCVzKTsnLCBpLCBpKTsKKwkJRU5EIExPT1A7 CisJRU5EIFwkXCQ7Cit9KTsKKworIyBUZXN0IDEgOgorIyBPdXIgdGFibGUgaGFzIGVub3VnaCBp bmRleGVzIGFuZCBhcHByb3ByaWF0ZSByZWxvcHRpb25zLCBzbyBhdXRvdmFjdXVtIG11c3QKKyMg YmUgYWJsZSB0byBwcm9jZXNzIGl0IGluIHBhcmFsbGVsIG1vZGUuIEp1c3QgY2hlY2sgaWYgaXQg Y2FuIGRvIGl0LgorCitwcmVwYXJlX2Zvcl9uZXh0X3Rlc3QoJG5vZGUsIDEpOworCiskbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3ZhYyBTRVQg KGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyMgV2FpdCB1bnRpbCB0aGUgcGFy YWxsZWwgYXV0b3ZhY3V1bSBvbiB0YWJsZSBpcyBjb21wbGV0ZWQuIEF0IHRoZSBzYW1lIHRpbWUs CisjIHdlIGNoZWNrIHRoYXQgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJz IGhhcyBiZWVuIHN0YXJ0ZWQuCiskbG9nX3N0YXJ0ID0gJG5vZGUtPndhaXRfZm9yX2xvZygKKwlx ci9hdXRvdmFjdXVtIHdvcmtlcjogZmluaXNoZWQgcGFyYWxsZWwgaW5kZXggcHJvY2Vzc2luZyB3 aXRoIDIgcGFyYWxsZWwgd29ya2Vycy8sCisJJGxvZ19zdGFydAorKTsKKworIyBUZXN0IDI6Cisj IENoZWNrIHdoZXRoZXIgcGFyYWxsZWwgYXV0b3ZhY3V1bSBsZWFkZXIgY2FuIHByb3BhZ2F0ZSBj b3N0LWJhc2VkIHBhcmFtZXRlcnMKKyMgdG8gdGhlIHBhcmFsbGVsIHdvcmtlcnMuCisKK3ByZXBh cmVfZm9yX25leHRfdGVzdCgkbm9kZSwgMik7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXF7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdXRvdmFjdXVtLXN0YXJ0 LXBhcmFsbGVsLXZhY3V1bScsICd3YWl0Jyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0 YWNoKCdhdXRvdmFjdXVtLWxlYWRlci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJywgJ3dhaXQn KTsKKworCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3ZhYyBTRVQgKGF1dG92YWN1dW1fcGFyYWxsZWxf d29ya2VycyA9IDEsIGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyMgV2FpdCB1 bnRpbCBwYXJhbGxlbCBhdXRvdmFjdXVtIGlzIGluaXRlZAorJG5vZGUtPndhaXRfZm9yX2V2ZW50 KAorCSdhdXRvdmFjdXVtIHdvcmtlcicsCisJJ2F1dG92YWN1dW0tc3RhcnQtcGFyYWxsZWwtdmFj dXVtJworKTsKKworIyBSZWxvYWQgY29uZmlnIC0gbGVhZGVyIHdvcmtlciBtdXN0IHVwZGF0ZSBp dHMgb3duIHBhcmFtZXRlcnMgZHVyaW5nIGluZGV4ZXMKKyMgcHJvY2Vzc2luZworJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlBTFRFUiBTWVNURU0gU0VUIHZhY3V1bV9jb3N0X2xp bWl0ID0gNTAwOworCUFMVEVSIFNZU1RFTSBTRVQgdmFjdXVtX2Nvc3RfcGFnZV9taXNzID0gMTA7 CisJQUxURVIgU1lTVEVNIFNFVCB2YWN1dW1fY29zdF9wYWdlX2RpcnR5ID0gMTA7CisJQUxURVIg U1lTVEVNIFNFVCB2YWN1dW1fY29zdF9wYWdlX2hpdCA9IDEwOworCVNFTEVDVCBwZ19yZWxvYWRf Y29uZigpOworfSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJU0VMRUNU IGluamVjdGlvbl9wb2ludHNfd2FrZXVwKCdhdXRvdmFjdXVtLXN0YXJ0LXBhcmFsbGVsLXZhY3V1 bScpOworfSk7CisKKyMgTm93IHdhaXQgdW50aWwgcGFyYWxsZWwgYXV0b3ZhY3V1bSBsZWFkZXIg Y29tcGxldGVzIHByb2Nlc3NpbmcgdGFibGUgKGkuZS4KKyMgZ3VhcmFudGVlZCB0byBjYWxsIHZh Y3V1bV9kZWxheV9wb2ludCkgYW5kIGxhdW5jaGVzIHBhcmFsbGVsIHdvcmtlci4KKyRub2RlLT53 YWl0X2Zvcl9ldmVudCgKKwknYXV0b3ZhY3V1bSB3b3JrZXInLAorCSdhdXRvdmFjdXVtLWxlYWRl ci1iZWZvcmUtaW5kZXhlcy1wcm9jZXNzaW5nJworKTsKKworIyBDaGVjayB3aGV0aGVyIHBhcmFs bGVsIHdvcmtlciBzdWNjZXNzZnVsbHkgdXBkYXRlZCBhbGwgcGFyYW1ldGVycyBkdXJpbmcKKyMg aW5kZXggcHJvY2Vzc2luZworJGxvZ19zdGFydCA9ICRub2RlLT53YWl0X2Zvcl9sb2coCisJcXIv cGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXIgY29zdCBwYXJhbXM6IGNvc3RfbGltaXQ9NTAwLCBj b3N0X2RlbGF5PTIsIC8gLgorCXFyL2Nvc3RfcGFnZV9taXNzPTEwLCBjb3N0X3BhZ2VfZGlydHk9 MTAsIGNvc3RfcGFnZV9oaXQ9MTAvLAorCSRsb2dfc3RhcnQKKyk7CisKKyMgQ2xlYW51cAorJG5v ZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193 YWtldXAoJ2F1dG92YWN1dW0tbGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnKTsKKwor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnYXV0b3ZhY3V1bS1zdGFydC1wYXJhbGxl bC12YWN1dW0nKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2F1dG92YWN1dW0t bGVhZGVyLWJlZm9yZS1pbmRleGVzLXByb2Nlc3NpbmcnKTsKKworCUFMVEVSIFRBQkxFIHRlc3Rf YXV0b3ZhYyBTRVQgKGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyA9ICRhdXRvdmFjdXVtX3Bh cmFsbGVsX3dvcmtlcnMpOworfSk7CisKKyMgV2Ugd2VyZSBhYmxlIHRvIGdldCB0byB0aGlzIHBv aW50LCBzbyBldmVyeXRoaW5nIGlzIGZpbmUuCitvaygxKTsKKworJG5vZGUtPnN0b3A7Citkb25l X3Rlc3RpbmcoKTsKLS0gCjIuNTMuMAoK --0000000000006bed5b064d3b256b Content-Type: application/x-patch; name="v28-0003-fixup-minor-changes-for-logging-worker-usage.patch" Content-Disposition: attachment; filename="v28-0003-fixup-minor-changes-for-logging-worker-usage.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmudr4un4 RnJvbSA1ZWI5MDQ0MjZhNTdiODhjYjc3ODkwOThiYjFiZjk4M2RjZGUxZDU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAxNiBNYXIgMjAyNiAxNTowOToyNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djI4IDMvN10gZml4dXA6IG1pbm9yIGNoYW5nZXMgZm9yIGxvZ2dpbmcgd29ya2VyIHVzYWdlLgoK LS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgIHwgMzUgKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5j IHwgMjEgKysrKysrKy0tLS0tLS0tLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggICAg ICAgICB8IDI2ICsrKysrKysrKystLS0tLS0tLS0tCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdCAgICAgIHwgIDQgKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyks IDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCBj Y2NhZWU1YjYyMC4uYzU3NDMyNjcwZTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5 LmMKQEAgLTM0Niw5ICszNDYsOSBAQCB0eXBlZGVmIHN0cnVjdCBMVlJlbFN0YXRlCiAKIAkvKgog CSAqIFRvdGFsIG51bWJlciBvZiBwbGFubmVkIGFuZCBhY3R1YWxseSBsYXVuY2hlZCBwYXJhbGxl bCB3b3JrZXJzIGZvcgotCSAqIGluZGV4IHNjYW5zLgorCSAqIGluZGV4IHZhY3V1bWluZyBhbmQg aW5kZXggY2xlYW51cC4KIAkgKi8KLQlQVldvcmtlcnNVc2FnZSB3b3JrZXJzX3VzYWdlOworCVBW V29ya2VyVXNhZ2Ugd29ya2VyX3VzYWdlOwogCiAJLyogQ291bnRlcnMgdGhhdCBmb2xsb3cgYXJl IG9ubHkgZm9yIHNjYW5uZWRfcGFnZXMgKi8KIAlpbnQ2NAkJdHVwbGVzX2RlbGV0ZWQ7IC8qICMg ZGVsZXRlZCBmcm9tIHRhYmxlICovCkBAIC03ODgsMTAgKzc4OCwxMCBAQCBoZWFwX3ZhY3V1bV9y ZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCXZhY3JlbC0+bmV3 X2FsbF92aXNpYmxlX2FsbF9mcm96ZW5fcGFnZXMgPSAwOwogCXZhY3JlbC0+bmV3X2FsbF9mcm96 ZW5fcGFnZXMgPSAwOwogCi0JdmFjcmVsLT53b3JrZXJzX3VzYWdlLnZhY3V1bS5ubGF1bmNoZWQg PSAwOwotCXZhY3JlbC0+d29ya2Vyc191c2FnZS52YWN1dW0ubnBsYW5uZWQgPSAwOwotCXZhY3Jl bC0+d29ya2Vyc191c2FnZS5jbGVhbnVwLm5sYXVuY2hlZCA9IDA7Ci0JdmFjcmVsLT53b3JrZXJz X3VzYWdlLmNsZWFudXAubnBsYW5uZWQgPSAwOworCXZhY3JlbC0+d29ya2VyX3VzYWdlLnZhY3V1 bS5ubGF1bmNoZWQgPSAwOworCXZhY3JlbC0+d29ya2VyX3VzYWdlLnZhY3V1bS5ucGxhbm5lZCA9 IDA7CisJdmFjcmVsLT53b3JrZXJfdXNhZ2UuY2xlYW51cC5ubGF1bmNoZWQgPSAwOworCXZhY3Jl bC0+d29ya2VyX3VzYWdlLmNsZWFudXAubnBsYW5uZWQgPSAwOwogCiAJLyoKIAkgKiBHZXQgY3V0 b2ZmcyB0aGF0IGRldGVybWluZSB3aGljaCBkZWxldGVkIHR1cGxlcyBhcmUgY29uc2lkZXJlZCBE RUFELApAQCAtMTEzNSwyMCArMTEzNSwxOSBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVs LCBjb25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLAogCQkJCQkJCSBvcmlnX3JlbF9wYWdlcyA9PSAw ID8gMTAwLjAgOgogCQkJCQkJCSAxMDAuMCAqIHZhY3JlbC0+bHBkZWFkX2l0ZW1fcGFnZXMgLyBv cmlnX3JlbF9wYWdlcywKIAkJCQkJCQkgdmFjcmVsLT5scGRlYWRfaXRlbXMpOwotCQkJaWYgKHZh Y3JlbC0+d29ya2Vyc191c2FnZS52YWN1dW0ubnBsYW5uZWQgPiAwKQotCQkJeworCisJCQlpZiAo dmFjcmVsLT53b3JrZXJfdXNhZ2UudmFjdXVtLm5wbGFubmVkID4gMCkKIAkJCQlhcHBlbmRTdHJp bmdJbmZvKCZidWYsCiAJCQkJCQkJCSBfKCJwYXJhbGxlbCB3b3JrZXJzOiBpbmRleCB2YWN1dW06 ICVkIHBsYW5uZWQsICVkIGxhdW5jaGVkIGluIHRvdGFsXG4iKSwKLQkJCQkJCQkJIHZhY3JlbC0+ d29ya2Vyc191c2FnZS52YWN1dW0ubnBsYW5uZWQsCi0JCQkJCQkJCSB2YWNyZWwtPndvcmtlcnNf dXNhZ2UudmFjdXVtLm5sYXVuY2hlZCk7Ci0JCQl9Ci0JCQlpZiAodmFjcmVsLT53b3JrZXJzX3Vz YWdlLmNsZWFudXAubnBsYW5uZWQgPiAwKQotCQkJeworCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJf dXNhZ2UudmFjdXVtLm5wbGFubmVkLAorCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJfdXNhZ2UudmFj dXVtLm5sYXVuY2hlZCk7CisKKwkJCWlmICh2YWNyZWwtPndvcmtlcl91c2FnZS5jbGVhbnVwLm5w bGFubmVkID4gMCkKIAkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsCiAJCQkJCQkJCSBfKCJwYXJh bGxlbCB3b3JrZXJzOiBpbmRleCBjbGVhbnVwOiAlZCBwbGFubmVkLCAlZCBsYXVuY2hlZFxuIiks Ci0JCQkJCQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UuY2xlYW51cC5ucGxhbm5lZCwKLQkJCQkJ CQkJIHZhY3JlbC0+d29ya2Vyc191c2FnZS5jbGVhbnVwLm5sYXVuY2hlZCk7Ci0JCQl9CisJCQkJ CQkJCSB2YWNyZWwtPndvcmtlcl91c2FnZS5jbGVhbnVwLm5wbGFubmVkLAorCQkJCQkJCQkgdmFj cmVsLT53b3JrZXJfdXNhZ2UuY2xlYW51cC5ubGF1bmNoZWQpOworCiAJCQlmb3IgKGludCBpID0g MDsgaSA8IHZhY3JlbC0+bmluZGV4ZXM7IGkrKykKIAkJCXsKIAkJCQlJbmRleEJ1bGtEZWxldGVS ZXN1bHQgKmlzdGF0ID0gdmFjcmVsLT5pbmRzdGF0c1tpXTsKQEAgLTI2OTYsNyArMjY5NSw3IEBA IGxhenlfdmFjdXVtX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJLyogT3V0c291 cmNlIGV2ZXJ5dGhpbmcgdG8gcGFyYWxsZWwgdmFyaWFudCAqLwogCQlwYXJhbGxlbF92YWN1dW1f YnVsa2RlbF9hbGxfaW5kZXhlcyh2YWNyZWwtPnB2cywgb2xkX2xpdmVfdHVwbGVzLAogCQkJCQkJ CQkJCQl2YWNyZWwtPm51bV9pbmRleF9zY2FucywKLQkJCQkJCQkJCQkJJnZhY3JlbC0+d29ya2Vy c191c2FnZSk7CisJCQkJCQkJCQkJCSYodmFjcmVsLT53b3JrZXJfdXNhZ2UudmFjdXVtKSk7CiAK IAkJLyoKIAkJICogRG8gYSBwb3N0Y2hlY2sgdG8gY29uc2lkZXIgYXBwbHlpbmcgd3JhcGFyb3Vu ZCBmYWlsc2FmZSBub3cuICBOb3RlCkBAIC0zMTMxLDcgKzMxMzAsNyBAQCBsYXp5X2NsZWFudXBf YWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCQlwYXJhbGxlbF92YWN1dW1fY2xlYW51 cF9hbGxfaW5kZXhlcyh2YWNyZWwtPnB2cywgcmVsdHVwbGVzLAogCQkJCQkJCQkJCQl2YWNyZWwt Pm51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJCQkJZXN0aW1hdGVkX2NvdW50LAotCQkJCQkJCQkJ CQkmdmFjcmVsLT53b3JrZXJzX3VzYWdlKTsKKwkJCQkJCQkJCQkJJih2YWNyZWwtPndvcmtlcl91 c2FnZS5jbGVhbnVwKSk7CiAJfQogCiAJLyogUmVzZXQgdGhlIHByb2dyZXNzIGNvdW50ZXJzICov CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCA1ZGVhNDM3NGVjNy4uYjdm ZmQ4NTQwMDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVs LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpAQCAtMjI3LDcg KzIyNyw3IEBAIHN0cnVjdCBQYXJhbGxlbFZhY3V1bVN0YXRlCiBzdGF0aWMgaW50CXBhcmFsbGVs X3ZhY3V1bV9jb21wdXRlX3dvcmtlcnMoUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywg aW50IG5yZXF1ZXN0ZWQsCiAJCQkJCQkJCQkJCWJvb2wgKndpbGxfcGFyYWxsZWxfdmFjdXVtKTsK IHN0YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVs VmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FucywKLQkJCQkJCQkJCQkJCWJvb2wg dmFjdXVtLCBQVldvcmtlcnNTdGF0cyAqd3N0YXRzKTsKKwkJCQkJCQkJCQkJCWJvb2wgdmFjdXVt LCBQVldvcmtlclN0YXRzICp3c3RhdHMpOwogc3RhdGljIHZvaWQgcGFyYWxsZWxfdmFjdXVtX3By b2Nlc3Nfc2FmZV9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cyk7CiBzdGF0aWMgdm9p ZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc191bnNhZmVfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0 YXRlICpwdnMpOwogc3RhdGljIHZvaWQgcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3Nfb25lX2luZGV4 KFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgUmVsYXRpb24gaW5kcmVsLApAQCAtNTAyLDcgKzUw Miw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9yZXNldF9kZWFkX2l0ZW1zKFBhcmFsbGVsVmFjdXVtU3Rh dGUgKnB2cykKICAqLwogdm9pZAogcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2luZGV4ZXMo UGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXBsZXMsCi0JCQkJCQkJ CQlpbnQgbnVtX2luZGV4X3NjYW5zLCBQVldvcmtlcnNVc2FnZSAqd3VzYWdlKQorCQkJCQkJCQkJ aW50IG51bV9pbmRleF9zY2FucywgUFZXb3JrZXJTdGF0cyAqd3N0YXRzKQogewogCUFzc2VydCgh SXNQYXJhbGxlbFdvcmtlcigpKTsKIApAQCAtNTEzLDggKzUxMyw3IEBAIHBhcmFsbGVsX3ZhY3V1 bV9idWxrZGVsX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBudW1f dGFibGVfdHVwCiAJcHZzLT5zaGFyZWQtPnJlbHR1cGxlcyA9IG51bV90YWJsZV90dXBsZXM7CiAJ cHZzLT5zaGFyZWQtPmVzdGltYXRlZF9jb3VudCA9IHRydWU7CiAKLQlwYXJhbGxlbF92YWN1dW1f cHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMsIG51bV9pbmRleF9zY2FucywgdHJ1ZSwKLQkJCQkJCQkJ CQkmd3VzYWdlLT52YWN1dW0pOworCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVz KHB2cywgbnVtX2luZGV4X3NjYW5zLCB0cnVlLCB3c3RhdHMpOwogfQogCiAvKgpAQCAtNTIzLDcg KzUyMiw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9idWxrZGVsX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFj dXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiB2b2lkCiBwYXJhbGxlbF92YWN1dW1f Y2xlYW51cF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3Rh YmxlX3R1cGxlcywKIAkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMsIGJvb2wgZXN0aW1hdGVk X2NvdW50LAotCQkJCQkJCQkJUFZXb3JrZXJzVXNhZ2UgKnd1c2FnZSkKKwkJCQkJCQkJCVBWV29y a2VyU3RhdHMgKndzdGF0cykKIHsKIAlBc3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CiAKQEAg LTUzNSw4ICs1MzQsNyBAQCBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyhQYXJh bGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cAogCXB2cy0+c2hhcmVkLT5y ZWx0dXBsZXMgPSBudW1fdGFibGVfdHVwbGVzOwogCXB2cy0+c2hhcmVkLT5lc3RpbWF0ZWRfY291 bnQgPSBlc3RpbWF0ZWRfY291bnQ7CiAKLQlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5k ZXhlcyhwdnMsIG51bV9pbmRleF9zY2FucywgZmFsc2UsCi0JCQkJCQkJCQkJJnd1c2FnZS0+Y2xl YW51cCk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMocHZzLCBudW1faW5k ZXhfc2NhbnMsIGZhbHNlLCB3c3RhdHMpOwogfQogCiAvKgpAQCAtNjE5LDEyICs2MTcsMTEgQEAg cGFyYWxsZWxfdmFjdXVtX2NvbXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywgaW50IG5p bmRleGVzLCBpbnQgbnJlcXVlc3RlZCwKICAqIFBlcmZvcm0gaW5kZXggdmFjdXVtIG9yIGluZGV4 IGNsZWFudXAgd2l0aCBwYXJhbGxlbCB3b3JrZXJzLiAgVGhpcyBmdW5jdGlvbgogICogbXVzdCBi ZSB1c2VkIGJ5IHRoZSBwYXJhbGxlbCB2YWN1dW0gbGVhZGVyIHByb2Nlc3MuCiAgKgotICogSWYg d3N0YXRzIGlzIG5vdCBOVUxMLCB0aGUgc3RhdGlzdGljcyBpdCBzdG9yZXMgd2lsbCBiZSB1cGRh dGVkIGFjY29yZGluZwotICogdG8gd2hhdCBoYXBwZW5zIGR1cmluZyBmdW5jdGlvbiBleGVjdXRp b24uCisgKiBJZiB3c3RhdHMgaXMgbm90IE5VTEwsIHRoZSBwYXJhbGxlbCB3b3JrZXIgc3RhdGlz dGljcyBhcmUgdXBkYXRlZC4KICAqLwogc3RhdGljIHZvaWQKIHBhcmFsbGVsX3ZhY3V1bV9wcm9j ZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9z Y2FucywKLQkJCQkJCQkJCWJvb2wgdmFjdXVtLCBQVldvcmtlcnNTdGF0cyAqd3N0YXRzKQorCQkJ CQkJCQkJYm9vbCB2YWN1dW0sIFBWV29ya2VyU3RhdHMgKndzdGF0cykKIHsKIAlpbnQJCQlud29y a2VyczsKIAlQVkluZFZhY1N0YXR1cyBuZXdfc3RhdHVzOwpAQCAtNjYxLDcgKzY1OCw3IEBAIHBh cmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2 cywgaW50IG51bV9pbmRleF9zY2FuCiAJICovCiAJbndvcmtlcnMgPSBNaW4obndvcmtlcnMsIHB2 cy0+cGN4dC0+bndvcmtlcnMpOwogCi0JLyogUmVtZW1iZXIgdGhpcyB2YWx1ZSwgaWYgd2UgYXNr ZWQgdG8gKi8KKwkvKiBVcGRhdGUgdGhlIHN0YXRpc3RpY3MsIGlmIHdlIGFza2VkIHRvICovCiAJ aWYgKHdzdGF0cyAhPSBOVUxMICYmIG53b3JrZXJzID4gMCkKIAkJd3N0YXRzLT5ucGxhbm5lZCAr PSBud29ya2VyczsKIApAQCAtNzIyLDcgKzcxOSw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNz X2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2Fu CiAJCQlWYWN1dW1TaGFyZWRDb3N0QmFsYW5jZSA9ICYocHZzLT5zaGFyZWQtPmNvc3RfYmFsYW5j ZSk7CiAJCQlWYWN1dW1BY3RpdmVOV29ya2VycyA9ICYocHZzLT5zaGFyZWQtPmFjdGl2ZV9ud29y a2Vycyk7CiAKLQkJCS8qIFJlbWVtYmVyIHRoaXMgdmFsdWUsIGlmIHdlIGFza2VkIHRvICovCisJ CQkvKiBVcGRhdGUgdGhlIHN0YXRpc3RpY3MsIGlmIHdlIGFza2VkIHRvICovCiAJCQlpZiAod3N0 YXRzICE9IE5VTEwpCiAJCQkJd3N0YXRzLT5ubGF1bmNoZWQgKz0gcHZzLT5wY3h0LT5ud29ya2Vy c19sYXVuY2hlZDsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVt LmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCAxZDgyMDkxNWQ3MS4uOTUz YTUwNjE4MWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisrKyBi L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC0zMDEsMjYgKzMwMSwyNiBAQCB0eXBl ZGVmIHN0cnVjdCBWYWNEZWFkSXRlbXNJbmZvCiB9IFZhY0RlYWRJdGVtc0luZm87CiAKIC8qCi0g KiBIZWxwZXIgZm9yIHRoZSBQVldvcmtlcnNVc2FnZSBzdHJ1Y3R1cmUgKHNlZSBiZWxvdyksIHRv IGF2b2lkIHJlcGV0aXRpb24uCisgKiBTdGF0aXN0aWNzIGZvciBwYXJhbGxlbCB2YWN1dW0gd29y a2VycyAocGxhbm5lZCB2cy4gYWN0dWFsKQogICovCi10eXBlZGVmIHN0cnVjdCBQVldvcmtlcnNT dGF0cwordHlwZWRlZiBzdHJ1Y3QgUFZXb3JrZXJTdGF0cwogewotCS8qIE51bWJlciBvZiBwYXJh bGxlbCB3b3JrZXJzIHdlIGFyZSBwbGFubmVkIHRvIGxhdW5jaCAqLworCS8qIE51bWJlciBvZiBw YXJhbGxlbCB3b3JrZXJzIHBsYW5uZWQgdG8gbGF1bmNoICovCiAJaW50CQkJbnBsYW5uZWQ7CiAK LQkvKiBOdW1iZXIgb2YgbGF1bmNoZWQgcGFyYWxsZWwgd29ya2VycyAqLworCS8qIE51bWJlciBv ZiBwYXJhbGxlbCB3b3JrZXJzIHRoYXQgd2VyZSBzdWNjZXNzZnVsbHkgbGF1bmNoZWQgKi8KIAlp bnQJCQlubGF1bmNoZWQ7Ci19IFBWV29ya2Vyc1N0YXRzOworfSBQVldvcmtlclN0YXRzOwogCiAv KgotICogUFZXb3JrZXJzVXNhZ2Ugc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0IHRvdGFsIG51bWJl ciBvZiBsYXVuY2hlZCBhbmQKLSAqIHBsYW5uZWQgd29ya2VycyBkdXJpbmcgcGFyYWxsZWwgdmFj dXVtIChib3RoIGZvciB2YWN1dW0gYW5kIGNsZWFudXApLgorICogUFZXb3JrZXJVc2FnZSBzdG9y ZXMgaW5mb3JtYXRpb24gYWJvdXQgdG90YWwgbnVtYmVyIG9mIGxhdW5jaGVkIGFuZAorICogcGxh bm5lZCB3b3JrZXJzIGR1cmluZyBwYXJhbGxlbCB2YWN1dW0gKGJvdGggZm9yIGluZGV4IHZhY3V1 bSBhbmQgY2xlYW51cCkuCiAgKi8KLXR5cGVkZWYgc3RydWN0IFBWV29ya2Vyc1VzYWdlCit0eXBl ZGVmIHN0cnVjdCBQVldvcmtlclVzYWdlCiB7Ci0JUFZXb3JrZXJzU3RhdHMgdmFjdXVtOwotCVBW V29ya2Vyc1N0YXRzIGNsZWFudXA7Ci19IFBWV29ya2Vyc1VzYWdlOworCVBWV29ya2VyU3RhdHMg dmFjdXVtOworCVBWV29ya2VyU3RhdHMgY2xlYW51cDsKK30gUFZXb3JrZXJVc2FnZTsKIAogLyog R1VDIHBhcmFtZXRlcnMgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgZGVmYXVsdF9zdGF0aXN0 aWNzX3RhcmdldDsJLyogUEdETExJTVBPUlQgZm9yIFBvc3RHSVMgKi8KQEAgLTQxNywxMiArNDE3 LDEyIEBAIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9yZXNldF9kZWFkX2l0ZW1zKFBhcmFs bGVsVmFjdXVtU3RhdGUgKnB2cyk7CiBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fYnVsa2Rl bF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsCiAJCQkJCQkJCQkJCQlsb25n IG51bV90YWJsZV90dXBsZXMsCiAJCQkJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLAotCQkJ CQkJCQkJCQkJUFZXb3JrZXJzVXNhZ2UgKnd1c2FnZSk7CisJCQkJCQkJCQkJCQlQVldvcmtlclN0 YXRzICp3c3RhdHMpOwogZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2lu ZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLAogCQkJCQkJCQkJCQkJbG9uZyBudW1fdGFi bGVfdHVwbGVzLAogCQkJCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJCQkJ CWJvb2wgZXN0aW1hdGVkX2NvdW50LAotCQkJCQkJCQkJCQkJUFZXb3JrZXJzVXNhZ2UgKnd1c2Fn ZSk7CisJCQkJCQkJCQkJCQlQVldvcmtlclN0YXRzICp3c3RhdHMpOwogZXh0ZXJuIHZvaWQgcGFy YWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKTsKIAogLyog aW4gY29tbWFuZHMvYW5hbHl6ZS5jICovCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGE2 N2Q1NGUxODE5Li40YzIzMGVlMzhjYSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTIw ODgsOCArMjA4OCw4IEBAIFBWSW5kU3RhdHMKIFBWSW5kVmFjU3RhdHVzCiBQVk9JRAogUFZTaGFy ZWQKLVBWV29ya2Vyc1VzYWdlCi1QVldvcmtlcnNTdGF0cworUFZXb3JrZXJVc2FnZQorUFZXb3Jr ZXJTdGF0cwogUFhfQWxpYXMKIFBYX0NpcGhlcgogUFhfQ29tYm8KLS0gCjIuNTMuMAoK --0000000000006bed5b064d3b256b Content-Type: application/x-patch; name="v28-0004-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Disposition: attachment; filename="v28-0004-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmudr4uj3 RnJvbSBkZDNkYmQ1YTQzZDBiMDVmMzM2OWUwMDNjZGIzYWE2ZGE5NDg3YmIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUaHUsIDE1IEphbiAyMDI2IDIzOjE1OjQ4ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjggNC83XSBDb3N0IGJhc2VkIHBhcmFtZXRlcnMgcHJvcGFnYXRpb24gZm9yIHBhcmFsbGVs 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 Yy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IGYxNTNkMDM0M2M4Li5mMzVh Y2YzZDc1YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMK KysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTE2NTksNyArMTY1 OSw3IEBAIFZhY3V1bVVwZGF0ZUNvc3RzKHZvaWQpCiAJfQogCWVsc2UKIAl7Ci0JCS8qIE11c3Qg YmUgZXhwbGljaXQgVkFDVVVNIG9yIEFOQUxZWkUgKi8KKwkJLyogTXVzdCBiZSBleHBsaWNpdCBW QUNVVU0gb3IgQU5BTFlaRSBvciBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlciAqLwogCQl2YWN1 dW1fY29zdF9kZWxheSA9IFZhY3V1bUNvc3REZWxheTsKIAkJdmFjdXVtX2Nvc3RfbGltaXQgPSBW YWN1dW1Db3N0TGltaXQ7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCA5NTNhNTA2MTgxZS4u Y2MxNTQ3MzcxMTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC00MjMsNiArNDIzLDggQEAgZXh0 ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1 dW1TdGF0ZSAqcHZzLAogCQkJCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJ CQkJCWJvb2wgZXN0aW1hdGVkX2NvdW50LAogCQkJCQkJCQkJCQkJUFZXb3JrZXJTdGF0cyAqd3N0 YXRzKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV91cGRhdGVfc2hhcmVkX2RlbGF5X3Bh cmFtcyh2b2lkKTsKK2V4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9wYWdhdGVfc2hhcmVk X2RlbGF5X3BhcmFtcyh2b2lkKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRz bV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKIC8qIGluIGNvbW1hbmRzL2FuYWx5emUu YyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA0YzIzMGVlMzhjYS4uY2E5OTk1M2Rm MjcgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMDg4LDYgKzIwODgsNyBAQCBQVklu ZFN0YXRzCiBQVkluZFZhY1N0YXR1cwogUFZPSUQKIFBWU2hhcmVkCitQVlNoYXJlZENvc3RQYXJh bXMKIFBWV29ya2VyVXNhZ2UKIFBWV29ya2VyU3RhdHMKIFBYX0FsaWFzCi0tIAoyLjUzLjAKCg== --0000000000006bed5b064d3b256b Content-Type: application/x-patch; name="v28-0002-Logging-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v28-0002-Logging-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmudr4ur5 RnJvbSA4ZWJjZmI5NmNlMmE2ZGFhZDNhZGNjNWY1YmNmZDBiMDNlMDI5Yjg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBNb24sIDE2IE1hciAyMDI2IDE5OjAxOjA1ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjggMi83XSBMb2dnaW5nIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgfCAzMiArKysrKysrKysrKysrKysrKysrKysr KysrLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgfCAyNiArKysrKysr KysrKysrKysrKy0tLS0tCiBzcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCAgICAgICAgIHwg MjggKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0ICAgICAgfCAgMiArKwogNCBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAxMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1s YXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggODJjNWIy OGUwYWQuLmNjY2FlZTViNjIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBA IC0zNDMsNiArMzQzLDEzIEBAIHR5cGVkZWYgc3RydWN0IExWUmVsU3RhdGUKIAlpbnQJCQludW1f aW5kZXhfc2NhbnM7CiAJaW50CQkJbnVtX2RlYWRfaXRlbXNfcmVzZXRzOwogCVNpemUJCXRvdGFs X2RlYWRfaXRlbXNfYnl0ZXM7CisKKwkvKgorCSAqIFRvdGFsIG51bWJlciBvZiBwbGFubmVkIGFu ZCBhY3R1YWxseSBsYXVuY2hlZCBwYXJhbGxlbCB3b3JrZXJzIGZvcgorCSAqIGluZGV4IHNjYW5z LgorCSAqLworCVBWV29ya2Vyc1VzYWdlIHdvcmtlcnNfdXNhZ2U7CisKIAkvKiBDb3VudGVycyB0 aGF0IGZvbGxvdyBhcmUgb25seSBmb3Igc2Nhbm5lZF9wYWdlcyAqLwogCWludDY0CQl0dXBsZXNf ZGVsZXRlZDsgLyogIyBkZWxldGVkIGZyb20gdGFibGUgKi8KIAlpbnQ2NAkJdHVwbGVzX2Zyb3pl bjsJLyogIyBuZXdseSBmcm96ZW4gKi8KQEAgLTc4MSw2ICs3ODgsMTEgQEAgaGVhcF92YWN1dW1f cmVsKFJlbGF0aW9uIHJlbCwgY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywKIAl2YWNyZWwtPm5l d19hbGxfdmlzaWJsZV9hbGxfZnJvemVuX3BhZ2VzID0gMDsKIAl2YWNyZWwtPm5ld19hbGxfZnJv emVuX3BhZ2VzID0gMDsKIAorCXZhY3JlbC0+d29ya2Vyc191c2FnZS52YWN1dW0ubmxhdW5jaGVk ID0gMDsKKwl2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5wbGFubmVkID0gMDsKKwl2YWNy ZWwtPndvcmtlcnNfdXNhZ2UuY2xlYW51cC5ubGF1bmNoZWQgPSAwOworCXZhY3JlbC0+d29ya2Vy c191c2FnZS5jbGVhbnVwLm5wbGFubmVkID0gMDsKKwogCS8qCiAJICogR2V0IGN1dG9mZnMgdGhh dCBkZXRlcm1pbmUgd2hpY2ggZGVsZXRlZCB0dXBsZXMgYXJlIGNvbnNpZGVyZWQgREVBRCwKIAkg KiBub3QganVzdCBSRUNFTlRMWV9ERUFELCBhbmQgd2hpY2ggWElEcy9NWElEcyB0byBmcmVlemUu ICBUaGVuIGRldGVybWluZQpAQCAtMTEyMyw2ICsxMTM1LDIwIEBAIGhlYXBfdmFjdXVtX3JlbChS ZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCQkJCQkJIG9yaWdfcmVs X3BhZ2VzID09IDAgPyAxMDAuMCA6CiAJCQkJCQkJIDEwMC4wICogdmFjcmVsLT5scGRlYWRfaXRl bV9wYWdlcyAvIG9yaWdfcmVsX3BhZ2VzLAogCQkJCQkJCSB2YWNyZWwtPmxwZGVhZF9pdGVtcyk7 CisJCQlpZiAodmFjcmVsLT53b3JrZXJzX3VzYWdlLnZhY3V1bS5ucGxhbm5lZCA+IDApCisJCQl7 CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLAorCQkJCQkJCQkgXygicGFyYWxsZWwgd29ya2Vy czogaW5kZXggdmFjdXVtOiAlZCBwbGFubmVkLCAlZCBsYXVuY2hlZCBpbiB0b3RhbFxuIiksCisJ CQkJCQkJCSB2YWNyZWwtPndvcmtlcnNfdXNhZ2UudmFjdXVtLm5wbGFubmVkLAorCQkJCQkJCQkg dmFjcmVsLT53b3JrZXJzX3VzYWdlLnZhY3V1bS5ubGF1bmNoZWQpOworCQkJfQorCQkJaWYgKHZh Y3JlbC0+d29ya2Vyc191c2FnZS5jbGVhbnVwLm5wbGFubmVkID4gMCkKKwkJCXsKKwkJCQlhcHBl bmRTdHJpbmdJbmZvKCZidWYsCisJCQkJCQkJCSBfKCJwYXJhbGxlbCB3b3JrZXJzOiBpbmRleCBj bGVhbnVwOiAlZCBwbGFubmVkLCAlZCBsYXVuY2hlZFxuIiksCisJCQkJCQkJCSB2YWNyZWwtPndv cmtlcnNfdXNhZ2UuY2xlYW51cC5ucGxhbm5lZCwKKwkJCQkJCQkJIHZhY3JlbC0+d29ya2Vyc191 c2FnZS5jbGVhbnVwLm5sYXVuY2hlZCk7CisJCQl9CiAJCQlmb3IgKGludCBpID0gMDsgaSA8IHZh Y3JlbC0+bmluZGV4ZXM7IGkrKykKIAkJCXsKIAkJCQlJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmlz dGF0ID0gdmFjcmVsLT5pbmRzdGF0c1tpXTsKQEAgLTI2NjksNyArMjY5NSw4IEBAIGxhenlfdmFj dXVtX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAl7CiAJCS8qIE91dHNvdXJjZSBl dmVyeXRoaW5nIHRvIHBhcmFsbGVsIHZhcmlhbnQgKi8KIAkJcGFyYWxsZWxfdmFjdXVtX2J1bGtk ZWxfYWxsX2luZGV4ZXModmFjcmVsLT5wdnMsIG9sZF9saXZlX3R1cGxlcywKLQkJCQkJCQkJCQkJ dmFjcmVsLT5udW1faW5kZXhfc2NhbnMpOworCQkJCQkJCQkJCQl2YWNyZWwtPm51bV9pbmRleF9z Y2FucywKKwkJCQkJCQkJCQkJJnZhY3JlbC0+d29ya2Vyc191c2FnZSk7CiAKIAkJLyoKIAkJICog RG8gYSBwb3N0Y2hlY2sgdG8gY29uc2lkZXIgYXBwbHlpbmcgd3JhcGFyb3VuZCBmYWlsc2FmZSBu b3cuICBOb3RlCkBAIC0zMTAzLDcgKzMxMzAsOCBAQCBsYXp5X2NsZWFudXBfYWxsX2luZGV4ZXMo TFZSZWxTdGF0ZSAqdmFjcmVsKQogCQkvKiBPdXRzb3VyY2UgZXZlcnl0aGluZyB0byBwYXJhbGxl bCB2YXJpYW50ICovCiAJCXBhcmFsbGVsX3ZhY3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKHZhY3Jl bC0+cHZzLCByZWx0dXBsZXMsCiAJCQkJCQkJCQkJCXZhY3JlbC0+bnVtX2luZGV4X3NjYW5zLAot CQkJCQkJCQkJCQllc3RpbWF0ZWRfY291bnQpOworCQkJCQkJCQkJCQllc3RpbWF0ZWRfY291bnQs CisJCQkJCQkJCQkJCSZ2YWNyZWwtPndvcmtlcnNfdXNhZ2UpOwogCX0KIAogCS8qIFJlc2V0IHRo ZSBwcm9ncmVzcyBjb3VudGVycyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMK aW5kZXggY2FmYTBhNGQ0OTQuLjVkZWE0Mzc0ZWM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bXBhcmFsbGVsLmMKQEAgLTIyNyw3ICsyMjcsNyBAQCBzdHJ1Y3QgUGFyYWxsZWxWYWN1dW1TdGF0 ZQogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICpp bmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCQkJCQkJCQkJCQlib29sICp3 aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vz c19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2Nh bnMsCi0JCQkJCQkJCQkJCQlib29sIHZhY3V1bSk7CisJCQkJCQkJCQkJCQlib29sIHZhY3V1bSwg UFZXb3JrZXJzU3RhdHMgKndzdGF0cyk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJv Y2Vzc19zYWZlX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzKTsKIHN0YXRpYyB2b2lk IHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3Vuc2FmZV9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3Rh dGUgKnB2cyk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19vbmVfaW5kZXgo UGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRyZWwsCkBAIC01MDIsNyArNTAy LDcgQEAgcGFyYWxsZWxfdmFjdXVtX3Jlc2V0X2RlYWRfaXRlbXMoUGFyYWxsZWxWYWN1dW1TdGF0 ZSAqcHZzKQogICovCiB2b2lkCiBwYXJhbGxlbF92YWN1dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyhQ YXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cGxlcywKLQkJCQkJCQkJ CWludCBudW1faW5kZXhfc2NhbnMpCisJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLCBQVldv cmtlcnNVc2FnZSAqd3VzYWdlKQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKIApA QCAtNTEzLDcgKzUxMyw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9idWxrZGVsX2FsbF9pbmRleGVzKFBh cmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZzLT5zaGFyZWQt PnJlbHR1cGxlcyA9IG51bV90YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVzdGltYXRlZF9j b3VudCA9IHRydWU7CiAKLQlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMs IG51bV9pbmRleF9zY2FucywgdHJ1ZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2lu ZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIHRydWUsCisJCQkJCQkJCQkJJnd1c2FnZS0+dmFj dXVtKTsKIH0KIAogLyoKQEAgLTUyMSw3ICs1MjIsOCBAQCBwYXJhbGxlbF92YWN1dW1fYnVsa2Rl bF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1 cAogICovCiB2b2lkCiBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyhQYXJhbGxl bFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cGxlcywKLQkJCQkJCQkJCWludCBu dW1faW5kZXhfc2NhbnMsIGJvb2wgZXN0aW1hdGVkX2NvdW50KQorCQkJCQkJCQkJaW50IG51bV9p bmRleF9zY2FucywgYm9vbCBlc3RpbWF0ZWRfY291bnQsCisJCQkJCQkJCQlQVldvcmtlcnNVc2Fn ZSAqd3VzYWdlKQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKIApAQCAtNTMzLDcg KzUzNSw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9jbGVhbnVwX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFj dXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZzLT5zaGFyZWQtPnJlbHR1cGxl cyA9IG51bV90YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVzdGltYXRlZF9jb3VudCA9IGVz dGltYXRlZF9jb3VudDsKIAotCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKHB2 cywgbnVtX2luZGV4X3NjYW5zLCBmYWxzZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxs X2luZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIGZhbHNlLAorCQkJCQkJCQkJCSZ3dXNhZ2Ut PmNsZWFudXApOwogfQogCiAvKgpAQCAtNjE1LDEwICs2MTgsMTMgQEAgcGFyYWxsZWxfdmFjdXVt X2NvbXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLCBpbnQgbnJl cXVlc3RlZCwKIC8qCiAgKiBQZXJmb3JtIGluZGV4IHZhY3V1bSBvciBpbmRleCBjbGVhbnVwIHdp dGggcGFyYWxsZWwgd29ya2Vycy4gIFRoaXMgZnVuY3Rpb24KICAqIG11c3QgYmUgdXNlZCBieSB0 aGUgcGFyYWxsZWwgdmFjdXVtIGxlYWRlciBwcm9jZXNzLgorICoKKyAqIElmIHdzdGF0cyBpcyBu b3QgTlVMTCwgdGhlIHN0YXRpc3RpY3MgaXQgc3RvcmVzIHdpbGwgYmUgdXBkYXRlZCBhY2NvcmRp bmcKKyAqIHRvIHdoYXQgaGFwcGVucyBkdXJpbmcgZnVuY3Rpb24gZXhlY3V0aW9uLgogICovCiBz dGF0aWMgdm9pZAogcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxW YWN1dW1TdGF0ZSAqcHZzLCBpbnQgbnVtX2luZGV4X3NjYW5zLAotCQkJCQkJCQkJYm9vbCB2YWN1 dW0pCisJCQkJCQkJCQlib29sIHZhY3V1bSwgUFZXb3JrZXJzU3RhdHMgKndzdGF0cykKIHsKIAlp bnQJCQlud29ya2VyczsKIAlQVkluZFZhY1N0YXR1cyBuZXdfc3RhdHVzOwpAQCAtNjU1LDYgKzY2 MSwxMCBAQCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1 bVN0YXRlICpwdnMsIGludCBudW1faW5kZXhfc2NhbgogCSAqLwogCW53b3JrZXJzID0gTWluKG53 b3JrZXJzLCBwdnMtPnBjeHQtPm53b3JrZXJzKTsKIAorCS8qIFJlbWVtYmVyIHRoaXMgdmFsdWUs IGlmIHdlIGFza2VkIHRvICovCisJaWYgKHdzdGF0cyAhPSBOVUxMICYmIG53b3JrZXJzID4gMCkK KwkJd3N0YXRzLT5ucGxhbm5lZCArPSBud29ya2VyczsKKwogCS8qCiAJICogU2V0IGluZGV4IHZh Y3V1bSBzdGF0dXMgYW5kIG1hcmsgd2hldGhlciBwYXJhbGxlbCB2YWN1dW0gd29ya2VyIGNhbgog CSAqIHByb2Nlc3MgaXQuCkBAIC03MTEsNiArNzIxLDEwIEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9j ZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9z Y2FuCiAJCQkvKiBFbmFibGUgc2hhcmVkIGNvc3QgYmFsYW5jZSBmb3IgbGVhZGVyIGJhY2tlbmQg Ki8KIAkJCVZhY3V1bVNoYXJlZENvc3RCYWxhbmNlID0gJihwdnMtPnNoYXJlZC0+Y29zdF9iYWxh bmNlKTsKIAkJCVZhY3V1bUFjdGl2ZU5Xb3JrZXJzID0gJihwdnMtPnNoYXJlZC0+YWN0aXZlX253 b3JrZXJzKTsKKworCQkJLyogUmVtZW1iZXIgdGhpcyB2YWx1ZSwgaWYgd2UgYXNrZWQgdG8gKi8K KwkJCWlmICh3c3RhdHMgIT0gTlVMTCkKKwkJCQl3c3RhdHMtPm5sYXVuY2hlZCArPSBwdnMtPnBj eHQtPm53b3JrZXJzX2xhdW5jaGVkOwogCQl9CiAKIAkJaWYgKHZhY3V1bSkKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmgKaW5kZXggZTg4NWE0YjljNzcuLjFkODIwOTE1ZDcxIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tYW5kcy92YWN1dW0uaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0u aApAQCAtMzAwLDYgKzMwMCwyOCBAQCB0eXBlZGVmIHN0cnVjdCBWYWNEZWFkSXRlbXNJbmZvCiAJ aW50NjQJCW51bV9pdGVtczsJCS8qIGN1cnJlbnQgIyBvZiBlbnRyaWVzICovCiB9IFZhY0RlYWRJ dGVtc0luZm87CiAKKy8qCisgKiBIZWxwZXIgZm9yIHRoZSBQVldvcmtlcnNVc2FnZSBzdHJ1Y3R1 cmUgKHNlZSBiZWxvdyksIHRvIGF2b2lkIHJlcGV0aXRpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0 IFBWV29ya2Vyc1N0YXRzCit7CisJLyogTnVtYmVyIG9mIHBhcmFsbGVsIHdvcmtlcnMgd2UgYXJl IHBsYW5uZWQgdG8gbGF1bmNoICovCisJaW50CQkJbnBsYW5uZWQ7CisKKwkvKiBOdW1iZXIgb2Yg bGF1bmNoZWQgcGFyYWxsZWwgd29ya2VycyAqLworCWludAkJCW5sYXVuY2hlZDsKK30gUFZXb3Jr ZXJzU3RhdHM7CisKKy8qCisgKiBQVldvcmtlcnNVc2FnZSBzdG9yZXMgaW5mb3JtYXRpb24gYWJv dXQgdG90YWwgbnVtYmVyIG9mIGxhdW5jaGVkIGFuZAorICogcGxhbm5lZCB3b3JrZXJzIGR1cmlu ZyBwYXJhbGxlbCB2YWN1dW0gKGJvdGggZm9yIHZhY3V1bSBhbmQgY2xlYW51cCkuCisgKi8KK3R5 cGVkZWYgc3RydWN0IFBWV29ya2Vyc1VzYWdlCit7CisJUFZXb3JrZXJzU3RhdHMgdmFjdXVtOwor CVBWV29ya2Vyc1N0YXRzIGNsZWFudXA7Cit9IFBWV29ya2Vyc1VzYWdlOworCiAvKiBHVUMgcGFy YW1ldGVycyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBkZWZhdWx0X3N0YXRpc3RpY3NfdGFy Z2V0OwkvKiBQR0RMTElNUE9SVCBmb3IgUG9zdEdJUyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGlu dCB2YWN1dW1fZnJlZXplX21pbl9hZ2U7CkBAIC0zOTQsMTEgKzQxNiwxMyBAQCBleHRlcm4gVGlk U3RvcmUgKnBhcmFsbGVsX3ZhY3V1bV9nZXRfZGVhZF9pdGVtcyhQYXJhbGxlbFZhY3V1bVN0YXRl ICpwdnMsCiBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fcmVzZXRfZGVhZF9pdGVtcyhQYXJh bGxlbFZhY3V1bVN0YXRlICpwdnMpOwogZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX2J1bGtk ZWxfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLAogCQkJCQkJCQkJCQkJbG9u ZyBudW1fdGFibGVfdHVwbGVzLAotCQkJCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2Fucyk7CisJ CQkJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLAorCQkJCQkJCQkJCQkJUFZXb3JrZXJzVXNh Z2UgKnd1c2FnZSk7CiBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5k ZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsCiAJCQkJCQkJCQkJCQlsb25nIG51bV90YWJs ZV90dXBsZXMsCiAJCQkJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3NjYW5zLAotCQkJCQkJCQkJCQkJ Ym9vbCBlc3RpbWF0ZWRfY291bnQpOworCQkJCQkJCQkJCQkJYm9vbCBlc3RpbWF0ZWRfY291bnQs CisJCQkJCQkJCQkJCQlQVldvcmtlcnNVc2FnZSAqd3VzYWdlKTsKIGV4dGVybiB2b2lkIHBhcmFs bGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKIC8qIGlu IGNvbW1hbmRzL2FuYWx5emUuYyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA1MmY4 NjAzYTdiZS4uYTY3ZDU0ZTE4MTkgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yMDg4 LDYgKzIwODgsOCBAQCBQVkluZFN0YXRzCiBQVkluZFZhY1N0YXR1cwogUFZPSUQKIFBWU2hhcmVk CitQVldvcmtlcnNVc2FnZQorUFZXb3JrZXJzU3RhdHMKIFBYX0FsaWFzCiBQWF9DaXBoZXIKIFBY X0NvbWJvCi0tIAoyLjUzLjAKCg== --0000000000006bed5b064d3b256b Content-Type: application/x-patch; name="v28-0001-Parallel-autovacuum.patch" Content-Disposition: attachment; filename="v28-0001-Parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmudr4uu6 RnJvbSA4OGU0Y2RiZjgyZTAzMDMyZTNiYjBjNzQ3YWJlYTg3YTAwYTdlZDc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBUdWUsIDE3IE1hciAyMDI2IDAyOjE4OjA5ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MjggMS83XSBQYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8IDExICsrKysrKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgICAgICAgICB8IDIwICsrKysrKysrKysrKystLS0tLS0K IHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jICAgICAgICAgICB8ICA4ICsrKysr Ky0tCiBzcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyAgICAgICAgICAgICAgfCAgMSAr CiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jICAgICAgICAgICAgICAgICAgfCAgOCArKysr KystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgICAgIHwgIDgg KysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8 ICAxICsKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAx ICsKIHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsK IHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5oICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKysr KysrCiAxMCBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCmluZGV4IDIzN2FiOGQwZWQ5Li45 NDU5YTAxMGNjMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRp b25zLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKQEAgLTIz NSw2ICsyMzUsMTUgQEAgc3RhdGljIHJlbG9wdF9pbnQgaW50UmVsT3B0c1tdID0KIAkJfSwKIAkJ U1BHSVNUX0RFRkFVTFRfRklMTEZBQ1RPUiwgU1BHSVNUX01JTl9GSUxMRkFDVE9SLCAxMDAKIAl9 LAorCXsKKwkJeworCQkJImF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyIsCisJCQkiTWF4aW11 bSBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHRoYXQgY2FuIGJlIHVzZWQg Zm9yIHByb2Nlc3NpbmcgdGhpcyB0YWJsZS4iLAorCQkJUkVMT1BUX0tJTkRfSEVBUCwKKwkJCVNo YXJlVXBkYXRlRXhjbHVzaXZlTG9jaworCQl9LAorCQktMSwgLTEsIDEwMjQKKwl9LAogCXsKIAkJ ewogCQkJImF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCIsCkBAIC0xOTY4LDYgKzE5NzcsOCBA QCBkZWZhdWx0X3JlbG9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgYm9vbCB2YWxpZGF0ZSwgcmVs b3B0X2tpbmQga2luZCkKIAkJeyJmaWxsZmFjdG9yIiwgUkVMT1BUX1RZUEVfSU5ULCBvZmZzZXRv ZihTdGRSZE9wdGlvbnMsIGZpbGxmYWN0b3IpfSwKIAkJeyJhdXRvdmFjdXVtX2VuYWJsZWQiLCBS RUxPUFRfVFlQRV9CT09MLAogCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsg b2Zmc2V0b2YoQXV0b1ZhY09wdHMsIGVuYWJsZWQpfSwKKwkJeyJhdXRvdmFjdXVtX3BhcmFsbGVs X3dvcmtlcnMiLCBSRUxPUFRfVFlQRV9JTlQsCisJCW9mZnNldG9mKFN0ZFJkT3B0aW9ucywgYXV0 b3ZhY3V1bSkgKyBvZmZzZXRvZihBdXRvVmFjT3B0cywgYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3Jr ZXJzKX0sCiAJCXsiYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkIiwgUkVMT1BUX1RZUEVfSU5U LAogCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsgb2Zmc2V0b2YoQXV0b1Zh Y09wdHMsIHZhY3V1bV90aHJlc2hvbGQpfSwKIAkJeyJhdXRvdmFjdXVtX3ZhY3V1bV9tYXhfdGhy ZXNob2xkIiwgUkVMT1BUX1RZUEVfSU5ULApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVs LmMKaW5kZXggMjc5MTA4Y2E4OWYuLmNhZmEwYTRkNDk0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh Y3V1bXBhcmFsbGVsLmMKQEAgLTEsNyArMSw5IEBACiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCiAg KiB2YWN1dW1wYXJhbGxlbC5jCi0gKgkgIFN1cHBvcnQgcm91dGluZXMgZm9yIHBhcmFsbGVsIHZh Y3V1bSBleGVjdXRpb24uCisgKgkgIFN1cHBvcnQgcm91dGluZXMgZm9yIHBhcmFsbGVsIHZhY3V1 bSBhbmQgYXV0b3ZhY3V1bSBleGVjdXRpb24uIEluIHRoZQorICoJICBjb21tZW50cyBiZWxvdywg dGhlIHdvcmQgInZhY3V1bSIgd2lsbCByZWZlciB0byBib3RoIHZhY3V1bSBhbmQKKyAqCSAgYXV0 b3ZhY3V1bS4KICAqCiAgKiBUaGlzIGZpbGUgY29udGFpbnMgcm91dGluZXMgdGhhdCBhcmUgaW50 ZW5kZWQgdG8gc3VwcG9ydCBzZXR0aW5nIHVwLCB1c2luZywKICAqIGFuZCB0ZWFyaW5nIGRvd24g YSBQYXJhbGxlbFZhY3V1bVN0YXRlLgpAQCAtMzc0LDggKzM3Niw5IEBAIHBhcmFsbGVsX3ZhY3V1 bV9pbml0KFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywKIAlz aGFyZWQtPnF1ZXJ5aWQgPSBwZ3N0YXRfZ2V0X215X3F1ZXJ5X2lkKCk7CiAJc2hhcmVkLT5tYWlu dGVuYW5jZV93b3JrX21lbV93b3JrZXIgPQogCQkobmluZGV4ZXNfbXdtID4gMCkgPwotCQltYWlu dGVuYW5jZV93b3JrX21lbSAvIE1pbihwYXJhbGxlbF93b3JrZXJzLCBuaW5kZXhlc19td20pIDoK LQkJbWFpbnRlbmFuY2Vfd29ya19tZW07CisJCXZhY193b3JrX21lbSAvIE1pbihwYXJhbGxlbF93 b3JrZXJzLCBuaW5kZXhlc19td20pIDoKKwkJdmFjX3dvcmtfbWVtOworCiAJc2hhcmVkLT5kZWFk X2l0ZW1zX2luZm8ubWF4X2J5dGVzID0gdmFjX3dvcmtfbWVtICogKHNpemVfdCkgMTAyNDsKIAog CS8qIFByZXBhcmUgRFNBIHNwYWNlIGZvciBkZWFkIGl0ZW1zICovCkBAIC01NTQsMTIgKzU1Nywx NyBAQCBwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxzLCBp bnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCWludAkJCW5pbmRleGVzX3BhcmFsbGVsX2J1 bGtkZWwgPSAwOwogCWludAkJCW5pbmRleGVzX3BhcmFsbGVsX2NsZWFudXAgPSAwOwogCWludAkJ CXBhcmFsbGVsX3dvcmtlcnM7CisJaW50CQkJbWF4X3dvcmtlcnM7CisKKwltYXhfd29ya2VycyA9 IEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSA/CisJCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVs X3dvcmtlcnMgOgorCQltYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2VyczsKIAogCS8qCiAJ ICogV2UgZG9uJ3QgYWxsb3cgcGVyZm9ybWluZyBwYXJhbGxlbCBvcGVyYXRpb24gaW4gc3RhbmRh bG9uZSBiYWNrZW5kIG9yCiAJICogd2hlbiBwYXJhbGxlbGlzbSBpcyBkaXNhYmxlZC4KIAkgKi8K LQlpZiAoIUlzVW5kZXJQb3N0bWFzdGVyIHx8IG1heF9wYXJhbGxlbF9tYWludGVuYW5jZV93b3Jr ZXJzID09IDApCisJaWYgKCFJc1VuZGVyUG9zdG1hc3RlciB8fCBtYXhfd29ya2VycyA9PSAwKQog CQlyZXR1cm4gMDsKIAogCS8qCkBAIC01OTgsOCArNjA2LDggQEAgcGFyYWxsZWxfdmFjdXVtX2Nv bXB1dGVfd29ya2VycyhSZWxhdGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLCBpbnQgbnJlcXVl c3RlZCwKIAlwYXJhbGxlbF93b3JrZXJzID0gKG5yZXF1ZXN0ZWQgPiAwKSA/CiAJCU1pbihucmVx dWVzdGVkLCBuaW5kZXhlc19wYXJhbGxlbCkgOiBuaW5kZXhlc19wYXJhbGxlbDsKIAotCS8qIENh cCBieSBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2VycyAqLwotCXBhcmFsbGVsX3dvcmtl cnMgPSBNaW4ocGFyYWxsZWxfd29ya2VycywgbWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtl cnMpOworCS8qIENhcCBieSBHVUMgdmFyaWFibGUgKi8KKwlwYXJhbGxlbF93b3JrZXJzID0gTWlu KHBhcmFsbGVsX3dvcmtlcnMsIG1heF93b3JrZXJzKTsKIAogCXJldHVybiBwYXJhbGxlbF93b3Jr ZXJzOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMg Yi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYwppbmRleCAyMTk2NzNkYjkzMC4u ZjE1M2QwMzQzYzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1 bS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jCkBAIC0yODU4LDgg KzI4NTgsMTIgQEAgdGFibGVfcmVjaGVja19hdXRvdmFjKE9pZCByZWxpZCwgSFRBQiAqdGFibGVf dG9hc3RfbWFwLAogCQkgKi8KIAkJdGFiLT5hdF9wYXJhbXMuaW5kZXhfY2xlYW51cCA9IFZBQ09Q VFZBTFVFX1VOU1BFQ0lGSUVEOwogCQl0YWItPmF0X3BhcmFtcy50cnVuY2F0ZSA9IFZBQ09QVFZB TFVFX1VOU1BFQ0lGSUVEOwotCQkvKiBBcyBvZiBub3csIHdlIGRvbid0IHN1cHBvcnQgcGFyYWxs ZWwgdmFjdXVtIGZvciBhdXRvdmFjdXVtICovCi0JCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0g LTE7CisKKwkJLyogRGVjaWRlIHdoZXRoZXIgd2UgbmVlZCB0byBwcm9jZXNzIGluZGV4ZXMgb2Yg dGFibGUgaW4gcGFyYWxsZWwuICovCisJCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0gYXZvcHRz CisJCQk/IGF2b3B0cy0+YXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzCisJCQk6IC0xOworCiAJ CXRhYi0+YXRfcGFyYW1zLmZyZWV6ZV9taW5fYWdlID0gZnJlZXplX21pbl9hZ2U7CiAJCXRhYi0+ YXRfcGFyYW1zLmZyZWV6ZV90YWJsZV9hZ2UgPSBmcmVlemVfdGFibGVfYWdlOwogCQl0YWItPmF0 X3BhcmFtcy5tdWx0aXhhY3RfZnJlZXplX21pbl9hZ2UgPSBtdWx0aXhhY3RfZnJlZXplX21pbl9h Z2U7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCmluZGV4IDM2YWQ3MDhiMzYwLi44MjY1YTgyYjYz OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKQEAgLTE0Myw2ICsxNDMsNyBAQCBpbnQJCQlO QnVmZmVycyA9IDE2Mzg0OwogaW50CQkJTWF4Q29ubmVjdGlvbnMgPSAxMDA7CiBpbnQJCQltYXhf d29ya2VyX3Byb2Nlc3NlcyA9IDg7CiBpbnQJCQltYXhfcGFyYWxsZWxfd29ya2VycyA9IDg7Citp bnQJCQlhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzID0gMjsKIGludAkJCU1heEJhY2tl bmRzID0gMDsKIAogLyogR1VDIHBhcmFtZXRlcnMgZm9yIHZhY3V1bSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj LmMKaW5kZXggZDc3NTAyODM4YzQuLjUzNGU1OGEzOThjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKQEAg LTMzMjYsOSArMzMyNiwxMyBAQCBzZXRfY29uZmlnX3dpdGhfaGFuZGxlKGNvbnN0IGNoYXIgKm5h bWUsIGNvbmZpZ19oYW5kbGUgKmhhbmRsZSwKIAkgKgogCSAqIEFsc28gYWxsb3cgbm9ybWFsIHNl dHRpbmcgaWYgdGhlIEdVQyBpcyBtYXJrZWQgR1VDX0FMTE9XX0lOX1BBUkFMTEVMLgogCSAqCi0J ICogT3RoZXIgY2hhbmdlcyBtaWdodCBuZWVkIHRvIGFmZmVjdCBvdGhlciB3b3JrZXJzLCBzbyBm b3JiaWQgdGhlbS4KKwkgKiBPdGhlciBjaGFuZ2VzIG1pZ2h0IG5lZWQgdG8gYWZmZWN0IG90aGVy IHdvcmtlcnMsIHNvIGZvcmJpZCB0aGVtLiBOb3RlLAorCSAqIHRoYXQgcGFyYWxsZWwgYXV0b3Zh Y3V1bSBsZWFkZXIgaXMgYW4gZXhjZXB0aW9uLCBiZWNhdXNlIG9ubHkKKwkgKiBjb3N0LWJhc2Vk IGRlbGF5cyBuZWVkIHRvIGJlIGFmZmVjdGVkIGFsc28gdG8gcGFyYWxsZWwgYXV0b3ZhY3V1bQor CSAqIHdvcmtlcnMsIGFuZCB3ZSB3aWxsIGhhbmRsZSBpdCBlbHNld2hlcmUgaWYgYXBwcm9wcmlh dGUuCiAJICovCi0JaWYgKElzSW5QYXJhbGxlbE1vZGUoKSAmJiBjaGFuZ2VWYWwgJiYgYWN0aW9u ICE9IEdVQ19BQ1RJT05fU0FWRSAmJgorCWlmIChJc0luUGFyYWxsZWxNb2RlKCkgJiYgIUFtQXV0 b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJiBjaGFuZ2VWYWwgJiYKKwkJYWN0aW9uICE9IEdVQ19B Q1RJT05fU0FWRSAmJgogCQkocmVjb3JkLT5mbGFncyAmIEdVQ19BTExPV19JTl9QQVJBTExFTCkg PT0gMCkKIAl7CiAJCWVyZXBvcnQoZWxldmVsLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19w YXJhbWV0ZXJzLmRhdAppbmRleCBhNWEwZWRmMjUzNC4uMTIzOTNjMTIxNGIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CkBAIC0xNTQsNiArMTU0LDE0IEBACiAg IG1heCA9PiAnMjAwMDAwMDAwMCcsCiB9LAogCit7IG5hbWUgPT4gJ2F1dG92YWN1dW1fbWF4X3Bh cmFsbGVsX3dvcmtlcnMnLCB0eXBlID0+ICdpbnQnLCBjb250ZXh0ID0+ICdQR0NfU0lHSFVQJywg Z3JvdXAgPT4gJ1ZBQ1VVTV9BVVRPVkFDVVVNJywKKyAgc2hvcnRfZGVzYyA9PiAnTWF4aW11bSBu dW1iZXIgb2YgcGFyYWxsZWwgd29ya2VycyB0aGF0IGEgc2luZ2xlIGF1dG92YWN1dW0gd29ya2Vy IGNhbiB0YWtlIGZyb20gYmd3b3JrZXJzIHBvb2wuJywKKyAgdmFyaWFibGUgPT4gJ2F1dG92YWN1 dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMnLAorICBib290X3ZhbCA9PiAnMicsCisgIG1pbiA9PiAn MCcsCisgIG1heCA9PiAnTUFYX0JBQ0tFTkRTJywKK30sCisKIHsgbmFtZSA9PiAnYXV0b3ZhY3V1 bV9tYXhfd29ya2VycycsIHR5cGUgPT4gJ2ludCcsIGNvbnRleHQgPT4gJ1BHQ19TSUdIVVAnLCBn cm91cCA9PiAnVkFDVVVNX0FVVE9WQUNVVU0nLAogICBzaG9ydF9kZXNjID0+ICdTZXRzIHRoZSBt YXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXNseSBydW5uaW5nIGF1dG92YWN1dW0gd29ya2Vy IHByb2Nlc3Nlcy4nLAogICB2YXJpYWJsZSA9PiAnYXV0b3ZhY3V1bV9tYXhfd29ya2VycycsCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZTY4 NmQ4OGFmYzQuLjVlMWM2MmQ2MTZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNj L3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTAsNiArNzEwLDcgQEAKICNhdXRvdmFjdXVtX3dvcmtl cl9zbG90cyA9IDE2ICAgICAgICAgICAjIGF1dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9j YXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAoY2hhbmdlIHJl cXVpcmVzIHJlc3RhcnQpCiAjYXV0b3ZhY3V1bV9tYXhfd29ya2VycyA9IDMgICAgICAgICAgICAg IyBtYXggbnVtYmVyIG9mIGF1dG92YWN1dW0gc3VicHJvY2Vzc2VzCisjYXV0b3ZhY3V1bV9tYXhf cGFyYWxsZWxfd29ya2VycyA9IDIgICAgIyBsaW1pdGVkIGJ5IG1heF9wYXJhbGxlbF93b3JrZXJz CiAjYXV0b3ZhY3V1bV9uYXB0aW1lID0gMW1pbiAgICAgICAgICAgICAgIyB0aW1lIGJldHdlZW4g YXV0b3ZhY3V1bSBydW5zCiAjYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkID0gNTAgICAgICAg IyBtaW4gbnVtYmVyIG9mIHJvdyB1cGRhdGVzIGJlZm9yZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMgdmFjdXVtCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNWJk YmYxNTMwYTIuLjI5MTcxZWZiYzFiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xNDMyLDYg KzE0MzIsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgdGFibGVfc3RvcmFnZV9wYXJhbWV0 ZXJzW10gPSB7CiAJImF1dG92YWN1dW1fbXVsdGl4YWN0X2ZyZWV6ZV9tYXhfYWdlIiwKIAkiYXV0 b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX21pbl9hZ2UiLAogCSJhdXRvdmFjdXVtX211bHRpeGFj dF9mcmVlemVfdGFibGVfYWdlIiwKKwkiYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzIiwKIAki YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSIsCiAJImF1dG92YWN1dW1fdmFjdXVtX2Nvc3Rf bGltaXQiLAogCSJhdXRvdmFjdXVtX3ZhY3V1bV9pbnNlcnRfc2NhbGVfZmFjdG9yIiwKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgK aW5kZXggZjE2ZjM1NjU5YjkuLjAwMTkwYzY3ZWNmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9t aXNjYWRtaW4uaAorKysgYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApAQCAtMTc4LDYgKzE3OCw3 IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgTWF4QmFja2VuZHM7CiBleHRlcm4gUEdETExJTVBP UlQgaW50IE1heENvbm5lY3Rpb25zOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfd29ya2Vy X3Byb2Nlc3NlczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3BhcmFsbGVsX3dvcmtlcnM7 CitleHRlcm4gUEdETExJTVBPUlQgaW50IGF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM7 CiAKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgY29tbWl0X3RpbWVzdGFtcF9idWZmZXJzOwogZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZlcnM7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCmluZGV4 IDIzNjgzMGY2YjkzLi4xMWRkM2FlYmM2YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMv cmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKQEAgLTMxMSw2ICszMTEsMTQgQEAg dHlwZWRlZiBzdHJ1Y3QgRm9yZWlnbktleUNhY2hlSW5mbwogdHlwZWRlZiBzdHJ1Y3QgQXV0b1Zh Y09wdHMKIHsKIAlib29sCQllbmFibGVkOworCisJLyoKKwkgKiBUYXJnZXQgbnVtYmVyIG9mIHBh cmFsbGVsIGF1dG92YWN1dW0gd29ya2Vycy4gLTEgYnkgZGVmYXVsdCBkaXNhYmxlcworCSAqIHBh cmFsbGVsIHZhY3V1bSBkdXJpbmcgYXV0b3ZhY3V1bS4gMCBtZWFucyBjaG9vc2UgdGhlIHBhcmFs bGVsIGRlZ3JlZQorCSAqIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgaW5kZXhlcy4KKwkgKi8KKwlp bnQJCQlhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnM7CisKIAlpbnQJCQl2YWN1dW1fdGhyZXNo b2xkOwogCWludAkJCXZhY3V1bV9tYXhfdGhyZXNob2xkOwogCWludAkJCXZhY3V1bV9pbnNfdGhy ZXNob2xkOwotLSAKMi41My4wCgo= --0000000000006bed5b064d3b256b--