Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lPEQA-00038H-BD for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Mar 2021 01:04:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lPEQ8-0007hh-K2 for pgsql-hackers@arkaria.postgresql.org; Thu, 25 Mar 2021 01:04:20 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lPEQ8-0007hZ-7r for pgsql-hackers@lists.postgresql.org; Thu, 25 Mar 2021 01:04:20 +0000 Received: from mail-io1-xd2a.google.com ([2607:f8b0:4864:20::d2a]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lPEQ5-0007A3-Ga for pgsql-hackers@postgresql.org; Thu, 25 Mar 2021 01:04:19 +0000 Received: by mail-io1-xd2a.google.com with SMTP id k8so231476iop.12 for ; Wed, 24 Mar 2021 18:04:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5bTfxlMHE/fYP+ZFWTCDBH57KoJTyycFQvbjcyfAe4o=; b=GfjQ9oJMyiAhDXYMF4MX+gBql9D7aZbYQOqcz2UXx4PgtHs+asoGOy2HeMicqD8ss/ 0Y37YLpjEYwJzTRDifJ4IsFDal/nJQFMqLPLaTXXtHpjtLe9LGpiMGWR10CRGiW5LOCY X6PbuD6mjLacOd/htxJuXkKcf4+X/IVPyDmsjHzd4uTlE0Jt13S6Ix8seredlNEoEEaf 7yoZ8ynw1lk8aQAFwgZXxEFuxTmrEbnaw97RjqwAUxXpm36kTMjZUoKH7v6XwFLWMmiS G3aWyIuLgO5HWU5+ABxoZ+AKRB1n+GnQIat4XH3pugpS9eyAcKn8fV07wpQPKQaNz2JA vSLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5bTfxlMHE/fYP+ZFWTCDBH57KoJTyycFQvbjcyfAe4o=; b=XhVAGXXCd+D/QuuHlL2w/t7jCEStOEIXRsw1UjhVYfJ7WWqO69y44Q6LMQOIATn+oD 8YjddAEolK3a6PDwjrL+jn7Qcu6aydNbUhjmJbc+AFcXksmi7KBy0cdjdCfdV/GXRoU8 nv2kR1vCCa3xlkFxXSYvyfvTknOKNK8diCYO5tSaRZpH3xyqjwOGr60TrMbAO0Gshkmv zDTCD4QOZR/YCDHcWKuBjCQvvVYG0kCjkkACSlDtv33Cokscn52TJoyzz4u04tQWjByH SL5WsKZHL1ahfrFsID6bYmY5L9zyeMy4EwLAS2BUWXlhanZHvbNvlMWeKGGH+7/29Nvc xo0w== X-Gm-Message-State: AOAM531JQ4MdL3j2YRUXCarz58k1Z/k4YLrmceXZgOgoh+jNoMfV9zsb 5Rl+loQkabIz77TE4QjNrXFFAUpnozkf3Q40mho= X-Google-Smtp-Source: ABdhPJz37OLoAf6O56en3Z2dI0NTIpHy4Yxe9r/bybri65mfuHCT/koRmgL+A2SKMQfsnJmDtCOY9fUzXc+PDOHmQlU= X-Received: by 2002:a6b:8b16:: with SMTP id n22mr4544513iod.79.1616634255551; Wed, 24 Mar 2021 18:04:15 -0700 (PDT) MIME-Version: 1.0 References: <20201028013651.de5cj2xadgmba5nf@development> <13D8FD63-559A-4737-B7FD-05288D1CEF8B@yandex-team.ru> <20201028233243.ygm6yqlynkqpzekr@development> <43F3DE92-F236-4EA5-B4D6-39BEF6BD849D@yandex-team.ru> <20201029134933.xd4mh2cofuf6tdfz@development> <65C1B4BA-D16F-4939-978B-AC8F370F5A5E@yandex-team.ru> <9b4d17df-b811-8323-16be-3cab913216d1@enterprisedb.com> <35862787-8b4d-a290-789e-6e12dc6527e8@enterprisedb.com> <13F86913-C01B-4983-AE2E-493F5A028280@yandex-team.ru> <6ba7eae2-8b0c-0690-11a5-e921e6586180@darold.net> <3F5E23A3-6250-486E-9CCA-E2A5B6A28B4F@yandex-team.ru> <636f694a-4d69-d6d9-78d1-c88714f3e2e0@darold.net> <3319917a-679e-b07d-b194-473552b72082@darold.net> <1E3DD5BF-A54E-4203-86C5-94C9EFA0E095@yandex-team.ru> <04ae150b-6442-148a-bb23-77082f6fca1d@darold.net> <3768803E-4794-409D-88D2-C3EF7CA1B7FC@yandex-team.ru> In-Reply-To: From: Thomas Munro Date: Thu, 25 Mar 2021 14:03:38 +1300 Message-ID: Subject: Re: MultiXact\SLRU buffers configuration To: Andrey Borodin Cc: Gilles Darold , Tomas Vondra , Tomas Vondra , Alexander Korotkov , Anastasia Lubennikova , Daniel Gustafsson , Kyotaro Horiguchi , pgsql-hackers Content-Type: multipart/mixed; boundary="00000000000088dd4b05be51fe78" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000088dd4b05be51fe78 Content-Type: text/plain; charset="UTF-8" On Thu, Mar 25, 2021 at 10:31 AM Thomas Munro wrote: > We already know that increasing the number of CLOG buffers above the > current number hurts as the linear search begins to dominate > (according to the commit message for 5364b357), and it doesn't seem > great to ship a new feature that melts your CPU when you turn it up. > Perhaps, to ship this, we need to introduce a buffer mapping table? I > have attached a "one coffee" attempt at that, on top of your v10 patch > (unmodified), for discussion. It survives basic testing but I don't > know how it performs. Hrrr... Cfbot showed an assertion failure. Here's the two coffee version with a couple of silly mistakes fixed. --00000000000088dd4b05be51fe78 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0001-Make-all-SLRU-buffer-sizes-configurable.patch" Content-Disposition: attachment; filename="v11-0001-Make-all-SLRU-buffer-sizes-configurable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kmo63xml0 RnJvbSA0ODE3ZDE2Y2ZiNjcwNGQ0M2E3YmVmMTI2NDhlNzUzZDIzOWM4MDljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgQm9yb2RpbiA8YW1ib3JvZGluQGFjbS5vcmc+CkRh dGU6IE1vbiwgMTUgRmViIDIwMjEgMjE6NTE6NTYgKzA1MDAKU3ViamVjdDogW1BBVENIIHYxMSAx LzJdIE1ha2UgYWxsIFNMUlUgYnVmZmVyIHNpemVzIGNvbmZpZ3VyYWJsZQoKLS0tCiBkb2Mvc3Jj L3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAxMDggKysrKysrKysrKysr KysrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMgICAgICAgICAgICAgfCAg IDYgKwogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMgICAgICAgIHwgICA1 ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyAgICAgICAgfCAgIDgg Ky0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMgICAgICAgICB8ICAgNSAr LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyAgICAgICAgICAgICAgICAgIHwgICA4ICst CiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMgICAgICAgICAgfCAgIDQgKy0K IHNyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jICAgICAgICAgICAgICB8ICAgOCArKwog c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyAgICAgICAgICAgICAgICAgIHwgIDc3ICsrKysr KysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8 ICAxNiArKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaCAgICAgICAgICAgICAgICB8 ICAgNCAtCiBzcmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaCAgICAgICAgICAgICAgICAgfCAg IDMgLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaCAgICAgICAgICAgICAgICAgIHwgICA1 IC0KIHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCAr Kwogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcmVkaWNhdGUuaCAgICAgICAgICAgICAgIHwgICA0IC0K IDE1IGZpbGVzIGNoYW5nZWQsIDI0MCBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKaW5kZXggZGRjNmQ3ODlkOC4uMGFkY2YwZWZhZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTg4Niw2 ICsxODg2LDExNCBAQCBpbmNsdWRlX2RpciAnY29uZi5kJwogICAgICAgIDwvcGFyYT4KICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAKKyAgICA8dmFybGlzdGVu dHJ5IGlkPSJndWMtbXVsdGl4YWN0LW9mZnNldHMtc2xydS1idWZmZXJzIiB4cmVmbGFiZWw9Im11 bHRpeGFjdF9vZmZzZXRzX3NscnVfYnVmZmVycyI+CisgICAgICA8dGVybT48dmFybmFtZT5tdWx0 aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnM8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBl PikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+bXVsdGl4YWN0 X29mZnNldHNfc2xydV9idWZmZXJzPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwv cHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3Rp dGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBtZW1v cnkgdG8gYmUgdXNlZCBmb3IgTXVsdGlYYWN0IG9mZnNldHMuIE11bHRpWGFjdCBvZmZzZXRzCisg ICAgICAgIGFyZSB1c2VkIHRvIHN0b3JlIGluZm9ybWF0aW9uIGFib3V0IG9mZnNldHMgb2YgbXVs dGlwbGUgcm93IGxvY2tlcnMgKGNhdXNlZCBieSBTRUxFQ1QgRk9SIFVQREFURSBhbmQgb3RoZXJz KS4KKyAgICAgICAgSXQgZGVmYXVsdHMgdG8gNjQga2lsb2J5dGVzICg8bGl0ZXJhbD42NEtCPC9s aXRlcmFsPikuCisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBhdCBzZXJ2 ZXIgc3RhcnQuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtbXVsdGl4YWN0LW1lbWJlcnMt c2xydS1idWZmZXJzIiB4cmVmbGFiZWw9Im11bHRpeGFjdF9tZW1iZXJzX3NscnVfYnVmZmVycyI+ CisgICAgICA8dGVybT48dmFybmFtZT5tdWx0aXhhY3RfbWVtYmVyc19zbHJ1X2J1ZmZlcnM8L3Zh cm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAg PHByaW1hcnk+PHZhcm5hbWU+bXVsdGl4YWN0X21lbWJlcnNfc2xydV9idWZmZXJzPC92YXJuYW1l PiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgor ICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBT cGVjaWZpZXMgdGhlIGFtb3VudCBvZiBtZW1vcnkgdG8gYmUgdXNlZCBmb3IgTXVsdGlYYWN0IG1l bWJlcnMuIE11bHRpWGFjdCBtZW1iZXJzCisgICAgICAgIGFyZSB1c2VkIHRvIHN0b3JlIGluZm9y bWF0aW9uIGFib3V0IFhJRHMgb2YgbXVsdGlwbGUgcm93IGxvY2tlcnMuIFR5cGljYWxseSA8dmFy bmFtZT5tdWx0aXhhY3RfbWVtYmVyc19zbHJ1X2J1ZmZlcnM8L3Zhcm5hbWU+CisgICAgICAgIGlz IHR3aWNlIG1vcmUgdGhhbiA8dmFybmFtZT5tdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnM8 L3Zhcm5hbWU+LgorICAgICAgICBJdCBkZWZhdWx0cyB0byAxMjgga2lsb2J5dGVzICg8bGl0ZXJh bD4xMjhLQjwvbGl0ZXJhbD4pLgorICAgICAgICBUaGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBz ZXQgYXQgc2VydmVyIHN0YXJ0LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc3Vi dHJhbnMtYnVmZmVycyIgeHJlZmxhYmVsPSJzdWJ0cmFuc19zbHJ1X2J1ZmZlcnMiPgorICAgICAg PHRlcm0+PHZhcm5hbWU+c3VidHJhbnNfc2xydV9idWZmZXJzPC92YXJuYW1lPiAoPHR5cGU+aW50 ZWdlcjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1l PnN1YnRyYW5zX3NscnVfYnVmZmVyczwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8 L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU3BlY2lmaWVzIHRoZSBhbW91bnQgb2YgbWVt b3J5IHRvIGJlIHVzZWQgZm9yIHN1YnRyYW5zYWN0aW9ucy4KKyAgICAgICAgSXQgZGVmYXVsdHMg dG8gMjU2IGtpbG9ieXRlcyAoPGxpdGVyYWw+MjU2S0I8L2xpdGVyYWw+KS4KKyAgICAgICAgVGhp cyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgCisgICAg PHZhcmxpc3RlbnRyeSBpZD0iZ3VjLW5vdGlmeS1idWZmZXJzIiB4cmVmbGFiZWw9Im5vdGlmeV9z bHJ1X2J1ZmZlcnMiPgorICAgICAgPHRlcm0+PHZhcm5hbWU+bm90aWZ5X3NscnVfYnVmZmVyczwv dmFybmFtZT4gKDx0eXBlPmludGVnZXI8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5ub3RpZnlfc2xydV9idWZmZXJzPC92YXJuYW1lPiBjb25maWd1 cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMg dGhlIGFtb3VudCBvZiBtZW1vcnkgdG8gYmUgdXNlZCBmb3IgYXN5bmNyb25vdXMgbm90aWZpY2F0 aW9ucyAoTk9USUZZLCBMSVNURU4pLgorICAgICAgICBJdCBkZWZhdWx0cyB0byA2NCBraWxvYnl0 ZXMgKDxsaXRlcmFsPjY0S0I8L2xpdGVyYWw+KS4KKyAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2Fu IG9ubHkgYmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xp c3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgCisgICAgPHZhcmxpc3RlbnRyeSBp ZD0iZ3VjLXNlcmlhbC1idWZmZXJzIiB4cmVmbGFiZWw9InNlcmlhbF9zbHJ1X2J1ZmZlcnMiPgor ICAgICAgPHRlcm0+PHZhcm5hbWU+c2VyaWFsX3NscnVfYnVmZmVyczwvdmFybmFtZT4gKDx0eXBl PmludGVnZXI8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFy bmFtZT5zZXJpYWxfc2xydV9idWZmZXJzPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRl cjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxp c3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMgdGhlIGFtb3VudCBvZiBt ZW1vcnkgdG8gYmUgdXNlZCBmb3IgcHJlZGljYXRlIGxvY2tzLgorICAgICAgICBJdCBkZWZhdWx0 cyB0byAxMjgga2lsb2J5dGVzICg8bGl0ZXJhbD4xMjhLQjwvbGl0ZXJhbD4pLgorICAgICAgICBU aGlzIHBhcmFtZXRlciBjYW4gb25seSBiZSBzZXQgYXQgc2VydmVyIHN0YXJ0LgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAKKyAg ICA8dmFybGlzdGVudHJ5IGlkPSJndWMtY2xvZy1idWZmZXJzIiB4cmVmbGFiZWw9ImNsb2dfc2xy dV9idWZmZXJzIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmNsb2dfc2xydV9idWZmZXJzPC92YXJu YW1lPiAoPHR5cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxw cmltYXJ5Pjx2YXJuYW1lPmNsb2dfc2xydV9idWZmZXJzPC92YXJuYW1lPiBjb25maWd1cmF0aW9u IHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBTcGVjaWZpZXMgdGhlIGFt b3VudCBvZiBtZW1vcnkgdG8gYmUgdXNlZCBmb3IgQ0xPRy4KKyAgICAgICAgSXQgZGVmYXVsdHMg dG8gMCwgaW4gdGhpcyBjYXNlIENMT0cgc2l6ZSBpcyB0YWtlbiBhcyA8dmFybmFtZT5zaGFyZWRf YnVmZmVyczwvdmFybmFtZT4gLyA1MTIuCisgICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5 IGJlIHNldCBhdCBzZXJ2ZXIgc3RhcnQuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRl bT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1 Yy1jb21taXQtdHMtYnVmZmVycyIgeHJlZmxhYmVsPSJjb21taXRfdHNfc2xydV9idWZmZXJzIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPmNvbW1pdF90c19zbHJ1X2J1ZmZlcnM8L3Zhcm5hbWU+ICg8 dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+ PHZhcm5hbWU+Y29tbWl0X3RzX3NscnVfYnVmZmVyczwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBw YXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU3BlY2lmaWVzIHRoZSBhbW91 bnQgb2YgbWVtb3J5IHRvIGJlIHVzZWQgZm9yIGNvbW1pdCB0aW1lc3RhbXBzLgorICAgICAgICBJ dCBkZWZhdWx0cyB0byAwLCBpbiB0aGlzIGNhc2UgQ0xPRyBzaXplIGlzIHRha2VuIGFzIDx2YXJu YW1lPnNoYXJlZF9idWZmZXJzPC92YXJuYW1lPiAvIDUxMi4KKyAgICAgICAgVGhpcyBwYXJhbWV0 ZXIgY2FuIG9ubHkgYmUgc2V0IGF0IHNlcnZlciBzdGFydC4KKyAgICAgICA8L3BhcmE+CisgICAg ICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KIAogICAgICA8dmFybGlzdGVudHJ5 IGlkPSJndWMtbWF4LXN0YWNrLWRlcHRoIiB4cmVmbGFiZWw9Im1heF9zdGFja19kZXB0aCI+CiAg ICAgICA8dGVybT48dmFybmFtZT5tYXhfc3RhY2tfZGVwdGg8L3Zhcm5hbWU+ICg8dHlwZT5pbnRl Z2VyPC90eXBlPikKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYwppbmRleCA2ZmE0NzEzZmI0Li5l MWQzNGFhMzYxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jCkBAIC02NTksNiArNjU5LDkg QEAgVHJhbnNhY3Rpb25JZEdldFN0YXR1cyhUcmFuc2FjdGlvbklkIHhpZCwgWExvZ1JlY1B0ciAq bHNuKQogLyoKICAqIE51bWJlciBvZiBzaGFyZWQgQ0xPRyBidWZmZXJzLgogICoKKyAqIElmIHZh bHVlcyBpcyBjb25maWd1cmVkIHZpYSBHVUMgLSBqdXN0IHVzZSBnaXZlbiB2YWx1ZS4gT3RoZXJ3 aXNlCisgKiBhcHBseSBmb2xsb3dpbmcgZXVyaXN0aWNzLgorICoKICAqIE9uIGxhcmdlciBtdWx0 aS1wcm9jZXNzb3Igc3lzdGVtcywgaXQgaXMgcG9zc2libGUgdG8gaGF2ZSBtYW55IENMT0cgcGFn ZQogICogcmVxdWVzdHMgaW4gZmxpZ2h0IGF0IG9uZSB0aW1lIHdoaWNoIGNvdWxkIGxlYWQgdG8g ZGlzayBhY2Nlc3MgZm9yIENMT0cKICAqIHBhZ2UgaWYgdGhlIHJlcXVpcmVkIHBhZ2UgaXMgbm90 IGZvdW5kIGluIG1lbW9yeS4gIFRlc3RpbmcgcmV2ZWFsZWQgdGhhdCB3ZQpAQCAtNjc1LDYgKzY3 OCw5IEBAIFRyYW5zYWN0aW9uSWRHZXRTdGF0dXMoVHJhbnNhY3Rpb25JZCB4aWQsIFhMb2dSZWNQ dHIgKmxzbikKIFNpemUKIENMT0dTaG1lbUJ1ZmZlcnModm9pZCkKIHsKKwkvKiBjb25zaWRlciAw IGFuZCAxIGFzIHVuc2V0IEdVQyAqLworCWlmIChjbG9nX3NscnVfYnVmZmVycyA+IDEpCisJCXJl dHVybiBjbG9nX3NscnVfYnVmZmVyczsKIAlyZXR1cm4gTWluKDEyOCwgTWF4KDQsIE5CdWZmZXJz IC8gNTEyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nv bW1pdF90cy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMKaW5kZXgg NDhlOGQ2NjI4Ni4uN2RlM2JjYTYzZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vY29tbWl0X3RzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0 X3RzLmMKQEAgLTUzMCw3ICs1MzAsMTAgQEAgcGdfeGFjdF9jb21taXRfdGltZXN0YW1wX29yaWdp bihQR19GVU5DVElPTl9BUkdTKQogU2l6ZQogQ29tbWl0VHNTaG1lbUJ1ZmZlcnModm9pZCkKIHsK LQlyZXR1cm4gTWluKDE2LCBNYXgoNCwgTkJ1ZmZlcnMgLyAxMDI0KSk7CisJLyogY29uc2lkZXIg MCBhbmQgMSBhcyB1bnNldCBHVUMgKi8KKwlpZiAoY29tbWl0X3RzX3NscnVfYnVmZmVycyA+IDEp CisJCXJldHVybiBjb21taXRfdHNfc2xydV9idWZmZXJzOworCXJldHVybiBNaW4oMTYsIE1heCg0 LCBOQnVmZmVycyAvIDUxMikpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0 aXhhY3QuYwppbmRleCAxZjlmMWExZmExLi4zNzBjMDFlNzJiIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS9tdWx0aXhhY3QuYwpAQCAtMTgzMSw4ICsxODMxLDggQEAgTXVsdGlYYWN0U2htZW1T aXplKHZvaWQpCiAJCQkgbXVsX3NpemUoc2l6ZW9mKE11bHRpWGFjdElkKSAqIDIsIE1heE9sZGVz dFNsb3QpKQogCiAJc2l6ZSA9IFNIQVJFRF9NVUxUSVhBQ1RfU1RBVEVfU0laRTsKLQlzaXplID0g YWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKE5VTV9NVUxUSVhBQ1RPRkZTRVRfQlVG RkVSUywgMCkpOwotCXNpemUgPSBhZGRfc2l6ZShzaXplLCBTaW1wbGVMcnVTaG1lbVNpemUoTlVN X01VTFRJWEFDVE1FTUJFUl9CVUZGRVJTLCAwKSk7CisJc2l6ZSA9IGFkZF9zaXplKHNpemUsIFNp bXBsZUxydVNobWVtU2l6ZShtdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnMsIDApKTsKKwlz aXplID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXplKG11bHRpeGFjdF9tZW1iZXJz X3NscnVfYnVmZmVycywgMCkpOwogCiAJcmV0dXJuIHNpemU7CiB9CkBAIC0xODQ4LDEzICsxODQ4 LDEzIEBAIE11bHRpWGFjdFNobWVtSW5pdCh2b2lkKQogCU11bHRpWGFjdE1lbWJlckN0bC0+UGFn ZVByZWNlZGVzID0gTXVsdGlYYWN0TWVtYmVyUGFnZVByZWNlZGVzOwogCiAJU2ltcGxlTHJ1SW5p dChNdWx0aVhhY3RPZmZzZXRDdGwsCi0JCQkJICAiTXVsdGlYYWN0T2Zmc2V0IiwgTlVNX01VTFRJ WEFDVE9GRlNFVF9CVUZGRVJTLCAwLAorCQkJCSAgIk11bHRpWGFjdE9mZnNldCIsIG11bHRpeGFj dF9vZmZzZXRzX3NscnVfYnVmZmVycywgMCwKIAkJCQkgIE11bHRpWGFjdE9mZnNldFNMUlVMb2Nr LCAicGdfbXVsdGl4YWN0L29mZnNldHMiLAogCQkJCSAgTFdUUkFOQ0hFX01VTFRJWEFDVE9GRlNF VF9CVUZGRVIsCiAJCQkJICBTWU5DX0hBTkRMRVJfTVVMVElYQUNUX09GRlNFVCk7CiAJU2xydVBh Z2VQcmVjZWRlc1VuaXRUZXN0cyhNdWx0aVhhY3RPZmZzZXRDdGwsIE1VTFRJWEFDVF9PRkZTRVRT X1BFUl9QQUdFKTsKIAlTaW1wbGVMcnVJbml0KE11bHRpWGFjdE1lbWJlckN0bCwKLQkJCQkgICJN dWx0aVhhY3RNZW1iZXIiLCBOVU1fTVVMVElYQUNUTUVNQkVSX0JVRkZFUlMsIDAsCisJCQkJICAi TXVsdGlYYWN0TWVtYmVyIiwgbXVsdGl4YWN0X29mZnNldHNfc2xydV9idWZmZXJzLCAwLAogCQkJ CSAgTXVsdGlYYWN0TWVtYmVyU0xSVUxvY2ssICJwZ19tdWx0aXhhY3QvbWVtYmVycyIsCiAJCQkJ ICBMV1RSQU5DSEVfTVVMVElYQUNUTUVNQkVSX0JVRkZFUiwKIAkJCQkgIFNZTkNfSEFORExFUl9N VUxUSVhBQ1RfTUVNQkVSKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3N1YnRyYW5zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jCmluZGV4 IDZhOGU1MjFmODkuLjBjMjQzNTNkM2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3N1YnRyYW5zLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJh bnMuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9zbHJ1LmgiCiAjaW5jbHVk ZSAiYWNjZXNzL3N1YnRyYW5zLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKKyNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwZ190cmFjZS5oIgogI2luY2x1ZGUgInV0aWxz L3NuYXBtZ3IuaCIKIApAQCAtMTg0LDE0ICsxODUsMTQgQEAgU3ViVHJhbnNHZXRUb3Btb3N0VHJh bnNhY3Rpb24oVHJhbnNhY3Rpb25JZCB4aWQpCiBTaXplCiBTVUJUUkFOU1NobWVtU2l6ZSh2b2lk KQogewotCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoTlVNX1NVQlRSQU5TX0JVRkZFUlMsIDAp OworCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoc3VidHJhbnNfc2xydV9idWZmZXJzLCAwKTsK IH0KIAogdm9pZAogU1VCVFJBTlNTaG1lbUluaXQodm9pZCkKIHsKIAlTdWJUcmFuc0N0bC0+UGFn ZVByZWNlZGVzID0gU3ViVHJhbnNQYWdlUHJlY2VkZXM7Ci0JU2ltcGxlTHJ1SW5pdChTdWJUcmFu c0N0bCwgIlN1YnRyYW5zIiwgTlVNX1NVQlRSQU5TX0JVRkZFUlMsIDAsCisJU2ltcGxlTHJ1SW5p dChTdWJUcmFuc0N0bCwgIlN1YnRyYW5zIiwgc3VidHJhbnNfc2xydV9idWZmZXJzLCAwLAogCQkJ CSAgU3VidHJhbnNTTFJVTG9jaywgInBnX3N1YnRyYW5zIiwKIAkJCQkgIExXVFJBTkNIRV9TVUJU UkFOU19CVUZGRVIsIFNZTkNfSEFORExFUl9OT05FKTsKIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRl c3RzKFN1YlRyYW5zQ3RsLCBTVUJUUkFOU19YQUNUU19QRVJfUEFHRSk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMu YwppbmRleCA0YjE2ZmI1NjgyLi5mNWM1NTkyMDU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy9hc3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMKQEAgLTEw Nyw3ICsxMDcsNyBAQAogICogZnJvbnRlbmQgZHVyaW5nIHN0YXJ0dXAuKSAgVGhlIGFib3ZlIGRl c2lnbiBndWFyYW50ZWVzIHRoYXQgbm90aWZpZXMgZnJvbQogICogb3RoZXIgYmFja2VuZHMgd2ls bCBuZXZlciBiZSBtaXNzZWQgYnkgaWdub3Jpbmcgc2VsZi1ub3RpZmllcy4KICAqCi0gKiBUaGUg YW1vdW50IG9mIHNoYXJlZCBtZW1vcnkgdXNlZCBmb3Igbm90aWZ5IG1hbmFnZW1lbnQgKE5VTV9O T1RJRllfQlVGRkVSUykKKyAqIFRoZSBhbW91bnQgb2Ygc2hhcmVkIG1lbW9yeSB1c2VkIGZvciBu b3RpZnkgbWFuYWdlbWVudCAobm90aWZ5X3NscnVfYnVmZmVycykKICAqIGNhbiBiZSB2YXJpZWQg d2l0aG91dCBhZmZlY3RpbmcgYW55dGhpbmcgYnV0IHBlcmZvcm1hbmNlLiAgVGhlIG1heGltdW0K ICAqIGFtb3VudCBvZiBub3RpZmljYXRpb24gZGF0YSB0aGF0IGNhbiBiZSBxdWV1ZWQgYXQgb25l IHRpbWUgaXMgZGV0ZXJtaW5lZAogICogYnkgc2xydS5jJ3Mgd3JhcGFyb3VuZCBsaW1pdDsgc2Vl IFFVRVVFX01BWF9QQUdFIGJlbG93LgpAQCAtMjI1LDcgKzIyNSw3IEBAIHR5cGVkZWYgc3RydWN0 IFF1ZXVlUG9zaXRpb24KICAqCiAgKiBSZXNpc3QgdGhlIHRlbXB0YXRpb24gdG8gbWFrZSB0aGlz IHJlYWxseSBsYXJnZS4gIFdoaWxlIHRoYXQgd291bGQgc2F2ZQogICogd29yayBpbiBzb21lIHBs YWNlcywgaXQgd291bGQgYWRkIGNvc3QgaW4gb3RoZXJzLiAgSW4gcGFydGljdWxhciwgdGhpcwot ICogc2hvdWxkIGxpa2VseSBiZSBsZXNzIHRoYW4gTlVNX05PVElGWV9CVUZGRVJTLCB0byBlbnN1 cmUgdGhhdCBiYWNrZW5kcworICogc2hvdWxkIGxpa2VseSBiZSBsZXNzIHRoYW4gbm90aWZ5X3Ns cnVfYnVmZmVycywgdG8gZW5zdXJlIHRoYXQgYmFja2VuZHMKICAqIGNhdGNoIHVwIGJlZm9yZSB0 aGUgcGFnZXMgdGhleSdsbCBuZWVkIHRvIHJlYWQgZmFsbCBvdXQgb2YgU0xSVSBjYWNoZS4KICAq LwogI2RlZmluZSBRVUVVRV9DTEVBTlVQX0RFTEFZIDQKQEAgLTUxNCw3ICs1MTQsNyBAQCBBc3lu Y1NobWVtU2l6ZSh2b2lkKQogCXNpemUgPSBtdWxfc2l6ZShNYXhCYWNrZW5kcyArIDEsIHNpemVv ZihRdWV1ZUJhY2tlbmRTdGF0dXMpKTsKIAlzaXplID0gYWRkX3NpemUoc2l6ZSwgb2Zmc2V0b2Yo QXN5bmNRdWV1ZUNvbnRyb2wsIGJhY2tlbmQpKTsKIAotCXNpemUgPSBhZGRfc2l6ZShzaXplLCBT aW1wbGVMcnVTaG1lbVNpemUoTlVNX05PVElGWV9CVUZGRVJTLCAwKSk7CisJc2l6ZSA9IGFkZF9z aXplKHNpemUsIFNpbXBsZUxydVNobWVtU2l6ZShub3RpZnlfc2xydV9idWZmZXJzLCAwKSk7CiAK IAlyZXR1cm4gc2l6ZTsKIH0KQEAgLTU2Miw3ICs1NjIsNyBAQCBBc3luY1NobWVtSW5pdCh2b2lk KQogCSAqIFNldCB1cCBTTFJVIG1hbmFnZW1lbnQgb2YgdGhlIHBnX25vdGlmeSBkYXRhLgogCSAq LwogCU5vdGlmeUN0bC0+UGFnZVByZWNlZGVzID0gYXN5bmNRdWV1ZVBhZ2VQcmVjZWRlczsKLQlT aW1wbGVMcnVJbml0KE5vdGlmeUN0bCwgIk5vdGlmeSIsIE5VTV9OT1RJRllfQlVGRkVSUywgMCwK KwlTaW1wbGVMcnVJbml0KE5vdGlmeUN0bCwgIk5vdGlmeSIsIG5vdGlmeV9zbHJ1X2J1ZmZlcnMs IDAsCiAJCQkJICBOb3RpZnlTTFJVTG9jaywgInBnX25vdGlmeSIsIExXVFJBTkNIRV9OT1RJRllf QlVGRkVSLAogCQkJCSAgU1lOQ19IQU5ETEVSX05PTkUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3Iv cHJlZGljYXRlLmMKaW5kZXggZDQ5M2FlZWYwZi4uZmFkOGNjNTcyZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9sbWdyL3ByZWRpY2F0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvbG1nci9wcmVkaWNhdGUuYwpAQCAtODcyLDcgKzg3Miw3IEBAIFNlcmlhbEluaXQodm9pZCkK IAkgKi8KIAlTZXJpYWxTbHJ1Q3RsLT5QYWdlUHJlY2VkZXMgPSBTZXJpYWxQYWdlUHJlY2VkZXNM b2dpY2FsbHk7CiAJU2ltcGxlTHJ1SW5pdChTZXJpYWxTbHJ1Q3RsLCAiU2VyaWFsIiwKLQkJCQkg IE5VTV9TRVJJQUxfQlVGRkVSUywgMCwgU2VyaWFsU0xSVUxvY2ssICJwZ19zZXJpYWwiLAorCQkJ CSAgc2VyaWFsX3NscnVfYnVmZmVycywgMCwgU2VyaWFsU0xSVUxvY2ssICJwZ19zZXJpYWwiLAog CQkJCSAgTFdUUkFOQ0hFX1NFUklBTF9CVUZGRVIsIFNZTkNfSEFORExFUl9OT05FKTsKICNpZmRl ZiBVU0VfQVNTRVJUX0NIRUNLSU5HCiAJU2VyaWFsUGFnZVByZWNlZGVzTG9naWNhbGx5VW5pdFRl c3RzKCk7CkBAIC0xMzk1LDcgKzEzOTUsNyBAQCBQcmVkaWNhdGVMb2NrU2htZW1TaXplKHZvaWQp CiAKIAkvKiBTaGFyZWQgbWVtb3J5IHN0cnVjdHVyZXMgZm9yIFNMUlUgdHJhY2tpbmcgb2Ygb2xk IGNvbW1pdHRlZCB4aWRzLiAqLwogCXNpemUgPSBhZGRfc2l6ZShzaXplLCBzaXplb2YoU2VyaWFs Q29udHJvbERhdGEpKTsKLQlzaXplID0gYWRkX3NpemUoc2l6ZSwgU2ltcGxlTHJ1U2htZW1TaXpl KE5VTV9TRVJJQUxfQlVGRkVSUywgMCkpOworCXNpemUgPSBhZGRfc2l6ZShzaXplLCBTaW1wbGVM cnVTaG1lbVNpemUoc2VyaWFsX3NscnVfYnVmZmVycywgMCkpOwogCiAJcmV0dXJuIHNpemU7CiB9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9pbml0L2dsb2JhbHMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCmluZGV4IDczZTBhNjcyYWUuLmYxNjNjYTE3ZTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCkBAIC0xNDgsMyArMTQ4LDExIEBAIGludDY0CQlWYWN1 dW1QYWdlRGlydHkgPSAwOwogCiBpbnQJCQlWYWN1dW1Db3N0QmFsYW5jZSA9IDA7CS8qIHdvcmtp bmcgc3RhdGUgZm9yIHZhY3V1bSAqLwogYm9vbAkJVmFjdXVtQ29zdEFjdGl2ZSA9IGZhbHNlOwor CitpbnQJCQltdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnMgPSA4OworaW50CQkJbXVsdGl4 YWN0X21lbWJlcnNfc2xydV9idWZmZXJzID0gMTY7CitpbnQJCQlzdWJ0cmFuc19zbHJ1X2J1ZmZl cnMgPSAzMjsKK2ludAkJCW5vdGlmeV9zbHJ1X2J1ZmZlcnMgPSA4OworaW50CQkJc2VyaWFsX3Ns cnVfYnVmZmVycyA9IDE2OworaW50CQkJY2xvZ19zbHJ1X2J1ZmZlcnMgPSAwOworaW50CQkJY29t bWl0X3RzX3NscnVfYnVmZmVycyA9IDA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwppbmRleCAwYzVkYzRkM2U4 Li5iNjVhNGFlOWNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Yy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKQEAgLTIzMDUsNiArMjMwNSw4MyBAQCBz dGF0aWMgc3RydWN0IGNvbmZpZ19pbnQgQ29uZmlndXJlTmFtZXNJbnRbXSA9CiAJCU5VTEwsIE5V TEwsIE5VTEwKIAl9LAogCisJeworCQl7Im11bHRpeGFjdF9vZmZzZXRzX3NscnVfYnVmZmVycyIs IFBHQ19QT1NUTUFTVEVSLCBSRVNPVVJDRVNfTUVNLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRo ZSBudW1iZXIgb2Ygc2hhcmVkIG1lbW9yeSBidWZmZXJzIHVzZWQgZm9yIE11bHRpWGFjdCBvZmZz ZXRzIFNMUlUuIiksCisJCQlOVUxMLAorCQkJR1VDX1VOSVRfQkxPQ0tTCisJCX0sCisJCSZtdWx0 aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnMsCisJCTgsIDIsIElOVF9NQVggLyAyLAorCQlOVUxM LCBOVUxMLCBOVUxMCisJfSwKKworCXsKKwkJeyJtdWx0aXhhY3RfbWVtYmVyc19zbHJ1X2J1ZmZl cnMiLCBQR0NfUE9TVE1BU1RFUiwgUkVTT1VSQ0VTX01FTSwKKwkJCWdldHRleHRfbm9vcCgiU2V0 cyB0aGUgbnVtYmVyIG9mIHNoYXJlZCBtZW1vcnkgYnVmZmVycyB1c2VkIGZvciBNdWx0aVhhY3Qg bWVtYmVycyBTTFJVLiIpLAorCQkJTlVMTCwKKwkJCUdVQ19VTklUX0JMT0NLUworCQl9LAorCQkm bXVsdGl4YWN0X21lbWJlcnNfc2xydV9idWZmZXJzLAorCQkxNiwgMiwgSU5UX01BWCAvIDIsCisJ CU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCisJeworCQl7InN1YnRyYW5zX3NscnVfYnVmZmVycyIs IFBHQ19QT1NUTUFTVEVSLCBSRVNPVVJDRVNfTUVNLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRo ZSBudW1iZXIgb2Ygc2hhcmVkIG1lbW9yeSBidWZmZXJzIHVzZWQgZm9yIHN1YnN0cmFuc2FjdGlv bnMgU0xSVS4iKSwKKwkJCU5VTEwsCisJCQlHVUNfVU5JVF9CTE9DS1MKKwkJfSwKKwkJJnN1YnRy YW5zX3NscnVfYnVmZmVycywKKwkJMzIsIDIsIElOVF9NQVggLyAyLAorCQlOVUxMLCBOVUxMLCBO VUxMCisJfSwKKworCXsKKwkJeyJub3RpZnlfc2xydV9idWZmZXJzIiwgUEdDX1BPU1RNQVNURVIs IFJFU09VUkNFU19NRU0sCisJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIG51bWJlciBvZiBzaGFy ZWQgbWVtb3J5IGJ1ZmZlcnMgdXNlZCBmb3IgYXN5bmNyb25vdXMgbm90aWZpY2F0aW9ucyBTTFJV LiIpLAorCQkJTlVMTCwKKwkJCUdVQ19VTklUX0JMT0NLUworCQl9LAorCQkmbm90aWZ5X3NscnVf YnVmZmVycywKKwkJOCwgMiwgSU5UX01BWCAvIDIsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAor CisJeworCQl7InNlcmlhbF9zbHJ1X2J1ZmZlcnMiLCBQR0NfUE9TVE1BU1RFUiwgUkVTT1VSQ0VT X01FTSwKKwkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgbnVtYmVyIG9mIHNoYXJlZCBtZW1vcnkg YnVmZmVycyB1c2VkIGZvciBwcmVkaWNhdGUgbG9ja3MgU0xSVS4iKSwKKwkJCU5VTEwsCisJCQlH VUNfVU5JVF9CTE9DS1MKKwkJfSwKKwkJJnNlcmlhbF9zbHJ1X2J1ZmZlcnMsCisJCTE2LCAyLCBJ TlRfTUFYIC8gMiwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwl7CisJCXsiY2xvZ19zbHJ1 X2J1ZmZlcnMiLCBQR0NfUE9TVE1BU1RFUiwgUkVTT1VSQ0VTX01FTSwKKwkJCWdldHRleHRfbm9v cCgiU2V0cyB0aGUgbnVtYmVyIG9mIHNoYXJlZCBtZW1vcnkgYnVmZmVycyB1c2VkIGZvciBjb21t aXQgbG9nIFNMUlUuIiksCisJCQlOVUxMLAorCQkJR1VDX1VOSVRfQkxPQ0tTCisJCX0sCisJCSZz ZXJpYWxfc2xydV9idWZmZXJzLAorCQkwLCAwLCBJTlRfTUFYIC8gMiwKKwkJTlVMTCwgTlVMTCwg TlVMTAorCX0sCisKKwl7CisJCXsiY29tbWl0X3RzX3NscnVfYnVmZmVycyIsIFBHQ19QT1NUTUFT VEVSLCBSRVNPVVJDRVNfTUVNLAorCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBudW1iZXIgb2Yg c2hhcmVkIG1lbW9yeSBidWZmZXJzIHVzZWQgZm9yIGNvbW1pdCB0aW1lc3RhbXBzIFNMUlUuIiks CisJCQlOVUxMLAorCQkJR1VDX1VOSVRfQkxPQ0tTCisJCX0sCisJCSZjb21taXRfdHNfc2xydV9i dWZmZXJzLAorCQkwLCAwLCBJTlRfTUFYIC8gMiwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisK IAl7CiAJCXsidGVtcF9idWZmZXJzIiwgUEdDX1VTRVJTRVQsIFJFU09VUkNFU19NRU0sCiAJCQln ZXR0ZXh0X25vb3AoIlNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHRlbXBvcmFyeSBidWZmZXJz IHVzZWQgYnkgZWFjaCBzZXNzaW9uLiIpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGIyMzRhNmJmZTYuLjMwOGZkNTY1ZDMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9z cmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTE5MCw2ICsx OTAsMjIgQEAKIAkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAjYmFja2VuZF9mbHVz aF9hZnRlciA9IDAJCSMgbWVhc3VyZWQgaW4gcGFnZXMsIDAgZGlzYWJsZXMKIAorIyAtIFNMUlUg QnVmZmVycyAtCisKKyNtdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnMgPSA4CSMgbWVtb3J5 IHVzZWQgZm9yIE11bHRpWGFjdCBvZmZzZXRzCisJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0 YXJ0KQorI211bHRpeGFjdF9tZW1iZXJzX3NscnVfYnVmZmVycyA9IDE2CSMgbWVtb3J5IHVzZWQg Zm9yIE11bHRpWGFjdCBtZW1iZXJzCisJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQor I3N1YnRyYW5zX3NscnVfYnVmZmVycyA9IDMyCQkJIyBtZW1vcnkgdXNlZCBmb3Igc3VidHJhbnNh Y3Rpb25zCisJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQorI25vdGlmeV9zbHJ1X2J1 ZmZlcnMgPSA4CQkJIyBtZW1vcnkgdXNlZCBmb3IgYXN5bmNocm9ub3VzIG5vdGlmaWNhdGlvbnMK KwkJCQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCisjc2VyaWFsX3NscnVfYnVmZmVycyA9 IDE2CQkJIyBtZW1vcnkgdXNlZCBmb3IgcHJlZGljYXRlIGxvY2tzCisJCQkJCSMgKGNoYW5nZSBy ZXF1aXJlcyByZXN0YXJ0KQorI2Nsb2dfc2xydV9idWZmZXJzID0gMAkJCQkjIG1lbW9yeSB1c2Vk IGZvciBDTE9HCisJCQkJCSMgKGNoYW5nZSByZXF1aXJlcyByZXN0YXJ0KQorI2NvbW1pdF90c19z bHJ1X2J1ZmZlcnMgPSAwCQkJIyBtZW1vcnkgdXNlZCBmb3IgY29tbWl0IHRpbWVzdGFtcHMKKwkJ CQkJIyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICMgV1JJVEUtQUhFQUQgTE9HCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4 YWN0LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgKaW5kZXggNGJiYjAzNWVhZS4u OTdjMGE0NjM3NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL211bHRpeGFjdC5oCisr KyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9tdWx0aXhhY3QuaApAQCAtMjksMTAgKzI5LDYgQEAKIAog I2RlZmluZSBNYXhNdWx0aVhhY3RPZmZzZXQJKChNdWx0aVhhY3RPZmZzZXQpIDB4RkZGRkZGRkYp CiAKLS8qIE51bWJlciBvZiBTTFJVIGJ1ZmZlcnMgdG8gdXNlIGZvciBtdWx0aXhhY3QgKi8KLSNk ZWZpbmUgTlVNX01VTFRJWEFDVE9GRlNFVF9CVUZGRVJTCQk4Ci0jZGVmaW5lIE5VTV9NVUxUSVhB Q1RNRU1CRVJfQlVGRkVSUwkJMTYKLQogLyoKICAqIFBvc3NpYmxlIG11bHRpeGFjdCBsb2NrIG1v ZGVzICgic3RhdHVzIikuICBUaGUgZmlyc3QgZm91ciBtb2RlcyBhcmUgZm9yCiAgKiB0dXBsZSBs b2NrcyAoRk9SIEtFWSBTSEFSRSwgRk9SIFNIQVJFLCBGT1IgTk8gS0VZIFVQREFURSwgRk9SIFVQ REFURSk7IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3N1YnRyYW5zLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaAppbmRleCBkMGFiNDRhZTgyLi5jYTA5OTkwNTZl IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3Mvc3VidHJhbnMuaApAQCAtMTEsOSArMTEsNiBAQAogI2lmbmRlZiBTVUJUUkFO U19ICiAjZGVmaW5lIFNVQlRSQU5TX0gKIAotLyogTnVtYmVyIG9mIFNMUlUgYnVmZmVycyB0byB1 c2UgZm9yIHN1YnRyYW5zICovCi0jZGVmaW5lIE5VTV9TVUJUUkFOU19CVUZGRVJTCTMyCi0KIGV4 dGVybiB2b2lkIFN1YlRyYW5zU2V0UGFyZW50KFRyYW5zYWN0aW9uSWQgeGlkLCBUcmFuc2FjdGlv bklkIHBhcmVudCk7CiBleHRlcm4gVHJhbnNhY3Rpb25JZCBTdWJUcmFuc0dldFBhcmVudChUcmFu c2FjdGlvbklkIHhpZCk7CiBleHRlcm4gVHJhbnNhY3Rpb25JZCBTdWJUcmFuc0dldFRvcG1vc3RU cmFuc2FjdGlvbihUcmFuc2FjdGlvbklkIHhpZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy9hc3luYy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaAppbmRleCA5MjE3 ZjY2YjkxLi5mYTgzMWUzNzIxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9hc3lu Yy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2FzeW5jLmgKQEAgLTE1LDExICsxNSw2IEBA CiAKICNpbmNsdWRlIDxzaWduYWwuaD4KIAotLyoKLSAqIFRoZSBudW1iZXIgb2YgU0xSVSBwYWdl IGJ1ZmZlcnMgd2UgdXNlIGZvciB0aGUgbm90aWZpY2F0aW9uIHF1ZXVlLgotICovCi0jZGVmaW5l IE5VTV9OT1RJRllfQlVGRkVSUwk4Ci0KIGV4dGVybiBib29sIFRyYWNlX25vdGlmeTsKIGV4dGVy biB2b2xhdGlsZSBzaWdfYXRvbWljX3Qgbm90aWZ5SW50ZXJydXB0UGVuZGluZzsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApp bmRleCAwMTM4NTBhYzI4Li4zZDlmNTg1ZmI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9taXNj YWRtaW4uaAorKysgYi9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaApAQCAtMTYyLDYgKzE2MiwxNCBA QCBleHRlcm4gUEdETExJTVBPUlQgaW50IE1heEJhY2tlbmRzOwogZXh0ZXJuIFBHRExMSU1QT1JU IGludCBNYXhDb25uZWN0aW9uczsKIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3dvcmtlcl9w cm9jZXNzZXM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IG1heF9wYXJhbGxlbF93b3JrZXJzOwor ZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtdWx0aXhhY3Rfb2Zmc2V0c19zbHJ1X2J1ZmZlcnM7Citl eHRlcm4gUEdETExJTVBPUlQgaW50IG11bHRpeGFjdF9tZW1iZXJzX3NscnVfYnVmZmVyczsKK2V4 dGVybiBQR0RMTElNUE9SVCBpbnQgbXVsdGl4YWN0X21lbWJlcnNfc2xydV9idWZmZXJzOworZXh0 ZXJuIFBHRExMSU1QT1JUIGludCBzdWJ0cmFuc19zbHJ1X2J1ZmZlcnM7CitleHRlcm4gUEdETExJ TVBPUlQgaW50IG5vdGlmeV9zbHJ1X2J1ZmZlcnM7CitleHRlcm4gUEdETExJTVBPUlQgaW50IHNl cmlhbF9zbHJ1X2J1ZmZlcnM7CitleHRlcm4gUEdETExJTVBPUlQgaW50IGNsb2dfc2xydV9idWZm ZXJzOworZXh0ZXJuIFBHRExMSU1QT1JUIGludCBjb21taXRfdHNfc2xydV9idWZmZXJzOwogCiBl eHRlcm4gUEdETExJTVBPUlQgaW50IE15UHJvY1BpZDsKIGV4dGVybiBQR0RMTElNUE9SVCBwZ190 aW1lX3QgTXlTdGFydFRpbWU7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3ByZWRp Y2F0ZS5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcmVkaWNhdGUuaAppbmRleCAxNTJiNjk4NjEx Li5jNzI3NzliZDg4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3ByZWRpY2F0ZS5o CisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJlZGljYXRlLmgKQEAgLTI2LDEwICsyNiw2IEBA IGV4dGVybiBpbnQJbWF4X3ByZWRpY2F0ZV9sb2Nrc19wZXJfeGFjdDsKIGV4dGVybiBpbnQJbWF4 X3ByZWRpY2F0ZV9sb2Nrc19wZXJfcmVsYXRpb247CiBleHRlcm4gaW50CW1heF9wcmVkaWNhdGVf bG9ja3NfcGVyX3BhZ2U7CiAKLQotLyogTnVtYmVyIG9mIFNMUlUgYnVmZmVycyB0byB1c2UgZm9y IFNlcmlhbCBTTFJVICovCi0jZGVmaW5lIE5VTV9TRVJJQUxfQlVGRkVSUwkJMTYKLQogLyoKICAq IEEgaGFuZGxlIHVzZWQgZm9yIHNoYXJpbmcgU0VSSUFMSVpBQkxFWEFDVCBvYmplY3RzIGJldHdl ZW4gdGhlIHBhcnRpY2lwYW50cwogICogaW4gYSBwYXJhbGxlbCBxdWVyeS4KLS0gCjIuMzAuMQoK --00000000000088dd4b05be51fe78 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0002-Add-buffer-mapping-table-for-SLRUs.patch" Content-Disposition: attachment; filename="v11-0002-Add-buffer-mapping-table-for-SLRUs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kmo640ea1 RnJvbSA2NTYwMGI1MzkzOWMzNGFiZjQzZTYyZjNmNTliZTU2NzFjNDNkMzAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMjUgTWFyIDIwMjEgMTA6MTE6MzEgKzEzMDAKU3ViamVjdDogW1BBVENIIHYx MSAyLzJdIEFkZCBidWZmZXIgbWFwcGluZyB0YWJsZSBmb3IgU0xSVXMuCgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYyB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggICAgICAgICB8ICAyICsKIDIgZmlsZXMg Y2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9zbHJ1LmMKaW5kZXggODIxNDlhZDc4Mi4uNDg3NTg1YmI2MCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3NscnUuYwpAQCAtNTgsNiArNTgsOCBAQAogI2luY2x1ZGUgInBnc3RhdC5oIgogI2lu Y2x1ZGUgInN0b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJzdG9yYWdlL3NobWVtLmgiCisjaW5jbHVk ZSAidXRpbHMvZHluYWhhc2guaCIKKyNpbmNsdWRlICJ1dGlscy9oc2VhcmNoLmgiCiAKICNkZWZp bmUgU2xydUZpbGVOYW1lKGN0bCwgcGF0aCwgc2VnKSBcCiAJc25wcmludGYocGF0aCwgTUFYUEdQ QVRILCAiJXMvJTA0WCIsIChjdGwpLT5EaXIsIHNlZykKQEAgLTc5LDYgKzgxLDEyIEBAIHR5cGVk ZWYgc3RydWN0IFNscnVXcml0ZUFsbERhdGEKIAogdHlwZWRlZiBzdHJ1Y3QgU2xydVdyaXRlQWxs RGF0YSAqU2xydVdyaXRlQWxsOwogCit0eXBlZGVmIHN0cnVjdCBTbHJ1TWFwcGluZ1RhYmxlRW50 cnkKK3sKKwlpbnQJCQlwYWdlbm87CisJaW50CQkJc2xvdG5vOworfSBTbHJ1TWFwcGluZ1RhYmxl RW50cnk7CisKIC8qCiAgKiBQb3B1bGF0ZSBhIGZpbGUgdGFnIGRlc2NyaWJpbmcgYSBzZWdtZW50 IGZpbGUuICBXZSBvbmx5IHVzZSB0aGUgc2VnbWVudAogICogbnVtYmVyLCBzaW5jZSB3ZSBjYW4g ZGVyaXZlIGV2ZXJ5dGhpbmcgZWxzZSB3ZSBuZWVkIGJ5IGhhdmluZyBzZXBhcmF0ZQpAQCAtMTQ2 LDYgKzE1NCw5IEBAIHN0YXRpYyBpbnQJU2xydVNlbGVjdExSVVBhZ2UoU2xydUN0bCBjdGwsIGlu dCBwYWdlbm8pOwogc3RhdGljIGJvb2wgU2xydVNjYW5EaXJDYkRlbGV0ZUN1dG9mZihTbHJ1Q3Rs IGN0bCwgY2hhciAqZmlsZW5hbWUsCiAJCQkJCQkJCQkgIGludCBzZWdwYWdlLCB2b2lkICpkYXRh KTsKIHN0YXRpYyB2b2lkIFNscnVJbnRlcm5hbERlbGV0ZVNlZ21lbnQoU2xydUN0bCBjdGwsIGlu dCBzZWdubyk7CitzdGF0aWMgdm9pZAlTbHJ1TWFwcGluZ0FkZChTbHJ1Q3RsIGN0bCwgaW50IHBh Z2VubywgaW50IHNsb3Rubyk7CitzdGF0aWMgdm9pZAlTbHJ1TWFwcGluZ1JlbW92ZShTbHJ1Q3Rs IGN0bCwgaW50IHBhZ2Vubyk7CitzdGF0aWMgaW50CVNscnVNYXBwaW5nRmluZChTbHJ1Q3RsIGN0 bCwgaW50IHBhZ2Vubyk7CiAKIC8qCiAgKiBJbml0aWFsaXphdGlvbiBvZiBzaGFyZWQgbWVtb3J5 CkBAIC0xNjgsNyArMTc5LDggQEAgU2ltcGxlTHJ1U2htZW1TaXplKGludCBuc2xvdHMsIGludCBu bHNucykKIAlpZiAobmxzbnMgPiAwKQogCQlzeiArPSBNQVhBTElHTihuc2xvdHMgKiBubHNucyAq IHNpemVvZihYTG9nUmVjUHRyKSk7CS8qIGdyb3VwX2xzbltdICovCiAKLQlyZXR1cm4gQlVGRkVS QUxJR04oc3opICsgQkxDS1NaICogbnNsb3RzOworCXJldHVybiBCVUZGRVJBTElHTihzeikgKyBC TENLU1ogKiBuc2xvdHMgKworCQloYXNoX2VzdGltYXRlX3NpemUobnNsb3RzLCBzaXplb2YoU2xy dU1hcHBpbmdUYWJsZUVudHJ5KSk7CiB9CiAKIC8qCkBAIC0xODcsNiArMTk5LDkgQEAgU2ltcGxl THJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywgaW50IG5s c25zLAogCQkJICBMV0xvY2sgKmN0bGxvY2ssIGNvbnN0IGNoYXIgKnN1YmRpciwgaW50IHRyYW5j aGVfaWQsCiAJCQkgIFN5bmNSZXF1ZXN0SGFuZGxlciBzeW5jX2hhbmRsZXIpCiB7CisJY2hhcgkJ bWFwcGluZ190YWJsZV9uYW1lW1NITUVNX0lOREVYX0tFWVNJWkVdOworCUhBU0hDVEwJCW1hcHBp bmdfdGFibGVfaW5mbzsKKwlIVEFCCSAgICptYXBwaW5nX3RhYmxlOwogCVNscnVTaGFyZWQJc2hh cmVkOwogCWJvb2wJCWZvdW5kOwogCkBAIC0yNTgsMTEgKzI3MywyMSBAQCBTaW1wbGVMcnVJbml0 KFNscnVDdGwgY3RsLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMsCiAJ ZWxzZQogCQlBc3NlcnQoZm91bmQpOwogCisJLyogQ3JlYXRlIG9yIGZpbmQgdGhlIGJ1ZmZlciBt YXBwaW5nIHRhYmxlLiAqLworCW1lbXNldCgmbWFwcGluZ190YWJsZV9pbmZvLCAwLCBzaXplb2Yo bWFwcGluZ190YWJsZV9pbmZvKSk7CisJbWFwcGluZ190YWJsZV9pbmZvLmtleXNpemUgPSBzaXpl b2YoaW50KTsKKwltYXBwaW5nX3RhYmxlX2luZm8uZW50cnlzaXplID0gc2l6ZW9mKFNscnVNYXBw aW5nVGFibGVFbnRyeSk7CisJc25wcmludGYobWFwcGluZ190YWJsZV9uYW1lLCBzaXplb2YobWFw cGluZ190YWJsZV9uYW1lKSwKKwkJCSAiJXMgTWFwcGluZyBUYWJsZSIsIG5hbWUpOworCW1hcHBp bmdfdGFibGUgPSBTaG1lbUluaXRIYXNoKG1hcHBpbmdfdGFibGVfbmFtZSwgbnNsb3RzLCBuc2xv dHMsCisJCQkJCQkJCSAgJm1hcHBpbmdfdGFibGVfaW5mbywgSEFTSF9FTEVNIHwgSEFTSF9CTE9C Uyk7CisKIAkvKgogCSAqIEluaXRpYWxpemUgdGhlIHVuc2hhcmVkIGNvbnRyb2wgc3RydWN0LCBp bmNsdWRpbmcgZGlyZWN0b3J5IHBhdGguIFdlCiAJICogYXNzdW1lIGNhbGxlciBzZXQgUGFnZVBy ZWNlZGVzLgogCSAqLwogCWN0bC0+c2hhcmVkID0gc2hhcmVkOworCWN0bC0+bWFwcGluZ190YWJs ZSA9IG1hcHBpbmdfdGFibGU7CiAJY3RsLT5zeW5jX2hhbmRsZXIgPSBzeW5jX2hhbmRsZXI7CiAJ c3RybGNweShjdGwtPkRpciwgc3ViZGlyLCBzaXplb2YoY3RsLT5EaXIpKTsKIH0KQEAgLTI4OSw2 ICszMTQsOSBAQCBTaW1wbGVMcnVaZXJvUGFnZShTbHJ1Q3RsIGN0bCwgaW50IHBhZ2VubykKIAkJ ICAgc2hhcmVkLT5wYWdlX251bWJlcltzbG90bm9dID09IHBhZ2Vubyk7CiAKIAkvKiBNYXJrIHRo ZSBzbG90IGFzIGNvbnRhaW5pbmcgdGhpcyBwYWdlICovCisJaWYgKHNoYXJlZC0+cGFnZV9zdGF0 dXNbc2xvdG5vXSAhPSBTTFJVX1BBR0VfRU1QVFkpCisJCVNscnVNYXBwaW5nUmVtb3ZlKGN0bCwg c2hhcmVkLT5wYWdlX251bWJlcltzbG90bm9dKTsKKwlTbHJ1TWFwcGluZ0FkZChjdGwsIHBhZ2Vu bywgc2xvdG5vKTsKIAlzaGFyZWQtPnBhZ2VfbnVtYmVyW3Nsb3Rub10gPSBwYWdlbm87CiAJc2hh cmVkLT5wYWdlX3N0YXR1c1tzbG90bm9dID0gU0xSVV9QQUdFX1ZBTElEOwogCXNoYXJlZC0+cGFn ZV9kaXJ0eVtzbG90bm9dID0gdHJ1ZTsKQEAgLTM2Miw3ICszOTAsMTAgQEAgU2ltcGxlTHJ1V2Fp dElPKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5vKQogCQl7CiAJCQkvKiBpbmRlZWQsIHRoZSBJL08g bXVzdCBoYXZlIGZhaWxlZCAqLwogCQkJaWYgKHNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9 PSBTTFJVX1BBR0VfUkVBRF9JTl9QUk9HUkVTUykKKwkJCXsKKwkJCQlTbHJ1TWFwcGluZ1JlbW92 ZShjdGwsIHNoYXJlZC0+cGFnZV9udW1iZXJbc2xvdG5vXSk7CiAJCQkJc2hhcmVkLT5wYWdlX3N0 YXR1c1tzbG90bm9dID0gU0xSVV9QQUdFX0VNUFRZOworCQkJfQogCQkJZWxzZQkJCQkvKiB3cml0 ZV9pbl9wcm9ncmVzcyAqLwogCQkJewogCQkJCXNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9 IFNMUlVfUEFHRV9WQUxJRDsKQEAgLTQzNiw2ICs0NjcsNyBAQCBTaW1wbGVMcnVSZWFkUGFnZShT bHJ1Q3RsIGN0bCwgaW50IHBhZ2VubywgYm9vbCB3cml0ZV9vaywKIAkJCQkhc2hhcmVkLT5wYWdl X2RpcnR5W3Nsb3Rub10pKTsKIAogCQkvKiBNYXJrIHRoZSBzbG90IHJlYWQtYnVzeSAqLworCQlT bHJ1TWFwcGluZ0FkZChjdGwsIHBhZ2Vubywgc2xvdG5vKTsKIAkJc2hhcmVkLT5wYWdlX251bWJl cltzbG90bm9dID0gcGFnZW5vOwogCQlzaGFyZWQtPnBhZ2Vfc3RhdHVzW3Nsb3Rub10gPSBTTFJV X1BBR0VfUkVBRF9JTl9QUk9HUkVTUzsKIAkJc2hhcmVkLT5wYWdlX2RpcnR5W3Nsb3Rub10gPSBm YWxzZTsKQEAgLTQ1OSw3ICs0OTEsMTMgQEAgU2ltcGxlTHJ1UmVhZFBhZ2UoU2xydUN0bCBjdGws IGludCBwYWdlbm8sIGJvb2wgd3JpdGVfb2ssCiAJCQkgICBzaGFyZWQtPnBhZ2Vfc3RhdHVzW3Ns b3Rub10gPT0gU0xSVV9QQUdFX1JFQURfSU5fUFJPR1JFU1MgJiYKIAkJCSAgICFzaGFyZWQtPnBh Z2VfZGlydHlbc2xvdG5vXSk7CiAKLQkJc2hhcmVkLT5wYWdlX3N0YXR1c1tzbG90bm9dID0gb2sg PyBTTFJVX1BBR0VfVkFMSUQgOiBTTFJVX1BBR0VfRU1QVFk7CisJCWlmIChvaykKKwkJCXNoYXJl ZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9IFNMUlVfUEFHRV9WQUxJRDsKKwkJZWxzZQorCQl7CisJ CQlTbHJ1TWFwcGluZ1JlbW92ZShjdGwsIHBhZ2Vubyk7CisJCQlzaGFyZWQtPnBhZ2Vfc3RhdHVz W3Nsb3Rub10gPSAgU0xSVV9QQUdFX0VNUFRZOworCQl9CiAKIAkJTFdMb2NrUmVsZWFzZSgmc2hh cmVkLT5idWZmZXJfbG9ja3Nbc2xvdG5vXS5sb2NrKTsKIApAQCAtMTAyOSwxMSArMTA2NywxMiBA QCBTbHJ1U2VsZWN0TFJVUGFnZShTbHJ1Q3RsIGN0bCwgaW50IHBhZ2VubykKIAkJaW50CQkJYmVz dF9pbnZhbGlkX3BhZ2VfbnVtYmVyID0gMDsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwogCiAJ CS8qIFNlZSBpZiBwYWdlIGFscmVhZHkgaGFzIGEgYnVmZmVyIGFzc2lnbmVkICovCi0JCWZvciAo c2xvdG5vID0gMDsgc2xvdG5vIDwgc2hhcmVkLT5udW1fc2xvdHM7IHNsb3RubysrKQorCQlzbG90 bm8gPSBTbHJ1TWFwcGluZ0ZpbmQoY3RsLCBwYWdlbm8pOworCQlpZiAoc2xvdG5vID49IDApCiAJ CXsKLQkJCWlmIChzaGFyZWQtPnBhZ2VfbnVtYmVyW3Nsb3Rub10gPT0gcGFnZW5vICYmCi0JCQkJ c2hhcmVkLT5wYWdlX3N0YXR1c1tzbG90bm9dICE9IFNMUlVfUEFHRV9FTVBUWSkKLQkJCQlyZXR1 cm4gc2xvdG5vOworCQkJQXNzZXJ0KHNoYXJlZC0+cGFnZV9udW1iZXJbc2xvdG5vXSA9PSBwYWdl bm8pOworCQkJQXNzZXJ0KHNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSAhPSBTTFJVX1BBR0Vf RU1QVFkpOworCQkJcmV0dXJuIHNsb3RubzsKIAkJfQogCiAJCS8qCkBAIC0xMjY2LDYgKzEzMDUs NyBAQCByZXN0YXJ0OjsKIAkJaWYgKHNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9PSBTTFJV X1BBR0VfVkFMSUQgJiYKIAkJCSFzaGFyZWQtPnBhZ2VfZGlydHlbc2xvdG5vXSkKIAkJeworCQkJ U2xydU1hcHBpbmdSZW1vdmUoY3RsLCBzaGFyZWQtPnBhZ2VfbnVtYmVyW3Nsb3Rub10pOwogCQkJ c2hhcmVkLT5wYWdlX3N0YXR1c1tzbG90bm9dID0gU0xSVV9QQUdFX0VNUFRZOwogCQkJY29udGlu dWU7CiAJCX0KQEAgLTEzNDgsNiArMTM4OCw3IEBAIHJlc3RhcnQ6CiAJCWlmIChzaGFyZWQtPnBh Z2Vfc3RhdHVzW3Nsb3Rub10gPT0gU0xSVV9QQUdFX1ZBTElEICYmCiAJCQkhc2hhcmVkLT5wYWdl X2RpcnR5W3Nsb3Rub10pCiAJCXsKKwkJCVNscnVNYXBwaW5nUmVtb3ZlKGN0bCwgc2hhcmVkLT5w YWdlX251bWJlcltzbG90bm9dKTsKIAkJCXNoYXJlZC0+cGFnZV9zdGF0dXNbc2xvdG5vXSA9IFNM UlVfUEFHRV9FTVBUWTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0xNjA5LDMgKzE2NTAsMzcgQEAg U2xydVN5bmNGaWxlVGFnKFNscnVDdGwgY3RsLCBjb25zdCBGaWxlVGFnICpmdGFnLCBjaGFyICpw YXRoKQogCWVycm5vID0gc2F2ZV9lcnJubzsKIAlyZXR1cm4gcmVzdWx0OwogfQorCitzdGF0aWMg aW50CitTbHJ1TWFwcGluZ0ZpbmQoU2xydUN0bCBjdGwsIGludCBwYWdlbm8pCit7CisJU2xydU1h cHBpbmdUYWJsZUVudHJ5ICptYXBwaW5nOworCisJbWFwcGluZyA9IGhhc2hfc2VhcmNoKGN0bC0+ bWFwcGluZ190YWJsZSwgJnBhZ2VubywgSEFTSF9GSU5ELCBOVUxMKTsKKwlpZiAobWFwcGluZykK KwkJcmV0dXJuIG1hcHBpbmctPnNsb3RubzsKKworCXJldHVybiAtMTsKK30KKworc3RhdGljIHZv aWQKK1NscnVNYXBwaW5nQWRkKFNscnVDdGwgY3RsLCBpbnQgcGFnZW5vLCBpbnQgc2xvdG5vKQor eworCVNscnVNYXBwaW5nVGFibGVFbnRyeSAqbWFwcGluZzsKKwlib29sCQlmb3VuZCBQR19VU0VE X0ZPUl9BU1NFUlRTX09OTFk7CisKKwltYXBwaW5nID0gaGFzaF9zZWFyY2goY3RsLT5tYXBwaW5n X3RhYmxlLCAmcGFnZW5vLCBIQVNIX0VOVEVSLCAmZm91bmQpOworCW1hcHBpbmctPnNsb3RubyA9 IHNsb3RubzsKKworCUFzc2VydCghZm91bmQpOworfQorCitzdGF0aWMgdm9pZAorU2xydU1hcHBp bmdSZW1vdmUoU2xydUN0bCBjdGwsIGludCBwYWdlbm8pCit7CisJYm9vbAkJZm91bmQgUEdfVVNF RF9GT1JfQVNTRVJUU19PTkxZOworCisJaGFzaF9zZWFyY2goY3RsLT5tYXBwaW5nX3RhYmxlLCAm cGFnZW5vLCBIQVNIX1JFTU9WRSwgJmZvdW5kKTsKKworCUFzc2VydChmb3VuZCk7Cit9CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Ns cnUuaAppbmRleCBkZDUyZThjZWM3Li44YWEzZWZjMGVlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9hY2Nlc3Mvc2xydS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgKQEAgLTE2LDYg KzE2LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKICNpbmNsdWRlICJzdG9yYWdl L2x3bG9jay5oIgogI2luY2x1ZGUgInN0b3JhZ2Uvc3luYy5oIgorI2luY2x1ZGUgInV0aWxzL2hz ZWFyY2guaCIKIAogCiAvKgpAQCAtMTEwLDYgKzExMSw3IEBAIHR5cGVkZWYgU2xydVNoYXJlZERh dGEgKlNscnVTaGFyZWQ7CiB0eXBlZGVmIHN0cnVjdCBTbHJ1Q3RsRGF0YQogewogCVNscnVTaGFy ZWQJc2hhcmVkOworCUhUQUIJICAgKm1hcHBpbmdfdGFibGU7CiAKIAkvKgogCSAqIFdoaWNoIHN5 bmMgaGFuZGxlciBmdW5jdGlvbiB0byB1c2Ugd2hlbiBoYW5kaW5nIHN5bmMgcmVxdWVzdHMgb3Zl ciB0bwotLSAKMi4zMC4xCgo= --00000000000088dd4b05be51fe78--