Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vzaNq-0018ew-29 for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 13:10:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vzaNo-00GJWv-0q for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 13:10:52 +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.96) (envelope-from ) id 1vzaLP-00GFck-3D for pgsql-hackers@lists.postgresql.org; Mon, 09 Mar 2026 13:08:24 +0000 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vzaLM-00000001HpL-0vkm for pgsql-hackers@postgresql.org; Mon, 09 Mar 2026 13:08:23 +0000 Received: by mail-ot1-x334.google.com with SMTP id 46e09a7af769-7d73be007a1so2065776a34.0 for ; Mon, 09 Mar 2026 06:08:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773061699; cv=none; d=google.com; s=arc-20240605; b=b/dkWXcICO53KehAXXeo3NCkiUIYYP9cp95aISv5qGDq58e9x9bQGEtHxNcCaVNYGs PjnEorezaAOmg6A9IbdO+PxH8RYpCjgv5gwbiNnyFltOGBfUgP1gSBAbqSvjDh9LOwpm KWl2jirlGPxtzFOboMsiG9cMfCyb1v1io3064yL5y2tbK45qYI6V3/8dp96Y6fnakWfN IPqlqo1pMZ5VvDCaijb9Vz+FN7jkUYBV53VqcFtFAsntdf3HZbGPUTVDz+9yW7+8oAkv 3bRfL4+5TZw3SgvvRRR80X5hN+tkF4/FMnElWd/wr3TgsiDrgziquE8L7DfKBd3XYiRk 7s9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=h9FoAj/CJasP/ejwNinf333CdTbeH39/e0eRIO02TIk=; fh=9ncq5RMnwff5r6pFAsjlOWVVS8VX1r5pPDAq0XNk/pQ=; b=TkpNVtIpNvBPPA1fSCiKsorArVabK0UffBLIF/b/lrcmcvIJrkZRz4RcRKQ3MqGxNm LhxzhaCp0LAv6cz2jswhtPGlWB4uvG97CTkHg/Pfg30knTY+0WL+j0QpKyABdSwYsDS6 Km+v+kGYvRqqnv+AHJtN/8hhp4ouipE1xvwF+9VgBwuCLHQS74SHOfJpr3bum4W4++H9 eX58nbBEEJhOkJvfLifXvwbuIKJV1U5x+UTqTHQkWXY6ktkMK8HyjOdU9uwzss12evAh plY+NN9NK36jA/9KsSBpEcpn65n9bQ6JZHFxrpR80NcAe/a1zA+MLlNF0XxQgaTIoLsv iAIw==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tigerdata.com; s=google; t=1773061699; x=1773666499; darn=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=h9FoAj/CJasP/ejwNinf333CdTbeH39/e0eRIO02TIk=; b=AWr1E4GSaU4wG0ESgYDTLQBK1CG/yq9v1xJ/NruVqNrG3l/roLvD+7DkiIheP1oxMg UkKLphjCMM3CLpVkIN+O7r3LEGb5m8qCJk75w8QrZNFACM31ZWWLAcNlp1C8xsgpMnh9 LK9ouM3Iz4t3hzREZej7oyZBfly2o1+BSQpNuEbUIkJ3WvmOlkCSuqwCZrcTqnlmEZQU /0502oFZhJVfBBILuQF/Zwx3HzbOi7JFBG++mE6wo4HSdGtE1XFwvbqIlRYAKTPAH+Lz CNiAddO0BzgakjtwU3/scm1/DfvllLHTVrmFj/2jNv27PCaIDBPGD9CmSm+fF/E1m57I gu1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773061699; x=1773666499; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=h9FoAj/CJasP/ejwNinf333CdTbeH39/e0eRIO02TIk=; b=m1ehwEpvTG2fw1G39wpkbf6ReQL5btN+MKyVoEBF2yM7/OJeZZnmQfNFvft3kIHDPz 9YFAE92zvaNJ8G60QPOm2mnN5Oboku8eEK8z0f8BkbX7vz94uqYRlhitbV6DuSHGI+5E SgU7lyqt8wAt5t4v7WhIbMOJkg/qN/S0xpjZ4sOfauVyfiMSHKDLs2ww2Yfe0bkKgBeV KKaIs/NlnXxlyNCDN7fTjQ7Cx3n7bVNGY1/Bd9bglrBKJrVQfK/xHO4AhDafAUHxzH1i mKpSJbEL5+tA9qRwalkfkweB2OscekqjKiwQWwmQNrYgUG7EyoGqqI+vpkQ6ZLDCf4eN ecIg== X-Gm-Message-State: AOJu0YznFv9BUCJkNU079tPxJhTxGAgkB7h4Ii3Y4s5Y18rjvfC7P7aQ pGuan83Nf93s8v0VkvVUbuWhXJtixMET1gRSadnkcqRBku5bJ+ZLa0iOIWs0FtlVEeUc6A9acMD auG3Eh1otjwb9+x9y1XLxeqWqcGEF8wtUhIWs9a1KT2yBKZZW+Xl8wRRekw== X-Gm-Gg: ATEYQzwG0ymYQzG62pB9KRAWc1+gxIix9Jp2iF3XIxQEWcuSbwBttu+XpHOijqDxSfu DRvBA35bj5cCRPzEWcnj2xeAO/TZJkjOFFqKQSQyPdeQnNfbyHafQQSSyj3CPRsxjJmN46rNXR3 FboCxJDfUAPrlyNRuRO4277iNOl/VchNWgLRguPEAo5zxuEEMan9APj4fZ4NL5QEM+Dj8xNBP/o 8nV5m2EtxuPxw6zPCPm4aQqVbg3DgOeFgKevHskqeGbRU8XNSxQjD63n3TeSpIp0Y9GcrP5VCxI jYkxLHfj9ng+JzsMCKjBskYwsXfpO743edn/Q6Wj7w+WIROXhKXC1TMxvSUee10c2HUT9BQ36Bo gnQ== X-Received: by 2002:a05:6830:6887:b0:7c7:6043:dd8f with SMTP id 46e09a7af769-7d726f631bdmr7237483a34.15.1773061699143; Mon, 09 Mar 2026 06:08:19 -0700 (PDT) MIME-Version: 1.0 References: <932CBCA0-FF4B-406E-9296-1B8A63C3EB49@yandex-team.ru> In-Reply-To: <932CBCA0-FF4B-406E-9296-1B8A63C3EB49@yandex-team.ru> From: Aleksander Alekseev Date: Mon, 9 Mar 2026 16:08:06 +0300 X-Gm-Features: AaiRm52bSMsDaDe-fHMik9wymcLk0qEHmwR3Cx5qIhphupJHnYhfckVyn674LI4 Message-ID: Subject: Re: [PATCH] Simplify SortSupport implementation for macaddr To: PostgreSQL Development Cc: Andrey Borodin , John Naylor Content-Type: multipart/mixed; boundary="000000000000be488f064c9718e2" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000be488f064c9718e2 Content-Type: text/plain; charset="UTF-8" Hi Andrey, Many thanks for your feedback! > 1. The assignment ssup->ssup_extra = NULL can be removed. The > SortSupport struct is zeroed before the callback is called (see > sortsupport.h). There are about 22 similar assignments elsewhere; > it does not seem to be established practice, many other places have > no such assignment. Agree. I removed this assignment in 0001 and added 0002 that removes if for the rest of *_sortsupport() functions. -- Best regards, Aleksander Alekseev --000000000000be488f064c9718e2 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0002-Remove-redundant-ssup_extra-zeroing-in-_sortsuppo.patch" Content-Disposition: attachment; filename="v2-0002-Remove-redundant-ssup_extra-zeroing-in-_sortsuppo.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmj73smr1 RnJvbSAyZDNiMWRmM2I5NDZjYWQwZjg4NjI0ZGMwYWU1ZTA3YjZjMjg2NDBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxhbGVrc2FuZGVyQHRpZ2Vy ZGF0YS5jb20+CkRhdGU6IE1vbiwgOSBNYXIgMjAyNiAxNTo1MTowNCArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjIgMi8yXSBSZW1vdmUgcmVkdW5kYW50IHNzdXBfZXh0cmEgemVyb2luZyBpbiAqX3Nv cnRzdXBwb3J0KCkKClNvcnRTdXBwb3J0RGF0YSBpcyBndWFyYW50ZWVkIHRvIGJlIHplcm9lZCBi eSBjYWxsZXJzLiBUaGVyZWZvcmUsIHplcm9pbmcKc3N1cF9leHRyYSBpbiAqX3NvcnRzdXBwb3J0 KCkgZnVuY3Rpb25zIGlzIHJlZHVuZGFudC4gUmVtb3ZlIGNvcnJlc3BvbmRpbmcKY29kZSBpbiBv cmRlciB0byBtYWtlIGFsbCB0aGUgZnVuY3Rpb25zIGNvbnNpc3RlbnQuCgpBdXRob3I6IEFsZWtz YW5kZXIgQWxla3NlZXYgPGFsZWtzYW5kZXJAdGlnZXJkYXRhLmNvbT4KU3VnZ2VzdGVkLWJ5OiBB bmRyZXkgQm9yb2RpbiA8eDRtbW1AeWFuZGV4LXRlYW0ucnU+ClJldmlld2VkLWJ5OiBUT0RPIEZJ WE1FCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FKN2M2VE1rMTByRl9MaU16Nmo5 clJ5MXJxay01cyt3QlB1QmVmTGl4NGNZKy00czF3QG1haWwuZ21haWwuY29tCi0tLQogY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2JpdC5jICAgICAgfCAyIC0tCiBjb250cmliL2J0cmVlX2dpc3Qv YnRyZWVfYm9vbC5jICAgICB8IDEgLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2J5dGVhLmMg ICAgfCAxIC0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9jYXNoLmMgICAgIHwgMSAtCiBjb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfZGF0ZS5jICAgICB8IDEgLQogY29udHJpYi9idHJlZV9naXN0 L2J0cmVlX2Zsb2F0NC5jICAgfCAxIC0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDgu YyAgIHwgMSAtCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW5ldC5jICAgICB8IDEgLQogY29u dHJpYi9idHJlZV9naXN0L2J0cmVlX2ludGVydmFsLmMgfCAxIC0KIGNvbnRyaWIvYnRyZWVfZ2lz dC9idHJlZV9tYWNhZGRyLmMgIHwgMSAtCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfbWFjYWRk cjguYyB8IDEgLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX251bWVyaWMuYyAgfCAxIC0KIGNv bnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9vaWQuYyAgICAgIHwgMSAtCiBjb250cmliL2J0cmVlX2dp c3QvYnRyZWVfdGV4dC5jICAgICB8IDIgLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV90aW1l LmMgICAgIHwgMSAtCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdHMuYyAgICAgICB8IDEgLQog Y29udHJpYi9idHJlZV9naXN0L2J0cmVlX3V1aWQuYyAgICAgfCAxIC0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMgICAgIHwgMSAtCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0 eXBlcy5jICB8IDEgLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3V1aWQuYyAgICAgICAgfCAxIC0K IDIwIGZpbGVzIGNoYW5nZWQsIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIv YnRyZWVfZ2lzdC9idHJlZV9iaXQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9iaXQuYwpp bmRleCAyYjljMThhNTg2Zi4uM2Y2ZjczYWM5ZGMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVf Z2lzdC9idHJlZV9iaXQuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfYml0LmMKQEAg LTIzMyw3ICsyMzMsNiBAQCBnYnRfYml0X3NvcnRzdXBwb3J0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJ U29ydFN1cHBvcnQgc3N1cCA9IChTb3J0U3VwcG9ydCkgUEdfR0VUQVJHX1BPSU5URVIoMCk7CiAK IAlzc3VwLT5jb21wYXJhdG9yID0gZ2J0X2JpdF9zc3VwX2NtcDsKLQlzc3VwLT5zc3VwX2V4dHJh ID0gTlVMTDsKIAogCVBHX1JFVFVSTl9WT0lEKCk7CiB9CkBAIC0yNDQsNyArMjQzLDYgQEAgZ2J0 X3ZhcmJpdF9zb3J0c3VwcG9ydChQR19GVU5DVElPTl9BUkdTKQogCVNvcnRTdXBwb3J0IHNzdXAg PSAoU29ydFN1cHBvcnQpIFBHX0dFVEFSR19QT0lOVEVSKDApOwogCiAJc3N1cC0+Y29tcGFyYXRv ciA9IGdidF9iaXRfc3N1cF9jbXA7Ci0Jc3N1cC0+c3N1cF9leHRyYSA9IE5VTEw7CiAKIAlQR19S RVRVUk5fVk9JRCgpOwogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Jv b2wuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9ib29sLmMKaW5kZXggOGU1OTUyM2Y0NzQu LjdkZTkzNjYyYzkyIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfYm9vbC5j CisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9ib29sLmMKQEAgLTE4Miw3ICsxODIsNiBA QCBnYnRfYm9vbF9zb3J0c3VwcG9ydChQR19GVU5DVElPTl9BUkdTKQogCVNvcnRTdXBwb3J0IHNz dXAgPSAoU29ydFN1cHBvcnQpIFBHX0dFVEFSR19QT0lOVEVSKDApOwogCiAJc3N1cC0+Y29tcGFy YXRvciA9IGdidF9ib29sX3NzdXBfY21wOwotCXNzdXAtPnNzdXBfZXh0cmEgPSBOVUxMOwogCiAJ UEdfUkVUVVJOX1ZPSUQoKTsKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJl ZV9ieXRlYS5jIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2J5dGVhLmMKaW5kZXggNTBiYjI0 MzA4ZTkuLjIyMWU0YmQ5NDkwIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVf Ynl0ZWEuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfYnl0ZWEuYwpAQCAtMTg3LDcg KzE4Nyw2IEBAIGdidF9ieXRlYV9zb3J0c3VwcG9ydChQR19GVU5DVElPTl9BUkdTKQogCVNvcnRT dXBwb3J0IHNzdXAgPSAoU29ydFN1cHBvcnQpIFBHX0dFVEFSR19QT0lOVEVSKDApOwogCiAJc3N1 cC0+Y29tcGFyYXRvciA9IGdidF9ieXRlYV9zc3VwX2NtcDsKLQlzc3VwLT5zc3VwX2V4dHJhID0g TlVMTDsKIAogCVBHX1JFVFVSTl9WT0lEKCk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVl X2dpc3QvYnRyZWVfY2FzaC5jIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Nhc2guYwppbmRl eCBhMzQ3YjEzMjBlNC4uMTNhYWNjMGQ3NjIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lz dC9idHJlZV9jYXNoLmMKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Nhc2guYwpAQCAt MjM3LDcgKzIzNyw2IEBAIGdidF9jYXNoX3NvcnRzdXBwb3J0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJ U29ydFN1cHBvcnQgc3N1cCA9IChTb3J0U3VwcG9ydCkgUEdfR0VUQVJHX1BPSU5URVIoMCk7CiAK IAlzc3VwLT5jb21wYXJhdG9yID0gZ2J0X2Nhc2hfc3N1cF9jbXA7Ci0Jc3N1cC0+c3N1cF9leHRy YSA9IE5VTEw7CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9i dHJlZV9naXN0L2J0cmVlX2RhdGUuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9kYXRlLmMK aW5kZXggNWU0MWY0NTc0YzUuLjc0ZGNjYjk2MTNiIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVl X2dpc3QvYnRyZWVfZGF0ZS5jCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9kYXRlLmMK QEAgLTI3Myw3ICsyNzMsNiBAQCBnYnRfZGF0ZV9zb3J0c3VwcG9ydChQR19GVU5DVElPTl9BUkdT KQogCVNvcnRTdXBwb3J0IHNzdXAgPSAoU29ydFN1cHBvcnQpIFBHX0dFVEFSR19QT0lOVEVSKDAp OwogCiAJc3N1cC0+Y29tcGFyYXRvciA9IGdidF9kYXRlX3NzdXBfY21wOwotCXNzdXAtPnNzdXBf ZXh0cmEgPSBOVUxMOwogCiAJUEdfUkVUVVJOX1ZPSUQoKTsKIH0KZGlmZiAtLWdpdCBhL2NvbnRy aWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9m bG9hdDQuYwppbmRleCBjMDc2OTE4ZmQ0OC4uYjY5NGExNzU4MzYgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRy ZWVfZmxvYXQ0LmMKQEAgLTIyNiw3ICsyMjYsNiBAQCBnYnRfZmxvYXQ0X3NvcnRzdXBwb3J0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJU29ydFN1cHBvcnQgc3N1cCA9IChTb3J0U3VwcG9ydCkgUEdfR0VU QVJHX1BPSU5URVIoMCk7CiAKIAlzc3VwLT5jb21wYXJhdG9yID0gZ2J0X2Zsb2F0NF9zc3VwX2Nt cDsKLQlzc3VwLT5zc3VwX2V4dHJhID0gTlVMTDsKIAogCVBHX1JFVFVSTl9WT0lEKCk7CiB9CmRp ZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKaW5kZXggZDczODZlODg1YTIuLmZiOTA2YTM4NjEwIDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jCkBAIC0yMzQsNyArMjM0LDYgQEAgZ2J0X2Zsb2F0 OF9zb3J0c3VwcG9ydChQR19GVU5DVElPTl9BUkdTKQogCVNvcnRTdXBwb3J0IHNzdXAgPSAoU29y dFN1cHBvcnQpIFBHX0dFVEFSR19QT0lOVEVSKDApOwogCiAJc3N1cC0+Y29tcGFyYXRvciA9IGdi dF9mbG9hdDhfc3N1cF9jbXA7Ci0Jc3N1cC0+c3N1cF9leHRyYSA9IE5VTEw7CiAKIAlQR19SRVRV Uk5fVk9JRCgpOwogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2luZXQu YyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbmV0LmMKaW5kZXggOWQwNGI5MmQzYjguLjk2 ODQyODNmYTRjIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW5ldC5jCisr KyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbmV0LmMKQEAgLTIwNCw3ICsyMDQsNiBAQCBn YnRfaW5ldF9zb3J0c3VwcG9ydChQR19GVU5DVElPTl9BUkdTKQogCVNvcnRTdXBwb3J0IHNzdXAg PSAoU29ydFN1cHBvcnQpIFBHX0dFVEFSR19QT0lOVEVSKDApOwogCiAJc3N1cC0+Y29tcGFyYXRv ciA9IGdidF9pbmV0X3NzdXBfY21wOwotCXNzdXAtPnNzdXBfZXh0cmEgPSBOVUxMOwogCiAJUEdf UkVUVVJOX1ZPSUQoKTsKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9p bnRlcnZhbC5jIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2ludGVydmFsLmMKaW5kZXggNmI4 MWZhMmIzOWIuLmYyODhkOTdlZTA5IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRy ZWVfaW50ZXJ2YWwuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50ZXJ2YWwuYwpA QCAtMzE1LDcgKzMxNSw2IEBAIGdidF9pbnR2X3NvcnRzdXBwb3J0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJU29ydFN1cHBvcnQgc3N1cCA9IChTb3J0U3VwcG9ydCkgUEdfR0VUQVJHX1BPSU5URVIoMCk7 CiAKIAlzc3VwLT5jb21wYXJhdG9yID0gZ2J0X2ludHZfc3N1cF9jbXA7Ci0Jc3N1cC0+c3N1cF9l eHRyYSA9IE5VTEw7CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQpkaWZmIC0tZ2l0IGEvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX21hY2FkZHIuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9t YWNhZGRyLmMKaW5kZXggZGY3YzAwNDAwMTEuLjE0MGYxYWQ0MTM1IDEwMDY0NAotLS0gYS9jb250 cmliL2J0cmVlX2dpc3QvYnRyZWVfbWFjYWRkci5jCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9i dHJlZV9tYWNhZGRyLmMKQEAgLTIxMSw3ICsyMTEsNiBAQCBnYnRfbWFjYWRkcl9zb3J0c3VwcG9y dChQR19GVU5DVElPTl9BUkdTKQogCVNvcnRTdXBwb3J0IHNzdXAgPSAoU29ydFN1cHBvcnQpIFBH X0dFVEFSR19QT0lOVEVSKDApOwogCiAJc3N1cC0+Y29tcGFyYXRvciA9IGdidF9tYWNhZGRyX3Nz dXBfY21wOwotCXNzdXAtPnNzdXBfZXh0cmEgPSBOVUxMOwogCiAJUEdfUkVUVVJOX1ZPSUQoKTsK IH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9tYWNhZGRyOC5jIGIvY29u dHJpYi9idHJlZV9naXN0L2J0cmVlX21hY2FkZHI4LmMKaW5kZXggM2IwYzliODFlODUuLjhiMmEw MTU2N2I3IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfbWFjYWRkcjguYwor KysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfbWFjYWRkcjguYwpAQCAtMjA4LDcgKzIwOCw2 IEBAIGdidF9tYWNhZDhfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykKIAlTb3J0U3VwcG9y dCBzc3VwID0gKFNvcnRTdXBwb3J0KSBQR19HRVRBUkdfUE9JTlRFUigwKTsKIAogCXNzdXAtPmNv bXBhcmF0b3IgPSBnYnRfbWFjYWRkcjhfc3N1cF9jbXA7Ci0Jc3N1cC0+c3N1cF9leHRyYSA9IE5V TEw7CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9n aXN0L2J0cmVlX251bWVyaWMuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9udW1lcmljLmMK aW5kZXggZGJhMDRjM2ExYjMuLjcxNmI0NmMyN2JhIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVl X2dpc3QvYnRyZWVfbnVtZXJpYy5jCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9udW1l cmljLmMKQEAgLTI0Niw3ICsyNDYsNiBAQCBnYnRfbnVtZXJpY19zb3J0c3VwcG9ydChQR19GVU5D VElPTl9BUkdTKQogCVNvcnRTdXBwb3J0IHNzdXAgPSAoU29ydFN1cHBvcnQpIFBHX0dFVEFSR19Q T0lOVEVSKDApOwogCiAJc3N1cC0+Y29tcGFyYXRvciA9IGdidF9udW1lcmljX3NzdXBfY21wOwot CXNzdXAtPnNzdXBfZXh0cmEgPSBOVUxMOwogCiAJUEdfUkVUVVJOX1ZPSUQoKTsKIH0KZGlmZiAt LWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9vaWQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lz dC9idHJlZV9vaWQuYwppbmRleCAzZGRmMmE5OTNkNC4uNzBlYjkxZDg3ODEgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9vaWQuYworKysgYi9jb250cmliL2J0cmVlX2dpc3Qv YnRyZWVfb2lkLmMKQEAgLTIzNiw3ICsyMzYsNiBAQCBnYnRfb2lkX3NvcnRzdXBwb3J0KFBHX0ZV TkNUSU9OX0FSR1MpCiAJU29ydFN1cHBvcnQgc3N1cCA9IChTb3J0U3VwcG9ydCkgUEdfR0VUQVJH X1BPSU5URVIoMCk7CiAKIAlzc3VwLT5jb21wYXJhdG9yID0gZ2J0X29pZF9zc3VwX2NtcDsKLQlz c3VwLT5zc3VwX2V4dHJhID0gTlVMTDsKIAogCVBHX1JFVFVSTl9WT0lEKCk7CiB9CmRpZmYgLS1n aXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdGV4dC5jIGIvY29udHJpYi9idHJlZV9naXN0 L2J0cmVlX3RleHQuYwppbmRleCAyYWMxMmYxY2FiMi4uOTAzZDgwYTQyZDQgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV90ZXh0LmMKKysrIGIvY29udHJpYi9idHJlZV9naXN0 L2J0cmVlX3RleHQuYwpAQCAtMzEzLDcgKzMxMyw2IEBAIGdidF90ZXh0X3NvcnRzdXBwb3J0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJU29ydFN1cHBvcnQgc3N1cCA9IChTb3J0U3VwcG9ydCkgUEdfR0VU QVJHX1BPSU5URVIoMCk7CiAKIAlzc3VwLT5jb21wYXJhdG9yID0gZ2J0X3RleHRfc3N1cF9jbXA7 Ci0Jc3N1cC0+c3N1cF9leHRyYSA9IE5VTEw7CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQpAQCAt MzQ2LDcgKzM0NSw2IEBAIGdidF9icGNoYXJfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykK IAlTb3J0U3VwcG9ydCBzc3VwID0gKFNvcnRTdXBwb3J0KSBQR19HRVRBUkdfUE9JTlRFUigwKTsK IAogCXNzdXAtPmNvbXBhcmF0b3IgPSBnYnRfYnBjaGFyX3NzdXBfY21wOwotCXNzdXAtPnNzdXBf ZXh0cmEgPSBOVUxMOwogCiAJUEdfUkVUVVJOX1ZPSUQoKTsKIH0KZGlmZiAtLWdpdCBhL2NvbnRy aWIvYnRyZWVfZ2lzdC9idHJlZV90aW1lLmMgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdGlt ZS5jCmluZGV4IDlkMjNmYjRiODY3Li42MTBjYjkwYWE2ZiAxMDA2NDQKLS0tIGEvY29udHJpYi9i dHJlZV9naXN0L2J0cmVlX3RpbWUuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdGlt ZS5jCkBAIC0zNDEsNyArMzQxLDYgQEAgZ2J0X3RpbWVfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05f QVJHUykKIAlTb3J0U3VwcG9ydCBzc3VwID0gKFNvcnRTdXBwb3J0KSBQR19HRVRBUkdfUE9JTlRF UigwKTsKIAogCXNzdXAtPmNvbXBhcmF0b3IgPSBnYnRfdGltZWtleV9zc3VwX2NtcDsKLQlzc3Vw LT5zc3VwX2V4dHJhID0gTlVMTDsKIAogCVBHX1JFVFVSTl9WT0lEKCk7CiB9CmRpZmYgLS1naXQg YS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdHMuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJl ZV90cy5jCmluZGV4IDBmODhkNWQ3MmY0Li4zMmQ3N2M2MjJhZiAxMDA2NDQKLS0tIGEvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX3RzLmMKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3Rz LmMKQEAgLTQxMiw3ICs0MTIsNiBAQCBnYnRfdHNfc29ydHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJH UykKIAlTb3J0U3VwcG9ydCBzc3VwID0gKFNvcnRTdXBwb3J0KSBQR19HRVRBUkdfUE9JTlRFUigw KTsKIAogCXNzdXAtPmNvbXBhcmF0b3IgPSBnYnRfdHNfc3N1cF9jbXA7Ci0Jc3N1cC0+c3N1cF9l eHRyYSA9IE5VTEw7CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQpkaWZmIC0tZ2l0IGEvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX3V1aWQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV91dWlk LmMKaW5kZXggYzg5MTg0MGZiMjUuLmExMzQ1YTg0MDFmIDEwMDY0NAotLS0gYS9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfdXVpZC5jCisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV91dWlk LmMKQEAgLTI1MSw3ICsyNTEsNiBAQCBnYnRfdXVpZF9zb3J0c3VwcG9ydChQR19GVU5DVElPTl9B UkdTKQogCVNvcnRTdXBwb3J0IHNzdXAgPSAoU29ydFN1cHBvcnQpIFBHX0dFVEFSR19QT0lOVEVS KDApOwogCiAJc3N1cC0+Y29tcGFyYXRvciA9IGdidF91dWlkX3NzdXBfY21wOwotCXNzdXAtPnNz dXBfZXh0cmEgPSBOVUxMOwogCiAJUEdfUkVUVVJOX1ZPSUQoKTsKIH0KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbmV0 d29yay5jCmluZGV4IDNhMjAwMjA5N2RkLi4yMjM2NzJlYzhiNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbmV0 d29yay5jCkBAIC00MzUsNyArNDM1LDYgQEAgbmV0d29ya19zb3J0c3VwcG9ydChQR19GVU5DVElP Tl9BUkdTKQogCVNvcnRTdXBwb3J0IHNzdXAgPSAoU29ydFN1cHBvcnQpIFBHX0dFVEFSR19QT0lO VEVSKDApOwogCiAJc3N1cC0+Y29tcGFyYXRvciA9IG5ldHdvcmtfZmFzdF9jbXA7Ci0Jc3N1cC0+ c3N1cF9leHRyYSA9IE5VTEw7CiAKIAlpZiAoc3N1cC0+YWJicmV2aWF0ZSkKIAl7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3JhbmdldHlwZXMuYwppbmRleCAwNmNjM2FmNGY0YS4uODgzYzBlNDBjZjMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwpAQCAtMTQ2Nyw3ICsxNDY3LDYgQEAgcmFuZ2Vfc29y dHN1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykKIAlTb3J0U3VwcG9ydCBzc3VwID0gKFNvcnRTdXBw b3J0KSBQR19HRVRBUkdfUE9JTlRFUigwKTsKIAogCXNzdXAtPmNvbXBhcmF0b3IgPSByYW5nZV9m YXN0X2NtcDsKLQlzc3VwLT5zc3VwX2V4dHJhID0gTlVMTDsKIAogCVBHX1JFVFVSTl9WT0lEKCk7 CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdXVpZC5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3V1aWQuYwppbmRleCA2ZWUzNzUyYWM3OC4uNjQ1MTlkNGVhZDYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC91dWlkLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3V1aWQuYwpAQCAtMjc5LDcgKzI3OSw2IEBAIHV1aWRfc29ydHN1cHBvcnQoUEdfRlVO Q1RJT05fQVJHUykKIAlTb3J0U3VwcG9ydCBzc3VwID0gKFNvcnRTdXBwb3J0KSBQR19HRVRBUkdf UE9JTlRFUigwKTsKIAogCXNzdXAtPmNvbXBhcmF0b3IgPSB1dWlkX2Zhc3RfY21wOwotCXNzdXAt PnNzdXBfZXh0cmEgPSBOVUxMOwogCiAJaWYgKHNzdXAtPmFiYnJldmlhdGUpCiAJewotLSAKMi40 My4wCgo= --000000000000be488f064c9718e2 Content-Type: text/x-patch; charset="US-ASCII"; name="v2-0001-Simplify-SortSupport-implementation-for-macaddr.patch" Content-Disposition: attachment; filename="v2-0001-Simplify-SortSupport-implementation-for-macaddr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmj73smg0 RnJvbSBjZWUzNDk5YTM2ZDhjNTQ1N2ZlOGNlZGY1MzhlZDg0ZTFiNzAwYzg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxhbGVrc2FuZGVyQHRpZ2Vy ZGF0YS5jb20+CkRhdGU6IFdlZCwgMjUgRmViIDIwMjYgMTQ6NDA6MjYgKzAzMDAKU3ViamVjdDog W1BBVENIIHYyIDEvMl0gU2ltcGxpZnkgU29ydFN1cHBvcnQgaW1wbGVtZW50YXRpb24gZm9yIG1h Y2FkZHIKClNpbmNlIERhdHVtcyBhcmUgNjQtYml0IHZhbHVlcyBhbmQgTUFDIGFkZHJlc3NlcyBo YXZlIG9ubHkgNiBieXRlcywgdGhlCmFiYnJldmlhdGVkIGtleSBjb250YWlucyB0aGUgZW50aXJl IE1BQyBhZGRyZXNzIGFuZCBpcyBhdXRob3JpdGF0aXZlLiBUaHVzCnRoZXJlIGlzIG5vIG5lZWQg Zm9yIGNhcmRpbmFsaXR5IGVzdGltYXRpb24gdXNpbmcgSHlwZXJMb2dMb2cuCgpBdXRob3I6IEFs ZWtzYW5kZXIgQWxla3NlZXYgPGFsZWtzYW5kZXJAdGlnZXJkYXRhLmNvbT4KU3VnZ2VzdGVkLWJ5 OiBKb2huIE5heWxvciA8am9obmNuYXlsb3Jsc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRy ZXkgQm9yb2RpbiA8eDRtbW1AeWFuZGV4LXRlYW0ucnU+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FKN2M2VE1rMTByRl9MaU16Nmo5clJ5MXJxay01cyt3QlB1QmVmTGl4NGNZKy00 czF3QG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYy5jIHwgMTAx ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUg aW5zZXJ0aW9ucygrKSwgOTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L21hYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYy5jCmluZGV4IGYxNDY3 NWRlYTQwLi5iNzJkZWUzNzMxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21h Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWMuYwpAQCAtMTQsMTEgKzE0LDkgQEAK ICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiY29tbW9uL2hhc2hmbi5oIgotI2lu Y2x1ZGUgImxpYi9oeXBlcmxvZ2xvZy5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAj aW5jbHVkZSAicG9ydC9wZ19ic3dhcC5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3Jwcm90b3MuaCIK LSNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9pbmV0LmgiCiAjaW5jbHVk ZSAidXRpbHMvc29ydHN1cHBvcnQuaCIKIApAQCAtMzMsMTUgKzMxLDYgQEAKICNkZWZpbmUgbG9i aXRzKGFkZHIpIFwKICAgKCh1bnNpZ25lZCBsb25nKSgoKGFkZHIpLT5kPDwxNil8KChhZGRyKS0+ ZTw8OCl8KChhZGRyKS0+ZikpKQogCi0vKiBzb3J0c3VwcG9ydCBmb3IgbWFjYWRkciAqLwotdHlw ZWRlZiBzdHJ1Y3QKLXsKLQlpbnQ2NAkJaW5wdXRfY291bnQ7CS8qIG51bWJlciBvZiBub24tbnVs bCB2YWx1ZXMgc2VlbiAqLwotCWJvb2wJCWVzdGltYXRpbmc7CQkvKiB0cnVlIGlmIGVzdGltYXRp bmcgY2FyZGluYWxpdHkgKi8KLQotCWh5cGVyTG9nTG9nU3RhdGUgYWJicl9jYXJkOyAvKiBjYXJk aW5hbGl0eSBlc3RpbWF0b3IgKi8KLX0gbWFjYWRkcl9zb3J0c3VwcG9ydF9zdGF0ZTsKLQogc3Rh dGljIGludAltYWNhZGRyX2NtcF9pbnRlcm5hbChtYWNhZGRyICphMSwgbWFjYWRkciAqYTIpOwog c3RhdGljIGludAltYWNhZGRyX2Zhc3RfY21wKERhdHVtIHgsIERhdHVtIHksIFNvcnRTdXBwb3J0 IHNzdXApOwogc3RhdGljIGJvb2wgbWFjYWRkcl9hYmJyZXZfYWJvcnQoaW50IG1lbXR1cGNvdW50 LCBTb3J0U3VwcG9ydCBzc3VwKTsKQEAgLTM2NSwyOCArMzU0LDEzIEBAIG1hY2FkZHJfc29ydHN1 cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykKIAlTb3J0U3VwcG9ydCBzc3VwID0gKFNvcnRTdXBwb3J0 KSBQR19HRVRBUkdfUE9JTlRFUigwKTsKIAogCXNzdXAtPmNvbXBhcmF0b3IgPSBtYWNhZGRyX2Zh c3RfY21wOwotCXNzdXAtPnNzdXBfZXh0cmEgPSBOVUxMOwogCiAJaWYgKHNzdXAtPmFiYnJldmlh dGUpCiAJewotCQltYWNhZGRyX3NvcnRzdXBwb3J0X3N0YXRlICp1c3M7Ci0JCU1lbW9yeUNvbnRl eHQgb2xkY29udGV4dDsKLQotCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKHNz dXAtPnNzdXBfY3h0KTsKLQotCQl1c3MgPSBwYWxsb2Nfb2JqZWN0KG1hY2FkZHJfc29ydHN1cHBv cnRfc3RhdGUpOwotCQl1c3MtPmlucHV0X2NvdW50ID0gMDsKLQkJdXNzLT5lc3RpbWF0aW5nID0g dHJ1ZTsKLQkJaW5pdEh5cGVyTG9nTG9nKCZ1c3MtPmFiYnJfY2FyZCwgMTApOwotCi0JCXNzdXAt PnNzdXBfZXh0cmEgPSB1c3M7Ci0KIAkJc3N1cC0+Y29tcGFyYXRvciA9IHNzdXBfZGF0dW1fdW5z aWduZWRfY21wOwogCQlzc3VwLT5hYmJyZXZfY29udmVydGVyID0gbWFjYWRkcl9hYmJyZXZfY29u dmVydDsKIAkJc3N1cC0+YWJicmV2X2Fib3J0ID0gbWFjYWRkcl9hYmJyZXZfYWJvcnQ7CiAJCXNz dXAtPmFiYnJldl9mdWxsX2NvbXBhcmF0b3IgPSBtYWNhZGRyX2Zhc3RfY21wOwotCi0JCU1lbW9y eUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIAl9CiAKIAlQR19SRVRVUk5fVk9JRCgpOwpA QCAtNDA2LDYxICszODAsMTIgQEAgbWFjYWRkcl9mYXN0X2NtcChEYXR1bSB4LCBEYXR1bSB5LCBT b3J0U3VwcG9ydCBzc3VwKQogfQogCiAvKgotICogQ2FsbGJhY2sgZm9yIGVzdGltYXRpbmcgZWZm ZWN0aXZlbmVzcyBvZiBhYmJyZXZpYXRlZCBrZXkgb3B0aW1pemF0aW9uLgotICoKLSAqIFdlIHBh eSBubyBhdHRlbnRpb24gdG8gdGhlIGNhcmRpbmFsaXR5IG9mIHRoZSBub24tYWJicmV2aWF0ZWQg ZGF0YSwgYmVjYXVzZQotICogdGhlcmUgaXMgbm8gZXF1YWxpdHkgZmFzdC1wYXRoIHdpdGhpbiBh dXRob3JpdGF0aXZlIG1hY2FkZHIgY29tcGFyYXRvci4KKyAqIEFiYnJldmlhdGlvbiBpcyBuZXZl ciBhYm9ydGVkIGZvciBtYWNhZGRyIGJlY2F1c2UgdGhlIDYtYnl0ZSBNQUMgYWRkcmVzcworICog Zml0cyBlbnRpcmVseSB3aXRoaW4gYSA2NC1iaXQgRGF0dW0sIG1ha2luZyB0aGUgYWJicmV2aWF0 ZWQga2V5IGF1dGhvcml0YXRpdmUuCiAgKi8KIHN0YXRpYyBib29sCiBtYWNhZGRyX2FiYnJldl9h Ym9ydChpbnQgbWVtdHVwY291bnQsIFNvcnRTdXBwb3J0IHNzdXApCiB7Ci0JbWFjYWRkcl9zb3J0 c3VwcG9ydF9zdGF0ZSAqdXNzID0gc3N1cC0+c3N1cF9leHRyYTsKLQlkb3VibGUJCWFiYnJfY2Fy ZDsKLQotCWlmIChtZW10dXBjb3VudCA8IDEwMDAwIHx8IHVzcy0+aW5wdXRfY291bnQgPCAxMDAw MCB8fCAhdXNzLT5lc3RpbWF0aW5nKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlhYmJyX2NhcmQgPSBl c3RpbWF0ZUh5cGVyTG9nTG9nKCZ1c3MtPmFiYnJfY2FyZCk7Ci0KLQkvKgotCSAqIElmIHdlIGhh dmUgPjEwMGsgZGlzdGluY3QgdmFsdWVzLCB0aGVuIGV2ZW4gaWYgd2Ugd2VyZSBzb3J0aW5nIG1h bnkKLQkgKiBiaWxsaW9uIHJvd3Mgd2UnZCBsaWtlbHkgc3RpbGwgYnJlYWsgZXZlbiwgYW5kIHRo ZSBwZW5hbHR5IG9mIHVuZG9pbmcKLQkgKiB0aGF0IG1hbnkgcm93cyBvZiBhYmJyZXZzIHdvdWxk IHByb2JhYmx5IG5vdCBiZSB3b3J0aCBpdC4gQXQgdGhpcyBwb2ludAotCSAqIHdlIHN0b3AgY291 bnRpbmcgYmVjYXVzZSB3ZSBrbm93IHRoYXQgd2UncmUgbm93IGZ1bGx5IGNvbW1pdHRlZC4KLQkg Ki8KLQlpZiAoYWJicl9jYXJkID4gMTAwMDAwLjApCi0JewotCQlpZiAodHJhY2Vfc29ydCkKLQkJ CWVsb2coTE9HLAotCQkJCSAibWFjYWRkcl9hYmJyZXY6IGVzdGltYXRpb24gZW5kcyBhdCBjYXJk aW5hbGl0eSAlZiIKLQkJCQkgIiBhZnRlciAiIElOVDY0X0ZPUk1BVCAiIHZhbHVlcyAoJWQgcm93 cykiLAotCQkJCSBhYmJyX2NhcmQsIHVzcy0+aW5wdXRfY291bnQsIG1lbXR1cGNvdW50KTsKLQkJ dXNzLT5lc3RpbWF0aW5nID0gZmFsc2U7Ci0JCXJldHVybiBmYWxzZTsKLQl9Ci0KLQkvKgotCSAq IFRhcmdldCBtaW5pbXVtIGNhcmRpbmFsaXR5IGlzIDEgcGVyIH4yayBvZiBub24tbnVsbCBpbnB1 dHMuIDAuNSByb3cKLQkgKiBmdWRnZSBmYWN0b3IgYWxsb3dzIHVzIHRvIGFib3J0IGVhcmxpZXIg b24gZ2VudWluZWx5IHBhdGhvbG9naWNhbCBkYXRhCi0JICogd2hlcmUgd2UndmUgaGFkIGV4YWN0 bHkgb25lIGFiYnJldmlhdGVkIHZhbHVlIGluIHRoZSBmaXJzdCAyawotCSAqIChub24tbnVsbCkg cm93cy4KLQkgKi8KLQlpZiAoYWJicl9jYXJkIDwgdXNzLT5pbnB1dF9jb3VudCAvIDIwMDAuMCAr IDAuNSkKLQl7Ci0JCWlmICh0cmFjZV9zb3J0KQotCQkJZWxvZyhMT0csCi0JCQkJICJtYWNhZGRy X2FiYnJldjogYWJvcnRpbmcgYWJicmV2aWF0aW9uIGF0IGNhcmRpbmFsaXR5ICVmIgotCQkJCSAi IGJlbG93IHRocmVzaG9sZCAlZiBhZnRlciAiIElOVDY0X0ZPUk1BVCAiIHZhbHVlcyAoJWQgcm93 cykiLAotCQkJCSBhYmJyX2NhcmQsIHVzcy0+aW5wdXRfY291bnQgLyAyMDAwLjAgKyAwLjUsIHVz cy0+aW5wdXRfY291bnQsCi0JCQkJIG1lbXR1cGNvdW50KTsKLQkJcmV0dXJuIHRydWU7Ci0JfQot Ci0JaWYgKHRyYWNlX3NvcnQpCi0JCWVsb2coTE9HLAotCQkJICJtYWNhZGRyX2FiYnJldjogY2Fy ZGluYWxpdHkgJWYgYWZ0ZXIgIiBJTlQ2NF9GT1JNQVQKLQkJCSAiIHZhbHVlcyAoJWQgcm93cyki LCBhYmJyX2NhcmQsIHVzcy0+aW5wdXRfY291bnQsIG1lbXR1cGNvdW50KTsKLQogCXJldHVybiBm YWxzZTsKIH0KIApAQCAtNDY5LDE0ICszOTQsMTMgQEAgbWFjYWRkcl9hYmJyZXZfYWJvcnQoaW50 IG1lbXR1cGNvdW50LCBTb3J0U3VwcG9ydCBzc3VwKQogICogdG8gYWJicmV2aWF0ZWQga2V5IHJl cHJlc2VudGF0aW9uLgogICoKICAqIFBhY2tzIHRoZSBieXRlcyBvZiBhIDYtYnl0ZSBNQUMgYWRk cmVzcyBpbnRvIGEgRGF0dW0gYW5kIHRyZWF0cyBpdCBhcyBhbgotICogdW5zaWduZWQgaW50ZWdl ciBmb3IgcHVycG9zZXMgb2YgY29tcGFyaXNvbi4gT24gYSA2NC1iaXQgbWFjaGluZSwgdGhlcmUK LSAqIHdpbGwgYmUgdHdvIHplcm9lZCBieXRlcyBvZiBwYWRkaW5nLiBUaGUgaW50ZWdlciBpcyBj b252ZXJ0ZWQgdG8gbmF0aXZlCi0gKiBlbmRpYW5uZXNzIHRvIGZhY2lsaXRhdGUgZWFzeSBjb21w YXJpc29uLgorICogdW5zaWduZWQgaW50ZWdlciBmb3IgcHVycG9zZXMgb2YgY29tcGFyaXNvbi4g VGhlcmUgd2lsbCBiZSB0d28gemVyb2VkIGJ5dGVzCisgKiBvZiBwYWRkaW5nLiBUaGUgaW50ZWdl ciBpcyBjb252ZXJ0ZWQgdG8gbmF0aXZlIGVuZGlhbm5lc3MgdG8gZmFjaWxpdGF0ZQorICogZWFz eSBjb21wYXJpc29uLgogICovCiBzdGF0aWMgRGF0dW0KIG1hY2FkZHJfYWJicmV2X2NvbnZlcnQo RGF0dW0gb3JpZ2luYWwsIFNvcnRTdXBwb3J0IHNzdXApCiB7Ci0JbWFjYWRkcl9zb3J0c3VwcG9y dF9zdGF0ZSAqdXNzID0gc3N1cC0+c3N1cF9leHRyYTsKIAltYWNhZGRyICAgICphdXRob3JpdGF0 aXZlID0gRGF0dW1HZXRNYWNhZGRyUChvcmlnaW5hbCk7CiAJRGF0dW0JCXJlczsKIApAQCAtNDg5 LDIxICs0MTMsNiBAQCBtYWNhZGRyX2FiYnJldl9jb252ZXJ0KERhdHVtIG9yaWdpbmFsLCBTb3J0 U3VwcG9ydCBzc3VwKQogCQkJCQkgIkRhdHVtIGlzIHRvbyBzbWFsbCBmb3IgbWFjYWRkciIpOwog CW1lbXNldCgmcmVzLCAwLCBzaXplb2YocmVzKSk7CiAJbWVtY3B5KCZyZXMsIGF1dGhvcml0YXRp dmUsIHNpemVvZihtYWNhZGRyKSk7Ci0JdXNzLT5pbnB1dF9jb3VudCArPSAxOwotCi0JLyoKLQkg KiBDYXJkaW5hbGl0eSBlc3RpbWF0aW9uLiBUaGUgZXN0aW1hdGUgdXNlcyB1aW50MzIsIHNvIFhP UiB0aGUgdHdvIDMyLWJpdAotCSAqIGhhbHZlcyB0b2dldGhlciB0byBwcm9kdWNlIHNsaWdodGx5 IG1vcmUgZW50cm9weS4gVGhlIHR3byB6ZXJvZWQgYnl0ZXMKLQkgKiB3b24ndCBoYXZlIGFueSBw cmFjdGljYWwgaW1wYWN0IG9uIHRoaXMgb3BlcmF0aW9uLgotCSAqLwotCWlmICh1c3MtPmVzdGlt YXRpbmcpCi0JewotCQl1aW50MzIJCXRtcDsKLQotCQl0bXAgPSBEYXR1bUdldFVJbnQzMihyZXMp IF4gKHVpbnQzMikgKERhdHVtR2V0VUludDY0KHJlcykgPj4gMzIpOwotCi0JCWFkZEh5cGVyTG9n TG9nKCZ1c3MtPmFiYnJfY2FyZCwgRGF0dW1HZXRVSW50MzIoaGFzaF91aW50MzIodG1wKSkpOwot CX0KIAogCS8qCiAJICogQnl0ZXN3YXAgb24gbGl0dGxlLWVuZGlhbiBtYWNoaW5lcy4KLS0gCjIu NDMuMAoK --000000000000be488f064c9718e2--