From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5B2929DB64; Sat, 15 Aug 2026 21:48:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786830527; cv=none; b=OCpJ7PabHIXZMVc9Y2r6/T/OxB0EpJPHLK7FZPDUVz5H8XNpY+TccRUBG4aN94s3RP0xfFrVNlt/DvQYogxNTsRz6GUs9bw/887YlFlkKBmL6TaI5PmyChQkhpAoRbpFYxFXDxEWJvPwyJNoAdUXFsIr9nBSFYEumWyzVmK9dPI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786830527; c=relaxed/simple; bh=fOVwma02jhC1OhamIZWkdvlwuz0fRLNfs5j5/Dwlr28=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MUSsfuJmS7ZRZ1SdKOGjnkjx5U3cp14y9F1dw7V1sSzeJjgte3dcQF25KQU595SeHQ3yG0cYyR2Ki5J0OkPg9h/9L63AkX5OZgJa5zS35n+MRH/m3Yq0nhHifQZosvo6HfSsgCsfGixR+Tf2jyXZWiaYGqj5WBnINkh4zmRMtwk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cvju8Hyq; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cvju8Hyq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EB351F000E9; Sat, 15 Aug 2026 21:48:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786830525; bh=K622mBfxNoMEQ0Rnt0bsFc4J2+42BrZq9uR3gxYzrjM=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=cvju8Hyq3jsfX1UUhzQ55EfLwK5OtQsBZUbms7lYNLMxiQisgSQy3gurK5BqGVzar 3wnbKEkDdFBL/GKdR9Bnowe1TQz5KOQQD6JIsvdJ4RVrlYUcujPSqulTD3ooKn/zee m3Ish+QZgJ410UNuNlUv541GGtPhSxAy/YJKkobQ14zXw1bY870jy3Vq1b3nxpGBdy AuHxgHbeZWnOVzWbJLA8wo6yzGA1ZC0HI8KOLabeMYuHCsQw3dTPMqOFMwmimF7EU/ ZPAWJYrp4l5DjTI32HuK0qbCenA51PjsBP+l7zTRQFAp13mlXkW+5Lto8XThvpG5Xe P5nlWixd8nfxQ== Date: Sat, 15 Aug 2026 22:48:38 +0100 From: Jonathan Cameron To: Janani Sunil Cc: Lars-Peter Clausen , Michael Hennerich , "David Lechner" , Nuno =?UTF-8?B?U8Oh?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , "Jonathan Corbet" , Shuah Khan , Mark Brown , Marius Cristea , "Marcus Folkesson" , Kent Gustavsson , Conor Dooley , Daire McNamara , Paul Walmsley , "Palmer Dabbelt" , Albert Ou , "Alexandre Ghiti" , , , , , Janani Sunil , , Kent Gustavsson , Subject: Re: [PATCH v8 0/3] iio: dac: Add support for AD5529R DAC Message-ID: <20260815224838.2bf9fdde@jic23-huawei> In-Reply-To: <20260805-ad5529r-driver-v8-0-b41781f5632a@analog.com> References: <20260805-ad5529r-driver-v8-0-b41781f5632a@analog.com> X-Mailer: Claws Mail 4.4.0 (GTK 3.24.52; x86_64-pc-linux-gnu) Precedence: bulk X-Mailing-List: linux-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Wed, 5 Aug 2026 09:17:40 +0200 Janani Sunil wrote: > This patch series adds support for Analog Devices AD5529R, a 16 channel > 16 and 12 bit voltage Digital-to-Analog Converter (DAC) with integrated > precision reference. The AD5529R operates from both unipolar and > bipolar supplies. The device communicates via SPI interface. https://sashiko.dev/#/patchset/20260805-ad5529r-driver-v8-0-b41781f5632a%40= analog.com has some comments. I think the dt ones are fine as we do want to explicitly list all the dac.yaml properties in here to constrain them further. The one about sleeping after enabling regulators looks correct though. I'd add an fsleep() to ensure nothing else happens immediately after switching the power on. The other sleep related thing about allowing extra time. Don't bother unless we get a report of problems as there will be extra delay anyway due to the call overhead etc and datasheet values tend to be conservative. For the scale related one, perhaps add a comment there referring to datasheet specifying the reference voltage if an external reference is used should be same as output of internal reference. Given your regmap is working I'll assume the one about mixed endian is a false positive. Jonathan >=20 > **Device Overview:** > The AD5529R features 16 independent DAC channels, with 16 or 12 bit > resolution, allowing independently programmable output ranges. The > internal 4.096V precision reference sets the accuracy of the output > voltage. >=20 > The device can encode a hardware address in its SPI command frame, > allowing up to 4 devices to share a single chip select. This series > introduces a generic spi-device-addr property for describing this type > of addressing. >=20 > **Features Implemented:** > - Support for AD5529R 12-bit and 16-bit variants via device match data. > - Support for a single DAC device using any hardware address between 0 > and 3. > - Reset support via reset controller framework. > - Dual regmap configuration to handle 8 and 16 bit registers. > - Per-channel output range configuration from devicetree. > - Optional external reference and bipolar supply handling. >=20 > **Patch Summary:** > 1. Add the generic spi-device-addr SPI peripheral property. > 2. AD5529R binding documentation with channel configuration. > 3. Implement AD5529R IIO DAC Driver with regmap support. >=20 > **Testing:** > The driver was compiled and tested on the EVAL-AD5529R-ARDZ using a > coraZ7 with a mainline v7.0 kernel. >=20 > **Driver Rationale:** > AD5529R introduces: > 1. A unique register layout > 2. Mixed 8-bit and 16-bit register accesses > 3. Hardware specific features like function generators, multi-die > hotpath registers etc. >=20 > The device warrants its own driver due to these fundamental > architectural differences, that would require substantial changes to > existing drivers without providing reusable benefits. The standalone > driver also allows future extensions for related devices in the same > family. >=20 > **Not Implemented in this Series:** > The binding includes generic, peripheral level device addressing needed f= or > multi-device support using a shared CS, but the driver presently > supports only a single device. >=20 > Signed-off-by: Janani Sunil > --- > Changes in v8: > - Rename the AD5529R supply properties to match the datasheet supply > names. > - Describe and enable all four positive and four negative high-voltage > supplies. > - Reject duplicate channel nodes and configurations with too many > channels. > - Add the required 20 ns delay between reset assertion and deassertion. > - Add a macro to represent the number of channels. > - Return -ENODATA when device cannot be identified. > - Clarify that spi-device-addr contains one address per physical device. > - Drop the Microchip binding and driver changes from the series. > - Drop brackets around scalar spi-device-addr defaults. > - Simplify the regmap_assign_bits() reference selection value. > - Link to v7: https://lore.kernel.org/r/20260722-ad5529r-driver-v7-0-7781= cd74ad75@analog.com >=20 > Changes in v7: > - Drop #include > - Add comment on minimum HW reset low width. > - Flip the vref regulator error check. > - Clarify why spi-device-addr is an array, with one address per physical > device sharing a chip select. > - Add default addresses for mcp3564 and mcp3911 bindings. > - Initialize AD5529R regmap configurations locally using designated > initializers. > - Update "Patch Summary" section in the cover letter. > - Link to v6: https://lore.kernel.org/r/20260715-ad5529r-driver-v6-0-cfdf= 8b9f5ee3@analog.com >=20 > Changes in v6: > - Rename spi,device-addr to spi-device-addr and define it as an array at > peripheral node level. > - Fix the SPI binding patch subject prefix to use "spi: dt-bindings:". > - Add spi-device-addr to the MCP3564 and MCP3911 bindings. > - Deprecate the existing Microchip-specific device-address properties. > - Replace adi,output-range-microvolt with output-range-microvolt. > - Move AD5529R device addressing from channel nodes to the peripheral > node. > - Include linux/types.h > - Honour non-zero hardware address in the AD5529R driver. > - Dynamically expose only the channels described by devicetree and > remove unused scan type definitions. > - Use explicit reset assertion and deassertion as the GPIO reset > controller does not implement reset_control_reset(). > - Use the MICRO and MILLI unit constants when matching output ranges. > - Simplify optional reference regulator handling and remove the > external reference comment. > - Simplify error messages and stick to 80 col. > - Link to v5: https://lore.kernel.org/r/20260701-ad5529r-driver-v5-0-ed08= 7900e642@analog.com >=20 > Changes in v5: > - Move register bitfield definitions next to their parent register > addresses. > - Remove spurious extra indent. > - Rename ad5529r_output_ranges_mv[] to ad5529r_output_ranges_mV[]. > - Remove extra parentheses in regmap_reg_range() for the readback range. > - Use reset_control_reset() instead of reset_control_deassert(). > - Use 10 * USEC_PER_MSEC instead of a bare 10000 in fsleep(). > - Use fwnode_property_present() to explicitly guard the optional property. > - Rewrite external_vref detection using explicit if/else. > - Follow reverse christmas tree variable declaration order. > - Improve invalid channel error message to include the maximum. > - Add a new spi property to include the SPI device address. > - Update ad5529r devicetree binding to allow more than 16 channels to inc= lude multiple DACs. > - Update cover letter to add a mention about the multi device support. > - Update driver commit message to describe the device further. > - Link to v4: https://lore.kernel.org/r/20260609-ad5529r-driver-v4-0-2e4c= 02234a1a@analog.com >=20 > Changes in v4: > - Fix DT child-node regex for hexadecimal channel addresses. > - Wrap long DT binding description lines. > - Simplify optional `vref-supply` and `hvss-supply` handling. > - Update REF_SEL programming for optional external reference use. > - Clean up range parsing and error messages. > - Simplify debugfs register access by calling regmap helpers directly. > - Add clarifying comments for reset settling time and RAW reads from `DAC= _INPUT_A`. > - Remove an unused vref regulator pointer and an include. > - Rename the REF_SEL bit define and clean up small driver details. > - Toggle pins defined as PWM pins, instead of GPIOs > - Update cover letter to sync up latest changes. > - Link to v3: https://lore.kernel.org/r/20260519-ad5529r-driver-v3-0-267c= 0731aa68@analog.com >=20 > Changes in v3: > - Split into adi,ad5529r-16 and adi,ad5529r-12 device tree compatibles > - Add DT-based output range configuration via adi,output-range-microvolt > - Expand DT binding: vref-supply, clear/tg GPIOs, interrupts, muxout > - Correct power supply voltage specifications as per datasheet > - Reduce SPI frequency limit to 25MHz as per datasheet specs > - Switch to autoincrement addressing mode, remove +1 register offsets > - Use DT match data instead of device ID detection for fallback support > - Implement dynamic scale/offset calculation per configured channel range > - Added explicit val_format_endian and reg_stride for 16-bit regmap bus > - Code cleanup: alphabetical includes, ARRAY_SIZE(), unused defines > - Minor: .sign=E2=86=92.format field, simplify read/write order, optional= hvss-supply > - Remove redundant driver documentation ad5529r.rst > - Link to v2: https://lore.kernel.org/r/20260508-ad5529r-driver-v2-0-e315= 441685d7@analog.com >=20 > Changes in v2: > - Fix IIO scale to use millivolts per ABI requirement > - Fix documentation voltage calculations (2.5V not 2.048V) > - Fix bipolar ranges in documentation (=C2=B15V, =C2=B110V, =C2=B115V, = =C2=B120V) > - Fix alphabetical ordering in documentation index > - Add missing newline to documentation file > - Fix scale units description (millivolts not microvolts) > - Include a section for driver rationale in the cover letter > - Reword contents in cover letter 12/16 bit generic->variant > - Add dependency array for spi-cpha and spi-cpol properties > - Link to v1: https://lore.kernel.org/r/20260507-ad5529r-driver-v1-0-b446= 0f3cb44f@analog.com >=20 > --- > Janani Sunil (3): > spi: dt-bindings: Add spi-device-addr peripheral property > dt-bindings: iio: dac: Add AD5529R > iio: dac: Add AD5529R DAC driver support >=20 > .../devicetree/bindings/iio/dac/adi,ad5529r.yaml | 254 ++++++++++ > .../bindings/spi/spi-peripheral-props.yaml | 7 + > MAINTAINERS | 8 + > drivers/iio/dac/Kconfig | 17 + > drivers/iio/dac/Makefile | 1 + > drivers/iio/dac/ad5529r.c | 530 +++++++++++++++= ++++++ > 6 files changed, 817 insertions(+) > --- > base-commit: 93df88612859e8e19dec93c69d563b4b73e9bd4b > change-id: 20260507-ad5529r-driver-866bbdd864de >=20 > Best regards, 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 525FDC5CFC1 for ; Sat, 15 Aug 2026 21:49:16 +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:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AhmtbihY9FGt+lxe3aYgfAP79jr/LGF0HS0ofDdwU1M=; b=NKJfZWpK+fBsfo dz1HUGCY3rbAMEPqWG8fXyy8tsFnPASmXjmv14ogH/WUdJ8COSV6D8V9PzKDlVTzI73vZ2Xuq7+H8 YquEslIPCR3A2BBh8flhPvddZlmepYVUbuDSp1ySmJv3z+aqEOD/PYEKpVQoMhPks43GLoUezkOI+ 1oN9Cz7SOaANbvShwqaR0I49Wd1vR7YdaJhhlF+Wbu1/dya1rHRHXFKdp81/YafrHOFRJGsdBKcLh h2oLdikEPdjsaV6qEVKDVcvh2rR98CifMeOhtoc+KrCvXsbfBSexXOoZuIVMFNehEt0YA1HJeTsIC qPsj/ZABy9oOWhUZV53Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wvMFE-00000004DDj-45xa; Sat, 15 Aug 2026 21:48:49 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wvMFC-00000004DDa-3ryu for linux-riscv@lists.infradead.org; Sat, 15 Aug 2026 21:48:47 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id D536C600E2; Sat, 15 Aug 2026 21:48:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EB351F000E9; Sat, 15 Aug 2026 21:48:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1786830525; bh=K622mBfxNoMEQ0Rnt0bsFc4J2+42BrZq9uR3gxYzrjM=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=cvju8Hyq3jsfX1UUhzQ55EfLwK5OtQsBZUbms7lYNLMxiQisgSQy3gurK5BqGVzar 3wnbKEkDdFBL/GKdR9Bnowe1TQz5KOQQD6JIsvdJ4RVrlYUcujPSqulTD3ooKn/zee m3Ish+QZgJ410UNuNlUv541GGtPhSxAy/YJKkobQ14zXw1bY870jy3Vq1b3nxpGBdy AuHxgHbeZWnOVzWbJLA8wo6yzGA1ZC0HI8KOLabeMYuHCsQw3dTPMqOFMwmimF7EU/ ZPAWJYrp4l5DjTI32HuK0qbCenA51PjsBP+l7zTRQFAp13mlXkW+5Lto8XThvpG5Xe P5nlWixd8nfxQ== Date: Sat, 15 Aug 2026 22:48:38 +0100 From: Jonathan Cameron To: Janani Sunil Cc: Lars-Peter Clausen , Michael Hennerich , "David Lechner" , Nuno =?UTF-8?B?U8Oh?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , "Jonathan Corbet" , Shuah Khan , Mark Brown , Marius Cristea , "Marcus Folkesson" , Kent Gustavsson , Conor Dooley , Daire McNamara , Paul Walmsley , "Palmer Dabbelt" , Albert Ou , "Alexandre Ghiti" , , , , , Janani Sunil , , Kent Gustavsson , Subject: Re: [PATCH v8 0/3] iio: dac: Add support for AD5529R DAC Message-ID: <20260815224838.2bf9fdde@jic23-huawei> In-Reply-To: <20260805-ad5529r-driver-v8-0-b41781f5632a@analog.com> References: <20260805-ad5529r-driver-v8-0-b41781f5632a@analog.com> X-Mailer: Claws Mail 4.4.0 (GTK 3.24.52; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkLCA1IEF1ZyAyMDI2IDA5OjE3OjQwICswMjAwCkphbmFuaSBTdW5pbCA8amFuYW5pLnN1 bmlsQGFuYWxvZy5jb20+IHdyb3RlOgoKPiBUaGlzIHBhdGNoIHNlcmllcyBhZGRzIHN1cHBvcnQg Zm9yIEFuYWxvZyBEZXZpY2VzIEFENTUyOVIsIGEgMTYgY2hhbm5lbAo+IDE2IGFuZCAxMiBiaXQg dm9sdGFnZSBEaWdpdGFsLXRvLUFuYWxvZyBDb252ZXJ0ZXIgKERBQykgd2l0aCBpbnRlZ3JhdGVk Cj4gcHJlY2lzaW9uIHJlZmVyZW5jZS4gVGhlIEFENTUyOVIgb3BlcmF0ZXMgZnJvbSBib3RoIHVu aXBvbGFyIGFuZAo+IGJpcG9sYXIgc3VwcGxpZXMuIFRoZSBkZXZpY2UgY29tbXVuaWNhdGVzIHZp YSBTUEkgaW50ZXJmYWNlLgoKaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwODA1 LWFkNTUyOXItZHJpdmVyLXY4LTAtYjQxNzgxZjU2MzJhJTQwYW5hbG9nLmNvbQpoYXMgc29tZSBj b21tZW50cy4KCkkgdGhpbmsgdGhlIGR0IG9uZXMgYXJlIGZpbmUgYXMgd2UgZG8gd2FudCB0byBl eHBsaWNpdGx5IGxpc3QgYWxsCnRoZSBkYWMueWFtbCBwcm9wZXJ0aWVzIGluIGhlcmUgdG8gY29u c3RyYWluIHRoZW0gZnVydGhlci4KClRoZSBvbmUgYWJvdXQgc2xlZXBpbmcgYWZ0ZXIgZW5hYmxp bmcgcmVndWxhdG9ycyBsb29rcyBjb3JyZWN0IHRob3VnaC4KSSdkIGFkZCBhbiBmc2xlZXAoKSB0 byBlbnN1cmUgbm90aGluZyBlbHNlIGhhcHBlbnMgaW1tZWRpYXRlbHkgYWZ0ZXIKc3dpdGNoaW5n IHRoZSBwb3dlciBvbi4KClRoZSBvdGhlciBzbGVlcCByZWxhdGVkIHRoaW5nIGFib3V0IGFsbG93 aW5nIGV4dHJhIHRpbWUuIERvbid0IGJvdGhlcgp1bmxlc3Mgd2UgZ2V0IGEgcmVwb3J0IG9mIHBy b2JsZW1zIGFzIHRoZXJlIHdpbGwgYmUgZXh0cmEgZGVsYXkgYW55d2F5CmR1ZSB0byB0aGUgY2Fs bCBvdmVyaGVhZCBldGMgYW5kIGRhdGFzaGVldCB2YWx1ZXMgdGVuZCB0byBiZSBjb25zZXJ2YXRp dmUuCgpGb3IgdGhlIHNjYWxlIHJlbGF0ZWQgb25lLCBwZXJoYXBzIGFkZCBhIGNvbW1lbnQgdGhl cmUgcmVmZXJyaW5nCnRvIGRhdGFzaGVldCBzcGVjaWZ5aW5nIHRoZSByZWZlcmVuY2Ugdm9sdGFn ZSBpZiBhbiBleHRlcm5hbCByZWZlcmVuY2UKaXMgdXNlZCBzaG91bGQgYmUgc2FtZSBhcyBvdXRw dXQgb2YgaW50ZXJuYWwgcmVmZXJlbmNlLgoKR2l2ZW4geW91ciByZWdtYXAgaXMgd29ya2luZyBJ J2xsIGFzc3VtZSB0aGUgb25lIGFib3V0IG1peGVkCmVuZGlhbiBpcyBhIGZhbHNlIHBvc2l0aXZl LgoKSm9uYXRoYW4KCj4gCj4gKipEZXZpY2UgT3ZlcnZpZXc6KioKPiBUaGUgQUQ1NTI5UiBmZWF0 dXJlcyAxNiBpbmRlcGVuZGVudCBEQUMgY2hhbm5lbHMsIHdpdGggMTYgb3IgMTIgYml0Cj4gcmVz b2x1dGlvbiwgYWxsb3dpbmcgaW5kZXBlbmRlbnRseSBwcm9ncmFtbWFibGUgb3V0cHV0IHJhbmdl cy4gVGhlCj4gaW50ZXJuYWwgNC4wOTZWIHByZWNpc2lvbiByZWZlcmVuY2Ugc2V0cyB0aGUgYWNj dXJhY3kgb2YgdGhlIG91dHB1dAo+IHZvbHRhZ2UuCj4gCj4gVGhlIGRldmljZSBjYW4gZW5jb2Rl IGEgaGFyZHdhcmUgYWRkcmVzcyBpbiBpdHMgU1BJIGNvbW1hbmQgZnJhbWUsCj4gYWxsb3dpbmcg dXAgdG8gNCBkZXZpY2VzIHRvIHNoYXJlIGEgc2luZ2xlIGNoaXAgc2VsZWN0LiBUaGlzIHNlcmll cwo+IGludHJvZHVjZXMgYSBnZW5lcmljIHNwaS1kZXZpY2UtYWRkciBwcm9wZXJ0eSBmb3IgZGVz Y3JpYmluZyB0aGlzIHR5cGUKPiBvZiBhZGRyZXNzaW5nLgo+IAo+ICoqRmVhdHVyZXMgSW1wbGVt ZW50ZWQ6KioKPiAtIFN1cHBvcnQgZm9yIEFENTUyOVIgMTItYml0IGFuZCAxNi1iaXQgdmFyaWFu dHMgdmlhIGRldmljZSBtYXRjaCBkYXRhLgo+IC0gU3VwcG9ydCBmb3IgYSBzaW5nbGUgREFDIGRl dmljZSB1c2luZyBhbnkgaGFyZHdhcmUgYWRkcmVzcyBiZXR3ZWVuIDAKPiAgIGFuZCAzLgo+IC0g UmVzZXQgc3VwcG9ydCB2aWEgcmVzZXQgY29udHJvbGxlciBmcmFtZXdvcmsuCj4gLSBEdWFsIHJl Z21hcCBjb25maWd1cmF0aW9uIHRvIGhhbmRsZSA4IGFuZCAxNiBiaXQgcmVnaXN0ZXJzLgo+IC0g UGVyLWNoYW5uZWwgb3V0cHV0IHJhbmdlIGNvbmZpZ3VyYXRpb24gZnJvbSBkZXZpY2V0cmVlLgo+ IC0gT3B0aW9uYWwgZXh0ZXJuYWwgcmVmZXJlbmNlIGFuZCBiaXBvbGFyIHN1cHBseSBoYW5kbGlu Zy4KPiAKPiAqKlBhdGNoIFN1bW1hcnk6KioKPiAxLiBBZGQgdGhlIGdlbmVyaWMgc3BpLWRldmlj ZS1hZGRyIFNQSSBwZXJpcGhlcmFsIHByb3BlcnR5Lgo+IDIuIEFENTUyOVIgYmluZGluZyBkb2N1 bWVudGF0aW9uIHdpdGggY2hhbm5lbCBjb25maWd1cmF0aW9uLgo+IDMuIEltcGxlbWVudCBBRDU1 MjlSIElJTyBEQUMgRHJpdmVyIHdpdGggcmVnbWFwIHN1cHBvcnQuCj4gCj4gKipUZXN0aW5nOioq Cj4gVGhlIGRyaXZlciB3YXMgY29tcGlsZWQgYW5kIHRlc3RlZCBvbiB0aGUgRVZBTC1BRDU1MjlS LUFSRFogdXNpbmcgYQo+IGNvcmFaNyB3aXRoIGEgbWFpbmxpbmUgdjcuMCBrZXJuZWwuCj4gCj4g KipEcml2ZXIgUmF0aW9uYWxlOioqCj4gQUQ1NTI5UiBpbnRyb2R1Y2VzOgo+IDEuIEEgdW5pcXVl IHJlZ2lzdGVyIGxheW91dAo+IDIuIE1peGVkIDgtYml0IGFuZCAxNi1iaXQgcmVnaXN0ZXIgYWNj ZXNzZXMKPiAzLiBIYXJkd2FyZSBzcGVjaWZpYyBmZWF0dXJlcyBsaWtlIGZ1bmN0aW9uIGdlbmVy YXRvcnMsIG11bHRpLWRpZQo+IGhvdHBhdGggcmVnaXN0ZXJzIGV0Yy4KPiAKPiBUaGUgZGV2aWNl IHdhcnJhbnRzIGl0cyBvd24gZHJpdmVyIGR1ZSB0byB0aGVzZSBmdW5kYW1lbnRhbAo+IGFyY2hp dGVjdHVyYWwgZGlmZmVyZW5jZXMsIHRoYXQgd291bGQgcmVxdWlyZSBzdWJzdGFudGlhbCBjaGFu Z2VzIHRvCj4gZXhpc3RpbmcgZHJpdmVycyB3aXRob3V0IHByb3ZpZGluZyByZXVzYWJsZSBiZW5l Zml0cy4gVGhlIHN0YW5kYWxvbmUKPiBkcml2ZXIgYWxzbyBhbGxvd3MgZnV0dXJlIGV4dGVuc2lv bnMgZm9yIHJlbGF0ZWQgZGV2aWNlcyBpbiB0aGUgc2FtZQo+IGZhbWlseS4KPiAKPiAqKk5vdCBJ bXBsZW1lbnRlZCBpbiB0aGlzIFNlcmllczoqKgo+IFRoZSBiaW5kaW5nIGluY2x1ZGVzIGdlbmVy aWMsIHBlcmlwaGVyYWwgbGV2ZWwgZGV2aWNlIGFkZHJlc3NpbmcgbmVlZGVkIGZvcgo+IG11bHRp LWRldmljZSBzdXBwb3J0IHVzaW5nIGEgc2hhcmVkIENTLCBidXQgdGhlIGRyaXZlciBwcmVzZW50 bHkKPiBzdXBwb3J0cyBvbmx5IGEgc2luZ2xlIGRldmljZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBK YW5hbmkgU3VuaWwgPGphbmFuaS5zdW5pbEBhbmFsb2cuY29tPgo+IC0tLQo+IENoYW5nZXMgaW4g djg6Cj4gLSBSZW5hbWUgdGhlIEFENTUyOVIgc3VwcGx5IHByb3BlcnRpZXMgdG8gbWF0Y2ggdGhl IGRhdGFzaGVldCBzdXBwbHkKPiAgIG5hbWVzLgo+IC0gRGVzY3JpYmUgYW5kIGVuYWJsZSBhbGwg Zm91ciBwb3NpdGl2ZSBhbmQgZm91ciBuZWdhdGl2ZSBoaWdoLXZvbHRhZ2UKPiAgIHN1cHBsaWVz Lgo+IC0gUmVqZWN0IGR1cGxpY2F0ZSBjaGFubmVsIG5vZGVzIGFuZCBjb25maWd1cmF0aW9ucyB3 aXRoIHRvbyBtYW55Cj4gICBjaGFubmVscy4KPiAtIEFkZCB0aGUgcmVxdWlyZWQgMjAgbnMgZGVs YXkgYmV0d2VlbiByZXNldCBhc3NlcnRpb24gYW5kIGRlYXNzZXJ0aW9uLgo+IC0gQWRkIGEgbWFj cm8gdG8gcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgY2hhbm5lbHMuCj4gLSBSZXR1cm4gLUVOT0RB VEEgd2hlbiBkZXZpY2UgY2Fubm90IGJlIGlkZW50aWZpZWQuCj4gLSBDbGFyaWZ5IHRoYXQgc3Bp LWRldmljZS1hZGRyIGNvbnRhaW5zIG9uZSBhZGRyZXNzIHBlciBwaHlzaWNhbCBkZXZpY2UuCj4g LSBEcm9wIHRoZSBNaWNyb2NoaXAgYmluZGluZyBhbmQgZHJpdmVyIGNoYW5nZXMgZnJvbSB0aGUg c2VyaWVzLgo+IC0gRHJvcCBicmFja2V0cyBhcm91bmQgc2NhbGFyIHNwaS1kZXZpY2UtYWRkciBk ZWZhdWx0cy4KPiAtIFNpbXBsaWZ5IHRoZSByZWdtYXBfYXNzaWduX2JpdHMoKSByZWZlcmVuY2Ug c2VsZWN0aW9uIHZhbHVlLgo+IC0gTGluayB0byB2NzogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcv ci8yMDI2MDcyMi1hZDU1MjlyLWRyaXZlci12Ny0wLTc3ODFjZDc0YWQ3NUBhbmFsb2cuY29tCj4g Cj4gQ2hhbmdlcyBpbiB2NzoKPiAtIERyb3AgI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJs ZS5oPgo+IC0gQWRkIGNvbW1lbnQgb24gbWluaW11bSBIVyByZXNldCBsb3cgd2lkdGguCj4gLSBG bGlwIHRoZSB2cmVmIHJlZ3VsYXRvciBlcnJvciBjaGVjay4KPiAtIENsYXJpZnkgd2h5IHNwaS1k ZXZpY2UtYWRkciBpcyBhbiBhcnJheSwgd2l0aCBvbmUgYWRkcmVzcyBwZXIgcGh5c2ljYWwKPiAg IGRldmljZSBzaGFyaW5nIGEgY2hpcCBzZWxlY3QuCj4gLSBBZGQgZGVmYXVsdCBhZGRyZXNzZXMg Zm9yIG1jcDM1NjQgYW5kIG1jcDM5MTEgYmluZGluZ3MuCj4gLSBJbml0aWFsaXplIEFENTUyOVIg cmVnbWFwIGNvbmZpZ3VyYXRpb25zIGxvY2FsbHkgdXNpbmcgZGVzaWduYXRlZAo+ICAgaW5pdGlh bGl6ZXJzLgo+IC0gVXBkYXRlICJQYXRjaCBTdW1tYXJ5IiBzZWN0aW9uIGluIHRoZSBjb3ZlciBs ZXR0ZXIuCj4gLSBMaW5rIHRvIHY2OiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjYwNzE1 LWFkNTUyOXItZHJpdmVyLXY2LTAtY2ZkZjhiOWY1ZWUzQGFuYWxvZy5jb20KPiAKPiBDaGFuZ2Vz IGluIHY2Ogo+IC0gUmVuYW1lIHNwaSxkZXZpY2UtYWRkciB0byBzcGktZGV2aWNlLWFkZHIgYW5k IGRlZmluZSBpdCBhcyBhbiBhcnJheSBhdAo+ICAgcGVyaXBoZXJhbCBub2RlIGxldmVsLgo+IC0g Rml4IHRoZSBTUEkgYmluZGluZyBwYXRjaCBzdWJqZWN0IHByZWZpeCB0byB1c2UgInNwaTogZHQt YmluZGluZ3M6Ii4KPiAtIEFkZCBzcGktZGV2aWNlLWFkZHIgdG8gdGhlIE1DUDM1NjQgYW5kIE1D UDM5MTEgYmluZGluZ3MuCj4gLSBEZXByZWNhdGUgdGhlIGV4aXN0aW5nIE1pY3JvY2hpcC1zcGVj aWZpYyBkZXZpY2UtYWRkcmVzcyBwcm9wZXJ0aWVzLgo+IC0gUmVwbGFjZSBhZGksb3V0cHV0LXJh bmdlLW1pY3Jvdm9sdCB3aXRoIG91dHB1dC1yYW5nZS1taWNyb3ZvbHQuCj4gLSBNb3ZlIEFENTUy OVIgZGV2aWNlIGFkZHJlc3NpbmcgZnJvbSBjaGFubmVsIG5vZGVzIHRvIHRoZSBwZXJpcGhlcmFs Cj4gICBub2RlLgo+IC0gSW5jbHVkZSBsaW51eC90eXBlcy5oCj4gLSBIb25vdXIgbm9uLXplcm8g aGFyZHdhcmUgYWRkcmVzcyBpbiB0aGUgQUQ1NTI5UiBkcml2ZXIuCj4gLSBEeW5hbWljYWxseSBl eHBvc2Ugb25seSB0aGUgY2hhbm5lbHMgZGVzY3JpYmVkIGJ5IGRldmljZXRyZWUgYW5kCj4gICBy ZW1vdmUgdW51c2VkIHNjYW4gdHlwZSBkZWZpbml0aW9ucy4KPiAtIFVzZSBleHBsaWNpdCByZXNl dCBhc3NlcnRpb24gYW5kIGRlYXNzZXJ0aW9uIGFzIHRoZSBHUElPIHJlc2V0Cj4gICBjb250cm9s bGVyIGRvZXMgbm90IGltcGxlbWVudCByZXNldF9jb250cm9sX3Jlc2V0KCkuCj4gLSBVc2UgdGhl IE1JQ1JPIGFuZCBNSUxMSSB1bml0IGNvbnN0YW50cyB3aGVuIG1hdGNoaW5nIG91dHB1dCByYW5n ZXMuCj4gLSAgU2ltcGxpZnkgb3B0aW9uYWwgcmVmZXJlbmNlIHJlZ3VsYXRvciBoYW5kbGluZyBh bmQgcmVtb3ZlIHRoZQo+ICAgIGV4dGVybmFsIHJlZmVyZW5jZSBjb21tZW50Lgo+IC0gU2ltcGxp ZnkgZXJyb3IgbWVzc2FnZXMgYW5kIHN0aWNrIHRvIDgwIGNvbC4KPiAtIExpbmsgdG8gdjU6IGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL3IvMjAyNjA3MDEtYWQ1NTI5ci1kcml2ZXItdjUtMC1lZDA4 NzkwMGU2NDJAYW5hbG9nLmNvbQo+IAo+IENoYW5nZXMgaW4gdjU6Cj4gLSBNb3ZlIHJlZ2lzdGVy IGJpdGZpZWxkIGRlZmluaXRpb25zIG5leHQgdG8gdGhlaXIgcGFyZW50IHJlZ2lzdGVyCj4gICBh ZGRyZXNzZXMuCj4gLSBSZW1vdmUgc3B1cmlvdXMgZXh0cmEgaW5kZW50Lgo+IC0gUmVuYW1lIGFk NTUyOXJfb3V0cHV0X3Jhbmdlc19tdltdIHRvIGFkNTUyOXJfb3V0cHV0X3Jhbmdlc19tVltdLgo+ IC0gUmVtb3ZlIGV4dHJhIHBhcmVudGhlc2VzIGluIHJlZ21hcF9yZWdfcmFuZ2UoKSBmb3IgdGhl IHJlYWRiYWNrIHJhbmdlLgo+IC0gVXNlIHJlc2V0X2NvbnRyb2xfcmVzZXQoKSBpbnN0ZWFkIG9m IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQoKS4KPiAtIFVzZSAxMCAqIFVTRUNfUEVSX01TRUMgaW5z dGVhZCBvZiBhIGJhcmUgMTAwMDAgaW4gZnNsZWVwKCkuCj4gLSBVc2UgZndub2RlX3Byb3BlcnR5 X3ByZXNlbnQoKSB0byBleHBsaWNpdGx5IGd1YXJkIHRoZSBvcHRpb25hbCBwcm9wZXJ0eS4KPiAt IFJld3JpdGUgZXh0ZXJuYWxfdnJlZiBkZXRlY3Rpb24gdXNpbmcgZXhwbGljaXQgaWYvZWxzZS4K PiAtIEZvbGxvdyByZXZlcnNlIGNocmlzdG1hcyB0cmVlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIG9y ZGVyLgo+IC0gSW1wcm92ZSBpbnZhbGlkIGNoYW5uZWwgZXJyb3IgbWVzc2FnZSB0byBpbmNsdWRl IHRoZSBtYXhpbXVtLgo+IC0gQWRkIGEgbmV3IHNwaSBwcm9wZXJ0eSB0byBpbmNsdWRlIHRoZSBT UEkgZGV2aWNlIGFkZHJlc3MuCj4gLSBVcGRhdGUgYWQ1NTI5ciBkZXZpY2V0cmVlIGJpbmRpbmcg dG8gYWxsb3cgbW9yZSB0aGFuIDE2IGNoYW5uZWxzIHRvIGluY2x1ZGUgbXVsdGlwbGUgREFDcy4K PiAtIFVwZGF0ZSBjb3ZlciBsZXR0ZXIgdG8gYWRkIGEgbWVudGlvbiBhYm91dCB0aGUgbXVsdGkg ZGV2aWNlIHN1cHBvcnQuCj4gLSBVcGRhdGUgZHJpdmVyIGNvbW1pdCBtZXNzYWdlIHRvIGRlc2Ny aWJlIHRoZSBkZXZpY2UgZnVydGhlci4KPiAtIExpbmsgdG8gdjQ6IGh0dHBzOi8vbG9yZS5rZXJu ZWwub3JnL3IvMjAyNjA2MDktYWQ1NTI5ci1kcml2ZXItdjQtMC0yZTRjMDIyMzRhMWFAYW5hbG9n LmNvbQo+IAo+IENoYW5nZXMgaW4gdjQ6Cj4gLSBGaXggRFQgY2hpbGQtbm9kZSByZWdleCBmb3Ig aGV4YWRlY2ltYWwgY2hhbm5lbCBhZGRyZXNzZXMuCj4gLSBXcmFwIGxvbmcgRFQgYmluZGluZyBk ZXNjcmlwdGlvbiBsaW5lcy4KPiAtIFNpbXBsaWZ5IG9wdGlvbmFsIGB2cmVmLXN1cHBseWAgYW5k IGBodnNzLXN1cHBseWAgaGFuZGxpbmcuCj4gLSBVcGRhdGUgUkVGX1NFTCBwcm9ncmFtbWluZyBm b3Igb3B0aW9uYWwgZXh0ZXJuYWwgcmVmZXJlbmNlIHVzZS4KPiAtIENsZWFuIHVwIHJhbmdlIHBh cnNpbmcgYW5kIGVycm9yIG1lc3NhZ2VzLgo+IC0gU2ltcGxpZnkgZGVidWdmcyByZWdpc3RlciBh Y2Nlc3MgYnkgY2FsbGluZyByZWdtYXAgaGVscGVycyBkaXJlY3RseS4KPiAtIEFkZCBjbGFyaWZ5 aW5nIGNvbW1lbnRzIGZvciByZXNldCBzZXR0bGluZyB0aW1lIGFuZCBSQVcgcmVhZHMgZnJvbSBg REFDX0lOUFVUX0FgLgo+IC0gUmVtb3ZlIGFuIHVudXNlZCB2cmVmIHJlZ3VsYXRvciBwb2ludGVy IGFuZCBhbiBpbmNsdWRlLgo+IC0gUmVuYW1lIHRoZSBSRUZfU0VMIGJpdCBkZWZpbmUgYW5kIGNs ZWFuIHVwIHNtYWxsIGRyaXZlciBkZXRhaWxzLgo+IC0gVG9nZ2xlIHBpbnMgZGVmaW5lZCBhcyBQ V00gcGlucywgaW5zdGVhZCBvZiBHUElPcwo+IC0gVXBkYXRlIGNvdmVyIGxldHRlciB0byBzeW5j IHVwIGxhdGVzdCBjaGFuZ2VzLgo+IC0gTGluayB0byB2MzogaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvci8yMDI2MDUxOS1hZDU1MjlyLWRyaXZlci12My0wLTI2N2MwNzMxYWE2OEBhbmFsb2cuY29t Cj4gCj4gQ2hhbmdlcyBpbiB2MzoKPiAtIFNwbGl0IGludG8gYWRpLGFkNTUyOXItMTYgYW5kIGFk aSxhZDU1MjlyLTEyIGRldmljZSB0cmVlIGNvbXBhdGlibGVzCj4gLSBBZGQgRFQtYmFzZWQgb3V0 cHV0IHJhbmdlIGNvbmZpZ3VyYXRpb24gdmlhIGFkaSxvdXRwdXQtcmFuZ2UtbWljcm92b2x0Cj4g LSBFeHBhbmQgRFQgYmluZGluZzogdnJlZi1zdXBwbHksIGNsZWFyL3RnIEdQSU9zLCBpbnRlcnJ1 cHRzLCBtdXhvdXQKPiAtIENvcnJlY3QgcG93ZXIgc3VwcGx5IHZvbHRhZ2Ugc3BlY2lmaWNhdGlv bnMgYXMgcGVyIGRhdGFzaGVldAo+IC0gUmVkdWNlIFNQSSBmcmVxdWVuY3kgbGltaXQgdG8gMjVN SHogYXMgcGVyIGRhdGFzaGVldCBzcGVjcwo+IC0gU3dpdGNoIHRvIGF1dG9pbmNyZW1lbnQgYWRk cmVzc2luZyBtb2RlLCByZW1vdmUgKzEgcmVnaXN0ZXIgb2Zmc2V0cwo+IC0gVXNlIERUIG1hdGNo IGRhdGEgaW5zdGVhZCBvZiBkZXZpY2UgSUQgZGV0ZWN0aW9uIGZvciBmYWxsYmFjayBzdXBwb3J0 Cj4gLSBJbXBsZW1lbnQgZHluYW1pYyBzY2FsZS9vZmZzZXQgY2FsY3VsYXRpb24gcGVyIGNvbmZp Z3VyZWQgY2hhbm5lbCByYW5nZQo+IC0gQWRkZWQgZXhwbGljaXQgdmFsX2Zvcm1hdF9lbmRpYW4g YW5kIHJlZ19zdHJpZGUgZm9yIDE2LWJpdCByZWdtYXAgYnVzCj4gLSBDb2RlIGNsZWFudXA6IGFs cGhhYmV0aWNhbCBpbmNsdWRlcywgQVJSQVlfU0laRSgpLCB1bnVzZWQgZGVmaW5lcwo+IC0gTWlu b3I6IC5zaWdu4oaSLmZvcm1hdCBmaWVsZCwgc2ltcGxpZnkgcmVhZC93cml0ZSBvcmRlciwgb3B0 aW9uYWwgaHZzcy1zdXBwbHkKPiAtIFJlbW92ZSByZWR1bmRhbnQgZHJpdmVyIGRvY3VtZW50YXRp b24gYWQ1NTI5ci5yc3QKPiAtIExpbmsgdG8gdjI6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3Iv MjAyNjA1MDgtYWQ1NTI5ci1kcml2ZXItdjItMC1lMzE1NDQxNjg1ZDdAYW5hbG9nLmNvbQo+IAo+ IENoYW5nZXMgaW4gdjI6Cj4gLSBGaXggSUlPIHNjYWxlIHRvIHVzZSBtaWxsaXZvbHRzIHBlciBB QkkgcmVxdWlyZW1lbnQKPiAtIEZpeCBkb2N1bWVudGF0aW9uIHZvbHRhZ2UgY2FsY3VsYXRpb25z ICgyLjVWIG5vdCAyLjA0OFYpCj4gLSBGaXggYmlwb2xhciByYW5nZXMgaW4gZG9jdW1lbnRhdGlv biAowrE1ViwgwrExMFYsIMKxMTVWLCDCsTIwVikKPiAtIEZpeCBhbHBoYWJldGljYWwgb3JkZXJp bmcgaW4gZG9jdW1lbnRhdGlvbiBpbmRleAo+IC0gQWRkIG1pc3NpbmcgbmV3bGluZSB0byBkb2N1 bWVudGF0aW9uIGZpbGUKPiAtIEZpeCBzY2FsZSB1bml0cyBkZXNjcmlwdGlvbiAobWlsbGl2b2x0 cyBub3QgbWljcm92b2x0cykKPiAtIEluY2x1ZGUgYSBzZWN0aW9uIGZvciBkcml2ZXIgcmF0aW9u YWxlIGluIHRoZSBjb3ZlciBsZXR0ZXIKPiAtIFJld29yZCBjb250ZW50cyBpbiBjb3ZlciBsZXR0 ZXIgMTIvMTYgYml0IGdlbmVyaWMtPnZhcmlhbnQKPiAtIEFkZCBkZXBlbmRlbmN5IGFycmF5IGZv ciBzcGktY3BoYSBhbmQgc3BpLWNwb2wgcHJvcGVydGllcwo+IC0gTGluayB0byB2MTogaHR0cHM6 Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDI2MDUwNy1hZDU1MjlyLWRyaXZlci12MS0wLWI0NDYwZjNj YjQ0ZkBhbmFsb2cuY29tCj4gCj4gLS0tCj4gSmFuYW5pIFN1bmlsICgzKToKPiAgICAgICBzcGk6 IGR0LWJpbmRpbmdzOiBBZGQgc3BpLWRldmljZS1hZGRyIHBlcmlwaGVyYWwgcHJvcGVydHkKPiAg ICAgICBkdC1iaW5kaW5nczogaWlvOiBkYWM6IEFkZCBBRDU1MjlSCj4gICAgICAgaWlvOiBkYWM6 IEFkZCBBRDU1MjlSIERBQyBkcml2ZXIgc3VwcG9ydAo+IAo+ICAuLi4vZGV2aWNldHJlZS9iaW5k aW5ncy9paW8vZGFjL2FkaSxhZDU1MjlyLnlhbWwgICB8IDI1NCArKysrKysrKysrCj4gIC4uLi9i aW5kaW5ncy9zcGkvc3BpLXBlcmlwaGVyYWwtcHJvcHMueWFtbCAgICAgICAgIHwgICA3ICsKPiAg TUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDgg Kwo+ICBkcml2ZXJzL2lpby9kYWMvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAxNyArCj4gIGRyaXZlcnMvaWlvL2RhYy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxICsKPiAgZHJpdmVycy9paW8vZGFjL2FkNTUyOXIuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA1MzAgKysrKysrKysrKysrKysrKysrKysrCj4gIDYgZmlsZXMgY2hhbmdlZCwg ODE3IGluc2VydGlvbnMoKykKPiAtLS0KPiBiYXNlLWNvbW1pdDogOTNkZjg4NjEyODU5ZThlMTlk ZWM5M2M2OWQ1NjNiNGI3M2U5YmQ0Ygo+IGNoYW5nZS1pZDogMjAyNjA1MDctYWQ1NTI5ci1kcml2 ZXItODY2YmJkZDg2NGRlCj4gCj4gQmVzdCByZWdhcmRzLAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51 eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK