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 422ADC4167B for ; Mon, 12 Dec 2022 13:59:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233300AbiLLN67 (ORCPT ); Mon, 12 Dec 2022 08:58:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233309AbiLLN6x (ORCPT ); Mon, 12 Dec 2022 08:58:53 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB682FD7 for ; Mon, 12 Dec 2022 05:58:50 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id p13-20020a05600c468d00b003cf8859ed1bso5245431wmo.1 for ; Mon, 12 Dec 2022 05:58:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20210112.gappssmtp.com; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=SrwQ/Z4IreXW+hFxY6PA7uZd/VCLbBUnFznKWdDotp8=; b=X/2sLRBjQ6U2PUOiuvTlhlKbZ9MAIT48e7tuvdfZYc2GfTVSLMe5YelNw1pdhp/Rl0 /3DrWvybkA1gdHu6FeW1Kkl8FQ4PN4vDRb6DQsQMIAGLE+agqhgKs1YnIN4FHVP2eSPV fN6P7OWMMrXMpIiHaoS1tohZ/ldlr+14TU6gpbLsprtkR8fghASAVNBDENl5CDj+ZVLf ZrtJ60s8DLKwazjCbFRODmvp9kf9SnJbJWR7wkg7c9JfNym4rj8V19cvlxv9O1Fyi0Ew tky7tmmezS83sPCh85Jka361QWzVYnS1/4xG8j4wEliCBMU7GmUlr9KVM1tSZdHjZAGH R6Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SrwQ/Z4IreXW+hFxY6PA7uZd/VCLbBUnFznKWdDotp8=; b=vzzm60GdEMPi0lhf/vMhd+a33Xoc73KT30dySWwCQNVVGJYGw64TlTsCC09lhPjVD+ hfHNzc3/p1o6dH5qIAQpnLGRK+UJsGe0W0vygObnH21LNh2QhberUh5LCQfD4xrmJTyH paW9d5ulK70HiNJNw50zHSNaiHylSZoyOSCSmL/mN2nLfmX3cF5hM1Zo6N7gKYOrpQKE fzQtQLCiwkf7ZsBPUxyotPMt863KwEUVGH0WHQJlnmWVOtgSjdGvjdbpgY4n95y+BRH4 r41ciAaf6eZ3tsXD8OniRCTW0prD5yr4OjM8A9ClHSbIjTWgnK7DLrhx290MOWG/izm4 VMQQ== X-Gm-Message-State: ANoB5pkWGXi71U+f7sXThM4VEM0hErMaQu/boMLKKqlxxWm5ue7weizN HjIjmm/JL6lqCKgdm03+mu+W17IV0qKDKZS+E3DJ+A== X-Google-Smtp-Source: AA0mqf6XAGOuVepLC5bcp6CjC+gBwt+ZuvWZE1L7CAhX0Z34rq43pHR19ttU9uAYyaSsdVhxkhBOUA== X-Received: by 2002:a1c:7c15:0:b0:3cf:7197:e67c with SMTP id x21-20020a1c7c15000000b003cf7197e67cmr12189388wmc.25.1670853529485; Mon, 12 Dec 2022 05:58:49 -0800 (PST) Received: from localhost (mail.chocen-mesto.cz. [85.163.43.2]) by smtp.gmail.com with ESMTPSA id m5-20020a05600c4f4500b003d1e1f421bfsm10159615wmq.10.2022.12.12.05.58.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Dec 2022 05:58:48 -0800 (PST) Date: Mon, 12 Dec 2022 14:58:47 +0100 From: Jiri Pirko To: Jakub Kicinski Cc: Maciek Machnikowski , "'Kubalewski, Arkadiusz'" , 'Vadim Fedorenko' , 'Jonathan Lemon' , 'Paolo Abeni' , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org Subject: Re: [RFC PATCH v4 0/4] Create common DPLL/clock configuration API Message-ID: References: <20221206184740.28cb7627@kernel.org> <10bb01d90a45$77189060$6549b120$@gmail.com> <20221207152157.6185b52b@kernel.org> <6e252f6d-283e-7138-164f-092709bc1292@machnikowski.net> <20221209083104.2469ebd6@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20221209083104.2469ebd6@kernel.org> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Fri, Dec 09, 2022 at 05:31:04PM CET, kuba@kernel.org wrote: >On Fri, 9 Dec 2022 15:09:08 +0100 Maciek Machnikowski wrote: >> On 12/9/2022 12:07 PM, Jiri Pirko wrote: >> > Looking at the documentation of the chips, they all have mupltiple DPLLs >> > on a die. Arkadiusz, in your proposed implementation, do you model each >> > DPLL separatelly? If yes, then I understand the urgency of need of a >> > shared pin. So all DPLLs sharing the pin are part of the same chip? >> > >> > Question: can we have an entity, that would be 1:1 mapped to the actual >> > device/chip here? Let's call is "a synchronizer". It would contain >> > multiple DPLLs, user-facing-sources(input_connector), >> > user-facing-outputs(output_connector), i/o pins. >> > >> > An example: >> > SYNCHRONIZER >> > >> > ┌───────────────────────────────────────┐ >> > │ │ >> > │ │ >> > SyncE in connector │ ┌─────────┐ │ SyncE out connector >> > ┌───┐ │in pin 1 │DPLL_1 │ out pin 1│ ┌───┐ >> > │ ├─────────┼──────────────┤ ├──────────────┼────┤ │ >> > │ │ │ │ │ │ │ │ >> > └───┘ │ │ │ │ └───┘ >> > │ │ │ │ >> > │ ┌──┤ │ │ >> > GNSS in connector │ │ └─────────┘ │ >> > ┌───┐ │in pin 2 │ out pin 2│ EXT SMA connector >> > │ ├─────────┼───────────┘ │ ┌───┐ >> > │ │ │ ┌───────────┼────┤ │ >> > └───┘ │ │ │ │ │ >> > │ │ │ └───┘ >> > │ │ │ >> > EXT SMA connector │ │ │ >> > ┌───┐ mux │in pin 3 ┌─────────┐ │ │ >> > │ ├────┬────┼───────────┐ │ │ │ │ >> > │ │ │ │ │ │DPLL_2 │ │ │ >> > └───┘ │ │ │ │ │ │ │ >> > │ │ └──┤ ├──┘ │ >> > │ │ │ │ │ >> > EXT SMA connector │ │ │ │ │ >> > ┌───┐ │ │ │ │ │ >> > │ ├────┘ │ └─────────┘ │ >> > │ │ │ │ >> > └───┘ └───────────────────────────────────────┘ >> > >> > Do I get that remotelly correct? >> >> It looks goot, hence two corrections are needed: >> - all inputs can go to all DPLLs, and a single source can drive more >> than one DPLL >> - The external mux for SMA connector should not be a part of the >> Synchronizer subsystem - I believe there's already a separate MUX >> subsystem in the kernel and all external connections should be handled >> by a devtree or a similar concept. >> >> The only "muxing" thing that could potentially be modeled is a >> synchronizer output to synchronizer input relation. Some synchronizers >> does that internally and can use the output of one DPLL as a source for >> another. > >My experience with DT and muxes is rapidly aging, have you worked with >those recently? From what I remember the muxes were really.. "embedded" >and static compared to what we want here. Why do you think we need something "non-static"? The mux is part of the board, isn't it? That sounds quite static to me. > >Using DT may work nicely for defining the topology, but for config we >still need a different mechanism. "config" of what? Each item in topology would be configure according to the item type, won't it? [...] 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 E889CC4332F for ; Mon, 12 Dec 2022 13:59:56 +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:In-Reply-To:MIME-Version:References: 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=sLLYMRZMHMpsh3nT2e11+Vk9EL4xe8gckbeGxWowRdg=; b=m9JRo17CGqD1FA FZgE5GgFFERZzQcK5H2m2FeivdUv0Gs4sU2KlqJ3Xx9nIGg69qtPgJwDfPtDI+B/nbJ0GL95jdY/o muj3ohuVwfqbgYis1Az4dVYlw42P9kd45IhZu6eE41x9w1ukuZOj/by/26srMftzlDEgmsgv3mMys w78eGPzSxjfVzOauMJKuiWTE1Srz6cJ+Npi2nAVasrRELWSenG0IyKE2KfAxbiFOhWkGfMnV/spLK kfQ0QA5CRcG5WCYyUpO3FFvS/GAD+dObbUy9GFMl/4jBfWwGC9n21rj1donpfyvOyuP0cjBNLwM6c j6tItTEIxaVZR4s2NTHA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p4jKc-00Grgl-Ix; Mon, 12 Dec 2022 13:58:58 +0000 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1p4jKY-00Grc4-KG for linux-arm-kernel@lists.infradead.org; Mon, 12 Dec 2022 13:58:56 +0000 Received: by mail-wm1-x32a.google.com with SMTP id b24-20020a05600c4a9800b003d21efdd61dso3696898wmp.3 for ; Mon, 12 Dec 2022 05:58:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20210112.gappssmtp.com; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=SrwQ/Z4IreXW+hFxY6PA7uZd/VCLbBUnFznKWdDotp8=; b=X/2sLRBjQ6U2PUOiuvTlhlKbZ9MAIT48e7tuvdfZYc2GfTVSLMe5YelNw1pdhp/Rl0 /3DrWvybkA1gdHu6FeW1Kkl8FQ4PN4vDRb6DQsQMIAGLE+agqhgKs1YnIN4FHVP2eSPV fN6P7OWMMrXMpIiHaoS1tohZ/ldlr+14TU6gpbLsprtkR8fghASAVNBDENl5CDj+ZVLf ZrtJ60s8DLKwazjCbFRODmvp9kf9SnJbJWR7wkg7c9JfNym4rj8V19cvlxv9O1Fyi0Ew tky7tmmezS83sPCh85Jka361QWzVYnS1/4xG8j4wEliCBMU7GmUlr9KVM1tSZdHjZAGH R6Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SrwQ/Z4IreXW+hFxY6PA7uZd/VCLbBUnFznKWdDotp8=; b=wgl29oJW2OmHuB474bYX8rS/NqW6H+Y1fS9p6XsPLfyqco+r2uAoAnq2QYIoOZJ6qD z3WUmNFNHEG+Tqtg/5nltA2BriLnz8L+XhJu2/P6G6Aj/NmsGF5C6gZuLm0qz4cjLP1H 7IbG1r1RS5I1fJ9WHjMX5Zx/alb/m4DYIEapSJUXkmQ61Y6oPuPQ53+yjo4xwTRhpkca 5/Wnp2av2vmTd+LdBFausgSmVprFFfBCOyjnyEzOZBaP5geKdv+S2vfXObTJm/FLRfI/ xx8tXR5/cPcIAzVA69Hv54/ZveaczLQ/Ddg3bgjKGwToBIzOLFMttzM6HfXhlvCriIAI jgWA== X-Gm-Message-State: ANoB5pnUURh7umdYisA5yaoBoCfTRG9yJCiCUuQeD7XYtRc1KrQLqlEJ xPKlJuWXbwKl1Eom8RWYVnIiVg== X-Google-Smtp-Source: AA0mqf6XAGOuVepLC5bcp6CjC+gBwt+ZuvWZE1L7CAhX0Z34rq43pHR19ttU9uAYyaSsdVhxkhBOUA== X-Received: by 2002:a1c:7c15:0:b0:3cf:7197:e67c with SMTP id x21-20020a1c7c15000000b003cf7197e67cmr12189388wmc.25.1670853529485; Mon, 12 Dec 2022 05:58:49 -0800 (PST) Received: from localhost (mail.chocen-mesto.cz. [85.163.43.2]) by smtp.gmail.com with ESMTPSA id m5-20020a05600c4f4500b003d1e1f421bfsm10159615wmq.10.2022.12.12.05.58.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Dec 2022 05:58:48 -0800 (PST) Date: Mon, 12 Dec 2022 14:58:47 +0100 From: Jiri Pirko To: Jakub Kicinski Cc: Maciek Machnikowski , "'Kubalewski, Arkadiusz'" , 'Vadim Fedorenko' , 'Jonathan Lemon' , 'Paolo Abeni' , netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org Subject: Re: [RFC PATCH v4 0/4] Create common DPLL/clock configuration API Message-ID: References: <20221206184740.28cb7627@kernel.org> <10bb01d90a45$77189060$6549b120$@gmail.com> <20221207152157.6185b52b@kernel.org> <6e252f6d-283e-7138-164f-092709bc1292@machnikowski.net> <20221209083104.2469ebd6@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20221209083104.2469ebd6@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221212_055854_699010_5422FA0D X-CRM114-Status: GOOD ( 21.11 ) 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 RnJpLCBEZWMgMDksIDIwMjIgYXQgMDU6MzE6MDRQTSBDRVQsIGt1YmFAa2VybmVsLm9yZyB3cm90 ZToKPk9uIEZyaSwgOSBEZWMgMjAyMiAxNTowOTowOCArMDEwMCBNYWNpZWsgTWFjaG5pa293c2tp IHdyb3RlOgo+PiBPbiAxMi85LzIwMjIgMTI6MDcgUE0sIEppcmkgUGlya28gd3JvdGU6Cj4+ID4g TG9va2luZyBhdCB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgY2hpcHMsIHRoZXkgYWxsIGhhdmUg bXVwbHRpcGxlIERQTExzCj4+ID4gb24gYSBkaWUuIEFya2FkaXVzeiwgaW4geW91ciBwcm9wb3Nl ZCBpbXBsZW1lbnRhdGlvbiwgZG8geW91IG1vZGVsIGVhY2gKPj4gPiBEUExMIHNlcGFyYXRlbGx5 PyBJZiB5ZXMsIHRoZW4gSSB1bmRlcnN0YW5kIHRoZSB1cmdlbmN5IG9mIG5lZWQgb2YgYQo+PiA+ IHNoYXJlZCBwaW4uIFNvIGFsbCBEUExMcyBzaGFyaW5nIHRoZSBwaW4gYXJlIHBhcnQgb2YgdGhl IHNhbWUgY2hpcD8KPj4gPiAKPj4gPiBRdWVzdGlvbjogY2FuIHdlIGhhdmUgYW4gZW50aXR5LCB0 aGF0IHdvdWxkIGJlIDE6MSBtYXBwZWQgdG8gdGhlIGFjdHVhbAo+PiA+IGRldmljZS9jaGlwIGhl cmU/IExldCdzIGNhbGwgaXMgImEgc3luY2hyb25pemVyIi4gSXQgd291bGQgY29udGFpbgo+PiA+ IG11bHRpcGxlIERQTExzLCB1c2VyLWZhY2luZy1zb3VyY2VzKGlucHV0X2Nvbm5lY3RvciksCj4+ ID4gdXNlci1mYWNpbmctb3V0cHV0cyhvdXRwdXRfY29ubmVjdG9yKSwgaS9vIHBpbnMuCj4+ID4g Cj4+ID4gQW4gZXhhbXBsZToKPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lO Q0hST05JWkVSCj4+ID4gCj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSM4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSQCj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAg4pSCCj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCCj4+ID4g ICBTeW5jRSBpbiBjb25uZWN0b3IgICAgICAgICAg4pSCICAgICAgICAgICAgICDilIzilIDilIDi lIDilIDilIDilIDilIDilIDilIDilJAgICAgICAgICAgICAgIOKUgiAgICAgU3luY0Ugb3V0IGNv bm5lY3Rvcgo+PiA+ICAgICAgICAgICAgICAgICDilIzilIDilIDilIDilJAgICAgICAgICDilIJp biBwaW4gMSAgICAgIOKUgkRQTExfMSAgIOKUgiAgICAgb3V0IHBpbiAx4pSCICAgIOKUjOKUgOKU gOKUgOKUkAo+PiA+ICAgICAgICAgICAgICAgICDilIIgICDilJzilIDilIDilIDilIDilIDilIDi lIDilIDilIDilLzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQg ICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzi lIDilIDilIDilIDilKQgICDilIIKPj4gPiAgICAgICAgICAgICAgICAg4pSCICAg4pSCICAgICAg ICAg4pSCICAgICAgICAgICAgICDilIIgICAgICAgICDilIIgICAgICAgICAgICAgIOKUgiAgICDi lIIgICDilIIKPj4gPiAgICAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSYICAgICAgICAg4pSC ICAgICAgICAgICAgICDilIIgICAgICAgICDilIIgICAgICAgICAgICAgIOKUgiAgICDilJTilIDi lIDilIDilJgKPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAgICAgICAg ICAgIOKUgiAgICAgICAgIOKUgiAgICAgICAgICAgICAg4pSCCj4+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAg4pSCICAgICAgICAgICDilIzilIDilIDilKQgICAgICAgICDilIIgICAg ICAgICAgICAgIOKUggo+PiA+ICAgIEdOU1MgaW4gY29ubmVjdG9yICAgICAgICAgIOKUgiAgICAg ICAgICAg4pSCICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilJggICAgICAgICAgICAg IOKUggo+PiA+ICAgICAgICAgICAgICAgICDilIzilIDilIDilIDilJAgICAgICAgICDilIJpbiBw aW4gMiAgIOKUgiAgICAgICAgICAgICAgICAgIG91dCBwaW4gMuKUgiAgICAgRVhUIFNNQSBjb25u ZWN0b3IKPj4gPiAgICAgICAgICAgICAgICAg4pSCICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgICAgICAgICAg ICAgICAgICAgICAgICAg4pSCICAgIOKUjOKUgOKUgOKUgOKUkAo+PiA+ICAgICAgICAgICAgICAg ICDilIIgICDilIIgICAgICAgICDilIIgICAgICAgICAgICAgICAgICAgICAgICAgICDilIzilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLzilIDilIDilIDilIDilKQgICDilIIKPj4g PiAgICAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSYICAgICAgICAg4pSCICAgICAgICAgICAg ICAgICAgICAgICAgICAg4pSCICAgICAgICAgICDilIIgICAg4pSCICAg4pSCCj4+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSC ICAgICAgICAgICDilIIgICAg4pSU4pSA4pSA4pSA4pSYCj4+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAgICDi lIIKPj4gPiAgICBFWFQgU01BIGNvbm5lY3RvciAgICAgICAgICDilIIgICAgICAgICAgICAgICAg ICAgICAgICAgICDilIIgICAgICAgICAgIOKUggo+PiA+ICAgICAgICAgICAgICAgICDilIzilIDi lIDilIDilJAgICBtdXggICDilIJpbiBwaW4gMyAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUkCAg4pSCICAgICAgICAgICDilIIKPj4gPiAgICAgICAgICAgICAgICAg4pSCICAg 4pSc4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSQICDilIIgICAgICAgICDilIIgIOKUgiAgICAgICAgICAg4pSCCj4+ID4gICAg ICAgICAgICAgICAgIOKUgiAgIOKUgiAgICDilIIgICAg4pSCICAgICAgICAgICDilIIgIOKUgkRQ TExfMiAgIOKUgiAg4pSCICAgICAgICAgICDilIIKPj4gPiAgICAgICAgICAgICAgICAg4pSU4pSA 4pSA4pSA4pSYICAgIOKUgiAgICDilIIgICAgICAgICAgIOKUgiAg4pSCICAgICAgICAg4pSCICDi lIIgICAgICAgICAgIOKUggo+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAg4pSC ICAgICAgICAgICDilJTilIDilIDilKQgICAgICAgICDilJzilIDilIDilJggICAgICAgICAgIOKU ggo+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICDilIIgICAg4pSCICAgICAgICAgICAgICDi lIIgICAgICAgICDilIIgICAgICAgICAgICAgIOKUggo+PiA+ICAgIEVYVCBTTUEgY29ubmVjdG9y ICAgICDilIIgICAg4pSCICAgICAgICAgICAgICDilIIgICAgICAgICDilIIgICAgICAgICAgICAg IOKUggo+PiA+ICAgICAgICAgICAgICAgICDilIzilIDilIDilIDilJAgICAg4pSCICAgIOKUgiAg ICAgICAgICAgICAg4pSCICAgICAgICAg4pSCICAgICAgICAgICAgICDilIIKPj4gPiAgICAgICAg ICAgICAgICAg4pSCICAg4pSc4pSA4pSA4pSA4pSA4pSYICAgIOKUgiAgICAgICAgICAgICAg4pSU 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYICAgICAgICAgICAgICDilIIKPj4gPiAgICAg ICAgICAgICAgICAg4pSCICAg4pSCICAgICAgICAg4pSCICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAg4pSCCj4+ID4gICAgICAgICAgICAgICAgIOKUlOKUgOKUgOKUgOKUmCAg ICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUmAo+PiA+IAo+PiA+IERvIEkgZ2V0IHRoYXQgcmVtb3RlbGx5IGNvcnJl Y3Q/ICAKPj4gCj4+IEl0IGxvb2tzIGdvb3QsIGhlbmNlIHR3byBjb3JyZWN0aW9ucyBhcmUgbmVl ZGVkOgo+PiAtIGFsbCBpbnB1dHMgY2FuIGdvIHRvIGFsbCBEUExMcywgYW5kIGEgc2luZ2xlIHNv dXJjZSBjYW4gZHJpdmUgbW9yZQo+PiAgIHRoYW4gb25lIERQTEwKPj4gLSBUaGUgZXh0ZXJuYWwg bXV4IGZvciBTTUEgY29ubmVjdG9yIHNob3VsZCBub3QgYmUgYSBwYXJ0IG9mIHRoZQo+PiAgIFN5 bmNocm9uaXplciBzdWJzeXN0ZW0gLSBJIGJlbGlldmUgdGhlcmUncyBhbHJlYWR5IGEgc2VwYXJh dGUgTVVYCj4+ICAgc3Vic3lzdGVtIGluIHRoZSBrZXJuZWwgYW5kIGFsbCBleHRlcm5hbCBjb25u ZWN0aW9ucyBzaG91bGQgYmUgaGFuZGxlZAo+PiAgIGJ5IGEgZGV2dHJlZSBvciBhIHNpbWlsYXIg Y29uY2VwdC4KPj4gCj4+IFRoZSBvbmx5ICJtdXhpbmciIHRoaW5nIHRoYXQgY291bGQgcG90ZW50 aWFsbHkgYmUgbW9kZWxlZCBpcyBhCj4+IHN5bmNocm9uaXplciBvdXRwdXQgdG8gc3luY2hyb25p emVyIGlucHV0IHJlbGF0aW9uLiBTb21lIHN5bmNocm9uaXplcnMKPj4gZG9lcyB0aGF0IGludGVy bmFsbHkgYW5kIGNhbiB1c2UgdGhlIG91dHB1dCBvZiBvbmUgRFBMTCBhcyBhIHNvdXJjZSBmb3IK Pj4gYW5vdGhlci4KPgo+TXkgZXhwZXJpZW5jZSB3aXRoIERUIGFuZCBtdXhlcyBpcyByYXBpZGx5 IGFnaW5nLCBoYXZlIHlvdSB3b3JrZWQgd2l0aAo+dGhvc2UgcmVjZW50bHk/IEZyb20gd2hhdCBJ IHJlbWVtYmVyIHRoZSBtdXhlcyB3ZXJlIHJlYWxseS4uICJlbWJlZGRlZCIKPmFuZCBzdGF0aWMg Y29tcGFyZWQgdG8gd2hhdCB3ZSB3YW50IGhlcmUuCgpXaHkgZG8geW91IHRoaW5rIHdlIG5lZWQg c29tZXRoaW5nICJub24tc3RhdGljIj8gVGhlIG11eCBpcyBwYXJ0IG9mIHRoZQpib2FyZCwgaXNu J3QgaXQ/IFRoYXQgc291bmRzIHF1aXRlIHN0YXRpYyB0byBtZS4KCgo+Cj5Vc2luZyBEVCBtYXkg d29yayBuaWNlbHkgZm9yIGRlZmluaW5nIHRoZSB0b3BvbG9neSwgYnV0IGZvciBjb25maWcgd2UK PnN0aWxsIG5lZWQgYSBkaWZmZXJlbnQgbWVjaGFuaXNtLgoKImNvbmZpZyIgb2Ygd2hhdD8gRWFj aCBpdGVtIGluIHRvcG9sb2d5IHdvdWxkIGJlIGNvbmZpZ3VyZSBhY2NvcmRpbmcgdG8KdGhlIGl0 ZW0gdHlwZSwgd29uJ3QgaXQ/CgpbLi4uXQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=