From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id 2E2F31FF0C0 for ; Wed, 09 Sep 2026 06:53:07 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 2F69A2157C; Wed, 09 Sep 2026 06:53:03 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V/51Q4j7NRzFGs0vZbwYtoiaHU7T69MrnNGau5QPbT4HrZg053CJqtIoCoF6h6COmo5RIq/CrHA6Xgm4daf3V0yaaj3pMgukzUp0nVBFmke1Timf8yMSVKPB1MzB2LlVPG4La3fvWmnUZ/8r2FxBvu4BWeCz3vb4nccR4Z1pOiLzN8GbH1jJpIhrdjsCnaLyJe7dYTunhogDYHSA9Zo8zZAe8poLEUPYJLuECfNA0bsjcb6Kkl5Si58kEu4NvMME59i+tlQPFHZJTwITgHe7L/yLDPMVu6FalCInraqZMast4mhLwaCSe8YZ5PJXguhDHMVyUc6CPwNUnVwyDdg0kw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=JA4uK083PvR1eVkYkMg2yc4cHx0TOIDYCkQTPIvmwPM=; b=zHd0ARzewQdSEcIYwIOGiuV76h0PgaSdVFgVfH8FwTjtY//f+pzrrDEys1q3TTzUvxv9tiEWcpNxyLb+dABba2cuRGIsp38njRP8DBunic2Tz34S7UmRHXMwNHGJ5nFM+Ar4rSFt1JjBuwSr/DnXMtHHdVt/tM9OdAvkHCmB71pAGKBZCN1mYuyubfcT1EhdNIirUFG6sYhwMo9pnq1zDljCasvExZUqvaFS6oe9igIK1CnvEF+6y+1BAenASLaAbsahN22k4LT/tYt/E3a204q96XyzhAtKv+u7oBXHS2RFKTOipG0HsXNi2qNSgh86ctzmpEfMITdLPCMI1fCKEg== 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=JA4uK083PvR1eVkYkMg2yc4cHx0TOIDYCkQTPIvmwPM=; b=cKgwO9vqzfxLxKmMs6PSGcEmFPze7Ga1/7OxcJWANDxafWPPPgLFKWPY1vUGGmhSn9SGVdTjHA8sxvjQLywhO2BkS8zPA6UC9RxeffQdwS6+XY4wyOg7ZVoXMPN1EItHlW/IxQGjwVMf41ORPWD7DkHvJLfjt3wRaM18nD53rjg= From: "DERUMIER, Alexandre" To: "pve-devel@lists.proxmox.com" , "s.hanreich@proxmox.com" Subject: Re: [PATCH] sdn: evpn: allow vlan-aware vnets Thread-Topic: [PATCH] sdn: evpn: allow vlan-aware vnets Thread-Index: AQHdPFphduKX1fV8SUq3y3DUESXh1bbEdPAAgAFAdIA= Date: Wed, 9 Sep 2026 04:52:44 +0000 Message-ID: <06a5831f0c8de47dc97614be9395940682117d3f.camel@groupe-cyllene.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.60.2 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: PAZSPR01MB0011:EE_|PA3PPF784CB3B9E:EE_ x-ms-office365-filtering-correlation-id: 212b7fb8-6615-4e29-21d8-08df0e2e3019 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|366016|23010399003|1800799024|38070700021|6133799003|3023799007|10067099003|4143699003|56012099006|5023799004|22082099003|18002099003; x-microsoft-antispam-message-info: MvsY8AGKGub95BJvo9z9L7WizzdZrWthk0GQrphcWo8rfezHXy3Wjy3HvWG3ODTtXEmgFWHPcq0Z8lu9z2SkqkYJGuLSuUA2OSUGfSN2CmgbN/LsLTCakrRSzAPSY80aNbTTnSl34+lbdwuQh7/qJViOQwjC+JFH4ab3i0jr1qzZ/470Zsix3RwEtmT1FvgrxpRkY9PWO+TRXylMjT33TcTgGV8B9wu3Xi6GDl4Fm+d2kuDtqnx9yvXQBsACh9Hq+D3R/g7BOBYPnBM4BsBJzjeGbikcrLrRBI02uBsR97xdD299pnr9L3riAVMsUGtVd1MC3LdIZg3ZWwKhJJpA45rO1eO/81qZODZgGDcYXdG38F9MH34z56Wb/aCaMqR6ecJC5hY2BOlmYKkhcXrFZ3/mX6xXsjUCVbIFOD/iUvBKXyXneSbH5rAftJPiTKAugyN5KvX8CiT+k3YmRXiejSDoyRQli2nDjtG6cA37Qx+mhvqfnR3mh9Xz/uwDAdjE1xO9L90BXtXylqVVQqiSI6E1GE3c5m4R62XBt15gZBeuGtBVwo7P0yD7CJ+fA8WxEOinAAboU0aKIis1COELkiQwxxOILzJf1Rxq+4LCMmYokfUPphU6mFBe8gCqo04vtnpDr6K/eAOZZU+VxlG6JWpJ0cWQ4gGLviO7YStTZ+Q= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAZSPR01MB0011.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(23010399003)(1800799024)(38070700021)(6133799003)(3023799007)(10067099003)(4143699003)(56012099006)(5023799004)(22082099003)(18002099003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?d3Q0K0xZUHJJcW9lSk1pa2JuZld5ckZJZVBQODRXcEJIemVQUzlYbElMR1Fl?= =?utf-8?B?TTdoOTZMS1pydzNlRGpnSGdkdTQxamd4ZGRUWTEzeWJQOUlDTUF3dGxOTlRi?= =?utf-8?B?bjZQelJIbDl5d3JqdUs4Q25sV2swNS9MSjc4akFmdnRrb1FsdFlVbnpqKzlr?= =?utf-8?B?MG5XQm50L0VoTm9HRWgyWXkrNFFZcmt4VEwrZXdWUlRRUHF3c3VJSWtxUlll?= =?utf-8?B?S3QzK3BCMjN2Sk1TREhmN2lTclRHWjUyTUtlZXZWRjRGdHpIN2k2a2dWWWlt?= =?utf-8?B?dkZvMVB6L0NHakI2MWlUYjFuT25pUkgwNzhSTjV1R2hSTWxFR2ltRzZacnl4?= =?utf-8?B?TUhYSzlzWlZXeVFWd1NxL0cvV3ZleEk0M2xmUFZRUUhoTG9nMjJpdDgzT244?= =?utf-8?B?WXkvQ3pPZ2VFSERpZmpPeHo1OHkycHYxWGl0K1lrelVTRzRuNENJWW1STHRX?= =?utf-8?B?Rnc5M2VtUWdJZU42TWY5ZXZDaEVUWlZnTU14VVp1UjViT2IvbTRqOStkZnBo?= =?utf-8?B?MUhYTVlFcXZmV3Iwek9MbUQzZDhubERUdC82UTFWRFY5VVhRd2c5b2ZNYTdW?= =?utf-8?B?dVphUy9DOEVZb1FWa3RpeDRnRVljeEt1SkpsT0NSaVlWOS96ZGdlTjg0MU5C?= =?utf-8?B?a2JKQWs0MncvSHk1aGFEbGo4L1l2UVRhNDBxMjNKMmpQQm9MVjlscEhkN1RW?= =?utf-8?B?YnJXSzZJU0w3bHhLNCtERWlDTmZ0dFVacCtQdjdNZVBPZ3pEUDA5M3VJRGdC?= =?utf-8?B?eEVGZGVJS2lLMzFWbElxSWg2WnhTNi80NldzckFrMkVHVnhTc0Z1ZkVOTXV2?= =?utf-8?B?UXhxckVzdk1OODVLb0w0NEE4MytUL2tMOFJMWGczdjNiNDR2Z0tXOWVKMG9s?= =?utf-8?B?dktvWE96SVVsZ2l1WkVmd0lkRk0zbmVZMDVpMFh0UG15cDZHNUMzQnp3b3Iw?= =?utf-8?B?bU90eXNRNVVVWSt2K1c5NUFGTFEraFRmQ0U5NThhZGl0OEVSNVdQTDVLRnBs?= =?utf-8?B?NzNaYXZybkdpOG1UT0VaL3pYNG5BU1JEaThIZGdvUkQvTVkzSVFRcTFJL3lY?= =?utf-8?B?Q0lmZ1ZyWWdKUTZNT25BUVJLS0trZEpWVTIyK094dzVzL1pzTW8wc1QvOWpt?= =?utf-8?B?a2hWeFlqeFdNanZWa045Wmd2a3pZQkFZSWg4eWZ0dzNqWUx3UDg5azV3OXMx?= =?utf-8?B?WS90WFpZTG4rK25xMTdzY1N5Qk9SenVUUUJ2S1JVMlhWVFRkMlorU09sUkYw?= =?utf-8?B?b3FLSmVIdndwWTRkeVBHdjBFVXpOMkFDRUpmUGhDeTlDRHZMSWlTajgvZFRI?= =?utf-8?B?cFhCUTVEcUFwS2tDT3lQYzhuWGtvWXJuNlNGVDd6K1ZMVEVvV0wzVWdYUlhm?= =?utf-8?B?cVJ6SE1TWVFUY3ByTDgzOEtWOG1uTUZMazFBZHdWZU80cEZBWlUzVkdvQjRj?= =?utf-8?B?NWtkQnJuWGEwRHJZTTlHTWtjRThzSCtGb1lFQnlhWlZzTk14SFpJYVdxVkJX?= =?utf-8?B?RThheEpQcWxuZE5GWkdrVEFDSGhYZXBuNVVqT2Y1UWpQa0JwYUdjV0xBOExX?= =?utf-8?B?ZzBYUWZnVUo5QWhKZURBeDNlQi9HaWVsVWVzZVQ3RHRSbUdMK3lzMTg3RDBN?= =?utf-8?B?MHdtRENtUHJEY2czYTIxMDZHYmhEK0czeDRCNm9iMkpJaVByRGxoN05jNGM2?= =?utf-8?B?YlFFbFVMVjBsVll5OVN4QnQ2TnMrUzJDdFRXMEF1cUQyd29VMTJ1SHBnTmhC?= =?utf-8?B?L3h4RUlqS2Q1bGRLTjcyenQ4SFBEdXJ5UllmQWhudjgxdWQ3dmppbUlrMGlG?= =?utf-8?B?TWxVK0tyWTVsVkxrZmQ4UHA5MFQ1cEhLNkt5aU5LQVFQVmpwbFhkeStHL1Jk?= =?utf-8?B?SnhtZzgyRmo1NDd0ekFvcUtjcStHSkJhYS9ReWlFenMwR1FTRjU0c1c5T2Y5?= =?utf-8?B?MDNMdnRwdFFwdHBVUU9raVJLZDNoTGYxWWdhZmZXMy9tYkV3L2VXQ2NSUW1G?= =?utf-8?B?bUlEQmlsTHBvdVhoelZOdFI1WU1JSzZSQVZhdVlQT2wxZ25WcCtvSE12aEtw?= =?utf-8?B?WEpWdUtDV0Y2elB6Qm5IanhINk90RGFKZ3JTZDMxT1BISGV6V0FVV2hrMGE2?= =?utf-8?B?UGc1SXhRK1dHdkdrcnI1K2xPVkJTa2RGTndvV1k1Q2J1L05tY2ZCVWhZcmE3?= =?utf-8?B?TVBBMml0bTNXWXdiQzJLVWNTcDN2UFN3bWdSTmEwTUF3ZkxlMzAxZGlJTlBH?= =?utf-8?B?YWlwWTVVYkxvSG00ZGVsY2loeWx4cVVWZzcrSE5GK0pTVnNTVjlQckkrb3E2?= =?utf-8?B?YzhQclRYRUtzOHJLbXZLTG1oUVBWUjE1QTYrWEhXN1hGNUVtdEpISTJkNlpT?= =?utf-8?Q?KzdCrhEReYRq3TnxBOJRe8MBHKUzRaWd0ul1HMCNGiy35?= x-ms-exchange-antispam-messagedata-1: yGQV2E3CWo6QGg== Content-Type: text/plain; charset="utf-8" Content-ID: <29BBDEA04A81AD4683F8374891D5C6A9@FRAP264.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: groupe-cyllene.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAZSPR01MB0011.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 212b7fb8-6615-4e29-21d8-08df0e2e3019 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Sep 2026 04:52:44.7745 (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: U6mfPQxZLVX/sjRAiuKdGb+7PT6Z7x4D3K0eU8RoZ+W3HDQJpYZfCPOttCterwEpLMnHP6tKNuo+LnkSY8xDlWrXI8NGprpb6MtGmyz7ZNVLgDX3aO82/J2wtgJz7iZF X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA3PPF784CB3B9E X-SPAM-LEVEL: Spam detection results: 0 AWL 0.227 Adjusted score from AWL reputation of From: address 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 DMARC_PASS -0.1 DMARC pass policy KAM_SHORT 0.001 Use of a URL Shortener for very short URL RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust SPF_HELO_PASS -0.001 SPF: HELO matches SPF record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: NSNZSC44ULBDQZM46OTHR5WSVG7OIPZS X-Message-ID-Hash: NSNZSC44ULBDQZM46OTHR5WSVG7OIPZS X-MailFrom: alexandre.derumier@groupe-cyllene.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: SGksDQoNCnRoZXkgYXJlIGFsc28gYW5vdGhlciB3YXkgKHRoYXQgd29yayB3aXRoIHZ4bGFuLCBi dXQgSSdtIG5vdCBzdXJlIHdpdGgNCmV2cG4pLA0KDQpodHRwczovL2RvY3MubnZpZGlhLmNvbS9u ZXR3b3JraW5nLWV0aGVybmV0LXNvZnR3YXJlL2N1bXVsdXMtbGludXgtNTE1L05ldHdvcmstVmly dHVhbGl6YXRpb24vVlhMQU4tRGV2aWNlcy8NCmh0dHBzOi8vYmxvZy52eW9zLmlvL2V2cG4tdnhs YW4tZW5oYW5jZW1lbnRzLWludHJvZHVjaW5nLXNpbmdsZS12eGxhbi1kZXZpY2Utc3VwcG9ydA0K aHR0cHM6Ly9naXRodWIuY29tL0ZSUm91dGluZy9mcnIvcHVsbC8xMjM2NA0KDQppdCdzIG1hcHBp bmcgdmxhbiB0YWdzIGZyb20gYSB2bGFuIGF3YXJlIGJyaWRnZSB0byB2bmlzLCBhbmQgdHJhbnNw b3J0DQp0aGVtIGluIGEgc2luZ2xlIHZ4bGFuIGludGVyZmFjZS4NCg0KDQpJdCB3YXMgcHJldHR5 IG5ldyBhbmQgYnVnZ3kgNXllYXIgYWdvLCBzbyBJIG5ldmVyIHRyaWVkIHRvIGltcGxlbWVudGVk DQppdCwNCm1heWJlIGl0IGNvdWxkIGJlIGludGVyZXN0aW5nIHRvIGxvb2sgYXQgaXQuDQoNCg0K TGUgbWFyZGkgMDggc2VwdGVtYnJlIDIwMjYgw6AgMTE6NDUgKzAyMDAsIFN0ZWZhbiBIYW5yZWlj aCBhIMOpY3JpdMKgOg0KPiBUaGFua3MgZm9yIHlvdXIgY29udHJpYnV0aW9uIQ0KPiANCj4gV2Ug d2VyZSBkaXNjdXNzaW5nIGludGVybmFsbHkgaWYgdGhpcyBhcHByb2FjaCBpcyB0aGUgcmlnaHQg b25lLg0KPiBDdXJyZW50bHksDQo+IHdpdGggdGhlIEVWUE4gem9uZSBpdCBpcyBwb3NzaWJsZSB0 byBjcmVhdGUgYW4gTDMgRVZJIGFuZCB2aWEgdGhlDQo+IFZYTEFODQo+IHpvbmUgaXQgaXMgcG9z c2libGUgdG8gY3JlYXRlIGEgc3RhbmRhbG9uZSBMMiBFVkksIGJ1dCB0aGlzIGlzDQo+IGN1cnJl bnRseSBhDQo+IGJpdCBvZiBhIGhhY2suDQo+IA0KPiBXZSdyZSBzdHJvbmdseSBjb25zaWRlcmlu ZyBpbXByb3ZpbmcgdXBvbiB0aGlzIHdvcmthcm91bmQgYW5kIG1ha2luZw0KPiBpdCB0aGUgb2Zm aWNpYWxseSBzdXBwb3J0ZWQgYW5kIGRvY3VtZW50ZWQgd2F5IG9mIGNyZWF0aW5nIHN0YW5kYWxv bmUNCj4gTDINCj4gRVZJcywgYXMgd2VsbCBhcyBpbnRlZ3JhdGluZyB0aGlzIG5pY2VyIGludG8g b3VyIHN0YWNrIHRvIG1ha2UgaXQNCj4gbW9yZQ0KPiBkaXNjb3ZlcmFibGUuIERvZXMgdXRpbGl6 aW5nIGEgVkxBTi1hd2FyZSBWWExBTiB6b25lIHdpdGggYW4gRVZQTg0KPiBjb250cm9sbGVyDQo+ IGFuZCB0aGVuIGF0dGFjaGluZyBhIHJvdXRlIG1hcCB0byB0aGUgRVZQTiBjb250cm9sbGVyIHdv cmsgZm9yIHlvdXINCj4gdXNlIGNhc2UNCj4gYXMgd2VsbD8gV2Uga25vdyBvZiBxdWl0ZSBhIGZl dyBwZW9wbGUgdGhhdCBhcmUgdXNpbmcgdGhpcyBzZXR1cCBhbmQNCj4gYXJlDQo+IGNvbnNpZGVy aW5nIGl0IHdoZW4gZXh0ZW5kaW5nIHRoZSBTRE4gc3RhY2suIFRoYXQncyBhbHNvIHBhcnQgb2Yg d2h5DQo+IHdlIHdhbnQNCj4gdG8gZ28gZG93biB0aGF0IHJvdXRlLg0KPiANCj4gTWFpbiBwcm9i bGVtcyBJIGN1cnJlbnRseSBzZWUgYXJlIHRoYXQgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGNyZWF0 ZSBhDQo+IFZYTEFODQo+IHpvbmUgd2l0aG91dCBhbnkgcGVlcnMuIExlYXJuaW5nIFZURVAgSVBz IHZpYSB0eXBlLTMgcm91dGVzIHdvcmtzDQo+IHBlcmZlY3RseQ0KPiBmaW5lIHRob3VnaCAtIGl0 IGlzIGp1c3QgbmVjZXNzYXJ5IHRvIGVudGVyIGFueSBwZWVyIElQIGFkZHJlc3MNCj4gKHdoaWNo IGlzDQo+IGF3a3dhcmQgdG8gc2F5IHRoZSBsZWFzdCkuIEFsc28sIHRoZSBoYW5kbGluZyBvZiBy b3V0ZSBkaXN0cmlidXRpb24NCj4gaGFwcGVucw0KPiBpbXBsaWNpdGx5IGluc3RlYWQgb2YgZXhw bGljaXRseSwgc28gYWRkaW5nIHRoZSBvcHRpb24gb2YgYXNzaWduaW5nDQo+IEVWUE4NCj4gY29u dHJvbGxlcnMgdG8gVlhMQU4gem9uZXMgZXhwbGljaXRseSB3b3VsZCBiZSBwcmVmZXJyZWQgb3Zl ciB0aGUNCj4gc3RhdHVzDQo+IHF1byAtIGJ1dCB3ZSdkIGhhdmUgdG8gZmluZCBhIHdheSB0aGF0 IG1ha2VzIHRoaXMgYmFja3dhcmRzDQo+IGNvbXBhdGlibGUuDQo+IA0KPiBEbyB5b3UgdGhpbmsg dGhpcyBpcyBhIHRlbmFibGUgc29sdXRpb24gZm9yIHlvdXIgdXNlLWNhc2U/IERvIHlvdSBzZWUN Cj4gYW55DQo+IG90aGVyIGlzc3VlcywgcGFydGljdWxhcmx5IHdpdGggeW91ciBzcGVjaWZpYyBz ZXR1cD8NCj4gDQo+IA0KPiBPbiA5LzQvMjYgMTE6MjcgQU0sIFRob21hcyBHbGFuem1hbm4gd3Jv dGU6DQo+ID4gRVZQTiB2bmV0cyByZWplY3RlZCB0aGUgdmxhbmF3YXJlIGZsYWcgb3V0cmlnaHQs IHNvIGEgZ3Vlc3QgY291bGQNCj4gPiBub3QgYmUNCj4gPiBhdHRhY2hlZCB0byBhbiBFVlBOIHZu ZXQgd2l0aCBhIFZMQU4gdGFnIC0tIHRhcF9wbHVnIGJhaWxzIG91dCB3aXRoDQo+ID4gInZtDQo+ ID4gdmxhbnMgYXJlIG5vdCBhbGxvd2VkIG9uIHZuZXQgPHZuZXQ+IiBiZWNhdXNlIHRoZSB2bmV0 IGJyaWRnZSBoYXMNCj4gPiBWTEFODQo+ID4gZmlsdGVyaW5nIGRpc2FibGVkLg0KPiA+IA0KPiA+ IExpZnQgdGhlIHJlc3RyaWN0aW9uIGFuZCBnZW5lcmF0ZSBhIFZMQU4tYXdhcmUgdm5ldCBicmlk Z2UgKHZpZHMgMi0NCj4gPiA0MDk0KQ0KPiA+IGp1c3QgbGlrZSB0aGUgVlhMQU4gem9uZSBkb2Vz LCBzbyB0aGUgZ3Vlc3QgVkxBTiB0YWdzIGFyZSBjYXJyaWVkDQo+ID4gdHJhbnNwYXJlbnRseSBv dmVyIHRoZSB2bmV0J3MgVk5JOiBhIGd1ZXN0IG9uIGFuIHVudGFnZ2VkIHBvcnQNCj4gPiBzZW5k cw0KPiA+IDgwMi4xcSBmcmFtZXMgdGhhdCBnZXQgVlhMQU4gZW5jYXBzdWxhdGVkIGFzLWlzLCBh bmQgYSBndWVzdCBvbiBhDQo+ID4gcG9ydA0KPiA+IHdpdGggYSBWTEFOIHRhZyByZWNlaXZlcyB0 aGVtIHdpdGggdGhlIHRhZyBwb3BwZWQuPiBTdWNoIGEgdm5ldCBpcw0KPiA+IGEgVkxBTiBidW5k bGUgc2VydmljZSwgYW5kIEZSUiBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlDQo+ID4gVkxBTi1hd2Fy ZSB2YXJpYW50IG9mIGl0OiBpdCBvcmlnaW5hdGVzIHR5cGUtMiAoTUFDL0lQKSByb3V0ZXMgd2l0 aA0KPiA+IGFuDQo+ID4gRXRoZXJuZXQgVGFnIElEIG9mIDAsIHNvIHRoZSBWTEFOIGEgTUFDIHdh cyBsZWFybmVkIG9uIGlzIG5vdA0KPiA+IGNhcnJpZWQgaW4NCj4gPiB0aGUgcm91dGUuIEZSUiBk b2VzIGFkdmVydGlzZSB0aG9zZSBNQUNzIC0tIGl0IGRvZXMgbm90IHJlc3RyaWN0DQo+ID4gaXRz ZWxmDQo+ID4gdG8gdGhlIFZOSSdzIGFjY2VzcyBWTEFOIC0tIGJ1dCBhIHJlY2VpdmVyIGhhcyBu byB3YXkgdG8gdGVsbCB3aGljaA0KPiA+IFZMQU4NCj4gPiB0aGV5IGJlbG9uZyB0by4NCj4gPiAN Cj4gPiBCZXR3ZWVuIEZSUiBwZWVycyB0aGF0IGlzIGhhcm1sZXNzLiBUaGUgcmVjZWl2ZXIgaW5z dGFsbHMgdGhlIHJvdXRlDQo+ID4gaW50bw0KPiA+IHRoZSBWTkkncyBhY2Nlc3MgVkxBTiB3aGVy ZSBpdCBpcyBpbmVydCwgYW5kIHRoZSBlbnRyeSB0aGF0DQo+ID4gYWN0dWFsbHkNCj4gPiBmb3J3 YXJkcyB0aGUgdHJhZmZpYyBjb21lcyBmcm9tIGRhdGEgcGxhbmUgbGVhcm5pbmc6DQo+ID4gDQo+ ID4gwqAgYmM6MjQ6MTE6Yzc6NzE6OWMgZGV2IHZ4bGFuX2UxIHZsYW4gMSBleHRlcm5fbGVhcm4g bWFzdGVyIGUxDQo+ID4gwqAgYmM6MjQ6MTE6Yzc6NzE6OWMgZGV2IHZ4bGFuX2UxIHZsYW4gNSBt YXN0ZXIgZTENCj4gPiANCj4gPiBBZ2FpbnN0IGEgdGhpcmQtcGFydHkgVlRFUCBpdCBpcyBub3Qg aGFybWxlc3MsIGFuZCBpdCBicmVha3MNCj4gPiBkaWZmZXJlbnRseQ0KPiA+IGRlcGVuZGluZyBv biBob3cgdGhlIHBlZXIgbWFwcyB0aGUgRXRoZXJuZXQgVGFnLiBNZWFzdXJlZCBpbiBhDQo+ID4g Zm91ci1WVEVQDQo+ID4gZmFicmljIChWTkkgMSwgY3VzdG9tZXIgVkxBTiA1IGNhcnJpZWQgdGFn Z2VkIGluc2lkZSBpdCkgd2l0aCB0aGUNCj4gPiByb3V0ZS1tYXAgZGVueSBiZWxvdyByZW1vdmVk Og0KPiA+IA0KPiA+IMKgIC0gQ2lzY28gTlgtT1MgOS4zLCB2bGFuLWJhc2VkIFZOSSBmZWQgYnkg YSBRaW5RIGhhaXJwaW46IGltcG9ydHMNCj4gPiB0aGUNCj4gPiDCoMKgwqAgdGFnLTAgcm91dGUg YXMgYSBjb250cm9sLXBsYW5lIE1BQyBpbiB0aGUgVk5JJ3MgYnJpZGdlIGRvbWFpbiwNCj4gPiAN Cj4gPiDCoMKgwqDCoMKgIEMgMTAwMCBiYzI0LjExZjEuOTIzNiBkeW5hbWljIG52ZTEoMTAuMTAx LjAuMTEpDQo+ID4gDQo+ID4gwqDCoMKgIHdoaWNoIGJ5cGFzc2VzIHRoZSBoYWlycGluIHRoYXQg cmVzdG9yZXMgdGhlIGlubmVyIFZMQU4gdGFnLg0KPiA+IMKgwqDCoCBCcm9hZGNhc3Qgc3Vydml2 ZXMgLS0gYW4gQVJQIHJlcXVlc3QgaXMgZmxvb2RlZCB0aHJvdWdoIHRoZQ0KPiA+IGhhaXJwaW4N Cj4gPiDCoMKgwqAgYW5kIGFycml2ZXMgY29ycmVjdGx5IHRhZ2dlZCAtLSBidXQgdGhlIHVuaWNh c3QgdGhhdCBmb2xsb3dzIGlzDQo+ID4gwqDCoMKgIGRyb3BwZWQgYW5kIG5ldmVyIHJlYWNoZXMg dGhlIGd1ZXN0LiAxMDAlIGxvc3MgdG8gZXZlcnkgRlJSLQ0KPiA+IGhvc3RlZA0KPiA+IMKgwqDC oCBndWVzdCwgaW4gYm90aCBkaXJlY3Rpb25zLg0KPiA+IA0KPiA+IMKgIC0gTWlrcm9UaWsgUm91 dGVyT1MgNy4yNC4xOiBmaWxlcyB0aGUgdGFnLTAgcm91dGUgdW5kZXIgdGhlIFZYTEFODQo+ID4g wqDCoMKgIHBvcnQncyBicmlkZ2UtcHZpZCBpbnN0ZWFkIG9mIHRoZSBWTEFOIGNhcnJ5aW5nIHRo ZSB0cmFmZmljLCBhcw0KPiA+IGFuDQo+ID4gwqDCoMKgIEVYVEVSTkFMIGJyaWRnZSBob3N0IGVu dHJ5LCBhbmQgdGhlbiBibGFja2hvbGVzIHRoYXQgTUFDDQo+ID4gb3V0cmlnaHQgLS0NCj4gPiDC oMKgwqAgaW5jbHVkaW5nIGZvciB0cmFmZmljIGluIHRoZSBWTEFOIGl0IHJlYWxseSBiZWxvbmdz IHRvLg0KPiA+IFdpdGhkcmF3aW5nDQo+ID4gwqDCoMKgIHRoZSByb3V0ZSBkb2VzIG5vdCBjbGVh ciB0aGUgZW50cnksIHRoZSBWWExBTiBpbnRlcmZhY2UgaGFzIHRvDQo+ID4gYmUNCj4gPiDCoMKg wqAgYm91bmNlZC4NCj4gPiANCj4gPiDCoCAtIEJJUkQgMy4zLjI6IHVuYWZmZWN0ZWQuIEl0cyBF VlBOIHByb3RvY29sIGhhcyBhbiBleHBsaWNpdCB0YWcNCj4gPiB0byBWSUQNCj4gPiDCoMKgwqAg bWFwcGluZyAodm5pIDEgLyB2aWQgNSAvIHRhZyAwKSwgc28gdGhlIHJvdXRlIGxhbmRzIGluIHRo ZQ0KPiA+IGNvcnJlY3QNCj4gPiDCoMKgwqAgVkxBTiBhbmQgZm9yd2FyZHMgbm9ybWFsbHkuDQo+ ID4gDQo+ID4gU28ga2VlcCBNQUMgbGVhcm5pbmcgZW5hYmxlZCBhbmQgQVJQL05EIHN1cHByZXNz aW9uIGRpc2FibGVkIG9uIHRoZQ0KPiA+IFZYTEFODQo+ID4gaW50ZXJmYWNlIG9mIHN1Y2ggYSB2 bmV0LCBhbmQgYWRkaXRpb25hbGx5IGRlbnkgdGhlIHR5cGUtMiByb3V0ZXMNCj4gPiBmb3IgaXRz DQo+ID4gVk5JIGluIHRoZSBvdXRnb2luZyBWVEVQIHJvdXRlLW1hcCwgc28gbm8gcGVlciBpcyBm ZWQgTUFDIHJvdXRlcw0KPiA+IHRoYXQNCj4gPiBjYXJyeSBubyB1c2FibGUgVkxBTi4gQlVNIHRy YWZmaWMgaXMgdW5hZmZlY3RlZCwgaXQgaXMgc3RpbGwgaGVhZC0NCj4gPiBlbmQNCj4gPiByZXBs aWNhdGVkIHZpYSB0aGUgdHlwZS0zIHJvdXRlcyBpbnN0YWxsZWQgYnkgdGhlIGNvbnRyb2xsZXIs IGFuZA0KPiA+IHRoZQ0KPiA+IHRhZ2dlZCBWTEFOcyBhcmUgY292ZXJlZCBieSBkYXRhIHBsYW5l IGxlYXJuaW5nIG9uIGJvdGggc2lkZXMuDQo+ID4gU3VibmV0cyBzdGF5IG11dHVhbGx5IGV4Y2x1 c2l2ZSB3aXRoIHZsYW5hd2FyZSwgd2hpY2ggaXMgYWxyZWFkeQ0KPiA+IGVuZm9yY2VkIGJ5IHRo ZSB2bmV0IGFuZCBzdWJuZXQgcGx1Z2lucywgc28gdGhpcyBkb2VzIG5vdCBhZmZlY3QNCj4gPiB0 aGUNCj4gPiBMMy9nYXRld2F5IHNldHVwIG9mIGFuIEVWUE4gem9uZS4NCj4gPiANCj4gPiBTaWdu ZWQtb2ZmLWJ5OiBUaG9tYXMgR2xhbnptYW5uIDx0aG9tYXNAZ2xhbnptYW5uLmRlPg0KPiA+IC0t LQ0KPiA+IMKgLi4uL1BWRS9OZXR3b3JrL1NETi9Db250cm9sbGVycy9FdnBuUGx1Z2luLnBtIHwg MzMNCj4gPiArKysrKysrKysrKysrKysrKysrKysrDQo+ID4gwqBzcmMvUFZFL05ldHdvcmsvU0RO L1pvbmVzL0V2cG5QbHVnaW4ucG3CoMKgwqDCoMKgwqAgfCAyMSArKysrKysrKysrLS0tLQ0KPiA+ IMKgMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiA+ IA0KPiA+IGRpZmYgLS1naXQgYS9zcmMvUFZFL05ldHdvcmsvU0ROL0NvbnRyb2xsZXJzL0V2cG5Q bHVnaW4ucG0NCj4gPiBiL3NyYy9QVkUvTmV0d29yay9TRE4vQ29udHJvbGxlcnMvRXZwblBsdWdp bi5wbQ0KPiA+IC0tLSBhL3NyYy9QVkUvTmV0d29yay9TRE4vQ29udHJvbGxlcnMvRXZwblBsdWdp bi5wbQ0KPiA+ICsrKyBiL3NyYy9QVkUvTmV0d29yay9TRE4vQ29udHJvbGxlcnMvRXZwblBsdWdp bi5wbQ0KPiA+IEBAIC01ODYsNiArNTg2LDM5IEBADQo+ID4gwqBzdWIgZ2VuZXJhdGVfdm5ldF9m cnJfY29uZmlnIHsNCj4gPiDCoMKgwqDCoCBteSAoJGNsYXNzLCAkcGx1Z2luX2NvbmZpZywgJGNv bnRyb2xsZXIsICR6b25lLCAkem9uZWlkLA0KPiA+ICR2bmV0aWQsICRjb25maWcpID0gQF87DQo+ ID4gwqANCj4gPiArwqDCoMKgICMgQSB2bGFuLWF3YXJlIHZuZXQgY2FycmllcyB0aGUgZ3Vlc3Qg VkxBTiB0YWdzIGluc2lkZSBhDQo+ID4gc2luZ2xlIFZOSSwgYnV0IEZSUg0KPiA+ICvCoMKgwqAg IyBvcmlnaW5hdGVzIHR5cGUtMiAoTUFDL0lQKSByb3V0ZXMgd2l0aCBhbiBFdGhlcm5ldCBUYWcg SUQgb2YNCj4gPiAwLCBzbyB0aGUgVkxBTg0KPiA+ICvCoMKgwqAgIyB0aGUgTUFDIHdhcyBsZWFy bmVkIG9uIGlzIG5vdCBjYXJyaWVkIGluIHRoZSByb3V0ZS4gQQ0KPiA+IHJlY2VpdmVyIGluc3Rh bGxzIHN1Y2gNCj4gPiArwqDCoMKgICMgYSByb3V0ZSBpbnRvIHRoZSBWTkkncyBhY2Nlc3MgVkxB Tiwgd2hpY2ggaXMgdGhlIHdyb25nIFZMQU4NCj4gPiBmb3IgZXZlcnkgdGFnZ2VkDQo+ID4gK8Kg wqDCoCAjIE1BQy4gQmV0d2VlbiBGUlIgcGVlcnMgdGhlIGVudHJ5IGlzIGluZXJ0ICh0aGUgdGFn Z2VkIFZMQU5zDQo+ID4gYXJlIGZvcndhcmRlZCB2aWENCj4gPiArwqDCoMKgICMgZGF0YSBwbGFu ZSBsZWFybmluZyksIGJ1dCB0aGlyZC1wYXJ0eSBWVEVQcyBicmVhayBvbiBpdCBpbg0KPiA+IGRp ZmZlcmVudCB3YXlzOg0KPiA+ICvCoMKgwqAgIyBDaXNjbyBOWC1PUyBpbXBvcnRzIGl0IGFzIGEg Y29udHJvbC1wbGFuZSBNQUMgaW4gdGhlIFZOSSdzDQo+ID4gYnJpZGdlIGRvbWFpbiwNCj4gPiAr wqDCoMKgICMgd2hpY2ggYnlwYXNzZXMgdGhlIFFpblEgaGFpcnBpbiB0aGF0IHJlc3RvcmVzIHRo ZSBpbm5lciB0YWcNCj4gPiAtLSBmbG9vZGVkDQo+ID4gK8KgwqDCoCAjIHRyYWZmaWMgc3RpbGwg d29ya3MsIHRoZSB1bmljYXN0IHRoYXQgZm9sbG93cyBpdCBpcyBkcm9wcGVkLg0KPiA+IFJvdXRl ck9TIGZpbGVzDQo+ID4gK8KgwqDCoCAjIGl0IHVuZGVyIHRoZSBWWExBTiBwb3J0J3MgYnJpZGdl LXB2aWQgYW5kIGJsYWNraG9sZXMgdGhhdA0KPiA+IE1BQyBvdXRyaWdodC4NCj4gPiArwqDCoMKg ICMgQklSRCBpcyB1bmFmZmVjdGVkLCBpdCBtYXBzIHRoZSBFdGhlcm5ldCBUYWcgdG8gYSBWTEFO DQo+ID4gZXhwbGljaXRseS4NCj4gPiArwqDCoMKgICMgU3VwcHJlc3MgdGhlIHR5cGUtMiByb3V0 ZXMgZm9yIHRoZXNlIHZuZXRzLCBCVU0gdHJhZmZpYyBpcw0KPiA+IHVuYWZmZWN0ZWQgYXMgaXQN Cj4gPiArwqDCoMKgICMgaXMgc3RpbGwgaGVhZC1lbmQgcmVwbGljYXRlZCB2aWEgdGhlIHR5cGUt MyByb3V0ZXMuDQo+ID4gK8KgwqDCoCBpZiAoJHBsdWdpbl9jb25maWctPnt2bGFuYXdhcmV9KSB7 DQo+ID4gK8KgwqDCoMKgwqDCoMKgIG15ICRyb3V0ZV9tYXBfb3V0ID0gJ01BUF9WVEVQX09VVCc7 DQo+ID4gK8KgwqDCoMKgwqDCoMKgICRyb3V0ZV9tYXBfb3V0IC49ICJfJGNvbnRyb2xsZXItPnsn cGVlci1ncm91cC1uYW1lJ30iDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgJGNvbnRy b2xsZXItPnsncGVlci1ncm91cC1uYW1lJ307DQo+ID4gKw0KPiA+ICvCoMKgwqDCoMKgwqDCoCAj IHNlcSBpcyByZW51bWJlcmVkIGJ5IGFycmF5IG9yZGVyIGluDQo+ID4gUFZFOjpOZXR3b3JrOjpT RE46OkZyciwgc28gdW5zaGlmdA0KPiA+ICvCoMKgwqDCoMKgwqDCoCAjIHRvIGJlIGV2YWx1YXRl ZCBiZWZvcmUgdGhlIHBlcm1pdCBlbnRyeSB0aGF0IHRlcm1pbmF0ZXMNCj4gPiB0aGUgcm91dGUt bWFwDQo+ID4gK8KgwqDCoMKgwqDCoMKgIHVuc2hpZnQoDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgQHsgJGNvbmZpZy0+e2Zycn0tPntyb3V0ZW1hcHN9LT57JHJvdXRlX21hcF9vdXR9IH0s DQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgew0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc2VxID0+IDEsDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBhY3Rpb24gPT4gJ2RlbnknLA0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg bWF0Y2hlcyA9PiBbDQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHsga2V5ID0+ICdldnBuIHJvdXRlLXR5cGUnLCB2YWx1ZSA9PiAnbWFjaXAnDQo+ID4gfSwNCj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgeyBrZXkgPT4gJ2V2cG4g dm5pJywgdmFsdWUgPT4gJHBsdWdpbl9jb25maWctDQo+ID4gPnt0YWd9IH0sDQo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBdLA0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IH0sDQo+ID4gK8KgwqDCoMKgwqDCoMKgICk7DQo+ID4gK8KgwqDCoCB9DQo+ID4gKw0KPiA+IMKg wqDCoMKgIG15ICRleGl0bm9kZXMgPSAkem9uZS0+eydleGl0bm9kZXMnfTsNCj4gPiDCoMKgwqDC oCBteSAkZXhpdG5vZGVzX2xvY2FsX3JvdXRpbmcgPSAkem9uZS0+eydleGl0bm9kZXMtbG9jYWwt DQo+ID4gcm91dGluZyd9Ow0KPiA+IMKgDQo+ID4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvTmV0d29y ay9TRE4vWm9uZXMvRXZwblBsdWdpbi5wbQ0KPiA+IGIvc3JjL1BWRS9OZXR3b3JrL1NETi9ab25l cy9FdnBuUGx1Z2luLnBtDQo+ID4gaW5kZXggMGU3OTcwNy4uZTU5NzEyMCAxMDA2NDQNCj4gPiAt LS0gYS9zcmMvUFZFL05ldHdvcmsvU0ROL1pvbmVzL0V2cG5QbHVnaW4ucG0NCj4gPiArKysgYi9z cmMvUFZFL05ldHdvcmsvU0ROL1pvbmVzL0V2cG5QbHVnaW4ucG0NCj4gPiBAQCAtMjE4LDE1ICsy MTgsMjQgQEAgc3ViIGdlbmVyYXRlX3Nkbl9jb25maWcgew0KPiA+IMKgwqDCoMKgIH0NCj4gPiDC oMKgwqDCoCAkbXR1ID0gJHBsdWdpbl9jb25maWctPnttdHV9IGlmICRwbHVnaW5fY29uZmlnLT57 bXR1fTsNCj4gPiDCoA0KPiA+ICvCoMKgwqAgIyBhIHZsYW4tYXdhcmUgdm5ldCB0cmFuc3BvcnRz IHRoZSBndWVzdCBWTEFOIHRhZ3MNCj4gPiB0cmFuc3BhcmVudGx5IG92ZXIgYSBzaW5nbGUNCj4g PiArwqDCoMKgICMgVk5JLiBUaGUgRVZQTiBjb250cm9sIHBsYW5lIG9ubHkga25vd3MgYWJvdXQg dGhlIFZOSSdzDQo+ID4gYWNjZXNzIFZMQU4sIHNvIGl0IGNhbg0KPiA+ICvCoMKgwqAgIyBuZWl0 aGVyIGFkdmVydGlzZSBub3IgaW5zdGFsbCBNQUMgZW50cmllcyBmb3IgdGhlIG90aGVyDQo+ID4g VkxBTnMuIEZhbGwgYmFjayB0bw0KPiA+ICvCoMKgwqAgIyBkYXRhIHBsYW5lIGxlYXJuaW5nIChh bmQgbm8gQVJQL05EIHN1cHByZXNzaW9uKSBmb3IgdGhvc2UNCj4gPiB2bmV0cywgQlVNIHRyYWZm aWMNCj4gPiArwqDCoMKgICMgaXMgc3RpbGwgcmVwbGljYXRlZCB2aWEgdGhlIHR5cGUtMyByb3V0 ZXMgaW5zdGFsbGVkIGJ5IHRoZQ0KPiA+IGNvbnRyb2xsZXIuDQo+ID4gK8KgwqDCoCBteSAkdmxh bmF3YXJlID0gJHZuZXQtPnt2bGFuYXdhcmV9Ow0KPiA+ICsNCj4gPiDCoMKgwqDCoCAjdnhsYW4g aW50ZXJmYWNlDQo+ID4gwqDCoMKgwqAgbXkgJHZ4bGFuX2lmYWNlID0gInZ4bGFuXyR2bmV0aWQi Ow0KPiA+IMKgwqDCoMKgIG15IEBpZmFjZV9jb25maWcgPSAoKTsNCj4gPiDCoMKgwqDCoCBwdXNo IEBpZmFjZV9jb25maWcsICJ2eGxhbi1pZCAkdGFnIjsNCj4gPiDCoMKgwqDCoCBwdXNoIEBpZmFj ZV9jb25maWcsICJ2eGxhbi1sb2NhbC10dW5uZWxpcCAkaWZhY2VpcCIgaWYNCj4gPiAkaWZhY2Vp cDsNCj4gPiDCoMKgwqDCoCBwdXNoIEBpZmFjZV9jb25maWcsICJ2eGxhbi1wb3J0ICR2eGxhbnBv cnQiIGlmICR2eGxhbnBvcnQ7DQo+ID4gLcKgwqDCoCBwdXNoIEBpZmFjZV9jb25maWcsICJicmlk Z2UtbGVhcm5pbmcgb2ZmIjsNCj4gPiAtwqDCoMKgIHB1c2ggQGlmYWNlX2NvbmZpZywgImJyaWRn ZS1hcnAtbmQtc3VwcHJlc3Mgb24iDQo+ID4gLcKgwqDCoMKgwqDCoMKgIGlmICEkcGx1Z2luX2Nv bmZpZy0+eydkaXNhYmxlLWFycC1uZC1zdXBwcmVzc2lvbid9Ow0KPiA+ICvCoMKgwqAgaWYgKCEk dmxhbmF3YXJlKSB7DQo+ID4gK8KgwqDCoMKgwqDCoMKgIHB1c2ggQGlmYWNlX2NvbmZpZywgImJy aWRnZS1sZWFybmluZyBvZmYiOw0KPiA+ICvCoMKgwqDCoMKgwqDCoCBwdXNoIEBpZmFjZV9jb25m aWcsICJicmlkZ2UtYXJwLW5kLXN1cHByZXNzIG9uIg0KPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGlmICEkcGx1Z2luX2NvbmZpZy0+eydkaXNhYmxlLWFycC1uZC1zdXBwcmVzc2lvbid9Ow0K PiA+ICvCoMKgwqAgfQ0KPiA+IMKgDQo+ID4gwqDCoMKgwqAgcHVzaCBAaWZhY2VfY29uZmlnLCAi bXR1ICRtdHUiIGlmICRtdHU7DQo+ID4gwqDCoMKgwqAgcHVzaChAeyAkY29uZmlnLT57JHZ4bGFu X2lmYWNlfSB9LCBAaWZhY2VfY29uZmlnKSBpZiAhJGNvbmZpZy0NCj4gPiA+eyR2eGxhbl9pZmFj ZX07DQo+ID4gQEAgLTI5OSw2ICszMDgsMTAgQEAgc3ViIGdlbmVyYXRlX3Nkbl9jb25maWcgew0K PiA+IMKgwqDCoMKgIHB1c2ggQGlmYWNlX2NvbmZpZywgImJyaWRnZV9wb3J0cyAkdnhsYW5faWZh Y2UiOw0KPiA+IMKgwqDCoMKgIHB1c2ggQGlmYWNlX2NvbmZpZywgImJyaWRnZV9zdHAgb2ZmIjsN Cj4gPiDCoMKgwqDCoCBwdXNoIEBpZmFjZV9jb25maWcsICJicmlkZ2VfZmQgMCI7DQo+ID4gK8Kg wqDCoCBpZiAoJHZsYW5hd2FyZSkgew0KPiA+ICvCoMKgwqDCoMKgwqDCoCBwdXNoIEBpZmFjZV9j b25maWcsICJicmlkZ2Utdmxhbi1hd2FyZSB5ZXMiOw0KPiA+ICvCoMKgwqDCoMKgwqDCoCBwdXNo IEBpZmFjZV9jb25maWcsICJicmlkZ2UtdmlkcyAyLTQwOTQiOw0KPiA+ICvCoMKgwqAgfQ0KPiA+ IMKgwqDCoMKgIHB1c2ggQGlmYWNlX2NvbmZpZywgIm10dSAkbXR1IiBpZiAkbXR1Ow0KPiA+IMKg wqDCoMKgIHB1c2ggQGlmYWNlX2NvbmZpZywgImFsaWFzICRhbGlhcyIgaWYgJGFsaWFzOw0KPiA+ IMKgwqDCoMKgIHB1c2ggQGlmYWNlX2NvbmZpZywgImlwLWZvcndhcmQgb24iIGlmICRlbmFibGVf Zm9yd2FyZF92NDsNCj4gPiBAQCAtNDIzLDggKzQzNiw2IEBAIHN1YiB2bmV0X3VwZGF0ZV9ob29r IHsNCj4gPiDCoA0KPiA+IMKgwqDCoMKgIHJhaXNlX3BhcmFtX2V4Yyh7IHRhZyA9PiAibWlzc2lu ZyB2eGxhbiB0YWciIH0pIGlmDQo+ID4gIWRlZmluZWQoJHRhZyk7DQo+ID4gwqDCoMKgwqAgcmFp c2VfcGFyYW1fZXhjKHsgdGFnID0+ICJ2eGxhbiB0YWcgbWF4IHZhbHVlIGlzIDE2Nzc3MjE2IiB9 KQ0KPiA+IGlmICR0YWcgPiAxNjc3NzIxNjsNCj4gPiAtwqDCoMKgIHJhaXNlX3BhcmFtX2V4Yyh7 ICd2bGFuLWF3YXJlJyA9PiAidmxhbi1hd2FyZSBvcHRpb24gY2FuJ3QgYmUNCj4gPiBlbmFibGVk IHdpdGggZXZwbiIgfSkNCj4gPiAtwqDCoMKgwqDCoMKgwqAgaWYgJHZuZXQtPnt2bGFuYXdhcmV9 Ow0KPiA+IMKgDQo+ID4gwqDCoMKgwqAgIyB2ZXJpZnkgdGhhdCB0YWcgaXMgbm90IGFscmVhZHkg ZGVmaW5lZCBnbG9iYWxseSAodnhsYW4taWQNCj4gPiBhcmUgdW5pcXVlKQ0KPiA+IMKgwqDCoMKg IGZvcmVhY2ggbXkgJGlkIChrZXlzICV7ICR2bmV0X2NmZy0+e2lkc30gfSkgew0KPiANCj4gDQo+ IA0K