From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 8882E1FF185 for ; Mon, 7 Jul 2025 13:27:44 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 828CA30981; Mon, 7 Jul 2025 13:28:26 +0200 (CEST) Date: Mon, 7 Jul 2025 13:28:21 +0200 From: Wolfgang Bumiller To: Gabriel Goller Message-ID: <76pe6yphg55iye5oba56yztjykh2bllp26qc5gbomt7gym3isd@mdmwrfjkahue> References: <20250702145101.894299-1-g.goller@proxmox.com> <20250702145101.894299-14-g.goller@proxmox.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20250702145101.894299-14-g.goller@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.079 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pve-devel] [PATCH proxmox-ve-rs v4 07/22] frr: add ospf types 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: , Reply-To: Proxmox VE development discussion Cc: pve-devel@lists.proxmox.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" T24gV2VkLCBKdWwgMDIsIDIwMjUgYXQgMDQ6NDk6NThQTSArMDIwMCwgR2FicmllbCBHb2xsZXIg d3JvdGU6Cj4gQWRkIE9TUEYtc3BlY2lmaWMgRlJSIHR5cGVzLiBUaGlzIGFsc28gcmV1c2VzIHRo ZSB0eXBlcyBmcm9tCj4gcHJveG1veC1uZXR3b3JrLXR5cGVzLgo+IAo+IFRoZSBOZXR3b3JrVHlw ZSBGUlIgb3B0aW9uIGlzIGltcGxlbWVudGVkIGhlcmUsIGJ1dCBub3QgZXhwb3NlZCB0byB0aGUK PiBpbnRlcmZhY2UsIGFzIHdlIHdhbnQgdG8ga2VlcCBpdCBzaW1wbGUgZm9yIHRoZSB1c2Vycy4g SWYgdGhleSBkbyBub3QKPiBzZXQgYW4gSVAsIHRoZW4gdGhlIGludGVyZmFjZSBpcyBjb25zaWRl cmVkIHRvIGJlIHVubnVtYmVyZWQgYW5kIHVzZXMKPiB0aGUgUG9pbnQtdG8tUG9pbnQgbmV0d29y ayB0eXBlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEdhYnJpZWwgR29sbGVyIDxnLmdvbGxlckBwcm94 bW94LmNvbT4KPiAtLS0KPiAgcHJveG1veC1mcnIvc3JjL2xpYi5ycyAgfCAgMjUgKysrKysrCj4g IHByb3htb3gtZnJyL3NyYy9vc3BmLnJzIHwgMTc5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAyMDQgaW5zZXJ0aW9ucygrKQo+ICBj cmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1mcnIvc3JjL29zcGYucnMKPiAKPiBkaWZmIC0tZ2l0 IGEvcHJveG1veC1mcnIvc3JjL2xpYi5ycyBiL3Byb3htb3gtZnJyL3NyYy9saWIucnMKPiBpbmRl eCBiYTllZWRmYjQ1NDkuLjBkOTRhZWY1YTNjZCAxMDA2NDQKPiAtLS0gYS9wcm94bW94LWZyci9z cmMvbGliLnJzCj4gKysrIGIvcHJveG1veC1mcnIvc3JjL2xpYi5ycwo+IEBAIC0xLDQgKzEsNSBA QAo+ICBwdWIgbW9kIG9wZW5mYWJyaWM7Cj4gK3B1YiBtb2Qgb3NwZjsKPiAgdXNlIHN0ZDo6e2Zt dDo6RGlzcGxheSwgc3RyOjpGcm9tU3RyfTsKPiAgCj4gIHVzZSBzZXJkZTo6e0Rlc2VyaWFsaXpl LCBTZXJpYWxpemV9Owo+IEBAIC0zMSw2ICszMiwzMCBAQCBpbXBsIERpc3BsYXkgZm9yIEludGVy ZmFjZU5hbWUgewo+ICAgICAgfQo+ICB9Cj4gIAo+ICsvLy8gR2VuZXJpYyBGUlIgSW50ZXJmYWNl Lgo+ICsvLy8KPiArLy8vIEluIEZSUiBjb25maWcgaXQgbG9va3MgbGlrZSB0aGlzOgo+ICsvLy8g YGBgdGV4dAo+ICsvLy8gaW50ZXJmYWNlIDxuYW1lPgo+ICsvLy8gISAuLi4KPiArI1tkZXJpdmUo Q2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBEZXNlcmlhbGl6ZSwgU2VyaWFsaXplLCBQYXJ0 aWFsT3JkLCBPcmQpXQo+ICtwdWIgZW51bSBJbnRlcmZhY2Ugewo+ICsgICAgT3BlbmZhYnJpYyhv cGVuZmFicmljOjpPcGVuZmFicmljSW50ZXJmYWNlKSwKPiArICAgIE9zcGYob3NwZjo6T3NwZklu dGVyZmFjZSksCj4gK30KPiArCj4gK2ltcGwgRnJvbTxvcGVuZmFicmljOjpPcGVuZmFicmljSW50 ZXJmYWNlPiBmb3IgSW50ZXJmYWNlIHsKPiArICAgIGZuIGZyb20odmFsdWU6IG9wZW5mYWJyaWM6 Ok9wZW5mYWJyaWNJbnRlcmZhY2UpIC0+IFNlbGYgewo+ICsgICAgICAgIFNlbGY6Ok9wZW5mYWJy aWModmFsdWUpCj4gKyAgICB9Cj4gK30KPiArCj4gK2ltcGwgRnJvbTxvc3BmOjpPc3BmSW50ZXJm YWNlPiBmb3IgSW50ZXJmYWNlIHsKPiArICAgIGZuIGZyb20odmFsdWU6IG9zcGY6Ok9zcGZJbnRl cmZhY2UpIC0+IFNlbGYgewo+ICsgICAgICAgIFNlbGY6Ok9zcGYodmFsdWUpCj4gKyAgICB9Cj4g K30KPiArCj4gICNbZGVyaXZlKEVycm9yLCBEZWJ1ZyldCj4gIHB1YiBlbnVtIEZycldvcmRFcnJv ciB7Cj4gICAgICAjW2Vycm9yKCJ3b3JkIGlzIGVtcHR5IildCj4gZGlmZiAtLWdpdCBhL3Byb3ht b3gtZnJyL3NyYy9vc3BmLnJzIGIvcHJveG1veC1mcnIvc3JjL29zcGYucnMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZjdlNjNmYmU0ZTU1Cj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL3Byb3htb3gtZnJyL3NyYy9vc3BmLnJzCj4gQEAgLTAsMCArMSwxNzkgQEAK PiArdXNlIHN0ZDo6Zm10OjpEZWJ1ZzsKPiArdXNlIHN0ZDo6Zm10OjpEaXNwbGF5Owo+ICt1c2Ug c3RkOjpuZXQ6OklwdjRBZGRyOwo+ICsKPiArdXNlIHNlcmRlOjp7RGVzZXJpYWxpemUsIFNlcmlh bGl6ZX07Cj4gKwo+ICt1c2UgdGhpc2Vycm9yOjpFcnJvcjsKPiArCj4gK3VzZSBjcmF0ZTo6e0Zy cldvcmQsIEZycldvcmRFcnJvcn07Cj4gKwo+ICsvLy8gVGhlIG5hbWUgb2YgdGhlIG9zcGYgZnJy IHJvdXRlci4KPiArLy8vCj4gKy8vLyBXZSBjYW4gb25seSBoYXZlIGEgc2luZ2xlIG9zcGYgcm91 dGVyIChpZ25vcmluZyBtdWx0aXBsZSBpbnZvY2F0aW9ucyBvZiB0aGUgb3NwZmQgZGFlbW9uKQo+ ICsvLy8gYmVjYXVzZSB0aGUgcm91dGVyLWlkIG5lZWRzIHRvIGJlIHRoZSBzYW1lIGJldHdlZW4g ZGlmZmVyZW50IHJvdXRlcnMgb24gYSBzaW5nbGUgbm9kZS4KPiArLy8vIFdlIGNhbiBzdGlsbCBo YXZlIG11bHRpcGxlIGZhYnJpY3MgYnkgc2VwYXJhdGluZyB0aGVtIHVzaW5nIGFyZWFzLiBTdGls bCwgZGlmZmVyZW50IGFyZWFzIGhhdmUKPiArLy8vIHRoZSBzYW1lIGZyciByb3V0ZXIsIHNvIHRo ZSBuYW1lIG9mIHRoZSByb3V0ZXIgaXMganVzdCAib3NwZiIgaW4gInJvdXRlciBvc3BmIi4KPiAr Ly8vCj4gKy8vLyBUaGlzIHNlcmlhbGl6ZXMgcm91Z2hseSB0bzoKPiArLy8vIGBgYHRleHQKPiAr Ly8vIHJvdXRlciBvc3BmCj4gKy8vLyAhLi4uCj4gKy8vLyBgYGAKPiArI1tkZXJpdmUoQ2xvbmUs IERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBIYXNoLCBEZXNlcmlhbGl6ZSwgU2VyaWFsaXplLCBQYXJ0 aWFsT3JkLCBPcmQpXQo+ICtwdWIgc3RydWN0IE9zcGZSb3V0ZXJOYW1lOwo+ICsKPiAraW1wbCBE aXNwbGF5IGZvciBPc3BmUm91dGVyTmFtZSB7Cj4gKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQg c3RkOjpmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IHN0ZDo6Zm10OjpSZXN1bHQgewo+ICsgICAgICAg IHdyaXRlIShmLCAib3NwZiIpCj4gKyAgICB9Cj4gK30KPiArCj4gKyNbZGVyaXZlKEVycm9yLCBE ZWJ1ZyldCj4gK3B1YiBlbnVtIEFyZWFQYXJzaW5nRXJyb3Igewo+ICsgICAgI1tlcnJvcigiSW52 YWxpZCBhcmVhIGlkZW5pdGlmaWVyLiBBcmVhIG11c3QgYmUgYSBudW1iZXIgb3IgYW4gaXB2NCBh ZGRyZXNzLiIpXQo+ICsgICAgSW52YWxpZEFyZWEsCj4gKyAgICAjW2Vycm9yKCJJbnZhbGlkIGFy ZWEgaWRlbml0aWZpZXIuIE1pc3NpbmcgJ2FyZWEnIHByZWZpeC4iKV0KPiArICAgIE1pc3NpbmdQ cmVmaXgsCj4gKyAgICAjW2Vycm9yKCJFcnJvciBwYXJzaW5nIHRvIEZycldvcmQiKV0KPiArICAg IEZycldvcmRFcnJvcigjW2Zyb21dIEZycldvcmRFcnJvciksCj4gK30KPiArCj4gKy8vLyBUaGUg T1NQRiBBcmVhLgo+ICsvLy8KPiArLy8vIFRoZSBPU1BGIGFyZWEgaXMgYSBwc2V1ZC1pcGFkZHJl c3MgKHNvIGl0IGxvb2tzIGxpa2UgYW4gaXAtYWRkcmVzcyBidXQgaXNuJ3Qgc2V0IG9uIGFueQo+ ICsvLy8gaW50ZXJmYWNlIG9yIGV2ZW4gcGluZ2FibGUpLCBidXQgY2FuIGFsc28gYmUgc3BlY2lm aWVkIGJ5IGEgc2ltcGxlIG51bWJlci4gU28geW91IGNhbiB1c2UgIjUiCj4gKy8vLyBvciAiMCIg YXMgYW4gYXJlYSwgd2hpY2ggdGhlbiBnZXRzIHRyYW5zbGF0ZWQgdG8gIjAuMC4wLjUiIGFuZCAi MC4wLjAuMCIgYnkgRlJSLiBXZSBhbGxvdyBib3RoCj4gKy8vLyBhIG51bWJlciBvciBhbiBpcC1h ZGRyZXNzLiBOb3RlIHRoYXQgdGhlIGFyZWEgIjAiIChvciAiMC4wLjAuMCIpIGlzIGEgc3BlY2lh bCBhcmVhIC0gaXQgY3JlYXRlcwo+ICsvLy8gYSBPU1BGICJiYWNrYm9uZSIgYXJlYS4KPiArI1tk ZXJpdmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBIYXNoLCBEZXNlcmlhbGl6ZSwgU2Vy aWFsaXplLCBQYXJ0aWFsT3JkLCBPcmQpXQo+ICtwdWIgc3RydWN0IEFyZWEoRnJyV29yZCk7Cj4g Kwo+ICtpbXBsIFRyeUZyb208RnJyV29yZD4gZm9yIEFyZWEgewo+ICsgICAgdHlwZSBFcnJvciA9 IEFyZWFQYXJzaW5nRXJyb3I7Cj4gKwo+ICsgICAgZm4gdHJ5X2Zyb20odmFsdWU6IEZycldvcmQp IC0+IFJlc3VsdDxTZWxmLCBTZWxmOjpFcnJvcj4gewo+ICsgICAgICAgIEFyZWE6Om5ldyh2YWx1 ZSkKPiArICAgIH0KPiArfQo+ICsKPiAraW1wbCBBcmVhIHsKPiArICAgIHB1YiBmbiBuZXcobmFt ZTogRnJyV29yZCkgLT4gUmVzdWx0PFNlbGYsIEFyZWFQYXJzaW5nRXJyb3I+IHsKPiArICAgICAg ICBpZiBuYW1lLmFzX3JlZigpLnBhcnNlOjo8dTMyPigpLmlzX29rKCkgfHwgbmFtZS5hc19yZWYo KS5wYXJzZTo6PElwdjRBZGRyPigpLmlzX29rKCkgewo+ICsgICAgICAgICAgICBPayhTZWxmKG5h bWUpKQo+ICsgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgIEVycihBcmVhUGFyc2luZ0Vy cm9yOjpJbnZhbGlkQXJlYSkKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gK30KPiArCj4gK2ltcGwg RGlzcGxheSBmb3IgQXJlYSB7Cj4gKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgc3RkOjpmbXQ6 OkZvcm1hdHRlcjwnXz4pIC0+IHN0ZDo6Zm10OjpSZXN1bHQgewo+ICsgICAgICAgIHdyaXRlIShm LCAiYXJlYSB7fSIsIHNlbGYuMCkKPiArICAgIH0KPiArfQo+ICsKPiArLy8vIFRoZSBPU1BGIHJv dXRlciBwcm9wZXJ0aWVzLgo+ICsvLy8KPiArLy8vIEN1cnJlbnRseSB0aGUgb25seSBwcm9wZXJ0 eSBvZiBhIE9TUEYgcm91dGVyIGlzIHRoZSByb3V0ZXJfaWQuIFRoZSByb3V0ZXJfaWQgaXMgdXNl ZCB0bwo+ICsvLy8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIG5vZGVzIGFuZCBldmVyeSBub2RlIGlu IHRoZSBzYW1lIGFyZWEgbXVzdCBoYXZlIGEgZGlmZmVyZW50IHJvdXRlcl9pZC4KPiArLy8vIFRo ZSByb3V0ZXJfaWQgbXVzdCBhbHNvIGJlIHRoZSBzYW1lIG9uIHRoZSBkaWZmZXJlbnQgZmFicmlj cyBvbiB0aGUgc2FtZSBub2RlLiBUaGUgT1NQRnYyCj4gKy8vLyBkYWVtb24gb25seSBzdXBwb3J0 cyBJUHY0Lgo+ICsvLy8gTm90ZSB0aGF0IHRoZXNlIHByb3BlcnRpZXMgYWxzbyBzZXJpYWxpemUg d2l0aCBhIHNwYWNlIHByZWZpeCAoIiAiKSBhcyB0aGV5IGFyZSBpbnNpZGUgdGhlIE9TUEYKPiAr Ly8vIHJvdXRlciBibG9jay4gSXQgc2VyaWFsaXplcyByb3VnaGx5IHRvOgo+ICsvLy8KPiArLy8v IGBgYHRleHQKPiArLy8vIHJvdXRlciBvc3BmCj4gKy8vLyAgcm91dGVyLWlkIDxpcHY0LWFkZHJl c3M+Cj4gKy8vLyBgYGAKPiArI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBI YXNoLCBEZXNlcmlhbGl6ZSwgU2VyaWFsaXplLCBQYXJ0aWFsT3JkLCBPcmQpXQo+ICtwdWIgc3Ry dWN0IE9zcGZSb3V0ZXIgewo+ICsgICAgcHViIHJvdXRlcl9pZDogSXB2NEFkZHIsCj4gK30KPiAr Cj4gK2ltcGwgT3NwZlJvdXRlciB7Cj4gKyAgICBwdWIgZm4gbmV3KHJvdXRlcl9pZDogSXB2NEFk ZHIpIC0+IFNlbGYgewo+ICsgICAgICAgIFNlbGYgeyByb3V0ZXJfaWQgfQo+ICsgICAgfQo+ICsK PiArICAgIHB1YiBmbiByb3V0ZXJfaWQoJnNlbGYpIC0+ICZJcHY0QWRkciB7Cj4gKyAgICAgICAg JnNlbGYucm91dGVyX2lkCj4gKyAgICB9Cj4gK30KPiArCj4gKyNbZGVyaXZlKEVycm9yLCBEZWJ1 ZyldCj4gK3B1YiBlbnVtIE9zcGZJbnRlcmZhY2VFcnJvciB7Cj4gKyAgICAjW2Vycm9yKCJFcnJv ciBwYXJzaW5nIGFyZWEiKV0KPiArICAgIEFyZWFQYXJzaW5nRXJyb3IoI1tmcm9tXSBBcmVhUGFy c2luZ0Vycm9yKSwKPiArICAgICNbZXJyb3IoIkVycm9yIHBhcnNpbmcgZnJyIHdvcmQiKV0KPiAr ICAgIEZycldvcmRQYXJzZSgjW2Zyb21dIEZycldvcmRFcnJvciksCj4gK30KPiArCj4gKy8vLyBU aGUgTmV0d29ya1R5cGUgb2YgdGhlIGludGVyZmFjZS4KPiArLy8vCj4gKy8vLyBUaGUgbW9zdCBp bXBvcnRhbnQgb3B0aW9ucyBoZXJlIGFyZSBCcm9hZGNhc3QgKHdoaWNoIGlzIHRoZSBkZWZhdWx0 KSBhbmQgUG9pbnRUb1BvaW50Lgo+ICsvLy8gV2hlbiBQb2ludFRvUG9pbnQgaXMgc2V0LCB0aGVu IHRoZSBpbnRlcmZhY2UgaGFzIHRvIGhhdmUgYSAvMzIgYWRkcmVzcyBhbmQgd2lsbCBiZSB0cmVh dGVkIGFzCj4gKy8vLyB1bm51bWJlcmVkLgo+ICsvLy8KPiArLy8vIFRoaXMgcm91Z2hseSBzZXJp YWxpemVzIHRvOgo+ICsvLy8gYGBgdGV4dAo+ICsvLy8gaXAgb3NwZiBuZXR3b3JrIHBvaW50LXRv LXBvaW50Cj4gKy8vLyAhIG9yCj4gKy8vLyBpcCBvc3BmIG5ldHdvcmsgYnJvYWRjYXN0Cj4gKy8v LyBgYGAKPiArI1tkZXJpdmUoQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBIYXNoLCBEZXNl cmlhbGl6ZSwgU2VyaWFsaXplLCBQYXJ0aWFsT3JkLCBPcmQpXQo+ICtwdWIgZW51bSBOZXR3b3Jr VHlwZSB7Cj4gKyAgICBCcm9hZGNhc3QsCj4gKyAgICBOb25Ccm9hZGNhc3QsCj4gKyAgICAvLy8g SWYgdGhlIGludGVyZmFjZSBpcyB1bm51bWJlcmVkIChpLmUuIHRoZSByb3V0ZXItaWQgLzMyIGlw LWFkZHJlc3MgaXMgc2V0IG9uIHRoZSBpbnRlcmZhY2UpLgo+ICsgICAgLy8vCj4gKyAgICAvLy8g SWYgT1NQRiBpcyB1c2VkIGluIGFuIHVubnVtYmVyZWQgd2F5LCB5b3UgZG9uJ3QgbmVlZCB0byBj b25maWd1cmUgcGVlci10by1wZWVyIChlLmcuIC8zMSkKPiArICAgIC8vLyBhZGRyZXNzZXMgYXQg ZXZlcnkgaW50ZXJmYWNlLCBidXQgeW91IGp1c3QgbmVlZCB0byBzZXQgdGhlIHJvdXRlci1pZCBh dCB0aGUgaW50ZXJmYWNlCj4gKyAgICAvLy8gKC8zMikuIFlvdSBhbHNvIG5lZWQgdG8gY29uZmln dXJlIHRoZSBgaXAgb3NwZiBuZXR3b3JrIHBvaW50LXRvLXBvaW50YCBGUlIgb3B0aW9uLgo+ICsg ICAgUG9pbnRUb1BvaW50LAo+ICsgICAgUG9pbnRUb011bHRpcG9pbnQsCgpXaWxsIHRoZXJlIGJl IGxhcmdlciBlbnRyaWVzPyBDb3VsZCBjb25zaWRlciBgQ29weWAgaGVyZSBtYXliZS4KCj4gK30K PiArCj4gK2ltcGwgRGlzcGxheSBmb3IgTmV0d29ya1R5cGUgewo+ICsgICAgZm4gZm10KCZzZWxm LCBmOiAmbXV0IHN0ZDo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBzdGQ6OmZtdDo6UmVzdWx0IHsK PiArICAgICAgICBtYXRjaCBzZWxmIHsKPiArICAgICAgICAgICAgTmV0d29ya1R5cGU6OkJyb2Fk Y2FzdCA9PiB3cml0ZSEoZiwgImJyb2FkY2FzdCIpLAo+ICsgICAgICAgICAgICBOZXR3b3JrVHlw ZTo6Tm9uQnJvYWRjYXN0ID0+IHdyaXRlIShmLCAibm9uLWJyb2FkY2FzdCIpLAo+ICsgICAgICAg ICAgICBOZXR3b3JrVHlwZTo6UG9pbnRUb1BvaW50ID0+IHdyaXRlIShmLCAicG9pbnQtdG8tcG9p bnQiKSwKCihJIHNlZSBhIGB0YCB3aGVyZSBzb21lIHBlb3BsZSBkb24ndCB1c2UgYSBgdGAg8J+k qiAvaGopCgo+ICsgICAgICAgICAgICBOZXR3b3JrVHlwZTo6UG9pbnRUb011bHRpcG9pbnQgPT4g d3JpdGUhKGYsICJwb2ludC10by1tdWx0aWNhc3QiKSwKPiArICAgICAgICB9Cj4gKyAgICB9Cj4g K30KPiArCj4gKy8vLyBUaGUgT1NQRiBpbnRlcmZhY2UgcHJvcGVydGllcy4KPiArLy8vCj4gKy8v LyBUaGUgaW50ZXJmYWNlIGdldHMgdGllZCB0byBpdHMgZmFicmljIGJ5IHRoZSBhcmVhIHByb3Bl cnR5IGFuZCB0aGUgRlJSIGBpcCBvc3BmIGFyZWEgPGFyZWE+YAo+ICsvLy8gY29tbWFuZC4KPiAr Ly8vCj4gKy8vLyBUaGlzIHNlcmlhbGl6ZXMgdG86Cj4gKy8vLwo+ICsvLy8gYGBgdGV4dAo+ICsv Ly8gcm91dGVyIG9zcGYKPiArLy8vICBpcCBvc3BmIGFyZWEgPGFyZWE+Cj4gKy8vLyAgaXAgb3Nw ZiBwYXNzaXZlIDx2YWx1ZT4KPiArLy8vICBpcCBvc3BmIG5ldHdvcmsgPHZhbHVlPgo+ICsvLy8g YGBgCj4gKyNbZGVyaXZlKENsb25lLCBEZWJ1ZywgUGFydGlhbEVxLCBFcSwgSGFzaCwgRGVzZXJp YWxpemUsIFNlcmlhbGl6ZSwgUGFydGlhbE9yZCwgT3JkKV0KPiArcHViIHN0cnVjdCBPc3BmSW50 ZXJmYWNlIHsKPiArICAgIC8vIE5vdGU6IGFuIGludGVyZmFjZSBjYW4gb25seSBiZSBhIHBhcnQg b2YgYSBzaW5nbGUgYXJlYShzbyBubyB2ZWMgbmVlZGVkIGhlcmUpCj4gKyAgICBwdWIgYXJlYTog QXJlYSwKPiArICAgIHB1YiBwYXNzaXZlOiBPcHRpb248Ym9vbD4sCj4gKyAgICBwdWIgbmV0d29y a190eXBlOiBPcHRpb248TmV0d29ya1R5cGU+LAo+ICt9Cj4gKwo+ICtpbXBsIE9zcGZJbnRlcmZh Y2Ugewo+ICsgICAgcHViIGZuIGFyZWEoJnNlbGYpIC0+ICZBcmVhIHsKPiArICAgICAgICAmc2Vs Zi5hcmVhCj4gKyAgICB9Cj4gKyAgICBwdWIgZm4gcGFzc2l2ZSgmc2VsZikgLT4gJk9wdGlvbjxi b29sPiB7Cj4gKyAgICAgICAgJnNlbGYucGFzc2l2ZQo+ICsgICAgfQo+ICsgICAgcHViIGZuIG5l dHdvcmtfdHlwZSgmc2VsZikgLT4gJk9wdGlvbjxOZXR3b3JrVHlwZT4gewo+ICsgICAgICAgICZz ZWxmLm5ldHdvcmtfdHlwZQo+ICsgICAgfQoKXiBsaWtlIGluIHRoZSBwcmV2aW91cyBwYXRjaCAt IHB1YiBmaWVsZHMgdnMgZ2V0dGVycwoKPiArfQo+IC0tIAo+IDIuMzkuNQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxp c3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20v Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=