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 1vdQCJ-000K8T-2J for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Jan 2026 09:51:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vdQCI-00DMY3-2D for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Jan 2026 09:51:23 +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 <3danissimo@gmail.com>) id 1vdQCI-00DMXr-0T for pgsql-hackers@lists.postgresql.org; Wed, 07 Jan 2026 09:51:23 +0000 Received: from mail-yw1-x1136.google.com ([2607:f8b0:4864:20::1136]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <3danissimo@gmail.com>) id 1vdQCG-0053f0-0p for pgsql-hackers@lists.postgresql.org; Wed, 07 Jan 2026 09:51:22 +0000 Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-78fc3572431so21561297b3.0 for ; Wed, 07 Jan 2026 01:51:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767779478; x=1768384278; 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=Hp5PHmiTy23sIVa1DOqK15rV/mRyVA8NLZRK7UxZcc0=; b=dEiObodYIdrqgQqFXF/I6JGMS2PgWzKEdbfklfVymdjOW9W8DsHpMrrKswQ2q9ErbQ q1qG3vi/oKZ2fbI5dmS3VOyP863JdbGcniOxA8UB878Tb8Fok2rXWEvVLaIWQSZyv5r8 /IIeWY2KBxuRBi7kN8o/Kd6ZgFfsByEVNJ+ljH8ui5FMbi0yD4FUdjl5vufy2xQo3ai6 qh54X42JkuGhGW16uSnzGoxUOgTch06gZiaY12lIhk1PtHONiCsWNHTk/58YlBdPQa5H 6PMx6BchbKuQTHaoPvImAduRZoeIIBbm17CEjKETYav2rqC9GE5xFU7iLbrMbI2J8gHB kuUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767779478; x=1768384278; 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=Hp5PHmiTy23sIVa1DOqK15rV/mRyVA8NLZRK7UxZcc0=; b=MbLDOktL2hFECO7/YqNcp2rk83XckQ823g5kDcYhPAOlSojZ2ivWdT9VB1hEd8kepv UkdRVc1P99SuRSMs4gYZrGqSHVEs+ZU95s+3rK8CFD0BS52+3kw4bQwRx1wH0F/1obGC Rl/QsgpArohfpti4XyppybpGZgBFoXcBIKr7pajHyqLl3Pa5C5ZQsa2Y8uoOqpQbK4cp mcn3lSlswc9cFmkbt0epe5np/HWkzAlxtKrQLGSCGp52iJiP0YnsMm+imsvtJyfsu9hz cplMUIStHZ0ow1Nhl3TeAWY9YdT7rQqS3qFDZuwaqtgo7aybwhlMJ+sAXdfhJ3Oyg3dY KeZw== X-Forwarded-Encrypted: i=1; AJvYcCV1Nublc0oIIwx92A2Khg1MqkA+mjnVroPdb8ycM6EQUAsdkrQRJw1OAptDEd6JM/IxpG3LFIBlb7h1SlSG@lists.postgresql.org X-Gm-Message-State: AOJu0YwQ0H5txOjQmuq6C6/wYF77o5nFv4Jz93GNOFshpFFDwOEaobzz +2JPk2CG7T4ua21IFNNOS1JIFDuk7KcNgjyUM/qw2aZFllsH4fxanrXHltoY5saCMsLzP/GZ/Ld c0uMQvfDgTr3JhhuzXfjS/rmMaz4Bxlk= X-Gm-Gg: AY/fxX5nZFplq0NXfYzLF6BtSXJUhmtH8BpHnr3H2UN/VW5xLwM9moLEOaD4LRG83NF yplgLzMPjp7cC8hvy+12PtcKLaZFKSYMYcTaHqP1AIvI92h9VizzA8oSvlNjYbQ5B5+9TSYHx76 FqKbSOE7xygf7XElBK5W1HSWlbu7h/3Pc8zOY4tMn5KvppYMKEqfQcUYzmCNTGA6/K9yaL1vTaR RYRREDk+UzoOXJg90cQlTzKMAcKSRaYvyVEUXm5n1/3B07ewOhQGzvbbOQRC4oUVLOO X-Google-Smtp-Source: AGHT+IG5xPhiEuW0ggGjBo9jaWLL+bCq9ONaxRnNsGscMsn0UYODCZxD4NJds3ycjJb1sNNiL3FiHHh6PpKb6lFMCNI= X-Received: by 2002:a05:690c:d91:b0:787:e384:4e7 with SMTP id 00721157ae682-790b57c30dfmr18835627b3.51.1767779478269; Wed, 07 Jan 2026 01:51:18 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Daniil Davydov <3danissimo@gmail.com> Date: Wed, 7 Jan 2026 16:51:06 +0700 X-Gm-Features: AQt7F2pNLdbegIsN0mbl6mivsdUaSgo3PFEQGJriRr8qBnSsjMlYpSB29aGGcuY Message-ID: Subject: Re: POC: Parallel processing of indexes in autovacuum To: Masahiko Sawada Cc: Sami Imseih , Alexander Korotkov , Matheus Alcantara , Maxim Orlov , Postgres hackers Content-Type: multipart/mixed; boundary="000000000000d8318e0647c93bb7" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d8318e0647c93bb7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, On Tue, Jan 6, 2026 at 3:44=E2=80=AFAM Daniil Davydov <3danissimo@gmail.com= > wrote: > > On Tue, Jan 6, 2026 at 1:51=E2=80=AFAM Masahiko Sawada wrote: > > > > Are you still working on it? Or shall I draft this part on top of the > > 0001 patch? > > I thought about some "beautiful" approach, but for now I have > only one idea - force parallel a/v workers to get values for these > parameters from shmem (which obviously can be modified by the > leader a/v process). I'll post this patch in the near future. > I am posting a draft version of the patch (see 0005) that allows parallel leader to propagate changes of cost-based parameters to its parallel workers. It is a very rough fix, but it reflects my idea that is to have so= me shared state from which parallel workers can get values for the parameters (and which only leader worker can modify, obviously). I have also added a test that shows that this idea is working - the test ensures that parallel workers can change its parameters if they have been changed for the leader worker. Note that so far the work is in progress - this logic works only for vacuum_cost_delay and vacuum_cost_limits parameters. I think that we should agree on an idea first, and only then apply logic for all appropriat= e parameters. What do you think? -- Best regards, Daniil Davydov --000000000000d8318e0647c93bb7 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0001-Parallel-autovacuum.patch" Content-Disposition: attachment; filename="v18-0001-Parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk3u5mtt4 RnJvbSBhNWYyNjFkYzdiNGZlMzdhYmE4ZjI0ZWY1MjQxZTJiMWYyZDg1YTM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBTdW4sIDIzIE5vdiAyMDI1IDAxOjAzOjI0ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MTggMS81XSBQYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jICAgICAgICB8ICAxMSArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMv dmFjdXVtcGFyYWxsZWwuYyAgICAgICAgIHwgIDQyICsrKystCiBzcmMvYmFja2VuZC9wb3N0bWFz dGVyL2F1dG92YWN1dW0uYyAgICAgICAgICAgfCAxNjYgKysrKysrKysrKysrKysrKystCiBzcmMv YmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWMuYyAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBzcmMvYmFj a2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCAgICAgfCAgIDkgKwogc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgICAyICsKIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9t aXNjYWRtaW4uaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcG9z dG1hc3Rlci9hdXRvdmFjdXVtLmggICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL3V0aWxz L3JlbC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArCiAxMSBmaWxlcyBjaGFuZ2VkLCAy NDIgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L3JlbG9wdGlvbnMuYwppbmRleCAwYjgzZjk4ZWQ1Zi4uNjkyYWM0NjczM2UgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0yMjIsNiArMjIyLDE1IEBAIHN0YXRpYyBy ZWxvcHRfaW50IGludFJlbE9wdHNbXSA9CiAJCX0sCiAJCVNQR0lTVF9ERUZBVUxUX0ZJTExGQUNU T1IsIFNQR0lTVF9NSU5fRklMTEZBQ1RPUiwgMTAwCiAJfSwKKwl7CisJCXsKKwkJCSJhdXRvdmFj dXVtX3BhcmFsbGVsX3dvcmtlcnMiLAorCQkJIk1heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVsIGF1 dG92YWN1dW0gd29ya2VycyB0aGF0IGNhbiBiZSB1c2VkIGZvciBwcm9jZXNzaW5nIHRoaXMgdGFi bGUuIiwKKwkJCVJFTE9QVF9LSU5EX0hFQVAsCisJCQlTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sK KwkJfSwKKwkJLTEsIC0xLCAxMDI0CisJfSwKIAl7CiAJCXsKIAkJCSJhdXRvdmFjdXVtX3ZhY3V1 bV90aHJlc2hvbGQiLApAQCAtMTg4MSw2ICsxODkwLDggQEAgZGVmYXVsdF9yZWxvcHRpb25zKERh dHVtIHJlbG9wdGlvbnMsIGJvb2wgdmFsaWRhdGUsIHJlbG9wdF9raW5kIGtpbmQpCiAJCXsiZmls bGZhY3RvciIsIFJFTE9QVF9UWVBFX0lOVCwgb2Zmc2V0b2YoU3RkUmRPcHRpb25zLCBmaWxsZmFj dG9yKX0sCiAJCXsiYXV0b3ZhY3V1bV9lbmFibGVkIiwgUkVMT1BUX1RZUEVfQk9PTCwKIAkJb2Zm c2V0b2YoU3RkUmRPcHRpb25zLCBhdXRvdmFjdXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCBl bmFibGVkKX0sCisJCXsiYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzIiwgUkVMT1BUX1RZUEVf SU5ULAorCQlvZmZzZXRvZihTdGRSZE9wdGlvbnMsIGF1dG92YWN1dW0pICsgb2Zmc2V0b2YoQXV0 b1ZhY09wdHMsIGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2Vycyl9LAogCQl7ImF1dG92YWN1dW1f dmFjdXVtX3RocmVzaG9sZCIsIFJFTE9QVF9UWVBFX0lOVCwKIAkJb2Zmc2V0b2YoU3RkUmRPcHRp b25zLCBhdXRvdmFjdXVtKSArIG9mZnNldG9mKEF1dG9WYWNPcHRzLCB2YWN1dW1fdGhyZXNob2xk KX0sCiAJCXsiYXV0b3ZhY3V1bV92YWN1dW1fbWF4X3RocmVzaG9sZCIsIFJFTE9QVF9UWVBFX0lO VCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCmluZGV4IGMzYjNjOWVhMjFhLi42 YTNhMDA1ODVmOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxs ZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC0xLDcg KzEsOSBAQAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICogdmFjdXVtcGFyYWxsZWwuYwotICoJ ICBTdXBwb3J0IHJvdXRpbmVzIGZvciBwYXJhbGxlbCB2YWN1dW0gZXhlY3V0aW9uLgorICoJICBT dXBwb3J0IHJvdXRpbmVzIGZvciBwYXJhbGxlbCB2YWN1dW0gYW5kIGF1dG92YWN1dW0gZXhlY3V0 aW9uLiBJbiB0aGUKKyAqCSAgY29tbWVudHMgYmVsb3csIHRoZSB3b3JkICJ2YWN1dW0iIHdpbGwg cmVmZXIgdG8gYm90aCB2YWN1dW0gYW5kCisgKgkgIGF1dG92YWN1dW0uCiAgKgogICogVGhpcyBm aWxlIGNvbnRhaW5zIHJvdXRpbmVzIHRoYXQgYXJlIGludGVuZGVkIHRvIHN1cHBvcnQgc2V0dGlu ZyB1cCwgdXNpbmcsCiAgKiBhbmQgdGVhcmluZyBkb3duIGEgUGFyYWxsZWxWYWN1dW1TdGF0ZS4K QEAgLTM0LDYgKzM2LDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9pbnN0cnVtZW50LmgiCiAjaW5j bHVkZSAib3B0aW1pemVyL3BhdGhzLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAi cG9zdG1hc3Rlci9hdXRvdmFjdXVtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNp bmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCkBA IC0zNzMsOCArMzc2LDkgQEAgcGFyYWxsZWxfdmFjdXVtX2luaXQoUmVsYXRpb24gcmVsLCBSZWxh dGlvbiAqaW5kcmVscywgaW50IG5pbmRleGVzLAogCXNoYXJlZC0+cXVlcnlpZCA9IHBnc3RhdF9n ZXRfbXlfcXVlcnlfaWQoKTsKIAlzaGFyZWQtPm1haW50ZW5hbmNlX3dvcmtfbWVtX3dvcmtlciA9 CiAJCShuaW5kZXhlc19td20gPiAwKSA/Ci0JCW1haW50ZW5hbmNlX3dvcmtfbWVtIC8gTWluKHBh cmFsbGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgotCQltYWludGVuYW5jZV93b3JrX21lbTsK KwkJdmFjX3dvcmtfbWVtIC8gTWluKHBhcmFsbGVsX3dvcmtlcnMsIG5pbmRleGVzX213bSkgOgor CQl2YWNfd29ya19tZW07CisKIAlzaGFyZWQtPmRlYWRfaXRlbXNfaW5mby5tYXhfYnl0ZXMgPSB2 YWNfd29ya19tZW0gKiAoc2l6ZV90KSAxMDI0OwogCiAJLyogUHJlcGFyZSBEU0Egc3BhY2UgZm9y IGRlYWQgaXRlbXMgKi8KQEAgLTU1MywxMiArNTU3LDE3IEBAIHBhcmFsbGVsX3ZhY3V1bV9jb21w dXRlX3dvcmtlcnMoUmVsYXRpb24gKmluZHJlbHMsIGludCBuaW5kZXhlcywgaW50IG5yZXF1ZXN0 ZWQsCiAJaW50CQkJbmluZGV4ZXNfcGFyYWxsZWxfYnVsa2RlbCA9IDA7CiAJaW50CQkJbmluZGV4 ZXNfcGFyYWxsZWxfY2xlYW51cCA9IDA7CiAJaW50CQkJcGFyYWxsZWxfd29ya2VyczsKKwlpbnQJ CQltYXhfd29ya2VyczsKKworCW1heF93b3JrZXJzID0gQW1BdXRvVmFjdXVtV29ya2VyUHJvY2Vz cygpID8KKwkJYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA6CisJCW1heF9wYXJhbGxl bF9tYWludGVuYW5jZV93b3JrZXJzOwogCiAJLyoKIAkgKiBXZSBkb24ndCBhbGxvdyBwZXJmb3Jt aW5nIHBhcmFsbGVsIG9wZXJhdGlvbiBpbiBzdGFuZGFsb25lIGJhY2tlbmQgb3IKIAkgKiB3aGVu IHBhcmFsbGVsaXNtIGlzIGRpc2FibGVkLgogCSAqLwotCWlmICghSXNVbmRlclBvc3RtYXN0ZXIg fHwgbWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtlcnMgPT0gMCkKKwlpZiAoIUlzVW5kZXJQ b3N0bWFzdGVyIHx8IG1heF93b3JrZXJzID09IDApCiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTU5 Nyw4ICs2MDYsOCBAQCBwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICpp bmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCXBhcmFsbGVsX3dvcmtlcnMg PSAobnJlcXVlc3RlZCA+IDApID8KIAkJTWluKG5yZXF1ZXN0ZWQsIG5pbmRleGVzX3BhcmFsbGVs KSA6IG5pbmRleGVzX3BhcmFsbGVsOwogCi0JLyogQ2FwIGJ5IG1heF9wYXJhbGxlbF9tYWludGVu YW5jZV93b3JrZXJzICovCi0JcGFyYWxsZWxfd29ya2VycyA9IE1pbihwYXJhbGxlbF93b3JrZXJz LCBtYXhfcGFyYWxsZWxfbWFpbnRlbmFuY2Vfd29ya2Vycyk7CisJLyogQ2FwIGJ5IEdVQyB2YXJp YWJsZSAqLworCXBhcmFsbGVsX3dvcmtlcnMgPSBNaW4ocGFyYWxsZWxfd29ya2VycywgbWF4X3dv cmtlcnMpOwogCiAJcmV0dXJuIHBhcmFsbGVsX3dvcmtlcnM7CiB9CkBAIC02NDYsNiArNjU1LDEz IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3Rh dGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAJICovCiAJbndvcmtlcnMgPSBNaW4obndvcmtl cnMsIHB2cy0+cGN4dC0+bndvcmtlcnMpOwogCisJLyoKKwkgKiBSZXNlcnZlIHdvcmtlcnMgaW4g YXV0b3ZhY3V1bSBnbG9iYWwgc3RhdGUuIE5vdGUsIHRoYXQgd2UgbWF5IGJlIGdpdmVuCisJICog ZmV3ZXIgd29ya2VycyB0aGFuIHdlIHJlcXVlc3RlZC4KKwkgKi8KKwlpZiAoQW1BdXRvVmFjdXVt V29ya2VyUHJvY2VzcygpICYmIG53b3JrZXJzID4gMCkKKwkJQXV0b1ZhY3V1bVJlc2VydmVQYXJh bGxlbFdvcmtlcnMoJm53b3JrZXJzKTsKKwogCS8qCiAJICogU2V0IGluZGV4IHZhY3V1bSBzdGF0 dXMgYW5kIG1hcmsgd2hldGhlciBwYXJhbGxlbCB2YWN1dW0gd29ya2VyIGNhbgogCSAqIHByb2Nl c3MgaXQuCkBAIC02OTAsNiArNzA2LDE2IEBAIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9p bmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRleF9zY2FuCiAKIAkJ TGF1bmNoUGFyYWxsZWxXb3JrZXJzKHB2cy0+cGN4dCk7CiAKKwkJaWYgKEFtQXV0b1ZhY3V1bVdv cmtlclByb2Nlc3MoKSAmJgorCQkJcHZzLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZCA8IG53b3Jr ZXJzKQorCQl7CisJCQkvKgorCQkJICogVGVsbCBhdXRvdmFjdXVtIHRoYXQgd2UgY291bGQgbm90 IGxhdW5jaCBhbGwgdGhlIHByZXZpb3VzbHkKKwkJCSAqIHJlc2VydmVkIHdvcmtlcnMuCisJCQkg Ki8KKwkJCUF1dG9WYWN1dW1SZWxlYXNlUGFyYWxsZWxXb3JrZXJzKG53b3JrZXJzIC0gcHZzLT5w Y3h0LT5ud29ya2Vyc19sYXVuY2hlZCk7CisJCX0KKwogCQlpZiAocHZzLT5wY3h0LT5ud29ya2Vy c19sYXVuY2hlZCA+IDApCiAJCXsKIAkJCS8qCkBAIC03MzgsNiArNzY0LDEwIEBAIHBhcmFsbGVs X3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50 IG51bV9pbmRleF9zY2FuCiAKIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBwdnMtPnBjeHQtPm53b3Jr ZXJzX2xhdW5jaGVkOyBpKyspCiAJCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcHZzLT5idWZm ZXJfdXNhZ2VbaV0sICZwdnMtPndhbF91c2FnZVtpXSk7CisKKwkJLyogQWxzbyByZWxlYXNlIGFs bCBwcmV2aW91c2x5IHJlc2VydmVkIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycyAqLworCQlp ZiAoQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpICYmIHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1 bmNoZWQgPiAwKQorCQkJQXV0b1ZhY3V1bVJlbGVhc2VQYXJhbGxlbFdvcmtlcnMocHZzLT5wY3h0 LT5ud29ya2Vyc19sYXVuY2hlZCk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFj dXVtLmMKaW5kZXggM2U1MDdkMjNjYzkuLmJjMTE5NzBiZmVlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVy L2F1dG92YWN1dW0uYwpAQCAtMTUxLDYgKzE1MSwxMiBAQCBpbnQJCQlMb2dfYXV0b2FuYWx5emVf bWluX2R1cmF0aW9uID0gNjAwMDAwOwogc3RhdGljIGRvdWJsZSBhdl9zdG9yYWdlX3BhcmFtX2Nv c3RfZGVsYXkgPSAtMTsKIHN0YXRpYyBpbnQJYXZfc3RvcmFnZV9wYXJhbV9jb3N0X2xpbWl0ID0g LTE7CiAKKy8qCisgKiBWYXJpYWJsZSB0byBrZWVwIG51bWJlciBvZiBjdXJyZW50bHkgcmVzZXJ2 ZWQgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzLgorICogSXQgaXMgb25seSByZWxldmFudCBm b3IgcGFyYWxsZWwgYXV0b3ZhY3V1bSBsZWFkZXIgcHJvY2Vzcy4KKyAqLworc3RhdGljIGludAlh dl9ud29ya2Vyc19yZXNlcnZlZCA9IDA7CisKIC8qIEZsYWdzIHNldCBieSBzaWduYWwgaGFuZGxl cnMgKi8KIHN0YXRpYyB2b2xhdGlsZSBzaWdfYXRvbWljX3QgZ290X1NJR1VTUjIgPSBmYWxzZTsK IApAQCAtMjg1LDYgKzI5MSw4IEBAIHR5cGVkZWYgc3RydWN0IEF1dG9WYWN1dW1Xb3JrSXRlbQog ICogYXZfd29ya0l0ZW1zCQl3b3JrIGl0ZW0gYXJyYXkKICAqIGF2X253b3JrZXJzRm9yQmFsYW5j ZSB0aGUgbnVtYmVyIG9mIGF1dG92YWN1dW0gd29ya2VycyB0byB1c2Ugd2hlbgogICogCQkJCQlj YWxjdWxhdGluZyB0aGUgcGVyIHdvcmtlciBjb3N0IGxpbWl0CisgKiBhdl9mcmVlUGFyYWxsZWxX b3JrZXJzIHRoZSBudW1iZXIgb2YgZnJlZSBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMKKyAq IGF2X21heFBhcmFsbGVsV29ya2VycyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGFyYWxsZWwgYXV0 b3ZhY3V1bSB3b3JrZXJzCiAgKgogICogVGhpcyBzdHJ1Y3QgaXMgcHJvdGVjdGVkIGJ5IEF1dG92 YWN1dW1Mb2NrLCBleGNlcHQgZm9yIGF2X3NpZ25hbCBhbmQgcGFydHMKICAqIG9mIHRoZSB3b3Jr ZXIgbGlzdCAoc2VlIGFib3ZlKS4KQEAgLTI5OSw2ICszMDcsOCBAQCB0eXBlZGVmIHN0cnVjdAog CVdvcmtlckluZm8JYXZfc3RhcnRpbmdXb3JrZXI7CiAJQXV0b1ZhY3V1bVdvcmtJdGVtIGF2X3dv cmtJdGVtc1tOVU1fV09SS0lURU1TXTsKIAlwZ19hdG9taWNfdWludDMyIGF2X253b3JrZXJzRm9y QmFsYW5jZTsKKwl1aW50MzIJCWF2X2ZyZWVQYXJhbGxlbFdvcmtlcnM7CisJdWludDMyCQlhdl9t YXhQYXJhbGxlbFdvcmtlcnM7CiB9IEF1dG9WYWN1dW1TaG1lbVN0cnVjdDsKIAogc3RhdGljIEF1 dG9WYWN1dW1TaG1lbVN0cnVjdCAqQXV0b1ZhY3V1bVNobWVtOwpAQCAtMzY0LDYgKzM3NCw4IEBA IHN0YXRpYyB2b2lkIGF1dG92YWNfcmVwb3J0X3dvcmtpdGVtKEF1dG9WYWN1dW1Xb3JrSXRlbSAq d29ya2l0ZW0sCiBzdGF0aWMgdm9pZCBhdmxfc2lndXNyMl9oYW5kbGVyKFNJR05BTF9BUkdTKTsK IHN0YXRpYyBib29sIGF2X3dvcmtlcl9hdmFpbGFibGUodm9pZCk7CiBzdGF0aWMgdm9pZCBjaGVj a19hdl93b3JrZXJfZ3Vjcyh2b2lkKTsKK3N0YXRpYyB2b2lkIGFkanVzdF9mcmVlX3BhcmFsbGVs X3dvcmtlcnMoaW50IHByZXZfbWF4X3BhcmFsbGVsX3dvcmtlcnMpOworc3RhdGljIHZvaWQgQXV0 b1ZhY3V1bVJlbGVhc2VBbGxQYXJhbGxlbFdvcmtlcnModm9pZCk7CiAKIAogCkBAIC03NjMsNiAr Nzc1LDggQEAgUHJvY2Vzc0F1dG9WYWNMYXVuY2hlckludGVycnVwdHModm9pZCkKIAlpZiAoQ29u ZmlnUmVsb2FkUGVuZGluZykKIAl7CiAJCWludAkJCWF1dG92YWN1dW1fbWF4X3dvcmtlcnNfcHJl diA9IGF1dG92YWN1dW1fbWF4X3dvcmtlcnM7CisJCWludAkJCWF1dG92YWN1dW1fbWF4X3BhcmFs bGVsX3dvcmtlcnNfcHJldiA9CisJCQlhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzOwog CiAJCUNvbmZpZ1JlbG9hZFBlbmRpbmcgPSBmYWxzZTsKIAkJUHJvY2Vzc0NvbmZpZ0ZpbGUoUEdD X1NJR0hVUCk7CkBAIC03NzksNiArNzkzLDE1IEBAIFByb2Nlc3NBdXRvVmFjTGF1bmNoZXJJbnRl cnJ1cHRzKHZvaWQpCiAJCWlmIChhdXRvdmFjdXVtX21heF93b3JrZXJzX3ByZXYgIT0gYXV0b3Zh Y3V1bV9tYXhfd29ya2VycykKIAkJCWNoZWNrX2F2X3dvcmtlcl9ndWNzKCk7CiAKKwkJLyoKKwkJ ICogSWYgYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyBjaGFuZ2VkLCB3ZSBtdXN0IHRh a2UgY2FyZSBvZgorCQkgKiB0aGUgY29ycmVjdCB2YWx1ZSBvZiBhdmFpbGFibGUgcGFyYWxsZWwg YXV0b3ZhY3V1bSB3b3JrZXJzIGluCisJCSAqIHNobWVtLgorCQkgKi8KKwkJaWYgKGF1dG92YWN1 dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnNfcHJldiAhPQorCQkJYXV0b3ZhY3V1bV9tYXhfcGFyYWxs ZWxfd29ya2VycykKKwkJCWFkanVzdF9mcmVlX3BhcmFsbGVsX3dvcmtlcnMoYXV0b3ZhY3V1bV9t YXhfcGFyYWxsZWxfd29ya2Vyc19wcmV2KTsKKwogCQkvKiByZWJ1aWxkIHRoZSBsaXN0IGluIGNh c2UgdGhlIG5hcHRpbWUgY2hhbmdlZCAqLwogCQlyZWJ1aWxkX2RhdGFiYXNlX2xpc3QoSW52YWxp ZE9pZCk7CiAJfQpAQCAtMTM4Myw2ICsxNDA2LDE5IEBAIGF2bF9zaWd1c3IyX2hhbmRsZXIoU0lH TkFMX0FSR1MpCiAgKgkJCQkJICBBVVRPVkFDVVVNIFdPUktFUiBDT0RFCiAgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CiAKKy8qCisgKiBNYWtlIHN1cmUgdGhhdCBhbGwgcmVzZXJ2ZWQgd29ya2VycyBhcmUgcmVsZWFz ZWQsIGV2ZW4gaWYgcGFyYWxsZWwKKyAqIGF1dG92YWN1dW0gbGVhZGVyIGlzIGZpbmlzaGluZyBk dWUgdG8gRkFUQUwgZXJyb3IuCisgKi8KK3N0YXRpYyB2b2lkCithdXRvdmFjdXVtX3dvcmtlcl9i ZWZvcmVfc2htZW1fZXhpdChpbnQgY29kZSwgRGF0dW0gYXJnKQoreworCWlmIChjb2RlICE9IDAp CisJCUF1dG9WYWN1dW1SZWxlYXNlQWxsUGFyYWxsZWxXb3JrZXJzKCk7CisKKwlBc3NlcnQoYXZf bndvcmtlcnNfcmVzZXJ2ZWQgPT0gMCk7Cit9CisKIC8qCiAgKiBNYWluIGVudHJ5IHBvaW50IGZv ciBhdXRvdmFjdXVtIHdvcmtlciBwcm9jZXNzZXMuCiAgKi8KQEAgLTE0MzgsNiArMTQ3NCw4IEBA IEF1dG9WYWNXb3JrZXJNYWluKGNvbnN0IHZvaWQgKnN0YXJ0dXBfZGF0YSwgc2l6ZV90IHN0YXJ0 dXBfZGF0YV9sZW4pCiAJLyogRWFybHkgaW5pdGlhbGl6YXRpb24gKi8KIAlCYXNlSW5pdCgpOwog CisJYmVmb3JlX3NobWVtX2V4aXQoYXV0b3ZhY3V1bV93b3JrZXJfYmVmb3JlX3NobWVtX2V4aXQs IDApOworCiAJLyoKIAkgKiBJZiBhbiBleGNlcHRpb24gaXMgZW5jb3VudGVyZWQsIHByb2Nlc3Np bmcgcmVzdW1lcyBoZXJlLgogCSAqCkBAIC0yNDgwLDYgKzI1MTgsMTIgQEAgZG9fYXV0b3ZhY3V1 bSh2b2lkKQogCQl9CiAJCVBHX0NBVENIKCk7CiAJCXsKKwkJCS8qCisJCQkgKiBQYXJhbGxlbCBh dXRvdmFjdXVtIGNhbiByZXNlcnZlIHBhcmFsbGVsIHdvcmtlcnMuIE1ha2Ugc3VyZQorCQkJICog dGhhdCBhbGwgcmVzZXJ2ZWQgd29ya2VycyBhcmUgcmVsZWFzZWQuCisJCQkgKi8KKwkJCUF1dG9W YWN1dW1SZWxlYXNlQWxsUGFyYWxsZWxXb3JrZXJzKCk7CisKIAkJCS8qCiAJCQkgKiBBYm9ydCB0 aGUgdHJhbnNhY3Rpb24sIHN0YXJ0IGEgbmV3IG9uZSwgYW5kIHByb2NlZWQgd2l0aCB0aGUKIAkJ CSAqIG5leHQgdGFibGUgaW4gb3VyIGxpc3QuCkBAIC0yODgwLDggKzI5MjQsMTIgQEAgdGFibGVf cmVjaGVja19hdXRvdmFjKE9pZCByZWxpZCwgSFRBQiAqdGFibGVfdG9hc3RfbWFwLAogCQkgKi8K IAkJdGFiLT5hdF9wYXJhbXMuaW5kZXhfY2xlYW51cCA9IFZBQ09QVFZBTFVFX1VOU1BFQ0lGSUVE OwogCQl0YWItPmF0X3BhcmFtcy50cnVuY2F0ZSA9IFZBQ09QVFZBTFVFX1VOU1BFQ0lGSUVEOwot CQkvKiBBcyBvZiBub3csIHdlIGRvbid0IHN1cHBvcnQgcGFyYWxsZWwgdmFjdXVtIGZvciBhdXRv dmFjdXVtICovCi0JCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0gLTE7CisKKwkJLyogRGVjaWRl IHdoZXRoZXIgd2UgbmVlZCB0byBwcm9jZXNzIGluZGV4ZXMgb2YgdGFibGUgaW4gcGFyYWxsZWwu ICovCisJCXRhYi0+YXRfcGFyYW1zLm53b3JrZXJzID0gYXZvcHRzCisJCQk/IGF2b3B0cy0+YXV0 b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzCisJCQk6IC0xOworCiAJCXRhYi0+YXRfcGFyYW1zLmZy ZWV6ZV9taW5fYWdlID0gZnJlZXplX21pbl9hZ2U7CiAJCXRhYi0+YXRfcGFyYW1zLmZyZWV6ZV90 YWJsZV9hZ2UgPSBmcmVlemVfdGFibGVfYWdlOwogCQl0YWItPmF0X3BhcmFtcy5tdWx0aXhhY3Rf ZnJlZXplX21pbl9hZ2UgPSBtdWx0aXhhY3RfZnJlZXplX21pbl9hZ2U7CkBAIC0zMzU4LDYgKzM0 MDYsODUgQEAgQXV0b1ZhY3V1bVJlcXVlc3RXb3JrKEF1dG9WYWN1dW1Xb3JrSXRlbVR5cGUgdHlw ZSwgT2lkIHJlbGF0aW9uSWQsCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIEluIG9yZGVy IHRvIG1lZXQgdGhlICdhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzJyBsaW1pdCwgbGVh ZGVyCisgKiBhdXRvdmFjdXVtIHByb2Nlc3MgbXVzdCBjYWxsIHRoaXMgZnVuY3Rpb24gZHVyaW5n IGNvbXB1dGluZyB0aGUgcGFyYWxsZWwKKyAqIGRlZ3JlZS4KKyAqCisgKiAnbndvcmtlcnMnIGlz IHRoZSBkZXNpcmVkIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJzIHRvIHJlc2VydmUuIEZ1bmN0 aW9uCisgKiBzZXRzICdud29ya2VycycgdG8gdGhlIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXJz IHRoYXQgYWN0dWFsbHkgY2FuIGJlCisgKiBsYXVuY2hlZCBhbmQgcmVzZXJ2ZXMgdGhlc2Ugd29y a2VycyAoaWYgYW55KSBpbiBnbG9iYWwgYXV0b3ZhY3V1bSBzdGF0ZS4KKyAqCisgKiBOT1RFOiBX ZSB3aWxsIHRyeSB0byBwcm92aWRlIGFzIG1hbnkgd29ya2VycyBhcyByZXF1ZXN0ZWQsIGV2ZW4g aWYgY2FsbGVyCisgKiB3aWxsIG9jY3VweSBhbGwgYXZhaWxhYmxlIHdvcmtlcnMuCisgKi8KK3Zv aWQKK0F1dG9WYWN1dW1SZXNlcnZlUGFyYWxsZWxXb3JrZXJzKGludCAqbndvcmtlcnMpCit7CisJ LyogT25seSBsZWFkZXIgd29ya2VyIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uICovCisJQXNzZXJ0 KEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJiAhSXNQYXJhbGxlbFdvcmtlcigpKTsKKwor CS8qCisJICogV2UgY2FuIG9ubHkgcmVzZXJ2ZSB3b3JrZXJzIGF0IHRoZSBiZWdpbm5pbmcgb2Yg cGFyYWxsZWwgaW5kZXgKKwkgKiBwcm9jZXNzaW5nLCBzbyB3ZSBtdXN0IG5vdCBoYXZlIGFueSBy ZXNlcnZlZCB3b3JrZXJzIHJpZ2h0IG5vdy4KKwkgKi8KKwlBc3NlcnQoYXZfbndvcmtlcnNfcmVz ZXJ2ZWQgPT0gMCk7CisKKwlMV0xvY2tBY3F1aXJlKEF1dG92YWN1dW1Mb2NrLCBMV19FWENMVVNJ VkUpOworCisJLyogUHJvdmlkZSBhcyBtYW55IHdvcmtlcnMgYXMgd2UgY2FuLiAqLworCSpud29y a2Vycz0gTWluKEF1dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVsV29ya2VycywgKm53b3Jr ZXJzKTsKKwlBdXRvVmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxlbFdvcmtlcnMgLT0gKm53b3Jr ZXJzOworCisJLyogUmVtZW1iZXIgaG93IG1hbnkgd29ya2VycyB3ZSBoYXZlIHJlc2VydmVkLiAq LworCWF2X253b3JrZXJzX3Jlc2VydmVkID0gKm53b3JrZXJzOworCisJTFdMb2NrUmVsZWFzZShB dXRvdmFjdXVtTG9jayk7Cit9CisKKy8qCisgKiBMZWFkZXIgYXV0b3ZhY3V1bSBwcm9jZXNzIG11 c3QgY2FsbCB0aGlzIGZ1bmN0aW9uIGluIG9yZGVyIHRvIHVwZGF0ZSBnbG9iYWwKKyAqIGF1dG92 YWN1dW0gc3RhdGUsIHNvIG90aGVyIGxlYWRlcnMgd2lsbCBiZSBhYmxlIHRvIHVzZSB0aGVzZSBw YXJhbGxlbAorICogd29ya2Vycy4KKyAqCisgKiAnbndvcmtlcnMnIC0gaG93IG1hbnkgd29ya2Vy cyBjYWxsZXIgd2FudHMgdG8gcmVsZWFzZS4KKyAqLwordm9pZAorQXV0b1ZhY3V1bVJlbGVhc2VQ YXJhbGxlbFdvcmtlcnMoaW50IG53b3JrZXJzKQoreworCS8qIE9ubHkgbGVhZGVyIHdvcmtlciBj YW4gY2FsbCB0aGlzIGZ1bmN0aW9uLiAqLworCUFzc2VydChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9j ZXNzKCkgJiYgIUlzUGFyYWxsZWxXb3JrZXIoKSk7CisKKwlMV0xvY2tBY3F1aXJlKEF1dG92YWN1 dW1Mb2NrLCBMV19FWENMVVNJVkUpOworCisJLyoKKwkgKiBJZiB0aGUgbWF4aW11bSBudW1iZXIg b2YgcGFyYWxsZWwgd29ya2VycyB3YXMgcmVkdWNlZCBkdXJpbmcgZXhlY3V0aW9uLAorCSAqIHdl IG11c3QgY2FwIGF2YWlsYWJsZSB3b3JrZXJzIG51bWJlciBieSBpdHMgbmV3IHZhbHVlLgorCSAq LworCUF1dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVsV29ya2VycyA9CisJCU1pbihBdXRv VmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxlbFdvcmtlcnMgKyBud29ya2VycywKKwkJCUF1dG9W YWN1dW1TaG1lbS0+YXZfbWF4UGFyYWxsZWxXb3JrZXJzKTsKKworCS8qIERvbid0IGhhdmUgdG8g cmVtZW1iZXIgdGhlc2Ugd29ya2VycyBhbnltb3JlLiAqLworCWF2X253b3JrZXJzX3Jlc2VydmVk IC09IG53b3JrZXJzOworCisJTFdMb2NrUmVsZWFzZShBdXRvdmFjdXVtTG9jayk7Cit9CisKKy8q CisgKiBTYW1lIGFzIGFib3ZlLCBidXQgcmVsZWFzZSAqYWxsKiBwYXJhbGxlbCB3b3JrZXJzLCB0 aGF0IHdlcmUgcmVzZXJ2ZWQgYnkKKyAqIGN1cnJlbnQgbGVhZGVyIGF1dG92YWN1dW0gcHJvY2Vz cy4KKyAqLworc3RhdGljIHZvaWQKK0F1dG9WYWN1dW1SZWxlYXNlQWxsUGFyYWxsZWxXb3JrZXJz KHZvaWQpCit7CisJLyogT25seSBsZWFkZXIgd29ya2VyIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24u ICovCisJQXNzZXJ0KEFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSAmJiAhSXNQYXJhbGxlbFdv cmtlcigpKTsKKworCWlmIChhdl9ud29ya2Vyc19yZXNlcnZlZCA+IDApCisJCUF1dG9WYWN1dW1S ZWxlYXNlUGFyYWxsZWxXb3JrZXJzKGF2X253b3JrZXJzX3Jlc2VydmVkKTsKK30KKwogLyoKICAq IGF1dG92YWNfaW5pdAogICoJCVRoaXMgaXMgY2FsbGVkIGF0IHBvc3RtYXN0ZXIgaW5pdGlhbGl6 YXRpb24uCkBAIC0zNDE4LDYgKzM1NDUsMTAgQEAgQXV0b1ZhY3V1bVNobWVtSW5pdCh2b2lkKQog CQlBc3NlcnQoIWZvdW5kKTsKIAogCQlBdXRvVmFjdXVtU2htZW0tPmF2X2xhdW5jaGVycGlkID0g MDsKKwkJQXV0b1ZhY3V1bVNobWVtLT5hdl9tYXhQYXJhbGxlbFdvcmtlcnMgPQorCQkJTWluKGF1 dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMsIG1heF93b3JrZXJfcHJvY2Vzc2VzKTsKKwkJ QXV0b1ZhY3V1bVNobWVtLT5hdl9mcmVlUGFyYWxsZWxXb3JrZXJzID0KKwkJCUF1dG9WYWN1dW1T aG1lbS0+YXZfbWF4UGFyYWxsZWxXb3JrZXJzOwogCQlkY2xpc3RfaW5pdCgmQXV0b1ZhY3V1bVNo bWVtLT5hdl9mcmVlV29ya2Vycyk7CiAJCWRsaXN0X2luaXQoJkF1dG9WYWN1dW1TaG1lbS0+YXZf cnVubmluZ1dvcmtlcnMpOwogCQlBdXRvVmFjdXVtU2htZW0tPmF2X3N0YXJ0aW5nV29ya2VyID0g TlVMTDsKQEAgLTM0OTksMyArMzYzMCwzNCBAQCBjaGVja19hdl93b3JrZXJfZ3Vjcyh2b2lkKQog CQkJCSBlcnJkZXRhaWwoIlRoZSBzZXJ2ZXIgd2lsbCBvbmx5IHN0YXJ0IHVwIHRvIFwiYXV0b3Zh Y3V1bV93b3JrZXJfc2xvdHNcIiAoJWQpIGF1dG92YWN1dW0gd29ya2VycyBhdCBhIGdpdmVuIHRp bWUuIiwKIAkJCQkJCSAgIGF1dG92YWN1dW1fd29ya2VyX3Nsb3RzKSkpOwogfQorCisvKgorICog TWFrZSBzdXJlIHRoYXQgbnVtYmVyIG9mIGZyZWUgcGFyYWxsZWwgd29ya2VycyBjb3JyZXNwb25k cyB0byB0aGUKKyAqIGF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgcGFyYW1ldGVyIChh ZnRlciBpdCB3YXMgY2hhbmdlZCkuCisgKi8KK3N0YXRpYyB2b2lkCithZGp1c3RfZnJlZV9wYXJh bGxlbF93b3JrZXJzKGludCBwcmV2X21heF9wYXJhbGxlbF93b3JrZXJzKQoreworCUxXTG9ja0Fj cXVpcmUoQXV0b3ZhY3V1bUxvY2ssIExXX0VYQ0xVU0lWRSk7CisKKwkvKgorCSAqIENhcCB0aGUg bnVtYmVyIG9mIGZyZWUgd29ya2VycyBieSBuZXcgcGFyYW1ldGVyJ3MgdmFsdWUsIGlmIG5lZWRl ZC4KKwkgKi8KKwlBdXRvVmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxlbFdvcmtlcnMgPQorCQlN aW4oQXV0b1ZhY3V1bVNobWVtLT5hdl9mcmVlUGFyYWxsZWxXb3JrZXJzLAorCQkJYXV0b3ZhY3V1 bV9tYXhfcGFyYWxsZWxfd29ya2Vycyk7CisKKwlpZiAoYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxf d29ya2VycyA+IHByZXZfbWF4X3BhcmFsbGVsX3dvcmtlcnMpCisJeworCQkvKgorCQkgKiBJZiB1 c2VyIHdhbnRzIHRvIGluY3JlYXNlIG51bWJlciBvZiBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtl cnMsIHdlCisJCSAqIG11c3QgaW5jcmVhc2UgbnVtYmVyIG9mIGZyZWUgd29ya2Vycy4KKwkJICov CisJCUF1dG9WYWN1dW1TaG1lbS0+YXZfZnJlZVBhcmFsbGVsV29ya2VycyArPQorCQkJKGF1dG92 YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgLSBwcmV2X21heF9wYXJhbGxlbF93b3JrZXJzKTsK Kwl9CisKKwlBdXRvVmFjdXVtU2htZW0tPmF2X21heFBhcmFsbGVsV29ya2VycyA9IGF1dG92YWN1 dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnM7CisKKwlMV0xvY2tSZWxlYXNlKEF1dG92YWN1dW1Mb2Nr KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKaW5kZXggMzZhZDcwOGIzNjAuLjI0ZGRiMjc2 ZjBjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYwpAQCAtMTQzLDYgKzE0Myw3IEBAIGludAkJ CU5CdWZmZXJzID0gMTYzODQ7CiBpbnQJCQlNYXhDb25uZWN0aW9ucyA9IDEwMDsKIGludAkJCW1h eF93b3JrZXJfcHJvY2Vzc2VzID0gODsKIGludAkJCW1heF9wYXJhbGxlbF93b3JrZXJzID0gODsK K2ludAkJCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAwOwogaW50CQkJTWF4QmFj a2VuZHMgPSAwOwogCiAvKiBHVUMgcGFyYW1ldGVycyBmb3IgdmFjdXVtICovCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWMuYwppbmRleCBhZTlkNWYzZmI3MC4uYzhhOTlhNjc3NjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwpA QCAtMzMyNiw5ICszMzI2LDEzIEBAIHNldF9jb25maWdfd2l0aF9oYW5kbGUoY29uc3QgY2hhciAq bmFtZSwgY29uZmlnX2hhbmRsZSAqaGFuZGxlLAogCSAqCiAJICogQWxzbyBhbGxvdyBub3JtYWwg c2V0dGluZyBpZiB0aGUgR1VDIGlzIG1hcmtlZCBHVUNfQUxMT1dfSU5fUEFSQUxMRUwuCiAJICoK LQkgKiBPdGhlciBjaGFuZ2VzIG1pZ2h0IG5lZWQgdG8gYWZmZWN0IG90aGVyIHdvcmtlcnMsIHNv IGZvcmJpZCB0aGVtLgorCSAqIE90aGVyIGNoYW5nZXMgbWlnaHQgbmVlZCB0byBhZmZlY3Qgb3Ro ZXIgd29ya2Vycywgc28gZm9yYmlkIHRoZW0uIE5vdGUsCisJICogdGhhdCBwYXJhbGxlbCBhdXRv dmFjdXVtIGxlYWRlciBpcyBhbiBleGNlcHRpb24sIGJlY2F1c2Ugb25seQorCSAqIGNvc3QtYmFz ZWQgZGVsYXlzIG5lZWQgdG8gYmUgYWZmZWN0ZWQgYWxzbyB0byBwYXJhbGxlbCB2YWN1dW0gd29y a2VycywKKwkgKiBhbmQgd2Ugd2lsbCBoYW5kbGUgaXQgZWxzZXdoZXJlIGlmIGFwcHJvcHJpYXRl LgogCSAqLwotCWlmIChJc0luUGFyYWxsZWxNb2RlKCkgJiYgY2hhbmdlVmFsICYmIGFjdGlvbiAh PSBHVUNfQUNUSU9OX1NBVkUgJiYKKwlpZiAoSXNJblBhcmFsbGVsTW9kZSgpICYmICFBbUF1dG9W YWN1dW1Xb3JrZXJQcm9jZXNzKCkgJiYgY2hhbmdlVmFsICYmCisJCWFjdGlvbiAhPSBHVUNfQUNU SU9OX1NBVkUgJiYKIAkJKHJlY29yZC0+ZmxhZ3MgJiBHVUNfQUxMT1dfSU5fUEFSQUxMRUwpID09 IDApCiAJewogCQllcmVwb3J0KGVsZXZlbCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0IGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFy YW1ldGVycy5kYXQKaW5kZXggN2M2MGIxMjU1NjQuLmU5MzNmNTA0OGY3IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdAorKysgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdApAQCAtMTU0LDYgKzE1NCwxNSBAQAogICBt YXggPT4gJzIwMDAwMDAwMDAnLAogfSwKIAoreyBuYW1lID0+ICdhdXRvdmFjdXVtX21heF9wYXJh bGxlbF93b3JrZXJzJywgdHlwZSA9PiAnaW50JywgY29udGV4dCA9PiAnUEdDX1NJR0hVUCcsIGdy b3VwID0+ICdWQUNVVU1fQVVUT1ZBQ1VVTScsCisgIHNob3J0X2Rlc2MgPT4gJ01heGltdW0gbnVt YmVyIG9mIHBhcmFsbGVsIGF1dG92YWN1dW0gd29ya2VycywgdGhhdCBjYW4gYmUgdGFrZW4gZnJv bSBiZ3dvcmtlcnMgcG9vbC4nLAorICBsb25nX2Rlc2MgPT4gJ1RoaXMgcGFyYW1ldGVyIGlzIGNh cHBlZCBieSAibWF4X3dvcmtlcl9wcm9jZXNzZXMiIChub3QgYnkgImF1dG92YWN1dW1fbWF4X3dv cmtlcnMiISkuJywKKyAgdmFyaWFibGUgPT4gJ2F1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtl cnMnLAorICBib290X3ZhbCA9PiAnMicsCisgIG1pbiA9PiAnMCcsCisgIG1heCA9PiAnTUFYX0JB Q0tFTkRTJywKK30sCisKIHsgbmFtZSA9PiAnYXV0b3ZhY3V1bV9tYXhfd29ya2VycycsIHR5cGUg PT4gJ2ludCcsIGNvbnRleHQgPT4gJ1BHQ19TSUdIVVAnLCBncm91cCA9PiAnVkFDVVVNX0FVVE9W QUNVVU0nLAogICBzaG9ydF9kZXNjID0+ICdTZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaW11 bHRhbmVvdXNseSBydW5uaW5nIGF1dG92YWN1dW0gd29ya2VyIHByb2Nlc3Nlcy4nLAogICB2YXJp YWJsZSA9PiAnYXV0b3ZhY3V1bV9tYXhfd29ya2VycycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZGM5ZTIyNTVmOGEuLjg2YzY3Yjc5MGIw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBA IC02OTEsNiArNjkxLDggQEAKICNhdXRvdmFjdXVtX3dvcmtlcl9zbG90cyA9IDE2ICAgICAgICAg ICAjIGF1dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAjYXV0 b3ZhY3V1bV9tYXhfd29ya2VycyA9IDMgICAgICAgICAgICAgIyBtYXggbnVtYmVyIG9mIGF1dG92 YWN1dW0gc3VicHJvY2Vzc2VzCisjYXV0b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VycyA9IDIg ICAgIyBkaXNhYmxlZCBieSBkZWZhdWx0IGFuZCBsaW1pdGVkIGJ5CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBtYXhfd29ya2VyX3Byb2Nlc3NlcwogI2F1dG92YWN1 dW1fbmFwdGltZSA9IDFtaW4gICAgICAgICAgICAgICMgdGltZSBiZXR3ZWVuIGF1dG92YWN1dW0g cnVucwogI2F1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9sZCA9IDUwICAgICAgICMgbWluIG51bWJl ciBvZiByb3cgdXBkYXRlcyBiZWZvcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAjIHZhY3V1bQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5p bi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDA2ZWRlYTk4ZjA2Li4y YjhhNGFhYjM5MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisr KyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTQyMyw2ICsxNDIzLDcgQEAg c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHRhYmxlX3N0b3JhZ2VfcGFyYW1ldGVyc1tdID0gewog CSJhdXRvdmFjdXVtX211bHRpeGFjdF9mcmVlemVfbWF4X2FnZSIsCiAJImF1dG92YWN1dW1fbXVs dGl4YWN0X2ZyZWV6ZV9taW5fYWdlIiwKIAkiYXV0b3ZhY3V1bV9tdWx0aXhhY3RfZnJlZXplX3Rh YmxlX2FnZSIsCisJImF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycyIsCiAJImF1dG92YWN1dW1f dmFjdXVtX2Nvc3RfZGVsYXkiLAogCSJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0IiwKIAki YXV0b3ZhY3V1bV92YWN1dW1faW5zZXJ0X3NjYWxlX2ZhY3RvciIsCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9taXNjYWRtaW4uaCBiL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oCmluZGV4IGRiNTU5 YjM5YzRkLi5hZDZlMTlmNDI2YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgK KysrIGIvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmgKQEAgLTE3OCw2ICsxNzgsNyBAQCBleHRlcm4g UEdETExJTVBPUlQgaW50IE1heEJhY2tlbmRzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBNYXhD b25uZWN0aW9uczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3dvcmtlcl9wcm9jZXNzZXM7 CiBleHRlcm4gUEdETExJTVBPUlQgaW50IG1heF9wYXJhbGxlbF93b3JrZXJzOworZXh0ZXJuIFBH RExMSU1QT1JUIGludCBhdXRvdmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzOwogCiBleHRlcm4g UEdETExJTVBPUlQgaW50IGNvbW1pdF90aW1lc3RhbXBfYnVmZmVyczsKIGV4dGVybiBQR0RMTElN UE9SVCBpbnQgbXVsdGl4YWN0X21lbWJlcl9idWZmZXJzOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmggYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2F1dG92 YWN1dW0uaAppbmRleCBlNDMwNjdkMDI2MC4uNGFjYWRiYzA2MTAgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3Bvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oCisrKyBiL3NyYy9pbmNsdWRlL3Bvc3RtYXN0 ZXIvYXV0b3ZhY3V1bS5oCkBAIC02NSw2ICs2NSwxMCBAQCBwZ19ub3JldHVybiBleHRlcm4gdm9p ZCBBdXRvVmFjV29ya2VyTWFpbihjb25zdCB2b2lkICpzdGFydHVwX2RhdGEsIHNpemVfdCBzdGFy dAogZXh0ZXJuIGJvb2wgQXV0b1ZhY3V1bVJlcXVlc3RXb3JrKEF1dG9WYWN1dW1Xb3JrSXRlbVR5 cGUgdHlwZSwKIAkJCQkJCQkJICBPaWQgcmVsYXRpb25JZCwgQmxvY2tOdW1iZXIgYmxrbm8pOwog CisvKiBwYXJhbGxlbCBhdXRvdmFjdXVtIHN0dWZmICovCitleHRlcm4gdm9pZAlBdXRvVmFjdXVt UmVzZXJ2ZVBhcmFsbGVsV29ya2VycyhpbnQgKm53b3JrZXJzKTsKK2V4dGVybiB2b2lkIEF1dG9W YWN1dW1SZWxlYXNlUGFyYWxsZWxXb3JrZXJzKGludCBud29ya2Vycyk7CisKIC8qIHNoYXJlZCBt ZW1vcnkgc3R1ZmYgKi8KIGV4dGVybiBTaXplIEF1dG9WYWN1dW1TaG1lbVNpemUodm9pZCk7CiBl eHRlcm4gdm9pZCBBdXRvVmFjdXVtU2htZW1Jbml0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAppbmRleCBkMDNhYjI0 Nzc4OC4uYzFkODgyNjU5ZjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCisr KyBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCkBAIC0zMTEsNiArMzExLDEzIEBAIHR5cGVkZWYg c3RydWN0IEZvcmVpZ25LZXlDYWNoZUluZm8KIHR5cGVkZWYgc3RydWN0IEF1dG9WYWNPcHRzCiB7 CiAJYm9vbAkJZW5hYmxlZDsKKworCS8qCisJICogTWF4IG51bWJlciBvZiBwYXJhbGxlbCBhdXRv dmFjdXVtIHdvcmtlcnMuIElmIHZhbHVlIGlzIDAgdGhlbiBwYXJhbGxlbAorCSAqIGRlZ3JlZSB3 aWxsIGNvbXB1dGVkIGJhc2VkIG9uIG51bWJlciBvZiBpbmRleGVzLgorCSAqLworCWludAkJCWF1 dG92YWN1dW1fcGFyYWxsZWxfd29ya2VyczsKKwogCWludAkJCXZhY3V1bV90aHJlc2hvbGQ7CiAJ aW50CQkJdmFjdXVtX21heF90aHJlc2hvbGQ7CiAJaW50CQkJdmFjdXVtX2luc190aHJlc2hvbGQ7 Ci0tIAoyLjQzLjAKCg== --000000000000d8318e0647c93bb7 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0004-Documentation-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v18-0004-Documentation-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk3u5mt01 RnJvbSBiYmNjNGI5Mjk0MTMyNTI0ODI1NGIwNzRhMmQxYzk0ZjI0NGI2YTZjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBTdW4sIDIzIE5vdiAyMDI1IDAyOjMyOjQ0ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MTggNC81XSBEb2N1bWVudGF0aW9uIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIGRv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgfCAxNyArKysrKysrKysrKysrKysrKwog ZG9jL3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwgICAgICB8IDEyICsrKysrKysrKysrKwogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCB8IDIwICsrKysrKysrKysrKysrKysrKysr CiAzIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNjAxYWEz YWZiOGUuLjM2ZmNjNzJmMzI1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0yODQ3LDYgKzI4NDcsNyBAQCBpbmNs dWRlX2RpciAnY29uZi5kJwogICAgICAgICA8cGFyYT4KICAgICAgICAgIFdoZW4gY2hhbmdpbmcg dGhpcyB2YWx1ZSwgY29uc2lkZXIgYWxzbyBhZGp1c3RpbmcKICAgICAgICAgIDx4cmVmIGxpbmtl bmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2VycyIvPiwKKyAgICAgICAgIDx4cmVmIGxpbmtlbmQ9 Imd1Yy1hdXRvdmFjdXVtLW1heC1wYXJhbGxlbC13b3JrZXJzIi8+LAogICAgICAgICAgPHhyZWYg bGlua2VuZD0iZ3VjLW1heC1wYXJhbGxlbC1tYWludGVuYW5jZS13b3JrZXJzIi8+LCBhbmQKICAg ICAgICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29ya2Vycy1wZXItZ2F0aGVy Ii8+LgogICAgICAgICA8L3BhcmE+CkBAIC05MjgyLDYgKzkyODMsMjIgQEAgQ09QWSBwb3N0Z3Jl c19sb2cgRlJPTSAnL2Z1bGwvcGF0aC90by9sb2dmaWxlLmNzdicgV0lUSCBjc3Y7CiAgICAgICAg PC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICA8dmFybGlzdGVudHJ5 IGlkPSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxsZWwtd29ya2VycyIgeHJlZmxhYmVsPSJhdXRv dmFjdXVtX21heF9wYXJhbGxlbF93b3JrZXJzIj4KKyAgICAgICAgPHRlcm0+PHZhcm5hbWU+YXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VyczwvdmFybmFtZT4gKDx0eXBlPmludGVnZXI8L3R5 cGU+KQorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+YXV0 b3ZhY3V1bV9tYXhfcGFyYWxsZWxfd29ya2VyczwvdmFybmFtZT48L3ByaW1hcnk+CisgICAgICAg ICA8c2Vjb25kYXJ5PmNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9zZWNvbmRhcnk+CisgICAgICAg IDwvaW5kZXh0ZXJtPgorICAgICAgICA8L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgIDxwYXJhPgorICAgICAgICAgIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcmFsbGVs IGF1dG92YWN1dW0gd29ya2VycyB0aGF0CisgICAgICAgICAgY2FuIGJlIHVzZWQgZm9yIHBhcmFs bGVsIGluZGV4IHZhY3V1bWluZyBhdCBvbmUgdGltZS4gSXMgY2FwcGVkIGJ5CisgICAgICAgICAg PHhyZWYgbGlua2VuZD0iZ3VjLW1heC13b3JrZXItcHJvY2Vzc2VzIi8+LiBUaGUgZGVmYXVsdCBp cyAyLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L3NlY3QyPgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvbWFpbnRlbmFuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9tYWludGVu YW5jZS5zZ21sCmluZGV4IDdjOTU4YjA2MjczLi5jOWY5MTYzYzU1MSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL21haW50ZW5hbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21haW50ZW5hbmNl LnNnbWwKQEAgLTkyNiw2ICs5MjYsMTggQEAgSElOVDogIEV4ZWN1dGUgYSBkYXRhYmFzZS13aWRl IFZBQ1VVTSBpbiB0aGF0IGRhdGFiYXNlLgogICAgIGF1dG92YWN1dW0gd29ya2VycycgYWN0aXZp dHkuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAgIElmIGFuIGF1dG92YWN1dW0gd29ya2Vy IHByb2Nlc3MgY29tZXMgYWNyb3NzIGEgdGFibGUgd2l0aCB0aGUgZW5hYmxlZAorICAgIDx4cmVm IGxpbmtlbmQ9InJlbG9wdGlvbi1hdXRvdmFjdXVtLXBhcmFsbGVsLXdvcmtlcnMiLz4gc3RvcmFn ZSBwYXJhbWV0ZXIsCisgICAgaXQgd2lsbCBsYXVuY2ggcGFyYWxsZWwgd29ya2VycyBpbiBvcmRl ciB0byB2YWN1dW0gaW5kZXhlcyBvZiB0aGlzIHRhYmxlCisgICAgaW4gYSBwYXJhbGxlbCBtb2Rl LiBQYXJhbGxlbCB3b3JrZXJzIGFyZSB0YWtlbiBmcm9tIHRoZSBwb29sIG9mIHByb2Nlc3Nlcwor ICAgIGVzdGFibGlzaGVkIGJ5IDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtd29ya2VyLXByb2Nlc3Nl cyIvPiwgbGltaXRlZCBieQorICAgIDx4cmVmIGxpbmtlbmQ9Imd1Yy1tYXgtcGFyYWxsZWwtd29y a2VycyIvPi4KKyAgICBUaGUgdG90YWwgbnVtYmVyIG9mIHBhcmFsbGVsIGF1dG92YWN1dW0gd29y a2VycyB0aGF0IGNhbiBiZSBhY3RpdmUgYXQgb25lCisgICAgdGltZSBpcyBsaW1pdGVkIGJ5IHRo ZSA8eHJlZiBsaW5rZW5kPSJndWMtYXV0b3ZhY3V1bS1tYXgtcGFyYWxsZWwtd29ya2VycyIvPgor ICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLgorICAgPC9wYXJhPgorCiAgICA8cGFyYT4KICAg ICBJZiBzZXZlcmFsIGxhcmdlIHRhYmxlcyBhbGwgYmVjb21lIGVsaWdpYmxlIGZvciB2YWN1dW1p bmcgaW4gYSBzaG9ydAogICAgIGFtb3VudCBvZiB0aW1lLCBhbGwgYXV0b3ZhY3V1bSB3b3JrZXJz IG1pZ2h0IGJlY29tZSBvY2N1cGllZCB3aXRoCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApp bmRleCA3N2M1YTc2M2Q0NS4uMzU5MmM5YWNmZjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUu c2dtbApAQCAtMTcxNyw2ICsxNzE3LDI2IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAg PC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgIDx2YXJsaXN0ZW50cnkgaWQ9InJl bG9wdGlvbi1hdXRvdmFjdXVtLXBhcmFsbGVsLXdvcmtlcnMiIHhyZWZsYWJlbD0iYXV0b3ZhY3V1 bV9wYXJhbGxlbF93b3JrZXJzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5hdXRvdmFjdXVtX3BhcmFs bGVsX3dvcmtlcnM8L2xpdGVyYWw+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICA8aW5kZXh0 ZXJtPgorICAgICA8cHJpbWFyeT48dmFybmFtZT5hdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnM8 L3Zhcm5hbWU+IHN0b3JhZ2UgcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgIDwvaW5kZXh0ZXJtPgor ICAgIDwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgU2V0cyB0aGUg bWF4aW11bSBudW1iZXIgb2YgcGFyYWxsZWwgYXV0b3ZhY3V1bSB3b3JrZXJzIHRoYXQgY2FuIHBy b2Nlc3MKKyAgICAgIGluZGV4ZXMgb2YgdGhpcyB0YWJsZS4KKyAgICAgIFRoZSBkZWZhdWx0IHZh bHVlIGlzIC0xLCB3aGljaCBtZWFucyBubyBwYXJhbGxlbCBpbmRleCB2YWN1dW1pbmcgZm9yCisg ICAgICB0aGlzIHRhYmxlLiBJZiB2YWx1ZSBpcyAwIHRoZW4gcGFyYWxsZWwgZGVncmVlIHdpbGwg Y29tcHV0ZWQgYmFzZWQgb24KKyAgICAgIG51bWJlciBvZiBpbmRleGVzLgorICAgICAgTm90ZSB0 aGF0IHRoZSBjb21wdXRlZCBudW1iZXIgb2Ygd29ya2VycyBtYXkgbm90IGFjdHVhbGx5IGJlIGF2 YWlsYWJsZSBhdAorICAgICAgcnVuIHRpbWUuIElmIHRoaXMgb2NjdXJzLCB0aGUgYXV0b3ZhY3V1 bSB3aWxsIHJ1biB3aXRoIGZld2VyIHdvcmtlcnMKKyAgICAgIHRoYW4gZXhwZWN0ZWQuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJs aXN0ZW50cnkgaWQ9InJlbG9wdGlvbi1hdXRvdmFjdXVtLXZhY3V1bS10aHJlc2hvbGQiIHhyZWZs YWJlbD0iYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkIj4KICAgICA8dGVybT48bGl0ZXJhbD5h dXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQ8L2xpdGVyYWw+LCA8bGl0ZXJhbD50b2FzdC5hdXRv dmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQ8L2xpdGVyYWw+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikK ICAgICA8aW5kZXh0ZXJtPgotLSAKMi40My4wCgo= --000000000000d8318e0647c93bb7 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0002-Logging-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v18-0002-Logging-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk3u5mtm3 RnJvbSAwYWFmYTI3MWVjOTBkYmU0OTRlZWE3OWZkNDg0YTQ4NTYwMjNiM2E4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBTdW4sIDIzIE5vdiAyMDI1IDAxOjA3OjQ3ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MTggMi81XSBMb2dnaW5nIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtCgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyAgfCAyNyArKysrKysrKysrKysrKysrKysrKysr KysrLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgfCAyMCArKysrKysr KysrKysrKy0tLS0tLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmggICAgICAgICB8IDE2 ICsrKysrKysrKysrKysrLS0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAg fCAgMSArCiA0IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCAyMDg2YTU3NzE5OS4uMzVk MmIwN2FhOGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenku YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTM0OSw2ICsz NDksMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgTFZSZWxTdGF0ZQogCWludAkJCW51bV9pbmRleF9zY2Fu czsKIAlpbnQJCQludW1fZGVhZF9pdGVtc19yZXNldHM7CiAJU2l6ZQkJdG90YWxfZGVhZF9pdGVt c19ieXRlczsKKworCS8qCisJICogTnVtYmVyIG9mIHBsYW5uZWQgYW5kIGFjdHVhbGx5IGxhdW5j aGVkIHBhcmFsbGVsIHdvcmtlcnMgZm9yIGFsbCBpbmRleAorCSAqIHNjYW5zLCBvciBOVUxMCisJ ICovCisJUFZXb3JrZXJzVXNhZ2UgKndvcmtlcnNfdXNhZ2U7CiAJLyogQ291bnRlcnMgdGhhdCBm b2xsb3cgYXJlIG9ubHkgZm9yIHNjYW5uZWRfcGFnZXMgKi8KIAlpbnQ2NAkJdHVwbGVzX2RlbGV0 ZWQ7IC8qICMgZGVsZXRlZCBmcm9tIHRhYmxlICovCiAJaW50NjQJCXR1cGxlc19mcm96ZW47CS8q ICMgbmV3bHkgZnJvemVuICovCkBAIC03MTEsNiArNzE3LDE2IEBAIGhlYXBfdmFjdXVtX3JlbChS ZWxhdGlvbiByZWwsIGNvbnN0IFZhY3V1bVBhcmFtcyBwYXJhbXMsCiAJCWluZG5hbWVzID0gcGFs bG9jX2FycmF5KGNoYXIgKiwgdmFjcmVsLT5uaW5kZXhlcyk7CiAJCWZvciAoaW50IGkgPSAwOyBp IDwgdmFjcmVsLT5uaW5kZXhlczsgaSsrKQogCQkJaW5kbmFtZXNbaV0gPSBwc3RyZHVwKFJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHZhY3JlbC0+aW5kcmVsc1tpXSkpOworCisJCS8qCisJCSAqIEFs bG9jYXRlIHNwYWNlIGZvciB3b3JrZXJzIHVzYWdlIHN0YXRpc3RpY3MuIFRodXMsIHdlIGV4cGxp Y2l0bHkKKwkJICogbWFrZSBjbGVhciB0aGF0IHN1Y2ggc3RhdGlzdGljcyBtdXN0IGJlIGFjY3Vt dWxhdGVkLiBGb3Igbm93LCB0aGlzCisJCSAqIGlzIHVzZWQgb25seSBieSBhdXRvdmFjdXVtIGxl YWRlciB3b3JrZXIsIGJlY2F1c2UgaXQgbXVzdCBsb2cgaXQgaW4KKwkJICogdGhlIGVuZCBvZiB0 YWJsZSBwcm9jZXNzaW5nLgorCQkgKi8KKwkJdmFjcmVsLT53b3JrZXJzX3VzYWdlID0gQW1BdXRv VmFjdXVtV29ya2VyUHJvY2VzcygpID8KKwkJCShQVldvcmtlcnNVc2FnZSAqKSBwYWxsb2MwKHNp emVvZihQVldvcmtlcnNVc2FnZSkpIDoKKwkJCU5VTEw7CiAJfQogCiAJLyoKQEAgLTExMjUsNiAr MTE0MSwxMSBAQCBoZWFwX3ZhY3V1bV9yZWwoUmVsYXRpb24gcmVsLCBjb25zdCBWYWN1dW1QYXJh bXMgcGFyYW1zLAogCQkJCQkJCSBvcmlnX3JlbF9wYWdlcyA9PSAwID8gMTAwLjAgOgogCQkJCQkJ CSAxMDAuMCAqIHZhY3JlbC0+bHBkZWFkX2l0ZW1fcGFnZXMgLyBvcmlnX3JlbF9wYWdlcywKIAkJ CQkJCQkgdmFjcmVsLT5scGRlYWRfaXRlbXMpOworCQkJaWYgKHZhY3JlbC0+d29ya2Vyc191c2Fn ZSkKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWYsCisJCQkJCQkJCSBfKCJwYXJhbGxlbCBpbmRl eCB2YWN1dW0vY2xlYW51cCA6IHdvcmtlcnMgcGxhbm5lZCA9ICVkLCB3b3JrZXJzIGxhdW5jaGVk ID0gJWRcbiIpLAorCQkJCQkJCQkgdmFjcmVsLT53b3JrZXJzX3VzYWdlLT5ucGxhbm5lZCwKKwkJ CQkJCQkJIHZhY3JlbC0+d29ya2Vyc191c2FnZS0+bmxhdW5jaGVkKTsKIAkJCWZvciAoaW50IGkg PSAwOyBpIDwgdmFjcmVsLT5uaW5kZXhlczsgaSsrKQogCQkJewogCQkJCUluZGV4QnVsa0RlbGV0 ZVJlc3VsdCAqaXN0YXQgPSB2YWNyZWwtPmluZHN0YXRzW2ldOwpAQCAtMjcwMCw3ICsyNzIxLDgg QEAgbGF6eV92YWN1dW1fYWxsX2luZGV4ZXMoTFZSZWxTdGF0ZSAqdmFjcmVsKQogCXsKIAkJLyog T3V0c291cmNlIGV2ZXJ5dGhpbmcgdG8gcGFyYWxsZWwgdmFyaWFudCAqLwogCQlwYXJhbGxlbF92 YWN1dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyh2YWNyZWwtPnB2cywgb2xkX2xpdmVfdHVwbGVzLAot CQkJCQkJCQkJCQl2YWNyZWwtPm51bV9pbmRleF9zY2Fucyk7CisJCQkJCQkJCQkJCXZhY3JlbC0+ bnVtX2luZGV4X3NjYW5zLAorCQkJCQkJCQkJCQl2YWNyZWwtPndvcmtlcnNfdXNhZ2UpOwogCiAJ CS8qCiAJCSAqIERvIGEgcG9zdGNoZWNrIHRvIGNvbnNpZGVyIGFwcGx5aW5nIHdyYXBhcm91bmQg ZmFpbHNhZmUgbm93LiAgTm90ZQpAQCAtMzEzMyw3ICszMTU1LDggQEAgbGF6eV9jbGVhbnVwX2Fs bF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCkKIAkJLyogT3V0c291cmNlIGV2ZXJ5dGhpbmcg dG8gcGFyYWxsZWwgdmFyaWFudCAqLwogCQlwYXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5k ZXhlcyh2YWNyZWwtPnB2cywgcmVsdHVwbGVzLAogCQkJCQkJCQkJCQl2YWNyZWwtPm51bV9pbmRl eF9zY2FucywKLQkJCQkJCQkJCQkJZXN0aW1hdGVkX2NvdW50KTsKKwkJCQkJCQkJCQkJZXN0aW1h dGVkX2NvdW50LAorCQkJCQkJCQkJCQl2YWNyZWwtPndvcmtlcnNfdXNhZ2UpOwogCX0KIAogCS8q IFJlc2V0IHRoZSBwcm9ncmVzcyBjb3VudGVycyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBh cmFsbGVsLmMKaW5kZXggNmEzYTAwNTg1ZjkuLjQ5MGY5Mzk1OWQxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTIyNyw3ICsyMjcsNyBAQCBzdHJ1Y3QgUGFyYWxsZWxW YWN1dW1TdGF0ZQogc3RhdGljIGludAlwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJl bGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogCQkJCQkJCQkJ CQlib29sICp3aWxsX3BhcmFsbGVsX3ZhY3V1bSk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1 dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBudW1f aW5kZXhfc2NhbnMsCi0JCQkJCQkJCQkJCQlib29sIHZhY3V1bSk7CisJCQkJCQkJCQkJCQlib29s IHZhY3V1bSwgUFZXb3JrZXJzVXNhZ2UgKnd1c2FnZSk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92 YWN1dW1fcHJvY2Vzc19zYWZlX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzKTsKIHN0 YXRpYyB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3Vuc2FmZV9pbmRleGVzKFBhcmFsbGVs VmFjdXVtU3RhdGUgKnB2cyk7CiBzdGF0aWMgdm9pZCBwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19v bmVfaW5kZXgoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBSZWxhdGlvbiBpbmRyZWwsCkBAIC01 MDIsNyArNTAyLDcgQEAgcGFyYWxsZWxfdmFjdXVtX3Jlc2V0X2RlYWRfaXRlbXMoUGFyYWxsZWxW YWN1dW1TdGF0ZSAqcHZzKQogICovCiB2b2lkCiBwYXJhbGxlbF92YWN1dW1fYnVsa2RlbF9hbGxf aW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGxvbmcgbnVtX3RhYmxlX3R1cGxlcywK LQkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMpCisJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3Nj YW5zLCBQVldvcmtlcnNVc2FnZSAqd3VzYWdlKQogewogCUFzc2VydCghSXNQYXJhbGxlbFdvcmtl cigpKTsKIApAQCAtNTEzLDcgKzUxMyw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9idWxrZGVsX2FsbF9p bmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgbG9uZyBudW1fdGFibGVfdHVwCiAJcHZz LT5zaGFyZWQtPnJlbHR1cGxlcyA9IG51bV90YWJsZV90dXBsZXM7CiAJcHZzLT5zaGFyZWQtPmVz dGltYXRlZF9jb3VudCA9IHRydWU7CiAKLQlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5k ZXhlcyhwdnMsIG51bV9pbmRleF9zY2FucywgdHJ1ZSk7CisJcGFyYWxsZWxfdmFjdXVtX3Byb2Nl c3NfYWxsX2luZGV4ZXMocHZzLCBudW1faW5kZXhfc2NhbnMsIHRydWUsIHd1c2FnZSk7CiB9CiAK IC8qCkBAIC01MjEsNyArNTIxLDggQEAgcGFyYWxsZWxfdmFjdXVtX2J1bGtkZWxfYWxsX2luZGV4 ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXAKICAqLwogdm9p ZAogcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0 ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXBsZXMsCi0JCQkJCQkJCQlpbnQgbnVtX2luZGV4X3Nj YW5zLCBib29sIGVzdGltYXRlZF9jb3VudCkKKwkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMs IGJvb2wgZXN0aW1hdGVkX2NvdW50LAorCQkJCQkJCQkJUFZXb3JrZXJzVXNhZ2UgKnd1c2FnZSkK IHsKIAlBc3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CiAKQEAgLTUzMyw3ICs1MzQsNyBAQCBw YXJhbGxlbF92YWN1dW1fY2xlYW51cF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpw dnMsIGxvbmcgbnVtX3RhYmxlX3R1cAogCXB2cy0+c2hhcmVkLT5yZWx0dXBsZXMgPSBudW1fdGFi bGVfdHVwbGVzOwogCXB2cy0+c2hhcmVkLT5lc3RpbWF0ZWRfY291bnQgPSBlc3RpbWF0ZWRfY291 bnQ7CiAKLQlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMsIG51bV9pbmRl eF9zY2FucywgZmFsc2UpOworCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKHB2 cywgbnVtX2luZGV4X3NjYW5zLCBmYWxzZSwgd3VzYWdlKTsKIH0KIAogLyoKQEAgLTYxOCw3ICs2 MTksNyBAQCBwYXJhbGxlbF92YWN1dW1fY29tcHV0ZV93b3JrZXJzKFJlbGF0aW9uICppbmRyZWxz LCBpbnQgbmluZGV4ZXMsIGludCBucmVxdWVzdGVkLAogICovCiBzdGF0aWMgdm9pZAogcGFyYWxs ZWxfdmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBp bnQgbnVtX2luZGV4X3NjYW5zLAotCQkJCQkJCQkJYm9vbCB2YWN1dW0pCisJCQkJCQkJCQlib29s IHZhY3V1bSwgUFZXb3JrZXJzVXNhZ2UgKnd1c2FnZSkKIHsKIAlpbnQJCQlud29ya2VyczsKIAlQ VkluZFZhY1N0YXR1cyBuZXdfc3RhdHVzOwpAQCAtNzQyLDYgKzc0MywxMyBAQCBwYXJhbGxlbF92 YWN1dW1fcHJvY2Vzc19hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsIGludCBu dW1faW5kZXhfc2NhbgogCQkJCQkJCQkJICJsYXVuY2hlZCAlZCBwYXJhbGxlbCB2YWN1dW0gd29y a2VycyBmb3IgaW5kZXggY2xlYW51cCAocGxhbm5lZDogJWQpIiwKIAkJCQkJCQkJCSBwdnMtPnBj eHQtPm53b3JrZXJzX2xhdW5jaGVkKSwKIAkJCQkJCQlwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5j aGVkLCBud29ya2VycykpKTsKKworCQkvKiBSZW1lbWJlciB0aGVzZSB2YWx1ZXMsIGlmIHdlIGFz a2VkIHRvLiAqLworCQlpZiAod3VzYWdlICE9IE5VTEwpCisJCXsKKwkJCXd1c2FnZS0+bmxhdW5j aGVkICs9IHB2cy0+cGN4dC0+bndvcmtlcnNfbGF1bmNoZWQ7CisJCQl3dXNhZ2UtPm5wbGFubmVk ICs9IG53b3JrZXJzOworCQl9CiAJfQogCiAJLyogVmFjdXVtIHRoZSBpbmRleGVzIHRoYXQgY2Fu IGJlIHByb2Nlc3NlZCBieSBvbmx5IGxlYWRlciBwcm9jZXNzICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5o CmluZGV4IGU4ODVhNGI5Yzc3Li5lYzVkNzBhYWNkYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvdmFjdXVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFjdXVtLmgKQEAg LTMwMCw2ICszMDAsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgVmFjRGVhZEl0ZW1zSW5mbwogCWludDY0 CQludW1faXRlbXM7CQkvKiBjdXJyZW50ICMgb2YgZW50cmllcyAqLwogfSBWYWNEZWFkSXRlbXNJ bmZvOwogCisvKgorICogUFZXb3JrZXJzVXNhZ2Ugc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0IHRv dGFsIG51bWJlciBvZiBsYXVuY2hlZCBhbmQgcGxhbm5lZAorICogd29ya2VycyBkdXJpbmcgcGFy YWxsZWwgdmFjdXVtLgorICovCit0eXBlZGVmIHN0cnVjdCBQVldvcmtlcnNVc2FnZQoreworCWlu dAkJCW5sYXVuY2hlZDsKKwlpbnQJCQlucGxhbm5lZDsKK30gUFZXb3JrZXJzVXNhZ2U7CisKIC8q IEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgaW50IGRlZmF1bHRfc3RhdGlz dGljc190YXJnZXQ7CS8qIFBHRExMSU1QT1JUIGZvciBQb3N0R0lTICovCiBleHRlcm4gUEdETExJ TVBPUlQgaW50IHZhY3V1bV9mcmVlemVfbWluX2FnZTsKQEAgLTM5NCwxMSArNDA0LDEzIEBAIGV4 dGVybiBUaWRTdG9yZSAqcGFyYWxsZWxfdmFjdXVtX2dldF9kZWFkX2l0ZW1zKFBhcmFsbGVsVmFj dXVtU3RhdGUgKnB2cywKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9yZXNldF9kZWFkX2l0 ZW1zKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cyk7CiBleHRlcm4gdm9pZCBwYXJhbGxlbF92YWN1 dW1fYnVsa2RlbF9hbGxfaW5kZXhlcyhQYXJhbGxlbFZhY3V1bVN0YXRlICpwdnMsCiAJCQkJCQkJ CQkJCQlsb25nIG51bV90YWJsZV90dXBsZXMsCi0JCQkJCQkJCQkJCQlpbnQgbnVtX2luZGV4X3Nj YW5zKTsKKwkJCQkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMsCisJCQkJCQkJCQkJCQlQVldv cmtlcnNVc2FnZSAqd3VzYWdlKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9jbGVhbnVw X2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywKIAkJCQkJCQkJCQkJCWxvbmcg bnVtX3RhYmxlX3R1cGxlcywKIAkJCQkJCQkJCQkJCWludCBudW1faW5kZXhfc2NhbnMsCi0JCQkJ CQkJCQkJCQlib29sIGVzdGltYXRlZF9jb3VudCk7CisJCQkJCQkJCQkJCQlib29sIGVzdGltYXRl ZF9jb3VudCwKKwkJCQkJCQkJCQkJCVBWV29ya2Vyc1VzYWdlICp3dXNhZ2UpOwogZXh0ZXJuIHZv aWQgcGFyYWxsZWxfdmFjdXVtX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKTsK IAogLyogaW4gY29tbWFuZHMvYW5hbHl6ZS5jICovCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IGI5ZTY3MWZjZGE4Li42ZTM1YzZhYTQ5MyAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTIzOTcsNiArMjM5Nyw3IEBAIFB1bGxGaWx0ZXJPcHMKIFB1c2hGaWx0ZXIKIFB1c2hGaWx0 ZXJPcHMKIFB1c2hGdW5jdGlvbgorUFZXb3JrZXJzVXNhZ2UKIFB5Q0Z1bmN0aW9uCiBQeU1ldGhv ZERlZgogUHlNb2R1bGVEZWYKLS0gCjIuNDMuMAoK --000000000000d8318e0647c93bb7 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0003-Tests-for-parallel-autovacuum.patch" Content-Disposition: attachment; filename="v18-0003-Tests-for-parallel-autovacuum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk3u5mtc2 RnJvbSAyOWZiNjUwYWM1NGUyZjNiYmM4ZjkyMDI5MjY2MjkwNjM0NWUyOWFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBTdW4sIDIzIE5vdiAyMDI1IDAxOjA4OjE0ICswNzAwClN1YmplY3Q6IFtQQVRD SCB2MTggMy81XSBUZXN0cyBmb3IgcGFyYWxsZWwgYXV0b3ZhY3V1bQoKLS0tCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMgICAgICAgICAgIHwgIDE0ICsKIHNyYy90ZXN0L21vZHVs ZXMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9tb2R1bGVz L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZSAgIHwgICAyICsKIHNyYy90ZXN0L21vZHVsZXMvdGVz dF9hdXRvdmFjdXVtL01ha2VmaWxlICAgICB8ICAyNiArKwogc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2F1dG92YWN1dW0vbWVzb24uYnVpbGQgIHwgIDM2ICsrKwogLi4uL21vZHVsZXMvdGVzdF9hdXRv dmFjdXVtL3QvMDAxX2Jhc2ljLnBsICAgIHwgMTcwICsrKysrKysrKysrKwogLi4uL3Rlc3RfYXV0 b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0tLTEuMC5zcWwgIHwgIDM0ICsrKwogLi4uL21vZHVsZXMv dGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jIHwgMjU1ICsrKysrKysrKysrKysrKysr KwogLi4uL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uY29udHJvbCAgIHwgICAzICsK IDExIGZpbGVzIGNoYW5nZWQsIDU1MCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vLmdpdGlnbm9yZQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL01ha2VmaWxlCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vbWVzb24uYnVpbGQK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAw MV9iYXNpYy5wbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRv dmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVt LmNvbnRyb2wKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxl bC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwppbmRleCA0OTBmOTM5 NTlkMS4uYzJmMGEzN2VlZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1 bXBhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYwpA QCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgInBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oIgogI2lu Y2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5jbHVkZSAidGNvcC90Y29wcHJvdC5oIgorI2lu Y2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNo ZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogCkBAIC03NTIsNiArNzUzLDEzIEBAIHBhcmFs bGVsX3ZhY3V1bV9wcm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywg aW50IG51bV9pbmRleF9zY2FuCiAJCX0KIAl9CiAKKwkvKgorCSAqIFRvIGJlIGFibGUgdG8gZXhl cmNpc2Ugd2hldGhlciBhbGwgcmVzZXJ2ZWQgcGFyYWxsZWwgd29ya2VycyBhcmUgYmVpbmcKKwkg KiByZWxlYXNlZCBhbnl3YXksIGFsbG93IGluamVjdGlvbiBwb2ludHMgdG8gdHJpZ2dlciBhIGZh aWx1cmUgYXQgdGhpcworCSAqIHBvaW50LgorCSAqLworCUlOSkVDVElPTl9QT0lOVCgiYXV0b3Zh Y3V1bS10cmlnZ2VyLWxlYWRlci1mYWlsdXJlIiwgTlVMTCk7CisKIAkvKiBWYWN1dW0gdGhlIGlu ZGV4ZXMgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IG9ubHkgbGVhZGVyIHByb2Nlc3MgKi8KIAlw YXJhbGxlbF92YWN1dW1fcHJvY2Vzc191bnNhZmVfaW5kZXhlcyhwdnMpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2F1dG92YWN1dW0uYyBiL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvYXV0b3ZhY3V1bS5jCmluZGV4IGJjMTE5NzBiZmVlLi5hMjcyNzRiZmI0ZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9hdXRvdmFjdXVtLmMKQEAgLTM0MzksNiArMzQzOSwxMyBAQCBBdXRvVmFj dXVtUmVzZXJ2ZVBhcmFsbGVsV29ya2VycyhpbnQgKm53b3JrZXJzKQogCS8qIFJlbWVtYmVyIGhv dyBtYW55IHdvcmtlcnMgd2UgaGF2ZSByZXNlcnZlZC4gKi8KIAlhdl9ud29ya2Vyc19yZXNlcnZl ZCA9ICpud29ya2VyczsKIAorCS8qCisJICogSW5qZWN0aW9uIHBvaW50IHRvIGhlbHAgZXhlcmNp c2luZyBudW1iZXIgb2YgYXZhaWxhYmxlIHBhcmFsbGVsCisJICogYXV0b3ZhY3V1bSB3b3JrZXJz LgorCSAqLworCUlOSkVDVElPTl9QT0lOVCgiYXV0b3ZhY3V1bS1zZXQtZnJlZS1wYXJhbGxlbC13 b3JrZXJzLW51bSIsCisJCQkJCSZBdXRvVmFjdXVtU2htZW0tPmF2X2ZyZWVQYXJhbGxlbFdvcmtl cnMpOworCiAJTFdMb2NrUmVsZWFzZShBdXRvdmFjdXVtTG9jayk7CiB9CiAKQEAgLTM0NjgsNiAr MzQ3NSwxMyBAQCBBdXRvVmFjdXVtUmVsZWFzZVBhcmFsbGVsV29ya2VycyhpbnQgbndvcmtlcnMp CiAJLyogRG9uJ3QgaGF2ZSB0byByZW1lbWJlciB0aGVzZSB3b3JrZXJzIGFueW1vcmUuICovCiAJ YXZfbndvcmtlcnNfcmVzZXJ2ZWQgLT0gbndvcmtlcnM7CiAKKwkvKgorCSAqIEluamVjdGlvbiBw b2ludCB0byBoZWxwIGV4ZXJjaXNpbmcgbnVtYmVyIG9mIGF2YWlsYWJsZSBwYXJhbGxlbAorCSAq IGF1dG92YWN1dW0gd29ya2Vycy4KKwkgKi8KKwlJTkpFQ1RJT05fUE9JTlQoImF1dG92YWN1dW0t c2V0LWZyZWUtcGFyYWxsZWwtd29ya2Vycy1udW0iLAorCQkJCQkmQXV0b1ZhY3V1bVNobWVtLT5h dl9mcmVlUGFyYWxsZWxXb3JrZXJzKTsKKwogCUxXTG9ja1JlbGVhc2UoQXV0b3ZhY3V1bUxvY2sp OwogfQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL01ha2VmaWxlIGIvc3JjL3Rlc3Qv bW9kdWxlcy9NYWtlZmlsZQppbmRleCA0YzZkNTZkOTdkOC4uYmZlMzY1ZmE1NzUgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L21vZHVsZXMvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9NYWtl ZmlsZQpAQCAtMTYsNiArMTYsNyBAQCBTVUJESVJTID0gXAogCQkgIHBsc2FtcGxlIFwKIAkJICBz cGdpc3RfbmFtZV9vcHMgXAogCQkgIHRlc3RfYWlvIFwKKwkJICB0ZXN0X2F1dG92YWN1dW0gXAog CQkgIHRlc3RfYmluYXJ5aGVhcCBcCiAJCSAgdGVzdF9iaXRtYXBzZXQgXAogCQkgIHRlc3RfYmxv b21maWx0ZXIgXApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy9tZXNvbi5idWlsZCBiL3Ny Yy90ZXN0L21vZHVsZXMvbWVzb24uYnVpbGQKaW5kZXggMWIzMWM1Yjk4ZDYuLjAxYTNlM2VjMDQ0 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0 L21vZHVsZXMvbWVzb24uYnVpbGQKQEAgLTE2LDYgKzE2LDcgQEAgc3ViZGlyKCdwbHNhbXBsZScp CiBzdWJkaXIoJ3NwZ2lzdF9uYW1lX29wcycpCiBzdWJkaXIoJ3NzbF9wYXNzcGhyYXNlX2NhbGxi YWNrJykKIHN1YmRpcigndGVzdF9haW8nKQorc3ViZGlyKCd0ZXN0X2F1dG92YWN1dW0nKQogc3Vi ZGlyKCd0ZXN0X2JpbmFyeWhlYXAnKQogc3ViZGlyKCd0ZXN0X2JpdG1hcHNldCcpCiBzdWJkaXIo J3Rlc3RfYmxvb21maWx0ZXInKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1 dG92YWN1dW0vLmdpdGlnbm9yZSBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtLy5n aXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcxNmUxN2Y1 YTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0v LmdpdGlnbm9yZQpAQCAtMCwwICsxLDIgQEAKKyMgR2VuZXJhdGVkIHN1YmRpcmVjdG9yaWVzCisv dG1wX2NoZWNrLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0v TWFrZWZpbGUgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGNmNzM0NGIyYWMKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQpAQCAt MCwwICsxLDI2IEBACisjIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL01ha2VmaWxl CisKK1BHRklMRURFU0MgPSAidGVzdF9hdXRvdmFjdXVtIC0gdGVzdCBjb2RlIGZvciBwYXJhbGxl bCBhdXRvdmFjdXVtIgorCitNT0RVTEVfYmlnID0gdGVzdF9hdXRvdmFjdXVtCitPQkpTID0gXAor CSQoV0lOMzJSRVMpIFwKKwl0ZXN0X2F1dG92YWN1dW0ubworCitFWFRFTlNJT04gPSB0ZXN0X2F1 dG92YWN1dW0KK0RBVEEgPSB0ZXN0X2F1dG92YWN1dW0tLTEuMC5zcWwKKworVEFQX1RFU1RTID0g MQorCitleHBvcnQgZW5hYmxlX2luamVjdGlvbl9wb2ludHMKKworaWZkZWYgVVNFX1BHWFMKK1BH X0NPTkZJRyA9IHBnX2NvbmZpZworUEdYUyA6PSAkKHNoZWxsICQoUEdfQ09ORklHKSAtLXBneHMp CitpbmNsdWRlICQoUEdYUykKK2Vsc2UKK3N1YmRpciA9IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9h dXRvdmFjdXVtCit0b3BfYnVpbGRkaXIgPSAuLi8uLi8uLi8uLgoraW5jbHVkZSAkKHRvcF9idWls ZGRpcikvc3JjL01ha2VmaWxlLmdsb2JhbAoraW5jbHVkZSAkKHRvcF9zcmNkaXIpL2NvbnRyaWIv Y29udHJpYi1nbG9iYWwubWsKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfYXV0b3ZhY3V1bS9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFj dXVtL21lc29uLmJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4z NDQxZTVlNDljZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRv dmFjdXVtL21lc29uLmJ1aWxkCkBAIC0wLDAgKzEsMzYgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI0 LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3Rlc3RfYXV0b3Zh Y3V1bV9zb3VyY2VzID0gZmlsZXMoCisgICd0ZXN0X2F1dG92YWN1dW0uYycsCispCisKK2lmIGhv c3Rfc3lzdGVtID09ICd3aW5kb3dzJworICB0ZXN0X2F1dG92YWN1dW1fc291cmNlcyArPSByY19s aWJfZ2VuLnByb2Nlc3Mod2luMzJ2ZXJfcmMsIGV4dHJhX2FyZ3M6IFsKKyAgICAnLS1OQU1FJywg J3Rlc3RfYXV0b3ZhY3V1bScsCisgICAgJy0tRklMRURFU0MnLCAndGVzdF9hdXRvdmFjdXVtIC0g dGVzdCBjb2RlIGZvciBwYXJhbGxlbCBhdXRvdmFjdXVtJyxdKQorZW5kaWYKKwordGVzdF9hdXRv dmFjdXVtID0gc2hhcmVkX21vZHVsZSgndGVzdF9hdXRvdmFjdXVtJywKKyAgdGVzdF9hdXRvdmFj dXVtX3NvdXJjZXMsCisgIGt3YXJnczogcGdfdGVzdF9tb2RfYXJncywKKykKK3Rlc3RfaW5zdGFs bF9saWJzICs9IHRlc3RfYXV0b3ZhY3V1bQorCit0ZXN0X2luc3RhbGxfZGF0YSArPSBmaWxlcygK KyAgJ3Rlc3RfYXV0b3ZhY3V1bS5jb250cm9sJywKKyAgJ3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNx bCcsCispCisKK3Rlc3RzICs9IHsKKyAgJ25hbWUnOiAndGVzdF9hdXRvdmFjdXVtJywKKyAgJ3Nk JzogbWVzb24uY3VycmVudF9zb3VyY2VfZGlyKCksCisgICdiZCc6IG1lc29uLmN1cnJlbnRfYnVp bGRfZGlyKCksCisgICd0YXAnOiB7CisgICAgJ2Vudic6IHsKKyAgICAgICAnZW5hYmxlX2luamVj dGlvbl9wb2ludHMnOiBnZXRfb3B0aW9uKCdpbmplY3Rpb25fcG9pbnRzJykgPyAneWVzJyA6ICdu bycsCisgICAgfSwKKyAgICAndGVzdHMnOiBbCisgICAgICAndC8wMDFfYmFzaWMucGwnLAorICAg IF0sCisgIH0sCit9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1 bS90LzAwMV9iYXNpYy5wbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAx X2Jhc2ljLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44YmYxNTNk MTMyYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVt L3QvMDAxX2Jhc2ljLnBsCkBAIC0wLDAgKzEsMTcwIEBACit1c2Ugd2FybmluZ3MgRkFUQUwgPT4g J2FsbCc7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCitpZiAoJEVOVntlbmFibGVfaW5qZWN0aW9u X3BvaW50c30gbmUgJ3llcycpCit7CisJcGxhbiBza2lwX2FsbCA9PiAnSW5qZWN0aW9uIHBvaW50 cyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQnOworfQorCitteSAkcHNxbF9vdXQ7CisKK215 ICRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2RlMScpOworJG5vZGUt PmluaXQ7CisKKyMgQ29uZmlndXJlIHBvc3RncmVzLCBzbyBpdCBjYW4gbGF1bmNoIHBhcmFsbGVs IGF1dG92YWN1dW0gd29ya2VycywgbG9nIGFsbAorIyBpbmZvcm1hdGlvbiB3ZSBhcmUgaW50ZXJl c3RlZCBpbiBhbmQgYXV0b3ZhY3V1bSB3b3JrcyBmcmVxdWVudGx5Ciskbm9kZS0+YXBwZW5kX2Nv bmYoJ3Bvc3RncmVzcWwuY29uZicsIHFxeworCW1heF93b3JrZXJfcHJvY2Vzc2VzID0gMjAKKwlt YXhfcGFyYWxsZWxfd29ya2VycyA9IDIwCisJbWF4X3BhcmFsbGVsX21haW50ZW5hbmNlX3dvcmtl cnMgPSAyMAorCWF1dG92YWN1dW1fbWF4X3BhcmFsbGVsX3dvcmtlcnMgPSAxMAorCWxvZ19taW5f bWVzc2FnZXMgPSBkZWJ1ZzIKKwlsb2dfYXV0b3ZhY3V1bV9taW5fZHVyYXRpb24gPSAwCisJYXV0 b3ZhY3V1bV9uYXB0aW1lID0gJzFzJworCW1pbl9wYXJhbGxlbF9pbmRleF9zY2FuX3NpemUgPSAw CisJc2hhcmVkX3ByZWxvYWRfbGlicmFyaWVzPXRlc3RfYXV0b3ZhY3V1bQorfSk7Ciskbm9kZS0+ c3RhcnQ7CisKK215ICRpbmRleGVzX251bSA9IDQ7CitteSAkaW5pdGlhbF9yb3dzX251bSA9IDEw XzAwMDsKK215ICRhdXRvdmFjdXVtX3BhcmFsbGVsX3dvcmtlcnMgPSAyOworCisjIENyZWF0ZSB0 YWJsZSB3aXRoIHNwZWNpZmllZCBudW1iZXIgb2YgYi10cmVlIGluZGV4ZXMgb24gaXQKKyRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJQ1JFQVRFIFRBQkxFIHRlc3RfYXV0b3ZhYyAo CisJCWlkIFNFUklBTCBQUklNQVJZIEtFWSwKKwkJY29sXzEgSU5URUdFUiwgIGNvbF8yIElOVEVH RVIsICBjb2xfMyBJTlRFR0VSLCAgY29sXzQgSU5URUdFUgorCSkgV0lUSCAoYXV0b3ZhY3V1bV9w YXJhbGxlbF93b3JrZXJzID0gJGF1dG92YWN1dW1fcGFyYWxsZWxfd29ya2VycywKKwkJCWF1dG92 YWN1dW1fZW5hYmxlZCA9IGZhbHNlKTsKKworCURPIFwkXCQKKwlERUNMQVJFCisJCWkgSU5URUdF UjsKKwlCRUdJTgorCQlGT1IgaSBJTiAxLi4kaW5kZXhlc19udW0gTE9PUAorCQkJRVhFQ1VURSBm b3JtYXQoJ0NSRUFURSBJTkRFWCBpZHhfY29sX1wlcyBPTiB0ZXN0X2F1dG92YWMgKGNvbF9cJXMp OycsIGksIGkpOworCQlFTkQgTE9PUDsKKwlFTkQgXCRcJDsKK30pOworCisjIEluc2VydCBzcGVj aWZpZWQgdHVwbGVzIG51bSBpbnRvIHRoZSB0YWJsZQorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxcXsKKwlETyBcJFwkCisJREVDTEFSRQorCQlpIElOVEVHRVI7CisJQkVHSU4KKwkJRk9S IGkgSU4gMS4uJGluaXRpYWxfcm93c19udW0gTE9PUAorCQkJSU5TRVJUIElOVE8gdGVzdF9hdXRv dmFjIFZBTFVFUyAoaSwgaSArIDEsIGkgKyAyLCBpICsgMyk7CisJCUVORCBMT09QOworCUVORCBc JFwkOworfSk7CisKKyMgTm93LCBjcmVhdGUgc29tZSBkZWFkIHR1cGxlcyBhbmQgcmVmcmVzaCB0 YWJsZSBzdGF0aXN0aWNzCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCVVQREFU RSB0ZXN0X2F1dG92YWMgU0VUIGNvbF8xID0gMCBXSEVSRSAoY29sXzEgJSAzKSA9IDA7CisJQU5B TFlaRSB0ZXN0X2F1dG92YWM7Cit9KTsKKworIyBDcmVhdGUgYWxsIGZ1bmN0aW9ucyBuZWVkZWQg Zm9yIHRlc3RpbmcKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJQ1JFQVRFIEVY VEVOU0lPTiB0ZXN0X2F1dG92YWN1dW07CisJU0VMRUNUIGlual9zZXRfZnJlZV93b3JrZXJzX2F0 dGFjaCgpOworCVNFTEVDVCBpbmpfbGVhZGVyX2ZhaWx1cmVfYXR0YWNoKCk7Cit9KTsKKworIyBU ZXN0IDEgOgorIyBPdXIgdGFibGUgaGFzIGVub3VnaCBpbmRleGVzIGFuZCBhcHByb3ByaWF0ZSBy ZWxvcHRpb25zLCBzbyBhdXRvdmFjdXVtIG11c3QKKyMgYmUgYWJsZSB0byBwcm9jZXNzIGl0IGlu IHBhcmFsbGVsIG1vZGUuIEp1c3QgY2hlY2sgaWYgaXQgY2FuLgorIyBBbHNvIGNoZWNrIHdoZXRo ZXIgYWxsIHJlcXVlc3RlZCB3b3JrZXJzOgorIyAJMSkgbGF1bmNoZWQKKyMgCTIpIGNvcnJlY3Rs eSByZWxlYXNlZAorCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCUFMVEVSIFRB QkxFIHRlc3RfYXV0b3ZhYyBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisK KyMgV2FpdCB1bnRpbCB0aGUgcGFyYWxsZWwgYXV0b3ZhY3V1bSBvbiB0YWJsZSBpcyBjb21wbGV0 ZWQuIEF0IHRoZSBzYW1lIHRpbWUsCisjIHdlIGNoZWNrIHRoYXQgdGhlIHJlcXVpcmVkIG51bWJl ciBvZiBwYXJhbGxlbCB3b3JrZXJzIGhhcyBiZWVuIHN0YXJ0ZWQuCiskbm9kZS0+d2FpdF9mb3Jf bG9nKHFyL3BhcmFsbGVsIGluZGV4IHZhY3V1bVwvY2xlYW51cCA6IHdvcmtlcnMgcGxhbm5lZCA9 IDIsIC8gLgorCQkJCQlxci93b3JrZXJzIGxhdW5jaGVkID0gMi8pOworCiskbm9kZS0+cHNxbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgZ2V0X3BhcmFsbGVsX2F1dG92YWN1dW1fZnJlZV93b3JrZXJz KCk7IiwKKwlzdGRvdXQgPT4gXCRwc3FsX291dCwKKyk7CitpcygkcHNxbF9vdXQsIDEwLCAnQWxs IHBhcmFsbGVsIHdvcmtlcnMgaGFzIGJlZW4gcmVsZWFzZWQgYnkgdGhlIGxlYWRlcicpOworCisj IERpc2FibGUgYXV0b3ZhY3V1bSBvbiB0YWJsZSBkdXJpbmcgcHJlcGFyYXRpb24gZm9yIHRoZSBu ZXh0IHRlc3QKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJQUxURVIgVEFCTEUg dGVzdF9hdXRvdmFjIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gZmFsc2UpOworfSk7CisKKyMg Q3JlYXRlIG1vcmUgZGVhZCB0dXBsZXMKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7 CisJVVBEQVRFIHRlc3RfYXV0b3ZhYyBTRVQgY29sXzIgPSAwIFdIRVJFIChjb2xfMiAlIDMpID0g MDsKKwlBTkFMWVpFIHRlc3RfYXV0b3ZhYzsKK30pOworCisjIFRlc3QgMjoKKyMgV2Ugd2FudCBw YXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlcnMgdG8gYmUgcmVsZWFzZWQgZXZlbiBpZiBsZWFkZXIg Z2V0cyBhbgorIyBlcnJvci4gQXQgZmlyc3QsIHNpbXVsYXRlIHNpdHVhdGlvbiwgd2hlbiBsZWFk ZXIgZXhpdGVzIGR1ZSB0byBhbiBFUlJPUi4KKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCBxcSgKKwlTRUxFQ1QgdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZSgnRVJST1InKTsKKykpOworCisk bm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCUFMVEVSIFRBQkxFIHRlc3RfYXV0b3Zh YyBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyRub2RlLT53YWl0X2Zv cl9sb2cocXIvZXJyb3IsIHRyaWdnZXJlZCBieSBpbmplY3Rpb24gcG9pbnQvKTsKKworJG5vZGUt PnBzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGdldF9wYXJhbGxlbF9hdXRvdmFjdXVtX2ZyZWVf d29ya2VycygpOyIsCisJc3Rkb3V0ID0+IFwkcHNxbF9vdXQsCispOworaXMoJHBzcWxfb3V0LCAx MCwKKyAgICdBbGwgcGFyYWxsZWwgd29ya2VycyBoYXMgYmVlbiByZWxlYXNlZCBieSB0aGUgbGVh ZGVyIGFmdGVyIEVSUk9SJyk7CisKKyMgRGlzYWJsZSBhdXRvdmFjdXVtIG9uIHRhYmxlIGR1cmlu ZyBwcmVwYXJhdGlvbiBmb3IgdGhlIG5leHQgdGVzdAorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxcXsKKwlBTFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJs ZWQgPSBmYWxzZSk7Cit9KTsKKworIyBDcmVhdGUgbW9yZSBkZWFkIHR1cGxlcworJG5vZGUtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlVUERBVEUgdGVzdF9hdXRvdmFjIFNFVCBjb2xfMyA9 IDAgV0hFUkUgKGNvbF8zICUgMykgPSAwOworCUFOQUxZWkUgdGVzdF9hdXRvdmFjOworfSk7CisK KyMgVGVzdCAzOgorIyBTYW1lIGFzIFRlc3QgMiwgYnV0IHNpbXVsYXRlIHNpdHVhdGlvbiwgd2hl biBsZWFkZXIgZXhpdGVzIGR1ZSB0byBGQVRBTC4KKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCBxcSgKKwlTRUxFQ1QgdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZSgnRkFUQUwnKTsKKykpOwor Ciskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCUFMVEVSIFRBQkxFIHRlc3RfYXV0 b3ZhYyBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9IHRydWUpOworfSk7CisKKyRub2RlLT53YWl0 X2Zvcl9sb2cocXIvZmF0YWwsIHRyaWdnZXJlZCBieSBpbmplY3Rpb24gcG9pbnQvKTsKKworJG5v ZGUtPnBzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGdldF9wYXJhbGxlbF9hdXRvdmFjdXVtX2Zy ZWVfd29ya2VycygpOyIsCisJc3Rkb3V0ID0+IFwkcHNxbF9vdXQsCispOworaXMoJHBzcWxfb3V0 LCAxMCwKKyAgICdBbGwgcGFyYWxsZWwgd29ya2VycyBoYXMgYmVlbiByZWxlYXNlZCBieSB0aGUg bGVhZGVyIGFmdGVyIEZBVEFMJyk7CisKKyMgQ2xlYW51cAorJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxcXsKKwlTRUxFQ1QgaW5qX3NldF9mcmVlX3dvcmtlcnNfZGV0YWNoKCk7CisJU0VM RUNUIGlual9sZWFkZXJfZmFpbHVyZV9kZXRhY2goKTsKK30pOworCiskbm9kZS0+c3RvcDsKK2Rv bmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1 dW0vdGVzdF9hdXRvdmFjdXVtLS0xLjAuc3FsIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92 YWN1dW0vdGVzdF9hdXRvdmFjdXVtLS0xLjAuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4wMTdkNWRhODVlYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNxbApAQCAtMCwwICsx LDM0IEBACisvKiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1 dW0tLTEuMC5zcWwgKi8KKworLS0gY29tcGxhaW4gaWYgc2NyaXB0IGlzIHNvdXJjZWQgaW4gcHNx bCwgcmF0aGVyIHRoYW4gdmlhIENSRUFURSBFWFRFTlNJT04KK1xlY2hvIFVzZSAiQ1JFQVRFIEVY VEVOU0lPTiB0ZXN0X2F1dG92YWN1dW0iIHRvIGxvYWQgdGhpcyBmaWxlLiBccXVpdAorCisvKgor ICogRnVuY3Rpb25zIGZvciBleHBlY3Rpbmcgb3IgdG8gaW50ZXJmZXJlIGF1dG92YWN1dW0gc3Rh dGUKKyAqLworQ1JFQVRFIEZVTkNUSU9OIGdldF9wYXJhbGxlbF9hdXRvdmFjdXVtX2ZyZWVfd29y a2VycygpCitSRVRVUk5TIElOVEVHRVIgU1RSSUNUCitBUyAnTU9EVUxFX1BBVEhOQU1FJyBMQU5H VUFHRSBDOworCitDUkVBVEUgRlVOQ1RJT04gdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZShmYWlsdXJl X3R5cGUgdGV4dCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdNT0RVTEVfUEFUSE5BTUUnIExB TkdVQUdFIEM7CisKKy8qCisgKiBJbmplY3Rpb24gcG9pbnQgcmVsYXRlZCBmdW5jdGlvbnMKKyAq LworQ1JFQVRFIEZVTkNUSU9OIGlual9zZXRfZnJlZV93b3JrZXJzX2F0dGFjaCgpCitSRVRVUk5T IFZPSUQgU1RSSUNUCitBUyAnTU9EVUxFX1BBVEhOQU1FJyBMQU5HVUFHRSBDOworCitDUkVBVEUg RlVOQ1RJT04gaW5qX3NldF9mcmVlX3dvcmtlcnNfZGV0YWNoKCkKK1JFVFVSTlMgVk9JRCBTVFJJ Q1QKK0FTICdNT0RVTEVfUEFUSE5BTUUnIExBTkdVQUdFIEM7CisKK0NSRUFURSBGVU5DVElPTiBp bmpfbGVhZGVyX2ZhaWx1cmVfYXR0YWNoKCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdNT0RV TEVfUEFUSE5BTUUnIExBTkdVQUdFIEM7CisKK0NSRUFURSBGVU5DVElPTiBpbmpfbGVhZGVyX2Zh aWx1cmVfZGV0YWNoKCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdNT0RVTEVfUEFUSE5BTUUn IExBTkdVQUdFIEM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1 bS90ZXN0X2F1dG92YWN1dW0uYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rl c3RfYXV0b3ZhY3V1bS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43 OTQ4ZjQ4NThhZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRv dmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jCkBAIC0wLDAgKzEsMjU1IEBACisvKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqCisgKiB0ZXN0X2F1dG92YWN1dW0uYworICoJCUhlbHBlcnMgdG8gd3JpdGUgdGVz dHMgZm9yIHBhcmFsbGVsIGF1dG92YWN1dW0KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAy NSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElGSUNB VElPTgorICoJICBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1 dW0uYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5o IgorCisjaW5jbHVkZSAiZm1nci5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUg InBvc3RtYXN0ZXIvYXV0b3ZhY3V1bS5oIgorI2luY2x1ZGUgInN0b3JhZ2Uvc2htZW0uaCIKKyNp bmNsdWRlICJzdG9yYWdlL2lwYy5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbHdsb2NrLmgiCisjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9pbmplY3Rpb25fcG9pbnQu aCIKKworUEdfTU9EVUxFX01BR0lDOworCit0eXBlZGVmIGVudW0gQVZMZWFkZXJGYXVsdXJlVHlw ZQoreworCUZBSUxfTk9ORSwKKwlGQUlMX0VSUk9SLAorCUZBSUxfRkFUQUwsCit9CQkJQVZMZWFk ZXJGYXVsdXJlVHlwZTsKKwordHlwZWRlZiBzdHJ1Y3QgSW5qUG9pbnRTdGF0ZQoreworCWJvb2wJ CWVuYWJsZWRfc2V0X2ZyZWVfd29ya2VyczsKKwl1aW50MzIJCWZyZWVfcGFyYWxsZWxfd29ya2Vy czsKKworCWJvb2wJCWVuYWJsZWRfbGVhZGVyX2ZhaWx1cmU7CisJQVZMZWFkZXJGYXVsdXJlVHlw ZSBmdHlwZTsKK30JCQlJbmpQb2ludFN0YXRlOworCitzdGF0aWMgSW5qUG9pbnRTdGF0ZSAqIGlu al9wb2ludF9zdGF0ZTsKKworLyogU2hhcmVkIG1lbW9yeSBpbml0IGNhbGxiYWNrcyAqLworc3Rh dGljIHNobWVtX3JlcXVlc3RfaG9va190eXBlIHByZXZfc2htZW1fcmVxdWVzdF9ob29rID0gTlVM TDsKK3N0YXRpYyBzaG1lbV9zdGFydHVwX2hvb2tfdHlwZSBwcmV2X3NobWVtX3N0YXJ0dXBfaG9v ayA9IE5VTEw7CisKK3N0YXRpYyB2b2lkCit0ZXN0X2F1dG92YWN1dW1fc2htZW1fcmVxdWVzdCh2 b2lkKQoreworCWlmIChwcmV2X3NobWVtX3JlcXVlc3RfaG9vaykKKwkJcHJldl9zaG1lbV9yZXF1 ZXN0X2hvb2soKTsKKworCVJlcXVlc3RBZGRpblNobWVtU3BhY2Uoc2l6ZW9mKElualBvaW50U3Rh dGUpKTsKK30KKworc3RhdGljIHZvaWQKK3Rlc3RfYXV0b3ZhY3V1bV9zaG1lbV9zdGFydHVwKHZv aWQpCit7CisJYm9vbAkJZm91bmQ7CisKKwlpZiAocHJldl9zaG1lbV9zdGFydHVwX2hvb2spCisJ CXByZXZfc2htZW1fc3RhcnR1cF9ob29rKCk7CisKKwkvKiBDcmVhdGUgb3IgYXR0YWNoIHRvIHRo ZSBzaGFyZWQgbWVtb3J5IHN0YXRlICovCisJTFdMb2NrQWNxdWlyZShBZGRpblNobWVtSW5pdExv Y2ssIExXX0VYQ0xVU0lWRSk7CisKKwlpbmpfcG9pbnRfc3RhdGUgPSBTaG1lbUluaXRTdHJ1Y3Qo ImluamVjdGlvbl9wb2ludHMiLAorCQkJCQkJCQkJICBzaXplb2YoSW5qUG9pbnRTdGF0ZSksCisJ CQkJCQkJCQkgICZmb3VuZCk7CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJLyogRmlyc3QgdGltZSB0 aHJvdWdoLCBpbml0aWFsaXplICovCisJCWlual9wb2ludF9zdGF0ZS0+ZW5hYmxlZF9sZWFkZXJf ZmFpbHVyZSA9IGZhbHNlOworCQlpbmpfcG9pbnRfc3RhdGUtPmVuYWJsZWRfc2V0X2ZyZWVfd29y a2VycyA9IGZhbHNlOworCQlpbmpfcG9pbnRfc3RhdGUtPmZ0eXBlID0gRkFJTF9OT05FOworCisJ CS8qIEtlZXAgaXQgaW4gc3luYyB3aXRoIEF1dG9WYWN1dW1TaG1lbUluaXQgKi8KKwkJaW5qX3Bv aW50X3N0YXRlLT5mcmVlX3BhcmFsbGVsX3dvcmtlcnMgPQorCQkJTWluKGF1dG92YWN1dW1fbWF4 X3BhcmFsbGVsX3dvcmtlcnMsIG1heF93b3JrZXJfcHJvY2Vzc2VzKTsKKworCQlJbmplY3Rpb25Q b2ludEF0dGFjaCgiYXV0b3ZhY3V1bS1zZXQtZnJlZS1wYXJhbGxlbC13b3JrZXJzLW51bSIsCisJ CQkJCQkJICJ0ZXN0X2F1dG92YWN1dW0iLAorCQkJCQkJCSAiaW5qX3NldF9mcmVlX3dvcmtlcnMi LAorCQkJCQkJCSBOVUxMLAorCQkJCQkJCSAwKTsKKworCQlJbmplY3Rpb25Qb2ludEF0dGFjaCgi YXV0b3ZhY3V1bS10cmlnZ2VyLWxlYWRlci1mYWlsdXJlIiwKKwkJCQkJCQkgInRlc3RfYXV0b3Zh Y3V1bSIsCisJCQkJCQkJICJpbmpfdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZSIsCisJCQkJCQkJIE5V TEwsCisJCQkJCQkJIDApOworCX0KKworCUxXTG9ja1JlbGVhc2UoQWRkaW5TaG1lbUluaXRMb2Nr KTsKK30KKwordm9pZAorX1BHX2luaXQodm9pZCkKK3sKKwlpZiAoIXByb2Nlc3Nfc2hhcmVkX3By ZWxvYWRfbGlicmFyaWVzX2luX3Byb2dyZXNzKQorCQlyZXR1cm47CisKKwlwcmV2X3NobWVtX3Jl cXVlc3RfaG9vayA9IHNobWVtX3JlcXVlc3RfaG9vazsKKwlzaG1lbV9yZXF1ZXN0X2hvb2sgPSB0 ZXN0X2F1dG92YWN1dW1fc2htZW1fcmVxdWVzdDsKKwlwcmV2X3NobWVtX3N0YXJ0dXBfaG9vayA9 IHNobWVtX3N0YXJ0dXBfaG9vazsKKwlzaG1lbV9zdGFydHVwX2hvb2sgPSB0ZXN0X2F1dG92YWN1 dW1fc2htZW1fc3RhcnR1cDsKK30KKworZXh0ZXJuIFBHRExMRVhQT1JUIHZvaWQgaW5qX3NldF9m cmVlX3dvcmtlcnMoY29uc3QgY2hhciAqbmFtZSwKKwkJCQkJCQkJCQkJIGNvbnN0IHZvaWQgKnBy aXZhdGVfZGF0YSwKKwkJCQkJCQkJCQkJIHZvaWQgKmFyZyk7CitleHRlcm4gUEdETExFWFBPUlQg dm9pZCBpbmpfdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZShjb25zdCBjaGFyICpuYW1lLAorCQkJCQkJ CQkJCQkJICAgY29uc3Qgdm9pZCAqcHJpdmF0ZV9kYXRhLAorCQkJCQkJCQkJCQkJICAgdm9pZCAq YXJnKTsKKworLyoKKyAqIFNldCBudW1iZXIgb2YgY3VycmVudGx5IGF2YWlsYWJsZSBwYXJhbGxl bCBhL3Ygd29ya2Vycy4gVGhpcyB2YWx1ZSBtYXkKKyAqIGNoYW5nZSBhZnRlciByZXNlcnZpbmcg b3IgcmVsZWFzaW5nIHN1Y2ggd29ya2Vycy4KKyAqCisgKiBGdW5jdGlvbiBjYWxsZWQgZnJvbSBw YXJhbGxlbCBhdXRvdmFjdXVtIGxlYWRlci4KKyAqLwordm9pZAoraW5qX3NldF9mcmVlX3dvcmtl cnMoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgdm9pZCAqcHJpdmF0ZV9kYXRhLCB2b2lkICphcmcp Cit7CisJZXJlcG9ydChMT0csCisJCQllcnJtc2coInNldCBwYXJhbGxlbCB3b3JrZXJzIGluamVj dGlvbiBwb2ludCBjYWxsZWQiKSwKKwkJCWVycmhpZGVzdG10KHRydWUpLCBlcnJoaWRlY29udGV4 dCh0cnVlKSk7CisKKwlpZiAoaW5qX3BvaW50X3N0YXRlLT5lbmFibGVkX3NldF9mcmVlX3dvcmtl cnMpCisJeworCQlBc3NlcnQoYXJnICE9IE5VTEwpOworCQlpbmpfcG9pbnRfc3RhdGUtPmZyZWVf cGFyYWxsZWxfd29ya2VycyA9ICoodWludDMyICopIGFyZzsKKwl9Cit9CisKKy8qCisgKiBUaHJv dyBhbiBFUlJPUiBvciBGQVRBTCwgaWYgc29tZWJvZHkgcmVxdWVzdGVkIGl0LgorICoKKyAqIEZ1 bmN0aW9uIGNhbGxlZCBmcm9tIHBhcmFsbGVsIGF1dG92YWN1dW0gbGVhZGVyLgorICovCit2b2lk CitpbmpfdHJpZ2dlcl9sZWFkZXJfZmFpbHVyZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCB2b2lk ICpwcml2YXRlX2RhdGEsCisJCQkJCQkgICB2b2lkICphcmcpCit7CisJaW50CQkJZWxldmVsOwor CWNoYXIJICAgKmVsZXZlbF9zdHI7CisKKwllcmVwb3J0KExPRywKKwkJCWVycm1zZygidHJpZ2dl ciBsZWFkZXIgZmFpbHVyZSBpbmplY3Rpb24gcG9pbnQgY2FsbGVkIiksCisJCQllcnJoaWRlc3Rt dCh0cnVlKSwgZXJyaGlkZWNvbnRleHQodHJ1ZSkpOworCisJaWYgKGlual9wb2ludF9zdGF0ZS0+ ZnR5cGUgPT0gRkFJTF9OT05FIHx8CisJCSFpbmpfcG9pbnRfc3RhdGUtPmVuYWJsZWRfbGVhZGVy X2ZhaWx1cmUpCisJeworCQlyZXR1cm47CisJfQorCisJZWxldmVsID0gaW5qX3BvaW50X3N0YXRl LT5mdHlwZSA9PSBGQUlMX0VSUk9SID8gRVJST1IgOiBGQVRBTDsKKwllbGV2ZWxfc3RyID0gZWxl dmVsID09IEVSUk9SID8gImVycm9yIiA6ICJmYXRhbCI7CisKKwllcmVwb3J0KGVsZXZlbCwgZXJy bXNnKCIlcywgdHJpZ2dlcmVkIGJ5IGluamVjdGlvbiBwb2ludCIsIGVsZXZlbF9zdHIpKTsKK30K KworUEdfRlVOQ1RJT05fSU5GT19WMShnZXRfcGFyYWxsZWxfYXV0b3ZhY3V1bV9mcmVlX3dvcmtl cnMpOworRGF0dW0KK2dldF9wYXJhbGxlbF9hdXRvdmFjdXVtX2ZyZWVfd29ya2VycyhQR19GVU5D VElPTl9BUkdTKQoreworCXVpbnQzMgkJbndvcmtlcnM7CisKKyNpZm5kZWYgVVNFX0lOSkVDVElP Tl9QT0lOVFMKKwllbG9nKEVSUk9SLCAiaW5qZWN0aW9uIHBvaW50cyBub3Qgc3VwcG9ydGVkIik7 CisjZW5kaWYKKworCUxXTG9ja0FjcXVpcmUoQXV0b3ZhY3V1bUxvY2ssIExXX0VYQ0xVU0lWRSk7 CisJbndvcmtlcnMgPSBpbmpfcG9pbnRfc3RhdGUtPmZyZWVfcGFyYWxsZWxfd29ya2VyczsKKwlM V0xvY2tSZWxlYXNlKEF1dG92YWN1dW1Mb2NrKTsKKworCVBHX1JFVFVSTl9VSU5UMzIobndvcmtl cnMpOworfQorCitQR19GVU5DVElPTl9JTkZPX1YxKHRyaWdnZXJfbGVhZGVyX2ZhaWx1cmUpOwor RGF0dW0KK3RyaWdnZXJfbGVhZGVyX2ZhaWx1cmUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwljb25z dCBjaGFyICpmYWlsdXJlX3R5cGUgPSB0ZXh0X3RvX2NzdHJpbmcoUEdfR0VUQVJHX1RFWFRfUFAo MCkpOworCisjaWZuZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJZWxvZyhFUlJPUiwgImluamVj dGlvbiBwb2ludHMgbm90IHN1cHBvcnRlZCIpOworI2VuZGlmCisKKwlpZiAoc3RyY21wKGZhaWx1 cmVfdHlwZSwgIk5PTkUiKSA9PSAwKQorCQlpbmpfcG9pbnRfc3RhdGUtPmZ0eXBlID0gRkFJTF9O T05FOworCWVsc2UgaWYgKHN0cmNtcChmYWlsdXJlX3R5cGUsICJFUlJPUiIpID09IDApCisJCWlu al9wb2ludF9zdGF0ZS0+ZnR5cGUgPSBGQUlMX0VSUk9SOworCWVsc2UgaWYgKHN0cmNtcChmYWls dXJlX3R5cGUsICJGQVRBTCIpID09IDApCisJCWlual9wb2ludF9zdGF0ZS0+ZnR5cGUgPSBGQUlM X0ZBVEFMOworCWVsc2UKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJpbnZhbGlkIGxlYWRlciBmYWls dXJlIHR5cGUgOiAlcyIsIGZhaWx1cmVfdHlwZSkpKTsKKworCVBHX1JFVFVSTl9WT0lEKCk7Cit9 CisKK1BHX0ZVTkNUSU9OX0lORk9fVjEoaW5qX3NldF9mcmVlX3dvcmtlcnNfYXR0YWNoKTsKK0Rh dHVtCitpbmpfc2V0X2ZyZWVfd29ya2Vyc19hdHRhY2goUEdfRlVOQ1RJT05fQVJHUykKK3sKKyNp ZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5UUworCWlual9wb2ludF9zdGF0ZS0+ZW5hYmxlZF9zZXRf ZnJlZV93b3JrZXJzID0gdHJ1ZTsKKwlpbmpfcG9pbnRfc3RhdGUtPmZ0eXBlID0gRkFJTF9OT05F OworI2Vsc2UKKwllbG9nKEVSUk9SLCAiaW5qZWN0aW9uIHBvaW50cyBub3Qgc3VwcG9ydGVkIik7 CisjZW5kaWYKKwlQR19SRVRVUk5fVk9JRCgpOworfQorCitQR19GVU5DVElPTl9JTkZPX1YxKGlu al9zZXRfZnJlZV93b3JrZXJzX2RldGFjaCk7CitEYXR1bQoraW5qX3NldF9mcmVlX3dvcmtlcnNf ZGV0YWNoKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjaWZkZWYgVVNFX0lOSkVDVElPTl9QT0lOVFMK KwlpbmpfcG9pbnRfc3RhdGUtPmVuYWJsZWRfc2V0X2ZyZWVfd29ya2VycyA9IGZhbHNlOworI2Vs c2UKKwllbG9nKEVSUk9SLCAiaW5qZWN0aW9uIHBvaW50cyBub3Qgc3VwcG9ydGVkIik7CisjZW5k aWYKKwlQR19SRVRVUk5fVk9JRCgpOworfQorCitQR19GVU5DVElPTl9JTkZPX1YxKGlual9sZWFk ZXJfZmFpbHVyZV9hdHRhY2gpOworRGF0dW0KK2lual9sZWFkZXJfZmFpbHVyZV9hdHRhY2goUEdf RlVOQ1RJT05fQVJHUykKK3sKKyNpZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5UUworCWlual9wb2lu dF9zdGF0ZS0+ZW5hYmxlZF9sZWFkZXJfZmFpbHVyZSA9IHRydWU7CisjZWxzZQorCWVsb2coRVJS T1IsICJpbmplY3Rpb24gcG9pbnRzIG5vdCBzdXBwb3J0ZWQiKTsKKyNlbmRpZgorCVBHX1JFVFVS Tl9WT0lEKCk7Cit9CisKK1BHX0ZVTkNUSU9OX0lORk9fVjEoaW5qX2xlYWRlcl9mYWlsdXJlX2Rl dGFjaCk7CitEYXR1bQoraW5qX2xlYWRlcl9mYWlsdXJlX2RldGFjaChQR19GVU5DVElPTl9BUkdT KQoreworI2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJaW5qX3BvaW50X3N0YXRlLT5lbmFi bGVkX2xlYWRlcl9mYWlsdXJlID0gZmFsc2U7CisjZWxzZQorCWVsb2coRVJST1IsICJpbmplY3Rp b24gcG9pbnRzIG5vdCBzdXBwb3J0ZWQiKTsKKyNlbmRpZgorCVBHX1JFVFVSTl9WT0lEKCk7Cit9 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92 YWN1dW0uY29udHJvbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0 b3ZhY3V1bS5jb250cm9sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4x YjdmYWQyNThmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRv dmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS5jb250cm9sCkBAIC0wLDAgKzEsMyBAQAorY29tbWVudCA9 ICdUZXN0IGNvZGUgZm9yIHBhcmFsbGVsIGF1dG92YWN1dW0nCitkZWZhdWx0X3ZlcnNpb24gPSAn MS4wJworbW9kdWxlX3BhdGhuYW1lID0gJyRsaWJkaXIvdGVzdF9hdXRvdmFjdXVtJwotLSAKMi40 My4wCgo= --000000000000d8318e0647c93bb7 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0005-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Disposition: attachment; filename="v18-0005-Cost-based-parameters-propagation-for-parallel-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk3u5mrk0 RnJvbSAxNGFiZGVmOTE4YTczZTQ2NTkwMGY3NTgyMDRkZTE5OTgyZmM0MjI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5paWwgRGF2aWRvdiA8ZC5kYXZ5ZG92QHBvc3RncmVzcHJv LnJ1PgpEYXRlOiBXZWQsIDcgSmFuIDIwMjYgMTY6MDM6MjAgKzA3MDAKU3ViamVjdDogW1BBVENI IHYxOCA1LzVdIENvc3QtYmFzZWQgcGFyYW1ldGVycyBwcm9wYWdhdGlvbiBmb3IgcGFyYWxsZWwK IGF1dG92YWN1dW0KCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMgICAgICAgICAg ICAgICAgIHwgIDI2ICsrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMg ICAgICAgICB8IDEzMCArKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Zh Y3V1bS5oICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS9NYWtlZmlsZSAgICAgfCAgIDIgKwogLi4uL21vZHVsZXMvdGVzdF9hdXRvdmFjdXVt L3QvMDAxX2Jhc2ljLnBsICAgIHwgIDgzICsrKysrKysrKysrCiAuLi4vdGVzdF9hdXRvdmFjdXVt L3Rlc3RfYXV0b3ZhY3V1bS0tMS4wLnNxbCAgfCAgMTIgKysKIC4uLi9tb2R1bGVzL3Rlc3RfYXV0 b3ZhY3V1bS90ZXN0X2F1dG92YWN1dW0uYyB8ICA3NSArKysrKysrKysrCiA3IGZpbGVzIGNoYW5n ZWQsIDMyOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtLmMK aW5kZXggYWE0ZmJlYzE0M2YuLjRjNDBhMzY1MjNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy92YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW0uYwpAQCAt MjQzMCw4ICsyNDMwLDI0IEBAIHZhY3V1bV9kZWxheV9wb2ludChib29sIGlzX2FuYWx5emUpCiAJ LyogQWx3YXlzIGNoZWNrIGZvciBpbnRlcnJ1cHRzICovCiAJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMo KTsKIAotCWlmIChJbnRlcnJ1cHRQZW5kaW5nIHx8Ci0JCSghVmFjdXVtQ29zdEFjdGl2ZSAmJiAh Q29uZmlnUmVsb2FkUGVuZGluZykpCisJaWYgKEludGVycnVwdFBlbmRpbmcpCisJCXJldHVybjsK KworCWlmICghQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpKQorCXsKKwkJLyoKKwkJICogSWYg d2UgYXJlIGF1dG92YWN1dW0gcGFyYWxsZWwgd29ya2VyLCBjaGVjayB3aGV0aGVyIGNvc3QtYmFz ZWQKKwkJICogcGFyYW1ldGVycyBoYWQgY2hhbmdlZCBpbiBsZWFkZXIgd29ya2VyLgorCQkgKiBJ ZiBzbywgdmFjdXVtX2Nvc3RfZGVsYXkgYW5kIHZhY3V1bV9jb3N0X2xpbWl0IHdpbGwgYmUgc2V0 IHRvIHRoZQorCQkgKiB2YWx1ZXMgd2hpY2ggbGVhZGVyIHdvcmtlciBpcyBvcGVyYXRpbmcgb24u CisJCSAqCisJCSAqIERvIGl0IGJlZm9yZSBjaGVja2luZyBWYWN1dW1Db3N0QWN0aXZlLCBiZWNh dXNlIGl0cyB2YWx1ZSBtaWdodCBiZQorCQkgKiBjaGFuZ2VkIGFmdGVyIGxlYWRlcidzIHBhcmFt ZXRlcnMgY29uc3VtcHRpb24uCisJCSAqLworCQlwYXJhbGxlbF92YWN1dW1fZml4X2Nvc3RfYmFz ZWRfcGFyYW1zKCk7CisJfQorCisJaWYgKCFWYWN1dW1Db3N0QWN0aXZlICYmICFDb25maWdSZWxv YWRQZW5kaW5nKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtMjQ0NSw2ICsyNDYxLDEyIEBAIHZhY3V1 bV9kZWxheV9wb2ludChib29sIGlzX2FuYWx5emUpCiAJCUNvbmZpZ1JlbG9hZFBlbmRpbmcgPSBm YWxzZTsKIAkJUHJvY2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hVUCk7CiAJCVZhY3V1bVVwZGF0ZUNv c3RzKCk7CisKKwkJLyoKKwkJICogSWYgd2UgYXJlIHBhcmFsbGVsIGF1dG92YWN1dW0gbGVhZGVy IGFuZCBzb21lIG9mIGNvc3QtYmFzZWQKKwkJICogcGFyYW1ldGVycyBoYWQgY2hhbmdlZCwgbGV0 IG90aGVyIHBhcmFsbGVsIHdvcmtlcnMga25vdy4KKwkJICovCisJCXBhcmFsbGVsX3ZhY3V1bV9w cm9wYWdhdGVfY29zdF9iYXNlZF9wYXJhbXMoKTsKIAl9CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggYzJmMGEzN2VlZjIuLjA2ZWNmZmVlYzQyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMKQEAgLTU0LDYgKzU0LDIyIEBACiAjZGVmaW5l IFBBUkFMTEVMX1ZBQ1VVTV9LRVlfV0FMX1VTQUdFCQk0CiAjZGVmaW5lIFBBUkFMTEVMX1ZBQ1VV TV9LRVlfSU5ERVhfU1RBVFMJCTUKIAorLyoKKyAqIE9ubHkgYXV0b3ZhY3V1bSBsZWFkZXIgY2Fu IHJlbG9hZCBjb25maWcgZmlsZS4gV2UgdXNlIHRoaXMgc3RydWN0dXJlIGluCisgKiBwYXJhbGxl bCBhdXRvdmFjdXVtIGZvciBrZWVwaW5nIHdvcmtlcidzIHBhcmFtZXRlcnMgaW4gc3luYyB3aXRo IGxlYWRlcidzCisgKiBwYXJhbWV0ZXJzLgorICovCit0eXBlZGVmIHN0cnVjdCBQVlNoYXJlZENv c3RQYXJhbXMKK3sKKwlzbG9ja190CQlzcGlubG9jazsgLyogcHJvdGVjdHMgYWxsIGZpZWxkcyBi ZWxvdyAqLworCisJLyogQ29waWVzIG9mIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVycyBmcm9tIGF1 dG92YWN1dW0gbGVhZGVyIHByb2Nlc3MgKi8KKwlkb3VibGUJY29zdF9kZWxheTsKKwlpbnQJCWNv c3RfbGltaXQ7Cit9CQlQVlNoYXJlZENvc3RQYXJhbXM7CisKK3N0YXRpYyBQVlNoYXJlZENvc3RQ YXJhbXMgKnB2X3NoYXJlZF9jb3N0X3BhcmFtcyA9IE5VTEw7CisKIC8qCiAgKiBTaGFyZWQgaW5m b3JtYXRpb24gYW1vbmcgcGFyYWxsZWwgd29ya2Vycy4gIFNvIHRoaXMgaXMgYWxsb2NhdGVkIGlu IHRoZSBEU00KICAqIHNlZ21lbnQuCkBAIC0xMjMsNiArMTM5LDE4IEBAIHR5cGVkZWYgc3RydWN0 IFBWU2hhcmVkCiAKIAkvKiBTdGF0aXN0aWNzIG9mIHNoYXJlZCBkZWFkIGl0ZW1zICovCiAJVmFj RGVhZEl0ZW1zSW5mbyBkZWFkX2l0ZW1zX2luZm87CisKKwkvKgorCSAqIElmICd0cnVlJyB0aGVu IHdlIGFyZSBydW5uaW5nIHBhcmFsbGVsIGF1dG92YWN1dW0uIE90aGVyd2lzZSwgd2UgYXJlCisJ ICogcnVubmluZyBwYXJhbGxlbCBtYWludGVuZW5jZSBWQUNVVU0uCisJICovCisJYm9vbAlhbV9w YXJhbGxlbF9hdXRvdmFjdXVtOworCisJLyoKKwkgKiBTdHJ1Y3QgZm9yIHN5bmNpbmcgcGFyYW1l dGVycyBiZXR3ZWVuIHN1cHBvcnRpdmUgcGFyYWxsZWwgYXV0b3ZhY3V1bQorCSAqIHdvcmtlcnMg d2l0aCBsZWFkZXIgd29ya2VyLgorCSAqLworCVBWU2hhcmVkQ29zdFBhcmFtcwljb3N0X3BhcmFt czsKIH0gUFZTaGFyZWQ7CiAKIC8qIFN0YXR1cyB1c2VkIGR1cmluZyBwYXJhbGxlbCBpbmRleCB2 YWN1dW0gb3IgY2xlYW51cCAqLwpAQCAtMzk2LDYgKzQyNCwxNyBAQCBwYXJhbGxlbF92YWN1dW1f aW5pdChSZWxhdGlvbiByZWwsIFJlbGF0aW9uICppbmRyZWxzLCBpbnQgbmluZGV4ZXMsCiAJcGdf YXRvbWljX2luaXRfdTMyKCYoc2hhcmVkLT5hY3RpdmVfbndvcmtlcnMpLCAwKTsKIAlwZ19hdG9t aWNfaW5pdF91MzIoJihzaGFyZWQtPmlkeCksIDApOwogCisJc2hhcmVkLT5hbV9wYXJhbGxlbF9h dXRvdmFjdXVtID0gQW1BdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpOworCisJaWYgKHNoYXJlZC0+ YW1fcGFyYWxsZWxfYXV0b3ZhY3V1bSkKKwl7CisJCXNoYXJlZC0+Y29zdF9wYXJhbXMuY29zdF9k ZWxheSA9IHZhY3V1bV9jb3N0X2RlbGF5OworCQlzaGFyZWQtPmNvc3RfcGFyYW1zLmNvc3RfbGlt aXQgPSB2YWN1dW1fY29zdF9saW1pdDsKKwkJU3BpbkxvY2tJbml0KCZzaGFyZWQtPmNvc3RfcGFy YW1zLnNwaW5sb2NrKTsKKworCQlwdl9zaGFyZWRfY29zdF9wYXJhbXMgPSAmKHNoYXJlZC0+Y29z dF9wYXJhbXMpOworCX0KKwogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfVkFD VVVNX0tFWV9TSEFSRUQsIHNoYXJlZCk7CiAJcHZzLT5zaGFyZWQgPSBzaGFyZWQ7CiAKQEAgLTUz OCw2ICs1NzcsNTMgQEAgcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxs ZWxWYWN1dW1TdGF0ZSAqcHZzLCBsb25nIG51bV90YWJsZV90dXAKIAlwYXJhbGxlbF92YWN1dW1f cHJvY2Vzc19hbGxfaW5kZXhlcyhwdnMsIG51bV9pbmRleF9zY2FucywgZmFsc2UsIHd1c2FnZSk7 CiB9CiAKKy8qCisgKiBGdW5jdGlvbiB0byBiZSBjYWxsZWQgZnJvbSBwYXJhbGxlbCBhdXRvdmFj dXVtIHdvcmtlciBpbiBvcmRlciB0byBzeW5jCisgKiBzb21lIGNvc3QtYmFzZWQgZGVsYXkgcGFy YW1ldGVyIHdpdGggdGhlIGxlYWRlciB3b3JrZXIuCisgKi8KK2Jvb2wKK3BhcmFsbGVsX3ZhY3V1 bV9maXhfY29zdF9iYXNlZF9wYXJhbXModm9pZCkKK3sKKwkvKiBDaGVjayB3aGV0aGVyIHdlIGFy ZSBydW5uaW5nIHBhcmFsbGVsIGF1dG92YWN1dW0gKi8KKwlpZiAocHZfc2hhcmVkX2Nvc3RfcGFy YW1zID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCUFzc2VydChJc1BhcmFsbGVsV29ya2Vy KCkgJiYgIUFtQXV0b1ZhY3V1bVdvcmtlclByb2Nlc3MoKSk7CisKKwlTcGluTG9ja0FjcXVpcmUo JnB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+c3BpbmxvY2spOworCisJdmFjdXVtX2Nvc3RfZGVsYXkg PSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfZGVsYXk7CisJdmFjdXVtX2Nvc3RfbGltaXQg PSBwdl9zaGFyZWRfY29zdF9wYXJhbXMtPmNvc3RfbGltaXQ7CisKKwlTcGluTG9ja1JlbGVhc2Uo JnB2X3NoYXJlZF9jb3N0X3BhcmFtcy0+c3BpbmxvY2spOworCisJaWYgKHZhY3V1bV9jb3N0X2Rl bGF5ID4gMCAmJiAhVmFjdXVtRmFpbHNhZmVBY3RpdmUpCisJCVZhY3V1bUNvc3RBY3RpdmUgPSB0 cnVlOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBGdW5jdGlvbiB0byBiZSBjYWxsZWQg ZnJvbSBwYXJhbGxlbCBhdXRvdmFjdXVtIGxlYWRlciBpbiBvcmRlciB0byBwcm9wYWdhdGUKKyAq IHNvbWUgY29zdC1iYXNlZCBwYXJhbWV0ZXJzIHRvIHRoZSBzdXBwb3J0aXZlIHdvcmtlcnMuCisg Ki8KK3ZvaWQKK3BhcmFsbGVsX3ZhY3V1bV9wcm9wYWdhdGVfY29zdF9iYXNlZF9wYXJhbXModm9p ZCkKK3sKKwkvKiBDaGVjayB3aGV0aGVyIHdlIGFyZSBydW5uaW5nIHBhcmFsbGVsIGF1dG92YWN1 dW0gKi8KKwlpZiAocHZfc2hhcmVkX2Nvc3RfcGFyYW1zID09IE5VTEwpCisJCXJldHVybjsKKwor CUFzc2VydChBbUF1dG9WYWN1dW1Xb3JrZXJQcm9jZXNzKCkpOworCisJU3BpbkxvY2tBY3F1aXJl KCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPnNwaW5sb2NrKTsKKworCXB2X3NoYXJlZF9jb3N0X3Bh cmFtcy0+Y29zdF9kZWxheSA9IHZhY3V1bV9jb3N0X2RlbGF5OworCXB2X3NoYXJlZF9jb3N0X3Bh cmFtcy0+Y29zdF9saW1pdCA9IHZhY3V1bV9jb3N0X2xpbWl0OworCisJU3BpbkxvY2tSZWxlYXNl KCZwdl9zaGFyZWRfY29zdF9wYXJhbXMtPnNwaW5sb2NrKTsKK30KKwogLyoKICAqIENvbXB1dGUg dGhlIG51bWJlciBvZiBwYXJhbGxlbCB3b3JrZXIgcHJvY2Vzc2VzIHRvIHJlcXVlc3QuICBCb3Ro IGluZGV4CiAgKiB2YWN1dW0gYW5kIGluZGV4IGNsZWFudXAgY2FuIGJlIGV4ZWN1dGVkIHdpdGgg cGFyYWxsZWwgd29ya2Vycy4KQEAgLTc2MywxMiArODQ5LDI2IEBAIHBhcmFsbGVsX3ZhY3V1bV9w cm9jZXNzX2FsbF9pbmRleGVzKFBhcmFsbGVsVmFjdXVtU3RhdGUgKnB2cywgaW50IG51bV9pbmRl eF9zY2FuCiAJLyogVmFjdXVtIHRoZSBpbmRleGVzIHRoYXQgY2FuIGJlIHByb2Nlc3NlZCBieSBv bmx5IGxlYWRlciBwcm9jZXNzICovCiAJcGFyYWxsZWxfdmFjdXVtX3Byb2Nlc3NfdW5zYWZlX2lu ZGV4ZXMocHZzKTsKIAorCS8qCisJICogVG8gYmUgYWJsZSB0byBleGVyY2lzZSB3aGV0aGVyIGxl YWRlciBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtlciBjYW4KKwkgKiBwcm9wYWdhdGUgY29zdC1i YXNlZCBwYXJhbXMgdG8gcGFyYWxsZWwgd29ya2Vycywgd2FpdCBoZXJlIHVudGlsCisJICogY29u ZmlndXJhdGlvbiBpcyBjaGFuZ2VkLi4uCisJICovCisJSU5KRUNUSU9OX1BPSU5UKCJhdi1sZWFk ZXItYmVmb3JlLXJlbG9hZC1jb25mIiwgTlVMTCk7CisKIAkvKgogCSAqIEpvaW4gYXMgYSBwYXJh bGxlbCB3b3JrZXIuICBUaGUgbGVhZGVyIHZhY3V1bXMgYWxvbmUgcHJvY2Vzc2VzIGFsbAogCSAq IHBhcmFsbGVsLXNhZmUgaW5kZXhlcyBpbiB0aGUgY2FzZSB3aGVyZSBubyB3b3JrZXJzIGFyZSBs YXVuY2hlZC4KIAkgKi8KIAlwYXJhbGxlbF92YWN1dW1fcHJvY2Vzc19zYWZlX2luZGV4ZXMocHZz KTsKIAorCS8qCisJICogLi4uYW5kIHRoZW4gd2FpdCB1bnRpbCBsZWFkZXIgZ3VhcmFudGVlZCB0 byBwcm9wYWdhdGUgbmV3IHBhcmFtZXRlcnMKKwkgKiB2YWx1ZXMgdG8gdGhlIHdvcmtlcnMuIEku ZS4gdGVzdHMgYXJlIGV4cGVjdGluZywgdGhhdCBkdXJpbmcgcHJvY2Vzc2luZworCSAqIG9mIHBh cmFsbGVsIHNhZmUgaW5kZXggd2UgaGF2ZSBjYWxsZWQgdmFjdXVtX2RlbGF5X3BvaW50LAorCSAq LworCUlOSkVDVElPTl9QT0lOVCgiYXYtbGVhZGVyLWFmdGVyLXJlbG9hZC1jb25mIiwgTlVMTCk7 CisKIAkvKgogCSAqIE5leHQsIGFjY3VtdWxhdGUgYnVmZmVyIGFuZCBXQUwgdXNhZ2UuICAoVGhp cyBtdXN0IHdhaXQgZm9yIHRoZSB3b3JrZXJzCiAJICogdG8gZmluaXNoLCBvciB3ZSBtaWdodCBn ZXQgaW5jb21wbGV0ZSBkYXRhLikKQEAgLTExMDQsNiArMTIwNCw5IEBAIHBhcmFsbGVsX3ZhY3V1 bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAlWYWN1dW1TaGFyZWRDb3N0 QmFsYW5jZSA9ICYoc2hhcmVkLT5jb3N0X2JhbGFuY2UpOwogCVZhY3V1bUFjdGl2ZU5Xb3JrZXJz ID0gJihzaGFyZWQtPmFjdGl2ZV9ud29ya2Vycyk7CiAKKwlpZiAoc2hhcmVkLT5hbV9wYXJhbGxl bF9hdXRvdmFjdXVtKQorCQlwdl9zaGFyZWRfY29zdF9wYXJhbXMgPSAmKHNoYXJlZC0+Y29zdF9w YXJhbXMpOworCiAJLyogU2V0IHBhcmFsbGVsIHZhY3V1bSBzdGF0ZSAqLwogCXB2cy5pbmRyZWxz ID0gaW5kcmVsczsKIAlwdnMubmluZGV4ZXMgPSBuaW5kZXhlczsKQEAgLTExMzEsNiArMTIzNCwz MyBAQCBwYXJhbGxlbF92YWN1dW1fbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2Mp CiAJLyogUHJlcGFyZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1 dGlvbiAqLwogCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CiAKKyNpZmRlZiBVU0VfSU5KRUNU SU9OX1BPSU5UUworCWlmIChzaGFyZWQtPmFtX3BhcmFsbGVsX2F1dG92YWN1dW0pCisJeworCQlB c3NlcnQoVmFjdXVtQWN0aXZlTldvcmtlcnMgIT0gTlVMTCk7CisKKwkJLyoKKwkJICogVG8gYmUg YWJsZSB0byBleGVyY2lzZSB3aGV0aGVyIGxlYWRlciBwYXJhbGxlbCBhdXRvdmFjdXVtIHdvcmtl ciBjYW4KKwkJICogcHJvcGFnYXRlIGNvc3QtYmFzZWQgcGFyYW1zIHRvIHBhcmFsbGVsIHdvcmtl cnMsIHdhaXQgaGVyZSB1bnRpbAorCQkgKiBjb25maWd1cmF0aW9uIGlzIGNoYW5nZWQgYW5kIGxl YWRlciB3b3JrZXJzIGhhZCB1cGRhdGVkIHNoYXJlZCBzdGF0ZS4KKwkJICovCisJCUlOSkVDVElP Tl9QT0lOVCgiYXYtd29ya2VyLWJlZm9yZS1yZWxvYWQtY29uZiIsIE5VTEwpOworCisJCS8qIFNp bXVsYXRlIGNvbmZpZyByZWxvYWQgZHVyaW5nIG5vcm1hbCBwcm9jZXNzaW5nICovCisJCXBnX2F0 b21pY19hZGRfZmV0Y2hfdTMyKFZhY3V1bUFjdGl2ZU5Xb3JrZXJzLCAxKTsKKwkJdmFjdXVtX2Rl bGF5X3BvaW50KGZhbHNlKTsKKwkJcGdfYXRvbWljX3N1Yl9mZXRjaF91MzIoVmFjdXVtQWN0aXZl TldvcmtlcnMsIDEpOworCisJCS8qCisJCSAqIFdhaXQgdW50aWwgd29ya2VyIGd1YXJhbnRlZWQg dG8gY29uc3VtZSBuZXcgcGFyYW1ldGVycyB2YWx1ZXMgZnJvbQorCQkgKiB0aGUgbGVhZGVyIGFu ZCBzYXZlIG5ldyB2YWx1ZSBpbiBpbmplY3Rpb24gcG9pbnQgc3RhdGUuCisJCSAqLworCQlJTkpF Q1RJT05fUE9JTlQoImF1dG92YWN1dW0tc2V0LWNvc3QtYmFzZWQtcGFyYW1ldGVyIiwKKwkJCQkJ CSZ2YWN1dW1fY29zdF9kZWxheSk7CisJCUlOSkVDVElPTl9QT0lOVCgiYXYtd29ya2VyLWFmdGVy LXJlbG9hZC1jb25mIiwgTlVMTCk7CisJfQorI2VuZGlmCisKIAkvKiBQcm9jZXNzIGluZGV4ZXMg dG8gcGVyZm9ybSB2YWN1dW0vY2xlYW51cCAqLwogCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3Nh ZmVfaW5kZXhlcygmcHZzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdmFj dXVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy92YWN1dW0uaAppbmRleCBlYzVkNzBhYWNkYy4u NzMxMjU0MzliZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3ZhY3V1bS5oCkBAIC00MTEsNiArNDExLDggQEAgZXh0 ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX2NsZWFudXBfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1 dW1TdGF0ZSAqcHZzLAogCQkJCQkJCQkJCQkJaW50IG51bV9pbmRleF9zY2FucywKIAkJCQkJCQkJ CQkJCWJvb2wgZXN0aW1hdGVkX2NvdW50LAogCQkJCQkJCQkJCQkJUFZXb3JrZXJzVXNhZ2UgKnd1 c2FnZSk7CitleHRlcm4gYm9vbCBwYXJhbGxlbF92YWN1dW1fZml4X2Nvc3RfYmFzZWRfcGFyYW1z KHZvaWQpOworZXh0ZXJuIHZvaWQgcGFyYWxsZWxfdmFjdXVtX3Byb3BhZ2F0ZV9jb3N0X2Jhc2Vk X3BhcmFtcyh2b2lkKTsKIGV4dGVybiB2b2lkIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdt ZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKIC8qIGluIGNvbW1hbmRzL2FuYWx5emUuYyAqLwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vTWFrZWZpbGUgYi9z cmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS9NYWtlZmlsZQppbmRleCA0Y2Y3MzQ0YjJh Yy4uMzIyNTRjNTNhNWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFj dXVtL01ha2VmaWxlCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL01ha2Vm aWxlCkBAIC0xMiw2ICsxMiw4IEBAIERBVEEgPSB0ZXN0X2F1dG92YWN1dW0tLTEuMC5zcWwKIAog VEFQX1RFU1RTID0gMQogCitFWFRSQV9JTlNUQUxMID0gc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rp b25fcG9pbnRzCisKIGV4cG9ydCBlbmFibGVfaW5qZWN0aW9uX3BvaW50cwogCiBpZmRlZiBVU0Vf UEdYUwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdC8wMDFf YmFzaWMucGwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90LzAwMV9iYXNpYy5w bAppbmRleCA4YmYxNTNkMTMyYy4uZWVjMGY0MWI2YTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX2Jhc2ljLnBsCisrKyBiL3NyYy90ZXN0L21vZHVs ZXMvdGVzdF9hdXRvdmFjdXVtL3QvMDAxX2Jhc2ljLnBsCkBAIC0yOCw2ICsyOCwxMSBAQCAkbm9k ZS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsIHFxewogfSk7CiAkbm9kZS0+c3RhcnQ7 CiAKK2lmICghJG5vZGUtPmNoZWNrX2V4dGVuc2lvbignaW5qZWN0aW9uX3BvaW50cycpKQorewor CXBsYW4gc2tpcF9hbGwgPT4gJ0V4dGVuc2lvbiBpbmplY3Rpb25fcG9pbnRzIG5vdCBpbnN0YWxs ZWQnOworfQorCiBteSAkaW5kZXhlc19udW0gPSA0OwogbXkgJGluaXRpYWxfcm93c19udW0gPSAx MF8wMDA7CiBteSAkYXV0b3ZhY3V1bV9wYXJhbGxlbF93b3JrZXJzID0gMjsKQEAgLTczLDYgKzc4 LDkgQEAgJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKIAlDUkVBVEUgRVhURU5TSU9O IHRlc3RfYXV0b3ZhY3V1bTsKIAlTRUxFQ1QgaW5qX3NldF9mcmVlX3dvcmtlcnNfYXR0YWNoKCk7 CiAJU0VMRUNUIGlual9sZWFkZXJfZmFpbHVyZV9hdHRhY2goKTsKKwlTRUxFQ1QgaW5qX2NoZWNr X2F2X3BhcmFtX2F0dGFjaCgpOworCisJQ1JFQVRFIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRz OwogfSk7CiAKICMgVGVzdCAxIDoKQEAgLTE2Niw1ICsxNzQsODAgQEAgJG5vZGUtPnNhZmVfcHNx bCgncG9zdGdyZXMnLCBxcXsKIAlTRUxFQ1QgaW5qX2xlYWRlcl9mYWlsdXJlX2RldGFjaCgpOwog fSk7CiAKKyMgVGVzdCA0OgorIyBDaGVjayB3aGV0aGVyIHBhcmFsbGVsIGF1dG92YWN1dW0gbGVh ZGVyIGNhbiBwcm9wYWdhdGUgY29zdC1iYXNlZCBwYXJhbWV0ZXJzCisjIHRvIHBhcmFsbGVsIHdv cmtlcnMuCisKKyMgRGlzYWJsZSBhdXRvdmFjdXVtIG9uIHRhYmxlIGR1cmluZyBwcmVwYXJhdGlv biBmb3IgdGhlIG5leHQgdGVzdAorJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlB TFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSBmYWxzZSk7 Cit9KTsKKworIyBDcmVhdGUgbW9yZSBkZWFkIHR1cGxlcworJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxcXsKKwlVUERBVEUgdGVzdF9hdXRvdmFjIFNFVCBjb2xfMyA9IDAgV0hFUkUgKGNv bF80ICUgMykgPSAwOworCUFOQUxZWkUgdGVzdF9hdXRvdmFjOworfSk7CisKKyRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXF7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdh di1sZWFkZXItYmVmb3JlLXJlbG9hZC1jb25mJywgJ3dhaXQnKTsKKwlTRUxFQ1QgaW5qZWN0aW9u X3BvaW50c19hdHRhY2goJ2F2LWxlYWRlci1hZnRlci1yZWxvYWQtY29uZicsICd3YWl0Jyk7CisJ U0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdhdi13b3JrZXItYmVmb3JlLXJlbG9hZC1j b25mJywgJ3dhaXQnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2F2LXdvcmtl ci1hZnRlci1yZWxvYWQtY29uZicsICd3YWl0Jyk7Cit9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCBxcXsKKwlBTFRFUiBUQUJMRSB0ZXN0X2F1dG92YWMgU0VUIChhdXRvdmFjdXVt X2VuYWJsZWQgPSB0cnVlKTsKK30pOworCisjIFdhaXQgdW50aWwgbGVhZGVyIHBhcmFsbGVsIHdv cmtlciBnZXQgdG8gdGhlIHBvaW50IGJlZm9yZSB2YWN1dW1fZGVsYXlfcG9pbnQKKyMgYW5kIGNo YW5nZSBjb3N0LWJhc2VkIGNvbmZpZyBwYXJhbWV0ZXIuCisKKyRub2RlLT53YWl0X2Zvcl9ldmVu dCgnYXV0b3ZhY3V1bSB3b3JrZXInLCAnYXYtbGVhZGVyLWJlZm9yZS1yZWxvYWQtY29uZicpOwor JG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywgcXF7CisJQUxURVIgU1lTVEVNIFNFVCBhdXRvdmFjdXVt X3ZhY3V1bV9jb3N0X2RlbGF5ID0gMTA7CisJU0VMRUNUIHBnX3JlbG9hZF9jb25mKCk7Cit9KTsK KyRub2RlLT5wc3FsKCdwb3N0Z3JlcycsIHFxeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dh a2V1cCgnYXYtbGVhZGVyLWJlZm9yZS1yZWxvYWQtY29uZicpOworfSk7CisKKyMgV2FpdCB1bnRp bCBsZWFkZXIgd29ya2VyIHByb3BhZ2F0ZXMgbmV3IHBhdGFtZXRlcidzIHZhbHVlIHRvIHRoZSBv dGhlcgorIyB3b3JrZXJzIGFuZCBsZXQgdGhlbSB0byBjYWxsIHZhY3V1bV9kZWxheV9wb2ludAor Ciskbm9kZS0+d2FpdF9mb3JfZXZlbnQoJ2F1dG92YWN1dW0gd29ya2VyJywgJ2F2LWxlYWRlci1h ZnRlci1yZWxvYWQtY29uZicpOworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKKwlT RUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2F2LWxlYWRlci1hZnRlci1yZWxvYWQtY29u ZicpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnYXYtd29ya2VyLWJlZm9yZS1y ZWxvYWQtY29uZicpOworfSk7CisKKyMgQ2hlY2sgd2hldGhlciBwYXJhbGxlbCB3b3JrZXIgaGFz IGNvbnN1bWUgbmV3IHBhcmFtZXRlcidzIHZhbHVlIGZyb20gdGhlCisjIGxlYWRlci4KKyMgQWFj dHVhbGx5LCBpdCBjYW4gaGFwcGVuIGJlZm9yZSB3b3JrZXIgZ2V0cyB0byB0aGUgaW5qZWN0aW9u IHBvaW50LCBidXQgd2UKKyMgd2FudCB0byBtYWtlIGV2ZXJ5dGhpbmcgYXMgZGV0ZXJtaW5pc3Rp YyBhcyBwb3NzaWJsZS4KKworJG5vZGUtPndhaXRfZm9yX2V2ZW50KCdwYXJhbGxlbCB3b3JrZXIn LCAnYXYtd29ya2VyLWFmdGVyLXJlbG9hZC1jb25mJyk7Ciskbm9kZS0+cHNxbCgncG9zdGdyZXMn LAorCSJTRUxFQ1QgZ2V0X3BhcmFsbGVsX2F1dG92YWN1dW1fd29ya2VyX3BhcmFtX3ZhbHVlKCd2 YWN1dW1fY29zdF9kZWxheScpOyIsCisJc3Rkb3V0ID0+IFwkcHNxbF9vdXQsCispOworaXMoJHBz cWxfb3V0LCAxMC4wLCAnTGVhZGVyIHN1Y2Nlc3NmdWxseSBwcm9wYWdhdGVkIHBhcmFtZXRlciB2 YWx1ZScpOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCVNFTEVDVCBpbmpl Y3Rpb25fcG9pbnRzX3dha2V1cCgnYXYtd29ya2VyLWFmdGVyLXJlbG9hZC1jb25mJyk7Cit9KTsK KworIyBDbGVhbnVwCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworCVNFTEVDVCBp bmplY3Rpb25fcG9pbnRzX2RldGFjaCgnYXYtbGVhZGVyLWJlZm9yZS1yZWxvYWQtY29uZicpOwor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnYXYtbGVhZGVyLWFmdGVyLXJlbG9hZC1j b25mJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdhdi13b3JrZXItYmVmb3Jl LXJlbG9hZC1jb25mJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdhdi13b3Jr ZXItYWZ0ZXItcmVsb2FkLWNvbmYnKTsKKwlTRUxFQ1QgaW5qX2NoZWNrX2F2X3BhcmFtX2RldGFj aCgpOworCisJRFJPUCBFWFRFTlNJT04gdGVzdF9hdXRvdmFjdXVtOworCURST1AgRVhURU5TSU9O IGluamVjdGlvbl9wb2ludHM7Cit9KTsKKwogJG5vZGUtPnN0b3A7CiBkb25lX3Rlc3RpbmcoKTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3Zh Y3V1bS0tMS4wLnNxbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0 b3ZhY3V1bS0tMS4wLnNxbAppbmRleCAwMTdkNWRhODVlYS4uY2IwNDA3OTUyZDcgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1bS0tMS4w LnNxbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92YWN1 dW0tLTEuMC5zcWwKQEAgLTE0LDYgKzE0LDEwIEBAIENSRUFURSBGVU5DVElPTiB0cmlnZ2VyX2xl YWRlcl9mYWlsdXJlKGZhaWx1cmVfdHlwZSB0ZXh0KQogUkVUVVJOUyBWT0lEIFNUUklDVAogQVMg J01PRFVMRV9QQVRITkFNRScgTEFOR1VBR0UgQzsKIAorQ1JFQVRFIEZVTkNUSU9OIGdldF9wYXJh bGxlbF9hdXRvdmFjdXVtX3dvcmtlcl9wYXJhbV92YWx1ZShwYXJhbV9uYW1lIHRleHQpCitSRVRV Uk5TIEZMT0FUOCBTVFJJQ1QKK0FTICdNT0RVTEVfUEFUSE5BTUUnIExBTkdVQUdFIEM7CisKIC8q CiAgKiBJbmplY3Rpb24gcG9pbnQgcmVsYXRlZCBmdW5jdGlvbnMKICAqLwpAQCAtMzIsMyArMzYs MTEgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScgTEFOR1VBR0UgQzsKIENSRUFURSBGVU5DVElPTiBp bmpfbGVhZGVyX2ZhaWx1cmVfZGV0YWNoKCkKIFJFVFVSTlMgVk9JRCBTVFJJQ1QKIEFTICdNT0RV TEVfUEFUSE5BTUUnIExBTkdVQUdFIEM7CisKK0NSRUFURSBGVU5DVElPTiBpbmpfY2hlY2tfYXZf cGFyYW1fYXR0YWNoKCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdNT0RVTEVfUEFUSE5BTUUn IExBTkdVQUdFIEM7CisKK0NSRUFURSBGVU5DVElPTiBpbmpfY2hlY2tfYXZfcGFyYW1fZGV0YWNo KCkKK1JFVFVSTlMgVk9JRCBTVFJJQ1QKK0FTICdNT0RVTEVfUEFUSE5BTUUnIExBTkdVQUdFIEM7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYXV0b3ZhY3V1bS90ZXN0X2F1dG92 YWN1dW0uYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9hdXRvdmFjdXVtL3Rlc3RfYXV0b3ZhY3V1 bS5jCmluZGV4IDc5NDhmNDg1OGFlLi5lOTZjZmRhN2FlOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLmMKKysrIGIvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2F1dG92YWN1dW0vdGVzdF9hdXRvdmFjdXVtLmMKQEAgLTM4LDYgKzM4LDkg QEAgdHlwZWRlZiBzdHJ1Y3QgSW5qUG9pbnRTdGF0ZQogCiAJYm9vbAkJZW5hYmxlZF9sZWFkZXJf ZmFpbHVyZTsKIAlBVkxlYWRlckZhdWx1cmVUeXBlIGZ0eXBlOworCisJYm9vbAkJZW5hYmxlZF9j aGVja19hdl9wYXJhbTsKKwlkb3VibGUJCXZhY3V1bV9jb3N0X2RlbGF5OwogfQkJCUlualBvaW50 U3RhdGU7CiAKIHN0YXRpYyBJbmpQb2ludFN0YXRlICogaW5qX3BvaW50X3N0YXRlOwpAQCAtOTIs NiArOTUsMTIgQEAgdGVzdF9hdXRvdmFjdXVtX3NobWVtX3N0YXJ0dXAodm9pZCkKIAkJCQkJCQkg Imlual90cmlnZ2VyX2xlYWRlcl9mYWlsdXJlIiwKIAkJCQkJCQkgTlVMTCwKIAkJCQkJCQkgMCk7 CisKKwkJSW5qZWN0aW9uUG9pbnRBdHRhY2goImF1dG92YWN1dW0tc2V0LWNvc3QtYmFzZWQtcGFy YW1ldGVyIiwKKwkJCQkJCQkgInRlc3RfYXV0b3ZhY3V1bSIsCisJCQkJCQkJICJpbmpfc2V0X2F2 X3BhcmFtZXRlciIsCisJCQkJCQkJIE5VTEwsCisJCQkJCQkJIDApOwogCX0KIAogCUxXTG9ja1Jl bGVhc2UoQWRkaW5TaG1lbUluaXRMb2NrKTsKQEAgLTEwOSw2ICsxMTgsOSBAQCBfUEdfaW5pdCh2 b2lkKQogCXNobWVtX3N0YXJ0dXBfaG9vayA9IHRlc3RfYXV0b3ZhY3V1bV9zaG1lbV9zdGFydHVw OwogfQogCitleHRlcm4gUEdETExFWFBPUlQgdm9pZCBpbmpfc2V0X2F2X3BhcmFtZXRlcihjb25z dCBjaGFyICpuYW1lLAorCQkJCQkJCQkJCQkgY29uc3Qgdm9pZCAqcHJpdmF0ZV9kYXRhLAorCQkJ CQkJCQkJCQkgdm9pZCAqYXJnKTsKIGV4dGVybiBQR0RMTEVYUE9SVCB2b2lkIGlual9zZXRfZnJl ZV93b3JrZXJzKGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCQkJCQkJCSBjb25zdCB2b2lkICpwcml2 YXRlX2RhdGEsCiAJCQkJCQkJCQkJCSB2b2lkICphcmcpOwpAQCAtMjA1LDYgKzIxNyw0NSBAQCB0 cmlnZ2VyX2xlYWRlcl9mYWlsdXJlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUEdfUkVUVVJOX1ZPSUQo KTsKIH0KIAorLyoKKyAqIFNldCBjdXJyZW50IHNldHRpbmcgb2YgInZhY3V1bV9jb3N0X2RlbGF5 IiBwYXJhbWV0ZXIuCisgKgorICogRnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gcGFyYWxsZWwgYXV0 b3ZhY3V1bSB3b3JrZXIuCisgKi8KK3ZvaWQKK2lual9zZXRfYXZfcGFyYW1ldGVyKGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IHZvaWQgKnByaXZhdGVfZGF0YSwgdm9pZCAqYXJnKQoreworCWVyZXBv cnQoTE9HLAorCQkJZXJybXNnKCJzZXQgYXV0b3ZhY3V1bSBwYXJhbWV0ZXIgaW5qZWN0aW9uIHBv aW50IGNhbGxlZCIpLAorCQkJZXJyaGlkZXN0bXQodHJ1ZSksIGVycmhpZGVjb250ZXh0KHRydWUp KTsKKworCWlmIChpbmpfcG9pbnRfc3RhdGUtPmVuYWJsZWRfY2hlY2tfYXZfcGFyYW0pCisJewor CQlBc3NlcnQoYXJnICE9IE5VTEwpOworCQlpbmpfcG9pbnRfc3RhdGUtPnZhY3V1bV9jb3N0X2Rl bGF5ID0gKihkb3VibGUgKikgYXJnOworCX0KK30KKworUEdfRlVOQ1RJT05fSU5GT19WMShnZXRf cGFyYWxsZWxfYXV0b3ZhY3V1bV93b3JrZXJfcGFyYW1fdmFsdWUpOworRGF0dW0KK2dldF9wYXJh bGxlbF9hdXRvdmFjdXVtX3dvcmtlcl9wYXJhbV92YWx1ZShQR19GVU5DVElPTl9BUkdTKQorewor CWNvbnN0IGNoYXIgKnBhcmFtX25hbWUgPSB0ZXh0X3RvX2NzdHJpbmcoUEdfR0VUQVJHX1RFWFRf UFAoMCkpOworCWRvdWJsZQkJdmFsdWUgPSAwLjA7CisKKyNpZm5kZWYgVVNFX0lOSkVDVElPTl9Q T0lOVFMKKwllbG9nKEVSUk9SLCAiaW5qZWN0aW9uIHBvaW50cyBub3Qgc3VwcG9ydGVkIik7Cisj ZW5kaWYKKworCWlmIChzdHJjbXAocGFyYW1fbmFtZSwgInZhY3V1bV9jb3N0X2RlbGF5IikgPT0g MCkKKwkJdmFsdWUgPSBpbmpfcG9pbnRfc3RhdGUtPnZhY3V1bV9jb3N0X2RlbGF5OworCWVsc2UK KwkJZWxvZyhFUlJPUiwKKwkJCSAiY2Fubm90IHJldHJpZXZlIHBhcmFtZXRlciAlcyBmcm9tIGlu amVjdGlvbiBwb2ludCIsIHBhcmFtX25hbWUpOworCisJUEdfUkVUVVJOX0ZMT0FUOCgoZmxvYXQ4 KSB2YWx1ZSk7Cit9CisKIFBHX0ZVTkNUSU9OX0lORk9fVjEoaW5qX3NldF9mcmVlX3dvcmtlcnNf YXR0YWNoKTsKIERhdHVtCiBpbmpfc2V0X2ZyZWVfd29ya2Vyc19hdHRhY2goUEdfRlVOQ1RJT05f QVJHUykKQEAgLTI1MywzICszMDQsMjcgQEAgaW5qX2xlYWRlcl9mYWlsdXJlX2RldGFjaChQR19G VU5DVElPTl9BUkdTKQogI2VuZGlmCiAJUEdfUkVUVVJOX1ZPSUQoKTsKIH0KKworUEdfRlVOQ1RJ T05fSU5GT19WMShpbmpfY2hlY2tfYXZfcGFyYW1fYXR0YWNoKTsKK0RhdHVtCitpbmpfY2hlY2tf YXZfcGFyYW1fYXR0YWNoKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisjaWZkZWYgVVNFX0lOSkVDVElP Tl9QT0lOVFMKKwlpbmpfcG9pbnRfc3RhdGUtPmVuYWJsZWRfY2hlY2tfYXZfcGFyYW0gPSB0cnVl OworI2Vsc2UKKwllbG9nKEVSUk9SLCAiaW5qZWN0aW9uIHBvaW50cyBub3Qgc3VwcG9ydGVkIik7 CisjZW5kaWYKKwlQR19SRVRVUk5fVk9JRCgpOworfQorCitQR19GVU5DVElPTl9JTkZPX1YxKGlu al9jaGVja19hdl9wYXJhbV9kZXRhY2gpOworRGF0dW0KK2lual9jaGVja19hdl9wYXJhbV9kZXRh Y2goUEdfRlVOQ1RJT05fQVJHUykKK3sKKyNpZmRlZiBVU0VfSU5KRUNUSU9OX1BPSU5UUworCWlu al9wb2ludF9zdGF0ZS0+ZW5hYmxlZF9jaGVja19hdl9wYXJhbSA9IGZhbHNlOworI2Vsc2UKKwll bG9nKEVSUk9SLCAiaW5qZWN0aW9uIHBvaW50cyBub3Qgc3VwcG9ydGVkIik7CisjZW5kaWYKKwlQ R19SRVRVUk5fVk9JRCgpOworfQotLSAKMi40My4wCgo= --000000000000d8318e0647c93bb7--