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 1oP4Es-0003qT-M6 for pgsql-hackers@arkaria.postgresql.org; Fri, 19 Aug 2022 15:48:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oP4Er-0002Y3-I5 for pgsql-hackers@arkaria.postgresql.org; Fri, 19 Aug 2022 15:48:49 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oP4Eq-0002Xt-Qb for pgsql-hackers@lists.postgresql.org; Fri, 19 Aug 2022 15:48:49 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oP4Em-0004EO-6m for pgsql-hackers@postgresql.org; Fri, 19 Aug 2022 15:48:47 +0000 Received: from mail.postgrespro.ru (cyclops.postgrespro.ru [93.174.131.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 7E42B21C3A74; Fri, 19 Aug 2022 18:48:41 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1660924121; bh=o5hbo1T/Lzdd3x7bUKv/nxBbck5wHmoXMNouUrBWV4Y=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=iaAEulCnPJstsK982IS4lc6rWFLX2jwliz8P8Xv8vvUQ4Vg1vINR0XIUQDdA2+g9X nJBZ623wODZSszU5Gh9y6D80YWQ+NCcS53Prm2qxDP/oq9Dx1w2h9G+sYBbseK7aF8 f12r0I3ddzhLwEguS5iR4Bj//MwqUet2jvP1cbfQ= MIME-Version: 1.0 Date: Fri, 19 Aug 2022 18:48:41 +0300 From: i.lazarev@postgrespro.ru To: Andrey Borodin Cc: Yura Sokolov , Andres Freund , Thomas Munro , Gilles Darold , Tomas Vondra , Tomas Vondra , Alexander Korotkov , Anastasia Lubennikova , Daniel Gustafsson , Kyotaro Horiguchi , pgsql-hackers Subject: Re: MultiXact\SLRU buffers configuration In-Reply-To: <6BABE00C-64BD-4F5D-A071-32B42FAAEB76@yandex-team.ru> References: <27D90FFC-B897-4BC5-B4F5-9047B9886AA3@yandex-team.ru> <15CA416B-3446-462D-902B-4883DD3ADEE6@yandex-team.ru> <3130B767-FEB7-4F18-AE90-DD95B4367316@yandex-team.ru> <20220219214223.w4bmhiozeimcqhzb@alap3.anarazel.de> <01FF6FFC-7379-43EA-B04A-673C98ABFAAF@yandex-team.ru> <452d01f7e331458f56ad79bef537c31b@postgrespro.ru> <6BABE00C-64BD-4F5D-A071-32B42FAAEB76@yandex-team.ru> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <01b29498849ef738be9e786660f98639@postgrespro.ru> X-Sender: i.lazarev@postgrespro.ru Content-Type: multipart/mixed; boundary="=_e9a89a47b322caaa48ae2407857273ab" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_e9a89a47b322caaa48ae2407857273ab Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Andrey Borodin wrote 2022-08-18 06:35: > > I like the idea of one knob instead of one per each SLRU. Maybe we > even could deduce sane value from NBuffers? That would effectively > lead to 0 knobs :) > > Your patch have a prefix "v22-0006", does it mean there are 5 previous > steps of the patchset? > > Thank you! > > > Best regards, Andrey Borodin. Not sure it's possible to deduce from NBuffers only. slru_buffers_scale_shift looks like relief valve for systems with ultra scaled NBuffers. Regarding v22-0006 I just tried to choose index unique for this thread so now it's fixed to 0001 indexing. --=_e9a89a47b322caaa48ae2407857273ab Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v23-0001-bucketed-SLRUs-simplified.patch Content-Disposition: attachment; filename=v23-0001-bucketed-SLRUs-simplified.patch; size=18411 SW5kZXg6IHNyYy9pbmNsdWRlL21pc2NhZG1pbi5oCklERUEgYWRkaXRpb25hbCBpbmZvOgpTdWJz eXN0ZW06IGNvbS5pbnRlbGxpai5vcGVuYXBpLmRpZmYuaW1wbC5wYXRjaC5DaGFyc2V0RVAKPCs+ VVRGLTgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggYi9z cmMvaW5jbHVkZS9taXNjYWRtaW4uaAotLS0gYS9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaAkocmV2 aXNpb24gMDIwMjU4ZmJkMzBkMzdkZGQwM2QwZWM2ODI2NGQxNTQ0ZjhkMjgzOCkKKysrIGIvc3Jj L2luY2x1ZGUvbWlzY2FkbWluLmgJKGRhdGUgMTY2MDY3ODEwODczMCkKQEAgLTE3Niw2ICsxNzYs NyBAQAogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBNYXhDb25uZWN0aW9uczsKIGV4dGVybiBQR0RM TElNUE9SVCBpbnQgbWF4X3dvcmtlcl9wcm9jZXNzZXM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50 IG1heF9wYXJhbGxlbF93b3JrZXJzOworZXh0ZXJuIFBHRExMSU1QT1JUIGludCBzbHJ1X2J1ZmZl cnNfc2l6ZV9zY2FsZTsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBNeVByb2NQaWQ7CiBleHRl cm4gUEdETExJTVBPUlQgcGdfdGltZV90IE15U3RhcnRUaW1lOwpJbmRleDogc3JjL2luY2x1ZGUv YWNjZXNzL3N1YnRyYW5zLmgKSURFQSBhZGRpdGlvbmFsIGluZm86ClN1YnN5c3RlbTogY29tLmlu dGVsbGlqLm9wZW5hcGkuZGlmZi5pbXBsLnBhdGNoLkNoYXJzZXRFUAo8Kz5VVEYtOAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaCBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9zdWJ0cmFucy5oCi0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zdWJ0cmFucy5o CShyZXZpc2lvbiAwMjAyNThmYmQzMGQzN2RkZDAzZDBlYzY4MjY0ZDE1NDRmOGQyODM4KQorKysg Yi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3VidHJhbnMuaAkoZGF0ZSAxNjYwNjc4MTA4Njk4KQpAQCAt MTIsNyArMTIsNyBAQAogI2RlZmluZSBTVUJUUkFOU19ICiAKIC8qIE51bWJlciBvZiBTTFJVIGJ1 ZmZlcnMgdG8gdXNlIGZvciBzdWJ0cmFucyAqLwotI2RlZmluZSBOVU1fU1VCVFJBTlNfQlVGRkVS UwkzMgorI2RlZmluZSBOVU1fU1VCVFJBTlNfQlVGRkVSUwkoMzIgPDwgc2xydV9idWZmZXJzX3Np emVfc2NhbGUpCiAKIGV4dGVybiB2b2lkIFN1YlRyYW5zU2V0UGFyZW50KFRyYW5zYWN0aW9uSWQg eGlkLCBUcmFuc2FjdGlvbklkIHBhcmVudCk7CiBleHRlcm4gVHJhbnNhY3Rpb25JZCBTdWJUcmFu c0dldFBhcmVudChUcmFuc2FjdGlvbklkIHhpZCk7CkluZGV4OiBzcmMvYmFja2VuZC91dGlscy9p bml0L2dsb2JhbHMuYwpJREVBIGFkZGl0aW9uYWwgaW5mbzoKU3Vic3lzdGVtOiBjb20uaW50ZWxs aWoub3BlbmFwaS5kaWZmLmltcGwucGF0Y2guQ2hhcnNldEVQCjwrPlVURi04Cj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvaW5pdC9nbG9iYWxzLmMKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9nbG9i YWxzLmMJKHJldmlzaW9uIDAyMDI1OGZiZDMwZDM3ZGRkMDNkMGVjNjgyNjRkMTU0NGY4ZDI4Mzgp CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvZ2xvYmFscy5jCShkYXRlIDE2NjA2NzgwNjQw NDgpCkBAIC0xNTAsMyArMTUwLDUgQEAKIAogaW50CQkJVmFjdXVtQ29zdEJhbGFuY2UgPSAwOwkv KiB3b3JraW5nIHN0YXRlIGZvciB2YWN1dW0gKi8KIGJvb2wJCVZhY3V1bUNvc3RBY3RpdmUgPSBm YWxzZTsKKworaW50CQkJc2xydV9idWZmZXJzX3NpemVfc2NhbGUgPSAyOwkvKiBwb3dlciAyIHNj YWxlIGZvciBTTFJVIGJ1ZmZlcnMgKi8KSW5kZXg6IHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3NscnUuYwpJREVBIGFkZGl0aW9uYWwgaW5mbzoKU3Vic3lzdGVtOiBjb20uaW50ZWxsaWoub3Bl bmFwaS5kaWZmLmltcGwucGF0Y2guQ2hhcnNldEVQCjwrPlVURi04Cj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3NscnUuYwotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1 LmMJKHJldmlzaW9uIDAyMDI1OGZiZDMwZDM3ZGRkMDNkMGVjNjgyNjRkMTU0NGY4ZDI4MzgpCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYwkoZGF0ZSAxNjYwNjc4MDYzOTgw KQpAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvZmQuaCIKICNpbmNsdWRlICJzdG9yYWdlL3NobWVtLmgiCisjaW5jbHVkZSAicG9ydC9wZ19i aXR1dGlscy5oIgogCiAjZGVmaW5lIFNscnVGaWxlTmFtZShjdGwsIHBhdGgsIHNlZykgXAogCXNu cHJpbnRmKHBhdGgsIE1BWFBHUEFUSCwgIiVzLyUwNFgiLCAoY3RsKS0+RGlyLCBzZWcpCkBAIC03 MSw2ICs3MiwxNyBAQAogICovCiAjZGVmaW5lIE1BWF9XUklURUFMTF9CVUZGRVJTCTE2CiAKKy8q CisgKiBUbyBhdm9pZCBvdmVyZmxvd2luZyBpbnRlcm5hbCBhcml0aG1ldGljIGFuZCB0aGUgc2l6 ZV90IGRhdGEgdHlwZSwgdGhlCisgKiBudW1iZXIgb2YgYnVmZmVycyBzaG91bGQgbm90IGV4Y2Vl ZCB0aGlzIG51bWJlci4KKyAqLworI2RlZmluZSBTTFJVX01BWF9BTExPV0VEX0JVRkZFUlMgKCgx MDI0ICogMTAyNCAqIDEwMjQpIC8gQkxDS1NaKQorCisvKgorICogU0xSVSBiYW5rIHNpemUgZm9y IHNsb3RubyBoYXNoIGJhbmtzCisgKi8KKyNkZWZpbmUgU0xSVV9CQU5LX1NJWkUgOAorCiB0eXBl ZGVmIHN0cnVjdCBTbHJ1V3JpdGVBbGxEYXRhCiB7CiAJaW50CQkJbnVtX2ZpbGVzOwkJLyogIyBm aWxlcyBhY3R1YWxseSBvcGVuICovCkBAIC0xMzQsNyArMTQ2LDcgQEAKIHN0YXRpYyBTbHJ1RXJy b3JDYXVzZSBzbHJ1X2VycmNhdXNlOwogc3RhdGljIGludAlzbHJ1X2Vycm5vOwogCi0KK3N0YXRp YyB2b2lkIFNscnVBZGp1c3ROU2xvdHMoaW50ICpuc2xvdHMsIGludCAqYmFua21hc2spOwogc3Rh dGljIHZvaWQgU2ltcGxlTHJ1WmVyb0xTTnMoU2xydUN0bCBjdGwsIGludCBzbG90bm8pOwogc3Rh dGljIHZvaWQgU2ltcGxlTHJ1V2FpdElPKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5vKTsKIHN0YXRp YyB2b2lkIFNscnVJbnRlcm5hbFdyaXRlUGFnZShTbHJ1Q3RsIGN0bCwgaW50IHNsb3RubywgU2xy dVdyaXRlQWxsIGZkYXRhKTsKQEAgLTE0OCw2ICsxNjAsMjUgQEAKIAkJCQkJCQkJCSAgaW50IHNl Z3BhZ2UsIHZvaWQgKmRhdGEpOwogc3RhdGljIHZvaWQgU2xydUludGVybmFsRGVsZXRlU2VnbWVu dChTbHJ1Q3RsIGN0bCwgaW50IHNlZ25vKTsKIAorLyoKKyAqIFBpY2sgbnVtYmVyIG9mIHNsb3Rz IGFuZCBiYW5rIHNpemUgb3B0aW1hbCBmb3IgaGFzaGVkIGFzc29jaWF0aXZlIFNMUlUgYnVmZmVy cy4KKyAqIFdlIGRlY2xhcmUgU0xSVSBuc2xvdHMgaXMgYWx3YXlzIHBvd2VyIG9mIDIuCisgKiBX ZSBzcGxpdCBTTFJVIHRvIDgtc2l6ZWQgaGFzaCBiYW5rcywgYWZ0ZXIgc29tZSBwZXJmb3JtYW5j ZSBiZW5jaG1hcmtzLgorICogV2UgaGFzaCBwYWdlbm8gdG8gYmFua3MgYnkgcGFnZW5vIG1hc2tl ZCBieSAzIHVwcGVyIGJpdHMuCisgKi8KK3N0YXRpYyB2b2lkCitTbHJ1QWRqdXN0TlNsb3RzKGlu dCAqbnNsb3RzLCBpbnQgKmJhbmttYXNrKQoreworCUFzc2VydCgqbnNsb3RzID4gMCk7CisJQXNz ZXJ0KCpuc2xvdHMgPD0gU0xSVV9NQVhfQUxMT1dFRF9CVUZGRVJTKTsKKworCSpuc2xvdHMgPSAo aW50KSBwZ19uZXh0cG93ZXIyXzMyKE1heChTTFJVX0JBTktfU0laRSwgTWluKCpuc2xvdHMsIE5C dWZmZXJzIC8gMjU2KSkpOworCisJKmJhbmttYXNrID0gKm5zbG90cyAvIFNMUlVfQkFOS19TSVpF IC0gMTsKKworCWVsb2coREVCVUc1LCAibnNsb3RzICVkIGJhbmtzaXplICVkIG5iYW5rcyAlZCBi YW5rbWFzayAleCIsICpuc2xvdHMsIFNMUlVfQkFOS19TSVpFLCAqbnNsb3RzIC8gU0xSVV9CQU5L X1NJWkUsICpiYW5rbWFzayk7Cit9CisKIC8qCiAgKiBJbml0aWFsaXphdGlvbiBvZiBzaGFyZWQg bWVtb3J5CiAgKi8KQEAgLTE1Niw2ICsxODcsOSBAQAogU2ltcGxlTHJ1U2htZW1TaXplKGludCBu c2xvdHMsIGludCBubHNucykKIHsKIAlTaXplCQlzejsKKwlpbnQJCQliYW5rbWFza19pZ25vcmU7 CisKKwlTbHJ1QWRqdXN0TlNsb3RzKCZuc2xvdHMsICZiYW5rbWFza19pZ25vcmUpOwogCiAJLyog d2UgYXNzdW1lIG5zbG90cyBpc24ndCBzbyBsYXJnZSBhcyB0byByaXNrIG92ZXJmbG93ICovCiAJ c3ogPSBNQVhBTElHTihzaXplb2YoU2xydVNoYXJlZERhdGEpKTsKQEAgLTE5MCw2ICsyMjQsOSBA QAogewogCVNscnVTaGFyZWQJc2hhcmVkOwogCWJvb2wJCWZvdW5kOworCWludAkJCWJhbmttYXNr OworCisJU2xydUFkanVzdE5TbG90cygmbnNsb3RzLCAmYmFua21hc2spOwogCiAJc2hhcmVkID0g KFNscnVTaGFyZWQpIFNobWVtSW5pdFN0cnVjdChuYW1lLAogCQkJCQkJCQkJCSAgU2ltcGxlTHJ1 U2htZW1TaXplKG5zbG90cywgbmxzbnMpLApAQCAtMjU3LDcgKzI5NCwxMCBAQAogCQlBc3NlcnQo cHRyIC0gKGNoYXIgKikgc2hhcmVkIDw9IFNpbXBsZUxydVNobWVtU2l6ZShuc2xvdHMsIG5sc25z KSk7CiAJfQogCWVsc2UKKwl7CiAJCUFzc2VydChmb3VuZCk7CisJCUFzc2VydChzaGFyZWQtPm51 bV9zbG90cyA9PSBuc2xvdHMpOworCX0KIAogCS8qCiAJICogSW5pdGlhbGl6ZSB0aGUgdW5zaGFy ZWQgY29udHJvbCBzdHJ1Y3QsIGluY2x1ZGluZyBkaXJlY3RvcnkgcGF0aC4gV2UKQEAgLTI2NSw2 ICszMDUsNyBAQAogCSAqLwogCWN0bC0+c2hhcmVkID0gc2hhcmVkOwogCWN0bC0+c3luY19oYW5k bGVyID0gc3luY19oYW5kbGVyOworCWN0bC0+YmFua19tYXNrID0gYmFua21hc2s7CiAJc3RybGNw eShjdGwtPkRpciwgc3ViZGlyLCBzaXplb2YoY3RsLT5EaXIpKTsKIH0KIApAQCAtNDk2LDEyICs1 MzcsMTQgQEAKIHsKIAlTbHJ1U2hhcmVkCXNoYXJlZCA9IGN0bC0+c2hhcmVkOwogCWludAkJCXNs b3RubzsKKwlpbnQJCQliYW5rc3RhcnQgPSAocGFnZW5vICYgY3RsLT5iYW5rX21hc2spICogU0xS VV9CQU5LX1NJWkU7CisJaW50CQkJYmFua2VuZCA9IGJhbmtzdGFydCArIFNMUlVfQkFOS19TSVpF OwogCiAJLyogVHJ5IHRvIGZpbmQgdGhlIHBhZ2Ugd2hpbGUgaG9sZGluZyBvbmx5IHNoYXJlZCBs b2NrICovCiAJTFdMb2NrQWNxdWlyZShzaGFyZWQtPkNvbnRyb2xMb2NrLCBMV19TSEFSRUQpOwog CiAJLyogU2VlIGlmIHBhZ2UgaXMgYWxyZWFkeSBpbiBhIGJ1ZmZlciAqLwotCWZvciAoc2xvdG5v ID0gMDsgc2xvdG5vIDwgc2hhcmVkLT5udW1fc2xvdHM7IHNsb3RubysrKQorCWZvciAoc2xvdG5v ID0gYmFua3N0YXJ0OyBzbG90bm8gPCBiYW5rZW5kOyBzbG90bm8rKykKIAl7CiAJCWlmIChzaGFy ZWQtPnBhZ2VfbnVtYmVyW3Nsb3Rub10gPT0gcGFnZW5vICYmCiAJCQlzaGFyZWQtPnBhZ2Vfc3Rh dHVzW3Nsb3Rub10gIT0gU0xSVV9QQUdFX0VNUFRZICYmCkBAIC0xMDMwLDcgKzEwNzMsMTAgQEAK IAkJaW50CQkJYmVzdF9pbnZhbGlkX3BhZ2VfbnVtYmVyID0gMDsJLyoga2VlcCBjb21waWxlciBx dWlldCAqLwogCiAJCS8qIFNlZSBpZiBwYWdlIGFscmVhZHkgaGFzIGEgYnVmZmVyIGFzc2lnbmVk ICovCi0JCWZvciAoc2xvdG5vID0gMDsgc2xvdG5vIDwgc2hhcmVkLT5udW1fc2xvdHM7IHNsb3Ru bysrKQorCQlpbnQJCQliYW5rc3RhcnQgPSAocGFnZW5vICYgY3RsLT5iYW5rX21hc2spICogU0xS VV9CQU5LX1NJWkU7CisJCWludAkJCWJhbmtlbmQgPSBiYW5rc3RhcnQgKyBTTFJVX0JBTktfU0la RTsKKworCQlmb3IgKHNsb3RubyA9IGJhbmtzdGFydDsgc2xvdG5vIDwgYmFua2VuZDsgc2xvdG5v KyspCiAJCXsKIAkJCWlmIChzaGFyZWQtPnBhZ2VfbnVtYmVyW3Nsb3Rub10gPT0gcGFnZW5vICYm CiAJCQkJc2hhcmVkLT5wYWdlX3N0YXR1c1tzbG90bm9dICE9IFNMUlVfUEFHRV9FTVBUWSkKQEAg LTEwNjUsNyArMTExMSw3IEBACiAJCSAqIG11bHRpcGxlIHBhZ2VzIHdpdGggdGhlIHNhbWUgbHJ1 X2NvdW50LgogCQkgKi8KIAkJY3VyX2NvdW50ID0gKHNoYXJlZC0+Y3VyX2xydV9jb3VudCkrKzsK LQkJZm9yIChzbG90bm8gPSAwOyBzbG90bm8gPCBzaGFyZWQtPm51bV9zbG90czsgc2xvdG5vKysp CisJCWZvciAoc2xvdG5vID0gYmFua3N0YXJ0OyBzbG90bm8gPCBiYW5rZW5kOyBzbG90bm8rKykK IAkJewogCQkJaW50CQkJdGhpc19kZWx0YTsKIAkJCWludAkJCXRoaXNfcGFnZV9udW1iZXI7Cklu ZGV4OiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMKSURFQSBhZGRpdGlvbmFsIGlu Zm86ClN1YnN5c3RlbTogY29tLmludGVsbGlqLm9wZW5hcGkuZGlmZi5pbXBsLnBhdGNoLkNoYXJz ZXRFUAo8Kz5VVEYtOAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS9jbG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jCShyZXZpc2lvbiAwMjAyNThmYmQzMGQz N2RkZDAzZDBlYzY4MjY0ZDE1NDRmOGQyODM4KQorKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9jbG9nLmMJKGRhdGUgMTY2MDY3Nzg2Nzg3NykKQEAgLTc0LDYgKzc0LDggQEAKICNkZWZp bmUgR2V0TFNOSW5kZXgoc2xvdG5vLCB4aWQpCSgoc2xvdG5vKSAqIENMT0dfTFNOU19QRVJfUEFH RSArIFwKIAkoKHhpZCkgJSAoVHJhbnNhY3Rpb25JZCkgQ0xPR19YQUNUU19QRVJfUEFHRSkgLyBD TE9HX1hBQ1RTX1BFUl9MU05fR1JPVVApCiAKKyNkZWZpbmUgTlVNX0NMT0dfQlVGRkVSUyAJKDEy OCA8PCBzbHJ1X2J1ZmZlcnNfc2l6ZV9zY2FsZSkKKwogLyoKICAqIFRoZSBudW1iZXIgb2Ygc3Vi dHJhbnNhY3Rpb25zIGJlbG93IHdoaWNoIHdlIGNvbnNpZGVyIHRvIGFwcGx5IGNsb2cgZ3JvdXAK ICAqIHVwZGF0ZSBvcHRpbWl6YXRpb24uICBUZXN0aW5nIHJldmVhbHMgdGhhdCB0aGUgbnVtYmVy IGhpZ2hlciB0aGFuIHRoaXMgY2FuCkBAIC02NjEsNDIgKzY2MywyMCBAQAogCXJldHVybiBzdGF0 dXM7CiB9CiAKLS8qCi0gKiBOdW1iZXIgb2Ygc2hhcmVkIENMT0cgYnVmZmVycy4KLSAqCi0gKiBP biBsYXJnZXIgbXVsdGktcHJvY2Vzc29yIHN5c3RlbXMsIGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUg bWFueSBDTE9HIHBhZ2UKLSAqIHJlcXVlc3RzIGluIGZsaWdodCBhdCBvbmUgdGltZSB3aGljaCBj b3VsZCBsZWFkIHRvIGRpc2sgYWNjZXNzIGZvciBDTE9HCi0gKiBwYWdlIGlmIHRoZSByZXF1aXJl ZCBwYWdlIGlzIG5vdCBmb3VuZCBpbiBtZW1vcnkuICBUZXN0aW5nIHJldmVhbGVkIHRoYXQgd2UK LSAqIGNhbiBnZXQgdGhlIGJlc3QgcGVyZm9ybWFuY2UgYnkgaGF2aW5nIDEyOCBDTE9HIGJ1ZmZl cnMsIG1vcmUgdGhhbiB0aGF0IGl0Ci0gKiBkb2Vzbid0IGltcHJvdmUgcGVyZm9ybWFuY2UuCi0g KgotICogVW5jb25kaXRpb25hbGx5IGtlZXBpbmcgdGhlIG51bWJlciBvZiBDTE9HIGJ1ZmZlcnMg dG8gMTI4IGRpZCBub3Qgc2VlbSBsaWtlCi0gKiBhIGdvb2QgaWRlYSwgYmVjYXVzZSBpdCB3b3Vs ZCBpbmNyZWFzZSB0aGUgbWluaW11bSBhbW91bnQgb2Ygc2hhcmVkIG1lbW9yeQotICogcmVxdWly ZWQgdG8gc3RhcnQsIHdoaWNoIGNvdWxkIGJlIGEgcHJvYmxlbSBmb3IgcGVvcGxlIHJ1bm5pbmcg dmVyeSBzbWFsbAotICogY29uZmlndXJhdGlvbnMuICBUaGUgZm9sbG93aW5nIGZvcm11bGEgc2Vl bXMgdG8gcmVwcmVzZW50IGEgcmVhc29uYWJsZQotICogY29tcHJvbWlzZTogcGVvcGxlIHdpdGgg dmVyeSBsb3cgdmFsdWVzIGZvciBzaGFyZWRfYnVmZmVycyB3aWxsIGdldCBmZXdlcgotICogQ0xP RyBidWZmZXJzIGFzIHdlbGwsIGFuZCBldmVyeW9uZSBlbHNlIHdpbGwgZ2V0IDEyOC4KLSAqLwot U2l6ZQotQ0xPR1NobWVtQnVmZmVycyh2b2lkKQotewotCXJldHVybiBNaW4oMTI4LCBNYXgoNCwg TkJ1ZmZlcnMgLyA1MTIpKTsKLX0KLQogLyoKICAqIEluaXRpYWxpemF0aW9uIG9mIHNoYXJlZCBt ZW1vcnkgZm9yIENMT0cKICAqLwogU2l6ZQogQ0xPR1NobWVtU2l6ZSh2b2lkKQogewotCXJldHVy biBTaW1wbGVMcnVTaG1lbVNpemUoQ0xPR1NobWVtQnVmZmVycygpLCBDTE9HX0xTTlNfUEVSX1BB R0UpOworCXJldHVybiBTaW1wbGVMcnVTaG1lbVNpemUoTlVNX0NMT0dfQlVGRkVSUywgQ0xPR19M U05TX1BFUl9QQUdFKTsKIH0KIAogdm9pZAogQ0xPR1NobWVtSW5pdCh2b2lkKQogewogCVhhY3RD dGwtPlBhZ2VQcmVjZWRlcyA9IENMT0dQYWdlUHJlY2VkZXM7Ci0JU2ltcGxlTHJ1SW5pdChYYWN0 Q3RsLCAiWGFjdCIsIENMT0dTaG1lbUJ1ZmZlcnMoKSwgQ0xPR19MU05TX1BFUl9QQUdFLAorCVNp bXBsZUxydUluaXQoWGFjdEN0bCwgIlhhY3QiLCBOVU1fQ0xPR19CVUZGRVJTLCBDTE9HX0xTTlNf UEVSX1BBR0UsCiAJCQkJICBYYWN0U0xSVUxvY2ssICJwZ194YWN0IiwgTFdUUkFOQ0hFX1hBQ1Rf QlVGRkVSLAogCQkJCSAgU1lOQ19IQU5ETEVSX0NMT0cpOwogCVNscnVQYWdlUHJlY2VkZXNVbml0 VGVzdHMoWGFjdEN0bCwgQ0xPR19YQUNUU19QRVJfUEFHRSk7CkluZGV4OiBzcmMvaW5jbHVkZS9z dG9yYWdlL3ByZWRpY2F0ZS5oCklERUEgYWRkaXRpb25hbCBpbmZvOgpTdWJzeXN0ZW06IGNvbS5p bnRlbGxpai5vcGVuYXBpLmRpZmYuaW1wbC5wYXRjaC5DaGFyc2V0RVAKPCs+VVRGLTgKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcmVkaWNhdGUuaCBiL3NyYy9p bmNsdWRlL3N0b3JhZ2UvcHJlZGljYXRlLmgKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcmVk aWNhdGUuaAkocmV2aXNpb24gMDIwMjU4ZmJkMzBkMzdkZGQwM2QwZWM2ODI2NGQxNTQ0ZjhkMjgz OCkKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcmVkaWNhdGUuaAkoZGF0ZSAxNjYwNjc4MTA4 NzE4KQpAQCAtMjgsNyArMjgsNyBAQAogCiAKIC8qIE51bWJlciBvZiBTTFJVIGJ1ZmZlcnMgdG8g dXNlIGZvciBTZXJpYWwgU0xSVSAqLwotI2RlZmluZSBOVU1fU0VSSUFMX0JVRkZFUlMJCTE2Cisj ZGVmaW5lIE5VTV9TRVJJQUxfQlVGRkVSUwkoMTYgPDwgc2xydV9idWZmZXJzX3NpemVfc2NhbGUp CiAKIC8qCiAgKiBBIGhhbmRsZSB1c2VkIGZvciBzaGFyaW5nIFNFUklBTElaQUJMRVhBQ1Qgb2Jq ZWN0cyBiZXR3ZWVuIHRoZSBwYXJ0aWNpcGFudHMKSW5kZXg6IHNyYy9iYWNrZW5kL3V0aWxzL21p c2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpJREVBIGFkZGl0aW9uYWwgaW5mbzoKU3Vic3lzdGVt OiBjb20uaW50ZWxsaWoub3BlbmFwaS5kaWZmLmltcGwucGF0Y2guQ2hhcnNldEVQCjwrPlVURi04 Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNx bC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZQotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUJ KHJldmlzaW9uIDAyMDI1OGZiZDMwZDM3ZGRkMDNkMGVjNjgyNjRkMTU0NGY4ZDI4MzgpCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQkoZGF0ZSAxNjYw Njc4MTA4NjUwKQpAQCAtMTU1LDYgKzE1NSw4IEBACiAJCQkJCSMgICBtbWFwCiAJCQkJCSMgKGNo YW5nZSByZXF1aXJlcyByZXN0YXJ0KQogI21pbl9keW5hbWljX3NoYXJlZF9tZW1vcnkgPSAwTUIJ IyAoY2hhbmdlIHJlcXVpcmVzIHJlc3RhcnQpCisjc2xydV9idWZmZXJzX3NpemVfc2NhbGUgPSAy ICMgU0xSVSBidWZmZXJzIHNpemUgc2NhbGUgb2YgcG93ZXIgMiwgcmFuZ2UgMC4uNworCQkJCQkj IChjaGFuZ2UgcmVxdWlyZXMgcmVzdGFydCkKIAogIyAtIERpc2sgLQogCkluZGV4OiBzcmMvaW5j bHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgKSURFQSBhZGRpdGlvbmFsIGluZm86ClN1YnN5c3RlbTog Y29tLmludGVsbGlqLm9wZW5hcGkuZGlmZi5pbXBsLnBhdGNoLkNoYXJzZXRFUAo8Kz5VVEYtOAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmggYi9z cmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL211 bHRpeGFjdC5oCShyZXZpc2lvbiAwMjAyNThmYmQzMGQzN2RkZDAzZDBlYzY4MjY0ZDE1NDRmOGQy ODM4KQorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbXVsdGl4YWN0LmgJKGRhdGUgMTY2MDY3ODEw ODY3OCkKQEAgLTMwLDggKzMwLDggQEAKICNkZWZpbmUgTWF4TXVsdGlYYWN0T2Zmc2V0CSgoTXVs dGlYYWN0T2Zmc2V0KSAweEZGRkZGRkZGKQogCiAvKiBOdW1iZXIgb2YgU0xSVSBidWZmZXJzIHRv IHVzZSBmb3IgbXVsdGl4YWN0ICovCi0jZGVmaW5lIE5VTV9NVUxUSVhBQ1RPRkZTRVRfQlVGRkVS UwkJOAotI2RlZmluZSBOVU1fTVVMVElYQUNUTUVNQkVSX0JVRkZFUlMJCTE2CisjZGVmaW5lIE5V TV9NVUxUSVhBQ1RPRkZTRVRfQlVGRkVSUwkJKDE2IDw8IHNscnVfYnVmZmVyc19zaXplX3NjYWxl KQorI2RlZmluZSBOVU1fTVVMVElYQUNUTUVNQkVSX0JVRkZFUlMJCSgzMiA8PCBzbHJ1X2J1ZmZl cnNfc2l6ZV9zY2FsZSkKIAogLyoKICAqIFBvc3NpYmxlIG11bHRpeGFjdCBsb2NrIG1vZGVzICgi c3RhdHVzIikuICBUaGUgZmlyc3QgZm91ciBtb2RlcyBhcmUgZm9yCkluZGV4OiBzcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Yy5jCklERUEgYWRkaXRpb25hbCBpbmZvOgpTdWJzeXN0ZW06IGNvbS5p bnRlbGxpai5vcGVuYXBpLmRpZmYuaW1wbC5wYXRjaC5DaGFyc2V0RVAKPCs+VVRGLTgKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvZ3VjLmMKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwko cmV2aXNpb24gMDIwMjU4ZmJkMzBkMzdkZGQwM2QwZWM2ODI2NGQxNTQ0ZjhkMjgzOCkKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYwkoZGF0ZSAxNjYwNjc4MDY0MjE2KQpAQCAtMzIs OSArMzIsMTEgQEAKICNlbmRpZgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogCisjaW5jbHVkZSAiYWNj ZXNzL2Nsb2cuaCIKICNpbmNsdWRlICJhY2Nlc3MvY29tbWl0X3RzLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL2dpbi5oIgogI2luY2x1ZGUgImFjY2Vzcy9ybWdyLmgiCisjaW5jbHVkZSAiYWNjZXNzL3Ns cnUuaCIKICNpbmNsdWRlICJhY2Nlc3MvdGFibGVhbS5oIgogI2luY2x1ZGUgImFjY2Vzcy90b2Fz dF9jb21wcmVzc2lvbi5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCkBAIC0yMzc1LDYg KzIzNzcsMTYgQEAKIAkJLTEsIC0xLCBJTlRfTUFYLAogCQlOVUxMLCBOVUxMLCBOVUxMCiAJfSwK KworCXsKKwkJeyJzbHJ1X2J1ZmZlcnNfc2l6ZV9zY2FsZSIsIFBHQ19QT1NUTUFTVEVSLCBSRVNP VVJDRVNfTUVNLAorCQkJZ2V0dGV4dF9ub29wKCJTTFJVIGJ1ZmZlcnMgc2l6ZSBzY2FsZSBvZiBw b3dlciAyIiksCisJCQlOVUxMCisJCX0sCisJCSZzbHJ1X2J1ZmZlcnNfc2l6ZV9zY2FsZSwKKwkJ MiwgMCwgNywKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCiAKIAl7CiAJCXsidGVtcF9idWZmZXJz IiwgUEdDX1VTRVJTRVQsIFJFU09VUkNFU19NRU0sCkluZGV4OiBzcmMvaW5jbHVkZS9jb21tYW5k cy9hc3luYy5oCklERUEgYWRkaXRpb25hbCBpbmZvOgpTdWJzeXN0ZW06IGNvbS5pbnRlbGxpai5v cGVuYXBpLmRpZmYuaW1wbC5wYXRjaC5DaGFyc2V0RVAKPCs+VVRGLTgKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL2FzeW5jLmgKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvYXN5bmMuaAkocmV2aXNpb24g MDIwMjU4ZmJkMzBkMzdkZGQwM2QwZWM2ODI2NGQxNTQ0ZjhkMjgzOCkKKysrIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvYXN5bmMuaAkoZGF0ZSAxNjYwNjc4MTA4NzAyKQpAQCAtMTgsNyArMTgsNyBA QAogLyoKICAqIFRoZSBudW1iZXIgb2YgU0xSVSBwYWdlIGJ1ZmZlcnMgd2UgdXNlIGZvciB0aGUg bm90aWZpY2F0aW9uIHF1ZXVlLgogICovCi0jZGVmaW5lIE5VTV9OT1RJRllfQlVGRkVSUwk4Cisj ZGVmaW5lIE5VTV9OT1RJRllfQlVGRkVSUwkoMTYgPDwgc2xydV9idWZmZXJzX3NpemVfc2NhbGUp CiAKIGV4dGVybiBib29sIFRyYWNlX25vdGlmeTsKIGV4dGVybiB2b2xhdGlsZSBzaWdfYXRvbWlj X3Qgbm90aWZ5SW50ZXJydXB0UGVuZGluZzsKSW5kZXg6IHNyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1 LmgKSURFQSBhZGRpdGlvbmFsIGluZm86ClN1YnN5c3RlbTogY29tLmludGVsbGlqLm9wZW5hcGku ZGlmZi5pbXBsLnBhdGNoLkNoYXJzZXRFUAo8Kz5VVEYtOAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaAot LS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oCShyZXZpc2lvbiAwMjAyNThmYmQzMGQzN2Rk ZDAzZDBlYzY4MjY0ZDE1NDRmOGQyODM4KQorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5o CShkYXRlIDE2NjA2NzgxMDg2OTApCkBAIC0xMzQsNiArMTM0LDExIEBACiAJICogaXQncyBhbHdh eXMgdGhlIHNhbWUsIGl0IGRvZXNuJ3QgbmVlZCB0byBiZSBpbiBzaGFyZWQgbWVtb3J5LgogCSAq LwogCWNoYXIJCURpcls2NF07CisKKwkvKgorCSAqIG1hc2sgZm9yIHNsb3RubyBoYXNoIGJhbmsK KwkgKi8KKwlTaXplCQliYW5rX21hc2s7CiB9IFNscnVDdGxEYXRhOwogCiB0eXBlZGVmIFNscnVD dGxEYXRhICpTbHJ1Q3RsOwpJbmRleDogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJh bnMuYwpJREVBIGFkZGl0aW9uYWwgaW5mbzoKU3Vic3lzdGVtOiBjb20uaW50ZWxsaWoub3BlbmFw aS5kaWZmLmltcGwucGF0Y2guQ2hhcnNldEVQCjwrPlVURi04Cj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS9zdWJ0cmFucy5jCi0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3N1YnRyYW5zLmMJKHJldmlzaW9uIDAyMDI1OGZiZDMwZDM3ZGRkMDNkMGVjNjgyNjRkMTU0NGY4 ZDI4MzgpCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMJKGRhdGUg MTY2MDY3ODA2NDAzMikKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJhY2Nlc3Mvc2xydS5o IgogI2luY2x1ZGUgImFjY2Vzcy9zdWJ0cmFucy5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2Ft LmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdfdHJhY2UuaCIKICNpbmNs dWRlICJ1dGlscy9zbmFwbWdyLmgiCiAKSW5kZXg6IGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbApJ REVBIGFkZGl0aW9uYWwgaW5mbzoKU3Vic3lzdGVtOiBjb20uaW50ZWxsaWoub3BlbmFwaS5kaWZm LmltcGwucGF0Y2guQ2hhcnNldEVQCjwrPlVURi04Cj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAotLS0gYS9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwJKHJldmlzaW9uIDAyMDI1OGZiZDMwZDM3ZGRkMDNkMGVj NjgyNjRkMTU0NGY4ZDI4MzgpCisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAkoZGF0ZSAx NjYwNjc3ODY3ODYxKQpAQCAtMTk1Myw2ICsxOTUzLDM3IEBACiAgICAgICA8L2xpc3RpdGVtPgog ICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1zbHJ1LWJ1 ZmZlcnMtc2l6ZS1zY2FsZSIgeHJlZmxhYmVsPSJzbHJ1X2J1ZmZlcnNfc2l6ZV9zY2FsZSI+Cisg ICAgIDx0ZXJtPjx2YXJuYW1lPnNscnVfYnVmZmVyc19zaXplX3NjYWxlPC92YXJuYW1lPiAoPHR5 cGU+aW50ZWdlcjwvdHlwZT4pCisgICAgIDxpbmRleHRlcm0+CisgICAgICA8cHJpbWFyeT48dmFy bmFtZT5zbHJ1X2J1ZmZlcnNfc2l6ZV9zY2FsZTwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJh bWV0ZXI8L3ByaW1hcnk+CisgICAgIDwvaW5kZXh0ZXJtPgorICAgICA8L3Rlcm0+CisgICAgIDxs aXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFNwZWNpZmllcyBwb3dlciAyIHNjYWxlIGZv ciBhbGwgU0xSVSBzaGFyZWQgbWVtb3J5IGJ1ZmZlcnMgc2l6ZXMuIEJ1ZmZlcnMgc2l6ZXMgZGVw ZW5kcyBvbgorICAgICAgIGJvdGggPGxpdGVyYWw+Z3VjX3NscnVfYnVmZmVyc19zaXplX3NjYWxl PC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+c2hhcmVkX2J1ZmZlcnM8L2xpdGVyYWw+IHBhcmFtcy4K KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgYWZmZWN0cyBvbiBidWZm ZXJzIGluIHRoZSBsaXN0IGJlbG93IChzZWUgYWxzbyA8eHJlZiBsaW5rZW5kPSJwZ2RhdGEtY29u dGVudHMtdGFibGUiLz4pOgorICAgICAgICA8aXRlbWl6ZWRsaXN0PgorICAgICAgICAgPGxpc3Rp dGVtPjxwYXJhPjxsaXRlcmFsPk5VTV9NVUxUSVhBQ1RPRkZTRVRfQlVGRkVSUyA9IE1pbigzMiAm bHQ7Jmx0OyBzbHJ1X2J1ZmZlcnNfc2l6ZV9zY2FsZSwgc2hhcmVkX2J1ZmZlcnMvMjU2KTwvbGl0 ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4KKyAgICAgICAgIDxsaXN0aXRlbT48cGFyYT48bGl0ZXJh bD5OVU1fTVVMVElYQUNUTUVNQkVSX0JVRkZFUlMgPSBNaW4oNjQgJmx0OyZsdDsgc2xydV9idWZm ZXJzX3NpemVfc2NhbGUsIHNoYXJlZF9idWZmZXJzLzI1Nik8L2xpdGVyYWw+PC9wYXJhPjwvbGlz dGl0ZW0+CisgICAgICAgICA8bGlzdGl0ZW0+PHBhcmE+PGxpdGVyYWw+TlVNX1NVQlRSQU5TX0JV RkZFUlMgPSBNaW4oNjQgJmx0OyZsdDsgc2xydV9idWZmZXJzX3NpemVfc2NhbGUsIHNoYXJlZF9i dWZmZXJzLzI1Nik8L2xpdGVyYWw+PC9wYXJhPjwvbGlzdGl0ZW0+CisgICAgICAgICA8bGlzdGl0 ZW0+PHBhcmE+PGxpdGVyYWw+TlVNX05PVElGWV9CVUZGRVJTID0gTWluKDMyICZsdDsmbHQ7IHNs cnVfYnVmZmVyc19zaXplX3NjYWxlLCBzaGFyZWRfYnVmZmVycy8yNTYpPC9saXRlcmFsPjwvcGFy YT48L2xpc3RpdGVtPgorICAgICAgICAgPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPk5VTV9TRVJJ QUxfQlVGRkVSUyA9IE1pbigzMiAmbHQ7Jmx0OyBzbHJ1X2J1ZmZlcnNfc2l6ZV9zY2FsZSwgc2hh cmVkX2J1ZmZlcnMvMjU2KTwvbGl0ZXJhbD48L3BhcmE+PC9saXN0aXRlbT4KKyAgICAgICAgIDxs aXN0aXRlbT48cGFyYT48bGl0ZXJhbD5OVU1fQ0xPR19CVUZGRVJTID0gTWluKDEyOCAmbHQ7Jmx0 OyBzbHJ1X2J1ZmZlcnNfc2l6ZV9zY2FsZSwgc2hhcmVkX2J1ZmZlcnMvMjU2KTwvbGl0ZXJhbD48 L3BhcmE+PC9saXN0aXRlbT4KKyAgICAgICAgIDxsaXN0aXRlbT48cGFyYT48bGl0ZXJhbD5OVU1f Q09NTUlUX1RTX0JVRkZFUlMgPSBNaW4oMTI4ICZsdDsmbHQ7IHNscnVfYnVmZmVyc19zaXplX3Nj YWxlLCBzaGFyZWRfYnVmZmVycy8yNTYpPC9saXRlcmFsPjwvcGFyYT48L2xpc3RpdGVtPgorICAg ICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IFZhbHVlIGlzIGluIDxsaXRlcmFsPjAuLjc8L2xpdGVyYWw+IGJvdW5kcy4KKyAgICAgICBUaGUg ZGVmYXVsdCB2YWx1ZSBpcyA8bGl0ZXJhbD4yPC9saXRlcmFsPi4KKyAgICAgICBUaGlzIHBhcmFt ZXRlciBjYW4gb25seSBiZSBzZXQgYXQgc2VydmVyIHN0YXJ0LgorICAgICAgPC9wYXJhPgorICAg ICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkg aWQ9Imd1Yy1tYXgtc3RhY2stZGVwdGgiIHhyZWZsYWJlbD0ibWF4X3N0YWNrX2RlcHRoIj4KICAg ICAgIDx0ZXJtPjx2YXJuYW1lPm1heF9zdGFja19kZXB0aDwvdmFybmFtZT4gKDx0eXBlPmludGVn ZXI8L3R5cGU+KQogICAgICAgPGluZGV4dGVybT4KSW5kZXg6IHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL2NvbW1pdF90cy5jCklERUEgYWRkaXRpb25hbCBpbmZvOgpTdWJzeXN0ZW06IGNvbS5p bnRlbGxpai5vcGVuYXBpLmRpZmYuaW1wbC5wYXRjaC5DaGFyc2V0RVAKPCs+VVRGLTgKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYwotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYwkocmV2aXNpb24gMDIwMjU4ZmJkMzBkMzdkZGQw M2QwZWM2ODI2NGQxNTQ0ZjhkMjgzOCkKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v Y29tbWl0X3RzLmMJKGRhdGUgMTY2MDY3Nzg2Nzg4OSkKQEAgLTczLDYgKzczLDggQEAKICNkZWZp bmUgVHJhbnNhY3Rpb25JZFRvQ1RzRW50cnkoeGlkKQlcCiAJKCh4aWQpICUgKFRyYW5zYWN0aW9u SWQpIENPTU1JVF9UU19YQUNUU19QRVJfUEFHRSkKIAorI2RlZmluZSBOVU1fQ09NTUlUX1RTX0JV RkZFUlMJKDEyOCA8PCBzbHJ1X2J1ZmZlcnNfc2l6ZV9zY2FsZSkKKwogLyoKICAqIExpbmsgdG8g c2hhcmVkLW1lbW9yeSBkYXRhIHN0cnVjdHVyZXMgZm9yIENvbW1pdFRzIGNvbnRyb2wKICAqLwpA QCAtNTA4LDI2ICs1MTAsMTMgQEAKIAlQR19SRVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0dW0o aHR1cCkpOwogfQogCi0vKgotICogTnVtYmVyIG9mIHNoYXJlZCBDb21taXRUUyBidWZmZXJzLgot ICoKLSAqIFdlIHVzZSBhIHZlcnkgc2ltaWxhciBsb2dpYyBhcyBmb3IgdGhlIG51bWJlciBvZiBD TE9HIGJ1ZmZlcnMgKGV4Y2VwdCB3ZQotICogc2NhbGUgdXAgdHdpY2UgYXMgZmFzdCB3aXRoIHNo YXJlZCBidWZmZXJzLCBhbmQgdGhlIG1heGltdW0gaXMgdHdpY2UgYXMKLSAqIGhpZ2gpOyBzZWUg Y29tbWVudHMgaW4gQ0xPR1NobWVtQnVmZmVycy4KLSAqLwotU2l6ZQotQ29tbWl0VHNTaG1lbUJ1 ZmZlcnModm9pZCkKLXsKLQlyZXR1cm4gTWluKDI1NiwgTWF4KDQsIE5CdWZmZXJzIC8gMjU2KSk7 Ci19Ci0KIC8qCiAgKiBTaGFyZWQgbWVtb3J5IHNpemluZyBmb3IgQ29tbWl0VHMKICAqLwogU2l6 ZQogQ29tbWl0VHNTaG1lbVNpemUodm9pZCkKIHsKLQlyZXR1cm4gU2ltcGxlTHJ1U2htZW1TaXpl KENvbW1pdFRzU2htZW1CdWZmZXJzKCksIDApICsKKwlyZXR1cm4gU2ltcGxlTHJ1U2htZW1TaXpl KE5VTV9DT01NSVRfVFNfQlVGRkVSUywgMCkgKwogCQlzaXplb2YoQ29tbWl0VGltZXN0YW1wU2hh cmVkKTsKIH0KIApAQCAtNTQxLDcgKzUzMCw3IEBACiAJYm9vbAkJZm91bmQ7CiAKIAlDb21taXRU c0N0bC0+UGFnZVByZWNlZGVzID0gQ29tbWl0VHNQYWdlUHJlY2VkZXM7Ci0JU2ltcGxlTHJ1SW5p dChDb21taXRUc0N0bCwgIkNvbW1pdFRzIiwgQ29tbWl0VHNTaG1lbUJ1ZmZlcnMoKSwgMCwKKwlT aW1wbGVMcnVJbml0KENvbW1pdFRzQ3RsLCAiQ29tbWl0VHMiLCBOVU1fQ09NTUlUX1RTX0JVRkZF UlMsIDAsCiAJCQkJICBDb21taXRUc1NMUlVMb2NrLCAicGdfY29tbWl0X3RzIiwKIAkJCQkgIExX VFJBTkNIRV9DT01NSVRUU19CVUZGRVIsCiAJCQkJICBTWU5DX0hBTkRMRVJfQ09NTUlUX1RTKTsK --=_e9a89a47b322caaa48ae2407857273ab--