[v2,10/10] ipa: mali-c55: Add IMX415 tuning data file
diff mbox series

Message ID 20240709144950.3277837-11-dan.scally@ideasonboard.com
State Superseded
Headers show
Series
  • Add Mali-C55 IPA Module and Algorithms
Related show

Commit Message

Dan Scally July 9, 2024, 2:49 p.m. UTC
Add a tuning data file for the IMX415 camera sensor. The black level
offset data is drawn from the camera sensor's datasheet. The lens
shading tables are generated through the libtuning LSC modules.

Acked-by: Nayden Kanchev <nayden.kanchev@arm.com>
Co-developed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
---
Changes in v2:

	- None

 src/ipa/mali-c55/data/imx415.yaml | 325 ++++++++++++++++++++++++++++++
 src/ipa/mali-c55/data/meson.build |   1 +
 2 files changed, 326 insertions(+)
 create mode 100644 src/ipa/mali-c55/data/imx415.yaml

Comments

Kieran Bingham Oct. 9, 2024, 3:40 p.m. UTC | #1
Quoting Daniel Scally (2024-07-09 15:49:50)
> Add a tuning data file for the IMX415 camera sensor. The black level
> offset data is drawn from the camera sensor's datasheet. The lens
> shading tables are generated through the libtuning LSC modules.

We've recently added black level to the camera sensor properties. Could
you add that for the IMX415?

Perhaps on top of this series we could get that from the helper when
available in the IPA.


Can't really review a tuning file - but I'm fine adding this now.


Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> Acked-by: Nayden Kanchev <nayden.kanchev@arm.com>
> Co-developed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
> ---
> Changes in v2:
> 
>         - None
> 
>  src/ipa/mali-c55/data/imx415.yaml | 325 ++++++++++++++++++++++++++++++
>  src/ipa/mali-c55/data/meson.build |   1 +
>  2 files changed, 326 insertions(+)
>  create mode 100644 src/ipa/mali-c55/data/imx415.yaml
> 
> diff --git a/src/ipa/mali-c55/data/imx415.yaml b/src/ipa/mali-c55/data/imx415.yaml
> new file mode 100644
> index 00000000..126b427a
> --- /dev/null
> +++ b/src/ipa/mali-c55/data/imx415.yaml
> @@ -0,0 +1,325 @@
> +# SPDX-License-Identifier: CC0-1.0
> +%YAML 1.1
> +---
> +version: 1
> +algorithms:
> +  - Agc:
> +  - Awb:
> +  - BlackLevelCorrection:
> +      offset00: 51200
> +      offset01: 51200
> +      offset10: 51200
> +      offset11: 51200
> +  - Lsc:
> +      meshScale: 4 # 1.0 - 2.0 Gain
> +      sets:
> +        - ct: 2500
> +          r: [
> +              21, 20, 19, 17, 15, 14, 12, 11,  9,  9,  9,  9,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9, 13, 13, 10, 10, 13, 16, 17, 18, 21, 22,
> +              21, 20, 18, 16, 14, 13, 12, 11, 10,  9,  9,  8,  8,  8,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9, 12, 15, 17, 18, 21, 21,
> +              20, 19, 17, 16, 14, 13, 12, 11, 10,  9,  8,  8,  8,  7,  7,  7,  8,  8,  8,  8,  8,  9,  9,  8,  8,  8, 11, 15, 17, 18, 21, 21,
> +              19, 19, 17, 15, 14, 13, 12, 11, 10,  8,  8,  7,  7,  7,  6,  6,  7,  7,  8,  8,  8,  8,  8,  7,  7,  8, 10, 14, 17, 18, 20, 22,
> +              19, 18, 17, 15, 14, 13, 11, 11,  9,  8,  8,  7,  7,  6,  5,  5,  5,  5,  6,  7,  8,  7,  7,  6,  7,  7, 10, 12, 16, 18, 20, 22,
> +              18, 18, 16, 15, 14, 12, 11, 10,  9,  8,  6,  6,  5,  5,  4,  4,  5,  5,  5,  5,  6,  6,  6,  6,  6,  7,  8, 12, 16, 18, 19, 20,
> +              18, 18, 16, 14, 13, 12, 11,  9,  9,  7,  6,  5,  5,  5,  4,  4,  4,  5,  5,  4,  4,  5,  5,  5,  5,  6,  8, 11, 15, 18, 18, 19,
> +              18, 17, 15, 14, 13, 12, 11,  9,  8,  7,  6,  5,  5,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  5,  5,  6,  7,  9, 14, 17, 18, 18,
> +              18, 17, 15, 14, 13, 12, 11,  9,  8,  7,  5,  5,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  5,  5,  6,  8, 12, 17, 18, 18,
> +              18, 16, 15, 13, 12, 11, 10,  9,  8,  7,  5,  4,  4,  4,  4,  3,  3,  4,  4,  4,  3,  3,  4,  4,  4,  5,  6,  8, 12, 16, 19, 19,
> +              17, 16, 15, 13, 12, 11, 10,  8,  7,  6,  4,  4,  3,  3,  3,  3,  3,  3,  4,  4,  3,  3,  3,  4,  4,  5,  6,  9, 12, 16, 19, 20,
> +              17, 15, 15, 13, 12, 11, 10,  8,  6,  6,  5,  4,  3,  3,  3,  2,  3,  3,  4,  4,  3,  3,  2,  3,  4,  5,  6,  9, 11, 16, 19, 20,
> +              17, 15, 15, 14, 11, 11, 10,  8,  6,  5,  5,  4,  3,  3,  2,  2,  2,  3,  3,  3,  3,  3,  2,  3,  4,  5,  6,  8, 11, 16, 18, 19,
> +              16, 16, 15, 13, 11, 11, 10,  7,  6,  5,  4,  4,  3,  2,  2,  2,  2,  3,  3,  3,  3,  2,  2,  2,  3,  4,  6,  8, 11, 14, 17, 18,
> +              16, 16, 14, 13, 11, 10,  9,  7,  6,  5,  4,  2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  3,  4,  6,  8, 10, 14, 17, 18,
> +              16, 15, 14, 13, 13, 10,  9,  7,  6,  4,  4,  2,  2,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  4,  4,  6,  8, 11, 17, 18, 19,
> +              16, 15, 14, 14, 13, 12,  9,  8,  7,  5,  4,  2,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  3,  4,  5,  6,  8, 12, 17, 19, 20,
> +              17, 15, 15, 14, 13, 12,  9,  8,  7,  5,  3,  2,  1,  0,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  4,  5,  6,  8, 13, 16, 19, 21,
> +              17, 16, 15, 13, 13, 12,  9,  8,  7,  5,  3,  2,  0,  0,  0,  0,  1,  1,  1,  2,  2,  3,  3,  4,  5,  5,  7,  8, 13, 16, 19, 20,
> +              17, 16, 15, 14, 13, 12,  9,  8,  7,  5,  3,  2,  0,  0,  0,  0,  1,  1,  1,  2,  3,  3,  3,  4,  5,  6,  7,  9, 13, 17, 19, 20,
> +              18, 16, 15, 14, 13, 12,  9,  8,  7,  5,  4,  2,  1,  0,  0,  0,  0,  1,  2,  2,  3,  3,  3,  4,  5,  6,  8,  9, 13, 17, 20, 20,
> +              18, 16, 16, 15, 14, 12, 10,  9,  7,  6,  5,  3,  2,  1,  0,  0,  0,  1,  2,  3,  3,  3,  4,  5,  6,  7,  9, 10, 14, 18, 20, 20,
> +              18, 17, 16, 15, 14, 12, 10,  9,  8,  7,  6,  5,  3,  3,  1,  0,  0,  1,  2,  3,  4,  4,  5,  6,  6,  7,  9, 12, 15, 19, 20, 20,
> +              18, 18, 17, 16, 14, 13, 11, 10,  9,  8,  7,  6,  5,  5,  3,  1,  1,  1,  2,  3,  5,  5,  5,  6,  7,  9, 12, 15, 17, 19, 20, 20,
> +              18, 18, 17, 16, 15, 13, 12, 10, 10,  9,  8,  7,  6,  5,  4,  2,  1,  2,  3,  4,  5,  5,  6,  6,  8, 10, 13, 16, 18, 20, 20, 21,
> +              19, 18, 17, 16, 15, 14, 13, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  2,  3,  3,  5,  5,  6,  7, 10, 11, 14, 17, 19, 20, 21, 22,
> +              20, 19, 18, 17, 16, 15, 13, 12, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  3,  3,  5,  6,  6,  7, 10, 12, 14, 18, 20, 21, 22, 23,
> +              21, 20, 19, 18, 17, 16, 14, 13, 12, 11, 10, 10,  9,  7,  7,  5,  5,  4,  4,  5,  6,  6,  7,  8, 11, 13, 16, 19, 21, 22, 22, 22,
> +              22, 21, 20, 19, 18, 17, 16, 14, 13, 12, 12, 10,  9,  8,  7,  6,  6,  5,  5,  6,  7,  7,  8,  9, 12, 14, 18, 20, 21, 22, 22, 22,
> +              23, 22, 21, 20, 19, 17, 16, 15, 14, 14, 13, 12, 10,  9,  8,  7,  6,  5,  5,  6,  7,  8,  8, 10, 12, 15, 18, 20, 21, 22, 22, 22,
> +              24, 23, 22, 21, 20, 18, 17, 16, 15, 15, 14, 14, 13, 11,  9,  8,  6,  6,  6,  6,  7,  8,  9, 11, 14, 17, 19, 20, 21, 21, 21, 21,
> +              24, 24, 23, 21, 20, 19, 17, 16, 15, 15, 15, 14, 14, 14, 11,  9,  6,  5,  5,  6,  8,  8, 10, 12, 15, 17, 20, 20, 21, 21, 21, 21,
> +             ]
> +          g: [
> +              19, 18, 17, 15, 13, 12, 10,  9,  8,  8,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7, 12, 12,  9,  9, 11, 15, 15, 16, 19, 20,
> +              19, 18, 16, 15, 12, 12, 10, 10,  8,  7,  7,  7,  7,  6,  7,  7,  7,  7,  7,  7,  7,  7,  8,  8,  7,  7, 11, 14, 15, 16, 19, 19,
> +              18, 17, 16, 14, 12, 12, 10, 10,  8,  7,  7,  6,  6,  5,  6,  6,  7,  7,  7,  7,  7,  7,  7,  7,  6,  6, 10, 14, 15, 17, 19, 19,
> +              17, 17, 16, 14, 12, 12, 10, 10,  8,  7,  6,  6,  6,  5,  5,  4,  5,  5,  6,  6,  6,  7,  7,  5,  6,  6,  9, 13, 15, 17, 18, 20,
> +              17, 17, 15, 14, 12, 11, 10,  9,  8,  7,  6,  5,  5,  4,  4,  4,  4,  4,  5,  6,  6,  6,  5,  5,  5,  6,  8, 11, 15, 17, 18, 20,
> +              17, 17, 15, 13, 12, 11,  9,  9,  8,  7,  5,  5,  4,  4,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  5,  7, 11, 15, 17, 18, 18,
> +              17, 16, 15, 13, 12, 11,  9,  8,  8,  6,  5,  4,  4,  4,  3,  3,  4,  4,  3,  3,  3,  4,  4,  4,  4,  5,  6,  9, 14, 17, 17, 18,
> +              17, 16, 14, 13, 12, 11,  9,  8,  7,  6,  5,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  6,  8, 13, 16, 17, 17,
> +              17, 15, 14, 13, 12, 11,  9,  8,  7,  6,  5,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  5,  7, 12, 16, 17, 17,
> +              17, 15, 14, 12, 11, 10,  9,  8,  7,  6,  4,  4,  3,  3,  3,  2,  2,  3,  3,  3,  2,  2,  3,  3,  3,  4,  5,  7, 11, 15, 18, 18,
> +              16, 14, 13, 12, 11, 10,  9,  7,  7,  5,  4,  3,  3,  3,  2,  2,  2,  3,  3,  3,  2,  2,  2,  3,  3,  4,  5,  8, 11, 15, 18, 19,
> +              16, 14, 13, 12, 11, 10,  9,  7,  5,  5,  4,  3,  3,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  3,  4,  5,  8, 10, 15, 18, 19,
> +              16, 14, 14, 13, 11, 10,  9,  7,  5,  5,  4,  3,  2,  2,  2,  2,  2,  2,  3,  3,  2,  2,  2,  2,  3,  3,  5,  7, 10, 15, 17, 18,
> +              16, 15, 14, 12, 11, 10,  9,  7,  5,  5,  4,  3,  2,  2,  1,  1,  2,  2,  2,  2,  2,  2,  1,  2,  2,  3,  5,  6, 10, 14, 17, 17,
> +              15, 15, 13, 12, 11, 10,  9,  7,  5,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  1,  2,  2,  3,  5,  7, 10, 14, 17, 18,
> +              15, 14, 13, 12, 12, 10,  9,  7,  6,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  3,  4,  5,  7, 10, 17, 18, 18,
> +              15, 14, 14, 13, 12, 11,  9,  7,  6,  4,  3,  2,  1,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  7, 12, 17, 19, 19,
> +              16, 14, 14, 13, 12, 12,  9,  7,  6,  4,  3,  2,  0,  0,  0,  1,  1,  1,  2,  2,  2,  2,  2,  3,  4,  4,  5,  8, 12, 17, 19, 20,
> +              16, 15, 14, 13, 12, 12,  9,  7,  7,  4,  3,  1,  0,  0,  0,  0,  1,  1,  1,  2,  2,  2,  3,  3,  4,  4,  6,  8, 12, 17, 19, 20,
> +              17, 15, 14, 13, 12, 12,  9,  7,  7,  5,  3,  1,  0,  0,  0,  0,  1,  1,  1,  2,  2,  3,  3,  4,  4,  5,  6,  8, 12, 17, 19, 20,
> +              18, 15, 15, 14, 13, 12,  9,  8,  7,  5,  4,  2,  1,  0,  0,  0,  0,  1,  2,  2,  3,  3,  3,  4,  5,  6,  7,  9, 13, 17, 19, 20,
> +              18, 16, 15, 14, 13, 12,  9,  9,  7,  6,  5,  3,  2,  1,  0,  0,  0,  1,  2,  3,  3,  3,  4,  5,  6,  7,  9, 10, 14, 18, 20, 20,
> +              18, 16, 16, 15, 13, 12, 10,  9,  8,  7,  6,  5,  3,  3,  1,  0,  0,  1,  2,  3,  4,  4,  5,  5,  6,  7,  9, 12, 15, 19, 20, 20,
> +              18, 18, 16, 16, 14, 13, 10, 10,  9,  8,  7,  6,  5,  5,  3,  1,  1,  1,  2,  3,  5,  5,  5,  6,  6,  8, 11, 15, 17, 19, 20, 20,
> +              18, 18, 16, 16, 14, 13, 12, 10,  9,  9,  8,  7,  6,  5,  4,  3,  1,  2,  3,  5,  5,  5,  5,  6,  7, 10, 12, 15, 18, 20, 20, 20,
> +              18, 18, 17, 16, 15, 14, 12, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  2,  3,  3,  5,  5,  5,  6,  9, 11, 14, 16, 19, 20, 20, 21,
> +              19, 19, 18, 17, 16, 15, 13, 12, 11, 10, 10,  9,  8,  7,  5,  4,  4,  3,  3,  3,  5,  5,  6,  7, 10, 12, 14, 18, 20, 20, 21, 22,
> +              21, 20, 18, 18, 17, 16, 14, 12, 11, 11, 10, 10,  8,  7,  7,  5,  4,  4,  4,  5,  6,  6,  6,  7, 11, 13, 16, 19, 20, 21, 21, 22,
> +              22, 21, 20, 19, 18, 16, 15, 14, 12, 12, 12, 10,  9,  8,  7,  6,  5,  4,  5,  6,  6,  7,  7,  8, 12, 13, 17, 19, 21, 21, 21, 21,
> +              23, 22, 21, 20, 18, 17, 16, 16, 14, 14, 13, 12, 10, 10,  8,  7,  6,  5,  5,  6,  7,  7,  8,  9, 12, 15, 18, 19, 21, 21, 21, 20,
> +              23, 22, 22, 21, 20, 18, 17, 16, 15, 15, 15, 14, 13, 11,  9,  8,  6,  6,  6,  6,  7,  8,  9, 10, 13, 16, 19, 20, 20, 21, 21, 20,
> +              24, 23, 22, 21, 20, 19, 17, 17, 16, 16, 15, 15, 14, 14, 11,  9,  6,  6,  6,  6,  8,  8, 10, 12, 15, 17, 19, 20, 20, 21, 21, 20,
> +             ]
> +          b: [
> +              11,  9,  9,  7,  6,  5,  4,  4,  3,  3,  3,  3,  3,  4,  5,  5,  5,  4,  5,  4,  4,  4,  7,  7,  3,  3,  5,  8,  8,  9, 11, 11,
> +              11, 10,  8,  7,  5,  5,  5,  4,  3,  3,  3,  3,  3,  3,  4,  4,  5,  4,  5,  4,  4,  4,  4,  4,  2,  2,  5,  8,  8,  9, 11, 11,
> +              10, 10,  7,  7,  5,  5,  5,  4,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  3,  1,  1,  5,  7,  9,  9, 11, 11,
> +              10,  9,  8,  7,  6,  5,  5,  5,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  3,  2,  1,  1,  4,  7,  9, 10, 12, 13,
> +               9,  9,  8,  7,  6,  5,  5,  5,  4,  3,  3,  3,  3,  2,  2,  3,  3,  3,  3,  3,  4,  3,  2,  1,  1,  1,  4,  6,  9, 10, 12, 13,
> +               9,  9,  9,  7,  6,  6,  5,  4,  4,  3,  3,  3,  2,  2,  2,  2,  3,  3,  2,  1,  2,  2,  2,  1,  1,  1,  2,  6,  9, 10, 11, 12,
> +               8,  9,  9,  7,  7,  6,  5,  4,  4,  3,  3,  2,  2,  2,  2,  2,  3,  3,  2,  1,  1,  1,  1,  0,  0,  1,  2,  5,  9, 11, 11, 11,
> +               8,  9,  9,  7,  7,  6,  5,  4,  4,  3,  3,  2,  2,  2,  2,  2,  3,  3,  2,  1,  1,  1,  1,  0,  0,  0,  1,  3,  8, 11, 11, 11,
> +               9,  9,  8,  7,  7,  7,  6,  4,  4,  3,  3,  2,  2,  2,  2,  2,  3,  3,  2,  1,  1,  1,  1,  0,  0,  0,  1,  3,  7, 11, 11, 11,
> +               9,  9,  8,  7,  7,  7,  6,  5,  4,  3,  2,  2,  2,  2,  2,  2,  2,  3,  2,  1,  1,  0,  0,  0,  0,  0,  1,  3,  7, 10, 12, 13,
> +               9,  9,  8,  8,  7,  7,  6,  5,  4,  3,  2,  1,  2,  1,  2,  2,  2,  3,  2,  1,  0,  0,  0,  0,  0,  0,  1,  4,  7, 10, 13, 13,
> +               9,  8,  8,  8,  7,  7,  6,  5,  3,  3,  2,  1,  1,  1,  1,  1,  2,  3,  3,  2,  1,  0,  0,  0,  0,  1,  2,  4,  7, 11, 13, 13,
> +               9,  8,  8,  7,  7,  6,  6,  5,  3,  3,  2,  2,  2,  1,  1,  1,  2,  3,  3,  2,  1,  0,  0,  0,  0,  1,  2,  4,  6, 11, 13, 13,
> +               9,  8,  8,  7,  7,  6,  6,  4,  3,  3,  2,  2,  1,  1,  1,  1,  2,  3,  3,  3,  1,  1,  0,  0,  1,  1,  2,  3,  6, 10, 12, 13,
> +               9,  8,  8,  7,  7,  6,  6,  4,  3,  3,  2,  1,  1,  1,  1,  1,  1,  3,  3,  3,  1,  1,  1,  1,  1,  2,  2,  4,  6, 10, 13, 13,
> +               9,  9,  8,  8,  8,  6,  6,  4,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  3,  3,  1,  1,  1,  1,  2,  2,  3,  4,  6, 13, 14, 14,
> +               9,  9,  8,  8,  8,  8,  6,  5,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  1,  1,  2,  2,  3,  3,  5,  9, 13, 15, 15,
> +              10,  9,  9,  9, 10, 10,  6,  6,  5,  3,  2,  1,  0,  0,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  9, 13, 15, 16,
> +              10, 10,  9,  9, 10, 10,  7,  6,  5,  3,  2,  1,  0,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  9, 13, 15, 16,
> +              11, 10,  9,  9, 10, 10,  7,  6,  6,  3,  2,  1,  0,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  6,  9, 13, 15, 16,
> +              12, 10, 10, 10, 10, 10,  7,  6,  6,  4,  3,  1,  1,  1,  1,  1,  1,  2,  2,  3,  3,  3,  3,  3,  5,  5,  6,  7, 10, 14, 15, 16,
> +              12, 11, 10, 10, 10, 10,  8,  7,  6,  6,  4,  3,  2,  1,  1,  1,  1,  2,  2,  3,  4,  4,  4,  4,  5,  5,  6,  8, 11, 15, 16, 16,
> +              12, 12, 11, 11, 10, 10,  9,  8,  7,  6,  6,  4,  4,  3,  2,  2,  2,  2,  3,  4,  4,  4,  5,  5,  5,  6,  7, 10, 13, 15, 16, 15,
> +              12, 12, 12, 12, 11, 10, 10,  8,  8,  7,  7,  6,  5,  5,  3,  2,  2,  2,  3,  4,  5,  5,  5,  5,  6,  7, 10, 13, 14, 16, 16, 16,
> +              12, 12, 13, 12, 12, 11, 11,  9,  8,  8,  8,  7,  6,  6,  5,  4,  3,  3,  3,  5,  6,  6,  6,  6,  7,  9, 11, 14, 15, 17, 17, 16,
> +              13, 13, 13, 13, 12, 12, 11, 11, 10, 10,  9,  8,  7,  7,  6,  5,  5,  4,  4,  4,  5,  6,  6,  6,  9, 10, 12, 14, 16, 17, 17, 18,
> +              13, 13, 14, 13, 13, 13, 12, 12, 11, 10, 10,  9,  8,  7,  6,  6,  6,  5,  4,  4,  6,  6,  6,  7,  9, 11, 12, 16, 17, 17, 17, 18,
> +              15, 15, 15, 15, 14, 13, 13, 13, 12, 11, 11, 10,  9,  9,  8,  7,  6,  5,  5,  5,  6,  7,  7,  8, 10, 12, 14, 17, 17, 18, 17, 17,
> +              16, 16, 16, 16, 15, 14, 14, 14, 13, 13, 12, 11, 11,  9,  8,  7,  7,  6,  6,  6,  7,  7,  8,  8, 10, 12, 16, 17, 18, 18, 17, 17,
> +              18, 17, 17, 16, 16, 15, 14, 14, 14, 14, 14, 13, 11, 11,  9,  8,  7,  7,  6,  6,  7,  7,  8,  9, 10, 13, 16, 17, 17, 18, 17, 16,
> +              18, 17, 17, 17, 16, 15, 15, 15, 15, 15, 15, 14, 14, 12, 10,  9,  7,  7,  6,  6,  7,  7,  8,  9, 11, 14, 16, 16, 17, 17, 16, 15,
> +              18, 18, 17, 17, 17, 16, 15, 15, 15, 16, 15, 15, 14, 14, 12,  9,  7,  6,  6,  6,  7,  7,  9, 10, 12, 14, 15, 16, 16, 16, 15, 15,
> +             ]
> +        - ct: 5500
> +          r: [
> +              19, 18, 17, 16, 15, 13, 11, 10,  9,  9,  9,  8,  8,  8,  8,  8,  8,  9, 10, 10,  8,  8,  9,  9,  9, 11, 14, 15, 16, 16, 18, 18,
> +              18, 18, 17, 15, 14, 13, 11, 11,  9,  9,  8,  8,  7,  7,  7,  7,  7,  8,  9,  8,  8,  8,  9,  9,  8,  8, 11, 14, 16, 17, 17, 18,
> +              18, 17, 17, 15, 14, 13, 12, 11,  9,  9,  8,  7,  7,  6,  6,  6,  6,  8,  8,  8,  8,  8,  8,  8,  7,  7, 10, 13, 16, 17, 18, 18,
> +              17, 17, 16, 15, 14, 12, 11, 11,  9,  8,  7,  7,  6,  5,  5,  5,  5,  6,  8,  7,  8,  8,  8,  6,  6,  6,  9, 12, 16, 16, 18, 19,
> +              17, 17, 16, 14, 13, 12, 11, 10, 10,  8,  7,  7,  5,  5,  5,  5,  5,  5,  6,  7,  7,  7,  6,  6,  6,  6,  8, 11, 15, 16, 17, 19,
> +              18, 17, 16, 14, 13, 12, 11, 10, 10,  8,  7,  6,  5,  5,  4,  4,  5,  5,  5,  5,  5,  5,  5,  5,  5,  6,  7, 10, 14, 16, 17, 18,
> +              18, 17, 16, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  4,  4,  4,  4,  3,  4,  5,  5,  5,  5,  5,  6, 10, 13, 16, 16, 17,
> +              18, 16, 15, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  4,  4,  4,  4,  3,  3,  3,  4,  4,  4,  4,  5,  6,  8, 12, 16, 16, 16,
> +              17, 16, 15, 13, 12, 11, 10,  9,  8,  7,  5,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  4,  4,  5,  7, 11, 16, 16, 16,
> +              17, 16, 15, 12, 12, 12, 10,  8,  7,  7,  4,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  4,  5,  7, 10, 16, 16, 16,
> +              16, 16, 14, 12, 12, 11, 10,  8,  7,  6,  4,  4,  3,  3,  3,  3,  3,  4,  3,  3,  2,  2,  2,  3,  3,  4,  4,  7, 10, 14, 16, 16,
> +              16, 15, 14, 13, 12, 11, 10,  8,  7,  6,  5,  4,  3,  3,  3,  3,  3,  4,  3,  3,  3,  2,  2,  3,  3,  3,  5,  7, 10, 14, 15, 16,
> +              16, 15, 15, 13, 11, 11, 11,  9,  7,  5,  5,  4,  3,  2,  2,  2,  3,  3,  3,  3,  2,  2,  2,  2,  3,  3,  5,  6,  9, 14, 15, 16,
> +              16, 15, 15, 13, 11, 11, 11, 10,  7,  5,  4,  4,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  3,  3,  5,  6, 10, 13, 15, 17,
> +              15, 15, 14, 12, 11, 11, 11, 10,  7,  4,  4,  3,  2,  2,  2,  2,  2,  2,  3,  3,  2,  2,  2,  3,  3,  3,  5,  6,  9, 13, 16, 17,
> +              15, 15, 14, 12, 11, 11, 10,  9,  7,  4,  4,  3,  1,  1,  1,  1,  2,  2,  3,  3,  2,  2,  3,  3,  3,  3,  5,  7, 10, 15, 17, 17,
> +              15, 15, 14, 12, 11, 11, 10,  9,  7,  4,  4,  3,  1,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  3,  4,  5,  7, 11, 16, 17, 18,
> +              16, 15, 15, 12, 12, 11, 10,  9,  6,  4,  4,  3,  1,  0,  0,  1,  1,  2,  2,  2,  2,  3,  3,  3,  4,  4,  5,  7, 12, 15, 17, 18,
> +              16, 16, 15, 12, 12, 11, 10,  8,  6,  5,  4,  3,  1,  0,  0,  1,  1,  1,  2,  2,  2,  3,  3,  3,  4,  5,  6,  8, 12, 15, 17, 18,
> +              15, 15, 15, 13, 12, 12, 10,  8,  7,  5,  4,  3,  2,  0,  0,  0,  1,  1,  2,  2,  3,  3,  3,  3,  4,  5,  7,  9, 12, 16, 17, 18,
> +              15, 15, 15, 13, 13, 12, 10,  8,  7,  5,  5,  3,  2,  1,  0,  0,  1,  1,  1,  2,  3,  3,  3,  4,  5,  5,  7,  9, 13, 16, 18, 18,
> +              15, 15, 15, 14, 13, 12, 10,  8,  7,  6,  5,  5,  3,  2,  1,  0,  1,  1,  1,  2,  3,  3,  3,  5,  5,  6,  8, 10, 14, 17, 18, 19,
> +              16, 16, 16, 15, 13, 12, 10,  9,  8,  7,  6,  6,  5,  4,  2,  1,  1,  1,  1,  2,  3,  3,  5,  5,  6,  7,  9, 12, 15, 18, 18, 19,
> +              17, 16, 16, 16, 13, 12, 11, 10,  9,  8,  7,  7,  6,  5,  4,  2,  1,  1,  2,  3,  4,  4,  5,  5,  6,  8, 11, 14, 16, 18, 19, 19,
> +              18, 18, 17, 16, 14, 13, 12, 10,  9,  8,  8,  7,  7,  5,  5,  3,  2,  2,  4,  4,  5,  5,  5,  5,  7, 10, 12, 16, 17, 19, 19, 20,
> +              18, 18, 17, 16, 15, 13, 12, 10, 10,  9,  9,  9,  7,  6,  5,  4,  3,  3,  4,  4,  5,  5,  5,  6,  7, 11, 15, 17, 18, 19, 19, 20,
> +              19, 18, 18, 17, 16, 14, 13, 11, 10, 10,  9,  9,  8,  6,  5,  5,  4,  4,  4,  4,  6,  6,  6,  7,  9, 11, 15, 17, 19, 19, 20, 21,
> +              20, 19, 19, 19, 17, 16, 13, 12, 11, 11, 10,  9,  9,  7,  6,  5,  5,  4,  4,  5,  6,  7,  7,  8,  9, 12, 15, 18, 19, 19, 20, 20,
> +              21, 20, 20, 19, 19, 16, 16, 13, 12, 12, 11, 11,  9,  8,  7,  6,  6,  5,  5,  6,  7,  7,  8,  8, 10, 13, 17, 19, 19, 20, 20, 20,
> +              22, 21, 20, 20, 19, 17, 16, 14, 13, 13, 14, 12, 11,  9,  8,  7,  6,  5,  5,  6,  7,  7,  8,  9, 11, 15, 17, 19, 19, 20, 20, 20,
> +              22, 22, 21, 20, 19, 18, 16, 15, 14, 14, 15, 15, 13, 11,  9,  8,  7,  5,  5,  6,  7,  8,  9, 10, 13, 16, 18, 18, 19, 20, 19, 19,
> +              22, 22, 21, 20, 19, 19, 16, 16, 15, 15, 15, 15, 15, 13, 10,  9,  7,  5,  5,  6,  8,  8, 10, 11, 14, 16, 18, 18, 19, 19, 19, 19,
> +             ]
> +          g: [
> +              16, 16, 15, 14, 13, 11, 10,  9,  8,  7,  7,  7,  6,  6,  6,  6,  6,  7,  8,  8,  6,  6,  7,  7,  7,  9, 12, 13, 13, 14, 14, 14,
> +              16, 16, 15, 14, 13, 11, 10,  9,  8,  7,  7,  6,  6,  6,  6,  6,  6,  6,  7,  7,  6,  6,  7,  7,  6,  6, 10, 12, 13, 14, 14, 14,
> +              16, 15, 15, 13, 13, 11, 10,  9,  8,  7,  7,  6,  5,  5,  5,  5,  5,  6,  6,  6,  6,  6,  6,  6,  5,  5,  8, 12, 14, 15, 15, 16,
> +              15, 15, 14, 13, 12, 11, 10, 10,  8,  7,  6,  6,  5,  4,  4,  4,  4,  5,  6,  6,  6,  6,  6,  5,  5,  5,  7, 11, 14, 15, 15, 17,
> +              16, 15, 14, 13, 12, 11, 10, 10,  9,  7,  6,  6,  4,  4,  4,  3,  3,  4,  4,  6,  6,  5,  5,  4,  4,  5,  6, 10, 14, 14, 16, 16,
> +              16, 15, 15, 13, 12, 11, 10, 10,  9,  7,  6,  6,  4,  4,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  5,  9, 13, 14, 15, 16,
> +              16, 15, 15, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  4,  5,  8, 13, 14, 15, 15,
> +              16, 15, 14, 12, 11, 10,  9,  8,  7,  6,  6,  5,  4,  3,  3,  3,  3,  3,  2,  2,  2,  3,  3,  3,  3,  4,  5,  7, 11, 14, 15, 15,
> +              16, 15, 14, 12, 11, 10,  9,  8,  7,  6,  5,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  3,  3,  4,  6, 10, 14, 15, 14,
> +              16, 15, 14, 12, 11, 11,  9,  8,  7,  6,  4,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  4,  6, 10, 15, 15, 15,
> +              15, 15, 13, 12, 11, 11, 10,  8,  7,  5,  4,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  3,  6,  9, 13, 15, 15,
> +              15, 14, 13, 12, 11, 11, 10,  8,  7,  5,  5,  3,  2,  2,  2,  2,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  4,  6,  9, 13, 14, 15,
> +              15, 14, 14, 13, 11, 11, 10,  8,  7,  5,  5,  3,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  1,  2,  2,  2,  4,  5,  8, 13, 14, 15,
> +              15, 14, 14, 13, 11, 11, 11, 10,  7,  5,  4,  3,  2,  2,  2,  2,  2,  2,  3,  3,  2,  2,  1,  2,  2,  2,  4,  5,  8, 13, 14, 15,
> +              15, 14, 13, 12, 11, 11, 10,  9,  7,  4,  4,  3,  2,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  5,  8, 13, 15, 16,
> +              15, 15, 13, 12, 11, 11, 10,  9,  7,  4,  4,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  4,  6,  8, 15, 16, 16,
> +              15, 15, 14, 12, 11, 11, 10,  9,  7,  4,  4,  2,  1,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  3,  4,  6, 11, 15, 16, 17,
> +              15, 15, 15, 12, 12, 11, 10, 10,  7,  4,  4,  2,  1,  0,  0,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  4,  4,  6, 11, 15, 17, 17,
> +              15, 15, 15, 12, 12, 12, 10,  9,  7,  5,  4,  2,  1,  0,  0,  1,  1,  1,  2,  2,  2,  3,  3,  3,  3,  4,  5,  7, 11, 15, 17, 17,
> +              15, 15, 15, 13, 12, 12, 10,  9,  7,  5,  4,  3,  2,  0,  0,  0,  1,  1,  1,  2,  3,  3,  3,  3,  4,  4,  6,  8, 12, 15, 17, 17,
> +              15, 15, 15, 13, 13, 12, 10,  9,  7,  6,  5,  3,  2,  1,  0,  0,  1,  1,  1,  2,  3,  3,  3,  3,  4,  5,  6,  9, 13, 16, 17, 18,
> +              15, 15, 15, 14, 13, 13, 10,  9,  8,  6,  6,  5,  3,  2,  1,  1,  1,  1,  2,  2,  3,  3,  4,  4,  5,  6,  7, 10, 14, 17, 18, 18,
> +              15, 16, 16, 15, 13, 13, 11,  9,  8,  7,  6,  6,  5,  4,  2,  1,  1,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8, 12, 15, 17, 18, 18,
> +              16, 16, 16, 16, 13, 13, 11, 10,  9,  8,  7,  7,  6,  6,  4,  2,  2,  2,  2,  3,  5,  5,  5,  5,  6,  8, 11, 14, 16, 18, 18, 18,
> +              17, 17, 17, 16, 14, 13, 13, 11, 10,  9,  8,  8,  7,  6,  5,  4,  2,  2,  4,  5,  5,  5,  5,  5,  7,  9, 12, 15, 17, 18, 18, 18,
> +              18, 18, 17, 16, 15, 14, 13, 11, 10, 10,  9,  9,  7,  6,  5,  5,  4,  3,  4,  4,  5,  5,  5,  6,  7, 10, 15, 16, 18, 18, 18, 19,
> +              19, 18, 18, 17, 16, 14, 13, 12, 11, 10, 10,  9,  9,  7,  6,  5,  5,  4,  4,  4,  6,  6,  6,  6,  8, 10, 15, 16, 18, 18, 18, 19,
> +              20, 19, 19, 19, 17, 16, 14, 13, 12, 11, 11, 10,  9,  7,  7,  6,  5,  4,  4,  5,  6,  6,  6,  7,  9, 11, 15, 17, 18, 18, 18, 18,
> +              22, 20, 20, 20, 19, 17, 16, 14, 13, 13, 12, 11, 10,  9,  7,  6,  6,  5,  5,  6,  7,  7,  7,  8,  9, 12, 16, 18, 18, 19, 18, 18,
> +              22, 22, 21, 20, 19, 18, 17, 16, 14, 14, 15, 13, 11, 10,  9,  8,  7,  6,  5,  6,  7,  8,  8,  9, 10, 14, 17, 18, 18, 19, 18, 17,
> +              22, 22, 22, 21, 20, 19, 17, 17, 16, 16, 16, 16, 14, 12, 10,  8,  7,  6,  6,  7,  8,  8,  8, 10, 13, 16, 18, 18, 18, 18, 18, 17,
> +              22, 22, 22, 21, 20, 20, 18, 17, 16, 16, 17, 17, 16, 14, 11, 10,  8,  6,  6,  7,  8,  8, 10, 11, 14, 17, 18, 18, 18, 18, 18, 17,
> +             ]
> +          b: [
> +              13, 12, 12, 12, 11,  9,  8,  7,  7,  7,  7,  6,  6,  6,  6,  5,  5,  6,  7,  7,  6,  6,  5,  5,  5,  6,  9,  9,  9, 10,  9,  8,
> +              13, 13, 12, 11, 11,  9,  9,  8,  7,  7,  7,  6,  5,  5,  5,  5,  5,  6,  6,  6,  6,  6,  5,  5,  4,  4,  7,  9,  9, 10, 10,  9,
> +              13, 13, 12, 11, 11,  9,  9,  8,  7,  7,  6,  6,  5,  4,  4,  4,  4,  5,  6,  6,  6,  5,  5,  5,  3,  3,  6,  9, 10, 11, 10, 11,
> +              13, 13, 12, 11, 11, 10,  9,  9,  7,  7,  6,  5,  4,  4,  4,  4,  4,  4,  5,  5,  5,  5,  5,  4,  3,  3,  5,  8, 10, 11, 11, 12,
> +              13, 13, 12, 11, 11, 10,  9,  9,  8,  7,  6,  6,  4,  4,  3,  3,  3,  4,  4,  5,  5,  5,  4,  3,  2,  3,  4,  8, 11, 11, 11, 12,
> +              13, 13, 13, 11, 11, 10,  9,  9,  8,  7,  6,  6,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  3,  7, 11, 11, 11, 12,
> +              14, 14, 13, 11, 11, 10,  9,  8,  8,  7,  6,  6,  4,  3,  3,  3,  3,  3,  2,  2,  2,  3,  2,  2,  2,  2,  3,  6, 11, 11, 11, 11,
> +              14, 14, 13, 11, 11, 10,  9,  8,  7,  7,  6,  5,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  9, 11, 11, 11,
> +              14, 14, 13, 12, 11, 11,  9,  8,  7,  6,  5,  4,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  8, 12, 12, 11,
> +              14, 13, 13, 12, 12, 11, 10,  8,  7,  6,  4,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  8, 12, 12, 13,
> +              13, 13, 13, 12, 12, 12, 11,  9,  7,  6,  4,  3,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  4,  8, 12, 12, 13,
> +              14, 13, 13, 12, 12, 11, 11,  9,  7,  6,  5,  3,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  4,  8, 12, 13, 13,
> +              14, 13, 13, 13, 12, 11, 11,  9,  7,  6,  5,  4,  2,  1,  1,  1,  2,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  4,  7, 12, 13, 13,
> +              14, 13, 13, 13, 12, 12, 12, 11,  7,  5,  5,  4,  2,  1,  1,  1,  1,  3,  3,  3,  2,  2,  2,  2,  2,  3,  3,  4,  7, 12, 13, 13,
> +              14, 14, 13, 13, 12, 12, 11, 11,  7,  5,  4,  3,  1,  1,  1,  1,  1,  2,  3,  3,  2,  2,  2,  3,  3,  3,  4,  4,  7, 12, 13, 14,
> +              14, 14, 13, 13, 12, 12, 11, 11,  8,  5,  4,  3,  1,  1,  0,  0,  1,  1,  3,  3,  3,  3,  3,  3,  3,  4,  4,  5,  8, 13, 15, 15,
> +              14, 15, 14, 13, 13, 12, 11, 11,  8,  5,  4,  3,  1,  0,  0,  0,  0,  1,  2,  2,  3,  3,  3,  4,  4,  4,  5,  6, 10, 15, 15, 16,
> +              15, 15, 15, 14, 13, 13, 12, 11,  8,  5,  4,  3,  1,  0,  0,  0,  1,  1,  2,  2,  3,  3,  4,  4,  4,  4,  5,  6, 11, 15, 16, 16,
> +              15, 15, 15, 14, 14, 14, 12, 11,  8,  6,  5,  3,  1,  0,  0,  0,  1,  1,  2,  2,  3,  3,  4,  4,  4,  5,  6,  7, 11, 15, 16, 16,
> +              15, 15, 15, 15, 14, 14, 12, 11,  9,  7,  5,  3,  2,  1,  0,  1,  1,  1,  2,  3,  3,  4,  4,  4,  4,  5,  6,  8, 12, 15, 16, 16,
> +              15, 16, 15, 15, 15, 14, 13, 11,  9,  7,  6,  5,  3,  2,  1,  1,  1,  1,  2,  3,  3,  4,  4,  4,  5,  6,  7,  9, 12, 16, 16, 16,
> +              15, 16, 16, 15, 15, 15, 13, 11, 10,  8,  7,  6,  4,  3,  2,  1,  1,  2,  2,  3,  4,  4,  5,  5,  6,  7,  8, 10, 14, 16, 16, 16,
> +              16, 16, 17, 16, 15, 15, 14, 12, 11,  9,  8,  8,  6,  5,  3,  2,  2,  2,  3,  3,  5,  5,  6,  6,  7,  8,  9, 12, 15, 16, 16, 16,
> +              16, 17, 18, 17, 16, 15, 14, 13, 11, 10,  9,  9,  8,  6,  5,  3,  3,  3,  3,  4,  6,  6,  6,  6,  7,  8, 11, 14, 16, 16, 16, 16,
> +              17, 18, 18, 18, 17, 16, 16, 14, 12, 11, 10,  9,  8,  7,  6,  5,  3,  3,  5,  6,  6,  6,  6,  6,  8, 10, 12, 16, 17, 17, 17, 16,
> +              18, 18, 18, 18, 18, 17, 16, 14, 13, 12, 11, 11,  8,  8,  6,  6,  5,  4,  5,  5,  6,  6,  6,  7,  8, 11, 15, 16, 17, 17, 16, 16,
> +              18, 19, 19, 19, 19, 17, 17, 15, 14, 13, 12, 11, 11,  8,  7,  6,  6,  5,  5,  5,  7,  7,  7,  8,  9, 11, 15, 17, 17, 17, 16, 16,
> +              20, 20, 20, 20, 19, 19, 17, 17, 15, 14, 14, 12, 11,  9,  8,  7,  7,  6,  6,  6,  8,  8,  8,  8,  9, 12, 15, 18, 18, 16, 16, 16,
> +              22, 22, 22, 22, 21, 20, 19, 18, 17, 16, 15, 14, 12, 11, 10,  8,  8,  7,  7,  7,  8,  8,  8,  9, 10, 13, 17, 18, 18, 16, 16, 15,
> +              23, 22, 22, 22, 22, 21, 20, 20, 18, 18, 19, 16, 14, 13, 11, 10,  9,  8,  7,  7,  8,  9,  9, 10, 11, 15, 17, 18, 17, 17, 16, 14,
> +              23, 23, 23, 23, 23, 22, 21, 21, 20, 20, 20, 19, 18, 15, 12, 11, 10,  8,  8,  8,  9,  9, 10, 11, 13, 17, 17, 17, 17, 16, 15, 13,
> +              23, 23, 24, 24, 23, 23, 22, 21, 21, 21, 20, 20, 19, 17, 14, 12, 11,  9,  8,  9,  9, 10, 10, 12, 15, 17, 17, 17, 16, 16, 15, 13,
> +             ]
> +        - ct: 8500
> +          r: [
> +              18, 17, 16, 15, 13, 12, 10,  9,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8, 12, 12,  8,  8, 10, 13, 14, 15, 17, 18,
> +              17, 17, 16, 14, 12, 11, 10, 10,  8,  8,  8,  7,  7,  7,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  7,  7, 10, 13, 14, 15, 17, 17,
> +              17, 16, 15, 13, 12, 11, 10, 10,  8,  8,  7,  7,  7,  6,  7,  7,  8,  8,  8,  7,  7,  7,  7,  7,  6,  6,  9, 12, 14, 15, 17, 17,
> +              16, 16, 15, 13, 12, 11, 10, 10,  9,  7,  7,  7,  6,  6,  5,  5,  6,  6,  7,  7,  7,  7,  7,  5,  5,  5,  8, 11, 14, 15, 17, 19,
> +              16, 15, 14, 13, 12, 11, 10,  9,  8,  7,  7,  6,  6,  5,  5,  5,  5,  5,  5,  6,  6,  6,  5,  5,  5,  5,  7, 10, 13, 15, 17, 19,
> +              15, 15, 14, 13, 12, 11,  9,  9,  8,  7,  6,  5,  5,  5,  4,  4,  5,  5,  5,  4,  4,  4,  4,  4,  4,  5,  6,  9, 13, 15, 16, 17,
> +              15, 15, 13, 12, 11, 11,  9,  8,  8,  6,  5,  5,  4,  4,  4,  4,  4,  4,  4,  3,  3,  4,  4,  4,  4,  4,  5,  8, 13, 15, 15, 16,
> +              15, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  4,  5,  7, 11, 14, 15, 15,
> +              15, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  4,  4,  3,  3,  4,  3,  3,  3,  2,  3,  3,  3,  3,  4,  6, 10, 14, 15, 15,
> +              15, 13, 13, 11, 11, 10,  9,  8,  7,  6,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  3,  4,  6, 10, 13, 16, 16,
> +              14, 13, 12, 11, 10, 10,  9,  7,  7,  5,  4,  3,  3,  3,  3,  2,  2,  3,  3,  3,  2,  2,  2,  2,  2,  3,  4,  6,  9, 13, 16, 17,
> +              14, 13, 12, 11, 10, 10,  9,  7,  6,  5,  4,  3,  3,  3,  2,  2,  2,  3,  3,  3,  2,  2,  1,  2,  2,  3,  4,  6,  9, 13, 16, 17,
> +              14, 13, 12, 12, 10, 10,  9,  7,  5,  5,  4,  3,  3,  2,  2,  2,  2,  3,  3,  3,  2,  2,  1,  1,  2,  3,  4,  6,  9, 13, 15, 17,
> +              14, 13, 12, 11, 10,  9,  9,  7,  5,  5,  4,  3,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  1,  1,  2,  3,  4,  6,  9, 12, 15, 16,
> +              13, 13, 12, 11, 10,  9,  8,  7,  5,  4,  4,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  2,  2,  3,  4,  6,  8, 12, 15, 16,
> +              13, 13, 12, 11, 11,  9,  8,  7,  6,  4,  3,  2,  1,  1,  1,  1,  2,  2,  2,  2,  2,  1,  1,  2,  3,  3,  4,  6,  9, 15, 16, 16,
> +              13, 13, 12, 12, 11, 10,  9,  7,  6,  4,  3,  2,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  4,  4,  6, 10, 15, 17, 18,
> +              14, 13, 13, 12, 12, 11,  9,  7,  6,  4,  3,  2,  1,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  3,  4,  5,  7, 11, 15, 17, 18,
> +              14, 13, 13, 12, 12, 11,  9,  7,  7,  4,  3,  1,  0,  0,  0,  1,  1,  1,  1,  2,  2,  2,  2,  3,  4,  4,  5,  7, 11, 15, 17, 18,
> +              15, 13, 13, 12, 12, 11,  8,  7,  6,  4,  3,  1,  0,  0,  0,  0,  1,  1,  1,  2,  2,  2,  2,  3,  4,  5,  6,  7, 11, 15, 17, 18,
> +              15, 14, 13, 13, 12, 11,  8,  8,  7,  5,  4,  2,  1,  0,  0,  0,  0,  1,  2,  2,  2,  2,  3,  3,  5,  5,  7,  8, 11, 15, 17, 18,
> +              15, 14, 14, 13, 12, 11,  9,  8,  7,  6,  5,  3,  2,  1,  0,  0,  0,  1,  2,  2,  3,  3,  3,  5,  5,  6,  8,  9, 13, 16, 18, 18,
> +              15, 14, 14, 13, 12, 11,  9,  9,  8,  7,  6,  5,  3,  3,  1,  0,  0,  1,  2,  2,  3,  4,  4,  5,  5,  6,  8, 11, 14, 17, 18, 18,
> +              16, 16, 15, 14, 13, 12, 10,  9,  8,  8,  7,  6,  5,  5,  3,  1,  1,  1,  2,  3,  4,  4,  5,  5,  6,  8, 10, 13, 15, 17, 18, 18,
> +              16, 16, 15, 14, 14, 12, 11, 10,  9,  9,  8,  7,  6,  5,  4,  3,  1,  1,  2,  4,  4,  5,  5,  5,  7,  9, 11, 14, 16, 18, 18, 19,
> +              16, 16, 15, 15, 14, 13, 12, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  2,  3,  3,  4,  5,  5,  6,  9, 10, 13, 15, 18, 18, 19, 19,
> +              17, 17, 16, 15, 15, 14, 12, 11, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  3,  3,  5,  5,  6,  6,  9, 11, 13, 17, 18, 19, 19, 20,
> +              19, 18, 17, 17, 15, 15, 13, 12, 11, 11, 10, 10,  9,  8,  7,  5,  5,  4,  4,  5,  6,  6,  6,  7, 10, 12, 15, 18, 19, 19, 19, 20,
> +              19, 19, 18, 17, 17, 16, 14, 13, 12, 12, 11, 10,  9,  8,  7,  6,  6,  5,  5,  6,  6,  6,  7,  8, 11, 12, 16, 18, 19, 19, 19, 19,
> +              20, 19, 19, 18, 17, 16, 15, 14, 13, 13, 12, 12, 10,  9,  8,  7,  6,  5,  5,  6,  6,  7,  8,  9, 11, 14, 17, 18, 19, 19, 19, 19,
> +              20, 20, 19, 18, 18, 17, 15, 15, 14, 14, 14, 13, 12, 11,  9,  7,  6,  5,  5,  6,  7,  7,  8,  9, 12, 15, 17, 18, 18, 19, 18, 18,
> +              21, 20, 20, 19, 18, 18, 15, 15, 14, 14, 14, 14, 13, 13, 11,  9,  6,  5,  5,  6,  7,  7,  9, 10, 13, 15, 18, 18, 18, 18, 18, 18,
> +             ]
> +          g: [
> +              16, 16, 15, 13, 12, 10,  9,  8,  7,  7,  7,  6,  6,  6,  7,  7,  7,  6,  6,  6,  6,  6, 11, 11,  6,  6,  9, 12, 12, 13, 15, 15,
> +              16, 15, 14, 13, 11, 10,  9,  9,  8,  7,  7,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  5,  5,  9, 12, 12, 13, 15, 15,
> +              15, 15, 14, 12, 11, 11,  9,  9,  8,  7,  6,  6,  6,  5,  5,  5,  6,  6,  6,  6,  6,  6,  6,  5,  4,  5,  8, 11, 13, 14, 15, 15,
> +              15, 15, 14, 12, 11, 10,  9,  9,  8,  6,  6,  6,  5,  5,  4,  4,  4,  4,  6,  6,  6,  6,  6,  4,  4,  4,  7, 11, 13, 14, 15, 17,
> +              15, 15, 13, 12, 11, 10,  9,  9,  8,  6,  6,  5,  5,  4,  4,  3,  3,  4,  4,  5,  5,  5,  4,  4,  3,  4,  6,  9, 13, 14, 15, 17,
> +              15, 14, 13, 12, 11, 10,  9,  8,  8,  6,  5,  5,  4,  4,  3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  4,  5,  8, 13, 14, 14, 15,
> +              14, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  3,  3,  3,  3,  3,  3,  3,  2,  3,  3,  3,  3,  3,  4,  7, 12, 14, 14, 14,
> +              14, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  3,  3,  4,  6, 11, 14, 14, 14,
> +              14, 13, 12, 11, 11, 10,  9,  8,  7,  6,  4,  4,  3,  3,  3,  2,  3,  3,  3,  3,  2,  2,  2,  2,  2,  3,  3,  5, 10, 14, 14, 14,
> +              15, 13, 12, 11, 11, 10,  9,  8,  7,  6,  4,  4,  3,  3,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  5, 10, 13, 15, 16,
> +              14, 13, 12, 11, 11, 10,  9,  7,  7,  5,  4,  3,  2,  2,  2,  2,  2,  2,  3,  2,  2,  1,  2,  2,  2,  2,  3,  6,  9, 13, 16, 16,
> +              14, 13, 12, 11, 10, 10,  9,  7,  5,  5,  4,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  2,  2,  2,  4,  6,  8, 13, 16, 16,
> +              14, 13, 13, 12, 10, 10,  9,  7,  5,  5,  4,  3,  2,  2,  1,  1,  1,  2,  2,  2,  2,  1,  1,  1,  2,  2,  4,  5,  8, 13, 15, 16,
> +              14, 13, 13, 12, 10, 10,  9,  7,  5,  5,  4,  3,  2,  1,  1,  1,  1,  2,  2,  2,  2,  1,  1,  1,  1,  2,  3,  5,  8, 12, 14, 15,
> +              14, 13, 12, 11, 10, 10,  9,  7,  6,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  1,  1,  1,  2,  3,  3,  5,  8, 12, 15, 15,
> +              14, 13, 12, 11, 11, 10,  9,  7,  6,  4,  3,  2,  1,  1,  1,  1,  1,  1,  2,  2,  1,  1,  1,  2,  2,  3,  4,  5,  8, 14, 16, 16,
> +              14, 13, 13, 12, 12, 10,  9,  7,  6,  4,  3,  2,  1,  0,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5, 10, 15, 16, 17,
> +              14, 13, 13, 13, 12, 12,  9,  7,  7,  4,  3,  2,  0,  0,  0,  1,  1,  1,  1,  2,  2,  2,  2,  2,  3,  3,  4,  6, 11, 15, 17, 17,
> +              14, 14, 13, 12, 12, 12,  9,  8,  7,  5,  3,  2,  0,  0,  0,  0,  1,  1,  1,  2,  2,  2,  2,  3,  3,  4,  5,  7, 11, 15, 17, 17,
> +              15, 14, 13, 13, 12, 12,  9,  8,  7,  5,  3,  2,  0,  0,  0,  0,  1,  1,  1,  2,  2,  2,  3,  3,  4,  5,  5,  7, 11, 15, 17, 17,
> +              16, 14, 14, 13, 13, 12,  9,  8,  7,  5,  4,  2,  1,  0,  0,  0,  0,  1,  2,  2,  3,  3,  3,  3,  5,  5,  6,  8, 12, 16, 17, 17,
> +              16, 15, 14, 14, 13, 12, 10,  9,  7,  6,  5,  4,  2,  1,  0,  0,  0,  1,  2,  3,  3,  3,  3,  5,  5,  6,  8,  9, 13, 17, 17, 17,
> +              16, 15, 15, 14, 13, 12, 10, 10,  8,  7,  6,  5,  4,  3,  2,  0,  1,  1,  2,  3,  3,  4,  5,  5,  5,  6,  8, 11, 14, 17, 17, 17,
> +              16, 16, 15, 15, 14, 13, 11, 10,  9,  8,  7,  6,  5,  5,  3,  2,  1,  1,  2,  3,  5,  5,  5,  5,  6,  7, 10, 13, 16, 17, 17, 17,
> +              17, 17, 15, 15, 14, 13, 12, 11, 10,  9,  9,  7,  6,  6,  5,  3,  2,  2,  3,  4,  5,  5,  5,  6,  6,  9, 11, 14, 16, 18, 18, 18,
> +              17, 17, 16, 15, 15, 14, 13, 12, 11, 10, 10,  9,  7,  7,  5,  4,  3,  2,  3,  4,  5,  5,  5,  6,  9, 10, 13, 15, 18, 18, 18, 18,
> +              18, 17, 17, 16, 15, 15, 14, 12, 11, 11, 11,  9,  8,  7,  6,  5,  4,  3,  3,  4,  5,  5,  6,  6,  9, 11, 13, 17, 18, 18, 18, 18,
> +              20, 19, 18, 18, 16, 16, 14, 13, 12, 11, 11, 10,  9,  8,  7,  5,  5,  4,  4,  5,  6,  6,  6,  7, 10, 11, 15, 18, 18, 18, 18, 18,
> +              20, 20, 19, 18, 18, 17, 15, 14, 13, 13, 12, 11, 10,  9,  8,  6,  6,  5,  5,  6,  6,  7,  7,  8, 11, 12, 16, 18, 18, 18, 18, 18,
> +              22, 21, 20, 19, 18, 17, 17, 17, 15, 15, 14, 13, 11, 10,  8,  7,  6,  6,  6,  6,  7,  7,  8,  8, 11, 14, 17, 18, 18, 18, 18, 17,
> +              22, 22, 21, 20, 19, 18, 17, 17, 17, 16, 16, 15, 14, 12, 10,  8,  7,  6,  6,  7,  7,  8,  8, 10, 13, 16, 18, 18, 18, 18, 18, 16,
> +              22, 22, 22, 21, 20, 19, 18, 17, 17, 17, 16, 16, 15, 15, 12, 10,  7,  6,  6,  7,  8,  8,  9, 11, 14, 16, 18, 18, 18, 18, 17, 16,
> +             ]
> +          b: [
> +              13, 13, 13, 11, 10,  9,  9,  8,  7,  7,  7,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  9,  9,  4,  4,  7,  9,  9,  9, 10, 10,
> +              13, 13, 12, 11, 10,  9,  9,  8,  7,  7,  7,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  3,  3,  7,  9,  9, 10, 10, 10,
> +              13, 13, 12, 11, 10, 10,  9,  9,  7,  7,  6,  6,  6,  5,  5,  5,  5,  6,  6,  6,  5,  5,  5,  4,  3,  3,  6,  9, 10, 11, 11, 11,
> +              13, 13, 12, 11, 10, 10,  9,  9,  8,  7,  6,  6,  5,  5,  4,  4,  4,  4,  5,  5,  5,  5,  5,  3,  2,  3,  5,  9, 10, 11, 11, 13,
> +              13, 13, 12, 11, 11, 10,  9,  9,  8,  7,  6,  5,  5,  4,  4,  3,  3,  4,  4,  5,  5,  5,  3,  2,  2,  3,  5,  8, 11, 11, 12, 13,
> +              13, 12, 12, 11, 11, 10,  9,  8,  8,  7,  5,  5,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  3,  7, 11, 11, 11, 11,
> +              13, 13, 12, 11, 11, 10,  9,  8,  8,  7,  5,  4,  4,  3,  3,  3,  3,  3,  3,  2,  2,  3,  2,  2,  2,  2,  3,  6, 11, 11, 11, 11,
> +              13, 13, 12, 11, 11, 11,  9,  8,  7,  6,  5,  4,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  5, 10, 12, 12, 11,
> +              13, 13, 13, 11, 11, 11, 10,  8,  7,  6,  5,  4,  3,  3,  3,  2,  2,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  4,  9, 12, 12, 12,
> +              14, 13, 13, 12, 11, 11, 10,  8,  7,  6,  4,  4,  3,  2,  2,  2,  2,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  4,  9, 12, 13, 14,
> +              13, 13, 12, 12, 11, 11, 10,  8,  7,  6,  4,  3,  2,  2,  2,  1,  2,  3,  3,  2,  2,  1,  2,  2,  2,  2,  2,  4,  8, 12, 14, 14,
> +              13, 13, 12, 12, 11, 11, 11,  8,  7,  6,  5,  3,  2,  2,  1,  1,  2,  3,  3,  2,  2,  2,  2,  2,  2,  2,  3,  4,  8, 12, 14, 14,
> +              13, 13, 12, 12, 12, 11, 11,  8,  7,  6,  5,  3,  2,  1,  1,  1,  1,  2,  3,  3,  2,  2,  2,  2,  2,  3,  3,  4,  8, 12, 14, 14,
> +              13, 13, 13, 12, 12, 11, 11,  8,  6,  6,  5,  3,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  3,  4,  7, 12, 13, 14,
> +              13, 13, 13, 12, 12, 11, 10,  8,  6,  5,  4,  2,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  7, 12, 14, 14,
> +              14, 14, 13, 13, 13, 11, 10,  8,  7,  5,  4,  2,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  3,  3,  4,  4,  5,  8, 14, 16, 16,
> +              14, 14, 13, 13, 13, 12, 11,  9,  7,  5,  4,  2,  1,  0,  0,  0,  1,  1,  2,  2,  2,  2,  3,  3,  4,  4,  4,  6, 10, 15, 16, 16,
> +              15, 14, 14, 14, 15, 15, 11,  9,  8,  5,  4,  2,  1,  0,  0,  0,  1,  1,  1,  2,  2,  3,  3,  4,  4,  5,  5,  7, 11, 15, 16, 17,
> +              15, 15, 14, 14, 15, 15, 12, 10,  9,  6,  4,  2,  1,  0,  0,  0,  1,  1,  1,  2,  3,  3,  3,  4,  5,  5,  6,  7, 11, 15, 16, 16,
> +              15, 15, 15, 15, 15, 15, 12, 10,  9,  6,  5,  2,  1,  0,  0,  0,  1,  1,  1,  3,  3,  3,  4,  4,  5,  6,  6,  7, 11, 15, 16, 17,
> +              16, 16, 15, 16, 15, 15, 12, 11, 10,  7,  5,  3,  2,  1,  0,  0,  1,  1,  2,  3,  4,  4,  4,  5,  6,  6,  7,  9, 12, 16, 16, 16,
> +              16, 16, 16, 16, 16, 15, 13, 12, 10,  9,  6,  5,  3,  2,  1,  1,  1,  2,  3,  4,  4,  4,  5,  6,  6,  7,  8,  9, 14, 16, 17, 16,
> +              16, 16, 16, 16, 16, 15, 14, 12, 11, 10,  8,  6,  5,  4,  2,  1,  1,  2,  3,  4,  5,  5,  6,  6,  6,  7,  9, 12, 15, 16, 16, 16,
> +              17, 17, 18, 17, 16, 16, 14, 13, 12, 11,  9,  8,  6,  5,  4,  2,  2,  2,  3,  4,  6,  6,  6,  6,  7,  8, 11, 14, 16, 17, 16, 16,
> +              17, 17, 18, 18, 17, 16, 16, 14, 13, 12, 11,  9,  8,  7,  5,  4,  2,  3,  4,  6,  6,  6,  6,  7,  8, 10, 12, 15, 17, 17, 17, 16,
> +              18, 18, 18, 18, 18, 17, 16, 15, 14, 13, 12, 11,  9,  8,  6,  5,  4,  4,  4,  5,  6,  6,  7,  7, 10, 11, 14, 16, 17, 17, 17, 17,
> +              18, 18, 19, 19, 19, 18, 17, 16, 15, 14, 14, 11, 10,  9,  7,  6,  6,  5,  5,  5,  6,  7,  7,  7, 10, 12, 14, 17, 17, 17, 17, 17,
> +              20, 20, 20, 20, 20, 19, 18, 17, 16, 15, 14, 13, 11, 10,  9,  7,  6,  6,  6,  6,  7,  7,  7,  8, 11, 12, 15, 18, 18, 17, 17, 16,
> +              22, 21, 21, 21, 21, 21, 20, 19, 17, 16, 16, 14, 13, 11, 10,  8,  7,  7,  7,  7,  8,  8,  8,  9, 11, 13, 17, 18, 18, 17, 16, 15,
> +              23, 22, 22, 22, 22, 21, 21, 20, 19, 19, 18, 16, 14, 13, 11,  9,  8,  8,  8,  8,  8,  8,  9, 10, 12, 15, 18, 18, 18, 17, 16, 14,
> +              23, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 18, 15, 13, 11,  9,  8,  8,  8,  9,  9, 10, 11, 13, 16, 18, 18, 17, 17, 15, 14,
> +              24, 24, 24, 24, 24, 23, 22, 22, 22, 22, 20, 20, 19, 18, 15, 13, 10,  9,  9,  9,  9, 10, 11, 12, 15, 17, 18, 18, 17, 16, 15, 13,
> +             ]
> +...
> diff --git a/src/ipa/mali-c55/data/meson.build b/src/ipa/mali-c55/data/meson.build
> index 88109d17..8a5fdd36 100644
> --- a/src/ipa/mali-c55/data/meson.build
> +++ b/src/ipa/mali-c55/data/meson.build
> @@ -1,6 +1,7 @@
>  # SPDX-License-Identifier: CC0-1.0
>  
>  conf_files = files([
> +    'imx415.yaml',
>      'uncalibrated.yaml'
>  ])
>  
> -- 
> 2.34.1
>

Patch
diff mbox series

diff --git a/src/ipa/mali-c55/data/imx415.yaml b/src/ipa/mali-c55/data/imx415.yaml
new file mode 100644
index 00000000..126b427a
--- /dev/null
+++ b/src/ipa/mali-c55/data/imx415.yaml
@@ -0,0 +1,325 @@ 
+# SPDX-License-Identifier: CC0-1.0
+%YAML 1.1
+---
+version: 1
+algorithms:
+  - Agc:
+  - Awb:
+  - BlackLevelCorrection:
+      offset00: 51200
+      offset01: 51200
+      offset10: 51200
+      offset11: 51200
+  - Lsc:
+      meshScale: 4 # 1.0 - 2.0 Gain
+      sets:
+        - ct: 2500
+          r: [
+              21, 20, 19, 17, 15, 14, 12, 11,  9,  9,  9,  9,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9, 13, 13, 10, 10, 13, 16, 17, 18, 21, 22,
+              21, 20, 18, 16, 14, 13, 12, 11, 10,  9,  9,  8,  8,  8,  8,  8,  9,  9,  9,  9,  9,  9,  9,  9,  9,  9, 12, 15, 17, 18, 21, 21,
+              20, 19, 17, 16, 14, 13, 12, 11, 10,  9,  8,  8,  8,  7,  7,  7,  8,  8,  8,  8,  8,  9,  9,  8,  8,  8, 11, 15, 17, 18, 21, 21,
+              19, 19, 17, 15, 14, 13, 12, 11, 10,  8,  8,  7,  7,  7,  6,  6,  7,  7,  8,  8,  8,  8,  8,  7,  7,  8, 10, 14, 17, 18, 20, 22,
+              19, 18, 17, 15, 14, 13, 11, 11,  9,  8,  8,  7,  7,  6,  5,  5,  5,  5,  6,  7,  8,  7,  7,  6,  7,  7, 10, 12, 16, 18, 20, 22,
+              18, 18, 16, 15, 14, 12, 11, 10,  9,  8,  6,  6,  5,  5,  4,  4,  5,  5,  5,  5,  6,  6,  6,  6,  6,  7,  8, 12, 16, 18, 19, 20,
+              18, 18, 16, 14, 13, 12, 11,  9,  9,  7,  6,  5,  5,  5,  4,  4,  4,  5,  5,  4,  4,  5,  5,  5,  5,  6,  8, 11, 15, 18, 18, 19,
+              18, 17, 15, 14, 13, 12, 11,  9,  8,  7,  6,  5,  5,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  5,  5,  6,  7,  9, 14, 17, 18, 18,
+              18, 17, 15, 14, 13, 12, 11,  9,  8,  7,  5,  5,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  5,  5,  6,  8, 12, 17, 18, 18,
+              18, 16, 15, 13, 12, 11, 10,  9,  8,  7,  5,  4,  4,  4,  4,  3,  3,  4,  4,  4,  3,  3,  4,  4,  4,  5,  6,  8, 12, 16, 19, 19,
+              17, 16, 15, 13, 12, 11, 10,  8,  7,  6,  4,  4,  3,  3,  3,  3,  3,  3,  4,  4,  3,  3,  3,  4,  4,  5,  6,  9, 12, 16, 19, 20,
+              17, 15, 15, 13, 12, 11, 10,  8,  6,  6,  5,  4,  3,  3,  3,  2,  3,  3,  4,  4,  3,  3,  2,  3,  4,  5,  6,  9, 11, 16, 19, 20,
+              17, 15, 15, 14, 11, 11, 10,  8,  6,  5,  5,  4,  3,  3,  2,  2,  2,  3,  3,  3,  3,  3,  2,  3,  4,  5,  6,  8, 11, 16, 18, 19,
+              16, 16, 15, 13, 11, 11, 10,  7,  6,  5,  4,  4,  3,  2,  2,  2,  2,  3,  3,  3,  3,  2,  2,  2,  3,  4,  6,  8, 11, 14, 17, 18,
+              16, 16, 14, 13, 11, 10,  9,  7,  6,  5,  4,  2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  3,  4,  6,  8, 10, 14, 17, 18,
+              16, 15, 14, 13, 13, 10,  9,  7,  6,  4,  4,  2,  2,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  4,  4,  6,  8, 11, 17, 18, 19,
+              16, 15, 14, 14, 13, 12,  9,  8,  7,  5,  4,  2,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  3,  4,  5,  6,  8, 12, 17, 19, 20,
+              17, 15, 15, 14, 13, 12,  9,  8,  7,  5,  3,  2,  1,  0,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  4,  5,  6,  8, 13, 16, 19, 21,
+              17, 16, 15, 13, 13, 12,  9,  8,  7,  5,  3,  2,  0,  0,  0,  0,  1,  1,  1,  2,  2,  3,  3,  4,  5,  5,  7,  8, 13, 16, 19, 20,
+              17, 16, 15, 14, 13, 12,  9,  8,  7,  5,  3,  2,  0,  0,  0,  0,  1,  1,  1,  2,  3,  3,  3,  4,  5,  6,  7,  9, 13, 17, 19, 20,
+              18, 16, 15, 14, 13, 12,  9,  8,  7,  5,  4,  2,  1,  0,  0,  0,  0,  1,  2,  2,  3,  3,  3,  4,  5,  6,  8,  9, 13, 17, 20, 20,
+              18, 16, 16, 15, 14, 12, 10,  9,  7,  6,  5,  3,  2,  1,  0,  0,  0,  1,  2,  3,  3,  3,  4,  5,  6,  7,  9, 10, 14, 18, 20, 20,
+              18, 17, 16, 15, 14, 12, 10,  9,  8,  7,  6,  5,  3,  3,  1,  0,  0,  1,  2,  3,  4,  4,  5,  6,  6,  7,  9, 12, 15, 19, 20, 20,
+              18, 18, 17, 16, 14, 13, 11, 10,  9,  8,  7,  6,  5,  5,  3,  1,  1,  1,  2,  3,  5,  5,  5,  6,  7,  9, 12, 15, 17, 19, 20, 20,
+              18, 18, 17, 16, 15, 13, 12, 10, 10,  9,  8,  7,  6,  5,  4,  2,  1,  2,  3,  4,  5,  5,  6,  6,  8, 10, 13, 16, 18, 20, 20, 21,
+              19, 18, 17, 16, 15, 14, 13, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  2,  3,  3,  5,  5,  6,  7, 10, 11, 14, 17, 19, 20, 21, 22,
+              20, 19, 18, 17, 16, 15, 13, 12, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  3,  3,  5,  6,  6,  7, 10, 12, 14, 18, 20, 21, 22, 23,
+              21, 20, 19, 18, 17, 16, 14, 13, 12, 11, 10, 10,  9,  7,  7,  5,  5,  4,  4,  5,  6,  6,  7,  8, 11, 13, 16, 19, 21, 22, 22, 22,
+              22, 21, 20, 19, 18, 17, 16, 14, 13, 12, 12, 10,  9,  8,  7,  6,  6,  5,  5,  6,  7,  7,  8,  9, 12, 14, 18, 20, 21, 22, 22, 22,
+              23, 22, 21, 20, 19, 17, 16, 15, 14, 14, 13, 12, 10,  9,  8,  7,  6,  5,  5,  6,  7,  8,  8, 10, 12, 15, 18, 20, 21, 22, 22, 22,
+              24, 23, 22, 21, 20, 18, 17, 16, 15, 15, 14, 14, 13, 11,  9,  8,  6,  6,  6,  6,  7,  8,  9, 11, 14, 17, 19, 20, 21, 21, 21, 21,
+              24, 24, 23, 21, 20, 19, 17, 16, 15, 15, 15, 14, 14, 14, 11,  9,  6,  5,  5,  6,  8,  8, 10, 12, 15, 17, 20, 20, 21, 21, 21, 21,
+             ]
+          g: [
+              19, 18, 17, 15, 13, 12, 10,  9,  8,  8,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7,  7, 12, 12,  9,  9, 11, 15, 15, 16, 19, 20,
+              19, 18, 16, 15, 12, 12, 10, 10,  8,  7,  7,  7,  7,  6,  7,  7,  7,  7,  7,  7,  7,  7,  8,  8,  7,  7, 11, 14, 15, 16, 19, 19,
+              18, 17, 16, 14, 12, 12, 10, 10,  8,  7,  7,  6,  6,  5,  6,  6,  7,  7,  7,  7,  7,  7,  7,  7,  6,  6, 10, 14, 15, 17, 19, 19,
+              17, 17, 16, 14, 12, 12, 10, 10,  8,  7,  6,  6,  6,  5,  5,  4,  5,  5,  6,  6,  6,  7,  7,  5,  6,  6,  9, 13, 15, 17, 18, 20,
+              17, 17, 15, 14, 12, 11, 10,  9,  8,  7,  6,  5,  5,  4,  4,  4,  4,  4,  5,  6,  6,  6,  5,  5,  5,  6,  8, 11, 15, 17, 18, 20,
+              17, 17, 15, 13, 12, 11,  9,  9,  8,  7,  5,  5,  4,  4,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  5,  7, 11, 15, 17, 18, 18,
+              17, 16, 15, 13, 12, 11,  9,  8,  8,  6,  5,  4,  4,  4,  3,  3,  4,  4,  3,  3,  3,  4,  4,  4,  4,  5,  6,  9, 14, 17, 17, 18,
+              17, 16, 14, 13, 12, 11,  9,  8,  7,  6,  5,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  6,  8, 13, 16, 17, 17,
+              17, 15, 14, 13, 12, 11,  9,  8,  7,  6,  5,  4,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  5,  7, 12, 16, 17, 17,
+              17, 15, 14, 12, 11, 10,  9,  8,  7,  6,  4,  4,  3,  3,  3,  2,  2,  3,  3,  3,  2,  2,  3,  3,  3,  4,  5,  7, 11, 15, 18, 18,
+              16, 14, 13, 12, 11, 10,  9,  7,  7,  5,  4,  3,  3,  3,  2,  2,  2,  3,  3,  3,  2,  2,  2,  3,  3,  4,  5,  8, 11, 15, 18, 19,
+              16, 14, 13, 12, 11, 10,  9,  7,  5,  5,  4,  3,  3,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  3,  4,  5,  8, 10, 15, 18, 19,
+              16, 14, 14, 13, 11, 10,  9,  7,  5,  5,  4,  3,  2,  2,  2,  2,  2,  2,  3,  3,  2,  2,  2,  2,  3,  3,  5,  7, 10, 15, 17, 18,
+              16, 15, 14, 12, 11, 10,  9,  7,  5,  5,  4,  3,  2,  2,  1,  1,  2,  2,  2,  2,  2,  2,  1,  2,  2,  3,  5,  6, 10, 14, 17, 17,
+              15, 15, 13, 12, 11, 10,  9,  7,  5,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  1,  2,  2,  3,  5,  7, 10, 14, 17, 18,
+              15, 14, 13, 12, 12, 10,  9,  7,  6,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  3,  4,  5,  7, 10, 17, 18, 18,
+              15, 14, 14, 13, 12, 11,  9,  7,  6,  4,  3,  2,  1,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  7, 12, 17, 19, 19,
+              16, 14, 14, 13, 12, 12,  9,  7,  6,  4,  3,  2,  0,  0,  0,  1,  1,  1,  2,  2,  2,  2,  2,  3,  4,  4,  5,  8, 12, 17, 19, 20,
+              16, 15, 14, 13, 12, 12,  9,  7,  7,  4,  3,  1,  0,  0,  0,  0,  1,  1,  1,  2,  2,  2,  3,  3,  4,  4,  6,  8, 12, 17, 19, 20,
+              17, 15, 14, 13, 12, 12,  9,  7,  7,  5,  3,  1,  0,  0,  0,  0,  1,  1,  1,  2,  2,  3,  3,  4,  4,  5,  6,  8, 12, 17, 19, 20,
+              18, 15, 15, 14, 13, 12,  9,  8,  7,  5,  4,  2,  1,  0,  0,  0,  0,  1,  2,  2,  3,  3,  3,  4,  5,  6,  7,  9, 13, 17, 19, 20,
+              18, 16, 15, 14, 13, 12,  9,  9,  7,  6,  5,  3,  2,  1,  0,  0,  0,  1,  2,  3,  3,  3,  4,  5,  6,  7,  9, 10, 14, 18, 20, 20,
+              18, 16, 16, 15, 13, 12, 10,  9,  8,  7,  6,  5,  3,  3,  1,  0,  0,  1,  2,  3,  4,  4,  5,  5,  6,  7,  9, 12, 15, 19, 20, 20,
+              18, 18, 16, 16, 14, 13, 10, 10,  9,  8,  7,  6,  5,  5,  3,  1,  1,  1,  2,  3,  5,  5,  5,  6,  6,  8, 11, 15, 17, 19, 20, 20,
+              18, 18, 16, 16, 14, 13, 12, 10,  9,  9,  8,  7,  6,  5,  4,  3,  1,  2,  3,  5,  5,  5,  5,  6,  7, 10, 12, 15, 18, 20, 20, 20,
+              18, 18, 17, 16, 15, 14, 12, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  2,  3,  3,  5,  5,  5,  6,  9, 11, 14, 16, 19, 20, 20, 21,
+              19, 19, 18, 17, 16, 15, 13, 12, 11, 10, 10,  9,  8,  7,  5,  4,  4,  3,  3,  3,  5,  5,  6,  7, 10, 12, 14, 18, 20, 20, 21, 22,
+              21, 20, 18, 18, 17, 16, 14, 12, 11, 11, 10, 10,  8,  7,  7,  5,  4,  4,  4,  5,  6,  6,  6,  7, 11, 13, 16, 19, 20, 21, 21, 22,
+              22, 21, 20, 19, 18, 16, 15, 14, 12, 12, 12, 10,  9,  8,  7,  6,  5,  4,  5,  6,  6,  7,  7,  8, 12, 13, 17, 19, 21, 21, 21, 21,
+              23, 22, 21, 20, 18, 17, 16, 16, 14, 14, 13, 12, 10, 10,  8,  7,  6,  5,  5,  6,  7,  7,  8,  9, 12, 15, 18, 19, 21, 21, 21, 20,
+              23, 22, 22, 21, 20, 18, 17, 16, 15, 15, 15, 14, 13, 11,  9,  8,  6,  6,  6,  6,  7,  8,  9, 10, 13, 16, 19, 20, 20, 21, 21, 20,
+              24, 23, 22, 21, 20, 19, 17, 17, 16, 16, 15, 15, 14, 14, 11,  9,  6,  6,  6,  6,  8,  8, 10, 12, 15, 17, 19, 20, 20, 21, 21, 20,
+             ]
+          b: [
+              11,  9,  9,  7,  6,  5,  4,  4,  3,  3,  3,  3,  3,  4,  5,  5,  5,  4,  5,  4,  4,  4,  7,  7,  3,  3,  5,  8,  8,  9, 11, 11,
+              11, 10,  8,  7,  5,  5,  5,  4,  3,  3,  3,  3,  3,  3,  4,  4,  5,  4,  5,  4,  4,  4,  4,  4,  2,  2,  5,  8,  8,  9, 11, 11,
+              10, 10,  7,  7,  5,  5,  5,  4,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  3,  1,  1,  5,  7,  9,  9, 11, 11,
+              10,  9,  8,  7,  6,  5,  5,  5,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  4,  4,  4,  4,  3,  2,  1,  1,  4,  7,  9, 10, 12, 13,
+               9,  9,  8,  7,  6,  5,  5,  5,  4,  3,  3,  3,  3,  2,  2,  3,  3,  3,  3,  3,  4,  3,  2,  1,  1,  1,  4,  6,  9, 10, 12, 13,
+               9,  9,  9,  7,  6,  6,  5,  4,  4,  3,  3,  3,  2,  2,  2,  2,  3,  3,  2,  1,  2,  2,  2,  1,  1,  1,  2,  6,  9, 10, 11, 12,
+               8,  9,  9,  7,  7,  6,  5,  4,  4,  3,  3,  2,  2,  2,  2,  2,  3,  3,  2,  1,  1,  1,  1,  0,  0,  1,  2,  5,  9, 11, 11, 11,
+               8,  9,  9,  7,  7,  6,  5,  4,  4,  3,  3,  2,  2,  2,  2,  2,  3,  3,  2,  1,  1,  1,  1,  0,  0,  0,  1,  3,  8, 11, 11, 11,
+               9,  9,  8,  7,  7,  7,  6,  4,  4,  3,  3,  2,  2,  2,  2,  2,  3,  3,  2,  1,  1,  1,  1,  0,  0,  0,  1,  3,  7, 11, 11, 11,
+               9,  9,  8,  7,  7,  7,  6,  5,  4,  3,  2,  2,  2,  2,  2,  2,  2,  3,  2,  1,  1,  0,  0,  0,  0,  0,  1,  3,  7, 10, 12, 13,
+               9,  9,  8,  8,  7,  7,  6,  5,  4,  3,  2,  1,  2,  1,  2,  2,  2,  3,  2,  1,  0,  0,  0,  0,  0,  0,  1,  4,  7, 10, 13, 13,
+               9,  8,  8,  8,  7,  7,  6,  5,  3,  3,  2,  1,  1,  1,  1,  1,  2,  3,  3,  2,  1,  0,  0,  0,  0,  1,  2,  4,  7, 11, 13, 13,
+               9,  8,  8,  7,  7,  6,  6,  5,  3,  3,  2,  2,  2,  1,  1,  1,  2,  3,  3,  2,  1,  0,  0,  0,  0,  1,  2,  4,  6, 11, 13, 13,
+               9,  8,  8,  7,  7,  6,  6,  4,  3,  3,  2,  2,  1,  1,  1,  1,  2,  3,  3,  3,  1,  1,  0,  0,  1,  1,  2,  3,  6, 10, 12, 13,
+               9,  8,  8,  7,  7,  6,  6,  4,  3,  3,  2,  1,  1,  1,  1,  1,  1,  3,  3,  3,  1,  1,  1,  1,  1,  2,  2,  4,  6, 10, 13, 13,
+               9,  9,  8,  8,  8,  6,  6,  4,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  3,  3,  1,  1,  1,  1,  2,  2,  3,  4,  6, 13, 14, 14,
+               9,  9,  8,  8,  8,  8,  6,  5,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  1,  1,  2,  2,  3,  3,  5,  9, 13, 15, 15,
+              10,  9,  9,  9, 10, 10,  6,  6,  5,  3,  2,  1,  0,  0,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  9, 13, 15, 16,
+              10, 10,  9,  9, 10, 10,  7,  6,  5,  3,  2,  1,  0,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  9, 13, 15, 16,
+              11, 10,  9,  9, 10, 10,  7,  6,  6,  3,  2,  1,  0,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  6,  9, 13, 15, 16,
+              12, 10, 10, 10, 10, 10,  7,  6,  6,  4,  3,  1,  1,  1,  1,  1,  1,  2,  2,  3,  3,  3,  3,  3,  5,  5,  6,  7, 10, 14, 15, 16,
+              12, 11, 10, 10, 10, 10,  8,  7,  6,  6,  4,  3,  2,  1,  1,  1,  1,  2,  2,  3,  4,  4,  4,  4,  5,  5,  6,  8, 11, 15, 16, 16,
+              12, 12, 11, 11, 10, 10,  9,  8,  7,  6,  6,  4,  4,  3,  2,  2,  2,  2,  3,  4,  4,  4,  5,  5,  5,  6,  7, 10, 13, 15, 16, 15,
+              12, 12, 12, 12, 11, 10, 10,  8,  8,  7,  7,  6,  5,  5,  3,  2,  2,  2,  3,  4,  5,  5,  5,  5,  6,  7, 10, 13, 14, 16, 16, 16,
+              12, 12, 13, 12, 12, 11, 11,  9,  8,  8,  8,  7,  6,  6,  5,  4,  3,  3,  3,  5,  6,  6,  6,  6,  7,  9, 11, 14, 15, 17, 17, 16,
+              13, 13, 13, 13, 12, 12, 11, 11, 10, 10,  9,  8,  7,  7,  6,  5,  5,  4,  4,  4,  5,  6,  6,  6,  9, 10, 12, 14, 16, 17, 17, 18,
+              13, 13, 14, 13, 13, 13, 12, 12, 11, 10, 10,  9,  8,  7,  6,  6,  6,  5,  4,  4,  6,  6,  6,  7,  9, 11, 12, 16, 17, 17, 17, 18,
+              15, 15, 15, 15, 14, 13, 13, 13, 12, 11, 11, 10,  9,  9,  8,  7,  6,  5,  5,  5,  6,  7,  7,  8, 10, 12, 14, 17, 17, 18, 17, 17,
+              16, 16, 16, 16, 15, 14, 14, 14, 13, 13, 12, 11, 11,  9,  8,  7,  7,  6,  6,  6,  7,  7,  8,  8, 10, 12, 16, 17, 18, 18, 17, 17,
+              18, 17, 17, 16, 16, 15, 14, 14, 14, 14, 14, 13, 11, 11,  9,  8,  7,  7,  6,  6,  7,  7,  8,  9, 10, 13, 16, 17, 17, 18, 17, 16,
+              18, 17, 17, 17, 16, 15, 15, 15, 15, 15, 15, 14, 14, 12, 10,  9,  7,  7,  6,  6,  7,  7,  8,  9, 11, 14, 16, 16, 17, 17, 16, 15,
+              18, 18, 17, 17, 17, 16, 15, 15, 15, 16, 15, 15, 14, 14, 12,  9,  7,  6,  6,  6,  7,  7,  9, 10, 12, 14, 15, 16, 16, 16, 15, 15,
+             ]
+        - ct: 5500
+          r: [
+              19, 18, 17, 16, 15, 13, 11, 10,  9,  9,  9,  8,  8,  8,  8,  8,  8,  9, 10, 10,  8,  8,  9,  9,  9, 11, 14, 15, 16, 16, 18, 18,
+              18, 18, 17, 15, 14, 13, 11, 11,  9,  9,  8,  8,  7,  7,  7,  7,  7,  8,  9,  8,  8,  8,  9,  9,  8,  8, 11, 14, 16, 17, 17, 18,
+              18, 17, 17, 15, 14, 13, 12, 11,  9,  9,  8,  7,  7,  6,  6,  6,  6,  8,  8,  8,  8,  8,  8,  8,  7,  7, 10, 13, 16, 17, 18, 18,
+              17, 17, 16, 15, 14, 12, 11, 11,  9,  8,  7,  7,  6,  5,  5,  5,  5,  6,  8,  7,  8,  8,  8,  6,  6,  6,  9, 12, 16, 16, 18, 19,
+              17, 17, 16, 14, 13, 12, 11, 10, 10,  8,  7,  7,  5,  5,  5,  5,  5,  5,  6,  7,  7,  7,  6,  6,  6,  6,  8, 11, 15, 16, 17, 19,
+              18, 17, 16, 14, 13, 12, 11, 10, 10,  8,  7,  6,  5,  5,  4,  4,  5,  5,  5,  5,  5,  5,  5,  5,  5,  6,  7, 10, 14, 16, 17, 18,
+              18, 17, 16, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  4,  4,  4,  4,  3,  4,  5,  5,  5,  5,  5,  6, 10, 13, 16, 16, 17,
+              18, 16, 15, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  4,  4,  4,  4,  3,  3,  3,  4,  4,  4,  4,  5,  6,  8, 12, 16, 16, 16,
+              17, 16, 15, 13, 12, 11, 10,  9,  8,  7,  5,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  4,  4,  5,  7, 11, 16, 16, 16,
+              17, 16, 15, 12, 12, 12, 10,  8,  7,  7,  4,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  4,  5,  7, 10, 16, 16, 16,
+              16, 16, 14, 12, 12, 11, 10,  8,  7,  6,  4,  4,  3,  3,  3,  3,  3,  4,  3,  3,  2,  2,  2,  3,  3,  4,  4,  7, 10, 14, 16, 16,
+              16, 15, 14, 13, 12, 11, 10,  8,  7,  6,  5,  4,  3,  3,  3,  3,  3,  4,  3,  3,  3,  2,  2,  3,  3,  3,  5,  7, 10, 14, 15, 16,
+              16, 15, 15, 13, 11, 11, 11,  9,  7,  5,  5,  4,  3,  2,  2,  2,  3,  3,  3,  3,  2,  2,  2,  2,  3,  3,  5,  6,  9, 14, 15, 16,
+              16, 15, 15, 13, 11, 11, 11, 10,  7,  5,  4,  4,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  3,  3,  5,  6, 10, 13, 15, 17,
+              15, 15, 14, 12, 11, 11, 11, 10,  7,  4,  4,  3,  2,  2,  2,  2,  2,  2,  3,  3,  2,  2,  2,  3,  3,  3,  5,  6,  9, 13, 16, 17,
+              15, 15, 14, 12, 11, 11, 10,  9,  7,  4,  4,  3,  1,  1,  1,  1,  2,  2,  3,  3,  2,  2,  3,  3,  3,  3,  5,  7, 10, 15, 17, 17,
+              15, 15, 14, 12, 11, 11, 10,  9,  7,  4,  4,  3,  1,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  3,  4,  5,  7, 11, 16, 17, 18,
+              16, 15, 15, 12, 12, 11, 10,  9,  6,  4,  4,  3,  1,  0,  0,  1,  1,  2,  2,  2,  2,  3,  3,  3,  4,  4,  5,  7, 12, 15, 17, 18,
+              16, 16, 15, 12, 12, 11, 10,  8,  6,  5,  4,  3,  1,  0,  0,  1,  1,  1,  2,  2,  2,  3,  3,  3,  4,  5,  6,  8, 12, 15, 17, 18,
+              15, 15, 15, 13, 12, 12, 10,  8,  7,  5,  4,  3,  2,  0,  0,  0,  1,  1,  2,  2,  3,  3,  3,  3,  4,  5,  7,  9, 12, 16, 17, 18,
+              15, 15, 15, 13, 13, 12, 10,  8,  7,  5,  5,  3,  2,  1,  0,  0,  1,  1,  1,  2,  3,  3,  3,  4,  5,  5,  7,  9, 13, 16, 18, 18,
+              15, 15, 15, 14, 13, 12, 10,  8,  7,  6,  5,  5,  3,  2,  1,  0,  1,  1,  1,  2,  3,  3,  3,  5,  5,  6,  8, 10, 14, 17, 18, 19,
+              16, 16, 16, 15, 13, 12, 10,  9,  8,  7,  6,  6,  5,  4,  2,  1,  1,  1,  1,  2,  3,  3,  5,  5,  6,  7,  9, 12, 15, 18, 18, 19,
+              17, 16, 16, 16, 13, 12, 11, 10,  9,  8,  7,  7,  6,  5,  4,  2,  1,  1,  2,  3,  4,  4,  5,  5,  6,  8, 11, 14, 16, 18, 19, 19,
+              18, 18, 17, 16, 14, 13, 12, 10,  9,  8,  8,  7,  7,  5,  5,  3,  2,  2,  4,  4,  5,  5,  5,  5,  7, 10, 12, 16, 17, 19, 19, 20,
+              18, 18, 17, 16, 15, 13, 12, 10, 10,  9,  9,  9,  7,  6,  5,  4,  3,  3,  4,  4,  5,  5,  5,  6,  7, 11, 15, 17, 18, 19, 19, 20,
+              19, 18, 18, 17, 16, 14, 13, 11, 10, 10,  9,  9,  8,  6,  5,  5,  4,  4,  4,  4,  6,  6,  6,  7,  9, 11, 15, 17, 19, 19, 20, 21,
+              20, 19, 19, 19, 17, 16, 13, 12, 11, 11, 10,  9,  9,  7,  6,  5,  5,  4,  4,  5,  6,  7,  7,  8,  9, 12, 15, 18, 19, 19, 20, 20,
+              21, 20, 20, 19, 19, 16, 16, 13, 12, 12, 11, 11,  9,  8,  7,  6,  6,  5,  5,  6,  7,  7,  8,  8, 10, 13, 17, 19, 19, 20, 20, 20,
+              22, 21, 20, 20, 19, 17, 16, 14, 13, 13, 14, 12, 11,  9,  8,  7,  6,  5,  5,  6,  7,  7,  8,  9, 11, 15, 17, 19, 19, 20, 20, 20,
+              22, 22, 21, 20, 19, 18, 16, 15, 14, 14, 15, 15, 13, 11,  9,  8,  7,  5,  5,  6,  7,  8,  9, 10, 13, 16, 18, 18, 19, 20, 19, 19,
+              22, 22, 21, 20, 19, 19, 16, 16, 15, 15, 15, 15, 15, 13, 10,  9,  7,  5,  5,  6,  8,  8, 10, 11, 14, 16, 18, 18, 19, 19, 19, 19,
+             ]
+          g: [
+              16, 16, 15, 14, 13, 11, 10,  9,  8,  7,  7,  7,  6,  6,  6,  6,  6,  7,  8,  8,  6,  6,  7,  7,  7,  9, 12, 13, 13, 14, 14, 14,
+              16, 16, 15, 14, 13, 11, 10,  9,  8,  7,  7,  6,  6,  6,  6,  6,  6,  6,  7,  7,  6,  6,  7,  7,  6,  6, 10, 12, 13, 14, 14, 14,
+              16, 15, 15, 13, 13, 11, 10,  9,  8,  7,  7,  6,  5,  5,  5,  5,  5,  6,  6,  6,  6,  6,  6,  6,  5,  5,  8, 12, 14, 15, 15, 16,
+              15, 15, 14, 13, 12, 11, 10, 10,  8,  7,  6,  6,  5,  4,  4,  4,  4,  5,  6,  6,  6,  6,  6,  5,  5,  5,  7, 11, 14, 15, 15, 17,
+              16, 15, 14, 13, 12, 11, 10, 10,  9,  7,  6,  6,  4,  4,  4,  3,  3,  4,  4,  6,  6,  5,  5,  4,  4,  5,  6, 10, 14, 14, 16, 16,
+              16, 15, 15, 13, 12, 11, 10, 10,  9,  7,  6,  6,  4,  4,  3,  3,  3,  4,  4,  4,  4,  4,  4,  4,  4,  4,  5,  9, 13, 14, 15, 16,
+              16, 15, 15, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  4,  5,  8, 13, 14, 15, 15,
+              16, 15, 14, 12, 11, 10,  9,  8,  7,  6,  6,  5,  4,  3,  3,  3,  3,  3,  2,  2,  2,  3,  3,  3,  3,  4,  5,  7, 11, 14, 15, 15,
+              16, 15, 14, 12, 11, 10,  9,  8,  7,  6,  5,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  3,  3,  4,  6, 10, 14, 15, 14,
+              16, 15, 14, 12, 11, 11,  9,  8,  7,  6,  4,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  4,  6, 10, 15, 15, 15,
+              15, 15, 13, 12, 11, 11, 10,  8,  7,  5,  4,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  3,  6,  9, 13, 15, 15,
+              15, 14, 13, 12, 11, 11, 10,  8,  7,  5,  5,  3,  2,  2,  2,  2,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  4,  6,  9, 13, 14, 15,
+              15, 14, 14, 13, 11, 11, 10,  8,  7,  5,  5,  3,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  1,  2,  2,  2,  4,  5,  8, 13, 14, 15,
+              15, 14, 14, 13, 11, 11, 11, 10,  7,  5,  4,  3,  2,  2,  2,  2,  2,  2,  3,  3,  2,  2,  1,  2,  2,  2,  4,  5,  8, 13, 14, 15,
+              15, 14, 13, 12, 11, 11, 10,  9,  7,  4,  4,  3,  2,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  5,  8, 13, 15, 16,
+              15, 15, 13, 12, 11, 11, 10,  9,  7,  4,  4,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  4,  6,  8, 15, 16, 16,
+              15, 15, 14, 12, 11, 11, 10,  9,  7,  4,  4,  2,  1,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  3,  4,  6, 11, 15, 16, 17,
+              15, 15, 15, 12, 12, 11, 10, 10,  7,  4,  4,  2,  1,  0,  0,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  4,  4,  6, 11, 15, 17, 17,
+              15, 15, 15, 12, 12, 12, 10,  9,  7,  5,  4,  2,  1,  0,  0,  1,  1,  1,  2,  2,  2,  3,  3,  3,  3,  4,  5,  7, 11, 15, 17, 17,
+              15, 15, 15, 13, 12, 12, 10,  9,  7,  5,  4,  3,  2,  0,  0,  0,  1,  1,  1,  2,  3,  3,  3,  3,  4,  4,  6,  8, 12, 15, 17, 17,
+              15, 15, 15, 13, 13, 12, 10,  9,  7,  6,  5,  3,  2,  1,  0,  0,  1,  1,  1,  2,  3,  3,  3,  3,  4,  5,  6,  9, 13, 16, 17, 18,
+              15, 15, 15, 14, 13, 13, 10,  9,  8,  6,  6,  5,  3,  2,  1,  1,  1,  1,  2,  2,  3,  3,  4,  4,  5,  6,  7, 10, 14, 17, 18, 18,
+              15, 16, 16, 15, 13, 13, 11,  9,  8,  7,  6,  6,  5,  4,  2,  1,  1,  1,  2,  2,  3,  4,  5,  5,  6,  7,  8, 12, 15, 17, 18, 18,
+              16, 16, 16, 16, 13, 13, 11, 10,  9,  8,  7,  7,  6,  6,  4,  2,  2,  2,  2,  3,  5,  5,  5,  5,  6,  8, 11, 14, 16, 18, 18, 18,
+              17, 17, 17, 16, 14, 13, 13, 11, 10,  9,  8,  8,  7,  6,  5,  4,  2,  2,  4,  5,  5,  5,  5,  5,  7,  9, 12, 15, 17, 18, 18, 18,
+              18, 18, 17, 16, 15, 14, 13, 11, 10, 10,  9,  9,  7,  6,  5,  5,  4,  3,  4,  4,  5,  5,  5,  6,  7, 10, 15, 16, 18, 18, 18, 19,
+              19, 18, 18, 17, 16, 14, 13, 12, 11, 10, 10,  9,  9,  7,  6,  5,  5,  4,  4,  4,  6,  6,  6,  6,  8, 10, 15, 16, 18, 18, 18, 19,
+              20, 19, 19, 19, 17, 16, 14, 13, 12, 11, 11, 10,  9,  7,  7,  6,  5,  4,  4,  5,  6,  6,  6,  7,  9, 11, 15, 17, 18, 18, 18, 18,
+              22, 20, 20, 20, 19, 17, 16, 14, 13, 13, 12, 11, 10,  9,  7,  6,  6,  5,  5,  6,  7,  7,  7,  8,  9, 12, 16, 18, 18, 19, 18, 18,
+              22, 22, 21, 20, 19, 18, 17, 16, 14, 14, 15, 13, 11, 10,  9,  8,  7,  6,  5,  6,  7,  8,  8,  9, 10, 14, 17, 18, 18, 19, 18, 17,
+              22, 22, 22, 21, 20, 19, 17, 17, 16, 16, 16, 16, 14, 12, 10,  8,  7,  6,  6,  7,  8,  8,  8, 10, 13, 16, 18, 18, 18, 18, 18, 17,
+              22, 22, 22, 21, 20, 20, 18, 17, 16, 16, 17, 17, 16, 14, 11, 10,  8,  6,  6,  7,  8,  8, 10, 11, 14, 17, 18, 18, 18, 18, 18, 17,
+             ]
+          b: [
+              13, 12, 12, 12, 11,  9,  8,  7,  7,  7,  7,  6,  6,  6,  6,  5,  5,  6,  7,  7,  6,  6,  5,  5,  5,  6,  9,  9,  9, 10,  9,  8,
+              13, 13, 12, 11, 11,  9,  9,  8,  7,  7,  7,  6,  5,  5,  5,  5,  5,  6,  6,  6,  6,  6,  5,  5,  4,  4,  7,  9,  9, 10, 10,  9,
+              13, 13, 12, 11, 11,  9,  9,  8,  7,  7,  6,  6,  5,  4,  4,  4,  4,  5,  6,  6,  6,  5,  5,  5,  3,  3,  6,  9, 10, 11, 10, 11,
+              13, 13, 12, 11, 11, 10,  9,  9,  7,  7,  6,  5,  4,  4,  4,  4,  4,  4,  5,  5,  5,  5,  5,  4,  3,  3,  5,  8, 10, 11, 11, 12,
+              13, 13, 12, 11, 11, 10,  9,  9,  8,  7,  6,  6,  4,  4,  3,  3,  3,  4,  4,  5,  5,  5,  4,  3,  2,  3,  4,  8, 11, 11, 11, 12,
+              13, 13, 13, 11, 11, 10,  9,  9,  8,  7,  6,  6,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  3,  7, 11, 11, 11, 12,
+              14, 14, 13, 11, 11, 10,  9,  8,  8,  7,  6,  6,  4,  3,  3,  3,  3,  3,  2,  2,  2,  3,  2,  2,  2,  2,  3,  6, 11, 11, 11, 11,
+              14, 14, 13, 11, 11, 10,  9,  8,  7,  7,  6,  5,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  9, 11, 11, 11,
+              14, 14, 13, 12, 11, 11,  9,  8,  7,  6,  5,  4,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  8, 12, 12, 11,
+              14, 13, 13, 12, 12, 11, 10,  8,  7,  6,  4,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  4,  8, 12, 12, 13,
+              13, 13, 13, 12, 12, 12, 11,  9,  7,  6,  4,  3,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  4,  8, 12, 12, 13,
+              14, 13, 13, 12, 12, 11, 11,  9,  7,  6,  5,  3,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  4,  8, 12, 13, 13,
+              14, 13, 13, 13, 12, 11, 11,  9,  7,  6,  5,  4,  2,  1,  1,  1,  2,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  4,  7, 12, 13, 13,
+              14, 13, 13, 13, 12, 12, 12, 11,  7,  5,  5,  4,  2,  1,  1,  1,  1,  3,  3,  3,  2,  2,  2,  2,  2,  3,  3,  4,  7, 12, 13, 13,
+              14, 14, 13, 13, 12, 12, 11, 11,  7,  5,  4,  3,  1,  1,  1,  1,  1,  2,  3,  3,  2,  2,  2,  3,  3,  3,  4,  4,  7, 12, 13, 14,
+              14, 14, 13, 13, 12, 12, 11, 11,  8,  5,  4,  3,  1,  1,  0,  0,  1,  1,  3,  3,  3,  3,  3,  3,  3,  4,  4,  5,  8, 13, 15, 15,
+              14, 15, 14, 13, 13, 12, 11, 11,  8,  5,  4,  3,  1,  0,  0,  0,  0,  1,  2,  2,  3,  3,  3,  4,  4,  4,  5,  6, 10, 15, 15, 16,
+              15, 15, 15, 14, 13, 13, 12, 11,  8,  5,  4,  3,  1,  0,  0,  0,  1,  1,  2,  2,  3,  3,  4,  4,  4,  4,  5,  6, 11, 15, 16, 16,
+              15, 15, 15, 14, 14, 14, 12, 11,  8,  6,  5,  3,  1,  0,  0,  0,  1,  1,  2,  2,  3,  3,  4,  4,  4,  5,  6,  7, 11, 15, 16, 16,
+              15, 15, 15, 15, 14, 14, 12, 11,  9,  7,  5,  3,  2,  1,  0,  1,  1,  1,  2,  3,  3,  4,  4,  4,  4,  5,  6,  8, 12, 15, 16, 16,
+              15, 16, 15, 15, 15, 14, 13, 11,  9,  7,  6,  5,  3,  2,  1,  1,  1,  1,  2,  3,  3,  4,  4,  4,  5,  6,  7,  9, 12, 16, 16, 16,
+              15, 16, 16, 15, 15, 15, 13, 11, 10,  8,  7,  6,  4,  3,  2,  1,  1,  2,  2,  3,  4,  4,  5,  5,  6,  7,  8, 10, 14, 16, 16, 16,
+              16, 16, 17, 16, 15, 15, 14, 12, 11,  9,  8,  8,  6,  5,  3,  2,  2,  2,  3,  3,  5,  5,  6,  6,  7,  8,  9, 12, 15, 16, 16, 16,
+              16, 17, 18, 17, 16, 15, 14, 13, 11, 10,  9,  9,  8,  6,  5,  3,  3,  3,  3,  4,  6,  6,  6,  6,  7,  8, 11, 14, 16, 16, 16, 16,
+              17, 18, 18, 18, 17, 16, 16, 14, 12, 11, 10,  9,  8,  7,  6,  5,  3,  3,  5,  6,  6,  6,  6,  6,  8, 10, 12, 16, 17, 17, 17, 16,
+              18, 18, 18, 18, 18, 17, 16, 14, 13, 12, 11, 11,  8,  8,  6,  6,  5,  4,  5,  5,  6,  6,  6,  7,  8, 11, 15, 16, 17, 17, 16, 16,
+              18, 19, 19, 19, 19, 17, 17, 15, 14, 13, 12, 11, 11,  8,  7,  6,  6,  5,  5,  5,  7,  7,  7,  8,  9, 11, 15, 17, 17, 17, 16, 16,
+              20, 20, 20, 20, 19, 19, 17, 17, 15, 14, 14, 12, 11,  9,  8,  7,  7,  6,  6,  6,  8,  8,  8,  8,  9, 12, 15, 18, 18, 16, 16, 16,
+              22, 22, 22, 22, 21, 20, 19, 18, 17, 16, 15, 14, 12, 11, 10,  8,  8,  7,  7,  7,  8,  8,  8,  9, 10, 13, 17, 18, 18, 16, 16, 15,
+              23, 22, 22, 22, 22, 21, 20, 20, 18, 18, 19, 16, 14, 13, 11, 10,  9,  8,  7,  7,  8,  9,  9, 10, 11, 15, 17, 18, 17, 17, 16, 14,
+              23, 23, 23, 23, 23, 22, 21, 21, 20, 20, 20, 19, 18, 15, 12, 11, 10,  8,  8,  8,  9,  9, 10, 11, 13, 17, 17, 17, 17, 16, 15, 13,
+              23, 23, 24, 24, 23, 23, 22, 21, 21, 21, 20, 20, 19, 17, 14, 12, 11,  9,  8,  9,  9, 10, 10, 12, 15, 17, 17, 17, 16, 16, 15, 13,
+             ]
+        - ct: 8500
+          r: [
+              18, 17, 16, 15, 13, 12, 10,  9,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8, 12, 12,  8,  8, 10, 13, 14, 15, 17, 18,
+              17, 17, 16, 14, 12, 11, 10, 10,  8,  8,  8,  7,  7,  7,  8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  7,  7, 10, 13, 14, 15, 17, 17,
+              17, 16, 15, 13, 12, 11, 10, 10,  8,  8,  7,  7,  7,  6,  7,  7,  8,  8,  8,  7,  7,  7,  7,  7,  6,  6,  9, 12, 14, 15, 17, 17,
+              16, 16, 15, 13, 12, 11, 10, 10,  9,  7,  7,  7,  6,  6,  5,  5,  6,  6,  7,  7,  7,  7,  7,  5,  5,  5,  8, 11, 14, 15, 17, 19,
+              16, 15, 14, 13, 12, 11, 10,  9,  8,  7,  7,  6,  6,  5,  5,  5,  5,  5,  5,  6,  6,  6,  5,  5,  5,  5,  7, 10, 13, 15, 17, 19,
+              15, 15, 14, 13, 12, 11,  9,  9,  8,  7,  6,  5,  5,  5,  4,  4,  5,  5,  5,  4,  4,  4,  4,  4,  4,  5,  6,  9, 13, 15, 16, 17,
+              15, 15, 13, 12, 11, 11,  9,  8,  8,  6,  5,  5,  4,  4,  4,  4,  4,  4,  4,  3,  3,  4,  4,  4,  4,  4,  5,  8, 13, 15, 15, 16,
+              15, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  4,  4,  4,  4,  4,  4,  3,  3,  3,  3,  3,  3,  4,  5,  7, 11, 14, 15, 15,
+              15, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  4,  4,  3,  3,  4,  3,  3,  3,  2,  3,  3,  3,  3,  4,  6, 10, 14, 15, 15,
+              15, 13, 13, 11, 11, 10,  9,  8,  7,  6,  4,  4,  4,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  3,  4,  6, 10, 13, 16, 16,
+              14, 13, 12, 11, 10, 10,  9,  7,  7,  5,  4,  3,  3,  3,  3,  2,  2,  3,  3,  3,  2,  2,  2,  2,  2,  3,  4,  6,  9, 13, 16, 17,
+              14, 13, 12, 11, 10, 10,  9,  7,  6,  5,  4,  3,  3,  3,  2,  2,  2,  3,  3,  3,  2,  2,  1,  2,  2,  3,  4,  6,  9, 13, 16, 17,
+              14, 13, 12, 12, 10, 10,  9,  7,  5,  5,  4,  3,  3,  2,  2,  2,  2,  3,  3,  3,  2,  2,  1,  1,  2,  3,  4,  6,  9, 13, 15, 17,
+              14, 13, 12, 11, 10,  9,  9,  7,  5,  5,  4,  3,  2,  2,  2,  2,  2,  3,  3,  3,  2,  2,  1,  1,  2,  3,  4,  6,  9, 12, 15, 16,
+              13, 13, 12, 11, 10,  9,  8,  7,  5,  4,  4,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  2,  2,  3,  4,  6,  8, 12, 15, 16,
+              13, 13, 12, 11, 11,  9,  8,  7,  6,  4,  3,  2,  1,  1,  1,  1,  2,  2,  2,  2,  2,  1,  1,  2,  3,  3,  4,  6,  9, 15, 16, 16,
+              13, 13, 12, 12, 11, 10,  9,  7,  6,  4,  3,  2,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  4,  4,  6, 10, 15, 17, 18,
+              14, 13, 13, 12, 12, 11,  9,  7,  6,  4,  3,  2,  1,  0,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  3,  4,  5,  7, 11, 15, 17, 18,
+              14, 13, 13, 12, 12, 11,  9,  7,  7,  4,  3,  1,  0,  0,  0,  1,  1,  1,  1,  2,  2,  2,  2,  3,  4,  4,  5,  7, 11, 15, 17, 18,
+              15, 13, 13, 12, 12, 11,  8,  7,  6,  4,  3,  1,  0,  0,  0,  0,  1,  1,  1,  2,  2,  2,  2,  3,  4,  5,  6,  7, 11, 15, 17, 18,
+              15, 14, 13, 13, 12, 11,  8,  8,  7,  5,  4,  2,  1,  0,  0,  0,  0,  1,  2,  2,  2,  2,  3,  3,  5,  5,  7,  8, 11, 15, 17, 18,
+              15, 14, 14, 13, 12, 11,  9,  8,  7,  6,  5,  3,  2,  1,  0,  0,  0,  1,  2,  2,  3,  3,  3,  5,  5,  6,  8,  9, 13, 16, 18, 18,
+              15, 14, 14, 13, 12, 11,  9,  9,  8,  7,  6,  5,  3,  3,  1,  0,  0,  1,  2,  2,  3,  4,  4,  5,  5,  6,  8, 11, 14, 17, 18, 18,
+              16, 16, 15, 14, 13, 12, 10,  9,  8,  8,  7,  6,  5,  5,  3,  1,  1,  1,  2,  3,  4,  4,  5,  5,  6,  8, 10, 13, 15, 17, 18, 18,
+              16, 16, 15, 14, 14, 12, 11, 10,  9,  9,  8,  7,  6,  5,  4,  3,  1,  1,  2,  4,  4,  5,  5,  5,  7,  9, 11, 14, 16, 18, 18, 19,
+              16, 16, 15, 15, 14, 13, 12, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  2,  3,  3,  4,  5,  5,  6,  9, 10, 13, 15, 18, 18, 19, 19,
+              17, 17, 16, 15, 15, 14, 12, 11, 11, 10, 10,  9,  8,  7,  6,  5,  4,  3,  3,  3,  5,  5,  6,  6,  9, 11, 13, 17, 18, 19, 19, 20,
+              19, 18, 17, 17, 15, 15, 13, 12, 11, 11, 10, 10,  9,  8,  7,  5,  5,  4,  4,  5,  6,  6,  6,  7, 10, 12, 15, 18, 19, 19, 19, 20,
+              19, 19, 18, 17, 17, 16, 14, 13, 12, 12, 11, 10,  9,  8,  7,  6,  6,  5,  5,  6,  6,  6,  7,  8, 11, 12, 16, 18, 19, 19, 19, 19,
+              20, 19, 19, 18, 17, 16, 15, 14, 13, 13, 12, 12, 10,  9,  8,  7,  6,  5,  5,  6,  6,  7,  8,  9, 11, 14, 17, 18, 19, 19, 19, 19,
+              20, 20, 19, 18, 18, 17, 15, 15, 14, 14, 14, 13, 12, 11,  9,  7,  6,  5,  5,  6,  7,  7,  8,  9, 12, 15, 17, 18, 18, 19, 18, 18,
+              21, 20, 20, 19, 18, 18, 15, 15, 14, 14, 14, 14, 13, 13, 11,  9,  6,  5,  5,  6,  7,  7,  9, 10, 13, 15, 18, 18, 18, 18, 18, 18,
+             ]
+          g: [
+              16, 16, 15, 13, 12, 10,  9,  8,  7,  7,  7,  6,  6,  6,  7,  7,  7,  6,  6,  6,  6,  6, 11, 11,  6,  6,  9, 12, 12, 13, 15, 15,
+              16, 15, 14, 13, 11, 10,  9,  9,  8,  7,  7,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  5,  5,  9, 12, 12, 13, 15, 15,
+              15, 15, 14, 12, 11, 11,  9,  9,  8,  7,  6,  6,  6,  5,  5,  5,  6,  6,  6,  6,  6,  6,  6,  5,  4,  5,  8, 11, 13, 14, 15, 15,
+              15, 15, 14, 12, 11, 10,  9,  9,  8,  6,  6,  6,  5,  5,  4,  4,  4,  4,  6,  6,  6,  6,  6,  4,  4,  4,  7, 11, 13, 14, 15, 17,
+              15, 15, 13, 12, 11, 10,  9,  9,  8,  6,  6,  5,  5,  4,  4,  3,  3,  4,  4,  5,  5,  5,  4,  4,  3,  4,  6,  9, 13, 14, 15, 17,
+              15, 14, 13, 12, 11, 10,  9,  8,  8,  6,  5,  5,  4,  4,  3,  3,  3,  3,  3,  3,  3,  4,  3,  3,  3,  4,  5,  8, 13, 14, 14, 15,
+              14, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  4,  3,  3,  3,  3,  3,  3,  3,  2,  3,  3,  3,  3,  3,  4,  7, 12, 14, 14, 14,
+              14, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  3,  3,  4,  6, 11, 14, 14, 14,
+              14, 13, 12, 11, 11, 10,  9,  8,  7,  6,  4,  4,  3,  3,  3,  2,  3,  3,  3,  3,  2,  2,  2,  2,  2,  3,  3,  5, 10, 14, 14, 14,
+              15, 13, 12, 11, 11, 10,  9,  8,  7,  6,  4,  4,  3,  3,  2,  2,  2,  3,  3,  3,  2,  2,  2,  2,  2,  2,  3,  5, 10, 13, 15, 16,
+              14, 13, 12, 11, 11, 10,  9,  7,  7,  5,  4,  3,  2,  2,  2,  2,  2,  2,  3,  2,  2,  1,  2,  2,  2,  2,  3,  6,  9, 13, 16, 16,
+              14, 13, 12, 11, 10, 10,  9,  7,  5,  5,  4,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2,  1,  1,  2,  2,  2,  4,  6,  8, 13, 16, 16,
+              14, 13, 13, 12, 10, 10,  9,  7,  5,  5,  4,  3,  2,  2,  1,  1,  1,  2,  2,  2,  2,  1,  1,  1,  2,  2,  4,  5,  8, 13, 15, 16,
+              14, 13, 13, 12, 10, 10,  9,  7,  5,  5,  4,  3,  2,  1,  1,  1,  1,  2,  2,  2,  2,  1,  1,  1,  1,  2,  3,  5,  8, 12, 14, 15,
+              14, 13, 12, 11, 10, 10,  9,  7,  6,  4,  3,  2,  1,  1,  1,  1,  1,  2,  2,  2,  2,  1,  1,  1,  2,  3,  3,  5,  8, 12, 15, 15,
+              14, 13, 12, 11, 11, 10,  9,  7,  6,  4,  3,  2,  1,  1,  1,  1,  1,  1,  2,  2,  1,  1,  1,  2,  2,  3,  4,  5,  8, 14, 16, 16,
+              14, 13, 13, 12, 12, 10,  9,  7,  6,  4,  3,  2,  1,  0,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5, 10, 15, 16, 17,
+              14, 13, 13, 13, 12, 12,  9,  7,  7,  4,  3,  2,  0,  0,  0,  1,  1,  1,  1,  2,  2,  2,  2,  2,  3,  3,  4,  6, 11, 15, 17, 17,
+              14, 14, 13, 12, 12, 12,  9,  8,  7,  5,  3,  2,  0,  0,  0,  0,  1,  1,  1,  2,  2,  2,  2,  3,  3,  4,  5,  7, 11, 15, 17, 17,
+              15, 14, 13, 13, 12, 12,  9,  8,  7,  5,  3,  2,  0,  0,  0,  0,  1,  1,  1,  2,  2,  2,  3,  3,  4,  5,  5,  7, 11, 15, 17, 17,
+              16, 14, 14, 13, 13, 12,  9,  8,  7,  5,  4,  2,  1,  0,  0,  0,  0,  1,  2,  2,  3,  3,  3,  3,  5,  5,  6,  8, 12, 16, 17, 17,
+              16, 15, 14, 14, 13, 12, 10,  9,  7,  6,  5,  4,  2,  1,  0,  0,  0,  1,  2,  3,  3,  3,  3,  5,  5,  6,  8,  9, 13, 17, 17, 17,
+              16, 15, 15, 14, 13, 12, 10, 10,  8,  7,  6,  5,  4,  3,  2,  0,  1,  1,  2,  3,  3,  4,  5,  5,  5,  6,  8, 11, 14, 17, 17, 17,
+              16, 16, 15, 15, 14, 13, 11, 10,  9,  8,  7,  6,  5,  5,  3,  2,  1,  1,  2,  3,  5,  5,  5,  5,  6,  7, 10, 13, 16, 17, 17, 17,
+              17, 17, 15, 15, 14, 13, 12, 11, 10,  9,  9,  7,  6,  6,  5,  3,  2,  2,  3,  4,  5,  5,  5,  6,  6,  9, 11, 14, 16, 18, 18, 18,
+              17, 17, 16, 15, 15, 14, 13, 12, 11, 10, 10,  9,  7,  7,  5,  4,  3,  2,  3,  4,  5,  5,  5,  6,  9, 10, 13, 15, 18, 18, 18, 18,
+              18, 17, 17, 16, 15, 15, 14, 12, 11, 11, 11,  9,  8,  7,  6,  5,  4,  3,  3,  4,  5,  5,  6,  6,  9, 11, 13, 17, 18, 18, 18, 18,
+              20, 19, 18, 18, 16, 16, 14, 13, 12, 11, 11, 10,  9,  8,  7,  5,  5,  4,  4,  5,  6,  6,  6,  7, 10, 11, 15, 18, 18, 18, 18, 18,
+              20, 20, 19, 18, 18, 17, 15, 14, 13, 13, 12, 11, 10,  9,  8,  6,  6,  5,  5,  6,  6,  7,  7,  8, 11, 12, 16, 18, 18, 18, 18, 18,
+              22, 21, 20, 19, 18, 17, 17, 17, 15, 15, 14, 13, 11, 10,  8,  7,  6,  6,  6,  6,  7,  7,  8,  8, 11, 14, 17, 18, 18, 18, 18, 17,
+              22, 22, 21, 20, 19, 18, 17, 17, 17, 16, 16, 15, 14, 12, 10,  8,  7,  6,  6,  7,  7,  8,  8, 10, 13, 16, 18, 18, 18, 18, 18, 16,
+              22, 22, 22, 21, 20, 19, 18, 17, 17, 17, 16, 16, 15, 15, 12, 10,  7,  6,  6,  7,  8,  8,  9, 11, 14, 16, 18, 18, 18, 18, 17, 16,
+             ]
+          b: [
+              13, 13, 13, 11, 10,  9,  9,  8,  7,  7,  7,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  9,  9,  4,  4,  7,  9,  9,  9, 10, 10,
+              13, 13, 12, 11, 10,  9,  9,  8,  7,  7,  7,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  3,  3,  7,  9,  9, 10, 10, 10,
+              13, 13, 12, 11, 10, 10,  9,  9,  7,  7,  6,  6,  6,  5,  5,  5,  5,  6,  6,  6,  5,  5,  5,  4,  3,  3,  6,  9, 10, 11, 11, 11,
+              13, 13, 12, 11, 10, 10,  9,  9,  8,  7,  6,  6,  5,  5,  4,  4,  4,  4,  5,  5,  5,  5,  5,  3,  2,  3,  5,  9, 10, 11, 11, 13,
+              13, 13, 12, 11, 11, 10,  9,  9,  8,  7,  6,  5,  5,  4,  4,  3,  3,  4,  4,  5,  5,  5,  3,  2,  2,  3,  5,  8, 11, 11, 12, 13,
+              13, 12, 12, 11, 11, 10,  9,  8,  8,  7,  5,  5,  4,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  3,  7, 11, 11, 11, 11,
+              13, 13, 12, 11, 11, 10,  9,  8,  8,  7,  5,  4,  4,  3,  3,  3,  3,  3,  3,  2,  2,  3,  2,  2,  2,  2,  3,  6, 11, 11, 11, 11,
+              13, 13, 12, 11, 11, 11,  9,  8,  7,  6,  5,  4,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  5, 10, 12, 12, 11,
+              13, 13, 13, 11, 11, 11, 10,  8,  7,  6,  5,  4,  3,  3,  3,  2,  2,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  4,  9, 12, 12, 12,
+              14, 13, 13, 12, 11, 11, 10,  8,  7,  6,  4,  4,  3,  2,  2,  2,  2,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  4,  9, 12, 13, 14,
+              13, 13, 12, 12, 11, 11, 10,  8,  7,  6,  4,  3,  2,  2,  2,  1,  2,  3,  3,  2,  2,  1,  2,  2,  2,  2,  2,  4,  8, 12, 14, 14,
+              13, 13, 12, 12, 11, 11, 11,  8,  7,  6,  5,  3,  2,  2,  1,  1,  2,  3,  3,  2,  2,  2,  2,  2,  2,  2,  3,  4,  8, 12, 14, 14,
+              13, 13, 12, 12, 12, 11, 11,  8,  7,  6,  5,  3,  2,  1,  1,  1,  1,  2,  3,  3,  2,  2,  2,  2,  2,  3,  3,  4,  8, 12, 14, 14,
+              13, 13, 13, 12, 12, 11, 11,  8,  6,  6,  5,  3,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  3,  4,  7, 12, 13, 14,
+              13, 13, 13, 12, 12, 11, 10,  8,  6,  5,  4,  2,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  3,  3,  4,  5,  7, 12, 14, 14,
+              14, 14, 13, 13, 13, 11, 10,  8,  7,  5,  4,  2,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  3,  3,  4,  4,  5,  8, 14, 16, 16,
+              14, 14, 13, 13, 13, 12, 11,  9,  7,  5,  4,  2,  1,  0,  0,  0,  1,  1,  2,  2,  2,  2,  3,  3,  4,  4,  4,  6, 10, 15, 16, 16,
+              15, 14, 14, 14, 15, 15, 11,  9,  8,  5,  4,  2,  1,  0,  0,  0,  1,  1,  1,  2,  2,  3,  3,  4,  4,  5,  5,  7, 11, 15, 16, 17,
+              15, 15, 14, 14, 15, 15, 12, 10,  9,  6,  4,  2,  1,  0,  0,  0,  1,  1,  1,  2,  3,  3,  3,  4,  5,  5,  6,  7, 11, 15, 16, 16,
+              15, 15, 15, 15, 15, 15, 12, 10,  9,  6,  5,  2,  1,  0,  0,  0,  1,  1,  1,  3,  3,  3,  4,  4,  5,  6,  6,  7, 11, 15, 16, 17,
+              16, 16, 15, 16, 15, 15, 12, 11, 10,  7,  5,  3,  2,  1,  0,  0,  1,  1,  2,  3,  4,  4,  4,  5,  6,  6,  7,  9, 12, 16, 16, 16,
+              16, 16, 16, 16, 16, 15, 13, 12, 10,  9,  6,  5,  3,  2,  1,  1,  1,  2,  3,  4,  4,  4,  5,  6,  6,  7,  8,  9, 14, 16, 17, 16,
+              16, 16, 16, 16, 16, 15, 14, 12, 11, 10,  8,  6,  5,  4,  2,  1,  1,  2,  3,  4,  5,  5,  6,  6,  6,  7,  9, 12, 15, 16, 16, 16,
+              17, 17, 18, 17, 16, 16, 14, 13, 12, 11,  9,  8,  6,  5,  4,  2,  2,  2,  3,  4,  6,  6,  6,  6,  7,  8, 11, 14, 16, 17, 16, 16,
+              17, 17, 18, 18, 17, 16, 16, 14, 13, 12, 11,  9,  8,  7,  5,  4,  2,  3,  4,  6,  6,  6,  6,  7,  8, 10, 12, 15, 17, 17, 17, 16,
+              18, 18, 18, 18, 18, 17, 16, 15, 14, 13, 12, 11,  9,  8,  6,  5,  4,  4,  4,  5,  6,  6,  7,  7, 10, 11, 14, 16, 17, 17, 17, 17,
+              18, 18, 19, 19, 19, 18, 17, 16, 15, 14, 14, 11, 10,  9,  7,  6,  6,  5,  5,  5,  6,  7,  7,  7, 10, 12, 14, 17, 17, 17, 17, 17,
+              20, 20, 20, 20, 20, 19, 18, 17, 16, 15, 14, 13, 11, 10,  9,  7,  6,  6,  6,  6,  7,  7,  7,  8, 11, 12, 15, 18, 18, 17, 17, 16,
+              22, 21, 21, 21, 21, 21, 20, 19, 17, 16, 16, 14, 13, 11, 10,  8,  7,  7,  7,  7,  8,  8,  8,  9, 11, 13, 17, 18, 18, 17, 16, 15,
+              23, 22, 22, 22, 22, 21, 21, 20, 19, 19, 18, 16, 14, 13, 11,  9,  8,  8,  8,  8,  8,  8,  9, 10, 12, 15, 18, 18, 18, 17, 16, 14,
+              23, 24, 24, 23, 23, 22, 22, 21, 21, 20, 20, 19, 18, 15, 13, 11,  9,  8,  8,  8,  9,  9, 10, 11, 13, 16, 18, 18, 17, 17, 15, 14,
+              24, 24, 24, 24, 24, 23, 22, 22, 22, 22, 20, 20, 19, 18, 15, 13, 10,  9,  9,  9,  9, 10, 11, 12, 15, 17, 18, 18, 17, 16, 15, 13,
+             ]
+...
diff --git a/src/ipa/mali-c55/data/meson.build b/src/ipa/mali-c55/data/meson.build
index 88109d17..8a5fdd36 100644
--- a/src/ipa/mali-c55/data/meson.build
+++ b/src/ipa/mali-c55/data/meson.build
@@ -1,6 +1,7 @@ 
 # SPDX-License-Identifier: CC0-1.0
 
 conf_files = files([
+    'imx415.yaml',
     'uncalibrated.yaml'
 ])