From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80682C27C76 for ; Sun, 22 Jan 2023 14:57:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229960AbjAVO5m (ORCPT ); Sun, 22 Jan 2023 09:57:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54932 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230007AbjAVO5l (ORCPT ); Sun, 22 Jan 2023 09:57:41 -0500 X-Greylist: delayed 448 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sun, 22 Jan 2023 06:57:36 PST Received: from proxmox1.postmarketos.org (proxmox1.postmarketos.org [213.239.216.189]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 14E461A4AB; Sun, 22 Jan 2023 06:57:36 -0800 (PST) Received: from shock.lan (2-248-191-197-no36.tbcn.telia.com [2.248.191.197]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by proxmox1.postmarketos.org (Postfix) with ESMTPSA id 4EF221403FD; Sun, 22 Jan 2023 14:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=postmarketos.org; s=donut; t=1674399020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=e4+chmGhtfcgeDE2xesCbIR2C1I5TI+CP2yomJNlyFo=; b=TUDJqCj1csOYBG5aG4mztGO+lYCtSfb/RLxsZR4hi2nH+thcmbXALy08YkTIBDvWNKUVfc O/LpZk7cac+cUQZmvPKyqD6JO2ayEWegSFT9b5d1rqibNJsGZzdT7xP05NuolytxQ0b0++ hCELBO9/Jov8JXDCJWA7GlaUrzJF9y8= From: Stefan Hansson To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Arnd Bergmann , Olof Johansson , soc@kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, matti.lehtimaki@gmail.com, Stefan Hansson Subject: [PATCH 1/3] ARM: dts: qcom: samsung-matisse-common: Add initial common device tree Date: Sun, 22 Jan 2023 15:47:48 +0100 Message-Id: <20230122144749.87597-2-newbyte@postmarketos.org> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230122144749.87597-1-newbyte@postmarketos.org> References: <20230122144749.87597-1-newbyte@postmarketos.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org According to the dts from the kernel source code released by Samsung, matissewifi and matisselte only have minor differences in hardware, so use a shared dtsi to reduce duplicated code. Additionally, this should make adding support for matisse3g easier should someone want to do that at a later point. As such, add a common device tree for all matisse devices by Samsung based on the matissewifi dts. Support for matisselte will be introduced in a later patch in this series and will use the common dtsi as well. Signed-off-by: Stefan Hansson --- .../dts/qcom-apq8026-samsung-matisse-wifi.dts | 511 +----------------- .../qcom-msm8226-samsung-matisse-common.dtsi | 510 +++++++++++++++++ 2 files changed, 522 insertions(+), 499 deletions(-) create mode 100644 arch/arm/boot/dts/qcom-msm8226-samsung-matisse-common.dtsi diff --git a/arch/arm/boot/dts/qcom-apq8026-samsung-matisse-wifi.dts b/arch/arm/boot/dts/qcom-apq8026-samsung-matisse-wifi.dts index 91b860e24681..2b03e68c8b72 100644 --- a/arch/arm/boot/dts/qcom-apq8026-samsung-matisse-wifi.dts +++ b/arch/arm/boot/dts/qcom-apq8026-samsung-matisse-wifi.dts @@ -5,516 +5,29 @@ /dts-v1/; -#include -#include "qcom-msm8226.dtsi" -#include "qcom-pm8226.dtsi" - -/delete-node/ &adsp_region; -/delete-node/ &smem_region; +#include "qcom-msm8226-samsung-matisse-common.dtsi" / { model = "Samsung Galaxy Tab 4 10.1"; compatible = "samsung,matisse-wifi", "qcom,apq8026"; chassis-type = "tablet"; - - aliases { - mmc0 = &sdhc_1; /* SDC1 eMMC slot */ - mmc1 = &sdhc_2; /* SDC2 SD card slot */ - display0 = &framebuffer0; - }; - - chosen { - #address-cells = <1>; - #size-cells = <1>; - ranges; - - stdout-path = "display0"; - - framebuffer0: framebuffer@3200000 { - compatible = "simple-framebuffer"; - reg = <0x03200000 0x800000>; - width = <1280>; - height = <800>; - stride = <(1280 * 3)>; - format = "r8g8b8"; - }; - }; - - gpio-hall-sensor { - compatible = "gpio-keys"; - - event-hall-sensor { - label = "Hall Effect Sensor"; - gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>; - interrupts = <&tlmm 110 IRQ_TYPE_EDGE_FALLING>; - linux,input-type = ; - linux,code = ; - debounce-interval = <15>; - wakeup-source; - }; - }; - - gpio-keys { - compatible = "gpio-keys"; - autorepeat; - - key-home { - label = "Home"; - gpios = <&tlmm 108 GPIO_ACTIVE_LOW>; - linux,code = ; - debounce-interval = <15>; - }; - - key-volume-down { - label = "Volume Down"; - gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; - linux,code = ; - debounce-interval = <15>; - }; - - key-volume-up { - label = "Volume Up"; - gpios = <&tlmm 106 GPIO_ACTIVE_LOW>; - linux,code = ; - debounce-interval = <15>; - }; - }; - - i2c-backlight { - compatible = "i2c-gpio"; - sda-gpios = <&tlmm 20 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; - scl-gpios = <&tlmm 21 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; - - pinctrl-0 = <&backlight_i2c_default_state>; - pinctrl-names = "default"; - - i2c-gpio,delay-us = <4>; - - #address-cells = <1>; - #size-cells = <0>; - - backlight@2c { - compatible = "ti,lp8556"; - reg = <0x2c>; - - dev-ctrl = /bits/ 8 <0x80>; - init-brt = /bits/ 8 <0x3f>; - pwm-period = <100000>; - - pwms = <&backlight_pwm 0 100000>; - pwm-names = "lp8556"; - - rom-a0h { - rom-addr = /bits/ 8 <0xa0>; - rom-val = /bits/ 8 <0x44>; - }; - - rom-a1h { - rom-addr = /bits/ 8 <0xa1>; - rom-val = /bits/ 8 <0x6c>; - }; - - rom-a5h { - rom-addr = /bits/ 8 <0xa5>; - rom-val = /bits/ 8 <0x24>; - }; - }; - }; - - backlight_pwm: pwm { - compatible = "clk-pwm"; - #pwm-cells = <2>; - clocks = <&mmcc CAMSS_GP0_CLK>; - pinctrl-0 = <&backlight_pwm_default_state>; - pinctrl-names = "default"; - }; - - reg_tsp_1p8v: regulator-tsp-1p8v { - compatible = "regulator-fixed"; - regulator-name = "tsp_1p8v"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - - gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>; - enable-active-high; - - pinctrl-names = "default"; - pinctrl-0 = <&tsp_en_default_state>; - }; - - reg_tsp_3p3v: regulator-tsp-3p3v { - compatible = "regulator-fixed"; - regulator-name = "tsp_3p3v"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - - gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>; - enable-active-high; - - pinctrl-names = "default"; - pinctrl-0 = <&tsp_en1_default_state>; - }; - - reserved-memory { - #address-cells = <1>; - #size-cells = <1>; - ranges; - - framebuffer@3200000 { - reg = <0x03200000 0x800000>; - no-map; - }; - - mpss@8400000 { - reg = <0x08400000 0x1f00000>; - no-map; - }; - - mba@a300000 { - reg = <0x0a300000 0x100000>; - no-map; - }; - - reserved@cb00000 { - reg = <0x0cb00000 0x700000>; - no-map; - }; - - wcnss@d200000 { - reg = <0x0d200000 0x700000>; - no-map; - }; - - adsp_region: adsp@d900000 { - reg = <0x0d900000 0x1800000>; - no-map; - }; - - venus@f100000 { - reg = <0x0f100000 0x500000>; - no-map; - }; - - smem_region: smem@fa00000 { - reg = <0x0fa00000 0x100000>; - no-map; - }; - - reserved@fb00000 { - reg = <0x0fb00000 0x260000>; - no-map; - }; - - rfsa@fd60000 { - reg = <0x0fd60000 0x20000>; - no-map; - }; - - rmtfs@fd80000 { - compatible = "qcom,rmtfs-mem"; - reg = <0x0fd80000 0x180000>; - no-map; - - qcom,client-id = <1>; - }; - }; }; -&adsp { - status = "okay"; +&pm8226_l3 { + regulator-min-microvolt = <750000>; + regulator-max-microvolt = <1337500>; + regulator-always-on; }; -&blsp1_i2c2 { - status = "okay"; - - accelerometer@1d { - compatible = "st,lis2hh12"; - reg = <0x1d>; - - interrupt-parent = <&tlmm>; - interrupts = <54 IRQ_TYPE_LEVEL_HIGH>; - - pinctrl-names = "default"; - pinctrl-0 = <&accel_int_default_state>; - - st,drdy-int-pin = <1>; - - vdd-supply = <&pm8226_l19>; - vddio-supply = <&pm8226_lvs1>; - }; -}; - -&blsp1_i2c4 { - status = "okay"; - - muic: usb-switch@25 { - compatible = "siliconmitus,sm5502-muic"; - reg = <0x25>; - - interrupt-parent = <&tlmm>; - interrupts = <67 IRQ_TYPE_EDGE_FALLING>; - - pinctrl-names = "default"; - pinctrl-0 = <&muic_int_default_state>; - }; -}; - -&blsp1_i2c5 { - status = "okay"; - - touchscreen@4a { - compatible = "atmel,maxtouch"; - reg = <0x4a>; - - interrupt-parent = <&tlmm>; - interrupts = <17 IRQ_TYPE_LEVEL_LOW>; - - pinctrl-names = "default"; - pinctrl-0 = <&tsp_int_rst_default_state>; - - reset-gpios = <&pm8226_gpios 6 GPIO_ACTIVE_LOW>; - - vdd-supply = <®_tsp_1p8v>; - vdda-supply = <®_tsp_3p3v>; - }; -}; - -&rpm_requests { - regulators { - compatible = "qcom,rpm-pm8226-regulators"; - - pm8226_s3: s3 { - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1300000>; - }; - - pm8226_s4: s4 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - - pm8226_s5: s5 { - regulator-min-microvolt = <1150000>; - regulator-max-microvolt = <1150000>; - }; - - pm8226_l1: l1 { - regulator-min-microvolt = <1225000>; - regulator-max-microvolt = <1225000>; - }; - - pm8226_l2: l2 { - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; - }; - - pm8226_l3: l3 { - regulator-min-microvolt = <750000>; - regulator-max-microvolt = <1337500>; - regulator-always-on; - }; - - pm8226_l4: l4 { - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; - }; - - pm8226_l5: l5 { - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1200000>; - }; - - pm8226_l6: l6 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-always-on; - }; - - pm8226_l7: l7 { - regulator-min-microvolt = <1850000>; - regulator-max-microvolt = <1850000>; - }; - - pm8226_l8: l8 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-always-on; - }; - - pm8226_l9: l9 { - regulator-min-microvolt = <2050000>; - regulator-max-microvolt = <2050000>; - }; - - pm8226_l10: l10 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - - pm8226_l12: l12 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - - pm8226_l14: l14 { - regulator-min-microvolt = <2750000>; - regulator-max-microvolt = <2750000>; - }; - - pm8226_l15: l15 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - }; - - pm8226_l16: l16 { - regulator-min-microvolt = <3000000>; - regulator-max-microvolt = <3350000>; - }; - - pm8226_l17: l17 { - regulator-min-microvolt = <2950000>; - regulator-max-microvolt = <2950000>; - - regulator-system-load = <200000>; - regulator-allow-set-load; - regulator-always-on; - }; - - pm8226_l18: l18 { - regulator-min-microvolt = <2950000>; - regulator-max-microvolt = <2950000>; - }; - - pm8226_l19: l19 { - regulator-min-microvolt = <2850000>; - regulator-max-microvolt = <3000000>; - }; - - pm8226_l20: l20 { - regulator-min-microvolt = <3075000>; - regulator-max-microvolt = <3075000>; - }; - - pm8226_l21: l21 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <2950000>; - }; - - pm8226_l22: l22 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3000000>; - }; - - pm8226_l23: l23 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - }; - - pm8226_l24: l24 { - regulator-min-microvolt = <1300000>; - regulator-max-microvolt = <1350000>; - }; - - pm8226_l25: l25 { - regulator-min-microvolt = <1775000>; - regulator-max-microvolt = <2125000>; - }; - - pm8226_l26: l26 { - regulator-min-microvolt = <1225000>; - regulator-max-microvolt = <1300000>; - }; - - pm8226_l27: l27 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - }; - - pm8226_l28: l28 { - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <2950000>; - }; - - pm8226_lvs1: lvs1 {}; - }; -}; - -&sdhc_1 { - vmmc-supply = <&pm8226_l17>; - vqmmc-supply = <&pm8226_l6>; - - bus-width = <8>; - non-removable; - - status = "okay"; -}; - -&sdhc_2 { - vmmc-supply = <&pm8226_l18>; - vqmmc-supply = <&pm8226_l21>; - - bus-width = <4>; - cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; - - status = "okay"; -}; - -&tlmm { - accel_int_default_state: accel-int-default-state { - pins = "gpio54"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - }; - - backlight_i2c_default_state: backlight-i2c-default-state { - pins = "gpio20", "gpio21"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - }; - - backlight_pwm_default_state: backlight-pwm-default-state { - pins = "gpio33"; - function = "gp0_clk"; - }; - - muic_int_default_state: muic-int-default-state { - pins = "gpio67"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - }; - - tsp_en_default_state: tsp-en-default-state { - pins = "gpio31"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - }; - - tsp_en1_default_state: tsp-en1-default-state { - pins = "gpio73"; - function = "gpio"; - drive-strength = <2>; - bias-disable; - }; - - tsp_int_rst_default_state: tsp-int-rst-default-state { - pins = "gpio17"; - function = "gpio"; - drive-strength = <10>; - bias-pull-up; - }; +&pm8226_s4 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; }; -&usb { - extcon = <&muic>, <&muic>; - status = "okay"; +®_tsp_3p3v { + gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>; }; -&usb_hs_phy { - extcon = <&muic>; - v1p8-supply = <&pm8226_l10>; - v3p3-supply = <&pm8226_l20>; +&tsp_en1_default_state { + pins = "gpio73"; }; diff --git a/arch/arm/boot/dts/qcom-msm8226-samsung-matisse-common.dtsi b/arch/arm/boot/dts/qcom-msm8226-samsung-matisse-common.dtsi new file mode 100644 index 000000000000..efabc03e5db5 --- /dev/null +++ b/arch/arm/boot/dts/qcom-msm8226-samsung-matisse-common.dtsi @@ -0,0 +1,510 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022, Matti Lehtimäki + * Copyright (c) 2023, Stefan Hansson + */ + +#include +#include "qcom-msm8226.dtsi" +#include "qcom-pm8226.dtsi" + +/delete-node/ &adsp_region; +/delete-node/ &smem_region; + +/ { + aliases { + mmc0 = &sdhc_1; /* SDC1 eMMC slot */ + mmc1 = &sdhc_2; /* SDC2 SD card slot */ + display0 = &framebuffer0; + }; + + chosen { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + stdout-path = "display0"; + + framebuffer0: framebuffer@3200000 { + compatible = "simple-framebuffer"; + reg = <0x03200000 0x800000>; + width = <1280>; + height = <800>; + stride = <(1280 * 3)>; + format = "r8g8b8"; + }; + }; + + gpio-hall-sensor { + compatible = "gpio-keys"; + + event-hall-sensor { + label = "Hall Effect Sensor"; + gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>; + interrupts = <&tlmm 110 IRQ_TYPE_EDGE_FALLING>; + linux,input-type = ; + linux,code = ; + debounce-interval = <15>; + wakeup-source; + }; + }; + + gpio-keys { + compatible = "gpio-keys"; + autorepeat; + + key-home { + label = "Home"; + gpios = <&tlmm 108 GPIO_ACTIVE_LOW>; + linux,code = ; + debounce-interval = <15>; + }; + + key-volume-down { + label = "Volume Down"; + gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; + linux,code = ; + debounce-interval = <15>; + }; + + key-volume-up { + label = "Volume Up"; + gpios = <&tlmm 106 GPIO_ACTIVE_LOW>; + linux,code = ; + debounce-interval = <15>; + }; + }; + + i2c-backlight { + compatible = "i2c-gpio"; + sda-gpios = <&tlmm 20 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; + scl-gpios = <&tlmm 21 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; + + pinctrl-0 = <&backlight_i2c_default_state>; + pinctrl-names = "default"; + + i2c-gpio,delay-us = <4>; + + #address-cells = <1>; + #size-cells = <0>; + + backlight@2c { + compatible = "ti,lp8556"; + reg = <0x2c>; + + dev-ctrl = /bits/ 8 <0x80>; + init-brt = /bits/ 8 <0x3f>; + pwm-period = <100000>; + + pwms = <&backlight_pwm 0 100000>; + pwm-names = "lp8556"; + + rom-a0h { + rom-addr = /bits/ 8 <0xa0>; + rom-val = /bits/ 8 <0x44>; + }; + + rom-a1h { + rom-addr = /bits/ 8 <0xa1>; + rom-val = /bits/ 8 <0x6c>; + }; + + rom-a5h { + rom-addr = /bits/ 8 <0xa5>; + rom-val = /bits/ 8 <0x24>; + }; + }; + }; + + backlight_pwm: pwm { + compatible = "clk-pwm"; + #pwm-cells = <2>; + clocks = <&mmcc CAMSS_GP0_CLK>; + pinctrl-0 = <&backlight_pwm_default_state>; + pinctrl-names = "default"; + }; + + reg_tsp_1p8v: regulator-tsp-1p8v { + compatible = "regulator-fixed"; + regulator-name = "tsp_1p8v"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + + gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 = <&tsp_en_default_state>; + pinctrl-names = "default"; + }; + + reg_tsp_3p3v: regulator-tsp-3p3v { + compatible = "regulator-fixed"; + regulator-name = "tsp_3p3v"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + + /* GPIO is board-specific */ + enable-active-high; + + pinctrl-0 = <&tsp_en1_default_state>; + pinctrl-names = "default"; + }; + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + framebuffer@3200000 { + reg = <0x03200000 0x800000>; + no-map; + }; + + mpss@8400000 { + reg = <0x08400000 0x1f00000>; + no-map; + }; + + mba@a300000 { + reg = <0x0a300000 0x100000>; + no-map; + }; + + reserved@cb00000 { + reg = <0x0cb00000 0x700000>; + no-map; + }; + + wcnss@d200000 { + reg = <0x0d200000 0x700000>; + no-map; + }; + + adsp_region: adsp@d900000 { + reg = <0x0d900000 0x1800000>; + no-map; + }; + + venus@f100000 { + reg = <0x0f100000 0x500000>; + no-map; + }; + + smem_region: smem@fa00000 { + reg = <0x0fa00000 0x100000>; + no-map; + }; + + reserved@fb00000 { + reg = <0x0fb00000 0x260000>; + no-map; + }; + + rfsa@fd60000 { + reg = <0x0fd60000 0x20000>; + no-map; + }; + + rmtfs@fd80000 { + compatible = "qcom,rmtfs-mem"; + reg = <0x0fd80000 0x180000>; + no-map; + + qcom,client-id = <1>; + }; + }; +}; + +&adsp { + status = "okay"; +}; + +&blsp1_i2c2 { + status = "okay"; + + accelerometer@1d { + compatible = "st,lis2hh12"; + reg = <0x1d>; + + interrupt-parent = <&tlmm>; + interrupts = <54 IRQ_TYPE_LEVEL_HIGH>; + + pinctrl-0 = <&accel_int_default_state>; + pinctrl-names = "default"; + + st,drdy-int-pin = <1>; + + vdd-supply = <&pm8226_l19>; + vddio-supply = <&pm8226_lvs1>; + }; +}; + +&blsp1_i2c4 { + status = "okay"; + + muic: usb-switch@25 { + compatible = "siliconmitus,sm5502-muic"; + reg = <0x25>; + + interrupt-parent = <&tlmm>; + interrupts = <67 IRQ_TYPE_EDGE_FALLING>; + + pinctrl-0 = <&muic_int_default_state>; + pinctrl-names = "default"; + }; +}; + +&blsp1_i2c5 { + status = "okay"; + + touchscreen@4a { + compatible = "atmel,maxtouch"; + reg = <0x4a>; + + interrupt-parent = <&tlmm>; + interrupts = <17 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-0 = <&tsp_int_rst_default_state>; + pinctrl-names = "default"; + + reset-gpios = <&pm8226_gpios 6 GPIO_ACTIVE_LOW>; + + vdd-supply = <®_tsp_1p8v>; + vdda-supply = <®_tsp_3p3v>; + }; +}; + +&rpm_requests { + regulators { + compatible = "qcom,rpm-pm8226-regulators"; + + pm8226_s3: s3 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1300000>; + }; + + /* Voltage constraints are board-specific */ + pm8226_s4: s4 {}; + + pm8226_s5: s5 { + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; + }; + + pm8226_l1: l1 { + regulator-min-microvolt = <1225000>; + regulator-max-microvolt = <1225000>; + }; + + pm8226_l2: l2 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + /* Voltage constraints are board-specific */ + pm8226_l3: l3 {}; + + pm8226_l4: l4 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + pm8226_l5: l5 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + }; + + pm8226_l6: l6 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; + + pm8226_l7: l7 { + regulator-min-microvolt = <1850000>; + regulator-max-microvolt = <1850000>; + }; + + pm8226_l8: l8 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; + + pm8226_l9: l9 { + regulator-min-microvolt = <2050000>; + regulator-max-microvolt = <2050000>; + }; + + pm8226_l10: l10 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + pm8226_l12: l12 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + pm8226_l14: l14 { + regulator-min-microvolt = <2750000>; + regulator-max-microvolt = <2750000>; + }; + + pm8226_l15: l15 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + }; + + pm8226_l16: l16 { + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3350000>; + }; + + pm8226_l17: l17 { + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <2950000>; + + regulator-system-load = <200000>; + regulator-allow-set-load; + regulator-always-on; + }; + + pm8226_l18: l18 { + regulator-min-microvolt = <2950000>; + regulator-max-microvolt = <2950000>; + }; + + pm8226_l19: l19 { + regulator-min-microvolt = <2850000>; + regulator-max-microvolt = <3000000>; + }; + + pm8226_l20: l20 { + regulator-min-microvolt = <3075000>; + regulator-max-microvolt = <3075000>; + }; + + pm8226_l21: l21 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2950000>; + }; + + pm8226_l22: l22 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3000000>; + }; + + pm8226_l23: l23 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + }; + + pm8226_l24: l24 { + regulator-min-microvolt = <1300000>; + regulator-max-microvolt = <1350000>; + }; + + pm8226_l25: l25 { + regulator-min-microvolt = <1775000>; + regulator-max-microvolt = <2125000>; + }; + + pm8226_l26: l26 { + regulator-min-microvolt = <1225000>; + regulator-max-microvolt = <1300000>; + }; + + pm8226_l27: l27 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + pm8226_l28: l28 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <2950000>; + }; + + pm8226_lvs1: lvs1 {}; + }; +}; + +&sdhc_1 { + vmmc-supply = <&pm8226_l17>; + vqmmc-supply = <&pm8226_l6>; + + bus-width = <8>; + non-removable; + + status = "okay"; +}; + +&sdhc_2 { + vmmc-supply = <&pm8226_l18>; + vqmmc-supply = <&pm8226_l21>; + + bus-width = <4>; + cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + + status = "okay"; +}; + +&tlmm { + accel_int_default_state: accel-int-default-state { + pins = "gpio54"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + backlight_i2c_default_state: backlight-i2c-default-state { + pins = "gpio20", "gpio21"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + backlight_pwm_default_state: backlight-pwm-default-state { + pins = "gpio33"; + function = "gp0_clk"; + }; + + muic_int_default_state: muic-int-default-state { + pins = "gpio67"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + tsp_en_default_state: tsp-en-default-state { + pins = "gpio31"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + tsp_en1_default_state: tsp-en1-default-state { + /* pins is board-specific */ + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + tsp_int_rst_default_state: tsp-int-rst-default-state { + pins = "gpio17"; + function = "gpio"; + drive-strength = <10>; + bias-pull-up; + }; +}; + +&usb { + extcon = <&muic>, <&muic>; + status = "okay"; +}; + +&usb_hs_phy { + extcon = <&muic>; + v1p8-supply = <&pm8226_l10>; + v3p3-supply = <&pm8226_l20>; +}; -- 2.39.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A4A9FC27C76 for ; Sun, 22 Jan 2023 14:53:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=op5/4OR77LoVErPq+iUYh6k2nGJtBYwmvs/nAoT9z6g=; b=g2ZEq228rzR+4j RvtV3VprGdgNeYcDx4G421hSmGnAvyDQH0jyAZbQlWqQuzNg4XXfuUodwS/plhdkrD71oHbP/ebL3 SGc36Nr61JzqJEp+4nTKso+GhvnyPAX7cJTcMRmA+3CY9OX9eMoh5srfc03sO73mcwOX27kdQdrgf LVJO3K4rdAjFcXbMC7StvgibOZIiZ0QkPLayPBDhKTM6b1X2pLqBKZIEXO3hPhdcmCGeRDn5+Flbe dvazHHe/7rVk8wkl5s6n9U1w14ECjvSbJRdt0HPDiHD2YO86AhlzKhppG0qD+ZKD8XltZ3+5Mrwpc UXKny+1M+U3X0FN/s1/w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pJbi1-00FRPv-E8; Sun, 22 Jan 2023 14:52:37 +0000 Received: from proxmox1.postmarketos.org ([213.239.216.189]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pJbhp-00FRLh-5c for linux-arm-kernel@lists.infradead.org; Sun, 22 Jan 2023 14:52:28 +0000 Received: from shock.lan (2-248-191-197-no36.tbcn.telia.com [2.248.191.197]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by proxmox1.postmarketos.org (Postfix) with ESMTPSA id 4EF221403FD; Sun, 22 Jan 2023 14:50:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=postmarketos.org; s=donut; t=1674399020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=e4+chmGhtfcgeDE2xesCbIR2C1I5TI+CP2yomJNlyFo=; b=TUDJqCj1csOYBG5aG4mztGO+lYCtSfb/RLxsZR4hi2nH+thcmbXALy08YkTIBDvWNKUVfc O/LpZk7cac+cUQZmvPKyqD6JO2ayEWegSFT9b5d1rqibNJsGZzdT7xP05NuolytxQ0b0++ hCELBO9/Jov8JXDCJWA7GlaUrzJF9y8= From: Stefan Hansson To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Arnd Bergmann , Olof Johansson , soc@kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, matti.lehtimaki@gmail.com, Stefan Hansson Subject: [PATCH 1/3] ARM: dts: qcom: samsung-matisse-common: Add initial common device tree Date: Sun, 22 Jan 2023 15:47:48 +0100 Message-Id: <20230122144749.87597-2-newbyte@postmarketos.org> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230122144749.87597-1-newbyte@postmarketos.org> References: <20230122144749.87597-1-newbyte@postmarketos.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230122_065225_567134_39DF8F1D X-CRM114-Status: GOOD ( 17.77 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QWNjb3JkaW5nIHRvIHRoZSBkdHMgZnJvbSB0aGUga2VybmVsIHNvdXJjZSBjb2RlIHJlbGVhc2Vk IGJ5IFNhbXN1bmcsCm1hdGlzc2V3aWZpIGFuZCBtYXRpc3NlbHRlIG9ubHkgaGF2ZSBtaW5vciBk aWZmZXJlbmNlcyBpbiBoYXJkd2FyZSwgc28KdXNlIGEgc2hhcmVkIGR0c2kgdG8gcmVkdWNlIGR1 cGxpY2F0ZWQgY29kZS4gQWRkaXRpb25hbGx5LCB0aGlzIHNob3VsZAptYWtlIGFkZGluZyBzdXBw b3J0IGZvciBtYXRpc3NlM2cgZWFzaWVyIHNob3VsZCBzb21lb25lIHdhbnQgdG8gZG8gdGhhdAph dCBhIGxhdGVyIHBvaW50LgoKQXMgc3VjaCwgYWRkIGEgY29tbW9uIGRldmljZSB0cmVlIGZvciBh bGwgbWF0aXNzZSBkZXZpY2VzIGJ5IFNhbXN1bmcKYmFzZWQgb24gdGhlIG1hdGlzc2V3aWZpIGR0 cy4gU3VwcG9ydCBmb3IgbWF0aXNzZWx0ZSB3aWxsIGJlIGludHJvZHVjZWQKaW4gYSBsYXRlciBw YXRjaCBpbiB0aGlzIHNlcmllcyBhbmQgd2lsbCB1c2UgdGhlIGNvbW1vbiBkdHNpIGFzIHdlbGwu CgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gSGFuc3NvbiA8bmV3Ynl0ZUBwb3N0bWFya2V0b3Mub3Jn PgotLS0KIC4uLi9kdHMvcWNvbS1hcHE4MDI2LXNhbXN1bmctbWF0aXNzZS13aWZpLmR0cyB8IDUx MSArLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9xY29tLW1zbTgyMjYtc2Ftc3VuZy1tYXRpc3NlLWNv bW1vbi5kdHNpICB8IDUxMCArKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA1MjIg aW5zZXJ0aW9ucygrKSwgNDk5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gv YXJtL2Jvb3QvZHRzL3Fjb20tbXNtODIyNi1zYW1zdW5nLW1hdGlzc2UtY29tbW9uLmR0c2kKCmRp ZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9xY29tLWFwcTgwMjYtc2Ftc3VuZy1tYXRpc3Nl LXdpZmkuZHRzIGIvYXJjaC9hcm0vYm9vdC9kdHMvcWNvbS1hcHE4MDI2LXNhbXN1bmctbWF0aXNz ZS13aWZpLmR0cwppbmRleCA5MWI4NjBlMjQ2ODEuLjJiMDNlNjhjOGI3MiAxMDA2NDQKLS0tIGEv YXJjaC9hcm0vYm9vdC9kdHMvcWNvbS1hcHE4MDI2LXNhbXN1bmctbWF0aXNzZS13aWZpLmR0cwor KysgYi9hcmNoL2FybS9ib290L2R0cy9xY29tLWFwcTgwMjYtc2Ftc3VuZy1tYXRpc3NlLXdpZmku ZHRzCkBAIC01LDUxNiArNSwyOSBAQAogCiAvZHRzLXYxLzsKIAotI2luY2x1ZGUgPGR0LWJpbmRp bmdzL2lucHV0L2lucHV0Lmg+Ci0jaW5jbHVkZSAicWNvbS1tc204MjI2LmR0c2kiCi0jaW5jbHVk ZSAicWNvbS1wbTgyMjYuZHRzaSIKLQotL2RlbGV0ZS1ub2RlLyAmYWRzcF9yZWdpb247Ci0vZGVs ZXRlLW5vZGUvICZzbWVtX3JlZ2lvbjsKKyNpbmNsdWRlICJxY29tLW1zbTgyMjYtc2Ftc3VuZy1t YXRpc3NlLWNvbW1vbi5kdHNpIgogCiAvIHsKIAltb2RlbCA9ICJTYW1zdW5nIEdhbGF4eSBUYWIg NCAxMC4xIjsKIAljb21wYXRpYmxlID0gInNhbXN1bmcsbWF0aXNzZS13aWZpIiwgInFjb20sYXBx ODAyNiI7CiAJY2hhc3Npcy10eXBlID0gInRhYmxldCI7Ci0KLQlhbGlhc2VzIHsKLQkJbW1jMCA9 ICZzZGhjXzE7IC8qIFNEQzEgZU1NQyBzbG90ICovCi0JCW1tYzEgPSAmc2RoY18yOyAvKiBTREMy IFNEIGNhcmQgc2xvdCAqLwotCQlkaXNwbGF5MCA9ICZmcmFtZWJ1ZmZlcjA7Ci0JfTsKLQotCWNo b3NlbiB7Ci0JCSNhZGRyZXNzLWNlbGxzID0gPDE+OwotCQkjc2l6ZS1jZWxscyA9IDwxPjsKLQkJ cmFuZ2VzOwotCi0JCXN0ZG91dC1wYXRoID0gImRpc3BsYXkwIjsKLQotCQlmcmFtZWJ1ZmZlcjA6 IGZyYW1lYnVmZmVyQDMyMDAwMDAgewotCQkJY29tcGF0aWJsZSA9ICJzaW1wbGUtZnJhbWVidWZm ZXIiOwotCQkJcmVnID0gPDB4MDMyMDAwMDAgMHg4MDAwMDA+OwotCQkJd2lkdGggPSA8MTI4MD47 Ci0JCQloZWlnaHQgPSA8ODAwPjsKLQkJCXN0cmlkZSA9IDwoMTI4MCAqIDMpPjsKLQkJCWZvcm1h dCA9ICJyOGc4YjgiOwotCQl9OwotCX07Ci0KLQlncGlvLWhhbGwtc2Vuc29yIHsKLQkJY29tcGF0 aWJsZSA9ICJncGlvLWtleXMiOwotCi0JCWV2ZW50LWhhbGwtc2Vuc29yIHsKLQkJCWxhYmVsID0g IkhhbGwgRWZmZWN0IFNlbnNvciI7Ci0JCQlncGlvcyA9IDwmdGxtbSAxMTAgR1BJT19BQ1RJVkVf SElHSD47Ci0JCQlpbnRlcnJ1cHRzID0gPCZ0bG1tIDExMCBJUlFfVFlQRV9FREdFX0ZBTExJTkc+ OwotCQkJbGludXgsaW5wdXQtdHlwZSA9IDxFVl9TVz47Ci0JCQlsaW51eCxjb2RlID0gPFNXX0xJ RD47Ci0JCQlkZWJvdW5jZS1pbnRlcnZhbCA9IDwxNT47Ci0JCQl3YWtldXAtc291cmNlOwotCQl9 OwotCX07Ci0KLQlncGlvLWtleXMgewotCQljb21wYXRpYmxlID0gImdwaW8ta2V5cyI7Ci0JCWF1 dG9yZXBlYXQ7Ci0KLQkJa2V5LWhvbWUgewotCQkJbGFiZWwgPSAiSG9tZSI7Ci0JCQlncGlvcyA9 IDwmdGxtbSAxMDggR1BJT19BQ1RJVkVfTE9XPjsKLQkJCWxpbnV4LGNvZGUgPSA8S0VZX0hPTUVQ QUdFPjsKLQkJCWRlYm91bmNlLWludGVydmFsID0gPDE1PjsKLQkJfTsKLQotCQlrZXktdm9sdW1l LWRvd24gewotCQkJbGFiZWwgPSAiVm9sdW1lIERvd24iOwotCQkJZ3Bpb3MgPSA8JnRsbW0gMTA3 IEdQSU9fQUNUSVZFX0xPVz47Ci0JCQlsaW51eCxjb2RlID0gPEtFWV9WT0xVTUVET1dOPjsKLQkJ CWRlYm91bmNlLWludGVydmFsID0gPDE1PjsKLQkJfTsKLQotCQlrZXktdm9sdW1lLXVwIHsKLQkJ CWxhYmVsID0gIlZvbHVtZSBVcCI7Ci0JCQlncGlvcyA9IDwmdGxtbSAxMDYgR1BJT19BQ1RJVkVf TE9XPjsKLQkJCWxpbnV4LGNvZGUgPSA8S0VZX1ZPTFVNRVVQPjsKLQkJCWRlYm91bmNlLWludGVy dmFsID0gPDE1PjsKLQkJfTsKLQl9OwotCi0JaTJjLWJhY2tsaWdodCB7Ci0JCWNvbXBhdGlibGUg PSAiaTJjLWdwaW8iOwotCQlzZGEtZ3Bpb3MgPSA8JnRsbW0gMjAgKEdQSU9fQUNUSVZFX0hJR0h8 R1BJT19PUEVOX0RSQUlOKT47Ci0JCXNjbC1ncGlvcyA9IDwmdGxtbSAyMSAoR1BJT19BQ1RJVkVf SElHSHxHUElPX09QRU5fRFJBSU4pPjsKLQotCQlwaW5jdHJsLTAgPSA8JmJhY2tsaWdodF9pMmNf ZGVmYXVsdF9zdGF0ZT47Ci0JCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7Ci0KLQkJaTJjLWdw aW8sZGVsYXktdXMgPSA8ND47Ci0KLQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCSNzaXplLWNl bGxzID0gPDA+OwotCi0JCWJhY2tsaWdodEAyYyB7Ci0JCQljb21wYXRpYmxlID0gInRpLGxwODU1 NiI7Ci0JCQlyZWcgPSA8MHgyYz47Ci0KLQkJCWRldi1jdHJsID0gL2JpdHMvIDggPDB4ODA+Owot CQkJaW5pdC1icnQgPSAvYml0cy8gOCA8MHgzZj47Ci0JCQlwd20tcGVyaW9kID0gPDEwMDAwMD47 Ci0KLQkJCXB3bXMgPSA8JmJhY2tsaWdodF9wd20gMCAxMDAwMDA+OwotCQkJcHdtLW5hbWVzID0g ImxwODU1NiI7Ci0KLQkJCXJvbS1hMGggewotCQkJCXJvbS1hZGRyID0gL2JpdHMvIDggPDB4YTA+ OwotCQkJCXJvbS12YWwgPSAvYml0cy8gOCA8MHg0ND47Ci0JCQl9OwotCi0JCQlyb20tYTFoIHsK LQkJCQlyb20tYWRkciA9IC9iaXRzLyA4IDwweGExPjsKLQkJCQlyb20tdmFsID0gL2JpdHMvIDgg PDB4NmM+OwotCQkJfTsKLQotCQkJcm9tLWE1aCB7Ci0JCQkJcm9tLWFkZHIgPSAvYml0cy8gOCA8 MHhhNT47Ci0JCQkJcm9tLXZhbCA9IC9iaXRzLyA4IDwweDI0PjsKLQkJCX07Ci0JCX07Ci0JfTsK LQotCWJhY2tsaWdodF9wd206IHB3bSB7Ci0JCWNvbXBhdGlibGUgPSAiY2xrLXB3bSI7Ci0JCSNw d20tY2VsbHMgPSA8Mj47Ci0JCWNsb2NrcyA9IDwmbW1jYyBDQU1TU19HUDBfQ0xLPjsKLQkJcGlu Y3RybC0wID0gPCZiYWNrbGlnaHRfcHdtX2RlZmF1bHRfc3RhdGU+OwotCQlwaW5jdHJsLW5hbWVz ID0gImRlZmF1bHQiOwotCX07Ci0KLQlyZWdfdHNwXzFwOHY6IHJlZ3VsYXRvci10c3AtMXA4diB7 Ci0JCWNvbXBhdGlibGUgPSAicmVndWxhdG9yLWZpeGVkIjsKLQkJcmVndWxhdG9yLW5hbWUgPSAi dHNwXzFwOHYiOwotCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKLQkJcmVn dWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTgwMDAwMD47Ci0KLQkJZ3BpbyA9IDwmdGxtbSAzMSBH UElPX0FDVElWRV9ISUdIPjsKLQkJZW5hYmxlLWFjdGl2ZS1oaWdoOwotCi0JCXBpbmN0cmwtbmFt ZXMgPSAiZGVmYXVsdCI7Ci0JCXBpbmN0cmwtMCA9IDwmdHNwX2VuX2RlZmF1bHRfc3RhdGU+Owot CX07Ci0KLQlyZWdfdHNwXzNwM3Y6IHJlZ3VsYXRvci10c3AtM3AzdiB7Ci0JCWNvbXBhdGlibGUg PSAicmVndWxhdG9yLWZpeGVkIjsKLQkJcmVndWxhdG9yLW5hbWUgPSAidHNwXzNwM3YiOwotCQly ZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKLQkJcmVndWxhdG9yLW1heC1taWNy b3ZvbHQgPSA8MzMwMDAwMD47Ci0KLQkJZ3BpbyA9IDwmdGxtbSA3MyBHUElPX0FDVElWRV9ISUdI PjsKLQkJZW5hYmxlLWFjdGl2ZS1oaWdoOwotCi0JCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7 Ci0JCXBpbmN0cmwtMCA9IDwmdHNwX2VuMV9kZWZhdWx0X3N0YXRlPjsKLQl9OwotCi0JcmVzZXJ2 ZWQtbWVtb3J5IHsKLQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47Ci0JCSNzaXplLWNlbGxzID0gPDE+ OwotCQlyYW5nZXM7Ci0KLQkJZnJhbWVidWZmZXJAMzIwMDAwMCB7Ci0JCQlyZWcgPSA8MHgwMzIw MDAwMCAweDgwMDAwMD47Ci0JCQluby1tYXA7Ci0JCX07Ci0KLQkJbXBzc0A4NDAwMDAwIHsKLQkJ CXJlZyA9IDwweDA4NDAwMDAwIDB4MWYwMDAwMD47Ci0JCQluby1tYXA7Ci0JCX07Ci0KLQkJbWJh QGEzMDAwMDAgewotCQkJcmVnID0gPDB4MGEzMDAwMDAgMHgxMDAwMDA+OwotCQkJbm8tbWFwOwot CQl9OwotCi0JCXJlc2VydmVkQGNiMDAwMDAgewotCQkJcmVnID0gPDB4MGNiMDAwMDAgMHg3MDAw MDA+OwotCQkJbm8tbWFwOwotCQl9OwotCi0JCXdjbnNzQGQyMDAwMDAgewotCQkJcmVnID0gPDB4 MGQyMDAwMDAgMHg3MDAwMDA+OwotCQkJbm8tbWFwOwotCQl9OwotCi0JCWFkc3BfcmVnaW9uOiBh ZHNwQGQ5MDAwMDAgewotCQkJcmVnID0gPDB4MGQ5MDAwMDAgMHgxODAwMDAwPjsKLQkJCW5vLW1h cDsKLQkJfTsKLQotCQl2ZW51c0BmMTAwMDAwIHsKLQkJCXJlZyA9IDwweDBmMTAwMDAwIDB4NTAw MDAwPjsKLQkJCW5vLW1hcDsKLQkJfTsKLQotCQlzbWVtX3JlZ2lvbjogc21lbUBmYTAwMDAwIHsK LQkJCXJlZyA9IDwweDBmYTAwMDAwIDB4MTAwMDAwPjsKLQkJCW5vLW1hcDsKLQkJfTsKLQotCQly ZXNlcnZlZEBmYjAwMDAwIHsKLQkJCXJlZyA9IDwweDBmYjAwMDAwIDB4MjYwMDAwPjsKLQkJCW5v LW1hcDsKLQkJfTsKLQotCQlyZnNhQGZkNjAwMDAgewotCQkJcmVnID0gPDB4MGZkNjAwMDAgMHgy MDAwMD47Ci0JCQluby1tYXA7Ci0JCX07Ci0KLQkJcm10ZnNAZmQ4MDAwMCB7Ci0JCQljb21wYXRp YmxlID0gInFjb20scm10ZnMtbWVtIjsKLQkJCXJlZyA9IDwweDBmZDgwMDAwIDB4MTgwMDAwPjsK LQkJCW5vLW1hcDsKLQotCQkJcWNvbSxjbGllbnQtaWQgPSA8MT47Ci0JCX07Ci0JfTsKIH07CiAK LSZhZHNwIHsKLQlzdGF0dXMgPSAib2theSI7CismcG04MjI2X2wzIHsKKwlyZWd1bGF0b3ItbWlu LW1pY3Jvdm9sdCA9IDw3NTAwMDA+OworCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEzMzc1 MDA+OworCXJlZ3VsYXRvci1hbHdheXMtb247CiB9OwogCi0mYmxzcDFfaTJjMiB7Ci0Jc3RhdHVz ID0gIm9rYXkiOwotCi0JYWNjZWxlcm9tZXRlckAxZCB7Ci0JCWNvbXBhdGlibGUgPSAic3QsbGlz MmhoMTIiOwotCQlyZWcgPSA8MHgxZD47Ci0KLQkJaW50ZXJydXB0LXBhcmVudCA9IDwmdGxtbT47 Ci0JCWludGVycnVwdHMgPSA8NTQgSVJRX1RZUEVfTEVWRUxfSElHSD47Ci0KLQkJcGluY3RybC1u YW1lcyA9ICJkZWZhdWx0IjsKLQkJcGluY3RybC0wID0gPCZhY2NlbF9pbnRfZGVmYXVsdF9zdGF0 ZT47Ci0KLQkJc3QsZHJkeS1pbnQtcGluID0gPDE+OwotCi0JCXZkZC1zdXBwbHkgPSA8JnBtODIy Nl9sMTk+OwotCQl2ZGRpby1zdXBwbHkgPSA8JnBtODIyNl9sdnMxPjsKLQl9OwotfTsKLQotJmJs c3AxX2kyYzQgewotCXN0YXR1cyA9ICJva2F5IjsKLQotCW11aWM6IHVzYi1zd2l0Y2hAMjUgewot CQljb21wYXRpYmxlID0gInNpbGljb25taXR1cyxzbTU1MDItbXVpYyI7Ci0JCXJlZyA9IDwweDI1 PjsKLQotCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZ0bG1tPjsKLQkJaW50ZXJydXB0cyA9IDw2NyBJ UlFfVFlQRV9FREdFX0ZBTExJTkc+OwotCi0JCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7Ci0J CXBpbmN0cmwtMCA9IDwmbXVpY19pbnRfZGVmYXVsdF9zdGF0ZT47Ci0JfTsKLX07Ci0KLSZibHNw MV9pMmM1IHsKLQlzdGF0dXMgPSAib2theSI7Ci0KLQl0b3VjaHNjcmVlbkA0YSB7Ci0JCWNvbXBh dGlibGUgPSAiYXRtZWwsbWF4dG91Y2giOwotCQlyZWcgPSA8MHg0YT47Ci0KLQkJaW50ZXJydXB0 LXBhcmVudCA9IDwmdGxtbT47Ci0JCWludGVycnVwdHMgPSA8MTcgSVJRX1RZUEVfTEVWRUxfTE9X PjsKLQotCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwotCQlwaW5jdHJsLTAgPSA8JnRzcF9p bnRfcnN0X2RlZmF1bHRfc3RhdGU+OwotCi0JCXJlc2V0LWdwaW9zID0gPCZwbTgyMjZfZ3Bpb3Mg NiBHUElPX0FDVElWRV9MT1c+OwotCi0JCXZkZC1zdXBwbHkgPSA8JnJlZ190c3BfMXA4dj47Ci0J CXZkZGEtc3VwcGx5ID0gPCZyZWdfdHNwXzNwM3Y+OwotCX07Ci19OwotCi0mcnBtX3JlcXVlc3Rz IHsKLQlyZWd1bGF0b3JzIHsKLQkJY29tcGF0aWJsZSA9ICJxY29tLHJwbS1wbTgyMjYtcmVndWxh dG9ycyI7Ci0KLQkJcG04MjI2X3MzOiBzMyB7Ci0JCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9 IDwxMjAwMDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEzMDAwMDA+OwotCQl9 OwotCi0JCXBtODIyNl9zNDogczQgewotCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTgw MDAwMD47Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKLQkJfTsKLQot CQlwbTgyMjZfczU6IHM1IHsKLQkJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDExNTAwMDA+ OwotCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTE1MDAwMD47Ci0JCX07Ci0KLQkJcG04 MjI2X2wxOiBsMSB7Ci0JCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxMjI1MDAwPjsKLQkJ CXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEyMjUwMDA+OwotCQl9OwotCi0JCXBtODIyNl9s MjogbDIgewotCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTIwMDAwMD47Ci0JCQlyZWd1 bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxMjAwMDAwPjsKLQkJfTsKLQotCQlwbTgyMjZfbDM6IGwz IHsKLQkJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDc1MDAwMD47Ci0JCQlyZWd1bGF0b3It bWF4LW1pY3Jvdm9sdCA9IDwxMzM3NTAwPjsKLQkJCXJlZ3VsYXRvci1hbHdheXMtb247Ci0JCX07 Ci0KLQkJcG04MjI2X2w0OiBsNCB7Ci0JCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxMjAw MDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEyMDAwMDA+OwotCQl9OwotCi0J CXBtODIyNl9sNTogbDUgewotCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTIwMDAwMD47 Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxMjAwMDAwPjsKLQkJfTsKLQotCQlwbTgy MjZfbDY6IGw2IHsKLQkJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+OwotCQkJ cmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTgwMDAwMD47Ci0JCQlyZWd1bGF0b3ItYWx3YXlz LW9uOwotCQl9OwotCi0JCXBtODIyNl9sNzogbDcgewotCQkJcmVndWxhdG9yLW1pbi1taWNyb3Zv bHQgPSA8MTg1MDAwMD47Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxODUwMDAwPjsK LQkJfTsKLQotCQlwbTgyMjZfbDg6IGw4IHsKLQkJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0g PDE4MDAwMDA+OwotCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8MTgwMDAwMD47Ci0JCQly ZWd1bGF0b3ItYWx3YXlzLW9uOwotCQl9OwotCi0JCXBtODIyNl9sOTogbDkgewotCQkJcmVndWxh dG9yLW1pbi1taWNyb3ZvbHQgPSA8MjA1MDAwMD47Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9s dCA9IDwyMDUwMDAwPjsKLQkJfTsKLQotCQlwbTgyMjZfbDEwOiBsMTAgewotCQkJcmVndWxhdG9y LW1pbi1taWNyb3ZvbHQgPSA8MTgwMDAwMD47Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9 IDwxODAwMDAwPjsKLQkJfTsKLQotCQlwbTgyMjZfbDEyOiBsMTIgewotCQkJcmVndWxhdG9yLW1p bi1taWNyb3ZvbHQgPSA8MTgwMDAwMD47Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwx ODAwMDAwPjsKLQkJfTsKLQotCQlwbTgyMjZfbDE0OiBsMTQgewotCQkJcmVndWxhdG9yLW1pbi1t aWNyb3ZvbHQgPSA8Mjc1MDAwMD47Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwyNzUw MDAwPjsKLQkJfTsKLQotCQlwbTgyMjZfbDE1OiBsMTUgewotCQkJcmVndWxhdG9yLW1pbi1taWNy b3ZvbHQgPSA8MTgwMDAwMD47Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAw PjsKLQkJfTsKLQotCQlwbTgyMjZfbDE2OiBsMTYgewotCQkJcmVndWxhdG9yLW1pbi1taWNyb3Zv bHQgPSA8MzAwMDAwMD47Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzUwMDAwPjsK LQkJfTsKLQotCQlwbTgyMjZfbDE3OiBsMTcgewotCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQg PSA8Mjk1MDAwMD47Ci0JCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwyOTUwMDAwPjsKLQot CQkJcmVndWxhdG9yLXN5c3RlbS1sb2FkID0gPDIwMDAwMD47Ci0JCQlyZWd1bGF0b3ItYWxsb3ct c2V0LWxvYWQ7Ci0JCQlyZWd1bGF0b3ItYWx3YXlzLW9uOwotCQl9OwotCi0JCXBtODIyNl9sMTg6 IGwxOCB7Ci0JCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwyOTUwMDAwPjsKLQkJCXJlZ3Vs YXRvci1tYXgtbWljcm92b2x0ID0gPDI5NTAwMDA+OwotCQl9OwotCi0JCXBtODIyNl9sMTk6IGwx OSB7Ci0JCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwyODUwMDAwPjsKLQkJCXJlZ3VsYXRv ci1tYXgtbWljcm92b2x0ID0gPDMwMDAwMDA+OwotCQl9OwotCi0JCXBtODIyNl9sMjA6IGwyMCB7 Ci0JCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwzMDc1MDAwPjsKLQkJCXJlZ3VsYXRvci1t YXgtbWljcm92b2x0ID0gPDMwNzUwMDA+OwotCQl9OwotCi0JCXBtODIyNl9sMjE6IGwyMSB7Ci0J CQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgt bWljcm92b2x0ID0gPDI5NTAwMDA+OwotCQl9OwotCi0JCXBtODIyNl9sMjI6IGwyMiB7Ci0JCQly ZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgtbWlj cm92b2x0ID0gPDMwMDAwMDA+OwotCQl9OwotCi0JCXBtODIyNl9sMjM6IGwyMyB7Ci0JCQlyZWd1 bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgtbWljcm92 b2x0ID0gPDMzMDAwMDA+OwotCQl9OwotCi0JCXBtODIyNl9sMjQ6IGwyNCB7Ci0JCQlyZWd1bGF0 b3ItbWluLW1pY3Jvdm9sdCA9IDwxMzAwMDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0 ID0gPDEzNTAwMDA+OwotCQl9OwotCi0JCXBtODIyNl9sMjU6IGwyNSB7Ci0JCQlyZWd1bGF0b3It bWluLW1pY3Jvdm9sdCA9IDwxNzc1MDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0g PDIxMjUwMDA+OwotCQl9OwotCi0JCXBtODIyNl9sMjY6IGwyNiB7Ci0JCQlyZWd1bGF0b3ItbWlu LW1pY3Jvdm9sdCA9IDwxMjI1MDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEz MDAwMDA+OwotCQl9OwotCi0JCXBtODIyNl9sMjc6IGwyNyB7Ci0JCQlyZWd1bGF0b3ItbWluLW1p Y3Jvdm9sdCA9IDwxODAwMDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDE4MDAw MDA+OwotCQl9OwotCi0JCXBtODIyNl9sMjg6IGwyOCB7Ci0JCQlyZWd1bGF0b3ItbWluLW1pY3Jv dm9sdCA9IDwxODAwMDAwPjsKLQkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDI5NTAwMDA+ OwotCQl9OwotCi0JCXBtODIyNl9sdnMxOiBsdnMxIHt9OwotCX07Ci19OwotCi0mc2RoY18xIHsK LQl2bW1jLXN1cHBseSA9IDwmcG04MjI2X2wxNz47Ci0JdnFtbWMtc3VwcGx5ID0gPCZwbTgyMjZf bDY+OwotCi0JYnVzLXdpZHRoID0gPDg+OwotCW5vbi1yZW1vdmFibGU7Ci0KLQlzdGF0dXMgPSAi b2theSI7Ci19OwotCi0mc2RoY18yIHsKLQl2bW1jLXN1cHBseSA9IDwmcG04MjI2X2wxOD47Ci0J dnFtbWMtc3VwcGx5ID0gPCZwbTgyMjZfbDIxPjsKLQotCWJ1cy13aWR0aCA9IDw0PjsKLQljZC1n cGlvcyA9IDwmdGxtbSAzOCBHUElPX0FDVElWRV9MT1c+OwotCi0Jc3RhdHVzID0gIm9rYXkiOwot fTsKLQotJnRsbW0gewotCWFjY2VsX2ludF9kZWZhdWx0X3N0YXRlOiBhY2NlbC1pbnQtZGVmYXVs dC1zdGF0ZSB7Ci0JCXBpbnMgPSAiZ3BpbzU0IjsKLQkJZnVuY3Rpb24gPSAiZ3BpbyI7Ci0JCWRy aXZlLXN0cmVuZ3RoID0gPDI+OwotCQliaWFzLWRpc2FibGU7Ci0JfTsKLQotCWJhY2tsaWdodF9p MmNfZGVmYXVsdF9zdGF0ZTogYmFja2xpZ2h0LWkyYy1kZWZhdWx0LXN0YXRlIHsKLQkJcGlucyA9 ICJncGlvMjAiLCAiZ3BpbzIxIjsKLQkJZnVuY3Rpb24gPSAiZ3BpbyI7Ci0JCWRyaXZlLXN0cmVu Z3RoID0gPDI+OwotCQliaWFzLWRpc2FibGU7Ci0JfTsKLQotCWJhY2tsaWdodF9wd21fZGVmYXVs dF9zdGF0ZTogYmFja2xpZ2h0LXB3bS1kZWZhdWx0LXN0YXRlIHsKLQkJcGlucyA9ICJncGlvMzMi OwotCQlmdW5jdGlvbiA9ICJncDBfY2xrIjsKLQl9OwotCi0JbXVpY19pbnRfZGVmYXVsdF9zdGF0 ZTogbXVpYy1pbnQtZGVmYXVsdC1zdGF0ZSB7Ci0JCXBpbnMgPSAiZ3BpbzY3IjsKLQkJZnVuY3Rp b24gPSAiZ3BpbyI7Ci0JCWRyaXZlLXN0cmVuZ3RoID0gPDI+OwotCQliaWFzLWRpc2FibGU7Ci0J fTsKLQotCXRzcF9lbl9kZWZhdWx0X3N0YXRlOiB0c3AtZW4tZGVmYXVsdC1zdGF0ZSB7Ci0JCXBp bnMgPSAiZ3BpbzMxIjsKLQkJZnVuY3Rpb24gPSAiZ3BpbyI7Ci0JCWRyaXZlLXN0cmVuZ3RoID0g PDI+OwotCQliaWFzLWRpc2FibGU7Ci0JfTsKLQotCXRzcF9lbjFfZGVmYXVsdF9zdGF0ZTogdHNw LWVuMS1kZWZhdWx0LXN0YXRlIHsKLQkJcGlucyA9ICJncGlvNzMiOwotCQlmdW5jdGlvbiA9ICJn cGlvIjsKLQkJZHJpdmUtc3RyZW5ndGggPSA8Mj47Ci0JCWJpYXMtZGlzYWJsZTsKLQl9OwotCi0J dHNwX2ludF9yc3RfZGVmYXVsdF9zdGF0ZTogdHNwLWludC1yc3QtZGVmYXVsdC1zdGF0ZSB7Ci0J CXBpbnMgPSAiZ3BpbzE3IjsKLQkJZnVuY3Rpb24gPSAiZ3BpbyI7Ci0JCWRyaXZlLXN0cmVuZ3Ro ID0gPDEwPjsKLQkJYmlhcy1wdWxsLXVwOwotCX07CismcG04MjI2X3M0IHsKKwlyZWd1bGF0b3It bWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwx ODAwMDAwPjsKIH07CiAKLSZ1c2IgewotCWV4dGNvbiA9IDwmbXVpYz4sIDwmbXVpYz47Ci0Jc3Rh dHVzID0gIm9rYXkiOworJnJlZ190c3BfM3AzdiB7CisJZ3BpbyA9IDwmdGxtbSA3MyBHUElPX0FD VElWRV9ISUdIPjsKIH07CiAKLSZ1c2JfaHNfcGh5IHsKLQlleHRjb24gPSA8Jm11aWM+OwotCXYx cDgtc3VwcGx5ID0gPCZwbTgyMjZfbDEwPjsKLQl2M3AzLXN1cHBseSA9IDwmcG04MjI2X2wyMD47 CismdHNwX2VuMV9kZWZhdWx0X3N0YXRlIHsKKwlwaW5zID0gImdwaW83MyI7CiB9OwpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vYm9vdC9kdHMvcWNvbS1tc204MjI2LXNhbXN1bmctbWF0aXNzZS1jb21t b24uZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL3Fjb20tbXNtODIyNi1zYW1zdW5nLW1hdGlzc2Ut Y29tbW9uLmR0c2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZmFi YzAzZTVkYjUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib290L2R0cy9xY29tLW1zbTgy MjYtc2Ftc3VuZy1tYXRpc3NlLWNvbW1vbi5kdHNpCkBAIC0wLDAgKzEsNTEwIEBACisvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlCisvKgorICogQ29weXJpZ2h0IChjKSAy MDIyLCBNYXR0aSBMZWh0aW3DpGtpIDxtYXR0aS5sZWh0aW1ha2lAZ21haWwuY29tPgorICogQ29w eXJpZ2h0IChjKSAyMDIzLCBTdGVmYW4gSGFuc3NvbiA8bmV3Ynl0ZUBwb3N0bWFya2V0b3Mub3Jn PgorICovCisKKyNpbmNsdWRlIDxkdC1iaW5kaW5ncy9pbnB1dC9pbnB1dC5oPgorI2luY2x1ZGUg InFjb20tbXNtODIyNi5kdHNpIgorI2luY2x1ZGUgInFjb20tcG04MjI2LmR0c2kiCisKKy9kZWxl dGUtbm9kZS8gJmFkc3BfcmVnaW9uOworL2RlbGV0ZS1ub2RlLyAmc21lbV9yZWdpb247CisKKy8g eworCWFsaWFzZXMgeworCQltbWMwID0gJnNkaGNfMTsgLyogU0RDMSBlTU1DIHNsb3QgKi8KKwkJ bW1jMSA9ICZzZGhjXzI7IC8qIFNEQzIgU0QgY2FyZCBzbG90ICovCisJCWRpc3BsYXkwID0gJmZy YW1lYnVmZmVyMDsKKwl9OworCisJY2hvc2VuIHsKKwkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CisJ CSNzaXplLWNlbGxzID0gPDE+OworCQlyYW5nZXM7CisKKwkJc3Rkb3V0LXBhdGggPSAiZGlzcGxh eTAiOworCisJCWZyYW1lYnVmZmVyMDogZnJhbWVidWZmZXJAMzIwMDAwMCB7CisJCQljb21wYXRp YmxlID0gInNpbXBsZS1mcmFtZWJ1ZmZlciI7CisJCQlyZWcgPSA8MHgwMzIwMDAwMCAweDgwMDAw MD47CisJCQl3aWR0aCA9IDwxMjgwPjsKKwkJCWhlaWdodCA9IDw4MDA+OworCQkJc3RyaWRlID0g PCgxMjgwICogMyk+OworCQkJZm9ybWF0ID0gInI4ZzhiOCI7CisJCX07CisJfTsKKworCWdwaW8t aGFsbC1zZW5zb3IgeworCQljb21wYXRpYmxlID0gImdwaW8ta2V5cyI7CisKKwkJZXZlbnQtaGFs bC1zZW5zb3IgeworCQkJbGFiZWwgPSAiSGFsbCBFZmZlY3QgU2Vuc29yIjsKKwkJCWdwaW9zID0g PCZ0bG1tIDExMCBHUElPX0FDVElWRV9ISUdIPjsKKwkJCWludGVycnVwdHMgPSA8JnRsbW0gMTEw IElSUV9UWVBFX0VER0VfRkFMTElORz47CisJCQlsaW51eCxpbnB1dC10eXBlID0gPEVWX1NXPjsK KwkJCWxpbnV4LGNvZGUgPSA8U1dfTElEPjsKKwkJCWRlYm91bmNlLWludGVydmFsID0gPDE1PjsK KwkJCXdha2V1cC1zb3VyY2U7CisJCX07CisJfTsKKworCWdwaW8ta2V5cyB7CisJCWNvbXBhdGli bGUgPSAiZ3Bpby1rZXlzIjsKKwkJYXV0b3JlcGVhdDsKKworCQlrZXktaG9tZSB7CisJCQlsYWJl bCA9ICJIb21lIjsKKwkJCWdwaW9zID0gPCZ0bG1tIDEwOCBHUElPX0FDVElWRV9MT1c+OworCQkJ bGludXgsY29kZSA9IDxLRVlfSE9NRVBBR0U+OworCQkJZGVib3VuY2UtaW50ZXJ2YWwgPSA8MTU+ OworCQl9OworCisJCWtleS12b2x1bWUtZG93biB7CisJCQlsYWJlbCA9ICJWb2x1bWUgRG93biI7 CisJCQlncGlvcyA9IDwmdGxtbSAxMDcgR1BJT19BQ1RJVkVfTE9XPjsKKwkJCWxpbnV4LGNvZGUg PSA8S0VZX1ZPTFVNRURPV04+OworCQkJZGVib3VuY2UtaW50ZXJ2YWwgPSA8MTU+OworCQl9Owor CisJCWtleS12b2x1bWUtdXAgeworCQkJbGFiZWwgPSAiVm9sdW1lIFVwIjsKKwkJCWdwaW9zID0g PCZ0bG1tIDEwNiBHUElPX0FDVElWRV9MT1c+OworCQkJbGludXgsY29kZSA9IDxLRVlfVk9MVU1F VVA+OworCQkJZGVib3VuY2UtaW50ZXJ2YWwgPSA8MTU+OworCQl9OworCX07CisKKwlpMmMtYmFj a2xpZ2h0IHsKKwkJY29tcGF0aWJsZSA9ICJpMmMtZ3BpbyI7CisJCXNkYS1ncGlvcyA9IDwmdGxt bSAyMCAoR1BJT19BQ1RJVkVfSElHSHxHUElPX09QRU5fRFJBSU4pPjsKKwkJc2NsLWdwaW9zID0g PCZ0bG1tIDIxIChHUElPX0FDVElWRV9ISUdIfEdQSU9fT1BFTl9EUkFJTik+OworCisJCXBpbmN0 cmwtMCA9IDwmYmFja2xpZ2h0X2kyY19kZWZhdWx0X3N0YXRlPjsKKwkJcGluY3RybC1uYW1lcyA9 ICJkZWZhdWx0IjsKKworCQlpMmMtZ3BpbyxkZWxheS11cyA9IDw0PjsKKworCQkjYWRkcmVzcy1j ZWxscyA9IDwxPjsKKwkJI3NpemUtY2VsbHMgPSA8MD47CisKKwkJYmFja2xpZ2h0QDJjIHsKKwkJ CWNvbXBhdGlibGUgPSAidGksbHA4NTU2IjsKKwkJCXJlZyA9IDwweDJjPjsKKworCQkJZGV2LWN0 cmwgPSAvYml0cy8gOCA8MHg4MD47CisJCQlpbml0LWJydCA9IC9iaXRzLyA4IDwweDNmPjsKKwkJ CXB3bS1wZXJpb2QgPSA8MTAwMDAwPjsKKworCQkJcHdtcyA9IDwmYmFja2xpZ2h0X3B3bSAwIDEw MDAwMD47CisJCQlwd20tbmFtZXMgPSAibHA4NTU2IjsKKworCQkJcm9tLWEwaCB7CisJCQkJcm9t LWFkZHIgPSAvYml0cy8gOCA8MHhhMD47CisJCQkJcm9tLXZhbCA9IC9iaXRzLyA4IDwweDQ0PjsK KwkJCX07CisKKwkJCXJvbS1hMWggeworCQkJCXJvbS1hZGRyID0gL2JpdHMvIDggPDB4YTE+Owor CQkJCXJvbS12YWwgPSAvYml0cy8gOCA8MHg2Yz47CisJCQl9OworCisJCQlyb20tYTVoIHsKKwkJ CQlyb20tYWRkciA9IC9iaXRzLyA4IDwweGE1PjsKKwkJCQlyb20tdmFsID0gL2JpdHMvIDggPDB4 MjQ+OworCQkJfTsKKwkJfTsKKwl9OworCisJYmFja2xpZ2h0X3B3bTogcHdtIHsKKwkJY29tcGF0 aWJsZSA9ICJjbGstcHdtIjsKKwkJI3B3bS1jZWxscyA9IDwyPjsKKwkJY2xvY2tzID0gPCZtbWNj IENBTVNTX0dQMF9DTEs+OworCQlwaW5jdHJsLTAgPSA8JmJhY2tsaWdodF9wd21fZGVmYXVsdF9z dGF0ZT47CisJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJfTsKKworCXJlZ190c3BfMXA4 djogcmVndWxhdG9yLXRzcC0xcDh2IHsKKwkJY29tcGF0aWJsZSA9ICJyZWd1bGF0b3ItZml4ZWQi OworCQlyZWd1bGF0b3ItbmFtZSA9ICJ0c3BfMXA4diI7CisJCXJlZ3VsYXRvci1taW4tbWljcm92 b2x0ID0gPDE4MDAwMDA+OworCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsK KworCQlncGlvID0gPCZ0bG1tIDMxIEdQSU9fQUNUSVZFX0hJR0g+OworCQllbmFibGUtYWN0aXZl LWhpZ2g7CisKKwkJcGluY3RybC0wID0gPCZ0c3BfZW5fZGVmYXVsdF9zdGF0ZT47CisJCXBpbmN0 cmwtbmFtZXMgPSAiZGVmYXVsdCI7CisJfTsKKworCXJlZ190c3BfM3AzdjogcmVndWxhdG9yLXRz cC0zcDN2IHsKKwkJY29tcGF0aWJsZSA9ICJyZWd1bGF0b3ItZml4ZWQiOworCQlyZWd1bGF0b3It bmFtZSA9ICJ0c3BfM3AzdiI7CisJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDMzMDAwMDA+ OworCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKworCQkvKiBHUElPIGlz IGJvYXJkLXNwZWNpZmljICovCisJCWVuYWJsZS1hY3RpdmUtaGlnaDsKKworCQlwaW5jdHJsLTAg PSA8JnRzcF9lbjFfZGVmYXVsdF9zdGF0ZT47CisJCXBpbmN0cmwtbmFtZXMgPSAiZGVmYXVsdCI7 CisJfTsKKworCXJlc2VydmVkLW1lbW9yeSB7CisJCSNhZGRyZXNzLWNlbGxzID0gPDE+OworCQkj c2l6ZS1jZWxscyA9IDwxPjsKKwkJcmFuZ2VzOworCisJCWZyYW1lYnVmZmVyQDMyMDAwMDAgewor CQkJcmVnID0gPDB4MDMyMDAwMDAgMHg4MDAwMDA+OworCQkJbm8tbWFwOworCQl9OworCisJCW1w c3NAODQwMDAwMCB7CisJCQlyZWcgPSA8MHgwODQwMDAwMCAweDFmMDAwMDA+OworCQkJbm8tbWFw OworCQl9OworCisJCW1iYUBhMzAwMDAwIHsKKwkJCXJlZyA9IDwweDBhMzAwMDAwIDB4MTAwMDAw PjsKKwkJCW5vLW1hcDsKKwkJfTsKKworCQlyZXNlcnZlZEBjYjAwMDAwIHsKKwkJCXJlZyA9IDww eDBjYjAwMDAwIDB4NzAwMDAwPjsKKwkJCW5vLW1hcDsKKwkJfTsKKworCQl3Y25zc0BkMjAwMDAw IHsKKwkJCXJlZyA9IDwweDBkMjAwMDAwIDB4NzAwMDAwPjsKKwkJCW5vLW1hcDsKKwkJfTsKKwor CQlhZHNwX3JlZ2lvbjogYWRzcEBkOTAwMDAwIHsKKwkJCXJlZyA9IDwweDBkOTAwMDAwIDB4MTgw MDAwMD47CisJCQluby1tYXA7CisJCX07CisKKwkJdmVudXNAZjEwMDAwMCB7CisJCQlyZWcgPSA8 MHgwZjEwMDAwMCAweDUwMDAwMD47CisJCQluby1tYXA7CisJCX07CisKKwkJc21lbV9yZWdpb246 IHNtZW1AZmEwMDAwMCB7CisJCQlyZWcgPSA8MHgwZmEwMDAwMCAweDEwMDAwMD47CisJCQluby1t YXA7CisJCX07CisKKwkJcmVzZXJ2ZWRAZmIwMDAwMCB7CisJCQlyZWcgPSA8MHgwZmIwMDAwMCAw eDI2MDAwMD47CisJCQluby1tYXA7CisJCX07CisKKwkJcmZzYUBmZDYwMDAwIHsKKwkJCXJlZyA9 IDwweDBmZDYwMDAwIDB4MjAwMDA+OworCQkJbm8tbWFwOworCQl9OworCisJCXJtdGZzQGZkODAw MDAgeworCQkJY29tcGF0aWJsZSA9ICJxY29tLHJtdGZzLW1lbSI7CisJCQlyZWcgPSA8MHgwZmQ4 MDAwMCAweDE4MDAwMD47CisJCQluby1tYXA7CisKKwkJCXFjb20sY2xpZW50LWlkID0gPDE+Owor CQl9OworCX07Cit9OworCismYWRzcCB7CisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJmJsc3Ax X2kyYzIgeworCXN0YXR1cyA9ICJva2F5IjsKKworCWFjY2VsZXJvbWV0ZXJAMWQgeworCQljb21w YXRpYmxlID0gInN0LGxpczJoaDEyIjsKKwkJcmVnID0gPDB4MWQ+OworCisJCWludGVycnVwdC1w YXJlbnQgPSA8JnRsbW0+OworCQlpbnRlcnJ1cHRzID0gPDU0IElSUV9UWVBFX0xFVkVMX0hJR0g+ OworCisJCXBpbmN0cmwtMCA9IDwmYWNjZWxfaW50X2RlZmF1bHRfc3RhdGU+OworCQlwaW5jdHJs LW5hbWVzID0gImRlZmF1bHQiOworCisJCXN0LGRyZHktaW50LXBpbiA9IDwxPjsKKworCQl2ZGQt c3VwcGx5ID0gPCZwbTgyMjZfbDE5PjsKKwkJdmRkaW8tc3VwcGx5ID0gPCZwbTgyMjZfbHZzMT47 CisJfTsKK307CisKKyZibHNwMV9pMmM0IHsKKwlzdGF0dXMgPSAib2theSI7CisKKwltdWljOiB1 c2Itc3dpdGNoQDI1IHsKKwkJY29tcGF0aWJsZSA9ICJzaWxpY29ubWl0dXMsc201NTAyLW11aWMi OworCQlyZWcgPSA8MHgyNT47CisKKwkJaW50ZXJydXB0LXBhcmVudCA9IDwmdGxtbT47CisJCWlu dGVycnVwdHMgPSA8NjcgSVJRX1RZUEVfRURHRV9GQUxMSU5HPjsKKworCQlwaW5jdHJsLTAgPSA8 Jm11aWNfaW50X2RlZmF1bHRfc3RhdGU+OworCQlwaW5jdHJsLW5hbWVzID0gImRlZmF1bHQiOwor CX07Cit9OworCismYmxzcDFfaTJjNSB7CisJc3RhdHVzID0gIm9rYXkiOworCisJdG91Y2hzY3Jl ZW5ANGEgeworCQljb21wYXRpYmxlID0gImF0bWVsLG1heHRvdWNoIjsKKwkJcmVnID0gPDB4NGE+ OworCisJCWludGVycnVwdC1wYXJlbnQgPSA8JnRsbW0+OworCQlpbnRlcnJ1cHRzID0gPDE3IElS UV9UWVBFX0xFVkVMX0xPVz47CisKKwkJcGluY3RybC0wID0gPCZ0c3BfaW50X3JzdF9kZWZhdWx0 X3N0YXRlPjsKKwkJcGluY3RybC1uYW1lcyA9ICJkZWZhdWx0IjsKKworCQlyZXNldC1ncGlvcyA9 IDwmcG04MjI2X2dwaW9zIDYgR1BJT19BQ1RJVkVfTE9XPjsKKworCQl2ZGQtc3VwcGx5ID0gPCZy ZWdfdHNwXzFwOHY+OworCQl2ZGRhLXN1cHBseSA9IDwmcmVnX3RzcF8zcDN2PjsKKwl9OworfTsK KworJnJwbV9yZXF1ZXN0cyB7CisJcmVndWxhdG9ycyB7CisJCWNvbXBhdGlibGUgPSAicWNvbSxy cG0tcG04MjI2LXJlZ3VsYXRvcnMiOworCisJCXBtODIyNl9zMzogczMgeworCQkJcmVndWxhdG9y LW1pbi1taWNyb3ZvbHQgPSA8MTIwMDAwMD47CisJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9 IDwxMzAwMDAwPjsKKwkJfTsKKworCQkvKiBWb2x0YWdlIGNvbnN0cmFpbnRzIGFyZSBib2FyZC1z cGVjaWZpYyAqLworCQlwbTgyMjZfczQ6IHM0IHt9OworCisJCXBtODIyNl9zNTogczUgeworCQkJ cmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTE1MDAwMD47CisJCQlyZWd1bGF0b3ItbWF4LW1p Y3Jvdm9sdCA9IDwxMTUwMDAwPjsKKwkJfTsKKworCQlwbTgyMjZfbDE6IGwxIHsKKwkJCXJlZ3Vs YXRvci1taW4tbWljcm92b2x0ID0gPDEyMjUwMDA+OworCQkJcmVndWxhdG9yLW1heC1taWNyb3Zv bHQgPSA8MTIyNTAwMD47CisJCX07CisKKwkJcG04MjI2X2wyOiBsMiB7CisJCQlyZWd1bGF0b3It bWluLW1pY3Jvdm9sdCA9IDwxMjAwMDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0g PDEyMDAwMDA+OworCQl9OworCisJCS8qIFZvbHRhZ2UgY29uc3RyYWludHMgYXJlIGJvYXJkLXNw ZWNpZmljICovCisJCXBtODIyNl9sMzogbDMge307CisKKwkJcG04MjI2X2w0OiBsNCB7CisJCQly ZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxMjAwMDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWlj cm92b2x0ID0gPDEyMDAwMDA+OworCQl9OworCisJCXBtODIyNl9sNTogbDUgeworCQkJcmVndWxh dG9yLW1pbi1taWNyb3ZvbHQgPSA8MTIwMDAwMD47CisJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9s dCA9IDwxMjAwMDAwPjsKKwkJfTsKKworCQlwbTgyMjZfbDY6IGw2IHsKKwkJCXJlZ3VsYXRvci1t aW4tbWljcm92b2x0ID0gPDE4MDAwMDA+OworCQkJcmVndWxhdG9yLW1heC1taWNyb3ZvbHQgPSA8 MTgwMDAwMD47CisJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQl9OworCisJCXBtODIyNl9sNzog bDcgeworCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTg1MDAwMD47CisJCQlyZWd1bGF0 b3ItbWF4LW1pY3Jvdm9sdCA9IDwxODUwMDAwPjsKKwkJfTsKKworCQlwbTgyMjZfbDg6IGw4IHsK KwkJCXJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gPDE4MDAwMDA+OworCQkJcmVndWxhdG9yLW1h eC1taWNyb3ZvbHQgPSA8MTgwMDAwMD47CisJCQlyZWd1bGF0b3ItYWx3YXlzLW9uOworCQl9Owor CisJCXBtODIyNl9sOTogbDkgeworCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MjA1MDAw MD47CisJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwyMDUwMDAwPjsKKwkJfTsKKworCQlw bTgyMjZfbDEwOiBsMTAgeworCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTgwMDAwMD47 CisJCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJfTsKKworCQlwbTgy MjZfbDEyOiBsMTIgeworCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTgwMDAwMD47CisJ CQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJfTsKKworCQlwbTgyMjZf bDE0OiBsMTQgeworCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8Mjc1MDAwMD47CisJCQly ZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwyNzUwMDAwPjsKKwkJfTsKKworCQlwbTgyMjZfbDE1 OiBsMTUgeworCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MTgwMDAwMD47CisJCQlyZWd1 bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzAwMDAwPjsKKwkJfTsKKworCQlwbTgyMjZfbDE2OiBs MTYgeworCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8MzAwMDAwMD47CisJCQlyZWd1bGF0 b3ItbWF4LW1pY3Jvdm9sdCA9IDwzMzUwMDAwPjsKKwkJfTsKKworCQlwbTgyMjZfbDE3OiBsMTcg eworCQkJcmVndWxhdG9yLW1pbi1taWNyb3ZvbHQgPSA8Mjk1MDAwMD47CisJCQlyZWd1bGF0b3It bWF4LW1pY3Jvdm9sdCA9IDwyOTUwMDAwPjsKKworCQkJcmVndWxhdG9yLXN5c3RlbS1sb2FkID0g PDIwMDAwMD47CisJCQlyZWd1bGF0b3ItYWxsb3ctc2V0LWxvYWQ7CisJCQlyZWd1bGF0b3ItYWx3 YXlzLW9uOworCQl9OworCisJCXBtODIyNl9sMTg6IGwxOCB7CisJCQlyZWd1bGF0b3ItbWluLW1p Y3Jvdm9sdCA9IDwyOTUwMDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDI5NTAw MDA+OworCQl9OworCisJCXBtODIyNl9sMTk6IGwxOSB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jv dm9sdCA9IDwyODUwMDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDMwMDAwMDA+ OworCQl9OworCisJCXBtODIyNl9sMjA6IGwyMCB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9s dCA9IDwzMDc1MDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDMwNzUwMDA+Owor CQl9OworCisJCXBtODIyNl9sMjE6IGwyMSB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9 IDwxODAwMDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDI5NTAwMDA+OworCQl9 OworCisJCXBtODIyNl9sMjI6IGwyMiB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwx ODAwMDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDMwMDAwMDA+OworCQl9Owor CisJCXBtODIyNl9sMjM6IGwyMyB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAw MDAwPjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDMzMDAwMDA+OworCQl9OworCisJ CXBtODIyNl9sMjQ6IGwyNCB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxMzAwMDAw PjsKKwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEzNTAwMDA+OworCQl9OworCisJCXBt ODIyNl9sMjU6IGwyNSB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxNzc1MDAwPjsK KwkJCXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDIxMjUwMDA+OworCQl9OworCisJCXBtODIy Nl9sMjY6IGwyNiB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxMjI1MDAwPjsKKwkJ CXJlZ3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDEzMDAwMDA+OworCQl9OworCisJCXBtODIyNl9s Mjc6IGwyNyB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJCXJl Z3VsYXRvci1tYXgtbWljcm92b2x0ID0gPDE4MDAwMDA+OworCQl9OworCisJCXBtODIyNl9sMjg6 IGwyOCB7CisJCQlyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IDwxODAwMDAwPjsKKwkJCXJlZ3Vs YXRvci1tYXgtbWljcm92b2x0ID0gPDI5NTAwMDA+OworCQl9OworCisJCXBtODIyNl9sdnMxOiBs dnMxIHt9OworCX07Cit9OworCismc2RoY18xIHsKKwl2bW1jLXN1cHBseSA9IDwmcG04MjI2X2wx Nz47CisJdnFtbWMtc3VwcGx5ID0gPCZwbTgyMjZfbDY+OworCisJYnVzLXdpZHRoID0gPDg+Owor CW5vbi1yZW1vdmFibGU7CisKKwlzdGF0dXMgPSAib2theSI7Cit9OworCismc2RoY18yIHsKKwl2 bW1jLXN1cHBseSA9IDwmcG04MjI2X2wxOD47CisJdnFtbWMtc3VwcGx5ID0gPCZwbTgyMjZfbDIx PjsKKworCWJ1cy13aWR0aCA9IDw0PjsKKwljZC1ncGlvcyA9IDwmdGxtbSAzOCBHUElPX0FDVElW RV9MT1c+OworCisJc3RhdHVzID0gIm9rYXkiOworfTsKKworJnRsbW0geworCWFjY2VsX2ludF9k ZWZhdWx0X3N0YXRlOiBhY2NlbC1pbnQtZGVmYXVsdC1zdGF0ZSB7CisJCXBpbnMgPSAiZ3BpbzU0 IjsKKwkJZnVuY3Rpb24gPSAiZ3BpbyI7CisJCWRyaXZlLXN0cmVuZ3RoID0gPDI+OworCQliaWFz LWRpc2FibGU7CisJfTsKKworCWJhY2tsaWdodF9pMmNfZGVmYXVsdF9zdGF0ZTogYmFja2xpZ2h0 LWkyYy1kZWZhdWx0LXN0YXRlIHsKKwkJcGlucyA9ICJncGlvMjAiLCAiZ3BpbzIxIjsKKwkJZnVu Y3Rpb24gPSAiZ3BpbyI7CisJCWRyaXZlLXN0cmVuZ3RoID0gPDI+OworCQliaWFzLWRpc2FibGU7 CisJfTsKKworCWJhY2tsaWdodF9wd21fZGVmYXVsdF9zdGF0ZTogYmFja2xpZ2h0LXB3bS1kZWZh dWx0LXN0YXRlIHsKKwkJcGlucyA9ICJncGlvMzMiOworCQlmdW5jdGlvbiA9ICJncDBfY2xrIjsK Kwl9OworCisJbXVpY19pbnRfZGVmYXVsdF9zdGF0ZTogbXVpYy1pbnQtZGVmYXVsdC1zdGF0ZSB7 CisJCXBpbnMgPSAiZ3BpbzY3IjsKKwkJZnVuY3Rpb24gPSAiZ3BpbyI7CisJCWRyaXZlLXN0cmVu Z3RoID0gPDI+OworCQliaWFzLWRpc2FibGU7CisJfTsKKworCXRzcF9lbl9kZWZhdWx0X3N0YXRl OiB0c3AtZW4tZGVmYXVsdC1zdGF0ZSB7CisJCXBpbnMgPSAiZ3BpbzMxIjsKKwkJZnVuY3Rpb24g PSAiZ3BpbyI7CisJCWRyaXZlLXN0cmVuZ3RoID0gPDI+OworCQliaWFzLWRpc2FibGU7CisJfTsK KworCXRzcF9lbjFfZGVmYXVsdF9zdGF0ZTogdHNwLWVuMS1kZWZhdWx0LXN0YXRlIHsKKwkJLyog cGlucyBpcyBib2FyZC1zcGVjaWZpYyAqLworCQlmdW5jdGlvbiA9ICJncGlvIjsKKwkJZHJpdmUt c3RyZW5ndGggPSA8Mj47CisJCWJpYXMtZGlzYWJsZTsKKwl9OworCisJdHNwX2ludF9yc3RfZGVm YXVsdF9zdGF0ZTogdHNwLWludC1yc3QtZGVmYXVsdC1zdGF0ZSB7CisJCXBpbnMgPSAiZ3BpbzE3 IjsKKwkJZnVuY3Rpb24gPSAiZ3BpbyI7CisJCWRyaXZlLXN0cmVuZ3RoID0gPDEwPjsKKwkJYmlh cy1wdWxsLXVwOworCX07Cit9OworCismdXNiIHsKKwlleHRjb24gPSA8Jm11aWM+LCA8Jm11aWM+ OworCXN0YXR1cyA9ICJva2F5IjsKK307CisKKyZ1c2JfaHNfcGh5IHsKKwlleHRjb24gPSA8Jm11 aWM+OworCXYxcDgtc3VwcGx5ID0gPCZwbTgyMjZfbDEwPjsKKwl2M3AzLXN1cHBseSA9IDwmcG04 MjI2X2wyMD47Cit9OwotLSAKMi4zOS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=