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.94.2) (envelope-from ) id 1tmvlx-000JVz-6K for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Feb 2025 14:18:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tmvlw-002fXP-4N for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Feb 2025 14:18:56 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tmvlv-002fWv-7w for pgsql-hackers@lists.postgresql.org; Tue, 25 Feb 2025 14:18:55 +0000 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tmvls-0000m1-0u for pgsql-hackers@lists.postgresql.org; Tue, 25 Feb 2025 14:18:54 +0000 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-2f9d3d0f55dso8705985a91.1 for ; Tue, 25 Feb 2025 06:18:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=timescale.com; s=google; t=1740493132; x=1741097932; 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=MClXE1RXEQtftaWHFOmnbUHcPVgDCLArFpCq3zq7HMQ=; b=FAYlJu/mOOT3RuvqNclhJRVoU2KJ6qV5YHcy/H82LwwRjTvpD6UyRSX2IzDybT3U4C CFyd0nIKj+fdTSkuH6fhdF1iVndBBaQArUOptyB5V18ofM/MUgJKS8NnclA6dNz10cSh 1mHIy4TYLyuH7RIra1Z4r9BYneCB8V7ffi0pNMeQNRcnt9r3p1VC22QfFpdAA7s7D41x TSkjnAz1u4Yb0KCaTOdci8sK98JRcZoQiIy4P4ZiFW2f7FJI14eYhy9kpKkm0ODYGI+C an80uKDoUbZKACpHIteodDYJR32ewzUT0Y9G6I4D4A/wDkHKiS1xCe5v3ZOL6GKcevdK WISg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740493132; x=1741097932; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=MClXE1RXEQtftaWHFOmnbUHcPVgDCLArFpCq3zq7HMQ=; b=BmiIDTB95rEVh/wXiwWtbSXMSDVrCVs89+rkq1i5x9E/PEP5EiegKUCtO3L/u1VfVB P2lyL7ORPXPgcRIBjI96pS2SK6z8Kf5EplScAlDOd8iBkd/Nj+CQfRMP1Brz66ZamRI/ 19OeBZ/HDhM3XNFtaVrZhBnCh5aIALIVAz14jSrssREHihrTdlcIPjvArFrq86hVTiOY t9R8mjA3Wb3gpM4Tg8HJ5tqxE6mweCTMGtt3bZxGxZsb8/LH+T3hYrYAYK8eVqJG13AY q2/LK48/8E7u6uXuFDQGH+dYpVz3Iq/wT6BsCA4GEJ88EZyLG4ephHwmlDn5GWjgpkM3 M3AQ== X-Gm-Message-State: AOJu0Yx/3NEP5OMTqQaBoLM8+xvpsyq5fa0tQ+aj7Jm/ijlXwzeNLBTz UZi/d822h/1GpDXTXK7v0pVGU2VOoP3Y5dIpw20a0rqVI9w5paopUJhzo7gSmKLt29ENqHsi5SN UyMe7N/LEmNhPBse0nu9bfraQykaMTYVjTKpl1CfjdOUqXVaB5SM= X-Gm-Gg: ASbGncuyiYYJuelbg3EODZdJRvaDizIR0BHwMTXh0ssVvCV0llGOmmHnDiO/ri4qXPm RtsK+IlteXxO0NUy9kY/gPRKfF2QLhy0R6aZZfNXbziZ0s0/NkeN2e993qYD0D/ijpXDsz7cH39 UOs50CJw== X-Google-Smtp-Source: AGHT+IFdrEG4pm2H0ni9e7gENLT5S8v/0Mj6pezYg3vprI37OpoM7CdtOieDmS1SDEnpphB/fm4rtRetV3zetAoSdlA= X-Received: by 2002:a17:90b:4b06:b0:2ee:a04b:92ce with SMTP id 98e67ed59e1d1-2fce7b354d8mr25098911a91.32.1740493132169; Tue, 25 Feb 2025 06:18:52 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Aleksander Alekseev Date: Tue, 25 Feb 2025 17:18:40 +0300 X-Gm-Features: AQ5f1JrOEpyj_YIfT-6b_GZdJctazgfdSLoPVlGPbPZAui5mQJSLgbygevimMzI Message-ID: Subject: Re: [PATCH] Refactor SLRU to always use long file names To: PostgreSQL Hackers Cc: Michael Paquier Content-Type: multipart/mixed; boundary="000000000000e0b023062ef822d2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e0b023062ef822d2 Content-Type: text/plain; charset="UTF-8" Hi, > > Here is an updated patch. The steps to test it manually are as follows. > > > > Compile and install PostgreSQL from the REL_17_STABLE branch: > > > > [...] > > > > As always, your feedback and suggestions are most welcomed. > > Rebased. Rebased. -- Best regards, Aleksander Alekseev --000000000000e0b023062ef822d2 Content-Type: application/x-patch; name="v4-0001-Always-use-long-SLRU-segment-file-names.patch" Content-Disposition: attachment; filename="v4-0001-Always-use-long-SLRU-segment-file-names.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m7kjmwic0 RnJvbSA0M2U3Y2RjY2YxYWE5NmU2NTIyYTQxNTE4YmYwNDM3ZGRhMjNjYzRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxhbGVrc2FuZGVyQHRpbWVz Y2FsZS5jb20+CkRhdGU6IFdlZCwgMTEgU2VwIDIwMjQgMTM6MTc6MzMgKzAzMDAKU3ViamVjdDog W1BBVENIIHY0XSBBbHdheXMgdXNlIGxvbmcgU0xSVSBzZWdtZW50IGZpbGUgbmFtZXMKClBHMTcg aW50cm9kdWNlZCBsb25nIFNMUlUgc2VnbWVudCBmaWxlIG5hbWVzIChjb21taXQgNGVkOGYwOTEz YmZkKS4gV2UgdXNlZApzaG9ydCBvciBsb25nIGZpbGUgbmFtZXMgZGVwZW5kaW5nIG9uIFNscnVD dGwtPmxvbmdfc2VnbWVudF9uYW1lcy4gVGhpcyBjb21taXQKcmVmYWN0b3JzIFNMUlUgdG8gYWx3 YXlzIHVzZSBsb25nIGZpbGUgbmFtZXMgaW4gb3JkZXIgdG8gc2ltcGxpZnkgdGhlIGNvZGUuCgpB bGVrc2FuZGVyIEFsZWtzZWV2LCByZXZpZXdlZCBieSBNaWNoYWVsIFBhcXVpZXIKRGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUo3YzZUT3k3ZlVXOU11TmVPV29yM2NTRm5RZzl0Z3o9 bWpYSERiOTRHT1J0TV9FeWdAbWFpbC5nbWFpbC5jb20KCighISEpIGJ1bXAgY2F0dmVyc2lvbiBh bmQgY2hhbmdlIHRoZSBjb3JyZXNwb25kaW5nIFRPRE8gRklYTUUgbGluZSBpbiBwZ191cGdyYWRl LmgKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jbG9nLmMgICAgICAgICAgIHwgIDIg Ky0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90cy5jICAgICAgfCAgMyArLQog c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMgICAgICB8ICA2ICstCiBzcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMgICAgICAgICAgIHwgNzMgKysrKy0tLS0tLS0t LS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMgICAgICAgfCAg MiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyAgICAgICAgICAgICAgICB8ICAyICst CiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMgICAgICAgIHwgIDIgKy0KIHNy Yy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgICAgICAgICAgICAgfCA3NCArKysrKysrKysr KysrKysrKysrKysKIHNyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmggICAgICAgICAgICAg fCAgNiArKwogc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbCB8ICAy ICstCiBzcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oICAgICAgICAgICAgICAgICAgIHwgMTAgKy0t CiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUuYyAgICAgIHwgIDggKy0tCiAx MiBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwgODYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vY2xvZy5jCmluZGV4IDQ4ZjEwYmVjOTFlLi5mMTMwNDAzYWM0YiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYwpAQCAtODEwLDcgKzgxMCw3IEBAIENMT0dTaG1lbUlu aXQodm9pZCkKIAlYYWN0Q3RsLT5QYWdlUHJlY2VkZXMgPSBDTE9HUGFnZVByZWNlZGVzOwogCVNp bXBsZUxydUluaXQoWGFjdEN0bCwgInRyYW5zYWN0aW9uIiwgQ0xPR1NobWVtQnVmZmVycygpLCBD TE9HX0xTTlNfUEVSX1BBR0UsCiAJCQkJICAicGdfeGFjdCIsIExXVFJBTkNIRV9YQUNUX0JVRkZF UiwKLQkJCQkgIExXVFJBTkNIRV9YQUNUX1NMUlUsIFNZTkNfSEFORExFUl9DTE9HLCBmYWxzZSk7 CisJCQkJICBMV1RSQU5DSEVfWEFDVF9TTFJVLCBTWU5DX0hBTkRMRVJfQ0xPRyk7CiAJU2xydVBh Z2VQcmVjZWRlc1VuaXRUZXN0cyhYYWN0Q3RsLCBDTE9HX1hBQ1RTX1BFUl9QQUdFKTsKIH0KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMuYwppbmRleCAxMTNmYWUxNDM3YS4uNTk1 MzU1MjY4MjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90 cy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90cy5jCkBAIC01NTYs OCArNTU2LDcgQEAgQ29tbWl0VHNTaG1lbUluaXQodm9pZCkKIAlTaW1wbGVMcnVJbml0KENvbW1p dFRzQ3RsLCAiY29tbWl0X3RpbWVzdGFtcCIsIENvbW1pdFRzU2htZW1CdWZmZXJzKCksIDAsCiAJ CQkJICAicGdfY29tbWl0X3RzIiwgTFdUUkFOQ0hFX0NPTU1JVFRTX0JVRkZFUiwKIAkJCQkgIExX VFJBTkNIRV9DT01NSVRUU19TTFJVLAotCQkJCSAgU1lOQ19IQU5ETEVSX0NPTU1JVF9UUywKLQkJ CQkgIGZhbHNlKTsKKwkJCQkgIFNZTkNfSEFORExFUl9DT01NSVRfVFMpOwogCVNscnVQYWdlUHJl Y2VkZXNVbml0VGVzdHMoQ29tbWl0VHNDdGwsIENPTU1JVF9UU19YQUNUU19QRVJfUEFHRSk7CiAK IAljb21taXRUc1NoYXJlZCA9IFNobWVtSW5pdFN0cnVjdCgiQ29tbWl0VHMgc2hhcmVkIiwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKaW5kZXggYzFlMmM0MmUxYmIuLmIzYjEx YzFhMGFkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3Qu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwpAQCAtMTk3NCwx NSArMTk3NCwxMyBAQCBNdWx0aVhhY3RTaG1lbUluaXQodm9pZCkKIAkJCQkgICJtdWx0aXhhY3Rf b2Zmc2V0IiwgbXVsdGl4YWN0X29mZnNldF9idWZmZXJzLCAwLAogCQkJCSAgInBnX211bHRpeGFj dC9vZmZzZXRzIiwgTFdUUkFOQ0hFX01VTFRJWEFDVE9GRlNFVF9CVUZGRVIsCiAJCQkJICBMV1RS QU5DSEVfTVVMVElYQUNUT0ZGU0VUX1NMUlUsCi0JCQkJICBTWU5DX0hBTkRMRVJfTVVMVElYQUNU X09GRlNFVCwKLQkJCQkgIGZhbHNlKTsKKwkJCQkgIFNZTkNfSEFORExFUl9NVUxUSVhBQ1RfT0ZG U0VUKTsKIAlTbHJ1UGFnZVByZWNlZGVzVW5pdFRlc3RzKE11bHRpWGFjdE9mZnNldEN0bCwgTVVM VElYQUNUX09GRlNFVFNfUEVSX1BBR0UpOwogCVNpbXBsZUxydUluaXQoTXVsdGlYYWN0TWVtYmVy Q3RsLAogCQkJCSAgIm11bHRpeGFjdF9tZW1iZXIiLCBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZlcnMs IDAsCiAJCQkJICAicGdfbXVsdGl4YWN0L21lbWJlcnMiLCBMV1RSQU5DSEVfTVVMVElYQUNUTUVN QkVSX0JVRkZFUiwKIAkJCQkgIExXVFJBTkNIRV9NVUxUSVhBQ1RNRU1CRVJfU0xSVSwKLQkJCQkg IFNZTkNfSEFORExFUl9NVUxUSVhBQ1RfTUVNQkVSLAotCQkJCSAgZmFsc2UpOworCQkJCSAgU1lO Q19IQU5ETEVSX01VTFRJWEFDVF9NRU1CRVIpOwogCS8qIGRvZXNuJ3QgY2FsbCBTaW1wbGVMcnVU cnVuY2F0ZSgpIG9yIG1lZXQgY3JpdGVyaWEgZm9yIHVuaXQgdGVzdHMgKi8KIAogCS8qIEluaXRp YWxpemUgb3VyIHNoYXJlZCBzdGF0ZSBzdHJ1Y3QgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3NscnUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUu YwppbmRleCA5Y2U2MjhlNjJhNS4uY2MwNzhkMmU2Y2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3NscnUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9z bHJ1LmMKQEAgLTc3LDQyICs3NywyMiBAQAogICoKICAqICJwYXRoIiBzaG91bGQgcG9pbnQgdG8g YSBidWZmZXIgYXQgbGVhc3QgTUFYUEdQQVRIIGNoYXJhY3RlcnMgbG9uZy4KICAqCi0gKiBJZiBj dGwtPmxvbmdfc2VnbWVudF9uYW1lcyBpcyB0cnVlLCBzZWdubyBjYW4gYmUgaW4gdGhlIHJhbmdl IFswLCAyXjYwLTFdLgotICogVGhlIHJlc3VsdGluZyBmaWxlIG5hbWUgaXMgbWFkZSBvZiAxNSBj aGFyYWN0ZXJzLCBlLmcuIGRpci8xMjM0NTY3ODlBQkNERUYuCi0gKgotICogSWYgY3RsLT5sb25n X3NlZ21lbnRfbmFtZXMgaXMgZmFsc2UsIHNlZ25vIGNhbiBiZSBpbiB0aGUgcmFuZ2UgWzAsIDJe MjQtMV0uCi0gKiBUaGUgcmVzdWx0aW5nIGZpbGUgbmFtZSBpcyBtYWRlIG9mIDQgdG8gNiBjaGFy YWN0ZXJzLCBhcyBvZjoKLSAqCi0gKiAgZGlyLzEyMzQgICBmb3IgWzAsIDJeMTYtMV0KLSAqICBk aXIvMTIzNDUgIGZvciBbMl4xNiwgMl4yMC0xXQotICogIGRpci8xMjM0NTYgZm9yIFsyXjIwLCAy XjI0LTFdCisgKiBzZWdubyBjYW4gYmUgaW4gdGhlIHJhbmdlIFswLCAyXjYwLTFdLiBUaGUgcmVz dWx0aW5nIGZpbGUgbmFtZSBpcyBtYWRlCisgKiBvZiAxNSBjaGFyYWN0ZXJzLCBlLmcuIGRpci8x MjM0NTY3ODlBQkNERUYuCiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50CiBTbHJ1RmlsZU5hbWUoU2xy dUN0bCBjdGwsIGNoYXIgKnBhdGgsIGludDY0IHNlZ25vKQogewotCWlmIChjdGwtPmxvbmdfc2Vn bWVudF9uYW1lcykKLQl7Ci0JCS8qCi0JCSAqIFdlIGNvdWxkIHVzZSAxNiBjaGFyYWN0ZXJzIGhl cmUgYnV0IHRoZSBkaXNhZHZhbnRhZ2Ugd291bGQgYmUgdGhhdAotCQkgKiB0aGUgU0xSVSBzZWdt ZW50cyB3aWxsIGJlIGhhcmQgdG8gZGlzdGluZ3Vpc2ggZnJvbSBXQUwgc2VnbWVudHMuCi0JCSAq Ci0JCSAqIEZvciB0aGlzIHJlYXNvbiB3ZSB1c2UgMTUgY2hhcmFjdGVycy4gSXQgaXMgZW5vdWdo IGJ1dCBhbHNvIG1lYW5zCi0JCSAqIHRoYXQgaW4gdGhlIGZ1dHVyZSB3ZSBjYW4ndCBkZWNyZWFz ZSBTTFJVX1BBR0VTX1BFUl9TRUdNRU5UIGVhc2lseS4KLQkJICovCi0JCUFzc2VydChzZWdubyA+ PSAwICYmIHNlZ25vIDw9IElOVDY0Q09OU1QoMHhGRkZGRkZGRkZGRkZGRkYpKTsKLQkJcmV0dXJu IHNucHJpbnRmKHBhdGgsIE1BWFBHUEFUSCwgIiVzLyUwMTVsbFgiLCBjdGwtPkRpciwKLQkJCQkJ CShsb25nIGxvbmcpIHNlZ25vKTsKLQl9Ci0JZWxzZQotCXsKLQkJLyoKLQkJICogRGVzcGl0ZSB0 aGUgZmFjdCB0aGF0ICUwNFggZm9ybWF0IHN0cmluZyBpcyB1c2VkIHVwIHRvIDI0IGJpdAotCQkg KiBpbnRlZ2VycyBhcmUgYWxsb3dlZC4gU2VlIFNscnVDb3JyZWN0U2VnbWVudEZpbGVuYW1lTGVu Z3RoKCkKLQkJICovCi0JCUFzc2VydChzZWdubyA+PSAwICYmIHNlZ25vIDw9IElOVDY0Q09OU1Qo MHhGRkZGRkYpKTsKLQkJcmV0dXJuIHNucHJpbnRmKHBhdGgsIE1BWFBHUEFUSCwgIiVzLyUwNFgi LCAoY3RsKS0+RGlyLAotCQkJCQkJKHVuc2lnbmVkIGludCkgc2Vnbm8pOwotCX0KKwkvKgorCSAq IFdlIGNvdWxkIHVzZSAxNiBjaGFyYWN0ZXJzIGhlcmUgYnV0IHRoZSBkaXNhZHZhbnRhZ2Ugd291 bGQgYmUgdGhhdAorCSAqIHRoZSBTTFJVIHNlZ21lbnRzIHdpbGwgYmUgaGFyZCB0byBkaXN0aW5n dWlzaCBmcm9tIFdBTCBzZWdtZW50cy4KKwkgKgorCSAqIEZvciB0aGlzIHJlYXNvbiB3ZSB1c2Ug MTUgY2hhcmFjdGVycy4gSXQgaXMgZW5vdWdoIGJ1dCBhbHNvIG1lYW5zCisJICogdGhhdCBpbiB0 aGUgZnV0dXJlIHdlIGNhbid0IGRlY3JlYXNlIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQgZWFzaWx5 LgorCSAqLworCUFzc2VydChzZWdubyA+PSAwICYmIHNlZ25vIDw9IElOVDY0Q09OU1QoMHhGRkZG RkZGRkZGRkZGRkYpKTsKKwlyZXR1cm4gc25wcmludGYocGF0aCwgTUFYUEdQQVRILCAiJXMvJTAx NWxsWCIsIGN0bC0+RGlyLAorCQkJCQkobG9uZyBsb25nKSBzZWdubyk7CiB9CiAKIC8qCkBAIC0y NTEsNyArMjMxLDcgQEAgU2ltcGxlTHJ1QXV0b3R1bmVCdWZmZXJzKGludCBkaXZpc29yLCBpbnQg bWF4KQogdm9pZAogU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hhciAqbmFtZSwg aW50IG5zbG90cywgaW50IG5sc25zLAogCQkJICBjb25zdCBjaGFyICpzdWJkaXIsIGludCBidWZm ZXJfdHJhbmNoZV9pZCwgaW50IGJhbmtfdHJhbmNoZV9pZCwKLQkJCSAgU3luY1JlcXVlc3RIYW5k bGVyIHN5bmNfaGFuZGxlciwgYm9vbCBsb25nX3NlZ21lbnRfbmFtZXMpCisJCQkgIFN5bmNSZXF1 ZXN0SGFuZGxlciBzeW5jX2hhbmRsZXIpCiB7CiAJU2xydVNoYXJlZAlzaGFyZWQ7CiAJYm9vbAkJ Zm91bmQ7CkBAIC0zNDIsNyArMzIyLDYgQEAgU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29u c3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywgaW50IG5sc25zLAogCSAqLwogCWN0bC0+c2hhcmVk ID0gc2hhcmVkOwogCWN0bC0+c3luY19oYW5kbGVyID0gc3luY19oYW5kbGVyOwotCWN0bC0+bG9u Z19zZWdtZW50X25hbWVzID0gbG9uZ19zZWdtZW50X25hbWVzOwogCWN0bC0+bmJhbmtzID0gbmJh bmtzOwogCXN0cmxjcHkoY3RsLT5EaXIsIHN1YmRpciwgc2l6ZW9mKGN0bC0+RGlyKSk7CiB9CkBA IC0xNzQ4LDMwICsxNzI3LDYgQEAgU2xydVNjYW5EaXJDYkRlbGV0ZUFsbChTbHJ1Q3RsIGN0bCwg Y2hhciAqZmlsZW5hbWUsIGludDY0IHNlZ3BhZ2UsIHZvaWQgKmRhdGEpCiAJcmV0dXJuIGZhbHNl OwkJCQkvKiBrZWVwIGdvaW5nICovCiB9CiAKLS8qCi0gKiBBbiBpbnRlcm5hbCBmdW5jdGlvbiB1 c2VkIGJ5IFNscnVTY2FuRGlyZWN0b3J5KCkuCi0gKgotICogUmV0dXJucyB0cnVlIGlmIGEgZmls ZSB3aXRoIGEgbmFtZSBvZiBhIGdpdmVuIGxlbmd0aCBtYXkgYmUgYSBjb3JyZWN0Ci0gKiBTTFJV IHNlZ21lbnQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgYm9vbAotU2xydUNvcnJlY3RTZWdtZW50Rmls ZW5hbWVMZW5ndGgoU2xydUN0bCBjdGwsIHNpemVfdCBsZW4pCi17Ci0JaWYgKGN0bC0+bG9uZ19z ZWdtZW50X25hbWVzKQotCQlyZXR1cm4gKGxlbiA9PSAxNSk7CQkvKiBzZWUgU2xydUZpbGVOYW1l KCkgKi8KLQllbHNlCi0KLQkJLyoKLQkJICogQ29tbWl0IDYzOGNmMDllNzZkIGFsbG93ZWQgNS1j aGFyYWN0ZXIgbGVuZ3Rocy4gTGF0ZXIgY29tbWl0Ci0JCSAqIDczYzk4NmFkZGU1IGFsbG93ZWQg Ni1jaGFyYWN0ZXIgbGVuZ3RoLgotCQkgKgotCQkgKiBOb3RlOiBUaGVyZSBpcyBhbiBvbmdvaW5n IHBsYW4gdG8gbWlncmF0ZSBhbGwgU0xSVXMgdG8gNjQtYml0IHBhZ2UKLQkJICogbnVtYmVycywg YW5kIHRoZSBjb3JyZXNwb25kaW5nIDE1LWNoYXJhY3RlciBmaWxlIG5hbWVzLCB3aGljaCBtYXkK LQkJICogZXZlbnR1YWxseSBkZXByZWNhdGUgdGhlIHN1cHBvcnQgZm9yIDQsIDUsIGFuZCA2LWNo YXJhY3RlciBuYW1lcy4KLQkJICovCi0JCXJldHVybiAobGVuID09IDQgfHwgbGVuID09IDUgfHwg bGVuID09IDYpOwotfQotCiAvKgogICogU2NhbiB0aGUgU2ltcGxlTHJ1IGRpcmVjdG9yeSBhbmQg YXBwbHkgYSBjYWxsYmFjayB0byBlYWNoIGZpbGUgZm91bmQgaW4gaXQuCiAgKgpAQCAtMTgwMyw3 ICsxNzU4LDcgQEAgU2xydVNjYW5EaXJlY3RvcnkoU2xydUN0bCBjdGwsIFNscnVTY2FuQ2FsbGJh Y2sgY2FsbGJhY2ssIHZvaWQgKmRhdGEpCiAKIAkJbGVuID0gc3RybGVuKGNsZGUtPmRfbmFtZSk7 CiAKLQkJaWYgKFNscnVDb3JyZWN0U2VnbWVudEZpbGVuYW1lTGVuZ3RoKGN0bCwgbGVuKSAmJgor CQlpZiAoKGxlbiA9PSAxNSkgJiYKIAkJCXN0cnNwbihjbGRlLT5kX25hbWUsICIwMTIzNDU2Nzg5 QUJDREVGIikgPT0gbGVuKQogCQl7CiAJCQlzZWdubyA9IHN0cnRvaTY0KGNsZGUtPmRfbmFtZSwg TlVMTCwgMTYpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJh bnMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMKaW5kZXggMTUxNTM2 MThmYWQuLjU4YTVlZjY1N2VhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS9zdWJ0cmFucy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMK QEAgLTI0Myw3ICsyNDMsNyBAQCBTVUJUUkFOU1NobWVtSW5pdCh2b2lkKQogCVN1YlRyYW5zQ3Rs LT5QYWdlUHJlY2VkZXMgPSBTdWJUcmFuc1BhZ2VQcmVjZWRlczsKIAlTaW1wbGVMcnVJbml0KFN1 YlRyYW5zQ3RsLCAic3VidHJhbnNhY3Rpb24iLCBTVUJUUkFOU1NobWVtQnVmZmVycygpLCAwLAog CQkJCSAgInBnX3N1YnRyYW5zIiwgTFdUUkFOQ0hFX1NVQlRSQU5TX0JVRkZFUiwKLQkJCQkgIExX VFJBTkNIRV9TVUJUUkFOU19TTFJVLCBTWU5DX0hBTkRMRVJfTk9ORSwgZmFsc2UpOworCQkJCSAg TFdUUkFOQ0hFX1NVQlRSQU5TX1NMUlUsIFNZTkNfSEFORExFUl9OT05FKTsKIAlTbHJ1UGFnZVBy ZWNlZGVzVW5pdFRlc3RzKFN1YlRyYW5zQ3RsLCBTVUJUUkFOU19YQUNUU19QRVJfUEFHRSk7CiB9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9hc3luYy5jCmluZGV4IDRiZDM3ZDViZWI1Li4zNzNiMDM1N2ZhZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9hc3luYy5jCkBAIC01MzcsNyArNTM3LDcgQEAgQXN5bmNTaG1lbUluaXQodm9pZCkKIAlO b3RpZnlDdGwtPlBhZ2VQcmVjZWRlcyA9IGFzeW5jUXVldWVQYWdlUHJlY2VkZXM7CiAJU2ltcGxl THJ1SW5pdChOb3RpZnlDdGwsICJub3RpZnkiLCBub3RpZnlfYnVmZmVycywgMCwKIAkJCQkgICJw Z19ub3RpZnkiLCBMV1RSQU5DSEVfTk9USUZZX0JVRkZFUiwgTFdUUkFOQ0hFX05PVElGWV9TTFJV LAotCQkJCSAgU1lOQ19IQU5ETEVSX05PTkUsIHRydWUpOworCQkJCSAgU1lOQ19IQU5ETEVSX05P TkUpOwogCiAJaWYgKCFmb3VuZCkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdl L2xtZ3IvcHJlZGljYXRlLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMK aW5kZXggNWIyMWEwNTM5ODEuLmJjODNlOGU4NTlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9z dG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3By ZWRpY2F0ZS5jCkBAIC04MTQsNyArODE0LDcgQEAgU2VyaWFsSW5pdCh2b2lkKQogCVNpbXBsZUxy dUluaXQoU2VyaWFsU2xydUN0bCwgInNlcmlhbGl6YWJsZSIsCiAJCQkJICBzZXJpYWxpemFibGVf YnVmZmVycywgMCwgInBnX3NlcmlhbCIsCiAJCQkJICBMV1RSQU5DSEVfU0VSSUFMX0JVRkZFUiwg TFdUUkFOQ0hFX1NFUklBTF9TTFJVLAotCQkJCSAgU1lOQ19IQU5ETEVSX05PTkUsIGZhbHNlKTsK KwkJCQkgIFNZTkNfSEFORExFUl9OT05FKTsKICNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCiAJ U2VyaWFsUGFnZVByZWNlZGVzTG9naWNhbGx5VW5pdFRlc3RzKCk7CiAjZW5kaWYKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUv cGdfdXBncmFkZS5jCmluZGV4IGQ5NWM0OTFmYjU3Li44YjEwOTA4ZTFmMiAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUv cGdfdXBncmFkZS5jCkBAIC0zOCw2ICszOCw3IEBACiAKICNpbmNsdWRlICJwb3N0Z3Jlc19mZS5o IgogCisjaW5jbHVkZSA8ZGlyZW50Lmg+CiAjaW5jbHVkZSA8dGltZS5oPgogCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jbGFzc19kLmgiCkBAIC02MCw2ICs2MSw4IEBAIHN0YXRpYyB2b2lkIHByZXBh cmVfbmV3X2NsdXN0ZXIodm9pZCk7CiBzdGF0aWMgdm9pZCBwcmVwYXJlX25ld19nbG9iYWxzKHZv aWQpOwogc3RhdGljIHZvaWQgY3JlYXRlX25ld19vYmplY3RzKHZvaWQpOwogc3RhdGljIHZvaWQg Y29weV94YWN0X3hsb2dfeGlkKHZvaWQpOworc3RhdGljIHZvaWQgY2hlY2tfc2xydV9zZWdtZW50 X2ZpbGVuYW1lcyh2b2lkKTsKK3N0YXRpYyB2b2lkIHJlbmFtZV9zbHJ1X3NlZ21lbnRzKGNvbnN0 IGNoYXIgKmRpcm5hbWUpOwogc3RhdGljIHZvaWQgc2V0X2Zyb3plbnhpZHMoYm9vbCBtaW5teGlk X29ubHkpOwogc3RhdGljIHZvaWQgbWFrZV9vdXRwdXRkaXJzKGNoYXIgKnBnZGF0YSk7CiBzdGF0 aWMgdm9pZCBzZXR1cChjaGFyICphcmd2MCk7CkBAIC0xNTYsNiArMTU5LDcgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAKIAljb3B5X3hhY3RfeGxvZ194aWQoKTsKIAlzZXRfbmV3X2Ns dXN0ZXJfY2hhcl9zaWduZWRuZXNzKCk7CisJY2hlY2tfc2xydV9zZWdtZW50X2ZpbGVuYW1lcygp OwogCiAJLyogTmV3IG5vdyB1c2luZyB4aWRzIG9mIHRoZSBvbGQgc3lzdGVtICovCiAKQEAgLTg0 MCw2ICs4NDQsNzYgQEAgY29weV94YWN0X3hsb2dfeGlkKHZvaWQpCiAJY2hlY2tfb2soKTsKIH0K IAorc3RhdGljIHZvaWQKK3JlbmFtZV9zbHJ1X3NlZ21lbnRzKGNvbnN0IGNoYXIqIGRpcm5hbWUp Cit7CisJRElSCQkgICAqZGlyOworCXN0cnVjdCBkaXJlbnQgKmRlOworCWludCAJCWxlbjsKKwlp bnQ2NCAJCXNlZ25vOworCWNoYXIJCWRpcl9wYXRoW01BWFBHUEFUSF07CisJY2hhcgkJb2xkX3Bh dGhbTUFYUEdQQVRIXTsKKwljaGFyCQluZXdfcGF0aFtNQVhQR1BBVEhdOworCisJcHJlcF9zdGF0 dXMoIlJlbmFtaW5nIFNMUlUgc2VnbWVudHMgaW4gJXMiLCBkaXJuYW1lKTsKKwlzbnByaW50Zihk aXJfcGF0aCwgc2l6ZW9mKGRpcl9wYXRoKSwgIiVzLyVzIiwgbmV3X2NsdXN0ZXIucGdkYXRhLCBk aXJuYW1lKTsKKworCWRpciA9IG9wZW5kaXIoZGlyX3BhdGgpOworCWlmIChkaXIgPT0gTlVMTCkK KwkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgZGlyX3Bh dGgpOworCisJd2hpbGUgKGVycm5vID0gMCwgKGRlID0gcmVhZGRpcihkaXIpKSAhPSBOVUxMKQor CXsKKwkJLyoKKwkJICogaWdub3JlICcuJywgJy4uJyBhbmQgZXZlcnl0aGluZyBlbHNlIHRoYXQg ZG9lc24ndCBsb29rCisJCSAqIGxpa2UgYW4gU0xSVSBzZWdtZW50IHdpdGggYSBzaG9ydCBmaWxl IG5hbWUKKwkJICovCisKKwkJbGVuID0gc3RybGVuKGRlLT5kX25hbWUpOworCQlpZihsZW4gIT0g NCAmJiBsZW4gIT0gNSAmJiBsZW4gIT0gNikKKwkJCWNvbnRpbnVlOworCisJCWlmKHN0cnNwbihk ZS0+ZF9uYW1lLCAiMDEyMzQ1Njc4OUFCQ0RFRiIpICE9IGxlbikKKwkJCWNvbnRpbnVlOworCisJ CXNlZ25vID0gc3RydG9pNjQoZGUtPmRfbmFtZSwgTlVMTCwgMTYpOworCQlzbnByaW50ZihuZXdf cGF0aCwgTUFYUEdQQVRILCAiJXMvJTAxNWxsWCIsIGRpcl9wYXRoLAorCQkJCQkobG9uZyBsb25n KSBzZWdubyk7CisJCXNucHJpbnRmKG9sZF9wYXRoLCBNQVhQR1BBVEgsICIlcy8lcyIsIGRpcl9w YXRoLCBkZS0+ZF9uYW1lKTsKKworCQlpZiAocGdfbXZfZmlsZShvbGRfcGF0aCwgbmV3X3BhdGgp ICE9IDApCisJCQlwZ19mYXRhbCgiY291bGQgbm90IHJlbmFtZSBmaWxlIFwiJXNcIiB0byBcIiVz XCI6ICVtIiwKKwkJCQkJIG9sZF9wYXRoLCBuZXdfcGF0aCk7CisJfQorCisJaWYgKGVycm5vKQor CQlwZ19mYXRhbCgiY291bGQgbm90IHJlYWQgZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBkaXJfcGF0 aCk7CisKKwlpZiAoY2xvc2VkaXIoZGlyKSkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBjbG9zZSBk aXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcl9wYXRoKTsKKworCWNoZWNrX29rKCk7Cit9CisKK3N0 YXRpYyB2b2lkCitjaGVja19zbHJ1X3NlZ21lbnRfZmlsZW5hbWVzKHZvaWQpCit7CisJaW50IGk7 CisJc3RhdGljIGNvbnN0IGNoYXIqIGRpcnNbXSA9IHsKKwkJInBnX3hhY3QiLAorCQkicGdfY29t bWl0X3RzIiwKKwkJInBnX211bHRpeGFjdC9vZmZzZXRzIiwKKwkJInBnX211bHRpeGFjdC9tZW1i ZXJzIiwKKwkJInBnX3N1YnRyYW5zIiwKKwkJInBnX3NlcmlhbCIsCisJfTsKKworCWlmKG9sZF9j bHVzdGVyLmNvbnRyb2xkYXRhLmNhdF92ZXIgPj0gU0xSVV9TRUdfRklMRU5BTUVTX0NIQU5HRV9D QVRfVkVSKQorCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGRpcnMpL3NpemVv ZihkaXJzWzBdKTsgaSsrKQorCQlyZW5hbWVfc2xydV9zZWdtZW50cyhkaXJzW2ldKTsKK30KIAog LyoKICAqCXNldF9mcm96ZW54aWRzKCkKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9w Z191cGdyYWRlLmggYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCmluZGV4IGY0ZTM3 NWQyN2M3Li4wMzQwYTIwYTM5MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3Vw Z3JhZGUuaAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCkBAIC0xMzEsNiAr MTMxLDEyIEBAIGV4dGVybiBjaGFyICpvdXRwdXRfZmlsZXNbXTsKICAqLwogI2RlZmluZSBERUZB VUxUX0NIQVJfU0lHTkVETkVTU19DQVRfVkVSIDIwMjUwMjIxMgogCisvKgorICogY2hhbmdlIG9m IFNMUlUgc2VnbWVudCBmaWxlbmFtZXMgbGVuZ3RoIGluIDE4LjAKKyAqIFRPRE8gRklYTUUgQ0hB TkdFIFRPIFRIRSBBQ1RVQUwgVkFMVUUgQkVGT1JFIENPTU1JVFRJTkcKKyAqLworI2RlZmluZSBT TFJVX1NFR19GSUxFTkFNRVNfQ0hBTkdFX0NBVF9WRVIgMjAyNDEyMjAxCisKIC8qCiAgKiBFYWNo IHJlbGF0aW9uIGlzIHJlcHJlc2VudGVkIGJ5IGEgcmVsaW5mbyBzdHJ1Y3R1cmUuCiAgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDAzX2NvcnJ1cHRpb24ucGwgYi9z cmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwM19jb3JydXB0aW9uLnBsCmluZGV4IDhlZjdmOGE0 ZTdhLi4zNjcyMTJhZjUyOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8w MDNfY29ycnVwdGlvbi5wbAorKysgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwM19jb3Jy dXB0aW9uLnBsCkBAIC0yNDYsNyArMjQ2LDcgQEAgc3ViIG11dGlsYXRlX2V4dHJhX3RhYmxlc3Bh Y2VfZmlsZQogc3ViIG11dGlsYXRlX21pc3NpbmdfZmlsZQogewogCW15ICgkYmFja3VwX3BhdGgp ID0gQF87Ci0JbXkgJHBhdGhuYW1lID0gIiRiYWNrdXBfcGF0aC9wZ194YWN0LzAwMDAiOworCW15 ICRwYXRobmFtZSA9ICIkYmFja3VwX3BhdGgvcGdfeGFjdC8wMDAwMDAwMDAwMDAwMDAiOwogCXVu bGluaygkcGF0aG5hbWUpIHx8IGRpZSAiJHBhdGhuYW1lOiAkISI7CiAJcmV0dXJuOwogfQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9z bHJ1LmgKaW5kZXggZTE0MjgwMGFhYjIuLmVjZjJjYTc5NjkyIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9hY2Nlc3Mvc2xydS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgKQEAgLTEz MSwxMyArMTMxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgU2xydUN0bERhdGEKIAkvKiBOdW1iZXIgb2Yg YmFua3MgaW4gdGhpcyBTTFJVLiAqLwogCXVpbnQxNgkJbmJhbmtzOwogCi0JLyoKLQkgKiBJZiB0 cnVlLCB1c2UgbG9uZyBzZWdtZW50IGZpbGUgbmFtZXMuICBPdGhlcndpc2UsIHVzZSBzaG9ydCBm aWxlIG5hbWVzLgotCSAqCi0JICogRm9yIGRldGFpbHMgYWJvdXQgdGhlIGZpbGUgbmFtZSBmb3Jt YXQsIHNlZSBTbHJ1RmlsZU5hbWUoKS4KLQkgKi8KLQlib29sCQlsb25nX3NlZ21lbnRfbmFtZXM7 Ci0KIAkvKgogCSAqIFdoaWNoIHN5bmMgaGFuZGxlciBmdW5jdGlvbiB0byB1c2Ugd2hlbiBoYW5k aW5nIHN5bmMgcmVxdWVzdHMgb3ZlciB0bwogCSAqIHRoZSBjaGVja3BvaW50ZXIuICBTWU5DX0hB TkRMRVJfTk9ORSB0byBkaXNhYmxlIGZzeW5jIChlZyBwZ19ub3RpZnkpLgpAQCAtMTg0LDggKzE3 Nyw3IEBAIGV4dGVybiBTaXplIFNpbXBsZUxydVNobWVtU2l6ZShpbnQgbnNsb3RzLCBpbnQgbmxz bnMpOwogZXh0ZXJuIGludAlTaW1wbGVMcnVBdXRvdHVuZUJ1ZmZlcnMoaW50IGRpdmlzb3IsIGlu dCBtYXgpOwogZXh0ZXJuIHZvaWQgU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hh ciAqbmFtZSwgaW50IG5zbG90cywgaW50IG5sc25zLAogCQkJCQkJICBjb25zdCBjaGFyICpzdWJk aXIsIGludCBidWZmZXJfdHJhbmNoZV9pZCwKLQkJCQkJCSAgaW50IGJhbmtfdHJhbmNoZV9pZCwg U3luY1JlcXVlc3RIYW5kbGVyIHN5bmNfaGFuZGxlciwKLQkJCQkJCSAgYm9vbCBsb25nX3NlZ21l bnRfbmFtZXMpOworCQkJCQkJICBpbnQgYmFua190cmFuY2hlX2lkLCBTeW5jUmVxdWVzdEhhbmRs ZXIgc3luY19oYW5kbGVyKTsKIGV4dGVybiBpbnQJU2ltcGxlTHJ1WmVyb1BhZ2UoU2xydUN0bCBj dGwsIGludDY0IHBhZ2Vubyk7CiBleHRlcm4gaW50CVNpbXBsZUxydVJlYWRQYWdlKFNscnVDdGwg Y3RsLCBpbnQ2NCBwYWdlbm8sIGJvb2wgd3JpdGVfb2ssCiAJCQkJCQkJICBUcmFuc2FjdGlvbklk IHhpZCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUu YyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3Rlc3Rfc2xydS5jCmluZGV4IDNlYTVjZWI4 NTUyLi5jYmQ1MTczMDE1YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUv dGVzdF9zbHJ1LmMKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMK QEAgLTIxMywxMSArMjEzLDYgQEAgdGVzdF9zbHJ1X3BhZ2VfcHJlY2VkZXNfbG9naWNhbGx5KGlu dDY0IHBhZ2UxLCBpbnQ2NCBwYWdlMikKIHN0YXRpYyB2b2lkCiB0ZXN0X3NscnVfc2htZW1fc3Rh cnR1cCh2b2lkKQogewotCS8qCi0JICogU2hvcnQgc2VnbWVudHMgbmFtZXMgYXJlIHdlbGwgdGVz dGVkIGVsc2V3aGVyZSBzbyBpbiB0aGlzIHRlc3Qgd2UgYXJlCi0JICogZm9jdXNpbmcgb24gbG9u ZyBuYW1lcy4KLQkgKi8KLQljb25zdCBib29sCWxvbmdfc2VnbWVudF9uYW1lcyA9IHRydWU7CiAJ Y29uc3QgY2hhcglzbHJ1X2Rpcl9uYW1lW10gPSAicGdfdGVzdF9zbHJ1IjsKIAlpbnQJCQl0ZXN0 X3RyYW5jaGVfaWQ7CiAJaW50CQkJdGVzdF9idWZmZXJfdHJhbmNoZV9pZDsKQEAgLTI0MSw4ICsy MzYsNyBAQCB0ZXN0X3NscnVfc2htZW1fc3RhcnR1cCh2b2lkKQogCVRlc3RTbHJ1Q3RsLT5QYWdl UHJlY2VkZXMgPSB0ZXN0X3NscnVfcGFnZV9wcmVjZWRlc19sb2dpY2FsbHk7CiAJU2ltcGxlTHJ1 SW5pdChUZXN0U2xydUN0bCwgIlRlc3RTTFJVIiwKIAkJCQkgIE5VTV9URVNUX0JVRkZFUlMsIDAs IHNscnVfZGlyX25hbWUsCi0JCQkJICB0ZXN0X2J1ZmZlcl90cmFuY2hlX2lkLCB0ZXN0X3RyYW5j aGVfaWQsIFNZTkNfSEFORExFUl9OT05FLAotCQkJCSAgbG9uZ19zZWdtZW50X25hbWVzKTsKKwkJ CQkgIHRlc3RfYnVmZmVyX3RyYW5jaGVfaWQsIHRlc3RfdHJhbmNoZV9pZCwgU1lOQ19IQU5ETEVS X05PTkUpOwogfQogCiB2b2lkCi0tIAoyLjQ4LjEKCg== --000000000000e0b023062ef822d2--