From patchwork Mon Jan 26 10:42:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rick ten Wolde X-Patchwork-Id: 25965 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 117A2C32EA for ; Mon, 26 Jan 2026 10:48:19 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 2634F61FC4; Mon, 26 Jan 2026 11:48:18 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="H2v/Subi"; dkim-atps=neutral Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4770761FC8 for ; Mon, 26 Jan 2026 11:43:09 +0100 (CET) Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-b8869cd7bb1so460013766b.1 for ; Mon, 26 Jan 2026 02:43:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769424188; x=1770028988; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wUzt/fC0jiCY2Twb7JUKPXPppPbItoi7piOn2nAFcDM=; b=H2v/Subiumere8Z2Q2NdQ5DuZLLqk7Pv7zjkLbIIzwkneIj5G7N7UkEAY5FU+tqeCg s7GWUxX+j6zOjcaIZk6Y3rCvNYGZg1FQoRb5RyuF/7/0E0UbrTTkY0m/vfb70B8M/LK1 NrYe4hmZ1K3KuWnecEDpZkwvtpaj3itmkInn3tOwSWYdOSr5cFQHR7QS8RjwMHS2FplN Grc7lrXZIwgwQyZsylq4GgrfU5Ct07dGo/ZlP02q24ehPHbCNeafeBMkC/J0VsTkWxHf TP/7WwevvtBoz4m/j2GSzrmZC1OWbE44BA8SWvaoeDclv8WMta5UM/PjFVIvQx7BsO8T dw8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769424188; x=1770028988; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wUzt/fC0jiCY2Twb7JUKPXPppPbItoi7piOn2nAFcDM=; b=ROK6rep7GTECi5R0UTtsNulRYUzfDjKW6190pIn5CtPo1CiHt+UruTjchhJ6hL2JAf 1uG/2RwrX/uDAYw1lkoNJjuPPdTGGu8Y1uWgQnjRnnyjgUFYjkBSpZMWUvjA5YxGfiiA JQTbiJIWUiRWx4BUDb5IRhRSXB328y/IlbgcXMz73vNp/mO4brZPYiaBEvrKy19GB1eR n+4hTga/mNmZVpvEKRlViG13QS0JWOHDOhoVzhdl0+f4YfqrKBO1nyv9vUGHL54sXR1g m/cw8hb7dAoKkWeHuEH8XaJkx8BGQtNxqOLdnikKgifgj3Eh4XVhls4iDQAal0h5QS25 aZDQ== X-Gm-Message-State: AOJu0YzCe1GOl14qVkxTDUQKLMntW+3uSV13nAuBtlEtvaRWpirvItdm ay7K0hFp4R9b1210CZI1kCBwmQi7wczyYxig9z+OcpzxJ1ZqIhp+C92iSY2SnA== X-Gm-Gg: AZuq6aLpjXu2O/nWEKscp83C0GOvixlcHlB3oDG2arCKgUUvnjc69KHfYNmOdUsUaKI KvGnOuGIyPF+ftwNjB8SCEVxvmMd3LMInjWh7CE1kPtQK33iuq9+KyXKGUFFw6x/XrF/drGuOe6 aNYz6d3VmhMt3Z9Jw6ouAR0VfCFOpbkfev/uPcoeNcMoLAvH29kmGnoM8EPecjTKVdIPWjGhYUL +kLgu7pdVF6q0xw1huQrLT90cQyauyQdS2ULckj4xjwMXn/RmUajt92PPKPAyJFmMQVj2ugTkeX phWmhrCyHvTL4olZF91e8K1fHK/O4Czrm5BB5nkPD31WBcFAndTQniFd9BjiYPiDJXOfuyhGqcN 3ipWTW7NBcQQzZYh54X2FVFBIaFvbBXpkXo4OyR/SXGln3Uxfm7et8FnFB7wMHdkPiioISKs5ip em5jrLPhWvGn3sIOgLEIRmGLbHU3Llu+GqpQr2ymGsNSxIk2nPNTQakNns5abXEGJ/69tj91Uv0 Q== X-Received: by 2002:a17:907:d14:b0:b87:1d55:2310 with SMTP id a640c23a62f3a-b8d3fbba433mr247548466b.37.1769424188229; Mon, 26 Jan 2026 02:43:08 -0800 (PST) Received: from castortop.wolde.loc (195-240-110-192.fixed.kpn.net. [195.240.110.192]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b885b7661f7sm599220366b.54.2026.01.26.02.43.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Jan 2026 02:43:07 -0800 (PST) From: Rick ten Wolde To: libcamera-devel@lists.libcamera.org Cc: xander.c.pronk@gmail.com, derekgielen@outlook.com, 22012540@student.hhs.nl, rick.w.ten.wolde@gmail.com, johannes.goede@oss.qualcomm.com, Rick ten Wolde Subject: [PATCH 7/7] HACK: Add test LSC to src/ipa/simple/data/uncalibrated.yaml Date: Mon, 26 Jan 2026 11:42:55 +0100 Message-ID: <20260126104256.119697-8-rick.w.ten.wolde@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260126104256.119697-1-rick.w.ten.wolde@gmail.com> References: <20260126104256.119697-1-rick.w.ten.wolde@gmail.com> MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 26 Jan 2026 11:48:05 +0100 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" From: Xander Pronk Add test LSC to src/ipa/simple/data/uncalibrated.yaml. Co-authored-by: Rick ten Wolde Signed-off-by: Rick ten Wolde Signed-off-by: Xander Pronk --- src/ipa/simple/data/uncalibrated.yaml | 183 +++++++++++++++++++++++++- 1 file changed, 179 insertions(+), 4 deletions(-) diff --git a/src/ipa/simple/data/uncalibrated.yaml b/src/ipa/simple/data/uncalibrated.yaml index 8b6df9af..91fa8897 100644 --- a/src/ipa/simple/data/uncalibrated.yaml +++ b/src/ipa/simple/data/uncalibrated.yaml @@ -5,15 +5,190 @@ version: 1 algorithms: - BlackLevel: - Awb: - # Color correction matrices can be defined here. The CCM algorithm - # has a significant performance impact, and should only be enabled - # if tuned. - Ccm: ccms: - ct: 6500 ccm: [ 1, 0, 0, 0, 1, 0, - 0, 0, 1] + 0, 0, 1 ] - Lut: - Agc: + - Lsc: + grids: + # =========================== + # Source CT: 2700K (Tungsten) + # =========================== + - ct: 2700 + r: [ + 70, 54, 41, 26, 13, 3, 0, 0, 0, 0, 5, 17, 32, 46, 64, 82, + 60, 48, 33, 17, 3, 0, 0, 0, 0, 0, 0, 7, 23, 39, 55, 69, + 53, 42, 26, 8, 0, 0, 0, 0, 0, 0, 0, 1, 15, 33, 49, 60, + 49, 38, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 27, 44, 55, + 46, 33, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 41, 52, + 43, 29, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 37, 49, + 42, 25, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 35, 49, + 41, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 33, 48, + 41, 23, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 33, 48, + 41, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 35, 48, + 42, 27, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 37, 49, + 43, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21, 40, 52, + 46, 35, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 26, 44, 55, + 50, 39, 23, 5, 0, 0, 0, 0, 0, 0, 0, 1, 14, 32, 48, 60, + 56, 42, 29, 12, 1, 0, 0, 0, 0, 0, 0, 6, 21, 38, 53, 68, + 65, 46, 33, 19, 5, 0, 0, 0, 0, 0, 3, 14, 28, 43, 61, 81 + ] + g: [ + 61, 45, 33, 20, 9, 1, 0, 0, 0, 0, 3, 12, 25, 37, 54, 72, + 51, 39, 27, 13, 2, 0, 0, 0, 0, 0, 0, 4, 18, 31, 46, 59, + 44, 35, 21, 6, 0, 0, 0, 0, 0, 0, 0, 0, 11, 26, 40, 51, + 39, 30, 14, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, 21, 36, 46, + 36, 26, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 16, 33, 43, + 33, 22, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 30, 40, + 32, 19, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 39, + 32, 17, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 26, 39, + 32, 17, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 26, 39, + 32, 18, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 39, + 33, 20, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 30, 40, + 34, 24, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 17, 33, 43, + 37, 28, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 22, 37, 46, + 41, 32, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 11, 27, 41, 52, + 47, 35, 24, 9, 0, 0, 0, 0, 0, 0, 0, 4, 18, 32, 46, 60, + 57, 39, 27, 15, 3, 0, 0, 0, 0, 0, 1, 11, 23, 36, 54, 73 + ] + b: [ + 141, 120, 103, 87, 70, 56, 46, 43, 43, 46, 58, 72, 90, 105, 127, 149, + 128, 112, 95, 76, 58, 47, 37, 33, 33, 38, 49, 61, 80, 98, 116, 133, + 119, 106, 87, 66, 49, 37, 29, 24, 24, 31, 38, 52, 70, 91, 108, 122, + 113, 100, 78, 57, 41, 29, 22, 16, 16, 24, 31, 44, 62, 84, 103, 115, + 108, 93, 70, 50, 34, 22, 15, 9, 9, 16, 25, 38, 55, 77, 98, 111, + 105, 88, 64, 44, 28, 16, 8, 4, 5, 9, 19, 33, 49, 72, 94, 108, + 103, 84, 59, 40, 24, 12, 3, 1, 3, 5, 16, 29, 46, 68, 91, 107, + 103, 82, 57, 38, 22, 10, 1, 0, 0, 3, 14, 28, 45, 66, 90, 107, + 103, 82, 57, 38, 22, 10, 1, 0, 0, 3, 14, 28, 45, 66, 90, 107, + 103, 84, 59, 39, 24, 11, 3, 1, 3, 5, 16, 30, 47, 69, 92, 107, + 104, 87, 63, 43, 28, 15, 9, 4, 5, 10, 20, 34, 51, 73, 96, 109, + 107, 93, 69, 48, 33, 21, 15, 9, 10, 16, 26, 40, 57, 79, 101, 112, + 111, 98, 77, 55, 39, 27, 21, 16, 16, 25, 32, 47, 64, 87, 106, 117, + 117, 104, 86, 64, 46, 36, 27, 25, 25, 32, 40, 55, 74, 96, 112, 125, + 126, 110, 94, 75, 56, 46, 36, 34, 34, 40, 50, 65, 84, 104, 120, 137, + 139, 117, 101, 85, 67, 55, 44, 44, 44, 50, 61, 77, 94, 112, 133, 155 + ] + + # =========================== + # Source CT: 5000K (Daylight) + # =========================== + - ct: 5000 + r: [ + 87, 69, 54, 39, 23, 12, 3, 2, 2, 5, 15, 28, 44, 58, 79, 99, + 76, 61, 46, 28, 13, 4, 0, 0, 0, 0, 7, 17, 35, 52, 69, 85, + 68, 56, 38, 19, 5, 0, 0, 0, 0, 0, 0, 9, 26, 45, 62, 75, + 63, 51, 30, 11, 0, 0, 0, 0, 0, 0, 0, 3, 18, 39, 57, 69, + 60, 45, 24, 5, 0, 0, 0, 0, 0, 0, 0, 0, 12, 32, 53, 66, + 57, 41, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 7, 28, 50, 63, + 55, 38, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, 24, 47, 62, + 55, 35, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 45, 61, + 55, 35, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 45, 61, + 55, 36, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 47, 61, + 55, 39, 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 7, 28, 49, 63, + 57, 43, 21, 3, 0, 0, 0, 0, 0, 0, 0, 0, 11, 32, 52, 65, + 60, 47, 27, 8, 0, 0, 0, 0, 0, 0, 0, 2, 17, 38, 56, 69, + 65, 51, 34, 15, 1, 0, 0, 0, 0, 0, 0, 8, 24, 44, 61, 74, + 71, 56, 40, 23, 7, 0, 0, 0, 0, 0, 3, 15, 32, 50, 67, 83, + 81, 60, 45, 29, 15, 5, 0, 0, 0, 2, 11, 24, 39, 55, 75, 97 + ] + g: [ + 26, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 34, + 18, 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 13, 24, + 13, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 17, + 9, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 13, + 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 11, + 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 13, + 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 17, + 14, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 12, 23, + 21, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 18, 33 + ] + b: [ + 92, 73, 58, 44, 30, 19, 11, 9, 9, 12, 21, 32, 46, 59, 79, 100, + 80, 66, 51, 35, 21, 12, 5, 2, 2, 5, 14, 23, 38, 54, 70, 86, + 72, 61, 44, 27, 14, 5, 0, 0, 0, 1, 5, 16, 31, 48, 63, 76, + 67, 56, 37, 20, 8, 0, 0, 0, 0, 0, 1, 10, 24, 42, 59, 70, + 63, 50, 31, 14, 3, 0, 0, 0, 0, 0, 0, 5, 18, 36, 55, 66, + 60, 46, 26, 10, 0, 0, 0, 0, 0, 0, 0, 2, 14, 32, 51, 63, + 59, 42, 22, 7, 0, 0, 0, 0, 0, 0, 0, 1, 12, 29, 49, 63, + 58, 40, 20, 5, 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 47, 62, + 58, 40, 20, 5, 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 47, 62, + 58, 42, 22, 6, 0, 0, 0, 0, 0, 0, 0, 1, 12, 29, 49, 62, + 59, 45, 25, 9, 0, 0, 0, 0, 0, 0, 0, 3, 15, 33, 52, 64, + 61, 49, 29, 12, 1, 0, 0, 0, 0, 0, 0, 6, 19, 38, 56, 66, + 65, 53, 35, 17, 5, 0, 0, 0, 0, 0, 1, 11, 25, 43, 60, 70, + 70, 58, 42, 24, 10, 2, 0, 0, 0, 1, 6, 17, 32, 50, 65, 77, + 77, 63, 49, 33, 17, 10, 2, 2, 2, 6, 14, 25, 40, 57, 71, 87, + 88, 68, 54, 41, 26, 16, 8, 8, 8, 13, 22, 33, 48, 63, 82, 102 + ] + + # =========================== + # Source CT: 6500K (Overcast) + # =========================== + - ct: 6500 + r: [ + 90, 71, 55, 40, 25, 14, 4, 3, 3, 6, 16, 29, 45, 59, 80, 101, + 78, 63, 48, 30, 15, 6, 0, 0, 0, 0, 8, 19, 35, 53, 70, 86, + 70, 58, 40, 21, 6, 0, 0, 0, 0, 0, 0, 10, 27, 46, 63, 76, + 65, 52, 32, 13, 1, 0, 0, 0, 0, 0, 0, 4, 19, 40, 58, 70, + 62, 47, 26, 7, 0, 0, 0, 0, 0, 0, 0, 1, 13, 33, 54, 66, + 59, 43, 21, 3, 0, 0, 0, 0, 0, 0, 0, 0, 9, 29, 50, 63, + 57, 39, 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 25, 47, 62, + 57, 37, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 46, 62, + 57, 37, 15, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 24, 46, 62, + 57, 38, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, 25, 47, 62, + 57, 41, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 8, 28, 50, 63, + 59, 45, 23, 5, 0, 0, 0, 0, 0, 0, 0, 0, 13, 33, 53, 66, + 62, 49, 29, 10, 0, 0, 0, 0, 0, 0, 0, 3, 18, 39, 57, 69, + 66, 53, 36, 17, 3, 0, 0, 0, 0, 0, 0, 9, 25, 45, 61, 75, + 73, 57, 42, 25, 9, 1, 0, 0, 0, 0, 4, 17, 33, 51, 67, 84, + 83, 61, 46, 31, 17, 6, 1, 0, 0, 4, 12, 25, 40, 56, 76, 98 + ] + g: [ + 9, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 15, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 14 + ] + b: [ + 52, 36, 25, 14, 3, 0, 0, 0, 0, 0, 0, 4, 15, 25, 41, 58, + 43, 31, 20, 7, 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 34, 46, + 36, 27, 14, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 29, 39, + 32, 23, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 25, 34, + 29, 19, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 22, 31, + 27, 15, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 19, 29, + 25, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17, 28, + 25, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 16, 28, + 25, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 16, 28, + 25, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 17, 28, + 26, 14, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 20, 29, + 27, 18, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 22, 31, + 30, 21, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 13, 26, 34, + 34, 25, 12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 18, 29, 39, + 40, 28, 18, 5, 0, 0, 0, 0, 0, 0, 0, 0, 10, 23, 34, 47, + 49, 33, 22, 11, 1, 0, 0, 0, 0, 0, 0, 5, 16, 28, 43, 59 + ] ...