From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id A716F9DB42 for ; Fri, 27 Oct 2023 15:38:05 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 888883A885 for ; Fri, 27 Oct 2023 15:38:05 +0200 (CEST) Received: from mail02.cetsi.fr (mail02.cetsi.fr [91.151.64.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Fri, 27 Oct 2023 15:38:03 +0200 (CEST) Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28]) by mail02.cetsi.fr (Postfix) with ESMTP id 3AD614073C25; Fri, 27 Oct 2023 15:37:59 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr 3AD614073C25 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com; s=dkim; t=1698413879; bh=DaZSNkWaP5w3pJ+P8WBunWfLgy1xH1ga8A8QKuKMq2Q=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=B8FkHTKLBWH/qc3T1EPO1lFJt1nujhpiER0PGOtkCu17PRoyUvM/Qy5ri2yVA95j1 +2l15hO6gND5J1V7YesttP+/KvHkkGITdPS1nHaL1R7RSOvk+F8RzCYhvONgYQFbCe 2+kpKooNOs+GRUdrPo2kfyAD+ExNdVDEN2ibcdiM= Received: from CYLNEXC01.cyllene.corp (10.0.250.28) by CYLNEXC01.cyllene.corp (10.0.250.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Fri, 27 Oct 2023 15:38:00 +0200 Received: from FRA01-PR2-obe.outbound.protection.outlook.com (10.0.250.254) by CYLNEXC01.cyllene.corp (10.0.250.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34 via Frontend Transport; Fri, 27 Oct 2023 15:38:00 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vpzpt8mjcNFjYKnrUr14QoBsZkvW9ajuD9lnyPwly9NHimf2sLeKQqOuHlI148ad4hIyXfdd3xtf8aOfjXzEhvB0uPMZCyz6KwuInCKpRaxeBgYTjwfunjPBqVySCkiCEfxOra7IM4+qWUYD841JkH9JxE4Slu2JgFZLvlqMHpB/svT/6jft3PTXhmFlvqMqp69DAvwDhH4peynQz6+KgyqGmv7lAzY6JHQZy4HHXaHEg8w3VJbh50+iwQNpvWGnY1LPv/iUbAEnCItNkXj85gUqEWYtnKP6MV4VaJP2QLpD/f/pqXzXehUhCNJvcBLzXoGsaylFDamCms6LYZ8oxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DaZSNkWaP5w3pJ+P8WBunWfLgy1xH1ga8A8QKuKMq2Q=; b=dZzH1/N+Q8mJgjoGvfgyufBlqvRLO9M1Czlo78a/6GgaANJdPF1/mip1ap6o8Ru4qRu9fbuQgKqyHo/pCAE3YD6OV8U/VvOqv+TV9h8ySvgUA2HBdbBJpsxFciylhkUxX74u+7D9Go6bQLdbT6VDMSUwiYGgqx+AU7x2kh12IgvMX8uBFlUCu9alz6Ug/1wUFXQHSjbPkF9w6qcU60W2XeqpthckTNVoAyH6N98YQv9BViI44BcX7vUlIAXt6OpNCxm2zpDeAP+FjF81DJYRJj8uQL4y2UubncERwBzAePXPrBvdA9Y1SkU5Fl77IQx3DNrQCsqX5WEt2AJf6rZNgw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=groupe-cyllene.com; dmarc=pass action=none header.from=groupe-cyllene.com; dkim=pass header.d=groupe-cyllene.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=groupecyllene.onmicrosoft.com; s=selector2-groupecyllene-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DaZSNkWaP5w3pJ+P8WBunWfLgy1xH1ga8A8QKuKMq2Q=; b=iItldk5RvNBEW/AKdaEQ5GpnapJJgTWaslyki1r06H79fZ0BETtvUAfMLUzKT5YAPGSPPKRZjcKH4KOYgzSt2sJkGXGTQbS+p8grmveHuW0dyYVkCli33Xz3PxzFQtRY/enK4rIVRtNYLITjQreX2eTVSs3ZggYBLkU1Z9MyNLw= Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17) by MR1P264MB1716.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.11; Fri, 27 Oct 2023 13:37:59 +0000 Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM ([fe80::e174:23f0:261f:4bbe]) by MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM ([fe80::e174:23f0:261f:4bbe%4]) with mapi id 15.20.6954.011; Fri, 27 Oct 2023 13:37:59 +0000 From: "DERUMIER, Alexandre" To: "s.lendl@proxmox.com" CC: "pve-devel@lists.proxmox.com" Thread-Topic: [pve-devel] [WIP v2 cluster/network/manager/qemu-server/container 00/10] Add support for DHCP servers to SDN Thread-Index: AQHaAQGoiimsoHdBI0iqDARDr0acF7BXWhsAgAZNB4CAAAxyAA== Date: Fri, 27 Oct 2023 13:37:59 +0000 Message-ID: References: <20231017135507.2220948-1-s.hanreich@proxmox.com> <87v8axbjh1.fsf@gmail.com> <877cn8mdkq.fsf@gmail.com> In-Reply-To: <877cn8mdkq.fsf@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.50.0-1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=groupe-cyllene.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MR1P264MB2481:EE_|MR1P264MB1716:EE_ x-ms-office365-filtering-correlation-id: 8206d008-71d8-45cc-d963-08dbd6f1ef1f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ndb+DJYxMnqx6V9muIeDTgeMZV2DCRmqOI2FlH6r13YR1IMePo8bbxa09El+JR7IKJzuXkYbggHwNeu/WWw9aCnBqLyyLObGDqzzAPRI31jcRz15Ov87sI1FfPl9os+IVimtawFKdgOXY9Zn159bkcwTaZJqc/09Y9UytXWr6PuY0B7dRxsF3uIRzfkSGbLyqu9UwWDxJmHpL1HUscJQUBshnuqn4cKVGrda9K39Lhqb5xKMt96xIowWnl4Klmz8qIvW1woitnyRpeyvzDUtwQnzJB6sXgKTUKI5P1+x9N2i9o7r6Kug3soLescrQ14nL7Y9z1VV8EJ9zWuJLhPJF5voX+8dS768lI8+B3hrll1jv5HZ2DFZum0jiWscMeP7DGGDwzk4LZbizIZ6FU5bEeq0wxQGIX7TvB2FkZ4VEwjmdREmnDx5RcD41Y5zlfNZUXSuldfpqcw454diCFq168U20x514IHsnAOhDfaia0iEv4KSBd5W6XTebfyFq6AxPD3aP7rhZ1GxNQpQjVFzMRwbyqQbV9E/9Umya48SzY1Qw8ocwmI9FCpI3zZeIp4BYyPXxScJDC1ZOzyseFElUaOBr6hsUB9AMA2xyXf7iwQ6PjFbhnlbF8rYks8SbJhKSazsdQ6IrHfSRtUhCdGt9A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230031)(346002)(396003)(376002)(136003)(366004)(39850400004)(230922051799003)(451199024)(186009)(1800799009)(64100799003)(966005)(122000001)(38100700002)(84970400001)(36756003)(71200400001)(26005)(2616005)(83380400001)(38070700009)(86362001)(6506007)(6512007)(6486002)(478600001)(316002)(8676002)(4326008)(19627235002)(8936002)(41300700001)(5660300002)(2906002)(30864003)(66899024)(91956017)(66476007)(6916009)(76116006)(66556008)(66946007)(64756008)(66446008); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WGdhYWt5RnlXTTgrdGlacm16YTVxRExjVjFhV1V0VG5CT2NCbXQvaHFOT0V5?= =?utf-8?B?OGhUQkc0dWxNSjJubkdFVmhwenpDMHBnNXFhT1QxanJ5elZNSmp4eVpoYkNQ?= =?utf-8?B?cTJOLysrL2tEMmVxT0JJRHVRajNhNEg5UC9pUWVlZmRNQnFiOW9JL200NWZJ?= =?utf-8?B?cE9sTDZjOGIvMEVqMkp4Ymx2V0pQZloxcWRBVWlyQXlxMTg4VXNnc29WaHpR?= =?utf-8?B?dG8zYnhnL2RmSTFuY2ZKZ0lHb21kWUlLbWoxNVE0UXRoMUpXZmo0QlhNa3pW?= =?utf-8?B?dDBycXA5U3FPK3dpRHJhV1hoOVlkOTBJWFBaeDdEcHY5RC8zKzF2a1Y4am5V?= =?utf-8?B?R2QvMFRGOUJWYml1UTFKZUtrZEV6SDZiek84U0prM1dmYVNGNUp3bW1jWFFI?= =?utf-8?B?THQzN2RpekZJNXQ5S05tNDZyZnU4WTJJeHJSNVh6MUZUQTdERFZaOTdTNjFv?= =?utf-8?B?YU1kYlBqZ21vaHBpZTV3ejNNeUVmMklINEI0OUt0YjhsY24vVXF1Rys2MlVE?= =?utf-8?B?b0JPbkhVWTl0dGx4VytIUTVZR1ltYzhqc2VZTzZCU3NKY0hndVlRbmZvTjI3?= =?utf-8?B?cFBFN2w4aEI0K2hwbGZ1YWpnSmdPb0p3MnBWL2NFdkhuL3NFMm9PcDI2TERj?= =?utf-8?B?ZUl1dmpyTzhIVU1Rem1qa3FyT1h5Z0I1eHhnUHU0cW51QXVqWi90cEExeFpO?= =?utf-8?B?a01MSkRTV21ydmhsbWxIUjNhbXo4ZGd0ZzRkRnlmTFZlL3MyRkNXWkZ4T05B?= =?utf-8?B?RVVaNUtBU3BsN1R6SndEdFA3T3NtNi9qQi9sMTVGUlo5UnpBMzJmd1pzWGMz?= =?utf-8?B?Zko0clVMQnNna09jNkdRUC9XVUVHTWpXT3hMeVVmQU9HVEVNMzVwSnR4V3Zj?= =?utf-8?B?R3A2YVZzM1lja0FoSXdIeEZ3RS9TNWMrcGlNUkVqRHBnbnhueGtYZUxmODc1?= =?utf-8?B?cktZZFQ2WjBKcUtRK1d3d0lneEpvMmdhaFJHcHBzblpqaElxYjJHc3JIWlQ0?= =?utf-8?B?STluWjNiTXNVekdXd0gxWkVyMlBkd2dLYkRMejNrMkp5MVYwL2RKVXJJcWNa?= =?utf-8?B?dHdkRy9IUDhZajhxYzNWcUxQMVpNQ1N4WVNBbnh2djhrNDdPWkRSY2pkMGdQ?= =?utf-8?B?cXVJNmpCTVJacHc2LzFjUUxrVjBGOTFQUHhGNDJyRmdtb0lPZmNjZ2ZLS3FW?= =?utf-8?B?Y2ZQK3k3OGRhTmZqeUYybDFGL20xVUVWK1pXVVVLdG92SXE5dllMTURBcUwr?= =?utf-8?B?WXN4UXdFUisxSGpqSHZ6M3hjYk01Sk05aHRKREFOMC9SL0R2c1RQRy9wQUFN?= =?utf-8?B?bE83QSsrUUhvSHFySGxYeTJ5QWVGYlNlaWNWemdmVzU0Mk5sWlZTSlBOb0hh?= =?utf-8?B?aDZZNWZyWHhYTEc5Qm9SdTJ3aFp6UVZpc2YxQnIybjF5bDROUG1UK1M4b3Jn?= =?utf-8?B?bzdQc2tkUTF6WnVxcWZJdlFEWDZaSlZvN0ljTjg2QXhLUHdHekZ4dmpqMkZE?= =?utf-8?B?UzRNL1VpWFE2V2JRREpvRHQ0blZhWkR5YmVUcXdVN2NTYmRSejFZa2lHN0cz?= =?utf-8?B?S1VyUFoyWjExZ0VYYm54bFZnd1VETEZrSEZ0M0xjN0NOQmVvOGhkZlp0QTR2?= =?utf-8?B?Vk9YZlgvV2N1MkZWUmRnd2Y3cFh2eUQvVXlBbVY2WTM1RFpCV0Vja0g3Sml3?= =?utf-8?B?dWtzUDl3T0psZVpoRlZLZlZpcmRPTVc3U2pxVW1CbUtCbE1YVE5UOHNzNHlI?= =?utf-8?B?MTZrY3A2alpJUmdjUUczbWU0Z1pRR2t3OVptZ1Z0RnlSZERISkN5UFlacXRH?= =?utf-8?B?SmlTeG5TcXEzNGNoWUljdTE2Vlg0OFFmdDdHbmVHRk9zWUZwMDc0aTlrYS9Z?= =?utf-8?B?RWxSV3JFUHpFUTV2eGY5UXJ2cExLbGJlTHFmVUZXVlBvdlF4YTZOckw1YTN6?= =?utf-8?B?Qi93WStmcFBRbTJjN2xZSWd6YitQWlZOSlNkR0hWeXJuNzV3SGl6WEJtU1BI?= =?utf-8?B?Mm9lQi92amR5amVKSURWbmFNdXN3RmlaSWpRTDBKeFZRK0Jjbzl3amlVYkxE?= =?utf-8?B?bVMvb1JZd2o0TXVnUEJzL0tlVTlFRGJvWnZWdHJJK28vbzhzSTU2THdLNmc5?= =?utf-8?B?djRUdHNBK2doNnZlUmNTL2xFeWVMUS9ycTR0ZFR0REtNZFNlc0tXQytuZmsw?= =?utf-8?Q?n0KNJFTnivufEUEcafwuq5UicfCArloOegR9NdVsbfi+?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 8206d008-71d8-45cc-d963-08dbd6f1ef1f X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Oct 2023 13:37:59.0230 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: ee11ccf7-112c-4284-848b-f229745e715b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: FhIBOMWjrA5bzMStTuzYariv9k0Lm4qW3FBi9lfk+66605A9Qy1liA/5DDaIGCibqfrAAjJ0DnaJMjxAvl33n6S5y026SbwjOSI93ckQjS8oJdd1fFPFTan/qxdpNoDY X-MS-Exchange-Transport-CrossTenantHeadersStamped: MR1P264MB1716 X-OriginatorOrg: groupe-cyllene.com X-SPAM-LEVEL: Spam detection results: 0 ARC_SIGNED 0.001 Message has a ARC signature ARC_VALID 0.001 Message has a valid ARC signature AWL -0.558 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_MISSING 0.1 Missing DMARC policy KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [tsi.fr, cluster.pm, groupe-cyllene.com, dnsmasq.pm, subnets.pm, subnetplugin.pm, sdn.pm, groupecyllene.onmicrosoft.com, vnets.pm, x.com, lxc.pm, qemuserver.pm, mox.com, network.pm, lists.pr, dhcp.pm, cetsi.fr, plugin.pm, pveplugin.pm] Subject: Re: [pve-devel] [WIP v2 cluster/network/manager/qemu-server/container 00/10] Add support for DHCP servers to SDN X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2023 13:38:05 -0000 LS0tLS0tLS0gTWVzc2FnZSBpbml0aWFsIC0tLS0tLS0tDQpEZTogU3RlZmFuIExlbmRsIDxzLmxl bmRsQHByb3htb3guY29tPg0Kw4A6ICJERVJVTUlFUiwgQWxleGFuZHJlIiA8YWxleGFuZHJlLmRl cnVtaWVyQGdyb3VwZS1jeWxsZW5lLmNvbT4NCkNjOiBwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5j b20gPHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbT4NCk9iamV0OiBSZTogW3B2ZS1kZXZlbF0g W1dJUCB2MiBjbHVzdGVyL25ldHdvcmsvbWFuYWdlci9xZW11LQ0Kc2VydmVyL2NvbnRhaW5lciAw MC8xMF0gQWRkIHN1cHBvcnQgZm9yIERIQ1Agc2VydmVycyB0byBTRE4NCkRhdGU6IDI3LzEwLzIw MjMgMTQ6NTM6MjUNCg0KDQpIaSBBbGV4YW5kcmUsIEkgYW0gcHJvcG9zaW5nIGEgc2xpZ2h0bHkg ZGlmZmVyZW50IHZpZXcuDQoNCj4+SSB0aGluayBpdCdzIGJldHRlciB0byBrZWVwIGFsbCBJUHMs IG1hbmFnZWQgYnkgdGhlIElQQU0gaW4gdGhlIElQQU0NCj4+YW5kIHRoZSBWTSBvbmx5IGNvbmZp Z3VyZXMgYXMgREhDUC4NCg0KDQpZZXMsIEknbSB0aGlua2luZyBleGFjdGx5IHRoZSBzYW1lICEg ICANCg0KDQpJIGhhZCB0cmllZCAyeWVhciBhZ28gdG8gaW1wbGVtZW50IGlwYW0gd2l0aCBzdGF0 aWMgaXAgaW4gdm0NCmNvbmZpZ3VyYXRpb24gKCtpcGFtKSwgYW5kIHRoZXkgYXJlIGEgbG90IG9m IGNvcm5lciBjYXNlLg0KDQoNCg0KDQo+Pkkgd291bGQgaW1wbGVtZW50IHRoZSA0IG1lbnRpb25l ZCBldmVudHMgKHZOSUMgY3JlYXRlLCBkZXN0cm95LA0KPj5zdGFydCwNCj4+c3RvcCkgaW4gdGhl IFNETiBtb2R1bGUgYW5kIGxpbWl0IGludGVyYWN0aW9ucyBiZXR3ZWVuIFZNIGNvbmZpZ3MgYW5k DQo+PnRoZSBTRE4gbW9kdWxlIHRvIHRoZXNlIGV2ZW50cy4NCg0KPj4NCj4+T24gTklDIGNyZWF0 ZTogdGhlIGl0IGNhbGxzIHRoZSBTRE46Om5pY19qb2luX3ZuZXQoJGJyaWRnZSwgJG1hYykNCj4+ ZnVuY3Rpb24gdGhhdCBoYW5kbGVzIElQQU0gcmVnaXN0cmF0aW9uIGlmIG5lY2Vzc2FyeSB0cmln Z2Vycw0KPj5nZW5lcmF0aW5nDQo+PkRIQ1AgY29uZmlnIGFuZCBzbyBvbi4gU2FtZSBhcHByb2Fj aCBmb3IgdGhlIG90aGVyIFNETiByZWxhdGVkDQo+PmV2ZW50cy4NCj4+DQo+PkFsbCB0aGUgbG9n aWMgaXMgaW1wbGVtZW50ZWQgaW4gdGhlIFNETiBtb2R1bGUuIFRoaXMgcmVkdWNlcyBjb3VwbGlu Zw0KPj5iZXR3ZWVuIFZNIGxvZ2ljIGFuZCBTRE4gbG9naWMuDQoNCg0Kc291bmQgZ3JlYXQgOikN Cg0KIkRFUlVNSUVSLCBBbGV4YW5kcmUiIDxhbGV4YW5kcmUuZGVydW1pZXJAZ3JvdXBlLWN5bGxl bmUuY29tPiB3cml0ZXM6DQoNCj4gSGkgU3RlZmFuIChMZW5kbCksDQo+IA0KPiBJJ20gdG90YWxs eSBhZ3JlZWQgd2l0aCB5b3UsIHdlIHNob3VsZCBoYXZlIHBlcnNpc3RlbnQgcmVzZXJ2YXRpb24s DQo+IGF0IHZtIGNyZWF0ZS9uaWMgcGx1ZywgbmljIGRlbGV0ZSwgdm0gZGVsZXRlLg0KPiANCj4g QXQgbGVhc3QgLCBmb3IgbXkgdXNhZ2Ugd2l0aCBtdWx0aXBsZSBjbHVzdGVyIG9uIGRpZmZlcmVu dA0KPiBkYXRhY2VudGVycywNCj4gSSByZWFsbHkgY2FuIHdhaXQgdG8gY2FsbCBpcGFtIHRvIGFw aSBhdCBlYWNoIHN0YXJ0IChmb3Igc2NhbGFiaWxpdHkNCj4gb3INCj4gZm9yIHNlY3VyaXR5IGlm IGlwYW0gaXMgZG93bikNCj4gDQo+IA0KPiBUaGlzIGFsc28gYWxsb3cgdG8gc2ltcGx5IGRvIHJl c2VydmF0aW9ucyBpbiBkbnNtYXNxIGZpbGUgd2l0aG91dCBhbnkNCj4gbmVlZCB0byByZXN0YXJ0 IGl0LiAoQUZBSUssIG9wZW5zdGFjayBpcyB1c2luZyBkbnNtYXNxIGxpa2UgdGhpcyB0b28pDQo+ IA0KPiANCj4gSSdtIG5vdCBzdXJlIGlmIHRydWUgZHluYW1pYyBlcGhlbXJhbCBpcCAsIGNoYW5n aW5nIGF0IGVhY2ggdm0NCj4gc3RvcC9zdGFydCBpcyBpbnRlcmVzdGluZyBmb3IgYSBzZXJ2ZXIg dm0gdXNhZ2UuIChtYXliZSBmb3IgZGVza3RvcA0KPiB2bXdoZXJlIHlvdSBzaGFyZSBhIHNtYWxs IHBvb2wgb2YgaXAsIGJ1dCBJIHBlcnNvbm5hbHkgZG9uJ3Qga25vd24NCj4gYW55DQo+IHByb3ht b3ggdXNlcnMgdXNpbmcgcHJveG1veCB2ZSBmb3IgdGhpcykNCj4gDQo+IA0KPiBzZWUgbXkgcHJv cG9zYWwgaGVyZSAod2l0aCBoYW5kbGUgZXBoZW1lcmFsICYmIHJlc2VydmVkLCBidXQgaXQncw0K PiBldmVuDQo+IGVhc2llciB3aXRoIG9ubHkgcmVzZXJ2ZWQpOg0KPiANCj4gaHR0cHM6Ly9hbnRp cGhpc2hpbmcuY2V0c2kuZnIvcHJveHkvdjM/aT1ZWEp3Ym5JNVpHWTNZWE0yTVRoQlljX19qM21Q DQo+IFFkREMwbVowOG9SSUpMdyZyPWQyUnBWRkpWYVRWdGNGSlJXRk5NWWdZQ2RkUDkzWTlTT0Vh R3dBRC0NCj4gOUpkTHJ4Mkp3d0tmczlTbl91aVJRQ0NVZ3FuQ2c0V0xELQ0KPiBnTFkwZUtYclhY NEEmZj1TVk4wVGpGQmIxazVRazh6UTJFMVlULQ0KPiBOSjJZMmZKWXJSVmNWQXVSczlVWWZ5TUZy dGtvRExjYVRWOU1oWVFaRCZ1PWh0dHBzJTNBLy9saXN0cy5wcm94bW94LmMNCj4gb20vcGlwZXJt YWlsL3B2ZS1kZXZlbC8yMDIzLVNlcHRlbWJlci8wNTkxNjkuaHRtbCZrPW9nZDENCj4gDQo+IA0K PiANCj4gDQo+ICINCj4gSSB0aGluayB3ZSBjb3VsZCBpbXBsZW1lbnQgaXBhbSBjYWxsIGxpa2U6 DQo+IA0KPiANCj4gY3JlYXRlIHZtIG9yIGFkZCBhIG5ldyBuaWPCoCAtLT4NCj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gcW0gY3JlYXRlIC4uLiAtbmV0MA0KPiBicmlkZ2U9dm5l dCwuLi4uLGlwPShhdXRvfDE5Mi4xNjguMC4xfGR5bmFtaWMpLGlwNj0oLi4pDQo+IA0KPiANCj4g YXV0byA6IHNlYXJjaCBhIGZyZWUgaXAgaW4gaXBhbS7CoCB3cml0ZSB0aGUgaXAgYWRkcmVzcyBp biBuZXQwOg0KPiAuLi4saXA9DQo+IGlwIGZpZWxkDQo+IA0KPiAxOTIuMTY4LjAuMTrCoCBjaGVj ayBpZiBpcCBpcyBmcmVlIGluIGlwYW0gJiYgcmVnaXN0ZXIgaXAgaW4gaXBhbS4NCj4gd3JpdGUN Cj4gdGhlIGlwIGluIGlwIGZpZWxkLg0KPiANCj4gDQo+IGR5bmFtaWM6IHdyaXRlICJlcGhlbWVy YWwiIGluIG5ldDA6IC4uLi4saXA9ZXBoZW1lcmFsIChUaGlzIGlzIGENCj4gZHluYW1pYyBpcCBy ZWdpc3RlcmVkIGF0IHZtIHN0YXJ0LCBhbmQgcmVsZWFzZSBhdCB2bSBzdG9wKQ0KPiANCj4gDQo+ IA0KPiB2bSBzdGFydA0KPiAtLS0tLS0tLS0NCj4gLSBpZiBpcD1lcGhlbWVyYWwsIGZpbmQgJiYg cmVnaXN0ZXIgYSBmcmVlIGlwIGluIGlwYW0sIHdyaXRlIGl0IGluIHZtDQo+IG5ldDA6IC4uLixp cD0xOTIuMTY4LjAuMTBbRV0gLsKgwqAgKG1heWJlIHdpdGggYSBzcGVjaWFsIGZsYWcgW0VdIHRv DQo+IGluZGljYXRlIGl0J3MgZXBoZW1lcmFsKQ0KPiAtIHJlYWQgaXAgZnJvbSB2bSBjb25maWcg JiYgaW5qZWN0IGluIGRoY3ANCj4gDQo+IA0KPiB2bV9zdG9wDQo+IC0tLS0tLS0NCj4gaWYgaXAg aXMgZXBoZW1lcmFsIChuZXRYOiBpcD0xOTIuMTY4LjAuMTBbRV0pLMKgIGRlbGV0ZSBpcCBmcm9t IGlwYW0sDQo+IHNldCBpcD1lcGhlbWVyYWwgaW4gdm0gY29uZmlnDQo+IA0KPiANCj4gdm1fZGVz dHJveSBvciBuaWMgcmVtb3ZlL3VucGx1Zw0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ IGlmIG5ldFg6IC4uLixpcD0xOTIuMTY4LjAuMTDCoMKgICzCoCByZW1vdmUgaXAgZnJvbSBpcGFt DQo+IA0KPiANCj4gDQo+IG5pYyB1cGRhdGUgd2hlbiB2bSBpcyBydW5uaW5nOg0KPiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gaWYgaXAgaXMgZGVmaW5lZCA6IG5ldFg6IGlwPTE5 Mi4xNjguMC4xMCzCoCB3ZSBkb24ndCBhbGxvdyBicmlkZ2UNCj4gY2hhbmdlDQo+IG9yIGlwIGNo YW5nZSwgYXMgdm0gaXMgbm90IG5vdGlmaWVkIGFib3V0IHRoZXNlcyBjaGFuZ2VzLCBhbmQgc3Rp bGwNCj4gdXNlDQo+IG9sZCBpcC4NCj4gDQo+IFdlIGNhbiBhbGxvdyBuaWMgaG90LXVucGx1ZyAm JiBob3RwbHVnLiAoZ3Vlc3Qgb3Mgd2lsbCByZW1vdmUgdGhlIGlwDQo+IG9uDQo+IG5pYyByZW1v dmFsLCBhbmQgd2lsbCBjYWxsIGRoY3AgYWdhaW4gb24gbmljIGhvdHBsdWcpDQo+IA0KPiANCj4g DQo+IA0KPiBuaWMgaG90cGx1ZyB3aXRoIGlwPWF1dG86DQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gDQo+IC0tPiBhZGQgbmljIGluIHBlbmRpbmcgc3RhdGUgLS0tLT4gZmluZCBpcCBp biBpcGFtICYmIHdyaXRlIGl0IGluDQo+IHBlbmRpbmcgLS0tPiBkbyB0aGUgaG90cGx1ZyBpbiBx ZW11Lg0KPiANCj4gV2UgbmVlZCB0byBoYW5kbGUgdGhlIGNvbmZpZyByZXZlcnQgdG8gcmVtb3Zl IGlwIGZyb20gaXBhbSBpZiB0aGUgbmljDQo+IGhvdHBsdWcgaXMgYmxvY2tlZCBpbiBwZW5kaW5n IHN0YXRlKEkgbmV2ZXIgc2VlIHRoaXMgY2FzZSB1bnRpbCBvcw0KPiBkb24ndCBoYXZlIHBjaV9o b3RwbHVnIG1vZHVsZSBsb2FkZWQsIGJ1dCBpdCdzIGJldHRlciB0byBiZSBjYXJlZnVsbA0KPiAp DQo+IA0KPiAiDQo+IA0KPiANCj4gPiA+IEkgYW0gY3VycmVudGx5IHdvcmtpbmcgb24gdGhlIFNE TiBmZWF0dXJlLsKgIFRoaXMgaXMgYW4gaW5pdGlhbA0KPiA+ID4gcmV2aWV3DQo+ID4gPiBvZg0K PiA+ID4gdGhlIHBhdGNoIHNlcmllcyBhbmQgSSBhbSB0cnlpbmcgdG8gbWFrZSBhIHN0cm9uZyBj YXNlIGFnYWluc3QNCj4gPiA+IGVwaGVtZXJhbA0KPiA+ID4gREhDUCBJUCByZXNlcnZhdGlvbi4N Cj4gPiA+IA0KPiA+ID4gVGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHBhdGNoIHNlcmllcyBpbnZv a2VzIHRoZSBJUEFNIG9uIGV2ZXJ5DQo+ID4gPiBWTS9DVA0KPiA+ID4gc3RhcnQvc3RvcCB0byBh ZGQgb3IgcmVtb3ZlIHRoZSBJUCBmcm9tIHRoZSBJUEFNLg0KPiA+ID4gVGhpcyB0cmlnZ2VycyB0 aGUgZG5zbWFzcSBjb25maWcgZ2VuZXJhdGlvbiBvbiB0aGUgc3BlY2lmaWMgaG9zdA0KPiA+ID4g d2l0aA0KPiA+ID4gb25seSB0aGUgTUFDL0lQIG1hcHBpbmcgb2YgdGhhdCBwYXJ0aWN1bGFyIGhv c3QuDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gRnJvbSByZWFkaW5nIHRoZSBkaXNjdXNzaW9uIG9m IHRoZSB2MSBwYXRjaCBzZXJpZXMgSSB1bmRlcnN0YW5kIHRoaXMNCj4gYXBwcm9hY2ggdHJpZXMg dG8gaW1wbGVtZW50IHRoZSBlcGhlbWVyYWwgSVAgcmVzZXJ2YXRpb24gc3RyYXRlZ3kuDQo+IEZy b20NCj4gb2ZmLWxpc3QgY29udmVyc2F0aW9ucyB3aXRoIFN0ZWZhbiBIYW5yZWljaCwgSSBhZ3Jl ZSB0aGF0IGhhdmluZw0KPiBlcGhlbWVyYWwgSVAgcmVzZXJ2YXRpb24gY29vcmRpbmF0ZWQgYnkg dGhlIElQQU0gcmVxdWlyZXMgdXMgdG8NCj4gcmUtaW1wbGVtZW50IERIQ1AgZnVuY3Rpb25hbGl0 eSBpbiB0aGUgSVBBTSBhbmQgaGVhdmlseSByZWx5IG9uDQo+IHN5bmNpbmcNCj4gYmV0d2VlbiB0 aGUgZGlmZmVyZW50IHNlcnZpY2VzLg0KPiANCj4gVG8gbWFpbnRhaW4gcmVsaWFibGUgc3luYyB3 ZSBuZWVkIHRvIGhvb2sgaW50byBtYW55IGRpZmZlcmVudCBwbGFjZXMNCj4gd2hlcmUgdGhlIElQ QU0gbmVlZCB0byBiZSBxdWVyaWVkLsKgIEFueSBpc3N1ZXMgd2l0aCB0aGUNCj4gaW1wbGVtZW50 YXRpb24NCj4gbWF5IGxlYWQgdG8gSVBBTSBhbmQgREhDUCBsb2NhbCBjb25maWcgc3RhdGUgcnVu bmluZyBvdXQgb2Ygc3luYw0KPiBjYXVzaW5nDQo+IG5ldHdvcmsgaXNzdWVzIGR1cGxpY2F0ZSBt dWx0aXBsZSBJUHMuDQo+IA0KPiBGdXJ0aGVybW9yZSwgZXZlcnkgaW50ZXJhY3Rpb24gd2l0aCB0 aGUgSVBBTSByZXF1aXJlcyBhIGNsdXN0ZXItd2lkZQ0KPiBsb2NrIG9uIHRoZSBJUEFNLiBIYXZp bmcgYSBjZW50cmFsIGNsdXN0ZXItd2lkZSBsb2NrIG9uIGV2ZXJ5IFZNDQo+IHN0YXJ0L3N0b3Av bWlncmF0ZSB3aWxsIHNpZ25pZmljYW50bHkgbGltaXQgcGFyYWxsZWwgb3BlcmF0aW9ucy7CoA0K PiBFdmVudA0KPiBzdGFydGluZyB0d28gVk1zIGluIHBhcmFsbGVsIHdpbGwgYmUgbGltaXRlZCBi eSB0aGlzIGNlbnRyYWwgbG9jay4gQXQNCj4gYm9vdCB0cnlpbmcgdG8gc3RhcnQgbWFueSBWTXMg KGlkZWFsbHkgYXMgbXVjaCBpbiBwYXJhbGxlbCBhcw0KPiBwb3NzaWJsZSkNCj4gaXMgbGltaXRl ZCBieSB0aGUgY2VudHJhbCBJUEFNIGxvY2sgZXZlbiBmdXJ0aGVyLg0KPiANCj4gSSBhcmd1ZSB0 aGF0IHdlIHNoYWxsIG5vdCBzdXBwb3J0IGVwaGVtZXJhbCBJUHMgYWx0b2dldGhlci4NCj4gVGhl IGFsdGVybmF0aXZlIGlzIHRvIG1ha2UgYWxsIElQQU0gcmVzZXJ2YXRpb25zIHBlcnNpc3RlbnQu DQo+IA0KPiBVc2luZyBwZXJzaXN0ZW50IElQcyBvbmx5IHJlZHVjZXMgdGhlIGludGVyYWN0aW9u cyBvZiBWTS9DVHMgd2l0aCB0aGUNCj4gSVBBTSB0byBhIG1pbmltdW0gb2YgTklDIGpvaW5pbmcg YSBzdWJuZXQgYW5kIE5JQyBsZWF2aW5nIGEgc3VibmV0LiBJDQo+IGFtDQo+IGRlbGliZXJhdGVs eSBub3QgcmVmZXJyaW5nIHRvIFZNcyBiZWNhdXNlIGEgVk0gbWF5IGJlIHBhcnQgb2YNCj4gbXVs dGlwbGUNCj4gVk5ldHMgb3IgZXZlbiBtdWx0aXBsZSB0aW1lcyBpbiB0aGUgc2FtZSBWTmV0IChy ZWdhcmRsZXNzIGlmIHRoYXQgaXMNCj4gc2Vuc2libGUpLg0KPiANCj4gQ2FzZXMgdGhlIElQQU0g bmVlZHMgdG8gYmUgaW52b2x2ZWQ6DQo+IA0KPiAtIE5JQyB3aXRoIERIQ1AgZW5hYmxlZCBWTmV0 IGlzIGFkZGVkIHRvIFZNIGNvbmZpZw0KPiAtIE5JQyB3aXRoIERIQ1AgZW5hYmxlZCBWTmV0IGlz IHJlbW92ZWQgZnJvbSBWTSBjb25maWcNCj4gLSBOSUMgaXMgYXNzaWduZWQgdG8gYW5vdGhlciBC cmlkZ2UNCj4gwqAgY2FuIGJlIHRyZWF0ZWQgYXMgaW5kaXZpZHVhbCBsZWF2ZSArIGpvaW4gZXZl bnRzDQo+IA0KPiBDYXNlcyB0aGF0IGFyZSBleHBsaWNpdGx5IG5vdCBjb3ZlcmVkIGJ1dCBtYXkg YmUgYWRkZWQgaWYgZGVzaXJlZDoNCj4gDQo+IC0gTWFudWFsbHkgYXNzaWduIGFuIElQIGFkZHJl c3Mgb24gYSBOSUMNCj4gwqAgd2lsbCBub3QgYmUgYXV0b21hdGljYWxseSB2aXNpYmxlIGluIHRo ZSBJUEFNDQo+IC0gTWFudWFsbHkgY2hhbmdlIHRoZSBNQUMgb24gYSBOSUMNCj4gwqAgZG9uJ3Qg ZG8gdGhhdCA+IHlvdSBhcmUgb24geW91ciBvd24uDQo+IMKgIE5vdCBoYW5kbGVkID4gY2hhbmdl IGluIElQQU0gbWFudWFsbHkNCj4gDQo+IE9uY2UgYW4gSVAgaXMgcmVzZXJ2ZWQgdmlhIElQQU0s IHRoZSBkbnNtYXNxIGNvbmZpZyBjYW4gYmUgZ2VuZXJhdGVkDQo+IHN0YXRlbGVzcyBhbmQgaWRl bXBvdGVudCBmcm9tIHRoZSBwdmUgSVBBTSBhbmQgaXMgaWRlbnRpY2FsIG9uIGFsbA0KPiBub2Rl cw0KPiByZWdhcmRsZXNzIGlmIGEgVk0vQ1QgYWN0dWFsbHkgcmVzaWRlcyBvbiB0aGF0IG5vZGUg b3IgaXMgcnVubmluZyBvcg0KPiBzdG9wcGVkLsKgIFRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwg Zm9yIFZNIG1pZ3JhdGlvbiBiZWNhdXNlIHRoZSBJUA0KPiBzdGF5cyBjb25zaXN0ZW50IHdpdGhv dXQgc3BhY2lhbCBjb25zaWRlcmluZy4NCj4gDQo+IFNuYXBzaG90L3JldmVydCwgYmFja3VwL3Jl c3RvcmUsIHN1c3BlbmQvaGliZXJuYXRlL3Jlc3VtZSBjYXNlcyBhcmUNCj4gYXV0b21hdGljYWxs eSBjb3ZlcmVkIGJlY2F1c2UgdGhlIElQIHdpbGwgYWxyZWFkeSBiZSByZXNlcnZlZCBmb3INCj4g dGhhdA0KPiBNQUMuDQo+IA0KPiBJZiB0aGUgYWRtaW4gd2FudHMgdG8gY2hhbmdlLCB0aGUgSVAg b2YgYSBWTSB0aGlzIGNhbiBiZSBkb25lIHZpYSB0aGUNCj4gSVBBTSBBUEkvVUkgd2hpY2ggd2ls bCBoYXZlIHRvIGJlIGltcGxlbWVudGVkIHNlcGFyYXRlbHkuDQo+IA0KPiBBIGxpbWl0YXRpb24g b2YgdGhpcyBhcHByb2FjaCB2cyBkeW5hbWljIElQIHJlc2VydmF0aW9uIGlzIHRoYXQgdGhlDQo+ IElQDQo+IHJhbmdlIG9uIHRoZSBzdWJuZXQgbmVlZHMgdG8gYmUgbGFyZ2UgZW5vdWdoIHRvIGhv bGQgYWxsIElQcyBvZiBhbGwsDQo+IGV2ZW4gc3RvcHBlZCwgVk1zIGluIHRoYXQgc3VibmV0LiBU aGlzIGlzIGluIGNvbnRyYXN0IHRvIGRlZmF1bHQgREhDUA0KPiBmdW5jdGlvbmFsaXR5IHdoZXJl IG9ubHkgdGhlIG51bWJlciBvZiBhY3RpdmVseSBydW5uaW5nIFZNcyBpcw0KPiBsaW1pdGVkLg0K PiBJdCBzaG91bGQgYmUgZW5vdWdoIHRvIG1lbnRpb24gdGhpcyBpbiB0aGUgZG9jcy4NCj4gDQo+ IEkgd2lsbCBmdXJ0aGVyIHJldmlldyB0aGUgY29kZSBhbiB0cnkgdG8gaW1wbGVtZW50IHRoZSBh Zm9yZW1lbnRpb25lZA0KPiBhcHByb2FjaC4NCj4gDQo+IEJlc3QgcmVnYXJkcywNCj4gU3RlZmFu IExlbmRsDQo+IA0KPiBTdGVmYW4gSGFucmVpY2ggPHMuaGFucmVpY2hAcHJveG1veC5jb20+IHdy aXRlczoNCj4gDQo+ID4gVGhpcyBpcyBhIFdJUCBwYXRjaCBzZXJpZXMsIHNpbmNlIEkgd2lsbCBi ZSBnb25lIGZvciAzIHdlZWtzIGFuZA0KPiA+IHdhbnRlZCB0bw0KPiA+IHNoYXJlIG15IGN1cnJl bnQgcHJvZ3Jlc3Mgd2l0aCB0aGUgREhDUCBzdXBwb3J0IGZvciBTRE4uDQo+ID4gDQo+ID4gVGhp cyBwYXRjaCBzZXJpZXMgYWRkcyBzdXBwb3J0IGZvciBhdXRvbWF0aWNhbGx5IGRlcGxveWluZyBk bnNtYXNxDQo+ID4gYXMNCj4gPiBhIERIQ1ANCj4gPiBzZXJ2ZXIgdG8gYSBzaW1wbGUgU0ROIFpv bmUuDQo+ID4gDQo+ID4gV2hpbGUgY2VydGFpbmx5IG5vdCAxMDAlIHBvbGlzaGVkIG9uIHNvbWUg ZW5kcyAobG9va2luZyBhdA0KPiA+IHJlc3RhcnRpbmcNCj4gPiBzeXN0ZW1kDQo+ID4gc2Vydmlj ZXMgaW4gcGFydGljdWxhciksIHRoZSBnZW5lcmFsIGlkZWEgYmVoaW5kIHRoZSBtZWNoYW5pc20N Cj4gPiBzaG93cy4NCj4gPiBJIHdhbnRlZA0KPiA+IHRvIGdhdGhlciBzb21lIGZlZWRiYWNrIG9u IGhvdyBJIGFwcHJvYWNoZWQgZGVzaWduaW5nIHRoZSBwbHVnaW5zDQo+ID4gYW5kDQo+ID4gdGhl DQo+ID4gY29uZmlnIHJlZ2VuZXJhdGlvbiBwcm9jZXNzIGJlZm9yZSBjb21pdHRpbmcgdG8gdGhp cyBkZXNpZ24gYnkNCj4gPiBjcmVhdGluZyBhbiBBUEkNCj4gPiBhbmQgVUkgYXJvdW5kIGl0Lg0K PiA+IA0KPiA+IFlvdSBuZWVkIHRvIGluc3RhbGwgZG5zbWFzcSAoYW5kIGRpc2FibGUgaXQgYWZ0 ZXJ3YXJkcyk6DQo+ID4gDQo+ID4gwqAgYXB0IGluc3RhbGwgZG5zbWFzcSAmJiBzeXN0ZW1jdGwg ZGlzYWJsZSAtLW5vdyBkbnNtYXNxDQo+ID4gDQo+ID4gDQo+ID4gWW91IGNhbiB1c2UgdGhlIGZv bGxvd2luZyBleGFtcGxlIGNvbmZpZ3VyYXRpb24gZm9yIGRlcGxveWluZyBhDQo+ID4gREhDUA0K PiA+IHNlcnZlciBpbg0KPiA+IGEgU0ROIHN1Ym5ldDoNCj4gPiANCj4gPiAvZXRjL3B2ZS9zZG4v ZGhjcC5jZmc6DQo+ID4gDQo+ID4gwqAgZG5zbWFzcTogbmF0DQo+ID4gDQo+ID4gDQo+ID4gL2V0 Yy9wdmUvc2RuL3pvbmVzLmNmZzoNCj4gPiANCj4gPiDCoCBzaW1wbGU6IERIQ1BOQVQNCj4gPiDC oMKgwqDCoMKgwqDCoMKgwqAgaXBhbSBwdmUNCj4gPiANCj4gPiANCj4gPiAvZXRjL3B2ZS9zZG4v dm5ldHMuY2ZnOg0KPiA+IA0KPiA+IMKgIHZuZXQ6IGRoY3BuYXQNCj4gPiDCoMKgwqDCoMKgwqDC oMKgwqAgem9uZSBESENQTkFUDQo+ID4gDQo+ID4gDQo+ID4gL2V0Yy9wdmUvc2RuL3N1Ym5ldHMu Y2ZnOg0KPiA+IA0KPiA+IMKgIHN1Ym5ldDogREhDUE5BVC0xMC4xLjAuMC0xNg0KPiA+IMKgwqDC oMKgwqDCoMKgwqDCoCB2bmV0IGRoY3BuYXQNCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqAgZGhjcC1k bnMtc2VydmVyIDEwLjEuMC4xDQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgIGRoY3AtcmFuZ2Ugc2Vy dmVyPW5hdCxzdGFydC1hZGRyZXNzPTEwLjEuMC4xMDAsZW5kLQ0KPiA+IGFkZHJlc3M9MTAuMS4w LjIwMA0KPiA+IMKgwqDCoMKgwqDCoMKgwqDCoCBnYXRld2F5IDEwLjEuMC4xDQo+ID4gwqDCoMKg wqDCoMKgwqDCoMKgIHNuYXQgMQ0KPiA+IA0KPiA+IA0KPiA+IFRoZW4gYXBwbHkgdGhlIFNETiBj b25maWd1cmF0aW9uOg0KPiA+IA0KPiA+IMKgIHB2ZXNoIHNldCAvY2x1c3Rlci9zZG4NCj4gPiAN Cj4gPiBZb3UgbmVlZCB0byBhcHBseSB0aGUgU0ROIGNvbmZpZ3VyYXRpb24gb25jZSBhZnRlciBh ZGRpbmcgdGhlIGRoY3AtDQo+ID4gcmFuZ2UgbGluZXMNCj4gPiB0byB0aGUgY29uZmlndXJhdGlv biwgc2luY2UgdGhlIHJ1bm5pbmcgY29uZmlndXJhdGlvbiBpcyB1c2VkIGZvcg0KPiA+IG1hbmFn aW5nDQo+ID4gREhDUC4gSXQgd2lsbCBub3Qgd29yayBvdGhlcndpc2UhDQo+ID4gDQo+ID4gRm9y IHRlc3RpbmcgaXQgY2FuIGJlIGhlbHBmdWwgdG8gbW9uaXRvciB0aGUgZm9sbG93aW5nIGZpbGVz IChlLmcuDQo+ID4gd2l0aCB3YXRjaCkNCj4gPiB0byBmaW5kIG91dCB3aGF0IGlzIGhhcHBlbmlu Zw0KPiA+IMKgICogL2V0Yy9kbnNtYXNxLmQvPGRoY3BfaWQ+L2V0aGVycyAob24gZWFjaCBub2Rl KQ0KPiA+IMKgICogL2V0Yy9wdmUvcHJpdi9pcGFtLmRiDQo+ID4gDQo+ID4gQ2hhbmdlcyBmcm9t IHYxIC0+IHYyOg0KPiA+IMKgICogYWRkZWQgaG9va3MgZm9yIGhhbmRsaW5nIERIQ1Agd2hlbiBz dGFydGluZyAvIHN0b3BwaW5nIC8gLi4gVk1zDQo+ID4gYW5kIENUcw0KPiA+IMKgICogR2V0IGFu IElQIGZyb20gSVBBTSBhbmQgcmVnaXN0ZXIgdGhhdCBJUCBpbiB0aGUgREhDUCBzZXJ2ZXINCj4g PiDCoMKgwqAgKHB2ZSBvbmx5IGZvciBub3cpDQo+ID4gwqAgKiByZW1vdmUgbGVhc2UtdGltZSwg c2luY2UgaXQgaXMgbm93IGluZmluaXRlIGFuZCBtYW5hZ2VkIGJ5IHRoZQ0KPiA+IFZNDQo+ID4g bGlmZWN5Y2xlDQo+ID4gwqAgKiBhZGQgaG9va3MgZm9yIHNldHRpbmcgJiBkZWxldGluZyBESENQ IG1hcHBpbmdzIHRvIERIQ1AgcGx1Z2lucw0KPiA+IMKgICogbW9kaWZpZWQgaW50ZXJmYWNlIG9m IHRoZSBhYnN0cmFjdCBjbGFzcyB0byByZWZsZWN0IG5ldw0KPiA+IHJlcXVpcmVtZW50cw0KPiA+ IMKgICogYWRkZWQgaGVscGVycyBpbiBleGlzdGluZyBTRE4gY2xhc3Nlcw0KPiA+IMKgICogc2lt cGxpZmllZCBESENQIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MNCj4gPiANCj4gPiANCj4gPiANCj4g PiBwdmUtY2x1c3RlcjoNCj4gPiANCj4gPiBTdGVmYW4gSGFucmVpY2ggKDEpOg0KPiA+IMKgIGNs dXN0ZXIgZmlsZXM6IGFkZCBkaGNwLmNmZw0KPiA+IA0KPiA+IMKgc3JjL1BWRS9DbHVzdGVyLnBt wqAgfCAxICsNCj4gPiDCoHNyYy9wbXhjZnMvc3RhdHVzLmMgfCAxICsNCj4gPiDCoDIgZmlsZXMg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspDQo+ID4gDQo+ID4gDQo+ID4gcHZlLW5ldHdvcms6DQo+ ID4gDQo+ID4gU3RlZmFuIEhhbnJlaWNoICg2KToNCj4gPiDCoCBzdWJuZXRzOiB2bmV0czogcHJl cGFyYXRpb25zIGZvciBESENQIHBsdWdpbnMNCj4gPiDCoCBkaGNwOiBhZGQgYWJzdHJhY3QgY2xh c3MgZm9yIERIQ1AgcGx1Z2lucw0KPiA+IMKgIGRoY3A6IHN1Ym5ldDogYWRkIERIQ1Agb3B0aW9u cyB0byBzdWJuZXQgY29uZmlndXJhdGlvbg0KPiA+IMKgIGRoY3A6IGFkZCBESENQIHBsdWdpbiBm b3IgZG5zbWFzcQ0KPiA+IMKgIGlwYW06IEFkZCBoZWxwZXIgbWV0aG9kcyBmb3IgREhDUCB0byBQ VkUgSVBBTQ0KPiA+IMKgIGRoY3A6IHJlZ2VuZXJhdGUgY29uZmlnIGZvciBESENQIHNlcnZlcnMg b24gcmVsb2FkDQo+ID4gDQo+ID4gwqBkZWJpYW4vY29udHJvbMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAxICsNCj4gPiDCoHNyYy9QVkUvTmV0 d29yay9TRE4ucG3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTEgKy0NCj4g PiDCoHNyYy9QVkUvTmV0d29yay9TRE4vRGhjcC5wbcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAx OTINCj4gPiArKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gwqBzcmMvUFZFL05ldHdvcmsv U0ROL0RoY3AvRG5zbWFzcS5wbcKgwqDCoCB8IDE4Ng0KPiA+ICsrKysrKysrKysrKysrKysrKysr KysrKw0KPiA+IMKgc3JjL1BWRS9OZXR3b3JrL1NETi9EaGNwL01ha2VmaWxlwqDCoMKgwqDCoCB8 wqDCoCA4ICsrDQo+ID4gwqBzcmMvUFZFL05ldHdvcmsvU0ROL0RoY3AvUGx1Z2luLnBtwqDCoMKg wqAgfMKgIDgzICsrKysrKysrKysrDQo+ID4gwqBzcmMvUFZFL05ldHdvcmsvU0ROL0lwYW1zL1BW RVBsdWdpbi5wbSB8wqAgNjQgKysrKysrKysrDQo+ID4gwqBzcmMvUFZFL05ldHdvcmsvU0ROL01h a2VmaWxlwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMyArLQ0KPiA+IMKgc3JjL1BWRS9OZXR3 b3JrL1NETi9TdWJuZXRQbHVnaW4ucG3CoMKgwqAgfMKgIDMyICsrKysrDQo+ID4gwqBzcmMvUFZF L05ldHdvcmsvU0ROL1N1Ym5ldHMucG3CoMKgwqDCoMKgwqDCoMKgIHzCoCA0MyArKysrLS0NCj4g PiDCoHNyYy9QVkUvTmV0d29yay9TRE4vVm5ldHMucG3CoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAg MjcgKystLQ0KPiA+IMKgMTEgZmlsZXMgY2hhbmdlZCwgNjIyIGluc2VydGlvbnMoKyksIDI4IGRl bGV0aW9ucygtKQ0KPiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9QVkUvTmV0d29yay9TRE4v RGhjcC5wbQ0KPiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9QVkUvTmV0d29yay9TRE4vRGhj cC9EbnNtYXNxLnBtDQo+ID4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL1BWRS9OZXR3b3JrL1NE Ti9EaGNwL01ha2VmaWxlDQo+ID4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL1BWRS9OZXR3b3Jr L1NETi9EaGNwL1BsdWdpbi5wbQ0KPiA+IA0KPiA+IA0KPiA+IHB2ZS1tYW5hZ2VyOg0KPiA+IA0K PiA+IFN0ZWZhbiBIYW5yZWljaCAoMSk6DQo+ID4gwqAgc2RuOiByZWdlbmVyYXRlIERIQ1AgY29u ZmlnIG9uIHJlbG9hZA0KPiA+IA0KPiA+IMKgUFZFL0FQSTIvTmV0d29yay5wbSB8IDEgKw0KPiA+ IMKgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspDQo+ID4gDQo+ID4gDQo+ID4gcWVtdS1z ZXJ2ZXI6DQo+ID4gDQo+ID4gU3RlZmFuIEhhbnJlaWNoICgxKToNCj4gPiDCoCBzZG46IGRoY3A6 IGFkZCBESENQIHNldHVwIHRvIHZtLW5ldHdvcmstc2NyaXB0cw0KPiA+IA0KPiA+IMKgUFZFL1Fl bXVTZXJ2ZXIucG3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDE0ICsrKysrKysr KysrKysrDQo+ID4gwqB2bS1uZXR3b3JrLXNjcmlwdHMvcHZlLWJyaWRnZcKgwqDCoMKgIHzCoCAz ICsrKw0KPiA+IMKgdm0tbmV0d29yay1zY3JpcHRzL3B2ZS1icmlkZ2Vkb3duIHwgMTkgKysrKysr KysrKysrKysrKysrKw0KPiA+IMKgMyBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspDQo+ ID4gDQo+ID4gDQo+ID4gcHZlLWNvbnRhaW5lcjoNCj4gPiANCj4gPiBTdGVmYW4gSGFucmVpY2gg KDEpOg0KPiA+IMKgIHNkbjogZGhjcDogc2V0dXAgREhDUCBtYXBwaW5ncyBpbiBMWEMgaG9va3MN Cj4gPiANCj4gPiDCoHNyYy9QVkUvTFhDLnBtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDEwICsr KysrKysrKysNCj4gPiDCoHNyYy9seGMtcHZlLXBvc3RzdG9wLWhvb2sgfMKgIDEgKw0KPiA+IMKg c3JjL2x4Yy1wdmUtcHJlc3RhcnQtaG9vayB8wqAgOSArKysrKysrKysNCj4gPiDCoDMgZmlsZXMg Y2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKQ0KPiA+IA0KPiA+IA0KPiA+IFN1bW1hcnkgb3ZlciBh bGwgcmVwb3NpdG9yaWVzOg0KPiA+IMKgIDIwIGZpbGVzIGNoYW5nZWQsIDY4MSBpbnNlcnRpb25z KCspLCAyOCBkZWxldGlvbnMoLSkNCj4gPiANCj4gPiAtLQ0KPiA+IG11cnBwIHYwLjQuMA0KPiA+ IA0KPiA+IA0KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQo+ID4gcHZlLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+IHB2ZS1kZXZlbEBsaXN0cy5wcm94 bW94LmNvbQ0KPiA+IGh0dHBzOi8vYW50aXBoaXNoaW5nLmNldHNpLmZyL3Byb3h5L3YzP2k9WVhK d2JuSTVaR1kzWVhNMk1UaEJZY19fajMNCj4gPiBtUFFkREMwbVowOG9SSUpMdyZyPWQyUnBWRkpW YVRWdGNGSlJXRk5NWWdZQ2RkUDkzWTlTT0VhR3dBRC0NCj4gPiA5SmRMcngySnd3S2ZzOVNuX3Vp UlFDQ1VncW5DZzRXTEQtDQo+ID4gZ0xZMGVLWHJYWDRBJmY9U1ZOMFRqRkJiMWs1UWs4elEyRTFZ VC0NCj4gPiBOSjJZMmZKWXJSVmNWQXVSczlVWWZ5TUZydGtvRExjYVRWOU1oWVFaRCZ1PWh0dHBz JTNBLy9hbnRpcGhpc2hpbmcuDQo+ID4gY2V0c2kuZnIvcHJveHkvdjMlM0ZpJTNEZDFsNE5YTk5h V0U0U1dacVUwZExXY3VUZmR4RSZrPW9nZDENCj4gPiBkOThOZldJcDlkbWE1a1kmcj1NWEpVYTBG clVWSnFjMVV3WVd4TlotDQo+ID4gdHVYZHVFTzhBTVZuQ3ZZVk1wckNaM29QaWxneTNuWGN1SlRP R0g1aUs4NHJWUmc4Y3VrRkFST2R4WVJnRlRUZyZmPQ0KPiA+IGMyDQo+ID4geE1kVk40U21oMlIy dE9aRGRJUktDazdXRW9jSHBUUE1lclQxUS0NCj4gPiBBcTVxd3I4bDJ4dkFXdU9HdkZzVjNmcnAy b1NBZ3hOVVFDcEpESHAyaVVtVFdnJnU9aHR0cHMlM0EvL2xpc3RzLnByDQo+ID4gb3gNCj4gPiBt b3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwmaz1manpTDQo+IA0KPiAN Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gcHZl LWRldmVsIG1haWxpbmcgbGlzdA0KPiBwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20NCj4gaHR0 cHM6Ly9hbnRpcGhpc2hpbmcuY2V0c2kuZnIvcHJveHkvdjM/aT1ZWEp3Ym5JNVpHWTNZWE0yTVRo QlljX19qM21QDQo+IFFkREMwbVowOG9SSUpMdyZyPWQyUnBWRkpWYVRWdGNGSlJXRk5NWWdZQ2Rk UDkzWTlTT0VhR3dBRC0NCj4gOUpkTHJ4Mkp3d0tmczlTbl91aVJRQ0NVZ3FuQ2c0V0xELQ0KPiBn TFkwZUtYclhYNEEmZj1TVk4wVGpGQmIxazVRazh6UTJFMVlULQ0KPiBOSjJZMmZKWXJSVmNWQXVS czlVWWZ5TUZydGtvRExjYVRWOU1oWVFaRCZ1PWh0dHBzJTNBLy9hbnRpcGhpc2hpbmcuY2UNCj4g dHNpLmZyL3Byb3h5L3YzJTNGaSUzRGQxbDROWE5OYVdFNFNXWnFVMGRMV2N1VGZkeEVkOSZrPW9n ZDENCj4gOE5mV0lwOWRtYTVrWSZyPU1YSlVhMEZyVVZKcWMxVXdZV3hOWi0NCj4gdHVYZHVFTzhB TVZuQ3ZZVk1wckNaM29QaWxneTNuWGN1SlRPR0g1aUs4NHJWUmc4Y3VrRkFST2R4WVJnRlRUZyZm PWMyDQo+IHhNDQo+IGRWTjRTbWgyUjJ0T1pEZElSS0NrN1dFb2NIcFRQTWVyVDFRLQ0KPiBBcTVx d3I4bDJ4dkFXdU9HdkZzVjNmcnAyb1NBZ3hOVVFDcEpESHAyaVVtVFdnJnU9aHR0cHMlM0EvL2xp c3RzLnByb3gNCj4gbW8NCj4geC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZl bCZrPWZqelMNCg0KDQo=