
From nobody Fri Dec  2 09:55:11 2016
Return-Path: <stewart.bryant@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 27B7F129810; Fri,  2 Dec 2016 09:55:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vJ1l74UNZDZt; Fri,  2 Dec 2016 09:55:08 -0800 (PST)
Received: from mail-wm0-x231.google.com (mail-wm0-x231.google.com [IPv6:2a00:1450:400c:c09::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 87E7D129DF1; Fri,  2 Dec 2016 09:54:54 -0800 (PST)
Received: by mail-wm0-x231.google.com with SMTP id g23so24140061wme.1; Fri, 02 Dec 2016 09:54:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=from:subject:to:message-id:date:user-agent:mime-version :content-transfer-encoding; bh=qSxbRmnXD1Yy3WSmwITd8XWASHLaJndPhO0juP2yt+I=; b=hMbsAyJLpqg4gA5MqvKPRPLkjAyaiuk0yDZoen5fvQusB4uztQlIC7+8NwIL8fSmfE W9QMXPQvSKXfJ+7xU+YcOTfiEc9TDZ8VdpGxy8FX5+ogONi9oDo0ninpFRu7rcl/x8/z FMUAXB8cpGtVPs4D6Dn0jhrz106GPUya7fH01005oWopPb9Hf3fNawxawT5GqM2sR0u2 0lhb2203/S8Tk7MUOr9ywGO4mh6ixy4Il4XJF9NjsYjJx4NpgqGWON8Tzj1OoiyyGh9a sJLH8QyH6wJ48aVgsbPEEsIbcoc2aV+fLpFt9krDN56E+uuK4JTrfhzvgMR3gXjJK4kZ KQeA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:subject:to:message-id:date:user-agent :mime-version:content-transfer-encoding; bh=qSxbRmnXD1Yy3WSmwITd8XWASHLaJndPhO0juP2yt+I=; b=FykbX+NePH0h9t5tEBy6At5I52B1h1kzsg9v/JNYplQvprRdZaVaijcCbJLXPLoJAi lQuxXThR9bnWgQUiZGAxWP41+uiS+eR/ZWD8Z8gVYN+ZgDuJLGAq0YBbCydXu+OmUxWr gNJ/v6vGGxvKos0dPYifd39HWSvz8l6e/0Kfxqm1m5cwdiTr5SMbB00gq+VvbslL9BB/ c23GvU/+jOymSTnNnCdsUbQ329HkaxIzV7A0RKWav3+kV0PrqzheysFmsb3KB7iHbm1j wrK455NQDj+KME4b3a3RdNiUc69GIjbPHNmRS2kJsYbPtPEH/Nec86K/cWNmJZggR6s6 nYlw==
X-Gm-Message-State: AKaTC00mK+NI/7H3+GLN7ATxRcxTbVJN3+G6tSccmBEm+GlO58elKI6gtFakczYnOMVX8w==
X-Received: by 10.28.168.70 with SMTP id r67mr3890821wme.19.1480701292438; Fri, 02 Dec 2016 09:54:52 -0800 (PST)
Received: from [192.168.2.131] (host213-123-124-182.in-addr.btopenworld.com. [213.123.124.182]) by smtp.gmail.com with ESMTPSA id gk6sm6655873wjc.46.2016.12.02.09.54.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Dec 2016 09:54:51 -0800 (PST)
From: Stewart Bryant <stewart.bryant@gmail.com>
To: "spring@ietf.org" <spring@ietf.org>, draft-ietf-spring-conflict-resolution@ietf.org
Message-ID: <ca931d36-8be4-6578-0b10-91acc8428d0e@gmail.com>
Date: Fri, 2 Dec 2016 17:54:50 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/G2myQnBr4DBlBpQV6mmQ7U_-DvE>
Subject: [spring] Conflict resolution - a plea for simplicity
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Dec 2016 17:55:10 -0000

There was some discussion on the conflict resolution draft at IETF97
that got cut off with a request to discuss on the list.

As I understand the situation, we have a misconfiguration in the network,
and we are being encouraged to take an essentially aggressive strategy
of picking one of the configurations and assuming that must be right
in order to continue forwarding traffic. It seems to me that we are
tossing a coin here and whilst we could be sending traffic the
right way we could also be sending it the wrong way with bad
consequences in terms of misdelivery or inducing congestion.

The alternative strategy is to note the conflict and not believe either
router. This more conservative strategy seems the better approach for
a number of reasons:

1) Traffic will not be misdelivered, or use unintended parts of the network.

2) Traffic,  was being routed via SR rather than simple shortest path
for a reason and so you should not try to guess the operators decision,
you should rigidly execute it.

3) It seems to me that the aggressive approach fails 7 of Ross Callons
Twelve truths (RFC1925). These were published on 1/April, but the real
joke is that they ARE useful truths, so forget about the date. 3,
4, *5*, *6*, 8, probably 10, certainly 12.

4) Finally there is the protocol 101 rule stating that the exception
path MUST be simple, because it is rarely executed and thus often
hosts most of the bugs.

Point 4 is particularly important. What we have in the draft is
complex and difficult to test on a live network, and yet it is
only there to take action when someone makes a mistake.
Exception code like this is usually the Cinderella in the
system, rushed in at the end of development and hardly tested.

It is usually by far the best approach to assert that the
misconfiguration should never happen, have a very simple test
do detect it and do something very simple by effective when
it is detected. Given that routing only works because
routers tell the truth, and clearly one or both of the routers
has breached that trust, the best approach is to trust neither.

What is unclear to me is what to do with the traffic, i.e. do
you degrade it to the base path, or do you drop it. I would think
that the latter is the more conservative, because presumably it
was put in the SR path for a reason, and so SHOULD be carried on
an SR path.

- Stewart


From nobody Sun Dec  4 07:53:25 2016
Return-Path: <sprevidi@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CFBF412954F; Sun,  4 Dec 2016 07:53:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.418
X-Spam-Level: 
X-Spam-Status: No, score=-17.418 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XA-yx_z2zUef; Sun,  4 Dec 2016 07:53:13 -0800 (PST)
Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 35B4612954D; Sun,  4 Dec 2016 07:53:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5100; q=dns/txt; s=iport; t=1480866793; x=1482076393; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=H3M7Zj1G55JoTobAJ2V+Np32T5EV45aPCsgPqo8X0bY=; b=k52jtvGdUPt0GPuk8HjdjJVDjw+2kQg1L9QjUFTp7WpJtcNET47QV3N/ 20fc0BchX/dcuvHw3QhEyKU43e9VbkY2NYNpr7Uc2Xw+IsPo3WMIM4g4N 7hrJ8/E2ZtCYwOt61yLlwx+r53ylgv8F6LUXFTzhiHUFikQTqieMpwP3v g=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0B1AQCOOkRY/4YNJK1dGgEBAQECAQEBA?= =?us-ascii?q?QgBAQEBgzgBAQEBAR+BYAeNQJcJh3SNCYIIhiICGoIDPxQBAgEBAQEBAQFiKIR?= =?us-ascii?q?oAQEBAwEjETMSBQsCAQgYAgImAgICHxEVEAIEDgWIVQMPCK1AgimHKA2DdgEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBARyBC4UzgX0IgU6BCIJIgV2DJy2CMAWUfIU1NQG?= =?us-ascii?q?JWoNbg2GBco5Lh2CBbYQ1hAwBHzeBGSMOAQGDKRyBXXKGK4EvgQ0BAQE?=
X-IronPort-AV: E=Sophos;i="5.33,299,1477958400"; d="scan'208";a="354970849"
Received: from alln-core-12.cisco.com ([173.36.13.134]) by alln-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 04 Dec 2016 15:53:12 +0000
Received: from XCH-RTP-010.cisco.com (xch-rtp-010.cisco.com [64.101.220.150]) by alln-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id uB4FrC4o011707 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Sun, 4 Dec 2016 15:53:12 GMT
Received: from xch-rtp-010.cisco.com (64.101.220.150) by XCH-RTP-010.cisco.com (64.101.220.150) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Sun, 4 Dec 2016 10:53:11 -0500
Received: from xch-rtp-010.cisco.com ([64.101.220.150]) by XCH-RTP-010.cisco.com ([64.101.220.150]) with mapi id 15.00.1210.000; Sun, 4 Dec 2016 10:53:11 -0500
From: "Stefano Previdi (sprevidi)" <sprevidi@cisco.com>
To: Stewart Bryant <stewart.bryant@gmail.com>
Thread-Topic: Conflict resolution - a plea for simplicity
Thread-Index: AQHSTMU9Dhcl5eQeC0Ge/s+27gd7mqD4R00A
Date: Sun, 4 Dec 2016 15:53:11 +0000
Message-ID: <9842E1E3-C627-4147-BF14-B0E834060B1C@cisco.com>
References: <ca931d36-8be4-6578-0b10-91acc8428d0e@gmail.com>
In-Reply-To: <ca931d36-8be4-6578-0b10-91acc8428d0e@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.61.166.236]
Content-Type: text/plain; charset="utf-8"
Content-ID: <7A3D03EF1B03D34AB6A303719FAA2655@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/tOs93-7iboRFIesTeBa3XFH0tOo>
Cc: "draft-ietf-spring-conflict-resolution@ietf.org" <draft-ietf-spring-conflict-resolution@ietf.org>, "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] Conflict resolution - a plea for simplicity
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 04 Dec 2016 15:53:23 -0000

U3Rld2FydCwNCg0KdGhhbmtzIGZvciB0aGUgZmVlZGJhY2suDQoNCkp1c3QgdG8gZ2l2ZSB5b3Ug
YW4gdXBkYXRlLCB0aGUgd29yayBjdXJyZW50bHkgZG9uZSBpbiB0aGUgY29udGV4dCBvZiB0aGUg
Y29uZmxpY3QtcmVzb2x1dGlvbiBkcmFmdCBhaW1lZCB0bywgaW5kZWVkLCBsaW1pdC9yZWR1Y2Ug
dGhlIGltcGFjdCBvZiBhIG1pc2NvbmZpZ3VyYXRpb24gaW4gcHJlc2VuY2Ugb2YgY29uZmxpY3Rp
bmcgcHJlZml4L3NpZCBtYXBwaW5ncy4NCg0KSXQgaXMgYmFzZWQgb24gdGhlIGNvbmNlcHQgdGhh
dCB0aGVyZeKAmXMgbm8gc3VjaCDigJxiYWTigJ0gb3Ig4oCcd3JvbmfigJ0gcHJlZml4L3NpZCBt
YXBwaW5nIGFzIGxvbmcgYXMgYWxsIG5vZGVzIHVzZSB0aGUgc2FtZS4NCg0KSG93ZXZlciwgd2hp
bGUgd2UgY2FtZSB1cCB3aXRoIGEgdmVyeSBlZmZpY2llbnQgc2NoZW1lLCBjb21wbGV4aXR5IGlz
IGFsc28gcGFydCBvZiB0aGUgcGljdHVyZSBmcm9tIGFuIGltcGxlbWVudGF0aW9uLCBkZXBsb3lt
ZW50LCB0cm91Ymxlc2hvb3RpbmcgcGVyc3BlY3RpdmUuIE5vdCB0byBtZW50aW9uIHRoZSBmdW4g
d2XigJlyZSBnb2luZyB0byBoYXZlIGluIGRvaW5nIGludGVyb3BlcmFiaWxpdHkgdGVzdHMuDQoN
ClNvLCB0aGUgYXV0aG9ycyBoYXZlIHJhaXNlZCB0aGlzIGNvbmNlcm4gYSBmZXcgdGltZXMgYnV0
IGFwcGFyZW50bHkgdGhlIG9ubHkgZmVlZGJhY2sgd2UgZ290IChzbyBmYXIpIGZyb20gdGhlIFdH
IHdhcyBtb3JlIG9yaWVudGVkIG9uIHRoZSBlZmZpY2llbmN5IG9mIHRoZSBjb25mbGljdC1yZXNv
bHV0aW9uIGFsZ29yaXRobSwgcmVnYXJkbGVzcyB0aGUgc2ltcGxpY2l0eSAod2hpY2ggaXMgZmlu
ZSBieSBtZSBhcyBsb25nIGFzIGl0IGlzIHdlbGwgdW5kZXJzdG9vZCkuDQoNCkxlcyBHaW5zYmVy
ZyBpcyBhYm91dCB0byBwcm9wb3NlIGEgc2ltcGxpZmljYXRpb24gb2YgdGhlIGFsZ29yaXRobSBp
biBvcmRlciB0byAocmUpaW50cm9kdWNlIHRoZSBzaW1wbGljaXR5IG9mIHRoZSBvcmlnaW5hbCBw
cm9wb3NhbCAob3IgYXQgbGVhc3QgdHJ5IHRvIGltcHJvdmUgc2ltcGxpY2l0eSBpbiB0aGUgY3Vy
cmVudCBzY2hlbWUpLg0KDQpUaGFua3MuDQpzLg0KDQoNCj4gT24gRGVjIDIsIDIwMTYsIGF0IDY6
NTQgUE0sIFN0ZXdhcnQgQnJ5YW50IDxzdGV3YXJ0LmJyeWFudEBnbWFpbC5jb20+IHdyb3RlOg0K
PiANCj4gVGhlcmUgd2FzIHNvbWUgZGlzY3Vzc2lvbiBvbiB0aGUgY29uZmxpY3QgcmVzb2x1dGlv
biBkcmFmdCBhdCBJRVRGOTcNCj4gdGhhdCBnb3QgY3V0IG9mZiB3aXRoIGEgcmVxdWVzdCB0byBk
aXNjdXNzIG9uIHRoZSBsaXN0Lg0KPiANCj4gQXMgSSB1bmRlcnN0YW5kIHRoZSBzaXR1YXRpb24s
IHdlIGhhdmUgYSBtaXNjb25maWd1cmF0aW9uIGluIHRoZSBuZXR3b3JrLA0KPiBhbmQgd2UgYXJl
IGJlaW5nIGVuY291cmFnZWQgdG8gdGFrZSBhbiBlc3NlbnRpYWxseSBhZ2dyZXNzaXZlIHN0cmF0
ZWd5DQo+IG9mIHBpY2tpbmcgb25lIG9mIHRoZSBjb25maWd1cmF0aW9ucyBhbmQgYXNzdW1pbmcg
dGhhdCBtdXN0IGJlIHJpZ2h0DQo+IGluIG9yZGVyIHRvIGNvbnRpbnVlIGZvcndhcmRpbmcgdHJh
ZmZpYy4gSXQgc2VlbXMgdG8gbWUgdGhhdCB3ZSBhcmUNCj4gdG9zc2luZyBhIGNvaW4gaGVyZSBh
bmQgd2hpbHN0IHdlIGNvdWxkIGJlIHNlbmRpbmcgdHJhZmZpYyB0aGUNCj4gcmlnaHQgd2F5IHdl
IGNvdWxkIGFsc28gYmUgc2VuZGluZyBpdCB0aGUgd3Jvbmcgd2F5IHdpdGggYmFkDQo+IGNvbnNl
cXVlbmNlcyBpbiB0ZXJtcyBvZiBtaXNkZWxpdmVyeSBvciBpbmR1Y2luZyBjb25nZXN0aW9uLg0K
PiANCj4gVGhlIGFsdGVybmF0aXZlIHN0cmF0ZWd5IGlzIHRvIG5vdGUgdGhlIGNvbmZsaWN0IGFu
ZCBub3QgYmVsaWV2ZSBlaXRoZXINCj4gcm91dGVyLiBUaGlzIG1vcmUgY29uc2VydmF0aXZlIHN0
cmF0ZWd5IHNlZW1zIHRoZSBiZXR0ZXIgYXBwcm9hY2ggZm9yDQo+IGEgbnVtYmVyIG9mIHJlYXNv
bnM6DQo+IA0KPiAxKSBUcmFmZmljIHdpbGwgbm90IGJlIG1pc2RlbGl2ZXJlZCwgb3IgdXNlIHVu
aW50ZW5kZWQgcGFydHMgb2YgdGhlIG5ldHdvcmsuDQo+IA0KPiAyKSBUcmFmZmljLCAgd2FzIGJl
aW5nIHJvdXRlZCB2aWEgU1IgcmF0aGVyIHRoYW4gc2ltcGxlIHNob3J0ZXN0IHBhdGgNCj4gZm9y
IGEgcmVhc29uIGFuZCBzbyB5b3Ugc2hvdWxkIG5vdCB0cnkgdG8gZ3Vlc3MgdGhlIG9wZXJhdG9y
cyBkZWNpc2lvbiwNCj4geW91IHNob3VsZCByaWdpZGx5IGV4ZWN1dGUgaXQuDQo+IA0KPiAzKSBJ
dCBzZWVtcyB0byBtZSB0aGF0IHRoZSBhZ2dyZXNzaXZlIGFwcHJvYWNoIGZhaWxzIDcgb2YgUm9z
cyBDYWxsb25zDQo+IFR3ZWx2ZSB0cnV0aHMgKFJGQzE5MjUpLiBUaGVzZSB3ZXJlIHB1Ymxpc2hl
ZCBvbiAxL0FwcmlsLCBidXQgdGhlIHJlYWwNCj4gam9rZSBpcyB0aGF0IHRoZXkgQVJFIHVzZWZ1
bCB0cnV0aHMsIHNvIGZvcmdldCBhYm91dCB0aGUgZGF0ZS4gMywNCj4gNCwgKjUqLCAqNiosIDgs
IHByb2JhYmx5IDEwLCBjZXJ0YWlubHkgMTIuDQo+IA0KPiA0KSBGaW5hbGx5IHRoZXJlIGlzIHRo
ZSBwcm90b2NvbCAxMDEgcnVsZSBzdGF0aW5nIHRoYXQgdGhlIGV4Y2VwdGlvbg0KPiBwYXRoIE1V
U1QgYmUgc2ltcGxlLCBiZWNhdXNlIGl0IGlzIHJhcmVseSBleGVjdXRlZCBhbmQgdGh1cyBvZnRl
bg0KPiBob3N0cyBtb3N0IG9mIHRoZSBidWdzLg0KPiANCj4gUG9pbnQgNCBpcyBwYXJ0aWN1bGFy
bHkgaW1wb3J0YW50LiBXaGF0IHdlIGhhdmUgaW4gdGhlIGRyYWZ0IGlzDQo+IGNvbXBsZXggYW5k
IGRpZmZpY3VsdCB0byB0ZXN0IG9uIGEgbGl2ZSBuZXR3b3JrLCBhbmQgeWV0IGl0IGlzDQo+IG9u
bHkgdGhlcmUgdG8gdGFrZSBhY3Rpb24gd2hlbiBzb21lb25lIG1ha2VzIGEgbWlzdGFrZS4NCj4g
RXhjZXB0aW9uIGNvZGUgbGlrZSB0aGlzIGlzIHVzdWFsbHkgdGhlIENpbmRlcmVsbGEgaW4gdGhl
DQo+IHN5c3RlbSwgcnVzaGVkIGluIGF0IHRoZSBlbmQgb2YgZGV2ZWxvcG1lbnQgYW5kIGhhcmRs
eSB0ZXN0ZWQuDQo+IA0KPiBJdCBpcyB1c3VhbGx5IGJ5IGZhciB0aGUgYmVzdCBhcHByb2FjaCB0
byBhc3NlcnQgdGhhdCB0aGUNCj4gbWlzY29uZmlndXJhdGlvbiBzaG91bGQgbmV2ZXIgaGFwcGVu
LCBoYXZlIGEgdmVyeSBzaW1wbGUgdGVzdA0KPiBkbyBkZXRlY3QgaXQgYW5kIGRvIHNvbWV0aGlu
ZyB2ZXJ5IHNpbXBsZSBieSBlZmZlY3RpdmUgd2hlbg0KPiBpdCBpcyBkZXRlY3RlZC4gR2l2ZW4g
dGhhdCByb3V0aW5nIG9ubHkgd29ya3MgYmVjYXVzZQ0KPiByb3V0ZXJzIHRlbGwgdGhlIHRydXRo
LCBhbmQgY2xlYXJseSBvbmUgb3IgYm90aCBvZiB0aGUgcm91dGVycw0KPiBoYXMgYnJlYWNoZWQg
dGhhdCB0cnVzdCwgdGhlIGJlc3QgYXBwcm9hY2ggaXMgdG8gdHJ1c3QgbmVpdGhlci4NCj4gDQo+
IFdoYXQgaXMgdW5jbGVhciB0byBtZSBpcyB3aGF0IHRvIGRvIHdpdGggdGhlIHRyYWZmaWMsIGku
ZS4gZG8NCj4geW91IGRlZ3JhZGUgaXQgdG8gdGhlIGJhc2UgcGF0aCwgb3IgZG8geW91IGRyb3Ag
aXQuIEkgd291bGQgdGhpbmsNCj4gdGhhdCB0aGUgbGF0dGVyIGlzIHRoZSBtb3JlIGNvbnNlcnZh
dGl2ZSwgYmVjYXVzZSBwcmVzdW1hYmx5IGl0DQo+IHdhcyBwdXQgaW4gdGhlIFNSIHBhdGggZm9y
IGEgcmVhc29uLCBhbmQgc28gU0hPVUxEIGJlIGNhcnJpZWQgb24NCj4gYW4gU1IgcGF0aC4NCj4g
DQo+IC0gU3Rld2FydA0KPiANCg0K


From nobody Sun Dec  4 15:19:08 2016
Return-Path: <stewart.bryant@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A951612958E; Sun,  4 Dec 2016 15:19:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P3UwZeNiCwoe; Sun,  4 Dec 2016 15:19:04 -0800 (PST)
Received: from mail-wj0-x235.google.com (mail-wj0-x235.google.com [IPv6:2a00:1450:400c:c01::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8E47D12954D; Sun,  4 Dec 2016 15:19:04 -0800 (PST)
Received: by mail-wj0-x235.google.com with SMTP id tg4so20741615wjb.1; Sun, 04 Dec 2016 15:19:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=4cy+qcUzorSrA7aTAZq7/GKL5rRYpUVPjFGYLSjLSQw=; b=DUt0ER3/mWxh8LR2BT8JmlY4BW2u0j/Rir7OGnHoY7xiJmcW1Rob5Xj2yg+lc00jLc zapQQPN7q2R7UItFNjIsWSc979JFu2OZIa7M5JpRe3W+WqY7kEXdj8/8jZOwr7RKUcHc SqI3WDuMIIOf+CvX6amoIMyz7jkSiqC6Khv0jvDGPvMgawPCAf9+sHwI0DxEnZ9rPDwx Hgg1ym2k/6ZfL/6hH5E2RPss5u58ZHiJwig+S4Ban6dTPizhlXTwngtCtngKotUSKoXg IVRVXkKTe9o77oRuq+IlHg8oepjEP2MCCkRhUy3gDsTjl07bgwbjxWR0jVPuzWwjqXmK VFNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=4cy+qcUzorSrA7aTAZq7/GKL5rRYpUVPjFGYLSjLSQw=; b=kxQlG9zogW/RhygyDFRCT/vhlI4TWKz6dsW8812jagqNI/2MtKqCXzFsNcpm6H4upX NDbzjEmiIy5FYkdwlsp8JUAFQPY1Jd5Cm5kzY9yzb7QuisAOoP+uQdZgPlzGt0CTF/gY KHYuZsHeEA9zE1jrAfQLmWMYFmNk4v7Be2g6xS+1MMfeNyERSympgBnoZpju2/x4Efl2 6JOnl+QLIOTBbYoGwl59XZQpls3D5S0YhKiR2CYWnhu/CVwj9c4g2HrZlgK5p6aJlpCM XOfZoYBMXlT7G996GTmq6t3STFXdM6O1NT7PanCTneenK0z8H79zwhk+AkqwwfmiNGRJ YBew==
X-Gm-Message-State: AKaTC02DIs2PCYWU+kymTTpv4lB59JbIKObYKsqxPK2q5N+CEu4S/jXJS72D0F7JVw3kBw==
X-Received: by 10.194.66.101 with SMTP id e5mr45796119wjt.172.1480893542861; Sun, 04 Dec 2016 15:19:02 -0800 (PST)
Received: from [192.168.2.131] (host213-123-124-182.in-addr.btopenworld.com. [213.123.124.182]) by smtp.gmail.com with ESMTPSA id ei2sm17366833wjd.47.2016.12.04.15.19.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 04 Dec 2016 15:19:02 -0800 (PST)
To: "Stefano Previdi (sprevidi)" <sprevidi@cisco.com>
References: <ca931d36-8be4-6578-0b10-91acc8428d0e@gmail.com> <9842E1E3-C627-4147-BF14-B0E834060B1C@cisco.com>
From: Stewart Bryant <stewart.bryant@gmail.com>
Message-ID: <7e8b1d3d-4742-80d9-d0f0-3f65b094f281@gmail.com>
Date: Sun, 4 Dec 2016 23:19:00 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
MIME-Version: 1.0
In-Reply-To: <9842E1E3-C627-4147-BF14-B0E834060B1C@cisco.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/p5ZKrpXq8nOfCnCuRegc3kBYQEg>
Cc: "draft-ietf-spring-conflict-resolution@ietf.org" <draft-ietf-spring-conflict-resolution@ietf.org>, "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] Conflict resolution - a plea for simplicity
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 04 Dec 2016 23:19:07 -0000

On 04/12/2016 15:53, Stefano Previdi (sprevidi) wrote:
> Stewart,
>
> thanks for the feedback.
>
> Just to give you an update, the work currently done in the context of the conflict-resolution draft aimed to, indeed, limit/reduce the impact of a misconfiguration in presence of conflicting prefix/sid mappings.
>
> It is based on the concept that there’s no such “bad” or “wrong” prefix/sid mapping as long as all nodes use the same.
This philosophy always seems incorrect to me.

If the operator planed for some traffic to go via an SR route, then must 
have done it for a reason. That reason may have been to protect a 
property of the service, or to protect other traffic from that service. 
Either way, if it is intended to go via an SR path, it really should go 
via that path and not via some other path that the network is guessing at.


>
> However, while we came up with a very efficient scheme, complexity is also part of the picture from an implementation, deployment, troubleshooting perspective. Not to mention the fun we’re going to have in doing interoperability tests.
Right, so why not just do something really simple.

>
> So, the authors have raised this concern a few times but apparently the only feedback we got (so far) from the WG was more oriented on the efficiency of the conflict-resolution algorithm, regardless the simplicity (which is fine by me as long as it is well understood).
>
> Les Ginsberg is about to propose a simplification of the algorithm in order to (re)introduce the simplicity of the original proposal (or at least try to improve simplicity in the current scheme).
OK, look forward to seeing it.

- S


> Thanks.
> s.
>
>
>> On Dec 2, 2016, at 6:54 PM, Stewart Bryant <stewart.bryant@gmail.com> wrote:
>>
>> There was some discussion on the conflict resolution draft at IETF97
>> that got cut off with a request to discuss on the list.
>>
>> As I understand the situation, we have a misconfiguration in the network,
>> and we are being encouraged to take an essentially aggressive strategy
>> of picking one of the configurations and assuming that must be right
>> in order to continue forwarding traffic. It seems to me that we are
>> tossing a coin here and whilst we could be sending traffic the
>> right way we could also be sending it the wrong way with bad
>> consequences in terms of misdelivery or inducing congestion.
>>
>> The alternative strategy is to note the conflict and not believe either
>> router. This more conservative strategy seems the better approach for
>> a number of reasons:
>>
>> 1) Traffic will not be misdelivered, or use unintended parts of the network.
>>
>> 2) Traffic,  was being routed via SR rather than simple shortest path
>> for a reason and so you should not try to guess the operators decision,
>> you should rigidly execute it.
>>
>> 3) It seems to me that the aggressive approach fails 7 of Ross Callons
>> Twelve truths (RFC1925). These were published on 1/April, but the real
>> joke is that they ARE useful truths, so forget about the date. 3,
>> 4, *5*, *6*, 8, probably 10, certainly 12.
>>
>> 4) Finally there is the protocol 101 rule stating that the exception
>> path MUST be simple, because it is rarely executed and thus often
>> hosts most of the bugs.
>>
>> Point 4 is particularly important. What we have in the draft is
>> complex and difficult to test on a live network, and yet it is
>> only there to take action when someone makes a mistake.
>> Exception code like this is usually the Cinderella in the
>> system, rushed in at the end of development and hardly tested.
>>
>> It is usually by far the best approach to assert that the
>> misconfiguration should never happen, have a very simple test
>> do detect it and do something very simple by effective when
>> it is detected. Given that routing only works because
>> routers tell the truth, and clearly one or both of the routers
>> has breached that trust, the best approach is to trust neither.
>>
>> What is unclear to me is what to do with the traffic, i.e. do
>> you degrade it to the base path, or do you drop it. I would think
>> that the latter is the more conservative, because presumably it
>> was put in the SR path for a reason, and so SHOULD be carried on
>> an SR path.
>>
>> - Stewart
>>


From nobody Sun Dec  4 15:46:14 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 16F87129635; Sun,  4 Dec 2016 15:46:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.418
X-Spam-Level: 
X-Spam-Status: No, score=-17.418 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VOS9wR9E-OD0; Sun,  4 Dec 2016 15:46:11 -0800 (PST)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 254C8129546; Sun,  4 Dec 2016 15:46:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=9250; q=dns/txt; s=iport; t=1480895171; x=1482104771; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=GtJub+OnO33ayU4OqP0czE/Z5W/bBwSdFPRXZzgwcHs=; b=IQDBQbjp8vizmbefQ9g3ur/qJwRm1u0SWDHA6lyjkqjYtyVmMhWK3XeP vlT1ZXeeWJwtbxAt04Ck9NQhb7nwV6YM1wV5FBpIjqfEX5UIXviWvCJXq lymZIcvHhAgdL1dMOxSXC3Zq8PTOd8yMP2FLiYsBrxsLLgPvRGhMkeaDD Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AUAQASqkRY/4YNJK1cGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgyoOAQEBAQEfgWAHjUCXCYd0jQmCCIYiAhqCAz8UAQIBAQEBAQE?= =?us-ascii?q?BYiiEaAEBAQQjETMSDAQCAQgRBAEBAQICIwMCAgIfERQBCAgCBAENBQiITQMXr?= =?us-ascii?q?FuCKYcpDYN2AQEBAQEBAQEBAQEBAQEBAQEBAQEBHIELhTODU4EIgkiBXTqCbYJ?= =?us-ascii?q?dBZoxNQGJWoNbg1iBe45Lh2CBbYQ1hAwBHzeBGSODORyBXXKGIIEvgQ0BAQE?=
X-IronPort-AV: E=Sophos;i="5.33,301,1477958400"; d="scan'208";a="177458909"
Received: from alln-core-12.cisco.com ([173.36.13.134]) by rcdn-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 04 Dec 2016 23:46:09 +0000
Received: from XCH-RCD-008.cisco.com (xch-rcd-008.cisco.com [173.37.102.18]) by alln-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id uB4Nk9Ao009397 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Sun, 4 Dec 2016 23:46:09 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-RCD-008.cisco.com (173.37.102.18) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Sun, 4 Dec 2016 17:46:09 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Sun, 4 Dec 2016 17:46:09 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: Stewart Bryant <stewart.bryant@gmail.com>, "Stefano Previdi (sprevidi)" <sprevidi@cisco.com>
Thread-Topic: Conflict resolution - a plea for simplicity
Thread-Index: AQHSTMU+SbkPJsBOYUqJShARm4mbaqD4WBGAgAB8kAD//54AwA==
Date: Sun, 4 Dec 2016 23:46:09 +0000
Message-ID: <e541d94071874ed199b5c8bc19b8bd14@XCH-ALN-001.cisco.com>
References: <ca931d36-8be4-6578-0b10-91acc8428d0e@gmail.com> <9842E1E3-C627-4147-BF14-B0E834060B1C@cisco.com> <7e8b1d3d-4742-80d9-d0f0-3f65b094f281@gmail.com>
In-Reply-To: <7e8b1d3d-4742-80d9-d0f0-3f65b094f281@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.8.251]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/OLTQ-qtEgMp5YxD_H0pfuKt5T2Y>
Cc: "draft-ietf-spring-conflict-resolution@ietf.org" <draft-ietf-spring-conflict-resolution@ietf.org>, "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] Conflict resolution - a plea for simplicity
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 04 Dec 2016 23:46:13 -0000

U3Rld2FydCAtDQoNCkkgYWxzbyBhbSBoYXBweSB0byBnZXQgbW9yZSBmZWVkYmFjay4NCklubGlu
ZS4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTdGV3YXJ0IEJyeWFu
dCBbbWFpbHRvOnN0ZXdhcnQuYnJ5YW50QGdtYWlsLmNvbV0NCj4gU2VudDogU3VuZGF5LCBEZWNl
bWJlciAwNCwgMjAxNiAzOjE5IFBNDQo+IFRvOiBTdGVmYW5vIFByZXZpZGkgKHNwcmV2aWRpKQ0K
PiBDYzogc3ByaW5nQGlldGYub3JnOyBkcmFmdC1pZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0
aW9uQGlldGYub3JnDQo+IFN1YmplY3Q6IFJlOiBDb25mbGljdCByZXNvbHV0aW9uIC0gYSBwbGVh
IGZvciBzaW1wbGljaXR5DQo+IA0KPiANCj4gDQo+IE9uIDA0LzEyLzIwMTYgMTU6NTMsIFN0ZWZh
bm8gUHJldmlkaSAoc3ByZXZpZGkpIHdyb3RlOg0KPiA+IFN0ZXdhcnQsDQo+ID4NCj4gPiB0aGFu
a3MgZm9yIHRoZSBmZWVkYmFjay4NCj4gPg0KPiA+IEp1c3QgdG8gZ2l2ZSB5b3UgYW4gdXBkYXRl
LCB0aGUgd29yayBjdXJyZW50bHkgZG9uZSBpbiB0aGUgY29udGV4dCBvZiB0aGUNCj4gY29uZmxp
Y3QtcmVzb2x1dGlvbiBkcmFmdCBhaW1lZCB0bywgaW5kZWVkLCBsaW1pdC9yZWR1Y2UgdGhlIGlt
cGFjdCBvZiBhDQo+IG1pc2NvbmZpZ3VyYXRpb24gaW4gcHJlc2VuY2Ugb2YgY29uZmxpY3Rpbmcg
cHJlZml4L3NpZCBtYXBwaW5ncy4NCj4gPg0KPiA+IEl0IGlzIGJhc2VkIG9uIHRoZSBjb25jZXB0
IHRoYXQgdGhlcmXigJlzIG5vIHN1Y2gg4oCcYmFk4oCdIG9yIOKAnHdyb25n4oCdIHByZWZpeC9z
aWQNCj4gbWFwcGluZyBhcyBsb25nIGFzIGFsbCBub2RlcyB1c2UgdGhlIHNhbWUuDQo+IFRoaXMg
cGhpbG9zb3BoeSBhbHdheXMgc2VlbXMgaW5jb3JyZWN0IHRvIG1lLg0KPiANCj4gSWYgdGhlIG9w
ZXJhdG9yIHBsYW5lZCBmb3Igc29tZSB0cmFmZmljIHRvIGdvIHZpYSBhbiBTUiByb3V0ZSwgdGhl
biBtdXN0IGhhdmUNCj4gZG9uZSBpdCBmb3IgYSByZWFzb24uIFRoYXQgcmVhc29uIG1heSBoYXZl
IGJlZW4gdG8gcHJvdGVjdCBhIHByb3BlcnR5IG9mIHRoZQ0KPiBzZXJ2aWNlLCBvciB0byBwcm90
ZWN0IG90aGVyIHRyYWZmaWMgZnJvbSB0aGF0IHNlcnZpY2UuDQo+IEVpdGhlciB3YXksIGlmIGl0
IGlzIGludGVuZGVkIHRvIGdvIHZpYSBhbiBTUiBwYXRoLCBpdCByZWFsbHkgc2hvdWxkIGdvIHZp
YSB0aGF0DQo+IHBhdGggYW5kIG5vdCB2aWEgc29tZSBvdGhlciBwYXRoIHRoYXQgdGhlIG5ldHdv
cmsgaXMgZ3Vlc3NpbmcgYXQuDQo+IA0KW0xlczpdIFRoZSBpc3N1ZSBoZXJlIGlzbid0IHRvIGdv
IHZpYSBhbiBTUiBwYXRoIG9yIG5vdC4gSXQgaXMgaG93IHRvIGRlY2lkZSBvbiB3aGF0IE1QTFMg
bGFiZWwgdG8gdXNlIHdoZW4gdGhlcmUgaXMgYSBjb25mbGljdCBpLmUuIGVpdGhlciB0aGUgc2Ft
ZSBwcmVmaXggaGFzIGJlZW4gYWR2ZXJ0aXNlZCB3aXRoIG11bHRpcGxlIFNJRHMgb3IgdGhlIHNh
bWUgU0lEIGhhcyBiZWVuIGFkdmVydGlzZWQgZm9yIG11bHRpcGxlIHByZWZpeGVzLiBDbGVhcmx5
IGlmIG5vdCBhbGwgbm9kZXMgaW4gdGhlIG5ldHdvcmsgbWFrZSB0aGUgc2FtZSBjaG9pY2Ugd2Ug
Y2Fubm90IGd1YXJhbnRlZSB0aGF0IGZvcndhcmRpbmcgd2lsbCB3b3JrIGNvcnJlY3RseS4NCg0K
V2hhdCB0aGUgZHJhZnQgYXV0aG9ycyBoYXZlIGFkdm9jYXRlZCBmb3IgZnJvbSB0aGUgYmVnaW5u
aW5nIGlzIHNpbXBsaWNpdHkuIFNpbmNlIHRoZXJlIGlzIG5vIHdheSB0byBrbm93IHdoaWNoIG9m
IHRoZSBjb25mbGljdGluZyBhZHZlcnRpc2VtZW50cyBpcyB0aGUgaW50ZW5kZWQgb25lLCB0aGUg
c2ltcGxlc3QgdGhpbmcgdG8gZG8gaXMgbm90IHVzZSBhbnkgb2YgdGhlbS4gVGhpcyBsaWtlbHkg
bWVhbnMgdGhhdCB0cmFmZmljIHRvIGFsbCBvZiB0aGUgYWZmZWN0ZWQgZGVzdGluYXRpb25zIHdp
bGwgYmUgZHJvcHBlZC4gQnV0IGFzIGFueW9uZSBleHBlcmllbmNlZCBpbiBkZXBsb3ltZW50cyBr
bm93cywgdGhlcmUgYXJlIG1hbnkgd2F5cyB0byBtaXNjb25maWd1cmUgYSBuZXR3b3JrIC0gYW5k
IGl0IGlzbuKAmXQgcG9zc2libGUgdG8gZ3VhcmFudGVlIHRyYWZmaWMgZGVsaXZlcnkgaW4gdGhl
IGZhY2Ugb2YgbWlzY29uZmlndXJhdGlvbnMuIFdoYXQgaXMgZXNzZW50aWFsIGlzIHRvIGRldGVj
dCBhbmQgcmVwb3J0IHRoZSBtaXNjb25maWd1cmF0aW9ucyBzbyB0aGF0IGNvcnJlY3RpdmUgYWN0
aW9uIGNhbiBiZSB0YWtlbi4gDQoNCkluIHRoZSBjb3Vyc2Ugb2YgdGhlIGxhc3QgZmV3IG1vbnRo
cyB3ZSByZWNlaXZlZCBmZWVkYmFjayB0aGF0IHB1c2hlZCBpbiB0aGUgZGlyZWN0aW9uIG9mIHRy
eWluZyB0byBtYXhpbWl6ZSBkZWxpdmVyeSBvZiB0cmFmZmljIGJ5IHRyeWluZyB0byBtaW5pbWl6
ZSB0aGUgYWR2ZXJ0aXNlbWVudHMgd2hpY2ggYXJlIGlnbm9yZWQgd2hlbiBjb25mbGljdHMgYXJl
IGRldGVjdGVkLiBJdCBpcywgb2YgY291cnNlLCBzdGlsbCBub3QgcG9zc2libGUgdG8ga25vdyB3
aGV0aGVyIHRoZSBjaG9pY2UgbWFkZSBpcyBjb3JyZWN0IG9yIHdpbGwgZXZlbiByZXN1bHQgaW4g
bWF4aW1pemluZyB0cmFmZmljIGRlbGl2ZXJ5LiBUaGUgd2lubmluZyBlbnRyeSBtaWdodCB0dXJu
IG91dCB0byBiZSBmb3IgcHJlZml4ZXMgd2hpY2ggZG8gbm90IGNvdmVyIGFueSBhY3R1YWwgdHJh
ZmZpYy4gQnV0IHRoZSBtb3N0IHNpZ25pZmljYW50IGFzcGVjdCBvZiB0cnlpbmcgdG8gbWF4aW1p
emUgdGhlIG51bWJlciBvZiBtYXBwaW5nIGVudHJpZXMgdGhhdCBjb250aW51ZSB0byBiZSB1c2Vk
IGluIHRoZSBmYWNlIG9mIGNvbmZsaWN0aW5nIGNvbmZpZ3VyYXRpb24gaXMgdGhlIGFkZGVkIGNv
bXBsZXhpdHkgaW4gaW1wbGVtZW50aW5nIHRoZSBhZ3JlZWQgdXBvbiBwcmVmZXJlbmNlIHJ1bGUg
aW4gYW4gaW50ZXJvcGVyYWJsZSB3YXkuIEluIHRoaXMgcmVnYXJkIGFsbCB0aGUgcG9pbnRzIHlv
dSBoYXZlIG1hZGUgYXJlIC0gSU1PIC0gcXVpdGUgdmFsaWQuIEFuZCB3ZSB0aGVyZWZvcmUgd2ls
bCBiZSBhc2tpbmcgdGhlIFdHIHRvIHRha2UgYW5vdGhlciBsb29rIGF0IGEgc2ltcGxlciBwcm9w
b3NhbC4NCg0KICAgTGVzDQoNCg0KPiANCj4gPg0KPiA+IEhvd2V2ZXIsIHdoaWxlIHdlIGNhbWUg
dXAgd2l0aCBhIHZlcnkgZWZmaWNpZW50IHNjaGVtZSwgY29tcGxleGl0eSBpcw0KPiBhbHNvIHBh
cnQgb2YgdGhlIHBpY3R1cmUgZnJvbSBhbiBpbXBsZW1lbnRhdGlvbiwgZGVwbG95bWVudCwNCj4g
dHJvdWJsZXNob290aW5nIHBlcnNwZWN0aXZlLiBOb3QgdG8gbWVudGlvbiB0aGUgZnVuIHdl4oCZ
cmUgZ29pbmcgdG8gaGF2ZSBpbg0KPiBkb2luZyBpbnRlcm9wZXJhYmlsaXR5IHRlc3RzLg0KPiBS
aWdodCwgc28gd2h5IG5vdCBqdXN0IGRvIHNvbWV0aGluZyByZWFsbHkgc2ltcGxlLg0KPiANCj4g
Pg0KPiA+IFNvLCB0aGUgYXV0aG9ycyBoYXZlIHJhaXNlZCB0aGlzIGNvbmNlcm4gYSBmZXcgdGlt
ZXMgYnV0IGFwcGFyZW50bHkgdGhlDQo+IG9ubHkgZmVlZGJhY2sgd2UgZ290IChzbyBmYXIpIGZy
b20gdGhlIFdHIHdhcyBtb3JlIG9yaWVudGVkIG9uIHRoZQ0KPiBlZmZpY2llbmN5IG9mIHRoZSBj
b25mbGljdC1yZXNvbHV0aW9uIGFsZ29yaXRobSwgcmVnYXJkbGVzcyB0aGUgc2ltcGxpY2l0eQ0K
PiAod2hpY2ggaXMgZmluZSBieSBtZSBhcyBsb25nIGFzIGl0IGlzIHdlbGwgdW5kZXJzdG9vZCku
DQo+ID4NCj4gPiBMZXMgR2luc2JlcmcgaXMgYWJvdXQgdG8gcHJvcG9zZSBhIHNpbXBsaWZpY2F0
aW9uIG9mIHRoZSBhbGdvcml0aG0gaW4gb3JkZXINCj4gdG8gKHJlKWludHJvZHVjZSB0aGUgc2lt
cGxpY2l0eSBvZiB0aGUgb3JpZ2luYWwgcHJvcG9zYWwgKG9yIGF0IGxlYXN0IHRyeSB0bw0KPiBp
bXByb3ZlIHNpbXBsaWNpdHkgaW4gdGhlIGN1cnJlbnQgc2NoZW1lKS4NCj4gT0ssIGxvb2sgZm9y
d2FyZCB0byBzZWVpbmcgaXQuDQo+IA0KPiAtIFMNCj4gDQo+IA0KPiA+IFRoYW5rcy4NCj4gPiBz
Lg0KPiA+DQo+ID4NCj4gPj4gT24gRGVjIDIsIDIwMTYsIGF0IDY6NTQgUE0sIFN0ZXdhcnQgQnJ5
YW50IDxzdGV3YXJ0LmJyeWFudEBnbWFpbC5jb20+DQo+IHdyb3RlOg0KPiA+Pg0KPiA+PiBUaGVy
ZSB3YXMgc29tZSBkaXNjdXNzaW9uIG9uIHRoZSBjb25mbGljdCByZXNvbHV0aW9uIGRyYWZ0IGF0
IElFVEY5Nw0KPiA+PiB0aGF0IGdvdCBjdXQgb2ZmIHdpdGggYSByZXF1ZXN0IHRvIGRpc2N1c3Mg
b24gdGhlIGxpc3QuDQo+ID4+DQo+ID4+IEFzIEkgdW5kZXJzdGFuZCB0aGUgc2l0dWF0aW9uLCB3
ZSBoYXZlIGEgbWlzY29uZmlndXJhdGlvbiBpbiB0aGUNCj4gPj4gbmV0d29yaywgYW5kIHdlIGFy
ZSBiZWluZyBlbmNvdXJhZ2VkIHRvIHRha2UgYW4gZXNzZW50aWFsbHkNCj4gPj4gYWdncmVzc2l2
ZSBzdHJhdGVneSBvZiBwaWNraW5nIG9uZSBvZiB0aGUgY29uZmlndXJhdGlvbnMgYW5kIGFzc3Vt
aW5nDQo+ID4+IHRoYXQgbXVzdCBiZSByaWdodCBpbiBvcmRlciB0byBjb250aW51ZSBmb3J3YXJk
aW5nIHRyYWZmaWMuIEl0IHNlZW1zDQo+ID4+IHRvIG1lIHRoYXQgd2UgYXJlIHRvc3NpbmcgYSBj
b2luIGhlcmUgYW5kIHdoaWxzdCB3ZSBjb3VsZCBiZSBzZW5kaW5nDQo+ID4+IHRyYWZmaWMgdGhl
IHJpZ2h0IHdheSB3ZSBjb3VsZCBhbHNvIGJlIHNlbmRpbmcgaXQgdGhlIHdyb25nIHdheSB3aXRo
DQo+ID4+IGJhZCBjb25zZXF1ZW5jZXMgaW4gdGVybXMgb2YgbWlzZGVsaXZlcnkgb3IgaW5kdWNp
bmcgY29uZ2VzdGlvbi4NCj4gPj4NCj4gPj4gVGhlIGFsdGVybmF0aXZlIHN0cmF0ZWd5IGlzIHRv
IG5vdGUgdGhlIGNvbmZsaWN0IGFuZCBub3QgYmVsaWV2ZQ0KPiA+PiBlaXRoZXIgcm91dGVyLiBU
aGlzIG1vcmUgY29uc2VydmF0aXZlIHN0cmF0ZWd5IHNlZW1zIHRoZSBiZXR0ZXINCj4gPj4gYXBw
cm9hY2ggZm9yIGEgbnVtYmVyIG9mIHJlYXNvbnM6DQo+ID4+DQo+ID4+IDEpIFRyYWZmaWMgd2ls
bCBub3QgYmUgbWlzZGVsaXZlcmVkLCBvciB1c2UgdW5pbnRlbmRlZCBwYXJ0cyBvZiB0aGUNCj4g
bmV0d29yay4NCj4gPj4NCj4gPj4gMikgVHJhZmZpYywgIHdhcyBiZWluZyByb3V0ZWQgdmlhIFNS
IHJhdGhlciB0aGFuIHNpbXBsZSBzaG9ydGVzdCBwYXRoDQo+ID4+IGZvciBhIHJlYXNvbiBhbmQg
c28geW91IHNob3VsZCBub3QgdHJ5IHRvIGd1ZXNzIHRoZSBvcGVyYXRvcnMNCj4gPj4gZGVjaXNp
b24sIHlvdSBzaG91bGQgcmlnaWRseSBleGVjdXRlIGl0Lg0KPiA+Pg0KPiA+PiAzKSBJdCBzZWVt
cyB0byBtZSB0aGF0IHRoZSBhZ2dyZXNzaXZlIGFwcHJvYWNoIGZhaWxzIDcgb2YgUm9zcw0KPiA+
PiBDYWxsb25zIFR3ZWx2ZSB0cnV0aHMgKFJGQzE5MjUpLiBUaGVzZSB3ZXJlIHB1Ymxpc2hlZCBv
biAxL0FwcmlsLCBidXQNCj4gPj4gdGhlIHJlYWwgam9rZSBpcyB0aGF0IHRoZXkgQVJFIHVzZWZ1
bCB0cnV0aHMsIHNvIGZvcmdldCBhYm91dCB0aGUNCj4gPj4gZGF0ZS4gMywgNCwgKjUqLCAqNios
IDgsIHByb2JhYmx5IDEwLCBjZXJ0YWlubHkgMTIuDQo+ID4+DQo+ID4+IDQpIEZpbmFsbHkgdGhl
cmUgaXMgdGhlIHByb3RvY29sIDEwMSBydWxlIHN0YXRpbmcgdGhhdCB0aGUgZXhjZXB0aW9uDQo+
ID4+IHBhdGggTVVTVCBiZSBzaW1wbGUsIGJlY2F1c2UgaXQgaXMgcmFyZWx5IGV4ZWN1dGVkIGFu
ZCB0aHVzIG9mdGVuDQo+ID4+IGhvc3RzIG1vc3Qgb2YgdGhlIGJ1Z3MuDQo+ID4+DQo+ID4+IFBv
aW50IDQgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudC4gV2hhdCB3ZSBoYXZlIGluIHRoZSBkcmFm
dCBpcw0KPiA+PiBjb21wbGV4IGFuZCBkaWZmaWN1bHQgdG8gdGVzdCBvbiBhIGxpdmUgbmV0d29y
aywgYW5kIHlldCBpdCBpcyBvbmx5DQo+ID4+IHRoZXJlIHRvIHRha2UgYWN0aW9uIHdoZW4gc29t
ZW9uZSBtYWtlcyBhIG1pc3Rha2UuDQo+ID4+IEV4Y2VwdGlvbiBjb2RlIGxpa2UgdGhpcyBpcyB1
c3VhbGx5IHRoZSBDaW5kZXJlbGxhIGluIHRoZSBzeXN0ZW0sDQo+ID4+IHJ1c2hlZCBpbiBhdCB0
aGUgZW5kIG9mIGRldmVsb3BtZW50IGFuZCBoYXJkbHkgdGVzdGVkLg0KPiA+Pg0KPiA+PiBJdCBp
cyB1c3VhbGx5IGJ5IGZhciB0aGUgYmVzdCBhcHByb2FjaCB0byBhc3NlcnQgdGhhdCB0aGUNCj4g
Pj4gbWlzY29uZmlndXJhdGlvbiBzaG91bGQgbmV2ZXIgaGFwcGVuLCBoYXZlIGEgdmVyeSBzaW1w
bGUgdGVzdCBkbw0KPiA+PiBkZXRlY3QgaXQgYW5kIGRvIHNvbWV0aGluZyB2ZXJ5IHNpbXBsZSBi
eSBlZmZlY3RpdmUgd2hlbiBpdCBpcw0KPiA+PiBkZXRlY3RlZC4gR2l2ZW4gdGhhdCByb3V0aW5n
IG9ubHkgd29ya3MgYmVjYXVzZSByb3V0ZXJzIHRlbGwgdGhlDQo+ID4+IHRydXRoLCBhbmQgY2xl
YXJseSBvbmUgb3IgYm90aCBvZiB0aGUgcm91dGVycyBoYXMgYnJlYWNoZWQgdGhhdA0KPiA+PiB0
cnVzdCwgdGhlIGJlc3QgYXBwcm9hY2ggaXMgdG8gdHJ1c3QgbmVpdGhlci4NCj4gPj4NCj4gPj4g
V2hhdCBpcyB1bmNsZWFyIHRvIG1lIGlzIHdoYXQgdG8gZG8gd2l0aCB0aGUgdHJhZmZpYywgaS5l
LiBkbyB5b3UNCj4gPj4gZGVncmFkZSBpdCB0byB0aGUgYmFzZSBwYXRoLCBvciBkbyB5b3UgZHJv
cCBpdC4gSSB3b3VsZCB0aGluayB0aGF0DQo+ID4+IHRoZSBsYXR0ZXIgaXMgdGhlIG1vcmUgY29u
c2VydmF0aXZlLCBiZWNhdXNlIHByZXN1bWFibHkgaXQgd2FzIHB1dCBpbg0KPiA+PiB0aGUgU1Ig
cGF0aCBmb3IgYSByZWFzb24sIGFuZCBzbyBTSE9VTEQgYmUgY2FycmllZCBvbiBhbiBTUiBwYXRo
Lg0KPiA+Pg0KPiA+PiAtIFN0ZXdhcnQNCj4gPj4NCg0K


From nobody Sun Dec  4 16:04:34 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 25D9112964A for <spring@ietfa.amsl.com>; Sun,  4 Dec 2016 16:04:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.417
X-Spam-Level: 
X-Spam-Status: No, score=-17.417 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id M4VtfBRz4T0h for <spring@ietfa.amsl.com>; Sun,  4 Dec 2016 16:04:29 -0800 (PST)
Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4B3F0129648 for <spring@ietf.org>; Sun,  4 Dec 2016 16:04:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=17316; q=dns/txt; s=iport; t=1480896269; x=1482105869; h=from:to:subject:date:message-id:mime-version; bh=oucUVypAkD+gnun7wmZYSJKfcdOhFShunbFJXmkjEAI=; b=f9iJMXmHOuMOzxLnnal+zwUYPnZhOfxfBx4PlK1oZsNNBRaVW64yZM/B y9p7virfNtg8kwqudb22Yy3A0ax7zRCs6CUlj6xP4NrV6JOnM/GER6vIV bcHnSJJ1KX7N4Wcmj6syV8N/3XkWxsPDrhAxQVxeEfUKpo6Yo7yTr5Z/c k=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0D2BAALrkRY/4wNJK1cGgEBAQECAQEBA?= =?us-ascii?q?QgBAQEBgnNFAQEBAQEfWoENjUCmZIUiggiIQT8UAQIBAQEBAQEBYh0LhG8tXgG?= =?us-ascii?q?BACYBBBsTiFScWZIkiywBAQEBAQUBAQEBASKGPo8EBZR8hWoBkQ2QRpIOAR83S?= =?us-ascii?q?VCDXByBXYhBgQ0BAQE?=
X-IronPort-AV: E=Sophos;i="5.33,301,1477958400";  d="scan'208,217";a="179258482"
Received: from alln-core-7.cisco.com ([173.36.13.140]) by rcdn-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 05 Dec 2016 00:04:27 +0000
Received: from XCH-RCD-003.cisco.com (xch-rcd-003.cisco.com [173.37.102.13]) by alln-core-7.cisco.com (8.14.5/8.14.5) with ESMTP id uB504Ruu010589 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL) for <spring@ietf.org>; Mon, 5 Dec 2016 00:04:27 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-RCD-003.cisco.com (173.37.102.13) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Sun, 4 Dec 2016 18:04:27 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Sun, 4 Dec 2016 18:04:27 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: "spring@ietf.org" <spring@ietf.org>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzw==
Date: Mon, 5 Dec 2016 00:04:27 +0000
Message-ID: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.8.251]
Content-Type: multipart/alternative; boundary="_000_84fe7b43d5054712abf09b274bc3c471XCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/LDluUUNPZJXGT81cdSHukhSaAoM>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 Dec 2016 00:04:32 -0000

--_000_84fe7b43d5054712abf09b274bc3c471XCHALN001ciscocom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









--_000_84fe7b43d5054712abf09b274bc3c471XCHALN001ciscocom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Microsoft PhagsPa";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri","sans-serif";}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_84fe7b43d5054712abf09b274bc3c471XCHALN001ciscocom_--


From nobody Mon Dec  5 00:13:46 2016
Return-Path: <sprevidi@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 53FF41293FD; Mon,  5 Dec 2016 00:13:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.418
X-Spam-Level: 
X-Spam-Status: No, score=-17.418 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oR9s3aVnd9Kc; Mon,  5 Dec 2016 00:13:43 -0800 (PST)
Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 62C06128E19; Mon,  5 Dec 2016 00:13:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6640; q=dns/txt; s=iport; t=1480925623; x=1482135223; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=CXO1hr8Et0Sf/hUvoSIp8T4xHez0/vQCo2Js4RvCMbI=; b=kLx729q2eOApudPZtJYtyfQSJMSt5r/bGjEjCMpbejdNbhj7Y5SyqhQs zfy192LNqEa8JQfAXQAPFWDM09SCUsYqkOKHKzog2Gj1QRYWBsbkPsaPA Unkgj/2HgENfhbFYhxXxMQ37+OI6fedZ5AzjGFbEFqTUWuL5UYlJrYo5X U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BlAwC4IEVY/4ENJK1dGgEBAQECAQEBA?= =?us-ascii?q?QgBAQEBgzgBAQEBAR+BDFQHjUCXCYd0jQmCCIYiAhqCDj8UAQIBAQEBAQEBYii?= =?us-ascii?q?EaAEBAQMBIxEzEgULAgEIGAICJgICAh8RFRACBA4FiFUDDwisF4IphywNg3YBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAR2BC4UzgX2BVoEIgkiBUgsGARwXgm0tgjAFmjE?= =?us-ascii?q?1AYlag1uDYYFyhH2JTodggW2ENYQMAR83YTgjDgEBgykcgV1yhiAOF4EKgQ0BA?= =?us-ascii?q?QE?=
X-IronPort-AV: E=Sophos;i="5.33,303,1477958400"; d="scan'208";a="182391345"
Received: from alln-core-9.cisco.com ([173.36.13.129]) by rcdn-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 05 Dec 2016 08:13:42 +0000
Received: from XCH-RTP-006.cisco.com (xch-rtp-006.cisco.com [64.101.220.146]) by alln-core-9.cisco.com (8.14.5/8.14.5) with ESMTP id uB58Dfjq027127 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 5 Dec 2016 08:13:42 GMT
Received: from xch-rtp-010.cisco.com (64.101.220.150) by XCH-RTP-006.cisco.com (64.101.220.146) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Mon, 5 Dec 2016 03:13:41 -0500
Received: from xch-rtp-010.cisco.com ([64.101.220.150]) by XCH-RTP-010.cisco.com ([64.101.220.150]) with mapi id 15.00.1210.000; Mon, 5 Dec 2016 03:13:41 -0500
From: "Stefano Previdi (sprevidi)" <sprevidi@cisco.com>
To: Stewart Bryant <stewart.bryant@gmail.com>
Thread-Topic: Conflict resolution - a plea for simplicity
Thread-Index: AQHSTMU9Dhcl5eQeC0Ge/s+27gd7mqD4R00AgAB8kACAAJVlAA==
Date: Mon, 5 Dec 2016 08:13:41 +0000
Message-ID: <AB0663EA-702A-4A8B-BC57-94B24403CAAE@cisco.com>
References: <ca931d36-8be4-6578-0b10-91acc8428d0e@gmail.com> <9842E1E3-C627-4147-BF14-B0E834060B1C@cisco.com> <7e8b1d3d-4742-80d9-d0f0-3f65b094f281@gmail.com>
In-Reply-To: <7e8b1d3d-4742-80d9-d0f0-3f65b094f281@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.61.85.10]
Content-Type: text/plain; charset="utf-8"
Content-ID: <AA98EC094EEC3A45B2542CD1B6E28830@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/KQOFv5q3e74jMh6KcBomOA13uUE>
Cc: "draft-ietf-spring-conflict-resolution@ietf.org" <draft-ietf-spring-conflict-resolution@ietf.org>, "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] Conflict resolution - a plea for simplicity
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 Dec 2016 08:13:45 -0000

DQo+IE9uIERlYyA1LCAyMDE2LCBhdCAxMjoxOSBBTSwgU3Rld2FydCBCcnlhbnQgPHN0ZXdhcnQu
YnJ5YW50QGdtYWlsLmNvbT4gd3JvdGU6DQo+IA0KPiANCj4gDQo+IE9uIDA0LzEyLzIwMTYgMTU6
NTMsIFN0ZWZhbm8gUHJldmlkaSAoc3ByZXZpZGkpIHdyb3RlOg0KPj4gU3Rld2FydCwNCj4+IA0K
Pj4gdGhhbmtzIGZvciB0aGUgZmVlZGJhY2suDQo+PiANCj4+IEp1c3QgdG8gZ2l2ZSB5b3UgYW4g
dXBkYXRlLCB0aGUgd29yayBjdXJyZW50bHkgZG9uZSBpbiB0aGUgY29udGV4dCBvZiB0aGUgY29u
ZmxpY3QtcmVzb2x1dGlvbiBkcmFmdCBhaW1lZCB0bywgaW5kZWVkLCBsaW1pdC9yZWR1Y2UgdGhl
IGltcGFjdCBvZiBhIG1pc2NvbmZpZ3VyYXRpb24gaW4gcHJlc2VuY2Ugb2YgY29uZmxpY3Rpbmcg
cHJlZml4L3NpZCBtYXBwaW5ncy4NCj4+IA0KPj4gSXQgaXMgYmFzZWQgb24gdGhlIGNvbmNlcHQg
dGhhdCB0aGVyZeKAmXMgbm8gc3VjaCDigJxiYWTigJ0gb3Ig4oCcd3JvbmfigJ0gcHJlZml4L3Np
ZCBtYXBwaW5nIGFzIGxvbmcgYXMgYWxsIG5vZGVzIHVzZSB0aGUgc2FtZS4NCj4gVGhpcyBwaGls
b3NvcGh5IGFsd2F5cyBzZWVtcyBpbmNvcnJlY3QgdG8gbWUuDQo+IA0KPiBJZiB0aGUgb3BlcmF0
b3IgcGxhbmVkIGZvciBzb21lIHRyYWZmaWMgdG8gZ28gdmlhIGFuIFNSIHJvdXRlLCB0aGVuIG11
c3QgaGF2ZSBkb25lIGl0IGZvciBhIHJlYXNvbi4gVGhhdCByZWFzb24gbWF5IGhhdmUgYmVlbiB0
byBwcm90ZWN0IGEgcHJvcGVydHkgb2YgdGhlIHNlcnZpY2UsIG9yIHRvIHByb3RlY3Qgb3RoZXIg
dHJhZmZpYyBmcm9tIHRoYXQgc2VydmljZS4gRWl0aGVyIHdheSwgaWYgaXQgaXMgaW50ZW5kZWQg
dG8gZ28gdmlhIGFuIFNSIHBhdGgsIGl0IHJlYWxseSBzaG91bGQgZ28gdmlhIHRoYXQgcGF0aCBh
bmQgbm90IHZpYSBzb21lIG90aGVyIHBhdGggdGhhdCB0aGUgbmV0d29yayBpcyBndWVzc2luZyBh
dC4NCg0KDQphbiDigJxTUiByb3V0ZeKAnSBpcyBub3RoaW5nIGVsc2UgdGhhbiBhIHJvdXRlIGZv
ciB3aGljaCB5b3UgaGF2ZSBhIGxhYmVsLg0KDQp0aGUgdmFsdWUgdGhpcyBsYWJlbCAob3IgaW5k
ZXgpIGhhcyBpcyBtb3N0bHkgaXJyZWxldmFudCBhcyBsb25nIGFzIGFsbCBub2RlcyBjb25zaXN0
ZW50bHkgdXNlIHRoZSBzYW1lLg0KDQpUaGlzIGlzIGhvdyBTUiB3b3Jrcy4gUGxlYXNlIHJlZmVy
IHRvIHRoZSBsb25nIGVtYWlsIHRocmVhZCBvbiB0aGlzIG1hdHRlci4NCg0Kcy4NCg0KDQoNCj4g
DQo+IA0KPj4gDQo+PiBIb3dldmVyLCB3aGlsZSB3ZSBjYW1lIHVwIHdpdGggYSB2ZXJ5IGVmZmlj
aWVudCBzY2hlbWUsIGNvbXBsZXhpdHkgaXMgYWxzbyBwYXJ0IG9mIHRoZSBwaWN0dXJlIGZyb20g
YW4gaW1wbGVtZW50YXRpb24sIGRlcGxveW1lbnQsIHRyb3VibGVzaG9vdGluZyBwZXJzcGVjdGl2
ZS4gTm90IHRvIG1lbnRpb24gdGhlIGZ1biB3ZeKAmXJlIGdvaW5nIHRvIGhhdmUgaW4gZG9pbmcg
aW50ZXJvcGVyYWJpbGl0eSB0ZXN0cy4NCj4gUmlnaHQsIHNvIHdoeSBub3QganVzdCBkbyBzb21l
dGhpbmcgcmVhbGx5IHNpbXBsZS4NCj4gDQo+PiANCj4+IFNvLCB0aGUgYXV0aG9ycyBoYXZlIHJh
aXNlZCB0aGlzIGNvbmNlcm4gYSBmZXcgdGltZXMgYnV0IGFwcGFyZW50bHkgdGhlIG9ubHkgZmVl
ZGJhY2sgd2UgZ290IChzbyBmYXIpIGZyb20gdGhlIFdHIHdhcyBtb3JlIG9yaWVudGVkIG9uIHRo
ZSBlZmZpY2llbmN5IG9mIHRoZSBjb25mbGljdC1yZXNvbHV0aW9uIGFsZ29yaXRobSwgcmVnYXJk
bGVzcyB0aGUgc2ltcGxpY2l0eSAod2hpY2ggaXMgZmluZSBieSBtZSBhcyBsb25nIGFzIGl0IGlz
IHdlbGwgdW5kZXJzdG9vZCkuDQo+PiANCj4+IExlcyBHaW5zYmVyZyBpcyBhYm91dCB0byBwcm9w
b3NlIGEgc2ltcGxpZmljYXRpb24gb2YgdGhlIGFsZ29yaXRobSBpbiBvcmRlciB0byAocmUpaW50
cm9kdWNlIHRoZSBzaW1wbGljaXR5IG9mIHRoZSBvcmlnaW5hbCBwcm9wb3NhbCAob3IgYXQgbGVh
c3QgdHJ5IHRvIGltcHJvdmUgc2ltcGxpY2l0eSBpbiB0aGUgY3VycmVudCBzY2hlbWUpLg0KPiBP
SywgbG9vayBmb3J3YXJkIHRvIHNlZWluZyBpdC4NCj4gDQo+IC0gUw0KPiANCj4gDQo+PiBUaGFu
a3MuDQo+PiBzLg0KPj4gDQo+PiANCj4+PiBPbiBEZWMgMiwgMjAxNiwgYXQgNjo1NCBQTSwgU3Rl
d2FydCBCcnlhbnQgPHN0ZXdhcnQuYnJ5YW50QGdtYWlsLmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4g
VGhlcmUgd2FzIHNvbWUgZGlzY3Vzc2lvbiBvbiB0aGUgY29uZmxpY3QgcmVzb2x1dGlvbiBkcmFm
dCBhdCBJRVRGOTcNCj4+PiB0aGF0IGdvdCBjdXQgb2ZmIHdpdGggYSByZXF1ZXN0IHRvIGRpc2N1
c3Mgb24gdGhlIGxpc3QuDQo+Pj4gDQo+Pj4gQXMgSSB1bmRlcnN0YW5kIHRoZSBzaXR1YXRpb24s
IHdlIGhhdmUgYSBtaXNjb25maWd1cmF0aW9uIGluIHRoZSBuZXR3b3JrLA0KPj4+IGFuZCB3ZSBh
cmUgYmVpbmcgZW5jb3VyYWdlZCB0byB0YWtlIGFuIGVzc2VudGlhbGx5IGFnZ3Jlc3NpdmUgc3Ry
YXRlZ3kNCj4+PiBvZiBwaWNraW5nIG9uZSBvZiB0aGUgY29uZmlndXJhdGlvbnMgYW5kIGFzc3Vt
aW5nIHRoYXQgbXVzdCBiZSByaWdodA0KPj4+IGluIG9yZGVyIHRvIGNvbnRpbnVlIGZvcndhcmRp
bmcgdHJhZmZpYy4gSXQgc2VlbXMgdG8gbWUgdGhhdCB3ZSBhcmUNCj4+PiB0b3NzaW5nIGEgY29p
biBoZXJlIGFuZCB3aGlsc3Qgd2UgY291bGQgYmUgc2VuZGluZyB0cmFmZmljIHRoZQ0KPj4+IHJp
Z2h0IHdheSB3ZSBjb3VsZCBhbHNvIGJlIHNlbmRpbmcgaXQgdGhlIHdyb25nIHdheSB3aXRoIGJh
ZA0KPj4+IGNvbnNlcXVlbmNlcyBpbiB0ZXJtcyBvZiBtaXNkZWxpdmVyeSBvciBpbmR1Y2luZyBj
b25nZXN0aW9uLg0KPj4+IA0KPj4+IFRoZSBhbHRlcm5hdGl2ZSBzdHJhdGVneSBpcyB0byBub3Rl
IHRoZSBjb25mbGljdCBhbmQgbm90IGJlbGlldmUgZWl0aGVyDQo+Pj4gcm91dGVyLiBUaGlzIG1v
cmUgY29uc2VydmF0aXZlIHN0cmF0ZWd5IHNlZW1zIHRoZSBiZXR0ZXIgYXBwcm9hY2ggZm9yDQo+
Pj4gYSBudW1iZXIgb2YgcmVhc29uczoNCj4+PiANCj4+PiAxKSBUcmFmZmljIHdpbGwgbm90IGJl
IG1pc2RlbGl2ZXJlZCwgb3IgdXNlIHVuaW50ZW5kZWQgcGFydHMgb2YgdGhlIG5ldHdvcmsuDQo+
Pj4gDQo+Pj4gMikgVHJhZmZpYywgIHdhcyBiZWluZyByb3V0ZWQgdmlhIFNSIHJhdGhlciB0aGFu
IHNpbXBsZSBzaG9ydGVzdCBwYXRoDQo+Pj4gZm9yIGEgcmVhc29uIGFuZCBzbyB5b3Ugc2hvdWxk
IG5vdCB0cnkgdG8gZ3Vlc3MgdGhlIG9wZXJhdG9ycyBkZWNpc2lvbiwNCj4+PiB5b3Ugc2hvdWxk
IHJpZ2lkbHkgZXhlY3V0ZSBpdC4NCj4+PiANCj4+PiAzKSBJdCBzZWVtcyB0byBtZSB0aGF0IHRo
ZSBhZ2dyZXNzaXZlIGFwcHJvYWNoIGZhaWxzIDcgb2YgUm9zcyBDYWxsb25zDQo+Pj4gVHdlbHZl
IHRydXRocyAoUkZDMTkyNSkuIFRoZXNlIHdlcmUgcHVibGlzaGVkIG9uIDEvQXByaWwsIGJ1dCB0
aGUgcmVhbA0KPj4+IGpva2UgaXMgdGhhdCB0aGV5IEFSRSB1c2VmdWwgdHJ1dGhzLCBzbyBmb3Jn
ZXQgYWJvdXQgdGhlIGRhdGUuIDMsDQo+Pj4gNCwgKjUqLCAqNiosIDgsIHByb2JhYmx5IDEwLCBj
ZXJ0YWlubHkgMTIuDQo+Pj4gDQo+Pj4gNCkgRmluYWxseSB0aGVyZSBpcyB0aGUgcHJvdG9jb2wg
MTAxIHJ1bGUgc3RhdGluZyB0aGF0IHRoZSBleGNlcHRpb24NCj4+PiBwYXRoIE1VU1QgYmUgc2lt
cGxlLCBiZWNhdXNlIGl0IGlzIHJhcmVseSBleGVjdXRlZCBhbmQgdGh1cyBvZnRlbg0KPj4+IGhv
c3RzIG1vc3Qgb2YgdGhlIGJ1Z3MuDQo+Pj4gDQo+Pj4gUG9pbnQgNCBpcyBwYXJ0aWN1bGFybHkg
aW1wb3J0YW50LiBXaGF0IHdlIGhhdmUgaW4gdGhlIGRyYWZ0IGlzDQo+Pj4gY29tcGxleCBhbmQg
ZGlmZmljdWx0IHRvIHRlc3Qgb24gYSBsaXZlIG5ldHdvcmssIGFuZCB5ZXQgaXQgaXMNCj4+PiBv
bmx5IHRoZXJlIHRvIHRha2UgYWN0aW9uIHdoZW4gc29tZW9uZSBtYWtlcyBhIG1pc3Rha2UuDQo+
Pj4gRXhjZXB0aW9uIGNvZGUgbGlrZSB0aGlzIGlzIHVzdWFsbHkgdGhlIENpbmRlcmVsbGEgaW4g
dGhlDQo+Pj4gc3lzdGVtLCBydXNoZWQgaW4gYXQgdGhlIGVuZCBvZiBkZXZlbG9wbWVudCBhbmQg
aGFyZGx5IHRlc3RlZC4NCj4+PiANCj4+PiBJdCBpcyB1c3VhbGx5IGJ5IGZhciB0aGUgYmVzdCBh
cHByb2FjaCB0byBhc3NlcnQgdGhhdCB0aGUNCj4+PiBtaXNjb25maWd1cmF0aW9uIHNob3VsZCBu
ZXZlciBoYXBwZW4sIGhhdmUgYSB2ZXJ5IHNpbXBsZSB0ZXN0DQo+Pj4gZG8gZGV0ZWN0IGl0IGFu
ZCBkbyBzb21ldGhpbmcgdmVyeSBzaW1wbGUgYnkgZWZmZWN0aXZlIHdoZW4NCj4+PiBpdCBpcyBk
ZXRlY3RlZC4gR2l2ZW4gdGhhdCByb3V0aW5nIG9ubHkgd29ya3MgYmVjYXVzZQ0KPj4+IHJvdXRl
cnMgdGVsbCB0aGUgdHJ1dGgsIGFuZCBjbGVhcmx5IG9uZSBvciBib3RoIG9mIHRoZSByb3V0ZXJz
DQo+Pj4gaGFzIGJyZWFjaGVkIHRoYXQgdHJ1c3QsIHRoZSBiZXN0IGFwcHJvYWNoIGlzIHRvIHRy
dXN0IG5laXRoZXIuDQo+Pj4gDQo+Pj4gV2hhdCBpcyB1bmNsZWFyIHRvIG1lIGlzIHdoYXQgdG8g
ZG8gd2l0aCB0aGUgdHJhZmZpYywgaS5lLiBkbw0KPj4+IHlvdSBkZWdyYWRlIGl0IHRvIHRoZSBi
YXNlIHBhdGgsIG9yIGRvIHlvdSBkcm9wIGl0LiBJIHdvdWxkIHRoaW5rDQo+Pj4gdGhhdCB0aGUg
bGF0dGVyIGlzIHRoZSBtb3JlIGNvbnNlcnZhdGl2ZSwgYmVjYXVzZSBwcmVzdW1hYmx5IGl0DQo+
Pj4gd2FzIHB1dCBpbiB0aGUgU1IgcGF0aCBmb3IgYSByZWFzb24sIGFuZCBzbyBTSE9VTEQgYmUg
Y2FycmllZCBvbg0KPj4+IGFuIFNSIHBhdGguDQo+Pj4gDQo+Pj4gLSBTdGV3YXJ0DQo+Pj4gDQo+
IA0KDQo=


From nobody Mon Dec  5 08:28:47 2016
Return-Path: <acee@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BCE95129542 for <spring@ietfa.amsl.com>; Mon,  5 Dec 2016 08:28:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.417
X-Spam-Level: 
X-Spam-Status: No, score=-17.417 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id g_wc9fQeaZau for <spring@ietfa.amsl.com>; Mon,  5 Dec 2016 08:28:43 -0800 (PST)
Received: from alln-iport-6.cisco.com (alln-iport-6.cisco.com [173.37.142.93]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6B571129B05 for <spring@ietf.org>; Mon,  5 Dec 2016 08:28:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=19879; q=dns/txt; s=iport; t=1480955323; x=1482164923; h=from:to:subject:date:message-id:mime-version; bh=TlW7eOZL1KboDYvnUavzvAxsVW48FVwNLK/Z87VjYpA=; b=BjH19D2RD0GazQmRQcQNzv7Zz8GZc8MkCE3psF0aab/+jKH9IeG6ePzA 2ikCP22U45Iu/y/xF8hYUi1P+bwWPryw9JL9T6ZRHoaoNuQd+AmnZQTd3 KYNbZESOYSLi/OrLG1aCZYy84pFETYdnz5yFdPtOnsNLj6fR/biArBVKF o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0C4AwDnlEVY/4wNJK1dGgEBAQECAQEBA?= =?us-ascii?q?QgBAQEBgnNFAQEBAQEfWoEGB6RJlH2CCIYiAoISQBMBAgEBAQEBAQFiKIRoAQY?= =?us-ascii?q?tXgEIEQMBAig5FAkKBAESG4hUrS2LOwEBAQEBAQQBAQEBAQEhixmEaBaFKwWUf?= =?us-ascii?q?IVqAZEWkD2OAoQMASABNUlQg1wcgV1yh2yBDQEBAQ?=
X-IronPort-AV: E=Sophos;i="5.33,305,1477958400";  d="scan'208,217";a="356896804"
Received: from alln-core-7.cisco.com ([173.36.13.140]) by alln-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 05 Dec 2016 16:28:42 +0000
Received: from XCH-RTP-005.cisco.com (xch-rtp-005.cisco.com [64.101.220.145]) by alln-core-7.cisco.com (8.14.5/8.14.5) with ESMTP id uB5GSgXY025703 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL) for <spring@ietf.org>; Mon, 5 Dec 2016 16:28:42 GMT
Received: from xch-rtp-015.cisco.com (64.101.220.155) by XCH-RTP-005.cisco.com (64.101.220.145) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Mon, 5 Dec 2016 11:28:41 -0500
Received: from xch-rtp-015.cisco.com ([64.101.220.155]) by XCH-RTP-015.cisco.com ([64.101.220.155]) with mapi id 15.00.1210.000; Mon, 5 Dec 2016 11:28:41 -0500
From: "Acee Lindem (acee)" <acee@cisco.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AQHSTxSjpdbpy2EEiUGYnIhp/Ij4bw==
Date: Mon, 5 Dec 2016 16:28:41 +0000
Message-ID: <D46AFE2D.8E978%acee@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.116.152.204]
Content-Type: multipart/alternative; boundary="_000_D46AFE2D8E978aceeciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/MaXJFHFsTzRFfOBPznBcXRkogm8>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 Dec 2016 16:28:46 -0000

--_000_D46AFE2D8E978aceeciscocom_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

I like the proposal below much better than keeping track of the overlapping=
 and non-overlapping ranges and dynamically resolving conflicts as the rout=
ing state changes. While providing a generalized solution to provide such r=
esolution is an interesting problem, I don=92t believe that the complexity =
justifies the benefit for what are configuration errors.
Thanks,
Acee

From: spring <spring-bounces@ietf.org<mailto:spring-bounces@ietf.org>> on b=
ehalf of "Les Ginsberg (ginsberg)" <ginsberg@cisco.com<mailto:ginsberg@cisc=
o.com>>
Date: Sunday, December 4, 2016 at 7:04 PM
To: "spring@ietf.org<mailto:spring@ietf.org>" <spring@ietf.org<mailto:sprin=
g@ietf.org>>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don=92t overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









--_000_D46AFE2D8E978aceeciscocom_
Content-Type: text/html; charset="Windows-1252"
Content-ID: <964D0036610F3048917CD21089AEDA53@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
</head>
<body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-lin=
e-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-fami=
ly: Calibri, sans-serif;">
<div>I like the proposal below much better than keeping track of the overla=
pping and non-overlapping ranges and dynamically resolving conflicts as the=
 routing state changes. While providing a generalized solution to provide s=
uch resolution is an interesting
 problem, I don=92t believe that the complexity justifies the benefit for w=
hat are configuration errors. &nbsp;</div>
<div>Thanks,</div>
<div>Acee&nbsp;</div>
<div><br>
</div>
<span id=3D"OLK_SRC_BODY_SECTION">
<div style=3D"font-family:Calibri; font-size:11pt; text-align:left; color:b=
lack; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM:=
 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid;=
 BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style=3D"font-weight:bold">From: </span>spring &lt;<a href=3D"mailto:=
spring-bounces@ietf.org">spring-bounces@ietf.org</a>&gt; on behalf of &quot=
;Les Ginsberg (ginsberg)&quot; &lt;<a href=3D"mailto:ginsberg@cisco.com">gi=
nsberg@cisco.com</a>&gt;<br>
<span style=3D"font-weight:bold">Date: </span>Sunday, December 4, 2016 at 7=
:04 PM<br>
<span style=3D"font-weight:bold">To: </span>&quot;<a href=3D"mailto:spring@=
ietf.org">spring@ietf.org</a>&quot; &lt;<a href=3D"mailto:spring@ietf.org">=
spring@ietf.org</a>&gt;<br>
<span style=3D"font-weight:bold">Subject: </span>[spring] SID Conflict Reso=
lution: A Simpler Proposal<br>
</div>
<div><br>
</div>
<blockquote id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style=3D"BORDER-LEFT:=
 #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micro=
soft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" x=
mlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:/=
/www.w3.org/TR/REC-html40">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Microsoft PhagsPa";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri","sans-serif";}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don=92t overengineer the solution<o:p></o:p></p=
>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</blockquote>
</span>
</body>
</html>

--_000_D46AFE2D8E978aceeciscocom_--


From nobody Mon Dec  5 08:48:09 2016
Return-Path: <jdrake@juniper.net>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 74F0B129BC8 for <spring@ietfa.amsl.com>; Mon,  5 Dec 2016 08:48:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=junipernetworks.onmicrosoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8TTsECLvYmG4 for <spring@ietfa.amsl.com>; Mon,  5 Dec 2016 08:48:03 -0800 (PST)
Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0095.outbound.protection.outlook.com [104.47.34.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8EC3B129B63 for <spring@ietf.org>; Mon,  5 Dec 2016 08:46:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=junipernetworks.onmicrosoft.com; s=selector1-juniper-net; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=rsWsgzSUJAE0Jus3UmRGg3uGf/sbB7+YTk6DyjTW27k=; b=WwkCM/zLgQs2HXeRaAjedK5GRLRQImQsxOOaGMCw4mcS2kkPk+Gq1YzZfQWhsq44XRWT7fgIXzOU7QEJy1io66JyCDP+TptVpv27bQju7cnf2LfPG8tQgQS3gyI15wodwOx5rKKJDEaa58fW3Op+FK+UtHgvMybh3/MxGOSAB6E=
Received: from BN6PR05MB2995.namprd05.prod.outlook.com (10.173.19.13) by BN6PR05MB2993.namprd05.prod.outlook.com (10.173.19.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.771.4; Mon, 5 Dec 2016 16:46:55 +0000
Received: from BN6PR05MB2995.namprd05.prod.outlook.com ([10.173.19.13]) by BN6PR05MB2995.namprd05.prod.outlook.com ([10.173.19.13]) with mapi id 15.01.0771.006; Mon, 5 Dec 2016 16:46:55 +0000
From: John E Drake <jdrake@juniper.net>
To: "Acee Lindem (acee)" <acee@cisco.com>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AQHSTxSjpdbpy2EEiUGYnIhp/Ij4b6D5kDYq
Date: Mon, 5 Dec 2016 16:46:55 +0000
Message-ID: <4DC300D3-C9F5-47EB-9AB2-7BAE2FF304BF@juniper.net>
References: <D46AFE2D.8E978%acee@cisco.com>
In-Reply-To: <D46AFE2D.8E978%acee@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=jdrake@juniper.net; 
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [107.19.189.2]
x-ms-office365-filtering-correlation-id: 7a9ac305-da13-44cc-2149-08d41d2e526f
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BN6PR05MB2993;
x-microsoft-exchange-diagnostics: 1; BN6PR05MB2993; 7:5xPisFPc1bRA+gum3+yJ/bI1wiGyQWMeAD1jhQfq+i/Vd22IhTxpN9OWAhnrz9OGADWpjAeRTUvSD7wtNLO4xXwPj/dvyjeU9WWrUFs60d69IqmGnDROmVqggeqCnHNGIHbPtj5s+RUcv17NfUSrSCrqDtyR6Yytcwu/Nzel/hfm5SWcXi4JIgrCPY9kxy4spKjSS9m80rsr5YlsSk8V1NtRoss4kdNkl5LRp2jKA60/GfdK2/K9brLs+Sbh603pRFXVAkvN6ygrV5vfVLuhzp9nlFf+HuFLZKvY/nluB6phOFzo6h2/5u8/6MlMR/JgRGbFbsAfqvuUHzcwAQjbUK4KbXhXin7MAXk6LBAxAKy6Al+W/r2Bka6aOTopZSLmSU6UQR5Tek4HCs+dKEIWcY6neEINoFzepU/IS8120O8A742ED4IFqzdjmcsHkz4WzebfYzsWoH8dDHCpEKbfow==
x-microsoft-antispam-prvs: <BN6PR05MB29933ADEDB64B63247F774D7C7830@BN6PR05MB2993.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(95692535739014)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(6072148); SRVR:BN6PR05MB2993; BCL:0; PCL:0; RULEID:; SRVR:BN6PR05MB2993; 
x-forefront-prvs: 0147E151B5
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(7916002)(24454002)(189002)(377454003)(199003)(122556002)(38730400001)(39410400001)(4326007)(101416001)(7736002)(5003630100001)(7906003)(76176999)(54356999)(606004)(50986999)(189998001)(229853002)(6486002)(3846002)(36756003)(77096006)(102836003)(33656002)(6116002)(790700001)(97736004)(7846002)(561944003)(106356001)(39450400002)(39850400001)(3280700002)(68736007)(110136003)(2950100002)(106116001)(81156014)(3660700001)(105586002)(8676002)(66066001)(92566002)(5660300001)(81166006)(6512006)(39840400001)(6916009)(82746002)(2900100001)(2906002)(8936002)(83716003)(9886003)(6506006)(86362001)(99286002)(39860400001)(104396002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR05MB2993; H:BN6PR05MB2995.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_4DC300D3C9F547EB9AB27BAE2FF304BFjunipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2016 16:46:55.3257 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR05MB2993
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/BVvFOn-xDf3kOxk87ZIa3AyMkTc>
Cc: "Les Ginsberg \(ginsberg\)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 Dec 2016 16:48:06 -0000

--_000_4DC300D3C9F547EB9AB27BAE2FF304BFjunipernet_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

I agree with Acee

Sent from my iPhone

On Dec 5, 2016, at 11:28 AM, Acee Lindem (acee) <acee@cisco.com<mailto:acee=
@cisco.com>> wrote:

I like the proposal below much better than keeping track of the overlapping=
 and non-overlapping ranges and dynamically resolving conflicts as the rout=
ing state changes. While providing a generalized solution to provide such r=
esolution is an interesting problem, I don=92t believe that the complexity =
justifies the benefit for what are configuration errors.
Thanks,
Acee

From: spring <spring-bounces@ietf.org<mailto:spring-bounces@ietf.org>> on b=
ehalf of "Les Ginsberg (ginsberg)" <ginsberg@cisco.com<mailto:ginsberg@cisc=
o.com>>
Date: Sunday, December 4, 2016 at 7:04 PM
To: "spring@ietf.org<mailto:spring@ietf.org>" <spring@ietf.org<mailto:sprin=
g@ietf.org>>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don=92t overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









_______________________________________________
spring mailing list
spring@ietf.org<mailto:spring@ietf.org>
https://www.ietf.org/mailman/listinfo/spring

--_000_4DC300D3C9F547EB9AB27BAE2FF304BFjunipernet_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
</head>
<body dir=3D"auto">
<div>I agree with Acee<br>
<br>
Sent from my iPhone</div>
<div><br>
On Dec 5, 2016, at 11:28 AM, Acee Lindem (acee) &lt;<a href=3D"mailto:acee@=
cisco.com">acee@cisco.com</a>&gt; wrote:<br>
<br>
</div>
<blockquote type=3D"cite">
<div>
<div>I like the proposal below much better than keeping track of the overla=
pping and non-overlapping ranges and dynamically resolving conflicts as the=
 routing state changes. While providing a generalized solution to provide s=
uch resolution is an interesting
 problem, I don=92t believe that the complexity justifies the benefit for w=
hat are configuration errors. &nbsp;</div>
<div>Thanks,</div>
<div>Acee&nbsp;</div>
<div><br>
</div>
<span id=3D"OLK_SRC_BODY_SECTION">
<div style=3D"font-family:Calibri; font-size:11pt; text-align:left; color:b=
lack; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM:=
 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid;=
 BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style=3D"font-weight:bold">From: </span>spring &lt;<a href=3D"mailto:=
spring-bounces@ietf.org">spring-bounces@ietf.org</a>&gt; on behalf of &quot=
;Les Ginsberg (ginsberg)&quot; &lt;<a href=3D"mailto:ginsberg@cisco.com">gi=
nsberg@cisco.com</a>&gt;<br>
<span style=3D"font-weight:bold">Date: </span>Sunday, December 4, 2016 at 7=
:04 PM<br>
<span style=3D"font-weight:bold">To: </span>&quot;<a href=3D"mailto:spring@=
ietf.org">spring@ietf.org</a>&quot; &lt;<a href=3D"mailto:spring@ietf.org">=
spring@ietf.org</a>&gt;<br>
<span style=3D"font-weight:bold">Subject: </span>[spring] SID Conflict Reso=
lution: A Simpler Proposal<br>
</div>
<div><br>
</div>
<blockquote id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style=3D"BORDER-LEFT:=
 #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micro=
soft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" x=
mlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:/=
/www.w3.org/TR/REC-html40">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Microsoft PhagsPa";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri","sans-serif";}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don=92t overengineer the solution<o:p></o:p></p=
>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</blockquote>
</span></div>
</blockquote>
<blockquote type=3D"cite">
<div><span>_______________________________________________</span><br>
<span>spring mailing list</span><br>
<span><a href=3D"mailto:spring@ietf.org">spring@ietf.org</a></span><br>
<span><a href=3D"https://www.ietf.org/mailman/listinfo/spring">https://www.=
ietf.org/mailman/listinfo/spring</a></span><br>
</div>
</blockquote>
</body>
</html>

--_000_4DC300D3C9F547EB9AB27BAE2FF304BFjunipernet_--


From nobody Mon Dec  5 10:43:35 2016
Return-Path: <jefftant.ietf@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E94D6129C80 for <spring@ietfa.amsl.com>; Mon,  5 Dec 2016 10:43:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GHCDh8Vu_gnA for <spring@ietfa.amsl.com>; Mon,  5 Dec 2016 10:43:31 -0800 (PST)
Received: from mail-pg0-x22c.google.com (mail-pg0-x22c.google.com [IPv6:2607:f8b0:400e:c05::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C183D129C78 for <spring@ietf.org>; Mon,  5 Dec 2016 10:43:31 -0800 (PST)
Received: by mail-pg0-x22c.google.com with SMTP id f188so138907441pgc.3 for <spring@ietf.org>; Mon, 05 Dec 2016 10:43:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=user-agent:date:subject:from:to:message-id:thread-topic:references :in-reply-to:mime-version; bh=h9R6nYfOkbILJtj2JyLdxJ0V8rLFqFqXehXvUVxk7MI=; b=zuErOqmF4W6DZXasTDuLDmaG3iu49+TSmM3twEqbXi9zNMzg/2JZC23XwWJkVsCuSy tl2YU85wQgH1xQoAyyFQe5uVNQ7WI0wgqV8WKHjIAmdNz30vv2UCkjqfTTCzuV32OJuD ExCFg6TOogZOMsGbZNWyRe2tye+7FeMmKcaYqUaJ7ALXk8ThJAMYLQGemYvK1QZobvTu 7vSt2Ez16Szjx3Gl+/00qfHVzyMxwo0wxGaAyQJv9249wAYr+sMR/G8iWKSHDgXzAm9X fRqHpHzRyjHUXchx3w5A3GeUmkQdl6Bjfk0f6e4NlT7qhuQVaMUD9mp3MeRFiNNIdPmA 9sXQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:user-agent:date:subject:from:to:message-id :thread-topic:references:in-reply-to:mime-version; bh=h9R6nYfOkbILJtj2JyLdxJ0V8rLFqFqXehXvUVxk7MI=; b=nAusIgU9qxFQX+IiBP+ZmJ42dUkQ/ER4EI4ih9tBbwTmmuIb4SIeCGjQVveXaDwg+E D866VwIA2r0JciAVAaTikpbpmZNopQGi+cBu2N2YIZ3JSsbrzWgJjTFyKPAtEPgVWQNb TD6lDCkohT4/XxSd5mze6kYahqyP65xOoz0SuzHmlyoDXZpw8I7eyYV6xneo/DZvTpfF RkhQmLMTGYhIQIFP+LlqvULuLArqHuGpeHD+07BitNel31cbwfyAG85/zw/9SvB8xIo5 lwJrG0ynk5wA2j4L84DHKz3MScloVR3rfkUiIXpfHh0iqW+l8CszDXbMVCs2MG6rFXLd +GTQ==
X-Gm-Message-State: AKaTC002U8bGjCgY37TnZTn7DdlDxic4n6y8GMxl2dLVym5EpG6HPecCdiJPaR3t1t0twg==
X-Received: by 10.84.204.133 with SMTP id b5mr127876081ple.49.1480963411298; Mon, 05 Dec 2016 10:43:31 -0800 (PST)
Received: from [192.168.255.243] (107-1-141-74-ip-static.hfc.comcastbusiness.net. [107.1.141.74]) by smtp.gmail.com with ESMTPSA id j68sm29047587pfk.95.2016.12.05.10.43.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Dec 2016 10:43:30 -0800 (PST)
User-Agent: Microsoft-MacOutlook/f.1c.1.161117
Date: Mon, 05 Dec 2016 10:43:32 -0800
From: Jeff Tantsura <jefftant.ietf@gmail.com>
To: "Acee Lindem (acee)" <acee@cisco.com>, "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Message-ID: <9BDC014E-7075-480F-A828-495407DB99CD@gmail.com>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
References: <D46AFE2D.8E978%acee@cisco.com>
In-Reply-To: <D46AFE2D.8E978%acee@cisco.com>
Mime-version: 1.0
Content-type: multipart/alternative; boundary="B_3563779412_1585729212"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/zfV_79IbV9qXN-IhsUulHXqmPz4>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 Dec 2016 18:43:35 -0000

> This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

--B_3563779412_1585729212
Content-type: text/plain;
	charset="UTF-8"
Content-transfer-encoding: quoted-printable

+1

=20

=20

Cheers,

Jeff

=20

=20

From: spring <spring-bounces@ietf.org> on behalf of "Acee Lindem (acee)" <a=
cee@cisco.com>
Date: Monday, December 5, 2016 at 08:28
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spri=
ng@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal

=20

I like the proposal below much better than keeping track of the overlapping=
 and non-overlapping ranges and dynamically resolving conflicts as the routi=
ng state changes. While providing a generalized solution to provide such res=
olution is an interesting problem, I don=E2=80=99t believe that the complexity jus=
tifies the benefit for what are configuration errors. =20

Thanks,

Acee=20

=20

From: spring <spring-bounces@ietf.org> on behalf of "Les Ginsberg (ginsberg=
)" <ginsberg@cisco.com>
Date: Sunday, December 4, 2016 at 7:04 PM
To: "spring@ietf.org" <spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal

=20

When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st=20

presented at IETF 94, the authors defined the following priorities:

=20

1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don=E2=80=99t overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior

=20

The resolution behavior was deliberately the last point because it was=20

considered the least important.

=20

Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors=20

have repeatedly stressed that the solution being proposed=20

("ignore overlap only") was more complex than other offered alternatives an=
d=20

would be more difficult to guarantee interoperability because subtle=20

differences in an implementation could produce different results.

=20

At IETF97 significant feedback was received preferring a simpler solution t=
o=20

the problem. The authors are very sympathetic to this feedback and therefor=
e=20

are proposing a solution based on what the draft defines as the "Ignore"=20

policy - where all entries which are in conflict are ignored. We believe th=
is=20

is far more desirable and aligns with the priorities listed above.

=20

We outline the proposed solution below and would like to receive feedback f=
rom=20

the WG before publishing the next revision of the draft.

=20

   Les (on behalf of the authors)

=20

New Proposal

=20

In the latest revision of the draft "SRMS Preference" was introduced. This=20

provides a way for a numerical preference to be explicitly associated with =
an=20

SRMS advertisement. Using this an operator can indicate which advertisement=
 is=20

to be preferred when a conflict is present. The authors think this is a use=
ful=20

addition and we therefore want to include this in the new solution.

=20

The new preference rule used to resolve conflicts is defined as follows:

=20

A given mapping entry is compared against all mapping entries in the databa=
se=20

with a preference greater than or equal to its own. If there is a conflict,=
=20

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.

=20

Implementation of this policy is defined as follows:

=20

Step 1: Within a single address-family/algorithm/topology sort entries=20

based on preference=20

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts=20

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference=20

Step 4: Starting with the lowest preference entries, resolve SID conflicts=20

using the above preference rule

=20

The output from Step 4 is then the current Active Policy.

=20

Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)

=20

Example 1:

=20

1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)

=20

Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:

=20

(150, 1.1.1.1/32 100 range 100)

=20

Example 2:

=20

1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)

=20

Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries

=20

Active policy:

(150, 2.2.2.1/32 1000 range 1)

=20

Example 3:

=20

1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)

=20

Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.

=20

Active policy:

Empty

=20

Example 4:

=20

1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)

=20

Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.

=20

Active policy:

(150, 1.1.1.1/32 100 range 10)

=20

=20

=20

=20

_______________________________________________ spring mailing list spring@=
ietf.org https://www.ietf.org/mailman/listinfo/spring=20


--B_3563779412_1585729212
Content-type: text/html;
	charset="UTF-8"
Content-transfer-encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:schema=
s-microsoft-com:office:word" xmlns:m=3D"http://schemas.microsoft.com/office/20=
04/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta name=3DTitle c=
ontent=3D""><meta name=3DKeywords content=3D""><meta http-equiv=3DContent-Type conte=
nt=3D"text/html; charset=3Dutf-8"><meta name=3DGenerator content=3D"Microsoft Word 1=
5 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:Calibri;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:Calibri;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:Calibri;}
span.EmailStyle19
	{mso-style-type:personal-reply;
	font-family:Calibri;
	color:windowtext;}
span.msoIns
	{mso-style-type:export-only;
	mso-style-name:"";
	text-decoration:underline;
	color:teal;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style></head><body bgcolor=3Dwhite lang=3DEN-US link=3Dblue vlink=3Dpurple><di=
v class=3DWordSection1><p class=3DMsoNormal>+1<o:p></o:p></p><p class=3DMsoNormal>=
<o:p>&nbsp;</o:p></p><div><p class=3DMsoNormal><span style=3D'font-size:10.5pt;c=
olor:black'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span style=3D'font=
-size:10.5pt;color:black'>Cheers,<o:p></o:p></span></p><p class=3DMsoNormal><s=
pan style=3D'font-size:10.5pt;color:black'>Jeff<o:p></o:p></span></p></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p=
><div style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0i=
n 0in'><p class=3DMsoNormal><b><span style=3D'color:black'>From: </span></b><spa=
n style=3D'color:black'>spring &lt;spring-bounces@ietf.org&gt; on behalf of &q=
uot;Acee Lindem (acee)&quot; &lt;acee@cisco.com&gt;<br><b>Date: </b>Monday, =
December 5, 2016 at 08:28<br><b>To: </b>&quot;Les Ginsberg (ginsberg)&quot; =
&lt;ginsberg@cisco.com&gt;, &quot;spring@ietf.org&quot; &lt;spring@ietf.org&=
gt;<br><b>Subject: </b>Re: [spring] SID Conflict Resolution: A Simpler Propo=
sal</span><span style=3D'font-size:12.0pt;color:black'><o:p></o:p></span></p><=
/div><div><p class=3DMsoNormal><span style=3D'font-family:"Times New Roman"'><o:=
p>&nbsp;</o:p></span></p></div><div><p class=3DMsoNormal>I like the proposal b=
elow much better than keeping track of the overlapping and non-overlapping r=
anges and dynamically resolving conflicts as the routing state changes. Whil=
e providing a generalized solution to provide such resolution is an interest=
ing problem, I don&#8217;t believe that the complexity justifies the benefit=
 for what are configuration errors. &nbsp;<o:p></o:p></p></div><div><p class=
=3DMsoNormal>Thanks,<o:p></o:p></p></div><div><p class=3DMsoNormal>Acee&nbsp;<o:=
p></o:p></p></div><div><p class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div st=
yle=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><=
p class=3DMsoNormal><b><span style=3D'color:black'>From: </span></b><span style=3D=
'color:black'>spring &lt;<a href=3D"mailto:spring-bounces@ietf.org">spring-bou=
nces@ietf.org</a>&gt; on behalf of &quot;Les Ginsberg (ginsberg)&quot; &lt;<=
a href=3D"mailto:ginsberg@cisco.com">ginsberg@cisco.com</a>&gt;<br><b>Date: </=
b>Sunday, December 4, 2016 at 7:04 PM<br><b>To: </b>&quot;<a href=3D"mailto:sp=
ring@ietf.org">spring@ietf.org</a>&quot; &lt;<a href=3D"mailto:spring@ietf.org=
">spring@ietf.org</a>&gt;<br><b>Subject: </b>[spring] SID Conflict Resolutio=
n: A Simpler Proposal<o:p></o:p></span></p></div><div><p class=3DMsoNormal><sp=
an style=3D'font-size:12.0pt;font-family:"Times New Roman"'><o:p>&nbsp;</o:p><=
/span></p></div><blockquote style=3D'border:none;border-left:solid #B5C4DF 4.5=
pt;padding:0in 0in 0in 4.0pt;margin-left:3.75pt;margin-right:0in' id=3D"MAC_OU=
TLOOK_ATTRIBUTION_BLOCKQUOTE"><div><div><p class=3DMsoPlainText>When the probl=
em addressed by draft-ietf-spring-conflict-resolution was first <o:p></o:p><=
/p><p class=3DMsoPlainText>presented at IETF 94, the authors defined the follo=
wing priorities:<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p=
 class=3DMsoPlainText>1)Detect the problem<o:p></o:p></p><p class=3DMsoPlainText=
>2)Report the problem<o:p></o:p></p><p class=3DMsoPlainText>This alerts the ne=
twork operator to the existence of a conflict so that<o:p></o:p></p><p class=
=3DMsoPlainText>the configuration error can be corrected.<o:p></o:p></p><p cla=
ss=3DMsoPlainText>3)Define consistent behavior<o:p></o:p></p><p class=3DMsoPlain=
Text>This avoids mis-forwarding while the conflict exists.<o:p></o:p></p><p =
class=3DMsoPlainText>4)Don&#8217;t overengineer the solution<o:p></o:p></p><p =
class=3DMsoPlainText>Given that it is impossible to know which of the conflict=
ing entries<o:p></o:p></p><p class=3DMsoPlainText>is the correct one, we shoul=
d apply a simple algorithm to resolve the conflict.<o:p></o:p></p><p class=3DM=
soPlainText>5)Agree on the resolution behavior<o:p></o:p></p><p class=3DMsoPla=
inText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>The resolution behavior wa=
s deliberately the last point because it was <o:p></o:p></p><p class=3DMsoPlai=
nText>considered the least important.<o:p></o:p></p><p class=3DMsoPlainText>&n=
bsp;<o:p></o:p></p><p class=3DMsoPlainText>Input was received over the past ye=
ar which emphasized the importance of<o:p></o:p></p><p class=3DMsoPlainText>tr=
ying to &quot;maximize forwarding&quot; in the presence of conflicts. Subseq=
uent<o:p></o:p></p><p class=3DMsoPlainText>revisions of the draft have tried t=
o address this concern. However the authors <o:p></o:p></p><p class=3DMsoPlain=
Text>have repeatedly stressed that the solution being proposed <o:p></o:p></=
p><p class=3DMsoPlainText>(&quot;ignore overlap only&quot;) was more complex t=
han other offered alternatives and <o:p></o:p></p><p class=3DMsoPlainText>woul=
d be more difficult to guarantee interoperability because subtle <o:p></o:p>=
</p><p class=3DMsoPlainText>differences in an implementation could produce dif=
ferent results.<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p =
class=3DMsoPlainText>At IETF97 significant feedback was received preferring a =
simpler solution to <o:p></o:p></p><p class=3DMsoPlainText>the problem. The au=
thors are very sympathetic to this feedback and therefore <o:p></o:p></p><p =
class=3DMsoPlainText>are proposing a solution based on what the draft defines =
as the &quot;Ignore&quot; <o:p></o:p></p><p class=3DMsoPlainText>policy - wher=
e all entries which are in conflict are ignored. We believe this <o:p></o:p>=
</p><p class=3DMsoPlainText>is far more desirable and aligns with the prioriti=
es listed above.<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p=
 class=3DMsoPlainText>We outline the proposed solution below and would like to=
 receive feedback from <o:p></o:p></p><p class=3DMsoPlainText>the WG before pu=
blishing the next revision of the draft.<o:p></o:p></p><p class=3DMsoPlainText=
>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;&nbsp; Les (on behalf of t=
he authors)<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p clas=
s=3DMsoPlainText><i>New Proposal</i><o:p></o:p></p><p class=3DMsoPlainText><i>&n=
bsp;</i><o:p></o:p></p><p class=3DMsoPlainText><i>In the latest revision of th=
e draft &quot;SRMS Preference&quot; was introduced. This </i><o:p></o:p></p>=
<p class=3DMsoPlainText><i>provides a way for a numerical preference to be exp=
licitly associated with an </i><o:p></o:p></p><p class=3DMsoPlainText><i>SRMS =
advertisement. Using this an operator can indicate which advertisement is </=
i><o:p></o:p></p><p class=3DMsoPlainText><i>to be preferred when a conflict is=
 present. The authors think this is a useful </i><o:p></o:p></p><p class=3DMso=
PlainText><i>addition and we therefore want to include this in the new solut=
ion.</i><o:p></o:p></p><p class=3DMsoPlainText><i>&nbsp;</i><o:p></o:p></p><p =
class=3DMsoPlainText><i>The new preference rule used to resolve conflicts is d=
efined as follows:</i><o:p></o:p></p><p class=3DMsoPlainText><i>&nbsp;</i><o:p=
></o:p></p><p class=3DMsoPlainText><b><i>A given mapping entry is compared aga=
inst all mapping entries in the database </i></b><o:p></o:p></p><p class=3DMso=
PlainText><b><i>with a preference greater than or equal to its own. If there=
 is a conflict, </i></b><o:p></o:p></p><p class=3DMsoPlainText><b><i>the mappi=
ng entry with lower preference is ignored. If two mapping entries are</i></b=
><o:p></o:p></p><p class=3DMsoPlainText><b><i>in conflict and have equal prefe=
rence then both entries are ignored.</i></b><o:p></o:p></p><p class=3DMsoPlain=
Text><i>&nbsp;</i><o:p></o:p></p><p class=3DMsoPlainText><i>Implementation of =
this policy is defined as follows:</i><o:p></o:p></p><p class=3DMsoPlainText><=
i>&nbsp;</i><o:p></o:p></p><p class=3DMsoPlainText><b><i>Step 1: Within a sing=
le address-family/algorithm/topology sort entries </i></b><o:p></o:p></p><p =
class=3DMsoPlainText><b><i>based on preference </i></b><o:p></o:p></p><p class=
=3DMsoPlainText><b><i>Step 2: Starting with the lowest preference entries, res=
olve prefix conflicts </i></b><o:p></o:p></p><p class=3DMsoPlainText><b><i>usi=
ng the above preference rule. The output is an active policy per topology.</=
i></b><o:p></o:p></p><p class=3DMsoPlainText><b><i>Step 3: Take the outputs fr=
om Step 2 and again sort them by preference </i></b><o:p></o:p></p><p class=3D=
MsoPlainText><b><i>Step 4: Starting with the lowest preference entries, reso=
lve SID conflicts </i></b><o:p></o:p></p><p class=3DMsoPlainText><b><i>using t=
he above preference rule</i></b><o:p></o:p></p><p class=3DMsoPlainText><b><i>&=
nbsp;</i></b><o:p></o:p></p><p class=3DMsoPlainText><b><i>The output from Step=
 4 is then the current Active Policy.</i></b><o:p></o:p></p><p class=3DMsoPlai=
nText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>Here are a few examples. Ea=
ch mapping entry is represented by the tuple:<o:p></o:p></p><p class=3DMsoPlai=
nText>(Preference, Prefix/mask Index range &lt;#&gt;)<o:p></o:p></p><p class=
=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>Example 1:<o:p></o:=
p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>1. (1=
50, 1.1.1.1/32 100 range 100)<o:p></o:p></p><p class=3DMsoPlainText>2. (149, 1=
.1.1.10/32 200 range 200)<o:p></o:p></p><p class=3DMsoPlainText>3. (148, 1.1.1=
.101/32 500 range 10)<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p><=
/p><p class=3DMsoPlainText>Entry 3 conflicts with entry 2, it is ignored.<o:p>=
</o:p></p><p class=3DMsoPlainText>Entry 2 conflicts with entry 1, it is ignore=
d.<o:p></o:p></p><p class=3DMsoPlainText>Active policy:<o:p></o:p></p><p class=
=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>(150, 1.1.1.1/32 10=
0 range 100)<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p cla=
ss=3DMsoPlainText>Example 2:<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></=
o:p></p><p class=3DMsoPlainText>1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p><=
/p><p class=3DMsoPlainText>2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p><=
p class=3DMsoPlainText>3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p><p cl=
ass=3DMsoPlainText>4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p><p class=3DMs=
oPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>Entry 1 conflicts with=
 entry 2, both are marked as ignore.<o:p></o:p></p><p class=3DMsoPlainText>Ent=
ry 3 conflicts with entry 2. It is marked as ignore.<o:p></o:p></p><p class=3D=
MsoPlainText>Entry 4 has no conflicts with any entries<o:p></o:p></p><p clas=
s=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>Active policy:<o:p=
></o:p></p><p class=3DMsoPlainText>(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></=
p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>Example 3=
:<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlain=
Text>1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p><p class=3DMsoPlainText>=
2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p><p class=3DMsoPlainText>3. (=
150, 1.1.1.101/32 500 range 10)<o:p></o:p></p><p class=3DMsoPlainText>4. (150,=
 2.2.2.1/32 1000 range 1)<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o=
:p></p><p class=3DMsoPlainText>Entry 1 conflicts with entries 2, 3, and&nbsp; =
4. All entries are marked ignore.<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;=
<o:p></o:p></p><p class=3DMsoPlainText>Active policy:<o:p></o:p></p><p class=3DM=
soPlainText>Empty<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><=
p class=3DMsoPlainText>Example 4:<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o=
:p></o:p></p><p class=3DMsoPlainText>1. (150, 1.1.1.1/32 100 range 10)<o:p></o=
:p></p><p class=3DMsoPlainText>2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p><=
/p><p class=3DMsoPlainText>3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p><=
p class=3DMsoPlainText>4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p><p clas=
s=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>Entry 4 conflicts =
with entry 2. It is marked ignore.<o:p></o:p></p><p class=3DMsoPlainText>Entry=
 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.<o:p></o:p></p>=
<p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>Active poli=
cy:<o:p></o:p></p><p class=3DMsoPlainText>(150, 1.1.1.1/32 100 range 10)<o:p><=
/o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPlainText>&n=
bsp;<o:p></o:p></p><p class=3DMsoPlainText>&nbsp;<o:p></o:p></p><p class=3DMsoPl=
ainText>&nbsp;<o:p></o:p></p></div></div></blockquote><p class=3DMsoNormal><sp=
an style=3D'font-size:12.0pt;font-family:"Times New Roman"'>__________________=
_____________________________ spring mailing list spring@ietf.org https://ww=
w.ietf.org/mailman/listinfo/spring <o:p></o:p></span></p></div></body></html=
>

--B_3563779412_1585729212--



From nobody Tue Dec  6 05:42:03 2016
Return-Path: <martin.vigoureux@nokia.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5EA5E12A0E6 for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 05:42:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.921
X-Spam-Level: 
X-Spam-Status: No, score=-6.921 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c-OBrtyvS4PD for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 05:42:00 -0800 (PST)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 720F912A190 for <spring@ietf.org>; Tue,  6 Dec 2016 05:39:36 -0800 (PST)
Received: from fr712umx4.dmz.alcatel-lucent.com (unknown [135.245.210.45]) by Websense Email Security Gateway with ESMTPS id DFA498365FBEF for <spring@ietf.org>; Tue,  6 Dec 2016 13:37:34 +0000 (GMT)
Received: from fr712usmtp2.zeu.alcatel-lucent.com (fr712usmtp2.zeu.alcatel-lucent.com [135.239.2.42]) by fr712umx4.dmz.alcatel-lucent.com (GMO-o) with ESMTP id uB6DbWQf006033 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <spring@ietf.org>; Tue, 6 Dec 2016 13:37:37 GMT
Received: from FR712WXCHHUB03.zeu.alcatel-lucent.com (fr712wxchhub03.zeu.alcatel-lucent.com [135.239.2.74]) by fr712usmtp2.zeu.alcatel-lucent.com (GMO) with ESMTP id uB6DXd0c026587 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <spring@ietf.org>; Tue, 6 Dec 2016 13:37:18 GMT
Received: from [135.224.211.86] (135.239.27.38) by FR712WXCHHUB03.zeu.alcatel-lucent.com (135.239.2.74) with Microsoft SMTP Server (TLS) id 14.3.301.0; Tue, 6 Dec 2016 14:34:15 +0100
To: <spring@ietf.org>
References: <d97bccbd-cb8f-0364-ddd7-7922aba242af@nokia.com>
From: Martin Vigoureux <martin.vigoureux@nokia.com>
Message-ID: <80b3461b-3f25-803e-0ac9-971a3d8259b8@nokia.com>
Date: Tue, 6 Dec 2016 14:34:14 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
In-Reply-To: <d97bccbd-cb8f-0364-ddd7-7922aba242af@nokia.com>
Content-Type: text/plain; charset="windows-1252"; format=flowed
Content-Transfer-Encoding: 8bit
X-Originating-IP: [135.239.27.38]
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/HYfOXdufVbDY-a3AYYdFwWlgW5k>
Subject: Re: [spring] WG LC for draft-ietf-spring-segment-routing
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Dec 2016 13:42:02 -0000

WG,

this is a reminder, please express your opinion regarding this WG LC.

Thank you

-m

Le 28/11/2016  10:37, Martin Vigoureux a crit :
> Hello WG,
>
> this e-mail initiates a two-week WG LC for
> draft-ietf-spring-segment-routing [1].
>
> All authors have already replied to the IPR poll.
> There is known IPR [2] on this document.
>
> Please read the latest version of the document and state whether or not
> you support the submission of this document to the IESG as a Proposed
> Standard.
>
> Please also express the comments you would have on this latest version.
>
> Your involvement in this step is very important so please take the time
> to read and express your opinions on the list.
>
> Thank you
>
> M&B
>
> [1] https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing/
> [2]
> https://datatracker.ietf.org/ipr/search/?submit=draft&id=draft-ietf-spring-segment-routing
>
>
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring
>


From nobody Tue Dec  6 05:44:10 2016
Return-Path: <martin.vigoureux@nokia.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 67CEE1294BE for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 05:44:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.921
X-Spam-Level: 
X-Spam-Status: No, score=-6.921 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3R3uvwyQUrjF for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 05:44:07 -0800 (PST)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5932C12A0E2 for <spring@ietf.org>; Tue,  6 Dec 2016 05:43:05 -0800 (PST)
Received: from fr712umx4.dmz.alcatel-lucent.com (unknown [135.245.210.45]) by Websense Email Security Gateway with ESMTPS id 49D666C08C3A6 for <spring@ietf.org>; Tue,  6 Dec 2016 13:42:45 +0000 (GMT)
Received: from fr712usmtp2.zeu.alcatel-lucent.com (fr712usmtp2.zeu.alcatel-lucent.com [135.239.2.42]) by fr712umx4.dmz.alcatel-lucent.com (GMO-o) with ESMTP id uB6Dglvh014014 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <spring@ietf.org>; Tue, 6 Dec 2016 13:42:47 GMT
Received: from FR712WXCHHUB03.zeu.alcatel-lucent.com (fr712wxchhub03.zeu.alcatel-lucent.com [135.239.2.74]) by fr712usmtp2.zeu.alcatel-lucent.com (GMO) with ESMTP id uB6DcQMs008132 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <spring@ietf.org>; Tue, 6 Dec 2016 13:42:43 GMT
Received: from [135.224.211.86] (135.239.27.39) by FR712WXCHHUB03.zeu.alcatel-lucent.com (135.239.2.74) with Microsoft SMTP Server (TLS) id 14.3.301.0; Tue, 6 Dec 2016 14:39:26 +0100
From: Martin Vigoureux <martin.vigoureux@nokia.com>
To: <spring@ietf.org>
Message-ID: <ef5cdba1-030e-16b8-d485-3ab3e4bacd38@nokia.com>
Date: Tue, 6 Dec 2016 14:39:25 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
Content-Type: text/plain; charset="windows-1252"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [135.239.27.39]
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/1PyBk0c3yp7K4eV5LQKGxSdqoQg>
Subject: [spring] WG LC for draft-ietf-spring-ipv6-use-cases
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Dec 2016 13:44:09 -0000

Hello WG,

this e-mail initiates a two-week WG LC for 
draft-ietf-spring-ipv6-use-cases [1].

All the authors have already replied to the IPR poll.
There is no known IPR.

Please read the latest version of the document and state whether or not 
you support the submission of this document to the IESG with the 
objective to become an Informational RFC.

Please also express the comments you would have on this latest version.

Your involvement in this step is very important so please take the time 
to read and express your opinions on the list.

Thank you

M&B

[1] https://datatracker.ietf.org/doc/draft-ietf-spring-ipv6-use-cases/


From nobody Tue Dec  6 07:21:02 2016
Return-Path: <sprevidi@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2DB3D1295BC; Tue,  6 Dec 2016 07:21:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.418
X-Spam-Level: 
X-Spam-Status: No, score=-17.418 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j2QD9xFDQmqq; Tue,  6 Dec 2016 07:20:53 -0800 (PST)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 39FC712951B; Tue,  6 Dec 2016 07:20:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=128028; q=dns/txt; s=iport; t=1481037649; x=1482247249; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=FegJdrCO5C9V59fL/TyeYYQ3uFEziVeyONtyA2LxxKg=; b=DDyja4dkZtAnll5P+T5Au8WF28l5VFwYRWTQkXb1A1dWfWeYrWAu+bPb RYdunI2ERUyAUa0MJrWhcMPUeKHjPnLNP2NWuZK6rFo7NVfJ3w9b59Jc7 yZaQJfyxW2UyM2kDKSAtBUYromQ5VG9bCAu3mSID8ekCiY18X9slxjlzZ g=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AZAQBF1kZY/4kNJK1UAQkZAQEBAQEBA?= =?us-ascii?q?QEBAQEHAQEBAQGDKw4BAQEBAR9agQYHjUCXDYd0jQqCBymCHgGDWgIaggU/FAE?= =?us-ascii?q?CAQEBAQEBAWIohGgBAQEDARoBCBExCAwFCwIBCBIGAgImAgICHxEVAg4CBA4DA?= =?us-ascii?q?huIOgMPCA6pNoIph0ANg3YBAQEBAQEBAQEBAQEBAQEBAQEBAQEcgQuFM4F9CIF?= =?us-ascii?q?OgQiCSIFHCwYBAwEGAQYWFxWCWC2CMAWIYoYdhEEBgTuFNTUBhkuDEIMSSYNhg?= =?us-ascii?q?XMXOYQtg0WEWoEwh2GBbYQ1hA0BHzc9JDgjDgEBgykFF4FdQTGGUQEBDRcHgQO?= =?us-ascii?q?BDQEBAQ?=
X-IronPort-AV: E=Sophos;i="5.33,310,1477958400"; d="scan'208";a="178232849"
Received: from alln-core-4.cisco.com ([173.36.13.137]) by rcdn-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 06 Dec 2016 15:20:44 +0000
Received: from XCH-RTP-010.cisco.com (xch-rtp-010.cisco.com [64.101.220.150]) by alln-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id uB6FKiPx006637 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 6 Dec 2016 15:20:44 GMT
Received: from xch-rtp-010.cisco.com (64.101.220.150) by XCH-RTP-010.cisco.com (64.101.220.150) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Tue, 6 Dec 2016 10:20:43 -0500
Received: from xch-rtp-010.cisco.com ([64.101.220.150]) by XCH-RTP-010.cisco.com ([64.101.220.150]) with mapi id 15.00.1210.000; Tue, 6 Dec 2016 10:20:43 -0500
From: "Stefano Previdi (sprevidi)" <sprevidi@cisco.com>
To: Stewart Bryant <stewart.bryant@gmail.com>
Thread-Topic: [spring] WG LC for draft-ietf-spring-segment-routing
Thread-Index: AQHSSnXpEVVDu74MIUSf2g1NJ6zFAKD7Z34A
Date: Tue, 6 Dec 2016 15:20:43 +0000
Message-ID: <AB9AF7AB-3605-4D34-B034-262A5F14BE30@cisco.com>
References: <9c309847-d267-6397-274d-ec387b7332e1@gmail.com>
In-Reply-To: <9c309847-d267-6397-274d-ec387b7332e1@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.61.194.198]
Content-Type: text/plain; charset="utf-8"
Content-ID: <00636483477D424BAA942928743F0562@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/x407Ta21CH7jVzyihBOgcKTpb_c>
Cc: "spring@ietf.org" <spring@ietf.org>, "draft-ietf-spring-segment-routing@ietf.org" <draft-ietf-spring-segment-routing@ietf.org>, "spring-chairs@tools.ietf.org" <spring-chairs@tools.ietf.org>
Subject: Re: [spring] WG LC for draft-ietf-spring-segment-routing
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Dec 2016 15:21:00 -0000

U3Rld2FydCwNCg0KSSB3ZW50IHRocm91Z2ggeW91ciAobG9uZykgZW1haWwgaGVyZSBhbmQgbWFu
eSB0aGFua3MgZm9yIHlvdXIgY29tbWVudHMuIFNvbWUgb2YgdGhlbSBtYWtlIHNlbnNlIGFuZCBJ
IHdpbGwgaW50ZWdyYXRlIHRoZW0gaW4gdGhlIGRyYWZ0LCBzb21lIG90aGVycyBqdXN0IHJlcXVp
cmVzIGNsYXJpZmljYXRpb24uIEkgdW5kZXJzdGFuZCB0aGF0IFNSIGRyYWZ0cyBoYXZlIGJlZW4g
d3JpdHRlbiBieSBpbXBsZW1lbnRvcnMgYW5kIG9wZXJhdG9ycyBkaXJlY3RseSBpbnZvbHZlZCBp
biBTUiBkZXZlbG9wbWVudCBhbmQgZGVwbG95bWVudCBhbmQgdGhlIGF1dGhvcnMgc29tZXRpbWVz
ICBhc3N1bWVkIHRoYXQgdGhlIHJlYWRlciBoYXMgYSBTUiBrbm93bGVkZ2UgYWxsb3dpbmcgYSBz
aG9ydGVyIG9yIGxlc3MgZGV0YWlsZWQgZGVzY3JpcHRpb24uIE9mIGNvdXJzZSwgdGhhdCBpcyBu
b3Qgd2hhdCB5b3Ugc2hvdWxkIGV4cGVjdCBleHBlY3QgYW5kIEnigJlsbCBhZGQgY2xhcmlmaWNh
dGlvbiB3aGVyZSBuZWVkZWQuDQoNClNlZSBiZWxvdyBmb3Igc29tZSBhbnN3ZXJzIGFuZCBvdGhl
ciBjb21tZW50cy4NCg0KDQo+IE9uIE5vdiAyOSwgMjAxNiwgYXQgODoyMSBQTSwgU3Rld2FydCBC
cnlhbnQgPHN0ZXdhcnQuYnJ5YW50QGdtYWlsLmNvbT4gd3JvdGU6DQo+IA0KPiBUaGUgZm9sbG93
aW5nIGFyZSBteSBjb21tZW50cyBvbiB0aGlzIHRleHQgaW4gcmVzcG9uc2UgdG8gdGhlIFdHTEMu
DQo+IEEgbG90IG9mIGNvbW1lbnRzIGFyZSBlbWJlZGRlZCBpbiB0aGUgZHJhZnQgdGV4dCBiZWxv
dy4NCj4gDQo+IEhvd2V2ZXIgSSBoYXZlIHNvbWUgbWFqb3Igb3ZlcmFyY2hpbmcgY29tbWVudHMu
IEFsdGhvdWdoIHRoaXMgaXMgY2FsbGVkDQo+IGFuIGFyY2hpdGVjdHVyZSBpdCBzZWVtcyB0byBi
ZSByYXRoZXIgbW9yZSBvZiBhIGRlc2NyaXB0aW9uIG9mIGhvdw0KPiBhIGxhcmdlIG51bWJlciBv
ZiBvdGhlciBkb2N1bWVudHMgY29tYmluZSB0byBwcm9kdWNlIGFuIG92ZXJhbGwNCj4gc3BlY2lm
aWNhdGlvbiBmb3IgU1IuIENlcnRhaW5seSBmb3IgYW4gYXJjaGl0ZWN0dXJlIHRoZSBudW1iZXIN
Cj4gb2YgZm9yd2FyZCByZWZlcmVuY2VzIHRvIGRldGFpbGVkIHNvbHV0aW9ucyBmb3IgYSBkZXNj
cmlwdGlvbiBvZiB0aGUNCj4gY29uY2VwdCBpcyBxdWl0ZSBleHRyYW9yZGluYXJ5Lg0KPiANCj4g
U28gZW1iZWRkZWQgaXMgdGhlIGNvbnRlbnRzIG9mIHNvbWUgb2YgdGhlc2UgcmVmZXJlbmNlZCBk
b2N1bWVudHMNCj4gdGhhdCBJIGRvIG5vdCB0aGluayB0aGF0IGl0IHNhZmUgdG8gcHVibGlzaCB0
aGlzIHRleHQgb3RoZXIgdGhhbg0KPiBzeW5jaHJvbm91c2x5IHdpdGggc29tZSBvZiB0aG9zZSBk
b2N1bWVudHMuIFRoaXMgaXMgYWJzb2x1dGVseSB0aGUgY2FzZQ0KPiBmb3IgdGhlIGRhdGFwbGFu
ZSBkZWZpbml0aW9ucywgZXNwZWNpYWxseSBmb3IgSVB2NiwgYnV0IHNlZW1zDQo+IGxpa2VseSB0
byBhcHBseSB0byBvdGhlciByZWZlcmVuY2VzLiBUaGUgZnVydGhlciBpbXBsaWNhdGlvbiBvZg0K
PiB0aGUgY29uc3RhbnQgZGVwZW5kZW5jZSBvbiBvdGhlciBkb2N1bWVudHMgaXMgdGhhdCBtYW55
IG9mIHRoZW0NCj4gYXJlIHJlYWxseSBub3JtYXRpdmUgcmF0aGVyICB0aGFuIGluZm9ybWF0aXZl
IHJlZmVyZW5jZXMsIG1ha2luZw0KPiB0aGlzIGRvY3VtZW50IGEgaG9zdGFnZSB0byB0aGVpciBm
YXRlLg0KPiANCj4gSXQgaXMgZmFyIG1vcmUgY29udmVudGlvbmFsIGluIGFuIGFyY2hpdGVjdHVy
ZSB0byBzZXQgb3V0IHRoZSBnZW5lcmFsDQo+IGRlc2NyaXB0aW9uIGFuZCBzdGF0ZSB0aGUgaW52
YXJpYW50cywgYW5kIHB1dCB0aGUgZGV0YWlsIGludG8NCj4gc3BlY2lmaWMgcHJvdG9jb2wgZG9j
dW1lbnRzLCBidXQgdG8gaGF2ZSB0aGUgYXJjaGl0ZWN0dXJlIGFzIGENCj4gc3RhbmRhbG9uZSB0
ZXh0LiBJbiBvdGhlciB3b3JkcyB0byBzZXQgdGhpbmdzIG91dCBzbyB0aGF0DQo+IHRoZSByZWFk
ZXIgdW5kZXJzdGFuZHMgaG93IGNvbXBvbmVudHMgZml0IHRvZ2V0aGVyLCB3aGF0IHRoZSBzdWJ0
bGV0aWVzDQo+IGFyZSBhbmQgd2hhdCB0aGUgY29uc3RyYWludHMgb24gdGhlIGNvbXBvbmVudHMg
YXJlLCBidXQgbGVhdmUgdGhlDQo+IGNvbXBvbmVudCBkZXNpZ24gZGVjaXNpb25zIHRvIHRoZSBj
b21wb25lbnQgZGVzaWduZXJzLg0KPiANCj4gQ2xlYXJseSBJIHRoaW5rIHRoaXMgZHJhZnQgbmVl
ZHMgc2lnbmlmaWNhbnQgd29yayBiZWZvcmUgaXQgaXMNCj4gcmVhZHkgZm9yIHN1Ym1pc3Npb24g
dG8gdGhlIElFU0cgZm9yIHB1YmxpY2F0aW9uLg0KPiANCj4gLSBTdGV3YXJ0DQo+IA0KPiANCj4g
DQo+IA0KPiBOZXR3b3JrIFdvcmtpbmcgR3JvdXAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEMuIEZpbHNmaWxzLCBFZC4NCj4gSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUy4gUHJldmlkaSwgRWQuDQo+IEludGVuZGVkIHN0
YXR1czogU3RhbmRhcmRzIFRyYWNrICAgICAgICAgICAgICAgICAgICAgQ2lzY28gU3lzdGVtcywg
SW5jLg0KPiBFeHBpcmVzOiBNYXkgMjMsIDIwMTcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQi4gRGVjcmFlbmUNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTLiBMaXRrb3dza2kNCj4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcmFu
Z2UNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSLiBTaGFraXINCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHb29nbGUNCj4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm92ZW1iZXIgMTksIDIwMTYN
Cj4gDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICBTZWdtZW50IFJvdXRpbmcgQXJjaGl0ZWN0
dXJlDQo+ICAgICAgICAgICAgICAgICAgZHJhZnQtaWV0Zi1zcHJpbmctc2VnbWVudC1yb3V0aW5n
LTEwDQo+IA0KPiBBYnN0cmFjdA0KPiANCj4gICBTZWdtZW50IFJvdXRpbmcgKFNSKSBsZXZlcmFn
ZXMgdGhlIHNvdXJjZSByb3V0aW5nIHBhcmFkaWdtLiAgQSBub2RlDQo+ICAgc3RlZXJzIGEgcGFj
a2V0IHRocm91Z2ggYW4gb3JkZXJlZCBsaXN0IG9mIGluc3RydWN0aW9ucywgY2FsbGVkDQo+ICAg
c2VnbWVudHMuICBBIHNlZ21lbnQgY2FuIHJlcHJlc2VudCBhbnkgaW5zdHJ1Y3Rpb24sIHRvcG9s
b2dpY2FsIG9yDQo+ICAgc2VydmljZS1iYXNlZC4gIEEgc2VnbWVudCBjYW4gaGF2ZSBhIGxvY2Fs
IHNlbWFudGljIHRvIGFuIFNSIG5vZGUgb3INCj4gICBnbG9iYWwgd2l0aGluIGFuIFNSIGRvbWFp
bi4gIFNSIGFsbG93cyB0byBlbmZvcmNlIGEgZmxvdyB0aHJvdWdoIGFueQ0KPiAgIHRvcG9sb2dp
Y2FsIHBhdGggYW5kIHNlcnZpY2UgY2hhaW4gd2hpbGUgbWFpbnRhaW5pbmcgcGVyLWZsb3cgc3Rh
dGUNCj4gICBvbmx5IGF0IHRoZSBpbmdyZXNzIG5vZGUgdG8gdGhlIFNSIGRvbWFpbi4NCj4gDQo+
IFNCPiBTaW5jZSB5b3UgbWVudGlvbiBzZXJ2aWNlIGNoYWlucyBoZXJlLCB3ZSByZWFsbHkgc2hv
dWxkIGJlIGhhdmluZw0KPiBTQj4gYSB3aWRlciBkaXNjdXNzaW9uIGFib3V0IHdoZXRoZXIgU1Ig
YW5kIFNGQyBhcmUgcmVhbGx5IHRoZSBzYW1lDQo+IFNCPiB0ZWNobm9sb2d5Lg0KDQoNCm9yIG1h
eWJlIGxpbWl0IHRoZSBkZXNjcmlwdGlvbiBoZXJlIHRvIHRoZSBmYWN0IHRoYXQgYSBzZWdtZW50
IG1heSByZXByZXNlbnQgYSBob3N0IHJ1bm5pbmcgYW55IHNvcnQgb2YgYXBwbGljYXRpb24vZnVu
Y3Rpb24uIFdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCB0aGUgd29yayBkb25lIGluIFNGQywgaXQg
aXMgb2J2aW91cyB0aGF0IGJ1aWxkaW5nIGEgcGF0aCBiYXNlZCBvbiBzZWdtZW50IGlzIG5vdCBy
ZXN0cmljdGVkIHRvIHJvdXRlcnMgYnV0IHJhdGhlciBpbmNsdWRlcyBhbnkgZWxlbWVudCBhZGRy
ZXNzYWJsZSB0aHJvdWdoIGFuIElQIGFkZHJlc3MgKG1hcHBlZCB0byBhIHNlZ21lbnQpLg0KDQoN
Cj4gICBTZWdtZW50IFJvdXRpbmcgY2FuIGJlIGRpcmVjdGx5IGFwcGxpZWQgdG8gdGhlIE1QTFMg
YXJjaGl0ZWN0dXJlIHdpdGgNCj4gICBubyBjaGFuZ2Ugb24gdGhlIGZvcndhcmRpbmcgcGxhbmUu
DQo+IA0KPiBTQj4gQXBwbGllZCB0byBvciBpbXBsZW1lbnRlZCB1c2luZyBNUExTPw0KDQoNCndo
YXQgaXQgbWVhbnMgaXMgdGhhdCBNUExTIGRhdGFwbGFuZSBmaXRzIHRoZSBTUiBhcmNoaXRlY3R1
cmUuDQoNCg0KPiAgIEEgc2VnbWVudCBpcyBlbmNvZGVkIGFzIGFuIE1QTFMNCj4gICBsYWJlbC4g
IEFuIG9yZGVyZWQgbGlzdCBvZiBzZWdtZW50cyBpcyBlbmNvZGVkIGFzIGEgc3RhY2sgb2YgbGFi
ZWxzLg0KPiAgIFRoZSBzZWdtZW50IHRvIHByb2Nlc3MgaXMgb24gdGhlIHRvcCBvZiB0aGUgc3Rh
Y2suICBVcG9uIGNvbXBsZXRpb24NCj4gICBvZiBhIHNlZ21lbnQsIHRoZSByZWxhdGVkIGxhYmVs
IGlzIHBvcHBlZCBmcm9tIHRoZSBzdGFjay4NCj4gDQo+ICAgU2VnbWVudCBSb3V0aW5nIGNhbiBi
ZSBhcHBsaWVkIHRvIHRoZSBJUHY2IGFyY2hpdGVjdHVyZSwgd2l0aCBhIG5ldw0KPiAgIHR5cGUg
b2Ygcm91dGluZyBoZWFkZXIuICBBIHNlZ21lbnQgaXMgZW5jb2RlZCBhcyBhbiBJUHY2IGFkZHJl
c3MuICBBbg0KPiAgIG9yZGVyZWQgbGlzdCBvZiBzZWdtZW50cyBpcyBlbmNvZGVkIGFzIGFuIG9y
ZGVyZWQgbGlzdCBvZiBJUHY2DQo+ICAgYWRkcmVzc2VzIGluIHRoZSByb3V0aW5nIGhlYWRlci4g
IFRoZSBhY3RpdmUgc2VnbWVudCBpcyBpbmRpY2F0ZWQgYnkNCj4gICB0aGUgRGVzdGluYXRpb24g
QWRkcmVzcyBvZiB0aGUgcGFja2V0LiAgVGhlIG5leHQgYWN0aXZlIHNlZ21lbnQgaXMNCj4gICBp
bmRpY2F0ZWQgYnkgYSBwb2ludGVyIGluIHRoZSBuZXcgcm91dGluZyBoZWFkZXIuDQo+IA0KPiBT
Qj4gWW91IHJlYWxseSBjYW5ub3Qgc2F5IHRoaXMgdW50aWwgdGhlIHY2IGRlc2lnbiBnb2VzIHRv
IFJGQywgYWx0aG91Z2gNCj4gU0I+IEkgZG8gbm90IHNlZSB3aHkgdGhpcyBuZWVkcyB0byBiZSBz
dGF0ZWQuDQo+IFNCPiBXaGF0IEkgZGlkIG5vdCBzZWUgaW4gaGVyZSBpcyBhIHByb3BlciBjb21w
YXJpc2lvbiBvZiB0aGUgY29uc2VxdWVuY2VzDQo+IFNCPiBvZiB0aGUgc3RhY2sgdnMgbGlzdCBh
bmQgcG9pbnRlciBhcHByb2FjaC4gVGhlIGNvbnNlcXVlbmNlcyBvZiB0aGUNCj4gU0I+IGRpZmVm
cmVuY2UgYmV0d2VlbiB0aGVzZSB0d28gYXBwcm9hY2hlcyBtYXkgYmUgZmFyIHJlYWNoaW5nIGlu
IHRoZSBsb25nDQo+IFNCPiB0ZXJtIGFuZCBsZWFkIHRvIGJpZm9yY2F0aW9uIG9mIHRoZSBhcmNo
aXRlY3R1cmUsIHNvbWV0aGluZyB3ZSBzaG91bGQNCj4gU0I+IHRoaW5rIGFib3V0IGNhcmVmdWxs
eSB1cCBmcm9udC4NCg0KDQoNCmFyY2hpdGVjdHVyYWxseSwgdGhlcmUgYXJlIG5vIGNoYW5nZXMu
IERhdGFwbGFuZXMgaGF2ZSB0aGVpciBzcGVjaWZpY3MuIA0KDQpJdCBpcyBnb29kIHRvIG5vdGUg
dGhhdCBpcHY2IGFyY2hpdGVjdHVyZSBoYXMgYmVlbiBhbHJlYWR5IHByb3Zpc2lvbmVkIGZvciBz
ZWdtZW50IHJvdXRpbmcuIFBsZWFzZSByZWFkIFJGQzI0NjAoYmlzKSBhbmQgeW914oCZbGwgc2Vl
IHRoYXQgZXZlbiB0aGUg4oCcc2VnbWVudOKAnSB0ZXJtaW5vbG9neSBpcyBhbHJlYWR5IHByZXNl
bnQuDQoNCkJvdHRvbSBsaW5lLCBJIGFncmVlIHRoYXQgdGhlIGFyY2hpdGVjdHVyZSBkcmFmdCBz
aG91bGRu4oCZdCBzcGVjaWZ5IGRhdGFwbGFuZSBkZXRhaWxzLg0KDQoNCj4gUmVxdWlyZW1lbnRz
IExhbmd1YWdlDQo+IA0KPiAgIFRoZSBrZXkgd29yZHMgIk1VU1QiLCAiTVVTVCBOT1QiLCAiUkVR
VUlSRUQiLCAiU0hBTEwiLCAiU0hBTEwgTk9UIiwNCj4gICAiU0hPVUxEIiwgIlNIT1VMRCBOT1Qi
LCAiUkVDT01NRU5ERUQiLCAiTUFZIiwgYW5kICJPUFRJT05BTCIgaW4gdGhpcw0KPiAgIGRvY3Vt
ZW50IGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBkZXNjcmliZWQgaW4gUkZDIDIxMTkgW1JGQzIx
MTldLg0KPiANCj4gU3RhdHVzIG9mIFRoaXMgTWVtbw0KPiANCj4gICBUaGlzIEludGVybmV0LURy
YWZ0IGlzIHN1Ym1pdHRlZCBpbiBmdWxsIGNvbmZvcm1hbmNlIHdpdGggdGhlDQo+ICAgcHJvdmlz
aW9ucyBvZiBCQ1AgNzggYW5kIEJDUCA3OS4NCj4gDQo+IA0KPiANCj4gDQo+IEZpbHNmaWxzLCBl
dCBhbC4gICAgICAgICAgRXhwaXJlcyBNYXkgMjMsIDIwMTcgICAgICAgICAgICAgICAgICBbUGFn
ZSAxXQ0KPiANCj4gSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgICBTZWdtZW50IFJvdXRpbmcg
ICAgICAgICAgICAgICBOb3ZlbWJlciAyMDE2DQo+IA0KPiANCj4gICBJbnRlcm5ldC1EcmFmdHMg
YXJlIHdvcmtpbmcgZG9jdW1lbnRzIG9mIHRoZSBJbnRlcm5ldCBFbmdpbmVlcmluZw0KPiAgIFRh
c2sgRm9yY2UgKElFVEYpLiAgTm90ZSB0aGF0IG90aGVyIGdyb3VwcyBtYXkgYWxzbyBkaXN0cmli
dXRlDQo+ICAgd29ya2luZyBkb2N1bWVudHMgYXMgSW50ZXJuZXQtRHJhZnRzLiAgVGhlIGxpc3Qg
b2YgY3VycmVudCBJbnRlcm5ldC0NCj4gICBEcmFmdHMgaXMgYXQgaHR0cDovL2RhdGF0cmFja2Vy
LmlldGYub3JnL2RyYWZ0cy9jdXJyZW50Ly4NCj4gDQo+ICAgSW50ZXJuZXQtRHJhZnRzIGFyZSBk
cmFmdCBkb2N1bWVudHMgdmFsaWQgZm9yIGEgbWF4aW11bSBvZiBzaXggbW9udGhzDQo+ICAgYW5k
IG1heSBiZSB1cGRhdGVkLCByZXBsYWNlZCwgb3Igb2Jzb2xldGVkIGJ5IG90aGVyIGRvY3VtZW50
cyBhdCBhbnkNCj4gICB0aW1lLiAgSXQgaXMgaW5hcHByb3ByaWF0ZSB0byB1c2UgSW50ZXJuZXQt
RHJhZnRzIGFzIHJlZmVyZW5jZQ0KPiAgIG1hdGVyaWFsIG9yIHRvIGNpdGUgdGhlbSBvdGhlciB0
aGFuIGFzICJ3b3JrIGluIHByb2dyZXNzLiINCj4gDQo+ICAgVGhpcyBJbnRlcm5ldC1EcmFmdCB3
aWxsIGV4cGlyZSBvbiBNYXkgMjMsIDIwMTcuDQo+IA0KPiBDb3B5cmlnaHQgTm90aWNlDQo+IA0K
PiAgIENvcHlyaWdodCAoYykgMjAxNiBJRVRGIFRydXN0IGFuZCB0aGUgcGVyc29ucyBpZGVudGlm
aWVkIGFzIHRoZQ0KPiAgIGRvY3VtZW50IGF1dGhvcnMuICBBbGwgcmlnaHRzIHJlc2VydmVkLg0K
PiANCj4gICBUaGlzIGRvY3VtZW50IGlzIHN1YmplY3QgdG8gQkNQIDc4IGFuZCB0aGUgSUVURiBU
cnVzdCdzIExlZ2FsDQo+ICAgUHJvdmlzaW9ucyBSZWxhdGluZyB0byBJRVRGIERvY3VtZW50cw0K
PiAgIChodHRwOi8vdHJ1c3RlZS5pZXRmLm9yZy9saWNlbnNlLWluZm8pIGluIGVmZmVjdCBvbiB0
aGUgZGF0ZSBvZg0KPiAgIHB1YmxpY2F0aW9uIG9mIHRoaXMgZG9jdW1lbnQuICBQbGVhc2UgcmV2
aWV3IHRoZXNlIGRvY3VtZW50cw0KPiAgIGNhcmVmdWxseSwgYXMgdGhleSBkZXNjcmliZSB5b3Vy
IHJpZ2h0cyBhbmQgcmVzdHJpY3Rpb25zIHdpdGggcmVzcGVjdA0KPiAgIHRvIHRoaXMgZG9jdW1l
bnQuICBDb2RlIENvbXBvbmVudHMgZXh0cmFjdGVkIGZyb20gdGhpcyBkb2N1bWVudCBtdXN0DQo+
ICAgaW5jbHVkZSBTaW1wbGlmaWVkIEJTRCBMaWNlbnNlIHRleHQgYXMgZGVzY3JpYmVkIGluIFNl
Y3Rpb24gNC5lIG9mDQo+ICAgdGhlIFRydXN0IExlZ2FsIFByb3Zpc2lvbnMgYW5kIGFyZSBwcm92
aWRlZCB3aXRob3V0IHdhcnJhbnR5IGFzDQo+ICAgZGVzY3JpYmVkIGluIHRoZSBTaW1wbGlmaWVk
IEJTRCBMaWNlbnNlLg0KPiANCj4gVGFibGUgb2YgQ29udGVudHMNCj4gDQo+ICAgMS4gIEludHJv
ZHVjdGlvbiAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
ICAzDQo+ICAgICAxLjEuICBDb21wYW5pb24gRG9jdW1lbnRzIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gICA0DQo+ICAgMi4gIFRlcm1pbm9sb2d5IC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gICA1DQo+ICAgMy4gIExpbmstU3Rh
dGUgSUdQIFNlZ21lbnRzIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gICA3
DQo+ICAgICAzLjEuICBJR1AgU2VnbWVudCwgSUdQIFNJRCAgLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gICA3DQo+ICAgICAzLjIuICBJR1AtUHJlZml4IFNlZ21lbnQsIFByZWZp
eC1TSUQgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gICA3DQo+ICAgICAgIDMuMi4xLiAgUHJl
Zml4LVNJRCBBbGdvcml0aG0gIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gICA3DQo+
ICAgICAgIDMuMi4yLiAgTVBMUyBEYXRhcGxhbmUgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gICA5DQo+ICAgICAgIDMuMi4zLiAgSVB2NiBEYXRhcGxhbmUgIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDEwDQo+ICAgICAzLjMuICBJR1AtTm9kZSBT
ZWdtZW50LCBOb2RlLVNJRCAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDEwDQo+ICAg
ICAzLjQuICBJR1AtQW55Y2FzdCBTZWdtZW50LCBBbnljYXN0IFNJRCAgLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gIDExDQo+ICAgICAzLjUuICBJR1AtQWRqYWNlbmN5IFNlZ21lbnQsIEFkai1TSUQg
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDE0DQo+ICAgICAgIDMuNS4xLiAgUGFyYWxsZWwg
QWRqYWNlbmNpZXMgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDE1DQo+ICAgICAg
IDMuNS4yLiAgTEFOIEFkamFjZW5jeSBTZWdtZW50cyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gIDE2DQo+ICAgICAzLjYuICBCaW5kaW5nIFNlZ21lbnQgLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDE2DQo+ICAgICAgIDMuNi4xLiAgTWFwcGluZyBTZXJ2
ZXIgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDE2DQo+ICAgICAgIDMu
Ni4yLiAgVHVubmVsIEhlYWRlbmQgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gIDE3DQo+ICAgICAzLjcuICBJbnRlci1BcmVhIENvbnNpZGVyYXRpb25zIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gIDE3DQo+ICAgNC4gIEJHUCBQZWVyaW5nIFNlZ21lbnRzICAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDE4DQo+IA0KPiANCj4gDQo+
IEZpbHNmaWxzLCBldCBhbC4gICAgICAgICAgRXhwaXJlcyBNYXkgMjMsIDIwMTcgICAgICAgICAg
ICAgICAgICBbUGFnZSAyXQ0KPiANCj4gSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgICBTZWdt
ZW50IFJvdXRpbmcgICAgICAgICAgICAgICBOb3ZlbWJlciAyMDE2DQo+IA0KPiANCj4gICA1LiAg
SUdQIE1pcnJvcmluZyBDb250ZXh0ICBTZWdtZW50ICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAgMTkNCj4gICA2LiAgTXVsdGljYXN0IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMTkNCj4gICA3LiAgSUFOQSBDb25zaWRlcmF0aW9ucyAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMTkNCj4gICA4LiAgU2Vj
dXJpdHkgQ29uc2lkZXJhdGlvbnMgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAgMTkNCj4gICAgIDguMS4gIE1QTFMgRGF0YSBQbGFuZSAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAgMjANCj4gICAgIDguMi4gIElQdjYgRGF0YSBQbGFuZSAuIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMjENCj4gICA5LiAgTWFuYWdl
YWJpbGl0eSBDb25zaWRlcmF0aW9ucyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAg
MjINCj4gICAxMC4gQ29udHJpYnV0b3JzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAgMjQNCj4gICAxMS4gQWNrbm93bGVkZ2VtZW50cyAgLiAuIC4gLiAu
IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMjQNCj4gICAxMi4gUmVmZXJlbmNl
cyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMjUN
Cj4gICAgIDEyLjEuICBOb3JtYXRpdmUgUmVmZXJlbmNlcyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g
LiAuIC4gLiAuIC4gLiAgMjUNCj4gICAgIDEyLjIuICBJbmZvcm1hdGl2ZSBSZWZlcmVuY2VzIC4g
LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMjUNCj4gICBBdXRob3JzJyBBZGRyZXNz
ZXMgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgMjkNCj4g
DQo+IDEuICBJbnRyb2R1Y3Rpb24NCj4gDQo+ICAgV2l0aCBTZWdtZW50IFJvdXRpbmcgKFNSKSwg
YSBub2RlIHN0ZWVycyBhIHBhY2tldCB0aHJvdWdoIGFuIG9yZGVyZWQNCj4gICBsaXN0IG9mIGlu
c3RydWN0aW9ucywgY2FsbGVkIHNlZ21lbnRzLiAgQSBzZWdtZW50IGNhbiByZXByZXNlbnQgYW55
DQo+ICAgaW5zdHJ1Y3Rpb24sIHRvcG9sb2dpY2FsIG9yIHNlcnZpY2UtYmFzZWQuICBBIHNlZ21l
bnQgY2FuIGhhdmUgYQ0KPiANCj4gU0I+IEl0IHJlYWxseSBpcyBhIHBpdHkgdGhhdCB3ZSBkaWQg
bm90IHVzZSB0aGUgbW9yZSBkZXNjcmlwdGl2ZSB0ZXJtIGluc3RydWN0aW9ucw0KPiBTQj4gd2hp
Y2ggd291bGQgaGF2ZSBoZWxwIHBlb3BsZSB1bmRlcnN0YW5kIHdoYXQgdGhleSBhcmUuDQoNCg0K
V2VsbCwgSSBiZWxpZXZlIGl0IGlzIHdlbGwgdW5kZXJzdG9vZCBub3cuIFdlIGhhdmUgbXVsdGlw
bGUgdmVuZG9ycyBpbXBsZW1lbnRhdGlvbnMsIG11bHRpcGxlIG9wZXJhdG9y4oCZcyBkZXBsb3lt
ZW50cywgc28gSSBkb27igJl0IHRoaW5rIHdlIGhhdmUgYW4gdW5kZXJzdGFuZGluZyBwcm9ibGVt
Lg0KDQoNCj4gSSB3b25kZXIgaWYgaXQgaXMNCj4gU0I+IHRvbyBsYXRlIHRvIGNoYW5nZT8NCg0K
DQpJIGRvbuKAmXQgbGlrZSB0aGUgaWRlYSB0byBjaGFuZ2UgdGhlIHRlcm1pbm9sb2d5IGFuZCBk
ZXNjcmlwdGlvbiBvZiBzb21ldGhpbmcgdGhhdCBub3cgdGhlIGluZHVzdHJ5IGhhcyB3aWRlbHkg
YWRvcHRlZC4NCg0KSeKAmW0gZmluZSB3aXRoIG1ha2luZyBtaW5vciBjaGFuZ2VzIHNvIHRvIGhl
bHAgcGVvcGxlIHdobyBkbyBub3QgdW5kZXJzdGFuZCB3aGF0IHNlZ21lbnQgcm91dGluZyBpcyBi
dXQgdGhlIGNoYW5nZSBNVVNUIGJlIGxpbWl0ZWQuDQoNClRoZSBkcmFmdCBhbmQgdGhlIHRlY2hu
b2xvZ3kgaXMgbWF0dXJlIGFuZCB3ZWxsIHVuZGVyc3Rvb2QuDQoNCg0KPiBTQj4gU2VydmljZSBi
YXNlZCB3aGF0Pw0KPiANCj4gICBsb2NhbCBzZW1hbnRpYyB0byBhbiBTUiBub2RlIG9yIGdsb2Jh
bCB3aXRoaW4gYW4gU1IgZG9tYWluLiAgU1INCj4gICBhbGxvd3MgdG8gZW5mb3JjZSBhIGZsb3cg
dGhyb3VnaCBhbnkgcGF0aCBhbmQgc2VydmljZSBjaGFpbiB3aGlsZQ0KPiAgIG1haW50YWluaW5n
IHBlci1mbG93IHN0YXRlIG9ubHkgYXQgdGhlIGluZ3Jlc3Mgbm9kZSBvZiB0aGUgU1IgZG9tYWlu
Lg0KPiANCj4gU0I+IEkgd29uZGVyIGlmIHdlIHNob3VsZCBiZSBwdWxsaW5nIHRvZ2V0aGVyIFNS
IGFuZCBTRkMgaW50bw0KPiBTQj4gYSBjb21tb24gYXJjaGl0ZWN0dXJlLCBzaW5jZSB0aGV5IHNl
ZW0gdG8gaGF2ZSBjb252ZXJnZWQ/DQoNCg0Kbm8sIHRoYXTigJlzIGEgdmVyeSBiYWQgaWRlYS4g
VGhlIG1vcmUgeW91IHB1bGwgaW4gdGhlIGxlc3MgeW914oCZbGwgbWFrZSBwcm9ncmVzcy4NCg0K
U1IgaXMgbm90IGRlZGljYXRlZCB0byBzZXJ2aWNlIGNoYWluaW5nLiBTUiBpcyBhIGdlbmVyaWMg
bWVjaGFuaXNtIGxldmVyYWdpbmcgYmFzaWMgcm91dGluZyBjb25jZXB0cy4NCg0KDQo+ICAgU2Vn
bWVudCBSb3V0aW5nIGNhbiBiZSBkaXJlY3RseSBhcHBsaWVkIHRvIHRoZSBNUExTIGFyY2hpdGVj
dHVyZQ0KPiAgIChbUkZDMzAzMV0pIHdpdGggbm8gY2hhbmdlIG9uIHRoZSBmb3J3YXJkaW5nIHBs
YW5lLiAgQSBzZWdtZW50IGlzDQo+ICAgZW5jb2RlZCBhcyBhbiBNUExTIGxhYmVsLiAgQW4gb3Jk
ZXJlZCBsaXN0IG9mIHNlZ21lbnRzIGlzIGVuY29kZWQgYXMNCj4gICBhIHN0YWNrIG9mIGxhYmVs
cy4gIFRoZSBhY3RpdmUgc2VnbWVudCBpcyBvbiB0aGUgdG9wIG9mIHRoZSBzdGFjay4gIEENCj4g
ICBjb21wbGV0ZWQgc2VnbWVudCBpcyBwb3BwZWQgb2ZmIHRoZSBzdGFjay4gIFRoZSBhZGRpdGlv
biBvZiBhIHNlZ21lbnQNCj4gICBpcyBwZXJmb3JtZWQgd2l0aCBhIHB1c2guDQo+IA0KPiBTQj4g
QWxsIHRydWUsIGJ1dCB3ZSBhcmUgZGVzaWduaW5nIGEgc29sdXRpb24gZm9yIGJvdGggTVBMUyBh
bmQgSVAuDQoNCg0KTVBMUyBhbmQgSVB2Ni4NCg0KSSBkb27igJl0IHRoaW5rIGFueW9uZSBpcyB0
cnlpbmcgdG8gYWRkcmVzcyBJUHY0IHNvdXJjZSByb3V0aW5nLg0KDQpIZXJlIHdlIGFyZSBpbiB0
aGUgaW50cm9kdWN0aW9uIHNlY3Rpb24gd2hlcmUgTVBMUyBhbmQgdjYgZGF0YXBsYW5lIGFyZSB2
ZXJ5IGJyaWVmbHkgZGVzY3JpYmVkIChhbmQgaG93IFNSIGNhbiBieSBhcHBsaWVkIHRvIHRoZW0p
Lg0KDQoNCj4gU0I+IFNob3VsZG4ndCB0aGlzIHRleHQgYmUgZXN0YWJsaXNoaW5nIHRoZSBhcmNo
aXRlY3R1cmFsIHByaW5jcGxlcw0KPiBTQj4gZmlyc3QgYmVmb3JlIGdldHRpbmcgZG93biBpbiB0
aGUgd2VlZHMgb2YgdGhlIE1QTFMgc29sdXRpb24/DQoNCg0KdGhpcyBpcyBhbiBpbnRyb2R1Y3Rp
b24gb2YgYWJvdXQgMTAgbGluZXMsIEkgZG9u4oCZdCB0aGluayBpdCDigJxnb2VzIGRvd24gaW4g
dGhlIHNvbHV0aW9u4oCdLg0KDQoNCj4gU0I+DQo+IA0KPiBTQj4gSVAgYW5kIE1QTFMgdG9vayBk
aWZmZXJlbnQgYXBwcm9hY2hlcyBzbyBhdCB0aGlzIGxldmVsIHdlIG5lZWQgdG8NCj4gU0I+IGJl
IGRpc2N1c3NpbmcgdGhlIHByaW5jaXBsZXMsIGFuZCBlc3RhYmxpc2ggdGhlIHByb3BlcnRpZXMg
b2YNCj4gU0I+IHRoZSBsaXN0LCB3aGljaCBhZ2FpbiBhcmUgcmFkaWNhbGx5IGRpZmZlcmVudCwN
Cg0KDQpub3QgcmVhbGx5IOKAnHJhZGljYWxseeKAnS4NCg0KIA0KPiBhbmQgdGhlbiBsZXQgdGhl
DQo+IFNCPiBzb2x1dGlvbnMgZHJhZnRzIGRlc2NyaWJlIHRoZSBpbnN0YW50aWF0aW9uIG9mIHRo
ZSBsaXN0Lg0KPiANCj4gICBJbiB0aGUgU2VnbWVudCBSb3V0aW5nIE1QTFMgaW5zdGFudGlhdGlv
biwgYSBzZWdtZW50IGNvdWxkIGJlIG9mDQo+ICAgc2V2ZXJhbCB0eXBlczoNCj4gDQo+ICAgbyAg
YW4gSUdQIHNlZ21lbnQsDQo+IA0KPiAgIG8gIGEgQkdQIFBlZXJpbmcgc2VnbWVudHMsDQo+IA0K
PiAgIG8gIGFuIExEUCBMU1Agc2VnbWVudCwNCj4gDQo+ICAgbyAgYW4gUlNWUC1URSBMU1Agc2Vn
bWVudCwNCj4gDQo+ICAgbyAgYSBCR1AgTFNQIHNlZ21lbnQuDQo+IA0KPiBTQj4gQWxsIHRydWUs
IGJ1dCByaWdodCBkb3duIGluIHRoZSB3ZWVkcy4gV2hhdCBhYm91dCB0aGUgZnVuY3Rpb25hbA0K
PiBTQj4gZXF1aXZhbGVudHMgaW4gSVA/DQoNCg0KdGhlIGZpcnN0IHR3byBjYW4gYmUgZWl0aGVy
IE1QTFMgb3IgSVB2Ni4gDQoNCg0KPiANCj4gICBUaGUgZmlyc3QgdHdvIChJR1AgYW5kIEJHUCBQ
ZWVyaW5nIHNlZ21lbnRzKSB0eXBlcyBvZiBzZWdtZW50cyBhcmUNCj4gICBkZWZpbmVkIGluIHRo
aXMgZG9jdW1lbnQuICBUaGUgdXNlIG9mIHRoZSBsYXN0IHRocmVlIHR5cGVzIG9mDQo+ICAgc2Vn
bWVudHMgaXMgaWxsdXN0cmF0ZWQgaW4gW0ktRC5pZXRmLXNwcmluZy1zZWdtZW50LXJvdXRpbmct
bXBsc10uDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gRmlsc2ZpbHMsIGV0IGFsLiAgICAgICAgICBF
eHBpcmVzIE1heSAyMywgMjAxNyAgICAgICAgICAgICAgICAgIFtQYWdlIDNdDQo+IA0KPiBJbnRl
cm5ldC1EcmFmdCAgICAgICAgICAgICAgIFNlZ21lbnQgUm91dGluZyAgICAgICAgICAgICAgIE5v
dmVtYmVyIDIwMTYNCj4gDQo+IA0KPiAgIFNlZ21lbnQgUm91dGluZyBjYW4gYmUgYXBwbGllZCB0
byB0aGUgSVB2NiBhcmNoaXRlY3R1cmUgKFtSRkMyNDYwXSksDQo+ICAgd2l0aCBhIG5ldyB0eXBl
IG9mIHJvdXRpbmcgaGVhZGVyLiAgQSBzZWdtZW50IGlzIGVuY29kZWQgYXMgYW4gSVB2Ng0KPiAg
IGFkZHJlc3MuICBBbiBvcmRlcmVkIGxpc3Qgb2Ygc2VnbWVudHMgaXMgZW5jb2RlZCBhcyBhbiBv
cmRlcmVkIGxpc3QNCj4gICBvZiBJUHY2IGFkZHJlc3NlcyBpbiB0aGUgcm91dGluZyBoZWFkZXIu
ICBUaGUgYWN0aXZlIHNlZ21lbnQgaXMNCj4gICBpbmRpY2F0ZWQgYnkgdGhlIERlc3RpbmF0aW9u
IEFkZHJlc3Mgb2YgdGhlIHBhY2tldC4gIFVwb24gY29tcGxldGlvbg0KPiAgIG9mIGEgc2VnbWVu
dCwgYSBwb2ludGVyIGluIHRoZSBuZXcgcm91dGluZyBoZWFkZXIgaXMgaW5jcmVtZW50ZWQgYW5k
DQo+ICAgaW5kaWNhdGVzIHRoZSBuZXh0IHNlZ21lbnQuDQo+IA0KPiBTQj4gQWdhaW4gdGhpcyBp
cyBkb3duIGluIHRoZSB3ZWVkcyBjb25zaWRlcmluZyB0aGF0IHdlIGFyZSBpbiBhbiBhcmNoaXRl
Y3R1cmUNCj4gU0I+IGRvY3VtZW50IGFuZCBhbHNvIHByb3Bvc2VzIHRoZSBkZXRhaWwgb2YgYSBz
b2x1dGlvbiB0aGF0IG1heSBvciBtYXkNCj4gU0I+IG5vdCBiZSBmaW5hbGl6ZWQuDQoNCg0Kbm8s
IGl0IGlzIG5vdCDigJxkb3duIHRvIHRoZSB3ZWVkc+KAnS4gSXQgaXMgYSBicmllZiBpbnRyb2R1
Y3RvcnkgdGV4dCBhYm91dCBTUi1JUHY2Lg0KSWYgeW91IHdhbnQgdGhlIGRldGFpbHMsIHJlYWQg
dGhlIFNSLU1QTFMgYW5kIFNSdjYgZHJhZnRzLg0KDQoNCj4gICBOdW1lcm91cyB1c2UtY2FzZXMg
aWxsdXN0cmF0ZSB0aGUgYmVuZWZpdHMgb2Ygc291cmNlIHJvdXRpbmcgZWl0aGVyDQo+ICAgZm9y
IEZSUiwgT0FNIG9yIFRyYWZmaWMgRW5naW5lZXJpbmcgcmVhc29ucy4NCj4gDQo+IFNCPiBUaGlz
IG5lZWRzIGEgcmVmZXJlbmNlLg0KDQoNCkkgdGhvdWdodCB5b3Ugd2VyZSBzdWdnZXN0aW5nIHRo
ZXJlIHdlcmUgYWxyZWFkeSB0b28gbWFueSByZWZlcmVuY2VzLg0KSSB0aGluayB3ZSB3aWxsIHJl
ZHVjZSB0aGUgbGlzdCBvZiByZWZlcmVuY2VzIGFuZCB0aGVyZWZvcmUgSeKAmWxsIHNraXAgeW91
ciByZWR1bmRhbnQgY29tbWVudHMuDQoNCg0KPiAgIFRoaXMgZG9jdW1lbnQgZGVmaW5lcyBhIHNl
dCBvZiBpbnN0cnVjdGlvbnMgKGNhbGxlZCBzZWdtZW50cykgdGhhdA0KPiAgIGFyZSByZXF1aXJl
ZCB0byBmdWxmaWxsIHRoZSBkZXNjcmliZWQgdXNlLWNhc2VzLiAgVGhlc2Ugc2VnbWVudHMgY2Fu
DQo+ICAgZWl0aGVyIGJlIHVzZWQgaW4gaXNvbGF0aW9uIChvbmUgc2luZ2xlIHNlZ21lbnQgZGVm
aW5lcyB0aGUgc291cmNlDQo+ICAgcm91dGUgb2YgdGhlIHBhY2tldCkgb3IgaW4gY29tYmluYXRp
b24gKHRoZXNlIHNlZ21lbnRzIGFyZSBwYXJ0IG9mIGFuDQo+ICAgb3JkZXJlZCBsaXN0IG9mIHNl
Z21lbnRzIHRoYXQgZGVmaW5lIHRoZSBzb3VyY2Ugcm91dGUgb2YgdGhlIHBhY2tldCkuDQo+IA0K
PiANCj4gMS4xLiAgQ29tcGFuaW9uIERvY3VtZW50cw0KPiANCj4gICBUaGlzIGRvY3VtZW50IGRl
ZmluZXMgdGhlIFNSIGFyY2hpdGVjdHVyZSwgaXRzIHJvdXRpbmcgbW9kZWwsIHRoZQ0KPiAgIElH
UC1iYXNlZCBzZWdtZW50cywgdGhlIEJHUC1iYXNlZCBzZWdtZW50cyBhbmQgdGhlIHNlcnZpY2Ug
c2VnbWVudHMuDQo+IA0KPiAgIFVzZSBjYXNlcyBhcmUgZGVzY3JpYmVkIGluIFtSRkM3ODU1XSwN
Cj4gICBbSS1ELmlldGYtc3ByaW5nLXNlZ21lbnQtcm91dGluZy1jZW50cmFsLWVwZV0sDQo+ICAg
W0ktRC5pZXRmLXNwcmluZy1zZWdtZW50LXJvdXRpbmctbXNkY10sDQo+ICAgW0ktRC5maWxzZmls
cy1zcHJpbmctbGFyZ2Utc2NhbGUtaW50ZXJjb25uZWN0XSwNCj4gICBbSS1ELmlldGYtc3ByaW5n
LWlwdjYtdXNlLWNhc2VzXSwNCj4gICBbSS1ELmlldGYtc3ByaW5nLXJlc2lsaWVuY3ktdXNlLWNh
c2VzXSwgW0ktRC5pZXRmLXNwcmluZy1vYW0tdXNlY2FzZV0NCj4gICBhbmQgW0ktRC5pZXRmLXNw
cmluZy1zci1vYW0tcmVxdWlyZW1lbnRdLg0KPiANCj4gU0I+IEl0IHdvdWxkIGJlIGhlbHBmdWwg
dG8gdGhlIHJlYWRlciB0byBpbmRpY2F0ZSB0aGUgY29udGVudHMsIHNvIHRoYXQNCj4gU0I+IGlm
IHRoaXMganVzdCBiZWNvbWVzIGEgc2V0IG9mIFJGQyBudW1iZXJzIHRoZXkgaGFkIHNvbWUgYmV0
dGVyIGl0cw0KPiBTQj4gd2hhdCB0aGUgZG9jdW1lbnRzIGFyZSBhYm91dC4NCj4gU0I+DQo+IFNC
PiBJdCB3b3VsZCBhbHNvIGJlIHVzZWZ1bCB0byBnZXQgYW4gdW5kZXJzdGFuZGluZyBmcm9tIHRo
ZSBBRA0KPiBTQj4gYXMgdG8gd2hpY2ggb2YgdGhlIHVzZSBjYXNlIGRvY3VtZW50cyB3aWxsIGJl
IHB1Ymxpc2hlZCwgbWVyZ2VkDQo+IFNCPiBiZWNvbWUgcGFydCBvZiBhIHdpa2kgZXRjIGdpdmVu
IHJlY2VudCBwb2xpY3kgc3RhdGVtZW50cyBmcm9tIHRoZSBJRVNHLg0KPiANCj4gDQo+ICAgU2Vn
bWVudCBSb3V0aW5nIGZvciBNUExTIGRhdGFwbGFuZSBpcyBkb2N1bWVudGVkIGluDQo+ICAgW0kt
RC5pZXRmLXNwcmluZy1zZWdtZW50LXJvdXRpbmctbXBsc10uDQo+IA0KPiAgIFNlZ21lbnQgUm91
dGluZyBmb3IgSVB2NiBkYXRhcGxhbmUgaXMgZG9jdW1lbnRlZCBpbg0KPiAgIFtJLUQuaWV0Zi02
bWFuLXNlZ21lbnQtcm91dGluZy1oZWFkZXJdLg0KPiANCj4gICBJR1AgcHJvdG9jb2wgZXh0ZW5z
aW9ucyBmb3IgU2VnbWVudCBSb3V0aW5nIGFyZSBkZXNjcmliZWQgaW4NCj4gICBbSS1ELmlldGYt
aXNpcy1zZWdtZW50LXJvdXRpbmctZXh0ZW5zaW9uc10sDQo+ICAgW0ktRC5pZXRmLW9zcGYtc2Vn
bWVudC1yb3V0aW5nLWV4dGVuc2lvbnNdIGFuZA0KPiAgIFtJLUQuaWV0Zi1vc3BmLW9zcGZ2My1z
ZWdtZW50LXJvdXRpbmctZXh0ZW5zaW9uc10gcmVmZXJyZWQgaW4gdGhpcw0KPiAgIGRvY3VtZW50
IGFzICJJR1AgU1IgZXh0ZW5zaW9ucyBkb2N1bWVudHMiLg0KPiANCj4gICBUaGUgRlJSIHNvbHV0
aW9uIGZvciBTUiBpcyBkb2N1bWVudGVkIGluDQo+ICAgW0ktRC5mcmFuY29pcy1ydGd3Zy1zZWdt
ZW50LXJvdXRpbmctdGktbGZhXS4NCj4gDQo+ICAgVGhlIFBDRVAgcHJvdG9jb2wgZXh0ZW5zaW9u
cyBmb3IgU2VnbWVudCBSb3V0aW5nIGFyZSBkZWZpbmVkIGluDQo+ICAgW0ktRC5pZXRmLXBjZS1z
ZWdtZW50LXJvdXRpbmddLg0KPiANCj4gDQo+IA0KPiANCj4gRmlsc2ZpbHMsIGV0IGFsLiAgICAg
ICAgICBFeHBpcmVzIE1heSAyMywgMjAxNyAgICAgICAgICAgICAgICAgIFtQYWdlIDRdDQo+IA0K
PiBJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICAgIFNlZ21lbnQgUm91dGluZyAgICAgICAgICAg
ICAgIE5vdmVtYmVyIDIwMTYNCj4gDQo+IA0KPiAgIFRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIFNS
L01QTFMgd2l0aCBvdGhlciBNUExTIFNpZ25hbGluZyBwbGFuZXMgaXMNCj4gICBkb2N1bWVudGVk
IGluIFtJLUQuaWV0Zi1zcHJpbmctc2VnbWVudC1yb3V0aW5nLWxkcC1pbnRlcm9wXS4NCj4gDQo+
IDIuICBUZXJtaW5vbG9neQ0KPiANCj4gICBTZWdtZW50OiBhbiBpbnN0cnVjdGlvbiBhIG5vZGUg
ZXhlY3V0ZXMgb24gdGhlIGluY29taW5nIHBhY2tldCAoZS5nLjoNCj4gICBmb3J3YXJkIHBhY2tl
dCBhY2NvcmRpbmcgdG8gc2hvcnRlc3QgcGF0aCB0byBkZXN0aW5hdGlvbiwgb3IsIGZvcndhcmQN
Cj4gICBwYWNrZXQgdGhyb3VnaCBhIHNwZWNpZmljIGludGVyZmFjZSwgb3IsIGRlbGl2ZXIgdGhl
IHBhY2tldCB0byBhDQo+ICAgZ2l2ZW4gYXBwbGljYXRpb24vc2VydmljZSBpbnN0YW5jZSkuDQo+
IA0KPiAgIFNJRDogYSBTZWdtZW50IElkZW50aWZpZXIuICBFeGFtcGxlcyBvZiBTSURzIGFyZTog
YSBNUExTIGxhYmVsLCBhbg0KPiAgIGluZGV4IHZhbHVlIGluIGEgTVBMUyBsYWJlbCBzcGFjZSwg
YW4gSVB2NiBhZGRyZXNzLiAgT3RoZXIgdHlwZXMgb2YNCj4gICBTSURzIGNhbiBiZSBkZWZpbmVk
IGluIHRoZSBmdXR1cmUuDQo+IA0KPiBTQj4gRGVmaW5pdGlvbiBieSBleGFtcGxlIGlzIG5vdCBh
IGRlZmluaXRpb24uDQo+IA0KPiAgIFNlZ21lbnQgTGlzdDogb3JkZXJlZCBsaXN0IG9mIFNJRCdz
IGVuY29kaW5nIHRoZSB0b3BvbG9naWNhbCBhbmQNCj4gICBzZXJ2aWNlIHNvdXJjZSByb3V0ZSBv
ZiB0aGUgcGFja2V0Lg0KPiANCj4gU0I+IElzbid0IGl0IGFuIG9yZGVyZWQgbGlzdCBvZiBTSUQg
ZW5jb2RpbmcgdGhlIG9yZGVyZWQgc2V0IG9mDQo+IFNCPiBpbnN0cnVjdGlvbnMgdG8gYmUgYXBw
bGllcyB0byB0aGUgcGFja2V0IGFzIGl0IHRyYXZlcnNlcyB0aGUNCj4gU0I+IFNSIGRvbWFpbj8N
Cg0KDQp5ZXMuDQoNCg0KPiAgIEl0IGlzIGEgc3RhY2sgb2YgbGFiZWxzIGluIHRoZQ0KPiAgIE1Q
TFMgYXJjaGl0ZWN0dXJlLiAgSXQgaXMgYW4gb3JkZXJlZCBsaXN0IG9mIElQdjYgYWRkcmVzc2Vz
IGluIHRoZQ0KPiAgIElQdjYgYXJjaGl0ZWN0dXJlLg0KPiANCj4gU0I+IEFnYWluIHRoaXMgYSBh
cmNoaXRlY3R1cmUgaXQgc2hvdWxkIG5vdCBnbyBkb3duIGluIHRob3NlIHdlZWRzLg0KPiANCj4g
DQo+ICAgU2VnbWVudCBSb3V0aW5nIERvbWFpbiAoU1IgRG9tYWluKTogdGhlIHNldCBvZiBub2Rl
cyBwYXJ0aWNpcGF0aW5nDQo+ICAgaW50byB0aGUgc291cmNlIGJhc2VkIHJvdXRpbmcgbW9kZWwu
DQo+IFNCPiBTdXJlbHkgaXMgaXMgdGhlIHNldCBvZiBub2RlcyB0aGF0IGZvcm0gYW4gU1IgSW5z
dGFuY2UgaGF2aW5nIGENCj4gU0I+IGNvbW1vbiB2aWV3IG9mIHRoZSBtYXBwaW5nIG9mIFNJRCB0
byBpbnN0cnVjdGlvbiBkZWZpbml0aW9uDQoNCg0KaWYgYnkg4oCcY29tbW9uIHZpZXfigJ0geW91
IGRvIGludGVuZCB0aGF0IGFsbCBub2RlcyBtdXN0IGhhdmUgdGhlIHNhbWUgdmlldywgdGhlbiB5
b3XigJlyZSB3cm9uZy4gSW4gbWFueSBTUiBkb21haW4gdGhlIHZpZXcgb2Ygc2VnbWVudHMgZWFj
aCBub2RlIGhhcyBtYXkgYmUgZGlmZmVyZW50IChhIHN1YnNldCBvciBzdXBlcnNldCBvciBpbnRl
cnNlY3Rpb24gb2Ygc2V0cywgZXRjLikuDQoNCg0KPiAgIFRoZXNlIG5vZGVzIG1heSBiZSBjb25u
ZWN0ZWQgdG8NCj4gICB0aGUgc2FtZSBwaHlzaWNhbCBpbmZyYXN0cnVjdHVyZSAoZS5nLjogYSBT
ZXJ2aWNlIFByb3ZpZGVyJ3MgbmV0d29yaykNCj4gICBhcyB3ZWxsIGFzIG5vZGVzIHJlbW90ZWx5
IGNvbm5lY3RlZCB0byBlYWNoIG90aGVyIChlLmcuOiBhbg0KPiAgIGVudGVycHJpc2UgVlBOIG9y
IGFuIG92ZXJsYXkpLiAgTm90ZSB0aGF0IGEgU1IgZG9tYWluIG1heSBhbHNvIGJlDQo+ICAgY29u
ZmluZWQgd2l0aGluIGFuIElHUCBpbnN0YW5jZSwgaW4gd2hpY2ggY2FzZSBpdCBpcyBuYW1lZCBT
Ui1JR1ANCj4gICBEb21haW4uDQo+IA0KPiAgIEFjdGl2ZSBzZWdtZW50OiB0aGUgc2VnbWVudCB0
aGF0IE1VU1QgYmUgdXNlZCBieSB0aGUgcmVjZWl2aW5nIHJvdXRlcg0KPiAgIHRvIHByb2Nlc3Mg
dGhlIHBhY2tldC4gIEluIHRoZSBNUExTIGRhdGFwbGFuZSBpcyB0aGUgdG9wIGxhYmVsLiAgSW4N
Cj4gICB0aGUgSVB2NiBkYXRhcGxhbmUgaXMgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3Mgb2YgYSBw
YWNrZXQgaGF2aW5nIHRoZQ0KPiAgIFNlZ21lbnQgUm91dGluZyBIZWFkZXIgYXMgZGVmaW5lZCBp
bg0KPiAgIFtJLUQuaWV0Zi02bWFuLXNlZ21lbnQtcm91dGluZy1oZWFkZXJdLg0KPiANCj4gU0I+
IEkgYW0gc3VycHJpc2VkIHRoYXQgeW91IGRvbid0IG5lZWQgdG8gZGVmaW5lIFBPUCBvciBSZW1v
dmUNCg0KDQpORVhUIGluIHRoZSBhcmNoaXRlY3R1cmUgaXMgaW1wbGVtZW50ZWQgYXMgYSBQT1Ag
aW4gTVBMUy4NCg0KDQo+ICAgUFVTSDogdGhlIGluc2VydGlvbiBvZiBhIHNlZ21lbnQgYXQgdGhl
IGhlYWQgb2YgdGhlIFNlZ21lbnQgbGlzdC4NCj4gDQo+IFNCPiBUaGlzIHdvcmtzIGZvciBhIHN0
YWNrIG1vZGVsLCBidXQgSSBhbSBub3Qgc3VyZSBpdCB3b3JrcyBmb3INCj4gU0I+IGEgbGlzdCBt
b2RlbCB3aGVyZSB5b3UgcmVhbGx5IGRvIGFuIGluc2VydC4NCg0KDQp0aGUgdGV4dCwgaW50ZW50
aW9uYWxseSwgdXNlcyB0aGUgd29yZCDigJxpbnNlcnTigJ0uIEFyY2hpdGVjdHVyYWxseSwgYSDi
gJxQVVNI4oCdIGlzIGZpbmUgZm9yIGJvdGggdHlwZXMgb2Ygb3BlcmF0aW9ucyAoYW4gTVBMUyBw
dXNoIGFuZCBhbiBJUHY2IGluc2VydCkuDQoNCg0KPiANCj4gICBORVhUOiB0aGUgYWN0aXZlIHNl
Z21lbnQgaXMgY29tcGxldGVkLCB0aGUgbmV4dCBzZWdtZW50IGJlY29tZXMNCj4gICBhY3RpdmUu
DQo+IA0KPiAgIENPTlRJTlVFOiB0aGUgYWN0aXZlIHNlZ21lbnQgaXMgbm90IGNvbXBsZXRlZCBh
bmQgaGVuY2UgcmVtYWlucw0KPiAgIGFjdGl2ZS4gIFRoZSBDT05USU5VRSBpbnN0cnVjdGlvbiBp
cyBpbXBsZW1lbnRlZCBhcyB0aGUgU1dBUA0KPiAgIGluc3RydWN0aW9uIGluIHRoZSBNUExTIGRh
dGFwbGFuZS4gIEluIElQdjYsIHRoaXMgaXMgdGhlIHBsYWluIElQdjYNCj4gICBmb3J3YXJkaW5n
IGFjdGlvbiBvZiBhIHJlZ3VsYXIgSVB2NiBwYWNrZXQgYWNjb3JkaW5nIHRvIGl0cw0KPiAgIERl
c3RpbmF0aW9uIEFkZHJlc3MuDQo+IA0KPiBTQj4gQWdhaW4gSSB3b3JyeSBhYm91dCBkZWZpbml0
aW9uIGJ5IGV4YW1wbGUuDQoNCg0KU1IgZG9lc27igJl0IGludmVudCBhbnl0aGluZyBuZXcgaW4g
dGhlIE1QTFMgZGF0YXBsYW5lIGFuZCBldmVuIGluIHRoZSB2NiBkYXRhcGxhbmUgKHdoZXJlIHNv
dXJjZSByb3V0aW5nIHdpdGggcm91dGluZyBoZWFkZXJzIGhhcyBiZWVuIGludmVudGVkIDIwIHll
YXJzIGFnbykgc28gSSBkb27igJl0IHNlZSB3aHkgd2UgaGF2ZSB0byBkZWZpbmUgc29tZXRoaW5n
IGRpZmZlcmVudCBmcm9tIHdoYXQgZXhpc3RzIHRvZGF5Lg0KDQoNCj4gICBTUiBHbG9iYWwgQmxv
Y2sgKFNSR0IpOiBsb2NhbCBwcm9wZXJ0eSBvZiBhbiBTUiBub2RlLiAgSW4gdGhlIE1QTFMNCj4g
ICBhcmNoaXRlY3R1cmUsIFNSR0IgaXMgdGhlIHNldCBvZiBsb2NhbCBsYWJlbHMgcmVzZXJ2ZWQg
Zm9yIGdsb2JhbA0KPiAgIHNlZ21lbnRzLiAgVXNpbmcgdGhlIHNhbWUgU1JHQiBvbiBhbGwgbm9k
ZXMgd2l0aGluIHRoZSBTUiBkb21haW4gZWFzZQ0KPiAgIG9wZXJhdGlvbnMgYW5kIHRyb3VibGVz
aG9vdGluZyBhbmQgaXMgZXhwZWN0ZWQgdG8gYmUgYSBkZXBsb3ltZW50DQo+IA0KPiANCj4gDQo+
IEZpbHNmaWxzLCBldCBhbC4gICAgICAgICAgRXhwaXJlcyBNYXkgMjMsIDIwMTcgICAgICAgICAg
ICAgICAgICBbUGFnZSA1XQ0KPiANCj4gSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgICBTZWdt
ZW50IFJvdXRpbmcgICAgICAgICAgICAgICBOb3ZlbWJlciAyMDE2DQo+IA0KPiANCj4gICBndWlk
ZWxpbmUuICBJbiB0aGUgSVB2NiBhcmNoaXRlY3R1cmUsIHRoZSBlcXVpdmFsZW50IG9mIHRoZSBT
UkdCIGlzDQo+ICAgaW4gZmFjdCB0aGUgc2V0IG9mIGFkZHJlc3NlcyB1c2VkIGFzIGdsb2JhbCBz
ZWdtZW50cy4gIFNpbmNlIHRoZXJlDQo+ICAgYXJlIG5vIHJlc3RyaWN0aW9ucyBvbiB3aGljaCBJ
UHY2IGFkZHJlc3MgY2FuIGJlIHVzZWQsIHRoZSBjb25jZXB0IG9mDQo+ICAgdGhlIFNSR0IgaW5j
bHVkZXMgYWxsIElQdjYgZ2xvYmFsIGFkZHJlc3Mgc3BhY2UgdXNlZCB3aXRoaW4gdGhlIFNSDQo+
ICAgZG9tYWluLg0KPiANCj4gU0I+IEkgd29ycnkgYWJvdXQgd2hldGhlciB0aGlzIGlzIGFuIGFy
Y2hpdGVjdHVyYWwgY29uY2VwdCBvZiBhDQo+IFNCPiBzcGVjaWZpYyBkYXRhcGxhbmUgY29uY2Vw
dCwgb3IgYW4gaW1wbGVtZW50YXRpb24gY29uY2VwdC4gU2luY2UNCj4gU0I+IHRoZSBJUHY2IGRl
c2lnbiBtb3ZlZCBmcm9tIGEgc2V0IG9mIHNob3J0IGluc3RydWN0aW9ucyB0byBmdWxsDQo+IFNC
PiBJUHY2IGFkZHJlc3NlcywgdGhpcyBkb2VzIG5vdCBsb29rIGxpa2UgYW4gYXJjaGl0ZWN0dXJh
bCBjb25zdHJ1Y3QuDQoNCg0KVGhlIGlwdjYgYWRkcmVzcyBpcyB0aGUgaW5zdGFudGlhdGlvbiBv
ZiBhIHNlZ21lbnQuDQoNCkEgc2VnbWVudCBpcyBhbiBpbnN0cnVjdGlvbi4NCg0KVGhlcmVmb3Jl
LCBhbiBJUHY2IGFkZHJlc3MgaW4gYSBTUiBkb21haW4gbWF5IGJlIHVzZWQgYXMgYW4gaW5zdHJ1
Y3Rpb24uDQoNCg0KPiAgIEdsb2JhbCBTZWdtZW50OiB0aGUgcmVsYXRlZCBpbnN0cnVjdGlvbiBp
cyBzdXBwb3J0ZWQgYnkgYWxsIHRoZSBTUi0NCj4gICBjYXBhYmxlIG5vZGVzIGluIHRoZSBkb21h
aW4uDQo+IA0KPiBTQj4gaW5zdHJ1Y3Rpb24gb3IgaWRlbnRpZmllci4NCg0KDQp0aGUgc2VnbWVu
dCBpcyBhbiBpbnN0cnVjdGlvbiwgdGhlIFNJRCBpcyB0aGUgaWRlbnRpZmllciBvZiB0aGUgaW5z
dHJ1Y3Rpb24uDQoNCg0KPiBJc24ndCB0aGUgcG9pbnQgYWJvdXQgdGhpcyB0aGF0IGFueSBub2Rl
DQo+IFNCPiBrbm93cyBob3cgdG8gZXhlY3V0ZSBpdHMgdmlldyBvZiB0aGUgaW5zdHJ1Y3Rpb24s
IGFuZCBpbmRlZWQNCj4gU0I+IGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIG1hcHBpbmcgYXQgc29t
ZSBub2RlcyAoZm9yIGV4YW1wbGUgZm9yd2FyZCkNCj4gU0I+IG1heSBiZSBkaWZmZXJlbnQgZnJv
bSB0aGUgbWFwcGluZyBhdCBhbm90aGVyIG5vZGUgKGZvciBleGFtcGxlDQo+IFNCPiByZWNlaXZl
LCBvciBkZWxpdmVyIHRvIGF0dGFjaGVkIGZpcmV3YWxsKQ0KDQoNCm5vLCBhIHNlZ21lbnQgaXMg
YSBwcmVjaXNlIGluc3RydWN0aW9uLiBZb3UgdmFu4oCZdCBoYXZlIHRoaXMgbWlzbWF0Y2ggYmV0
d2VlbiBzZWdtZW50cy4NCg0KaW4geW91ciBleGFtcGxlLCB0aGUgc2VnbWVudCBjb3JyZXNwb25k
aW5nIHRvIGEgZ2l2ZW4gZmlyZXdhbGwgcHJvY2Vzc2luZyBoYXMgbWVhbmluZyBvbmx5IGluIHRo
ZSBub2RlIGF0dGFjaGluZyB0aGUgZmlyZXdhbGwgKG9yIHRoZSBmaXJld2FsbCBpdHNlbGYpLg0K
DQpBIGdsb2JhbCBzZWdtZW50IGhhcyBhIHNlbWFudGljIGFncmVlZCBhbmQgaG9ub3JlZCBieSBh
bGwgbm9kZXMuDQoNCg0KPiAgIEluIHRoZSBNUExTIGFyY2hpdGVjdHVyZSwgYSBHbG9iYWwNCj4g
ICBTZWdtZW50IGhhcyBhIGdsb2JhbGx5LXVuaXF1ZSBpbmRleC4gIFRoZSByZWxhdGVkIGxvY2Fs
IGxhYmVsIGF0IGENCj4gICBnaXZlbiBub2RlIE4gaXMgZm91bmQgYnkgYWRkaW5nIHRoZSBnbG9i
YWxseS11bmlxdWUgaW5kZXggdG8gdGhlIFNSR0INCj4gICBvZiBub2RlIE4uICBJbiB0aGUgSVB2
NiBhcmNoaXRlY3R1cmUsIGEgZ2xvYmFsIHNlZ21lbnQgaXMgYSBnbG9iYWxseS0NCj4gICB1bmlx
dWUgSVB2NiBhZGRyZXNzLg0KPiANCj4gU0I+IEFnYWluIHRoaXMgbXVkZGxlcyBhcmNoaXRlY3R1
cmUgYW5kIG1hcHBpbmcgdG8gYW4gaW5zdGFudGlhdGlvbg0KPiBTQj4gb2YgdGhhdCBhcmNoaXRl
Y3R1cmUuDQoNCg0Kd2hpY2ggaXMgYW4gaWxsdXN0cmF0aXZlIGFuZCB1c2VmdWwgZXhwbGFuYXRp
b24uDQoNCg0KPiBTQj4gbml0IHMvaGFzIGEgZ2xvYmFsbHktdW5pcXVlLyBpcyBhIGdsb2JhbGx5
LXVuaXF1ZS8NCj4gU0I+IEhvd2V2ZXIgdGhpcyBiZWdzIHRoZSBxdWVzdGlvbiBvZiB0aGUgc2Nv
cGUgb2YgZ2xvYmFsLiBDZXJ0YWlubHkNCj4gU0I+IGluIE1QTFMgaXQgaXMgcmVzdHJpY3RlZCB0
byB0aGUgU1ItRG9tYWluLCBhbmQgZXZlbiB0aGVuIGl0IG1heQ0KPiBTQj4gb25seSBiZSBhIHN1
Yi1zZXQgb2YgaXQuDQoNCj4gDQo+ICAgTG9jYWwgU2VnbWVudDogdGhlIHJlbGF0ZWQgaW5zdHJ1
Y3Rpb24gaXMgc3VwcG9ydGVkIG9ubHkgYnkgdGhlIG5vZGUNCj4gICBvcmlnaW5hdGluZyBpdC4N
Cj4gDQo+IFNCPiBBZ2FpbiBJIHRoaW5rIGl0IGlzIHRoZSBtYXBwaW5nIG9mIHRoZSBpbnN0cnVj
dGlvbiBpZGVudGlmaWVyIHRvDQo+IFNCPiB0aGUgaW5zdHJ1Y3Rpb24gcmF0aGVyIHRoYW4gdGhl
IGluc3RydWN0aW9uLg0KDQoNCnRoZSBzZWdtZW50IGlzIHRoZSBpbnN0cnVjdGlvbi4gSXQgY2Fu
IGJlIGxvY2FsIG9yIGdsb2JhbC4NCg0KdGhlIFNJRCBpcyB0aGUgaWRlbnRpZmllciBhbmQgY2Fu
IGFsc28gYmUgbG9jYWwgb3IgZ2xvYmFsLg0KDQoNCj4gICBJbiB0aGUgTVBMUyBhcmNoaXRlY3R1
cmUsIHRoaXMgaXMgYSBsb2NhbCBsYWJlbA0KPiAgIG91dHNpZGUgdGhlIFNSR0IuICBJbiB0aGUg
SVB2NiBhcmNoaXRlY3R1cmUsIHRoaXMgY2FuIGJlIGFueSBJUHY2DQo+ICAgYWRkcmVzcyB3aG9z
ZSByZWFjaGFiaWxpdHkgaXMgbm90IGFkdmVydGlzZWQgaW4gYW55IHJvdXRpbmcgcHJvdG9jb2wN
Cj4gICAoaGVuY2UsIHRoZSBzZWdtZW50IGlzIGtub3duIG9ubHkgYnkgdGhlIGxvY2FsIG5vZGUp
Lg0KPiANCj4gU0I+IFdhaXQgYSBtb21lbnQgdGhlIGluc3RydWN0aW9uIGlzIHVuZGVyc3Rvb2Qg
YnkgdGhlIGltcG9zaW5nIG5vZGUocykNCj4gU0I+IGFuZCB0aGUgZXhlY3V0aW5nIG5vZGUNCg0K
DQp0aGUgaW1wb3Npbmcgbm9kZSBtYXkganVzdCBoYXZlIGJlZW4gaW5zdHJ1Y3RlZC9wcm9ncmFt
bWVkIHRvIHB1c2gvaW5zZXJ0IHRoZSBzZWdtZW50IHdpdGhvdXQgaGF2aW5nIGFueSBvdGhlciBr
bm93bGVkZ2UgYWJvdXQgaXQuDQoNCg0KPiAgIElHUCBTZWdtZW50OiB0aGUgZ2VuZXJpYyBuYW1l
IGZvciBhIHNlZ21lbnQgYXR0YWNoZWQgdG8gYSBwaWVjZSBvZg0KPiAgIGluZm9ybWF0aW9uIGFk
dmVydGlzZWQgYnkgYSBsaW5rLXN0YXRlIElHUCwgZS5nLiBhbiBJR1AgcHJlZml4IG9yIGFuDQo+
ICAgSUdQIGFkamFjZW5jeS4NCj4gDQo+IFNCPiBJIGRvbid0IHRoaW5rIGl0J3MgYSBuYW1lLiBJ
c24ndCBpdCBzaW1wbHkgYSBzZWdtZW50IHRoYXQgaXMgYWR2ZXJ0aXNlZA0KPiBTQj4gYnkgYW4g
SUdQPyBPZiBjb3Vyc2UgdGhhdCB0YWtlcyB1cyBiYWNrIHRvIHRoZSBzY29waW5nIGRlZmluaXRp
b24sIHNpbmNlDQo+IFNCPiBhbGwgbm9kZXMgcmVjZWl2ZSB0aGUgSUdQIGluZm9ybWF0aW9uLg0K
DQoNCm5vdCBhbGwgbm9kZXMuIE9ubHkgdGhlIG5vZGVzIHdoZXJlIHRoZSBJR1AgaGFzIGJlZW4g
Y29uZmlndXJlZC4NCg0KDQo+ICAgSUdQLXByZWZpeCBTZWdtZW50LCBQcmVmaXgtU0lEOiBhbiBJ
R1AtUHJlZml4IFNlZ21lbnQgaXMgYW4gSUdQDQo+ICAgc2VnbWVudCBhdHRhY2hlZCB0byBhbiBJ
R1AgcHJlZml4Lg0KPiANCj4gU0I+IFdoYXQgZG9lcyBhdHRhY2hlZCBtZWFuIGhlcmU/DQoNCg0K
bWFwcGVkIHRvLiDigJxhdHRhY2jigJ0gcmVmZXJzIHRvIHRoZSBjb250cm9sIHBsYW5lIHdoZXJl
IHRoZSBwcmVmaXggaXMgYWR2ZXJ0aXNlZCB3aXRoIGFuIOKAnGF0dGFjaGVk4oCdIGF0dHJpYnV0
ZSBvciBUTFYuIA0KDQpJIGFncmVlIHRoYXQgdGhpcyBkZWZpbml0aW9uIHJlcXVpcmVzIHNvbWUg
cm91dGluZyBza2lsbHMgbm90IGV2ZXJ5b25lIGlzIHN1cHBvc2VkIHRvIGhhdmUuLi4NCg0KDQo+
ICAgQW4gSUdQLVByZWZpeCBTZWdtZW50IGlzIGdsb2JhbA0KPiAgICh1bmxlc3MgZXhwbGljaXRs
eSBhZHZlcnRpc2VkIG90aGVyd2lzZSkgd2l0aGluIHRoZSBTUiBJR1AgaW5zdGFuY2UvDQo+ICAg
dG9wb2xvZ3kgYW5kIGlkZW50aWZpZXMgYW4gaW5zdHJ1Y3Rpb24gdG8gZm9yd2FyZCB0aGUgcGFj
a2V0IGFsb25nDQo+ICAgdGhlIHBhdGggY29tcHV0ZWQgdXNpbmcgdGhlIHJvdXRpbmcgYWxnb3Jp
dGhtIHNwZWNpZmllZCBpbiB0aGUNCj4gICBhbGdvcml0aG0gZmllbGQsIGluIHRoZSB0b3BvbG9n
eSBhbmQgdGhlIElHUCBpbnN0YW5jZSB3aGVyZSBpdCBpcw0KPiAgIGFkdmVydGlzZWQuDQo+IA0K
PiBTQj4gTW9yZSBwcmVjaXNlbHkgaXNuJ3QgaXQgYW4gaW5zdHJ1Y3Rpb24gdG8gZm9yd2FyZCBh
IHBhY2tldA0KPiBTQj4gYWxvbmcgdGhlIHBhdGggY29tcHV0ZWQgZm9yIGEgc3BlY2lmaWVkIHBy
ZWZpeD8NCg0KDQp5b3UgbWVhbiDigJxsZXNzIHByZWNpc2VseeKAnS4uLiB5b3VyIGRlZmluaXRp
b24gaXMgYSBzdW1tYXJpemVkIHZlcnNpb24gb2YgdGhlIGN1cnJlbnQgb25lLiBUaGUgY3VycmVu
dCBvbmUgbWFrZXMgdGhlIGRpc3RpbmN0aW9uIG9mIHRoZSBhbGdvcml0aG0uIFBsZWFzZSBiZSBz
dXJlIHlvdeKAmXJlIGZhbWlsaWFyIHdpdGggdGhlIGNvbmNlcHQuDQoNCg0KPiBUaGUgUHJlZml4
LVNJRCBpcyB0aGUgU0lEIG9mIHRoZSBJR1AtUHJlZml4IFNlZ21lbnQuDQo+IFNCPiBJIHRoaW5r
IHRoYXQgdGhpcyBzaG91bGQgYmUgYSBzZXBhcmF0ZSBkZWZpbml0aW9uLg0KPiANCj4gICBJR1At
QW55Y2FzdDogYW4gSUdQLUFueWNhc3QgU2VnbWVudCBpcyBhbiBJR1AtcHJlZml4IHNlZ21lbnQg
d2hpY2gNCj4gICBkb2VzIG5vdCBpZGVudGlmeSBhIHNwZWNpZmljIHJvdXRlciwgYnV0IGEgc2V0
IG9mIHJvdXRlcnMuICBUaGUgdGVybXMNCj4gICAiQW55Y2FzdCBTZWdtZW50IiBvciAiQW55Y2Fz
dC1TSUQiIGFyZSBvZnRlbiB1c2VkIGFzIGFuIGFiYnJldmlhdGlvbi4NCj4gDQo+ICAgSUdQLUFk
amFjZW5jeTogYW4gSUdQLUFkamFjZW5jeSBTZWdtZW50IGlzIGFuIElHUCBzZWdtZW50IGF0dGFj
aGVkIHRvDQo+ICAgYW4gdW5pZGlyZWN0aW9uYWwgYWRqYWNlbmN5IG9yIGEgc2V0IG9mIHVuaWRp
cmVjdGlvbmFsIGFkamFjZW5jaWVzLg0KPiAgIEJ5IGRlZmF1bHQsIGFuIElHUC1BZGphY2VuY3kg
U2VnbWVudCBpcyBsb2NhbCAodW5sZXNzIGV4cGxpY2l0bHkNCj4gICBhZHZlcnRpc2VkIG90aGVy
d2lzZSkgdG8gdGhlIG5vZGUgdGhhdCBhZHZlcnRpc2VzIGl0Lg0KPiANCj4gU0I+IFdoYXQgYXJl
IHRoZSBzZW1hbnRpY3Mgb2YgYSBub24gbG9jYWwgYWRqYWNlbmN5IHNlZ21lbnQ/DQoNCg0KYSBn
bG9iYWwgYWRqYWNlbmN5IHNlZ21lbnQgaXMgYSBnbG9iYWwgc2VnbWVudCB3aXRoIGEgZ2xvYmFs
IFNJRC4NCg0KDQo+ICAgSUdQLU5vZGU6IGFuIElHUC1Ob2RlIFNlZ21lbnQgaXMgYW4gSUdQLVBy
ZWZpeCBTZWdtZW50IHdoaWNoDQo+ICAgaWRlbnRpZmllcyBhIHNwZWNpZmljIHJvdXRlciAoZS5n
LiBhIGxvb3BiYWNrKS4gIFRoZSB0ZXJtcyAiTm9kZQ0KPiAgIFNlZ21lbnQiIG9yIE5vZGUtU0lE
IiBhcmUgb2Z0ZW4gdXNlZCBhcyBhbiBhYmJyZXZpYXRpb24uDQo+IA0KPiAgIFNSIFR1bm5lbDog
YSBsaXN0IG9mIHNlZ21lbnRzIHRvIGJlIHB1c2hlZCBvbiB0aGUgcGFja2V0cyBkaXJlY3RlZCBv
bg0KPiAgIHRoZSB0dW5uZWwuICBUaGUgbGlzdCBvZiBzZWdtZW50cyBjYW4gYmUgc3BlY2lmaWVk
IGV4cGxpY2l0bHkgb3INCj4gICBpbXBsaWNpdGx5IHZpYSBhIHNldCBvZiBhYnN0cmFjdCBjb25z
dHJhaW50cyAobGF0ZW5jeSwgYWZmaW5pdHksDQo+ICAgU1JMRywgLi4uKS4gIEluIHRoZSBsYXR0
ZXIgY2FzZSwgYSBjb25zdHJhaW50LWJhc2VkIHBhdGggY29tcHV0YXRpb24NCj4gDQo+IA0KPiAN
Cj4gRmlsc2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBpcmVzIE1heSAyMywgMjAxNyAgICAgICAg
ICAgICAgICAgIFtQYWdlIDZdDQo+IA0KPiBJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICAgIFNl
Z21lbnQgUm91dGluZyAgICAgICAgICAgICAgIE5vdmVtYmVyIDIwMTYNCj4gDQo+IA0KPiAgIGlz
IHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBsaXN0IG9mIHNlZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0
aGUgdHVubmVsLg0KPiAgIFRoZSBjb21wdXRhdGlvbiBjYW4gYmUgbG9jYWwgb3IgZGVsZWdhdGVk
IHRvIGEgUENFIHNlcnZlci4gIEFuIFNSDQo+ICAgdHVubmVsIGNhbiBiZSBjb25maWd1cmVkIGJ5
IHRoZSBvcGVyYXRvciwgcHJvdmlzaW9uZWQgdmlhIG5ldGNvbmYgb3INCj4gICBwcm92aXNpb25l
ZCB2aWEgUENFUC4gIEFuIFNSIHR1bm5lbCBjYW4gYmUgdXNlZCBmb3IgdHJhZmZpYy0NCj4gICBl
bmdpbmVlcmluZywgT0FNIG9yIEZSUiByZWFzb25zLg0KPiANCj4gU0I+IFNvIHdoZXJlIGRvZXMg
dHVubmVsIGZpdCBpbnRvIHRoYXQgZGVmaW5pdGlvbj8gSXNuJ3QgdGhlIHBvaW50DQo+IFNCPiBh
Ym91dCBhIHR1bm5lbCB0aGF0IGl0IGlzIGEgdHlwZSBvZiB2aXJ0dWFsIGxpbmsgdGhhdCBjb25z
dHJhaW5zDQo+IFNCPiBhIHBhY2tldCB0byBhIHBhdGggb3RoZXIgdGhhbiB0aGUgbmF0dXJhbCBw
YXRoIHRoYXQgd291bGQgYmUNCj4gU0I+IGluZmVycmVkIGZyb20gaXRzIG5hdGl2ZSBhZGRyZXNz
Pw0KDQoNCkkgZG9u4oCZdCBsaWtlIHRoZSB2aXJ0dWFsIGxpbmsgYW5hbG9neSBhdCBhbGwuDQoN
CkluIGZhY3QsIEkgZG9u4oCZdCBldmVuIGxpa2UgdGhlIHRlcm0g4oCcdHVubmVs4oCdIG11Y2gu
DQoNCkkgdGhpbmsgdGhlIHRlcm0g4oCcU1IgUGF0aOKAnSBvciDigJxTUiBFeHBsaWNpdCBQYXRo
4oCdIGlzIG1vcmUgYXBwcm9wcmlhdGUuDQoNCuKAnFR1bm5lbOKAnSByZWZlcnMgdG8gYW4gaW50
ZXJmYWNlL2xpbmsgY29uY2VwdCB3aGljaCBpcyBub3QgcmVhbGx5IGFwcGxpY2FibGUgaGVyZS4N
Cg0KDQo+ICAgU2VnbWVudCBMaXN0IERlcHRoOiB0aGUgbnVtYmVyIG9mIHNlZ21lbnRzIG9mIGFu
IFNSIHR1bm5lbC4gIFRoZQ0KPiAgIGVudGl0eSBpbnN0YW50aWF0aW5nIGFuIFNSIFR1bm5lbCBh
dCBhIG5vZGUgTiBzaG91bGQgYmUgYWJsZSB0bw0KPiAgIGRpc2NvdmVyIHRoZSBkZXB0aCBpbnNl
cnRpb24gY2FwYWJpbGl0eSBvZiB0aGUgbm9kZSBOLiAgVGhlIFBDRVANCj4gICBkaXNjb3Zlcnkg
Y2FwYWJpbGl0eSBpcyBkZXNjcmliZWQgaW4gW0ktRC5pZXRmLXBjZS1zZWdtZW50LXJvdXRpbmdd
Lg0KPiANCj4gU0I+IElzbid0IHRoYXQganVzdCBvbmUgd2F5IHRoYXQgc3VjaCBhIHNpemUgbWln
aHQgYmUgZGlzY292ZXJlZD8NCg0KDQp5ZXMsIHRoZXJlIGFyZSBvdGhlcnMgYW5kIHdlIG1heSBu
b3QgZXZlbiBsaXN0IGFueSBvZiB0aGVtIGhlcmUuDQoNCg0KPiAzLiAgTGluay1TdGF0ZSBJR1Ag
U2VnbWVudHMNCj4gDQo+ICAgV2l0aGluIGEgbGluay1zdGF0ZSBJR1AgZG9tYWluLCBhbiBTUi1j
YXBhYmxlIElHUCBub2RlIGFkdmVydGlzZXMNCj4gICBzZWdtZW50cyBmb3IgaXRzIGF0dGFjaGVk
IHByZWZpeGVzIGFuZCBhZGphY2VuY2llcy4gIFRoZXNlIHNlZ21lbnRzDQo+ICAgYXJlIGNhbGxl
ZCBJR1Agc2VnbWVudHMgb3IgSUdQIFNJRHMuICBUaGV5IHBsYXkgYSBrZXkgcm9sZSBpbiBTZWdt
ZW50DQo+ICAgUm91dGluZyBhbmQgdXNlLWNhc2VzIGFzIHRoZXkgZW5hYmxlIHRoZSBleHByZXNz
aW9uIG9mIGFueQ0KPiAgIHRvcG9sb2dpY2FsIHBhdGggdGhyb3VnaG91dCB0aGUgSUdQIGRvbWFp
bi4gIFN1Y2ggYSB0b3BvbG9naWNhbCBwYXRoDQo+ICAgaXMgZWl0aGVyIGV4cHJlc3NlZCBhcyBh
IHNpbmdsZSBJR1Agc2VnbWVudCBvciBhIGxpc3Qgb2YgbXVsdGlwbGUgSUdQDQo+ICAgc2VnbWVu
dHMuDQo+IA0KPiBTQj4gSSBhbSBub3Qgc3VyZSB0aGF0IHRvcG9sb2dpY2FsIHBhdGggaXMgYSB3
ZWxsIGtub3duIHRlcm0uDQoNCg0Kd2VsbCwgaXQgaGFzIGJlZW4gY2xlYXJseSB1bmRlcnN0b29k
IGJ5IGV2ZXJ5b25lLi4uIEkgdGhpbmsuDQoNCg0KPiBBIHF1aWNrIGNoZWNrDQo+IFNCPiBpbiBn
b29nbGUgb25seSBmb3VuZCB0aGUgdGVybSBpcyBvbmUgcGFwZXIuIERvIHlvdSBzaW1wbHkgbWVh
biBwYXRoPw0KDQoNCnllcywgeW91IGdvdCBpdCByaWdodC4gVGhlIHRlcm0gdG9wb2xvZ3kgaXMg
dXNlZCBoZXJlIHRvIGVtcGhhc2l6ZSB0aGUgZmFjdCB0aGF0IHRoZSBwYXRoIGlzIGNvbXB1dGVk
IGJhc2VkIG9uIGEgbHNkYi4NCg0KDQo+IA0KPiAzLjEuICBJR1AgU2VnbWVudCwgSUdQIFNJRA0K
PiANCj4gICBUaGUgdGVybXMgIklHUCBTZWdtZW50IiBhbmQgIklHUCBTSUQiIGFyZSB0aGUgZ2Vu
ZXJpYyBuYW1lcyBmb3IgYQ0KPiAgIHNlZ21lbnQgYXR0YWNoZWQgdG8gYSBwaWVjZSBvZiBpbmZv
cm1hdGlvbiBhZHZlcnRpc2VkIGJ5IGEgbGluay1zdGF0ZQ0KPiAgIElHUCwgZS5nLiBhbiBJR1Ag
cHJlZml4IG9yIGFuIElHUCBhZGphY2VuY3kuDQo+IA0KPiAzLjIuICBJR1AtUHJlZml4IFNlZ21l
bnQsIFByZWZpeC1TSUQNCj4gDQo+ICAgQW4gSUdQLVByZWZpeCBTZWdtZW50IGlzIGFuIElHUCBz
ZWdtZW50IGF0dGFjaGVkIHRvIGFuIElHUCBwcmVmaXguDQo+ICAgQW4gSUdQLVByZWZpeCBTZWdt
ZW50IGlzIGdsb2JhbCAodW5sZXNzIGV4cGxpY2l0bHkgYWR2ZXJ0aXNlZA0KPiAgIG90aGVyd2lz
ZSkgd2l0aGluIHRoZSBTUi9JR1AgZG9tYWluLg0KPiANCj4gICBUaGUgcmVxdWlyZWQgSUdQIHBy
b3RvY29sIGV4dGVuc2lvbnMgYXJlIGRlZmluZWQgaW4gSUdQIFNSIGV4dGVuc2lvbnMNCj4gICBk
b2N1bWVudHMuDQo+IA0KPiAzLjIuMS4gIFByZWZpeC1TSUQgQWxnb3JpdGhtDQo+IA0KPiAgIFRo
ZSBJR1AgcHJvdG9jb2wgZXh0ZW5zaW9ucyBmb3IgU2VnbWVudCBSb3V0aW5nIGRlZmluZSB0aGUg
UHJlZml4LVNJRA0KPiAgIGFkdmVydGlzZW1lbnQgd2hpY2ggaW5jbHVkZXMgYSBzZXQgb2YgZmxh
Z3MgYW5kIHRoZSBhbGdvcml0aG0gZmllbGQuDQo+ICAgVGhlIGFsZ29yaXRobSBmaWVsZCBoYXMg
dGhlIHB1cnBvc2Ugb2YgYXNzb2NpYXRpbmcgYSBnaXZlbiBQcmVmaXgtU0lEDQo+ICAgdG8gYSBy
b3V0aW5nIGFsZ29yaXRobS4NCj4gDQo+ICAgSW4gdGhlIGNvbnRleHQgb2YgYW4gaW5zdGFuY2Ug
YW5kIGEgdG9wb2xvZ3ksIG11bHRpcGxlIFByZWZpeC1TSUQncw0KPiAgIE1BWSBiZSBhbGxvY2F0
ZWQgdG8gdGhlIHNhbWUgSUdQIFByZWZpeCBhcyBsb25nIGFzIHRoZSBhbGdvcml0aG0NCj4gICB2
YWx1ZSBpcyBkaWZmZXJlbnQgaW4gZWFjaCBvbmUuDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gRmls
c2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBpcmVzIE1heSAyMywgMjAxNyAgICAgICAgICAgICAg
ICAgIFtQYWdlIDddDQo+IA0KPiBJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICAgIFNlZ21lbnQg
Um91dGluZyAgICAgICAgICAgICAgIE5vdmVtYmVyIDIwMTYNCj4gDQo+IA0KPiAgIE11bHRpcGxl
IGluc3RhbmNlcyBhbmQgdG9wb2xvZ2llcyBhcmUgZGVmaW5lZCBpbiBJUy1JUyBhbmQgT1NQRiBp
bjoNCj4gICBbUkZDNTEyMF0sIFtSRkM2ODIyXSwgW1JGQzY1NDldIGFuZCBbUkZDNDkxNV0uDQo+
IA0KPiAgIEluaXRpYWxseSwgdHdvICJhbGdvcml0aG1zIiBoYXZlIGJlZW4gZGVmaW5lZDoNCj4g
DQo+ICAgbyAgIlNob3J0ZXN0IFBhdGgiOiB0aGlzIGFsZ29yaXRobSBpcyB0aGUgZGVmYXVsdCBi
ZWhhdmlvci4gIFRoZQ0KPiAgICAgIHBhY2tldCBpcyBmb3J3YXJkZWQgYWxvbmcgdGhlIHdlbGwg
a25vd24gRUNNUC1hd2FyZSBTUEYgYWxnb3JpdGhtDQo+ICAgICAgaG93ZXZlciBpdCBpcyBleHBs
aWNpdGx5IGFsbG93ZWQgZm9yIGEgbWlkcG9pbnQgdG8gaW1wbGVtZW50DQo+ICAgICAgYW5vdGhl
ciBmb3J3YXJkaW5nIGJhc2VkIG9uIGxvY2FsIHBvbGljeS4uIFRoZSAiU2hvcnRlc3QgUGF0aCIN
Cj4gICAgICBhbGdvcml0aG0gaXMgaW4gZmFjdCB0aGUgZGVmYXVsdCBhbmQgY3VycmVudCBiZWhh
dmlvciBvZiBtb3N0IG9mDQo+ICAgICAgdGhlIG5ldHdvcmtzIHdoZXJlIGxvY2FsIHBvbGljaWVz
IG1heSBvdmVycmlkZSB0aGUgU1BGIGRlY2lzaW9uLg0KPiANCj4gU0I+IElmIGEgbm9kZSBpcyBn
b2luZyB0byBhcHBseSBsb2NhbCBwb2xpY3ksIGRvZXNuJ3QgdGhlcmUgbmVlZCB0byBiZSBhDQo+
IFNCPiBjb21tZW50IGFib3V0IGxvb3AgYXZvaWRhbmNlLCBhbmQgYWxzbyBwb3NzaWJseSBjbGVh
bmluZyB1cCB0aGUNCj4gU0I+IFNSIGhlYWRlciBpZiBsb2NhbCBwb2xpY3kgaXMgdG8gc2VuZCB0
aGUgcGFja2V0IG91dCBvZiB0aGUgZG9tYWluPw0KPiBTQj4gSSB3b3JyeSBhYm91dCB3aGF0IHRo
aXMgbWVhbnMgd2hlbiB0aGlzIGlzIGFwcGxpZWQgdG8gYSBTSUQNCj4gU0I+IG90aGVyIHRoYW4g
dGhlIGZpbmFsIFNJRCBzcGVjaWZ5aW5nIHRoZSBwYXRoLg0KDQoNCmhhdmluZyBhIGxvY2FsIHBv
bGljeSBpcyB3aGF0IGhhcHBlbnMgZXZlcnlkYXkgaW4gYWxsIG5ldHdvcmtzIHJ1bm5pbmcgVEUg
bWVjaGFuaXNtcy4gWW91IGNsYXNzaWZ5IGluY29taW5nIHBhY2tldHMgYW5kIHlvdSBzdGVlciB0
aGVtIGludG8gSVAgdHVubmVscywgTVBMUy1SU1ZQIExTUHMsIFZSRnMsIGV0YyBldGMuDQoNClRo
aXMgaXMgd2hhdCBuZXR3b3JrcyBhcmUgZG9pbmcgZm9yIGFnZXMuDQoNCg0KPiANCj4gbyAgIlN0
cmljdCBTaG9ydGVzdCBQYXRoIjogVGhpcyBhbGdvcml0aG0gbWFuZGF0ZXMgdGhhdCB0aGUgcGFj
a2V0IGlzDQo+ICAgICAgZm9yd2FyZGVkIGFjY29yZGluZyB0byBFQ01QLWF3YXJlIFNQRiBhbGdv
cml0aG0gYW5kIGluc3RydWN0IGFueQ0KPiAgICAgIHJvdXRlciBpbiB0aGUgcGF0aCB0byBpZ25v
cmUgYW55IHBvc3NpYmxlIGxvY2FsIHBvbGljeSBvdmVycmlkaW5nDQo+ICAgICAgU1BGIGRlY2lz
aW9uLiAgVGhlIFNJRCBhZHZlcnRpc2VkIHdpdGggIlN0cmljdCBTaG9ydGVzdCBQYXRoIg0KPiAg
ICAgIGFsZ29yaXRobSBlbnN1cmVzIHRoYXQgdGhlIHBhdGggdGhlIHBhY2tldCBpcyBnb2luZyB0
byB0YWtlIGlzIHRoZQ0KPiAgICAgIGV4cGVjdGVkLCBhbmQgbm90IGFsdGVyZWQsIFNQRiBwYXRo
Lg0KPiANCj4gICBBbiBJR1AtUHJlZml4IFNlZ21lbnQgaWRlbnRpZmllcyB0aGUgcGF0aCwgdG8g
dGhlIHJlbGF0ZWQgcHJlZml4LA0KPiAgIGFsb25nIHRoZSBwYXRoIGNvbXB1dGVkIGFzIHBlciB0
aGUgYWxnb3JpdGhtIGZpZWxkLg0KPiANCj4gICBBIHBhY2tldCBpbmplY3RlZCBhbnl3aGVyZSB3
aXRoaW4gdGhlIFNSL0lHUCBkb21haW4gd2l0aCBhbiBhY3RpdmUNCj4gICBQcmVmaXgtU0lEIHdp
bGwgYmUgZm9yd2FyZGVkIGFsb25nIHBhdGggY29tcHV0ZWQgYnkgdGhlIGFsZ29yaXRobQ0KPiAg
IGV4cHJlc3NlZCBpbiB0aGUgYWxnb3JpdGhtIGZpZWxkLg0KPiANCj4gICBUaGUgaW5ncmVzcyBu
b2RlIG9mIGFuIFNSIGRvbWFpbiB2YWxpZGF0ZXMgdGhhdCB0aGUgcGF0aCB0byBhIHByZWZpeCwN
Cj4gICBhZHZlcnRpc2VkIHdpdGggYSBnaXZlbiBhbGdvcml0aG0sIGluY2x1ZGVzIG5vZGVzIGFs
bCBzdXBwb3J0aW5nIHRoZQ0KPiAgIGFkdmVydGlzZWQgYWxnb3JpdGhtLiAgQXMgYSBjb25zZXF1
ZW5jZSwgaWYgYSBub2RlIG9uIHRoZSBwYXRoIGRvZXMNCj4gICBub3Qgc3VwcG9ydCBhbGdvcml0
aG0gWCwgdGhlIElHUC1QcmVmaXggc2VnbWVudCB3aWxsIGJlIGludGVycnVwdGVkDQo+ICAgYW5k
IHdpbGwgZHJvcCBwYWNrZXQgb24gdGhhdCBub2RlLiAgSXQncyB0aGUgcmVzcG9uc2liaWxpdHkg
b2YgdGhlDQo+ICAgaW5ncmVzcyBub2RlIHVzaW5nIGEgc2VnbWVudCB0byBjaGVjayB0aGF0IGFs
bCBkb3duc3RyZWFtIG5vZGVzDQo+ICAgc3VwcG9ydCB0aGUgYWxnb3JpdGhtIG9mIHRoZSBzZWdt
ZW50Lg0KPiANCj4gICBBIHJvdXRlciBNVVNUIE5PVCBmb3J3YXJkIGFueSBTUiB0cmFmZmljIGFz
c29jaWF0ZWQgd2l0aCB0aGUgU1INCj4gICBhbGdvcml0aG0gdG8gdGhlIGFkamFjZW50IHJvdXRl
ciwgaWYgdGhlIGFkamFjZW50IHJvdXRlciBoYXMgbm90DQo+ICAgYWR2ZXJ0aXNlZCBzdXBwb3J0
IGZvciBzdWNoIFNSIGFsZ29yaXRobS4NCj4gDQo+ICAgSXQgaGFzIHRvIGJlIG5vdGVkIHRoYXQg
RmFzdCBSZXJvdXRlIChGUlIpIG1lY2hhbmlzbXMsIHN1Y2ggYXMgdGhlDQo+ICAgb25lIGRlc2Ny
aWJlZCBpbiBbSS1ELmZyYW5jb2lzLXJ0Z3dnLXNlZ21lbnQtcm91dGluZy10aS1sZmFdLCB0aGF0
DQo+ICAgYXJlIGJhc2VkIG9uIHBvc3QtY29udmVyZ2VuY2UgU1BGLCBhcmUgc3RpbGwgY29tcGxp
YW50IHRvIHRoZSBTdHJpY3QtDQo+ICAgU1BGIGFsZ29yaXRobSBkZWZpbml0aW9uLg0KPiANCj4g
ICBEZXRhaWxzIG9mIHRoZSB0d28gZGVmaW5lZCBhbGdvcml0aG1zIGFyZSBkZWZpbmVkIGluDQo+
ICAgW0ktRC5pZXRmLWlzaXMtc2VnbWVudC1yb3V0aW5nLWV4dGVuc2lvbnNdLA0KPiAgIFtJLUQu
aWV0Zi1vc3BmLXNlZ21lbnQtcm91dGluZy1leHRlbnNpb25zXSBhbmQNCj4gICBbSS1ELmlldGYt
b3NwZi1vc3BmdjMtc2VnbWVudC1yb3V0aW5nLWV4dGVuc2lvbnNdLg0KPiANCj4gU0I+IEkgYW0g
bm90IGNvbnZpbmNlZCB0aGF0IHRoZSBzdGF0ZW1lbnRzIG9uIElQRlJSIGJlbG9uZyBpbiB0aGUN
Cj4gU0I+IGFyY2hpdGVjdHVyZSwgc3VyZWx5IHRoZXkgYmVsb25nIGluIHRoZSBJUEZSUiBkb2N1
bWVudCB0b2dldGhlcg0KPiBTQj4gYSBkZWNsYXJhdGlvbiBvZiBhcmNoaXRlY3R1cmFsIGNvbmZv
cm1hbmNlPw0KDQoNCknigJlkIHJlbW92ZSB0aGUgcmVmZXJlbmNlcy4NCg0KDQo+IA0KPiBGaWxz
ZmlscywgZXQgYWwuICAgICAgICAgIEV4cGlyZXMgTWF5IDIzLCAyMDE3ICAgICAgICAgICAgICAg
ICAgW1BhZ2UgOF0NCj4gDQo+IEludGVybmV0LURyYWZ0ICAgICAgICAgICAgICAgU2VnbWVudCBS
b3V0aW5nICAgICAgICAgICAgICAgTm92ZW1iZXIgMjAxNg0KPiANCj4gDQo+IDMuMi4yLiAgTVBM
UyBEYXRhcGxhbmUNCj4gDQo+IFNCPiBJIGFtIG5vdCBjb252aW5jZWQgdGhhdCB0aGlzIGlzIGFy
Y2hpdGVjdHVyZSwgbW9yZSBpbXBsZW1lbnRhdGlvbg0KPiBTQj4gaW4gYSBzcGVjaWZpYyBkYXRh
cGxhbmUuIEl0IGlzIG5vdCBwYXJ0aWN1bGFybHkgY3JpdGljYWwgaW4gdGhlIGNhc2Ugb2YNCj4g
U0I+IE1QTFMgYXMgd2UgcHJldHR5IG11Y2gga25vdyB3aGF0IGl0IGxvb2tzIGxpa2UuDQoNCg0K
SSB0ZW5kIHRvIGFncmVlLg0KDQoNCj4gSSByZW1haW4gdG8gYmUgY29udmluY2VkDQo+IFNCPiBh
Ym91dCBJUC4gVGhlIHByb2JsZW0gaXMgdGhhdCBpZiB0aGUgZGF0YXBsYW5lIGRlc2lnbiBjaGFu
Z2VzLCBpdCBtYXkNCj4gU0I+IGludmFsaWRhdGUgdGhlIGFyY2hpdGVjdHVyZS4gQmVzdCBwcmFj
dGlzZSBpcyB0byBiZSBpbnZhcmlhbnQgdG8gdGhlDQo+IFNCPiBpbXBsZW1lbnRhdGlvbiB3aGVu
IHRoZXJlIGFyZSBtdWx0aXBsZSBwb3NzaWJsZSBkYXRhIHBsYW5lcy4NCg0KDQp5ZXMsIHdlIHBy
b2JhYmx5IGJldHRlciBtb3ZlIHBhcnQgb3IgYWxsIG9mIHRoaXMgdGV4dCBpbnRvIHRoZSBkYXRh
cGxhbmUgc3BlY2lmaWMgZHJhZnRzIChNUExTIGFuZCB2NikuDQoNCg0KPiBXaGVuIFNSIGlzIHVz
ZWQgb3ZlciB0aGUgTVBMUyBkYXRhcGxhbmU6DQo+IA0KPiAgIG8gIHRoZSBJR1Agc2lnbmFsaW5n
IGV4dGVuc2lvbiBmb3IgSUdQLVByZWZpeCBzZWdtZW50IGluY2x1ZGVzIHRoZQ0KPiAgICAgIFAt
RmxhZyAoW0ktRC5pZXRmLWlzaXMtc2VnbWVudC1yb3V0aW5nLWV4dGVuc2lvbnNdKSBvciB0aGUg
TlAtRmxhZw0KPiAgICAgIChbSS1ELmlldGYtb3NwZi1zZWdtZW50LXJvdXRpbmctZXh0ZW5zaW9u
c10pLiAgQSBOb2RlIE4NCj4gICAgICBhZHZlcnRpc2luZyBhIFByZWZpeC1TSUQgU0lELVIgZm9y
IGl0cyBhdHRhY2hlZCBwcmVmaXggUiB1bnNldCB0aGUNCj4gICAgICBQLUZsYWcgKG9yIE5QLUZs
YWcpIGluIG9yZGVyIHRvIGluc3RydWN0IGl0cyBjb25uZWN0ZWQgbmVpZ2hib3JzDQo+ICAgICAg
dG8gcGVyZm9ybSB0aGUgTkVYVCBvcGVyYXRpb24gd2hpbGUgcHJvY2Vzc2luZyBTSUQtUi4gIFRo
aXMNCj4gICAgICBiZWhhdmlvciBpcyBlcXVpdmFsZW50IHRvIFBlbnVsdGltYXRlIEhvcCBQb3Bw
aW5nIGluIE1QTFMuICBXaGVuDQo+ICAgICAgdGhlIGZsYWcgaXMgdW5zZXQsIHRoZSBuZWlnaGJv
cnMgb2YgTiBNVVNUIHBlcmZvcm0gdGhlIE5FWFQNCj4gICAgICBvcGVyYXRpb24gd2hpbGUgcHJv
Y2Vzc2luZyBTSUQtUi4gIFdoZW4gdGhlIGZsYWcgaXMgc2V0LCB0aGUNCj4gICAgICBuZWlnaGJv
cnMgb2YgTiBNVVNUIHBlcmZvcm0gdGhlIENPTlRJTlVFIG9wZXJhdGlvbiB3aGlsZQ0KPiAgICAg
IHByb2Nlc3NpbmcgU0lELVIuDQo+IA0KPiBTQj4gVGhhdCBpcyByZWFsbHkgZG93biBpbiB0aGUg
d2VlZHMsIGFuZCBJIGFtIG5vdCBzdXJlIGl0IGJlbG9uZ3MgaGVyZS4NCj4gU0I+IHN1cmVseSB5
b3UgbmVlZCB0byBzcGVjaWZ5IHRoZSByZXF1aXJlbWVudCBvbiB0aGUgc29sdXRpb24sIG5vdCB0
aGUNCj4gU0I+IHNvbHV0aW9uIGl0c2VsZiBpbiB0aGlzIGRvY3VtZW50LiBBbHRlcm5hdGl2ZWx5
LCBpZiBpdCBkb2VzIGJlbG9uZyBoZXJlDQo+IFNCPiBpdCBuZWVkcyBhIG1vcmUgY29tcGxldGUg
ZGVzY3JpcHRpb24gaGVyZS4NCg0KDQp0aGlzIGRvY3VtZW50IGlzIGFuIGFyY2hpdGVjdHVyZSBk
cmFmdCwgbm90IGEgcmVxdWlyZW1lbnRzIGRyYWZ0LiBXZSBtdXN0IHNwZWNpZnkgaG93IHRoZSBh
cmNoaXRlY3R1cmUgd29ya3MgYnV0IHdpdGhvdXQgdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMg
KGFuZCBmbGFncyBhcmUgaW1wbGVtZW50YXRpb24gZGV0YWlscykgc28gSSBhZ3JlZSwgd2UgaGF2
ZSB0byByZW1vdmUgdGhlIGRldGFpbHMuDQoNCg0KPiBvICBBIFByZWZpeC1TSUQgaXMgYWxsb2Nh
dGVkIGluIHRoZSBmb3JtIG9mIGFuIGluZGV4IGluIHRoZSBTUkdCIChvcg0KPiAgICAgIGFzIGEg
bG9jYWwgTVBMUyBsYWJlbCkgYWNjb3JkaW5nIHRvIGEgcHJvY2VzcyBzaW1pbGFyIHRvIElQDQo+
ICAgICAgYWRkcmVzcyBhbGxvY2F0aW9uLiAgVHlwaWNhbGx5IHRoZSBQcmVmaXgtU0lEIGlzIGFs
bG9jYXRlZCBieQ0KPiAgICAgIHBvbGljeSBieSB0aGUgb3BlcmF0b3IgKG9yIE5NUykgYW5kIHRo
ZSBTSUQgdmVyeSByYXJlbHkgY2hhbmdlcy4NCj4gDQo+ICAgbyAgV2hpbGUgU1IgYWxsb3dzIHRv
IGF0dGFjaCBhIGxvY2FsIHNlZ21lbnQgdG8gYW4gSUdQIHByZWZpeCAodXNpbmcNCj4gICAgICB0
aGUgTC1GbGFnKSwNCj4gU0I+IHdoYXQgaXMgYW4gTC1mbGFnPw0KPiANCj4gICAgICB3ZSBzcGVj
aWZpY2FsbHkgYXNzdW1lIHRoYXQgd2hlbiB0aGUgdGVybXMgIklHUC0NCj4gICAgICBQcmVmaXgg
U2VnbWVudCIgYW5kICJQcmVmaXgtU0lEIiBhcmUgdXNlZCwgdGhlIHNlZ21lbnQgaXMgZ2xvYmFs
DQo+ICAgICAgKHRoZSBTSUQgaXMgYWxsb2NhdGVkIGZyb20gdGhlIFNSR0Igb3IgYXMgYW4gaW5k
ZXgpLiAgVGhpcyBpcw0KPiAgICAgIGNvbnNpc3RlbnQgd2l0aCBhbGwgdGhlIGRlc2NyaWJlZCB1
c2UtY2FzZXMgdGhhdCByZXF1aXJlIGdsb2JhbA0KPiAgICAgIHNlZ21lbnRzIGF0dGFjaGVkIHRv
IElHUCBwcmVmaXhlcy4NCj4gDQo+ICAgbyAgVGhlIGFsbG9jYXRpb24gcHJvY2VzcyBNVVNUIE5P
VCBhbGxvY2F0ZSB0aGUgc2FtZSBQcmVmaXgtU0lEIHRvDQo+ICAgICAgZGlmZmVyZW50IElQIHBy
ZWZpeGVzLg0KPiANCj4gICBvICBJZiBhIG5vZGUgbGVhcm5zIGEgUHJlZml4LVNJRCBoYXZpbmcg
YSB2YWx1ZSB0aGF0IGZhbGxzIG91dHNpZGUNCj4gICAgICB0aGUgbG9jYWxseSBjb25maWd1cmVk
IFNSR0IgcmFuZ2UsIHRoZW4gdGhlIG5vZGUgTVVTVCBOT1QgdXNlIHRoZQ0KPiAgICAgIFByZWZp
eC1TSUQgYW5kIFNIT1VMRCBpc3N1ZSBhbiBlcnJvciBsb2cgd2FybmluZyBmb3INCj4gICAgICBt
aXNjb25maWd1cmF0aW9uLg0KPiANCj4gICBvICBJZiBhIG5vZGUgTiBhZHZlcnRpc2VzIFByZWZp
eC1TSUQgU0lELVIgZm9yIGEgcHJlZml4IFIgdGhhdCBpcw0KPiAgICAgIGF0dGFjaGVkIHRvIE4s
IE4gTVVTVCBlaXRoZXIgY2xlYXIgdGhlIFAtRmxhZyBpbiB0aGUgYWR2ZXJ0aXNlbWVudA0KPiAg
ICAgIG9mIFNJRC1SLCBvciBlbHNlIG1haW50YWluIHRoZSBmb2xsb3dpbmcgRklCIGVudHJ5Og0K
PiANCj4gU0I+IFdoZXJlIGRpZCB0aGUgUC1GbGFnIGNvbWUgZnJvbT8NCj4gDQo+ICAgICAgSW5j
b21pbmcgQWN0aXZlIFNlZ21lbnQ6IFNJRC1SDQo+ICAgICAgSW5ncmVzcyBPcGVyYXRpb246IE5F
WFQNCj4gICAgICBFZ3Jlc3MgaW50ZXJmYWNlOiBOVUxMDQo+IA0KPiAgIG8gIEEgcmVtb3RlIG5v
ZGUgTSBNVVNUIG1haW50YWluIHRoZSBmb2xsb3dpbmcgRklCIGVudHJ5IGZvciBhbnkNCj4gICAg
ICBsZWFybmVkIFByZWZpeC1TSUQgU0lELVIgYXR0YWNoZWQgdG8gSVAgcHJlZml4IFI6DQo+IA0K
PiANCj4gDQo+IA0KPiANCj4gRmlsc2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBpcmVzIE1heSAy
MywgMjAxNyAgICAgICAgICAgICAgICAgIFtQYWdlIDldDQo+IA0KPiBJbnRlcm5ldC1EcmFmdCAg
ICAgICAgICAgICAgIFNlZ21lbnQgUm91dGluZyAgICAgICAgICAgICAgIE5vdmVtYmVyIDIwMTYN
Cj4gDQo+IA0KPiAgICAgSW5jb21pbmcgQWN0aXZlIFNlZ21lbnQ6IFNJRC1SDQo+ICAgICBJbmdy
ZXNzIE9wZXJhdGlvbjoNCj4gICAgICAgIElmIHRoZSBuZXh0LWhvcCBvZiBSIGlzIHRoZSBvcmln
aW5hdG9yIG9mIFINCj4gICAgICAgIGFuZCBpbnN0cnVjdGVkIHRvIHJlbW92ZSB0aGUgYWN0aXZl
IHNlZ21lbnQ6IE5FWFQNCj4gICAgICAgIEVsc2U6IENPTlRJTlVFDQo+ICAgICBFZ3Jlc3MgaW50
ZXJmYWNlOiB0aGUgaW50ZXJmYWNlIHRvd2FyZHMgdGhlIG5leHQtaG9wIGFsb25nIHRoZQ0KPiAg
ICAgICAgICAgICAgICAgICAgICAgcGF0aCBjb21wdXRlZCB1c2luZyB0aGUgYWxnb3JpdGhtIGFk
dmVydGlzZWQgd2l0aA0KPiAgICAgICAgICAgICAgICAgICAgICAgdGhlIFNJRCB0b3dhcmQgcHJl
Zml4IFIuDQo+IA0KPiBTQj4gVGhpcyBpcyBxdWl0ZSBjb25mdXNpbmcuIERvbid0IHRoZXNlIHNv
cnRzIG9mIG9wZXJhdGlvbnMgYXBwbHkgdG8gb3RoZXIgc29ydHMgb2YNCj4gU0I+IFNJRCwgc3Vj
aCBhcyBub2RhbCBTSURzPw0KDQoNCnRoZSBhYm92ZSBkZWZpbml0aW9uIGFwcGx5IHRvIHByZWZp
eC1zaWQgYW5kIG5vZGUtc2lkLiBUaGUgc2VjdGlvbiBpcyBhYm91dCBtcGxzIHVzZWQgaW4gYW4g
aWdwIGRvbWFpbi4NCg0KPiBXaHkgYXJlIHRoZXNlIGNhbGxlZCBvdXQgaW4gZGV0YWlsIGJ1dCBu
b3Qgb3RoZXJzPw0KPiANCj4gU0I+IFlvdSB0YWxrIGFib3V0IEVDTVAgaW4gbm9kYWwsIGRvZXNu
J3QgdGhhdCBhbHNvIGFwcGx5IGhlcmU/DQo+IA0KPiAzLjIuMy4gIElQdjYgRGF0YXBsYW5lDQo+
IA0KPiAgIFdoZW4gU1IgaXMgdXNlZCBvdmVyIHRoZSBJUHY2IGRhdGFwbGFuZToNCj4gDQo+ICAg
byAgVGhlIFByZWZpeC1TSUQgaXMgdGhlIHByZWZpeCBpdHNlbGYuICBObyBhZGRpdGlvbmFsIGlk
ZW50aWZpZXIgaXMNCj4gICAgICBuZWVkZWQgZm9yIFNlZ21lbnQgUm91dGluZyBvdmVyIElQdjYu
DQo+IA0KPiAgIG8gIEFueSBhZGRyZXNzIGJlbG9uZ2luZyB0byBhbnkgb2YgdGhlIG5vZGUncyBw
cmVmaXhlcyBjYW4gYmUgdXNlZCBhcw0KPiAgICAgIFByZWZpeC1TSURzLg0KPiANCj4gICBvICBB
biBvcGVyYXRvciBtYXkgd2FudCB0byBleHBsaWNpdGx5IGluZGljYXRlIHdoaWNoIG9mIHRoZSBu
b2RlJ3MNCj4gICAgICBwcmVmaXhlcyBjYW4gYmUgdXNlZCBhcyBQcmVmaXgtU0lEcyB0aHJvdWdo
IHRoZSBzZXR0aW5nIG9mIGEgZmxhZw0KPiAgICAgIChlLmcuOiB1c2luZyB0aGUgSUdQIHByZWZp
eCBhdHRyaWJ1dGUgZGVmaW5lZCBpbiBbUkZDNzc5NF0pIGluIHRoZQ0KPiAgICAgIHJvdXRpbmcg
cHJvdG9jb2wgdXNlZCBmb3IgYWR2ZXJ0aXNpbmcgdGhlIHByZWZpeC4NCj4gDQo+ICAgbyAgQSBn
bG9iYWwgU0lEIGlzIGluc3RhbnRpYXRlZCB0aHJvdWdoIGFueSBnbG9iYWxseSBhZHZlcnRpc2Vk
IElQdjYNCj4gICAgICBhZGRyZXNzLg0KPiANCj4gICBvICBBIGxvY2FsIFNJRCBpcyBpbnN0YW50
aWF0ZWQgdGhyb3VnaCBhIGxvY2FsIElQdjYgcHJlZml4IG5vdCBiZWluZw0KPiAgICAgIGFkdmVy
dGlzZWQgYW5kIHRoZXJlZm9yZSBrbm93biBvbmx5IGJ5IHRoZSBsb2NhbCBub2RlLg0KPiANCj4g
ICBBIG5vZGUgTiBhZHZlcnRpc2luZyBhbiBJUHY2IGFkZHJlc3MgUiB1c2FibGUgYXMgYSBzZWdt
ZW50IGlkZW50aWZpZXINCj4gICBNVVNUIG1haW50YWluIHRoZSBmb2xsb3dpbmcgRklCIGVudHJ5
Og0KPiANCj4gICAgICBJbmNvbWluZyBBY3RpdmUgU2VnbWVudDogUg0KPiAgICAgIEluZ3Jlc3Mg
T3BlcmF0aW9uOiBORVhUDQo+ICAgICAgRWdyZXNzIGludGVyZmFjZTogTlVMTA0KPiANCj4gICBS
ZWdhcmRsZXNzIFNlZ21lbnQgUm91dGluZywgYW55IHJlbW90ZSBJUHY2IG5vZGUgd2lsbCBtYWlu
dGFpbiBhDQo+ICAgcGxhaW4gSVB2NiBGSUIgZW50cnkgZm9yIGFueSBwcmVmaXgsIG5vIG1hdHRl
ciBpZiB0aGV5IHJlcHJlc2VudCBhDQo+ICAgc2VnbWVudCBvciBub3QuDQo+IA0KPiAzLjMuICBJ
R1AtTm9kZSBTZWdtZW50LCBOb2RlLVNJRA0KPiANCj4gICBBbiBJR1AgTm9kZSBTZWdtZW50IGlz
IGEgYW4gSUdQIFByZWZpeCBTZWdtZW50IHdoaWNoIGlkZW50aWZpZXMgYQ0KPiAgIHNwZWNpZmlj
IHJvdXRlciAoZS5nLiBhIGxvb3BiYWNrKS4gIFRoZSB0ZXJtcyAiTm9kZSBTZWdtZW50IiBvcg0K
PiAgICJOb2RlLVNJRCIgYXJlIG9mdGVuIHVzZWQgYXMgYW4gYWJicmV2aWF0aW9uLiAgVGhlIElH
UCBTUiBleHRlbnNpb25zDQo+ICAgZGVmaW5lIGEgZmxhZyB0aGF0IGlkZW50aWZpZXMgTm9kZS1T
SURzLg0KPiANCj4gDQo+IA0KPiANCj4gRmlsc2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBpcmVz
IE1heSAyMywgMjAxNyAgICAgICAgICAgICAgICAgW1BhZ2UgMTBdDQo+IA0KPiBJbnRlcm5ldC1E
cmFmdCAgICAgICAgICAgICAgIFNlZ21lbnQgUm91dGluZyAgICAgICAgICAgICAgIE5vdmVtYmVy
IDIwMTYNCj4gDQo+IA0KPiAgIEEgIk5vZGUgU2VnbWVudCIgb3IgIk5vZGUtU0lEIiBpcyBmdW5k
YW1lbnRhbCB0byBTUi4gIEZyb20gYW55d2hlcmUNCj4gICBpbiB0aGUgbmV0d29yaywgaXQgZW5m
b3JjZXMgdGhlIEVDTVAtYXdhcmUgc2hvcnRlc3QtcGF0aCBmb3J3YXJkaW5nDQo+ICAgb2YgdGhl
IHBhY2tldCB0b3dhcmRzIHRoZSByZWxhdGVkIG5vZGUuDQo+IA0KPiAgIEFuIElHUCBOb2RlLVNJ
RCBNVVNUIE5PVCBiZSBhc3NvY2lhdGVkIHdpdGggYSBwcmVmaXggdGhhdCBpcyBvd25lZCBieQ0K
PiAgIG1vcmUgdGhhbiBvbmUgcm91dGVyIHdpdGhpbiB0aGUgc2FtZSByb3V0aW5nIGRvbWFpbi4N
Cj4gDQo+IDMuNC4gIElHUC1BbnljYXN0IFNlZ21lbnQsIEFueWNhc3QgU0lEDQo+IA0KPiAgIEFu
IElHUC1BbnljYXN0IFNlZ21lbnQgaXMgYW4gSUdQLXByZWZpeCBzZWdtZW50IHdoaWNoIGRvZXMg
bm90DQo+ICAgaWRlbnRpZnkgYSBzcGVjaWZpYyByb3V0ZXIsIGJ1dCBhIHNldCBvZiByb3V0ZXJz
LiAgVGhlIHRlcm1zICJBbnljYXN0DQo+ICAgU2VnbWVudCIgb3IgIkFueWNhc3QtU0lEIiBhcmUg
b2Z0ZW4gdXNlZCBhcyBhbiBhYmJyZXZpYXRpb24uDQo+IA0KPiAgIEFuICJBbnljYXN0IFNlZ21l
bnQiIG9yICJBbnljYXN0IFNJRCIgZW5mb3JjZXMgdGhlIEVDTVAtYXdhcmUNCj4gICBzaG9ydGVz
dC1wYXRoIGZvcndhcmRpbmcgdG93YXJkcyB0aGUgY2xvc2VzdCBub2RlIG9mIHRoZSBhbnljYXN0
IHNldC4NCj4gICBUaGlzIGlzIHVzZWZ1bCB0byBleHByZXNzIG1hY3JvLWVuZ2luZWVyaW5nIHBv
bGljaWVzIG9yIHByb3RlY3Rpb24NCj4gICBtZWNoYW5pc21zLg0KPiANCj4gICBBbiBJR1AtQW55
Y2FzdCBTZWdtZW50IE1VU1QgTk9UIHJlZmVyZW5jZSBhIHBhcnRpY3VsYXIgbm9kZS4NCj4gDQo+
ICAgV2l0aGluIGFuIGFueWNhc3QgZ3JvdXAsIGFsbCByb3V0ZXJzIE1VU1QgYWR2ZXJ0aXNlIHRo
ZSBzYW1lIHByZWZpeA0KPiAgIHdpdGggdGhlIHNhbWUgU0lEIHZhbHVlLg0KPiANCj4gDQo+IA0K
PiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+
IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IEZpbHNmaWxz
LCBldCBhbC4gICAgICAgICAgRXhwaXJlcyBNYXkgMjMsIDIwMTcgICAgICAgICAgICAgICAgIFtQ
YWdlIDExXQ0KPiANCj4gSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgICBTZWdtZW50IFJvdXRp
bmcgICAgICAgICAgICAgICBOb3ZlbWJlciAyMDE2DQo+IA0KPiANCj4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tKw0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgR3JvdXAgQSAgICB8DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwxOTIuMC4yLjEwLzMyIHwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICBT
SUQ6MTAwICAgfA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg
ICB8DQo+ICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tQTEtLS1BMy0tLS0tLS0t
LS0rDQo+ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgIHwgICAgfCBcIC8gfCAgIHwgICAg
ICB8DQo+ICAgICAgICAgICAgIFNJRDoxMCAgICAgfCAgICAgIHwgICAgfCAgLyAgfCAgIHwgICAg
ICB8ICAgICBTSUQ6MzANCj4gICAgICAgMjAzLjAuMTEzLjEvMzIgICB8ICAgICAgfCAgICB8IC8g
XCB8ICAgfCAgICAgIHwgIDIwMy4wLjExMy4zLzMyDQo+ICAgICAgICAgICAgICAgUEUxLS0tLS0t
UjEtLS0tLS0tLS0tQTItLS1BNC0tLS0tLS0tLVIzLS0tLS0tUEUzDQo+ICAgICAgICAgICAgICAg
ICBcICAgICAvfCAgICAgIHwgICAgICAgICAgICAgIHwgICAgICB8XCAgICAgLw0KPiAgICAgICAg
ICAgICAgICAgIFwgICAvIHwgICAgICArLS0tLS0tLS0tLS0tLS0rICAgICAgfCBcICAgLw0KPiAg
ICAgICAgICAgICAgICAgICBcIC8gIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCAv
DQo+ICAgICAgICAgICAgICAgICAgICAvICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgLw0KPiAgICAgICAgICAgICAgICAgICAvIFwgIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgLyBcDQo+ICAgICAgICAgICAgICAgICAgLyAgIFwgfCAgICAgICstLS0tLS0tLS0tLS0t
LSsgICAgICB8IC8gICBcDQo+ICAgICAgICAgICAgICAgICAvICAgICBcfCAgICAgIHwgICAgICAg
ICAgICAgIHwgICAgICB8LyAgICAgXA0KPiAgICAgICAgICAgICAgIFBFMi0tLS0tLVIyLS0tLS0t
LS0tLUIxLS0tQjMtLS0tKy0tLS1SNC0tLS0tLVBFNA0KPiAgICAgICAyMDMuMC4xMTMuMi8zMiAg
IHwgICAgICB8ICAgIHwgXCAvIHwgICB8ICAgICAgfCAyMDMuMC4xMTMuNC8zMg0KPiAgICAgICAg
ICAgICBTSUQ6MjAgICAgIHwgICAgICB8ICAgIHwgIC8gIHwgICB8ICAgICAgfCAgICAgU0lEOjQw
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgIHwgICAgfCAvIFwgfCAgIHwgICAgICB8
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tKy0tLS0tQjItLS1CNC0tLS0rLS0tLS0r
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwNCj4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIEdyb3VwIEIgICAgfA0KPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8IDE5Mi4wLjIuMS8zMiB8DQo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgU0lEOjIwMCAgIHwNCj4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKy0tLS0tLS0tLS0tLS0tKw0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICBU
cmFuc2l0IGRldmljZSBncm91cHMNCj4gDQo+ICAgVGhlIGZpZ3VyZSBhYm92ZSBkZXNjcmliZXMg
YSBuZXR3b3JrIGV4YW1wbGUgd2l0aCB0d28gZ3JvdXBzIG9mDQo+ICAgdHJhbnNpdCBkZXZpY2Vz
LiAgR3JvdXAgQSBjb25zaXN0cyBvZiBkZXZpY2VzIHtBMSwgQTIsIEEzIGFuZCBBNH0uDQo+ICAg
VGhleSBhcmUgYWxsIHByb3Zpc2lvbmVkIHdpdGggdGhlIGFueWNhc3QgYWRkcmVzcyAxOTIuMC4y
LjEwLzMyIGFuZA0KPiAgIHRoZSBhbnljYXN0IFNJRCAxMDAuDQo+IA0KPiAgIFNpbWlsYXJseSwg
Z3JvdXAgQiBjb25zaXN0cyBvZiBkZXZpY2VzIHtCMSwgQjIsIEIzIGFuZCBCNH0gYW5kIGFyZQ0K
PiAgIGFsbCBwcm92aXNpb25lZCB3aXRoIHRoZSBhbnljYXN0IGFkZHJlc3MgMTkyLjAuMi4xLzMy
LCBhbnljYXN0IFNJRA0KPiAgIDIwMC4gIEluIHRoZSBhYm92ZSBuZXR3b3JrIHRvcG9sb2d5LCBl
YWNoIFBFIGRldmljZSBpcyBjb25uZWN0ZWQgdG8NCj4gICB0d28gcm91dGVycyBpbiBlYWNoIG9m
IHRoZSBncm91cHMgQSBhbmQgQi4NCj4gDQo+ICAgUEUxIGNhbiBjaG9vc2UgYSBwYXJ0aWN1bGFy
IHRyYW5zaXQgZGV2aWNlIGdyb3VwIHdoZW4gc2VuZGluZyB0cmFmZmljDQo+ICAgdG8gUEUzIG9y
IFBFNC4gIFRoaXMgd2lsbCBiZSBkb25lIGJ5IHB1c2hpbmcgdGhlIGFueWNhc3QgU0lEIG9mIHRo
ZQ0KPiAgIGdyb3VwIGluIHRoZSBzdGFjay4NCj4gDQo+ICAgUHJvY2Vzc2luZyB0aGUgYW55Y2Fz
dCwgYW5kIHN1YnNlcXVlbnQgc2VnbWVudHMsIHJlcXVpcmVzIHNwZWNpYWwNCj4gICBjYXJlLg0K
PiANCj4gDQo+IA0KPiANCj4gDQo+IEZpbHNmaWxzLCBldCBhbC4gICAgICAgICAgRXhwaXJlcyBN
YXkgMjMsIDIwMTcgICAgICAgICAgICAgICAgIFtQYWdlIDEyXQ0KPiANCj4gSW50ZXJuZXQtRHJh
ZnQgICAgICAgICAgICAgICBTZWdtZW50IFJvdXRpbmcgICAgICAgICAgICAgICBOb3ZlbWJlciAy
MDE2DQo+IA0KPiANCj4gICBPYnZpb3VzbHksIHRoZSB2YWx1ZSBvZiB0aGUgU0lEIGZvbGxvd2lu
ZyB0aGUgYW55Y2FzdCBTSUQgTVVTVCBiZQ0KPiAgIHVuZGVyc3Rvb2QgYnkgYWxsIG5vZGVzIGFk
dmVydGlzaW5nIHRoZSBzYW1lIGFueWNhc3Qgc2VnbWVudC4NCj4gDQo+ICAgICAgICAgICAgICAg
ICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgICAgIEdyb3VwIEEgICAgICAgICAgIHwNCj4gICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAgMTkyLjAuMi4xMC8zMiAgICAgICB8DQo+ICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgICAgIFNJRDoxMDAgICAgICAgICAgfA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwNCj4gICAgICAgICAgICAgICAgICAgICAgICAg
fCAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICBTUkdCOiAgICAgICAgIFNSR0I6ICAgfA0KPiAgICAgIFNJRDoxMCAgICAgICAgICAgICB8KDEw
MDAtMjAwMCkgICAoMzAwMC00MDAwKXwgICAgICAgICAgICAgU0lEOjMwDQo+ICAgICAgICBQRTEt
LS0rICAgICAgICstLS0tLS0tQTEtLS0tLS0tLS0tLS0tQTMtLS0tLS0tKyAgICAgICArLS0tUEUz
DQo+ICAgICAgICAgICAgICAgXCAgICAgLyAgIHwgICAgfCBcICAgICAgICAgICAvIHwgICAgfCAg
IFwgICAgIC8NCj4gICAgICAgICAgICAgICAgXCAgIC8gICAgfCAgICB8ICArLS0tLS0rICAgLyAg
fCAgICB8ICAgIFwgICAvDQo+ICAgICAgICAgU1JHQjogICBcIC8gICAgIHwgICAgfCAgICAgICAg
IFwgLyAgIHwgICAgfCAgICAgXCAvICAgU1JHQjoNCj4gICAgICAoNzAwMC04MDAwKSBSMSAgICAg
fCAgICB8ICAgICAgICAgIFwgICAgfCAgICB8ICAgICAgUjMgKDYwMDAtNzAwMCkNCj4gICAgICAg
ICAgICAgICAgIC8gXCAgICAgfCAgICB8ICAgICAgICAgLyBcICAgfCAgICB8ICAgICAvIFwNCj4g
ICAgICAgICAgICAgICAgLyAgIFwgICAgfCAgICB8ICArLS0tLS0rICAgXCAgfCAgICB8ICAgIC8g
ICBcDQo+ICAgICAgICAgICAgICAgLyAgICAgXCAgIHwgICAgfCAvICAgICAgICAgICBcIHwgICAg
fCAgIC8gICAgIFwNCj4gICAgICAgIFBFMi0tLSsgICAgICAgKy0tLS0tLS1BMi0tLS0tLS0tLS0t
LS1BNC0tLS0tLS0rICAgICAgICstLS1QRTQNCj4gICAgICBTSUQ6MjAgICAgICAgICAgICAgfCAg
IFNSR0I6ICAgICAgICAgU1JHQjogICB8ICAgICAgICAgICAgIFNJRDo0MA0KPiAgICAgICAgICAg
ICAgICAgICAgICAgICB8KDIwMDAtMzAwMCkgICAoNDAwMC01MDAwKXwNCj4gICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICAgICAgICAgICAgICAg
ICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiANCj4gICAgICAgICAgICAg
ICAgICAgICBUcmFuc2l0IHBhdGhzIHZpYSBhbnljYXN0IGdyb3VwIEENCj4gDQo+ICAgQ29uc2lk
ZXJpbmcgYSBNUExTIGRlcGxveW1lbnQsIGluIHRoZSBhYm92ZSB0b3BvbG9neSwgaWYgZGV2aWNl
IFBFMQ0KPiAgIChvciBQRTIpIHJlcXVpcmVzIHRvIHNlbmQgYSBwYWNrZXQgdG8gdGhlIGRldmlj
ZSBQRTMgKG9yIFBFNCkgaXQNCj4gICBuZWVkcyB0byBlbmNhcHN1bGF0ZSB0aGUgcGFja2V0IGlu
IGEgTVBMUyBwYXlsb2FkIHdpdGggdGhlIGZvbGxvd2luZw0KPiAgIHN0YWNrIG9mIGxhYmVscy4N
Cj4gDQo+IFNCPiBBUyBhbiBNUExTIHBheWxvYWQ/DQoNCg0KeXVwLg0KDQoNCj4gDQo+ICAgbyAg
TGFiZWwgYWxsb2NhdGVkIGJ5IFIxIGZvciBhbnljYXN0IFNJRCAxMDAgKG91dGVyIGxhYmVsKS4N
Cj4gDQo+ICAgbyAgTGFiZWwgYWxsb2NhdGVkIGJ5IHRoZSBuZWFyZXN0IHJvdXRlciBpbiBncm91
cCBBIGZvciBTSUQgMzAgKGZvcg0KPiAgICAgIGRlc3RpbmF0aW9uIFBFMykuDQo+IA0KPiAgIFdo
aWxlIHRoZSBmaXJzdCBsYWJlbCBpcyBlYXN5IHRvIGNvbXB1dGUsIGluIHRoaXMgY2FzZSBzaW5j
ZSB0aGVyZQ0KPiAgIGFyZSBtb3JlIHRoYW4gb25lIHRvcG9sb2dpY2FsbHkgbmVhcmVzdCBkZXZp
Y2VzIChBMSBhbmQgQTIpLCB1bmxlc3MNCj4gICBBMSBhbmQgQTIgYWxsb2NhdGVkIHRoZSBzYW1l
IGxhYmVsIHZhbHVlIHRvIHRoZSBzYW1lIHByZWZpeCwNCj4gICBkZXRlcm1pbmluZyB0aGUgc2Vj
b25kIGxhYmVsIGlzIGltcG9zc2libGUuICBEZXZpY2VzIEExIGFuZCBBMiBtYXkgYmUNCj4gICBk
ZXZpY2VzIGZyb20gZGlmZmVyZW50IGhhcmR3YXJlIHZlbmRvcnMuICBJZiBib3RoIGRvbid0IGFs
bG9jYXRlIHRoZQ0KPiAgIHNhbWUgbGFiZWwgdmFsdWUgZm9yIFNJRCAzMCwgaXQgaXMgaW1wb3Nz
aWJsZSB0byB1c2UgdGhlIGFueWNhc3QNCj4gICBncm91cCAiQSIgYXMgYSB0cmFuc2l0IGFueWNh
c3QgZ3JvdXAgdG93YXJkcyBQRTMuICBIZW5jZSwgUEUxIChvcg0KPiAgIFBFMikgY2Fubm90IGNv
bXB1dGUgYW4gYXBwcm9wcmlhdGUgbGFiZWwgc3RhY2sgdG8gc3RlZXIgdGhlIHBhY2tldA0KPiAg
IGV4Y2x1c2l2ZWx5IHRocm91Z2ggdGhlIGdyb3VwIEEgZGV2aWNlcy4gIFNhbWUgaG9sZHMgdHJ1
ZSBmb3IgZGV2aWNlcw0KPiAgIFBFMyBhbmQgUEU0IHdoZW4gdHJ5aW5nIHRvIHNlbmQgYSBwYWNr
ZXQgdG8gUEUxIG9yIFBFMi4NCj4gDQo+IA0KPiANCj4gDQo+IEZpbHNmaWxzLCBldCBhbC4gICAg
ICAgICAgRXhwaXJlcyBNYXkgMjMsIDIwMTcgICAgICAgICAgICAgICAgIFtQYWdlIDEzXQ0KPiAN
Cj4gSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgICBTZWdtZW50IFJvdXRpbmcgICAgICAgICAg
ICAgICBOb3ZlbWJlciAyMDE2DQo+IA0KPiANCj4gICBUbyBlYXNlIHRoZSB1c2Ugb2YgYW55Y2Fz
dCBzZWdtZW50IGluIGEgc2hvcnQgdGVybSwgaXQgaXMgcmVjb21tZW5kZWQNCj4gICB0byBjb25m
aWd1cmUgdGhlIHNhbWUgU1JHQiBvbiBhbGwgbm9kZXMgb2YgYSBwYXJ0aWN1bGFyIGFueWNhc3QN
Cj4gICBncm91cC4gIFVzaW5nIHRoaXMgbWV0aG9kLCBhcyBtZW50aW9uZWQgYWJvdmUsIGNvbXB1
dGF0aW9uIG9mIHRoZQ0KPiAgIGxhYmVsIGZvbGxvd2luZyB0aGUgYW55Y2FzdCBzZWdtZW50IGlz
IHN0cmFpZ2h0Zm9yd2FyZC4NCj4gDQo+ICAgVXNpbmcgYW55Y2FzdCBzZWdtZW50IHdpdGhvdXQg
Y29uZmlndXJpbmcgdGhlIHNhbWUgU1JHQiBvbiBub2Rlcw0KPiAgIGJlbG9uZ2luZyB0byB0aGUg
c2FtZSBkZXZpY2UgZ3JvdXAgbWF5IGxlYWQgdG8gbWlzcm91dGluZyAoaW4gYSBNUExTDQo+ICAg
VlBOIGRlcGxveW1lbnQsIHNvbWUgdHJhZmZpYyBtYXkgbGVhayBiZXR3ZWVuIFZQTnMpLg0KPiAN
Cj4gU0I+IFNvIGlzIHRoaXMgYW4gYXJjaGl0ZWN0dXJhbCBzdGF0ZW1lbnQgdGhhdCBtaXhlZCB2
ZW5kb3IgYW55Y2FzdA0KPiBTQj4gZG9lcyBub3Qgd29yaz8NCg0KDQpuby4gaXQganVzdCBzdGF0
ZXMgdGhhdCBhbnljYXN0IHNlZ21lbnRzIG11c3QgYmUgdW5kZXJzdG9vZCB0aGUgc2FtZSBieSBh
bGwgbm9kZXMuDQoNCk5vdGUgdGhhdCBhbnljYXN0IGlzIGFkZHJlc3NlZCBpbiBhIHNlcGFyYXRl
IGRyYWZ0Lg0KDQoNCj4gSW4gd2hpY2ggY2FzZSBJIHdvbmRlciBpZiBpdCBzaG91bGQgYmUgaW4g
dGhlDQo+IFNCPiBhcmNoaXRlY3R1cmUgYXQgYWxsLg0KPiANCj4gMy41LiAgSUdQLUFkamFjZW5j
eSBTZWdtZW50LCBBZGotU0lEDQo+IA0KPiAgIEFuIElHUC1BZGphY2VuY3kgU2VnbWVudCBpcyBh
biBJR1Agc2VnbWVudCBhdHRhY2hlZCB0byBhDQo+ICAgdW5pZGlyZWN0aW9uYWwgYWRqYWNlbmN5
IG9yIGEgc2V0IG9mIHVuaWRpcmVjdGlvbmFsIGFkamFjZW5jaWVzLiAgQnkNCj4gICBkZWZhdWx0
LCBhbiBJR1AtQWRqYWNlbmN5IFNlZ21lbnQgaXMgbG9jYWwgdG8gdGhlIG5vZGUgd2hpY2gNCj4g
ICBhZHZlcnRpc2VzIGl0LiAgSG93ZXZlciwgYW4gQWRqYWNlbmN5IFNlZ21lbnQgY2FuIGJlIGds
b2JhbCBpZg0KPiAgIGFkdmVydGlzZWQgYnkgdGhlIElHUCBhcyBzdWNoLiAgVGhlIFNJRCBvZiB0
aGUgSUdQLUFkamFjZW5jeSBTZWdtZW50DQo+ICAgaXMgY2FsbGVkIHRoZSBBZGotU0lELg0KPiAN
Cj4gU0I+IEkgdGhpbmsgdGhhdCB0aGVyZSBpcyBzb21lIGNvbmZ1c2lvbiBhYm91dCB0aGUgbWVh
bmluZyBvZiBnbG9iYWwNCj4gU0I+IGluIHRoaXMgZHJhZnQuRWFybGllciBvbiB0aGUgdGVybSBp
bXBsaWVkIHRoYXQgZ2xvYmFsIG1lYW50IHRoYXQNCj4gU0I+IGFueSBub2RlIHdvdWxkIGtub3cg
aG93IHRvIGV4ZWN1dGUgdGhlIGluc3RydWN0aW9uLCBoZXJlIGl0DQo+IFNCPiBzZWVtcyB0byBp
bXBseSB0aGF0IGl0IGlzIGdsb2JhbCBpZiB0aGUgdmFsdWUgaXMga25vd24gZ2xvYmFsbHkuDQoN
Cg0KZ2xvYmFsIG1lYW5zIHRoYXQgdGhlIHNlbWFudGljIGlzIGtub3duIGJ5IGFsbCBub2RlcyBh
bmQgaXRzIGlkZW50aWZpZXIgaXMga25vd24gYnkgYWxsIG5vZGVzLg0KDQoNCj4gICBUaGUgYWRq
YWNlbmN5IGlzIGZvcm1lZCBieSB0aGUgbG9jYWwgbm9kZSAoaS5lLiwgdGhlIG5vZGUgYWR2ZXJ0
aXNpbmcNCj4gICB0aGUgYWRqYWNlbmN5IGluIHRoZSBJR1ApIGFuZCB0aGUgcmVtb3RlIG5vZGUg
KGkuZS4sIHRoZSBvdGhlciBlbmQgb2YNCj4gICB0aGUgYWRqYWNlbmN5KS4gIFRoZSBsb2NhbCBu
b2RlIE1VU1QgYmUgYW4gSUdQIG5vZGUuICBUaGUgcmVtb3RlIG5vZGUNCj4gICBNQVkgYmUgYW4g
YWRqYWNlbnQgSUdQIG5laWdoYm9yIG9yIGEgbm9uLWFkamFjZW50IG5laWdoYm9yIChlLmcuOiBh
DQo+ICAgRm9yd2FyZGluZyBBZGphY2VuY3ksIFtSRkM0MjA2XSkuDQo+IA0KPiBTQj4gQXJlbid0
IEFkamFjZW5jeSBzZWdtZW50cyBhIGNvbmNlcHQgaW4gdGhlaXIgb3duIHJpZ2h0IHdpdGggdGhl
DQo+IFNCPiBJR1AganVzdCBiZWluZyBvbmUgd2F5IG9mIGxlYXJuaW5nIHRoZW0/IEluIHdoaWNo
IGNhc2Ugc2hvdWxkbid0IHRoZXkNCj4gU0I+IGJlIGludHJvZHVjZWQgYW5kIGV4cGxvcmVkIGlu
IHRoZWlyIG93biByaWdodCBmaXJzdD8NCg0KDQphZGphY2VuY3kgc2VnbWVudHMgYXJlIG9uZSB0
eXBlIG9mIGxvY2FsIHNlZ21lbnQuIA0KDQphZGphY2VuY3kgc2VnbWVudCByZWZlcnMgdG8gYSBs
b2NhbCBzZWdtZW50IGFwcGxpZWQgdG8gYW4gaWdwIGFkamFjZW5jeS4NCg0Kb2YgY291cnNlIHRo
ZXJlIGFyZSBvdGhlciBwb3NzaWJsZSB1c2UgY2FzZXMgZm9yIGxvY2FsIHNlZ21lbnRzIHJlZmVy
cmluZyB0byBhIGxpbmsuDQoNCg0KPiAgIEEgcGFja2V0IGluamVjdGVkIGFueXdoZXJlIHdpdGhp
biB0aGUgU1IgZG9tYWluIHdpdGggYSBzZWdtZW50IGxpc3QNCj4gICB7U04sIFNOTH0sIHdoZXJl
IFNOIGlzIHRoZSBOb2RlLVNJRCBvZiBub2RlIE4gYW5kIFNOTCBpcyBhbiBBZGotU0lEDQo+ICAg
YXR0YWNoZWQgYnkgbm9kZSBOIHRvIGl0cyBhZGphY2VuY3kgb3ZlciBsaW5rIEwsIHdpbGwgYmUg
Zm9yd2FyZGVkDQo+ICAgYWxvbmcgdGhlIHNob3J0ZXN0LXBhdGggdG8gTiBhbmQgdGhlbiBiZSBz
d2l0Y2hlZCBieSBOLCB3aXRob3V0IGFueQ0KPiAgIElQIHNob3J0ZXN0LXBhdGggY29uc2lkZXJh
dGlvbiwgdG93YXJkcyBsaW5rIEwuICBJZiB0aGUgQWRqLVNJRA0KPiAgIGlkZW50aWZpZXMgYSBz
ZXQgb2YgYWRqYWNlbmNpZXMsIHRoZW4gdGhlIG5vZGUgTiBsb2FkLSBiYWxhbmNlcyB0aGUNCj4g
ICB0cmFmZmljIGFtb25nIHRoZSB2YXJpb3VzIG1lbWJlcnMgb2YgdGhlIHNldC4NCj4gDQo+ICAg
U2ltaWxhcmx5LCB3aGVuIHVzaW5nIGEgZ2xvYmFsIEFkai1TSUQsIGEgcGFja2V0IGluamVjdGVk
IGFueXdoZXJlDQo+ICAgd2l0aGluIHRoZSBTUiBkb21haW4gd2l0aCBhIHNlZ21lbnQgbGlzdCB7
U05MfSwgd2hlcmUgU05MIGlzIGEgZ2xvYmFsDQo+ICAgQWRqLVNJRCBhdHRhY2hlZCBieSBub2Rl
IE4gdG8gaXRzIGFkamFjZW5jeSBvdmVyIGxpbmsgTCwgd2lsbCBiZQ0KPiAgIGZvcndhcmRlZCBh
bG9uZyB0aGUgc2hvcnRlc3QtcGF0aCB0byBOIGFuZCB0aGVuIGJlIHN3aXRjaGVkIGJ5IE4sDQo+
ICAgd2l0aG91dCBhbnkgSVAgc2hvcnRlc3QtcGF0aCBjb25zaWRlcmF0aW9uLCB0b3dhcmRzIGxp
bmsgTC4NCj4gDQo+IFNCPiBBaCwgSSB0aGluayBzb21lIGNsYXJpZmljYXRpb24gaXMgbmVlZGVk
IGVhcmxpZXIgaW4gdGhlIHRleHQuDQo+IFNCPiBZb3UgaGF2ZSB0d28gdHlwZXMgb2YgQURKLVNJ
RCwgdGhlIG9yaWdpbmFsIG9uZSB3aGljaCB3YXMNCj4gU0I+IGEgbG9jYWwgbGFiZWwgYXR0YWNo
ZWQgdG8gYSBub2RlIHNvIGl0IG9ubHkgaGFkIG1lYW5pbmcgaW4NCj4gU0I+IGNvbmp1bmN0aW9u
IHdpdGggdGhlIG5vZGUgaWRlbnRpZmllciwgYW5kIHRoaXMgbmV3IG9uZSB3aGljaA0KPiBTQj4g
aXMgYSBmdWxsIGlkZW50aXR5IGluIGl0J3Mgb3duIHJpZ2h0LiBJIHRoaW5rIHRoYXQgbmVlZHMg
dG8gYmUNCj4gU0I+IG1vcmUgY2xlYXJseSBleHByZXNzZWQsIHRvZ2V0aGVyIHdpdGggc29tZSBk
aXNjdXNzaW9uIG9uIHNjYWxpbmcuDQoNCg0KdGhlIGFkamFjZW5jeSBzaWQgaGFzIGJlZW4gYWx3
YXlzIGRlZmluZWQgYXMgbG9jYWwgb3IgZ2xvYmFsLiBUaGUgdGV4dCBjbGVhcmx5IHN0YXRlcyB0
aGUgZGlmZmVyZW5jZS4NCg0KVGhpcyBpcyB3ZWxsIHVuZGVyc3Rvb2QsIEkgdGhpbmssIGJ5IGlt
cGxlbWVudG9ycywgYW5kIG9wZXJhdG9ycy4NCg0KTGV0IG1lIGtub3cgd2hhdCBraW5kIG9mIGNv
bmZ1c2lvbiB5b3Ugc3RpbGwgaGF2ZSBhYm91dCBpdC4NCg0KDQo+IFNCPg0KPiBTQj4gVGhpcyBj
YXVzZXMgbWUgdG8gd29uZGVyIHdoeSB0aGVyZSBpcyBubyBvdmVyYWxsIGRpc2N1c3Npb24gb24g
dGhlDQo+IFNCPiBzY2FsaW5nIHByb3BlcnRpZXMgYW5kIGlzc3VlcywNCg0KDQpwcm9iYWJseSBi
ZWNhdXNlIGZyb20gYSBwcmFnbWF0aWNhbCBwZXJzcGVjdGl2ZSBvZiBvcGVyYXRvcnMgYW5kIGlt
cGxlbWVudG9ycywgdGhlcmUgaXNu4oCZdCBhbnkuDQoNCj4gc2luY2UgdGhhdCBpcyB2ZXJ5IG11
Y2ggYW4NCj4gU0I+IGFuIGFyY2hpdGVjdHVyYWwgY29uY2Vybi4NCg0KPiANCj4gICBJZiB0aGUN
Cj4gICBBZGotU0lEIGlkZW50aWZpZXMgYSBzZXQgb2YgYWRqYWNlbmNpZXMsIHRoZW4gdGhlIG5v
ZGUgTiBsb2FkLQ0KPiAgIGJhbGFuY2VzIHRoZSB0cmFmZmljIGFtb25nIHRoZSB2YXJpb3VzIG1l
bWJlcnMgb2YgdGhlIHNldC4gIFRoZSB1c2UNCj4gICBvZiBnbG9iYWwgQWRqLVNJRCBhbGxvd3Mg
dG8gcmVkdWNlIHRoZSBzaXplIG9mIHRoZSBzZWdtZW50IGxpc3Qgd2hlbg0KPiAgIGV4cHJlc3Np
bmcgYSBwYXRoIGF0IHRoZSBjb3N0IG9mIGFkZGl0aW9uYWwgc3RhdGUgKGkuZS46IHRoZSBnbG9i
YWwNCj4gICBBZGotU0lEIHdpbGwgYmUgaW5zZXJ0ZWQgYnkgYWxsIHJvdXRlcnMgd2l0aGluIHRo
ZSBhcmVhIGluIHRoZWlyDQo+ICAgZm9yd2FyZGluZyB0YWJsZSkuDQo+IA0KPiBTQj4gRG9lc24n
dCBpdCBhbHNvIHVzZSBsYWJlbHMgZnJvbSB0aGUgZ2xvYmFsIGxhYmVsIHRhYmxlIHdoaWNoDQo+
IFNCPiBpcyBpdHNlbGYgb2YgYSBsaW1pdGVkIHNpemU/DQoNCg0Kd2VsbCwgdGhlIHNpemUgaXMg
YWx3YXlzIGxpbWl0ZWQgZXZlbiBpZiBtb2Rlcm4gcGxhdGZvcm1zIGRvIGhhdmUgbGFyZ2UgY2Fw
YWJpbGl0aWVzLg0KDQpPZiBjb3Vyc2UgaXQgYWx3YXlzICBtYXR0ZXIgb2YgdHJhZGUtb2Zmcy4N
Cg0KZ2xvYmFsIG1lYW5zIG1vcmUgU1JHQiBzcGFjZSwgbG9jYWwgbWVhbnMgbGVzcyBTUkdCIHNw
YWNlLg0KDQpTUiBhcmNoaXRlY3R1cmUgZ2l2ZXMgeW91IGJvdGggb3B0aW9ucy4NCg0KDQo+ICAg
QW4gIklHUCBBZGphY2VuY3kgU2VnbWVudCIgb3IgIkFkai1TSUQiIGVuZm9yY2VzIHRoZSBzd2l0
Y2hpbmcgb2YgdGhlDQo+ICAgcGFja2V0IGZyb20gYSBub2RlIHRvd2FyZHMgYSBkZWZpbmVkIGlu
dGVyZmFjZSBvciBzZXQgb2YgaW50ZXJmYWNlcy4NCj4gICBUaGlzIGlzIGtleSB0byB0aGVvcmV0
aWNhbGx5IHByb3ZlIHRoYXQgYW55IHBhdGggY2FuIGJlIGV4cHJlc3NlZCBhcw0KPiAgIGEgbGlz
dCBvZiBzZWdtZW50cy4NCj4gDQo+IFNCPiBUaGlzIGlzIHN1cmVseSBhIGZ1bmRhbWVudGFsIHBv
aW50IHRoYXQgc2hvdWxkIGJlIGVhcmxpZXIgaW4gdGhlDQo+IFNCPiBkaXNjdXNzaW9uLg0KDQoN
Cm9rLg0KDQoNCj4gRmlsc2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBpcmVzIE1heSAyMywgMjAx
NyAgICAgICAgICAgICAgICAgW1BhZ2UgMTRdDQo+IA0KPiBJbnRlcm5ldC1EcmFmdCAgICAgICAg
ICAgICAgIFNlZ21lbnQgUm91dGluZyAgICAgICAgICAgICAgIE5vdmVtYmVyIDIwMTYNCj4gDQo+
IA0KPiAgIFRoZSBlbmNvZGluZ3Mgb2YgdGhlIEFkai1TSUQgaW5jbHVkZSB0aGUgQi1mbGFnLiAg
V2hlbiBzZXQsIHRoZSBBZGotDQo+ICAgU0lEIHJlZmVycyB0byBhbiBhZGphY2VuY3kgdGhhdCBp
cyBlbGlnaWJsZSBmb3IgcHJvdGVjdGlvbiAoZS5nLjoNCj4gICB1c2luZyBJUEZSUiBvciBNUExT
LUZSUikuDQo+IA0KPiBTQj4gV2hlcmUgZGlkIHRoZSBCLWZsYWcgY29tZSBmcm9tPw0KDQoNCnRo
aXMgcmVjb25uZWN0cyB3aXRoIHlvdXIgY29tbWVudHMgYWJvdXQgZGV0YWlscy4gSSB0aGluayB3
ZSBuZWVkIHRvIHJlLXBocmFzZSB3aXRoIGxlc3MgcHJvdG9jb2wgZGV0YWlscy4NCg0KDQo+ICAg
VGhlIGVuY29kaW5ncyBvZiB0aGUgQWRqLVNJRCBpbmNsdWRlIHRoZSBMLWZsYWcuICBXaGVuIHNl
dCwgdGhlIEFkai0NCj4gICBTSUQgaGFzIGxvY2FsIHNpZ25pZmljYW5jZS4gIEJ5IGRlZmF1bHQg
dGhlIEwtZmxhZyBpcyBzZXQuDQo+IA0KPiAgIEEgbm9kZSBTSE9VTEQgYWxsb2NhdGUgb25lIEFk
ai1TSURzIGZvciBlYWNoIG9mIGl0cyBhZGphY2VuY2llcy4NCj4gU0I+IFRoaXMgbmVlZHMgZnVy
dGhlciBkaXNjdXNzaW9uIC0gZm9yIGV4YW1wbGUgd2h5IC4uIGFuZCBpcyB0aGlzDQo+IFNCPiBs
b2NhbCBvciBnbG9iYWw/DQo+IA0KPiAgIEEgbm9kZSBNQVkgYWxsb2NhdGUgbXVsdGlwbGUgQWRq
LVNJRHMgdG8gdGhlIHNhbWUgYWRqYWNlbmN5LiAgQW4NCj4gICBleGFtcGxlIGlzIHdoZXJlIHRo
ZSBhZGphY2VuY3kgaXMgZXN0YWJsaXNoZWQgb3ZlciBhIGJ1bmRsZQ0KPiAgIGludGVyZmFjZS4g
IEVhY2ggYnVuZGxlIG1lbWJlciBNQVkgaGF2ZSBpdHMgb3duIEFkai1TSUQuDQo+IA0KPiAgIEEg
bm9kZSBNQVkgYWxsb2NhdGUgdGhlIHNhbWUgQWRqLVNJRCB0byBtdWx0aXBsZSBhZGphY2VuY2ll
cy4NCj4gDQo+IFNCPiBJIGFtIHdvbmRlcmluZyBpcyBBZGogIGlzIHRoZSByaWdodCB0ZXJtIGhl
cmUuIEluIHJvdXRpbmcNCj4gU0I+IGFuIGFkamFjZW5jeSBpcyBhIG5laWdoYm91cmluZyBub2Rl
LCBidXQgSSB0aGluayB3ZSBhcmUNCj4gU0I+IGFjdHVhbGx5IHRhbGtpbmcgaGVyZSBhYm91dCBM
aW5rLVNJRHMgYW5kIExpbmstQnVuZGxlIFNJRHMuDQoNCg0Kd2Uga2VlcCBhZGphY2VuY3kgc2lk
IGJlY2F1c2Ugb2YgdGhlIGlncCBjb250cm9sIHBsYW5lIHdoZXJlIHRoZXJl4oCZcyBubyBzdWNo
IOKAnGxpbmvigJ0gZGVmaW5pdGlvbi4gRXZlcnl0aGluZyBpcyBhIGFkamFjZW5jeS4NCg0KT2Yg
Y291cnNlIHdlIGNhbiBjcmVhdGUgYW5vdGhlciB0ZXJtIOKAnGxpbmstU0lE4oCdIHdoZXJlIHdl
IGFkZHJlc3MgaW50ZXJmYWNlcyBzcGVjaWZpYyBzaWTigJlzLg0KDQpOb3RlIHRoYXQgZm9yIHNp
bXBsaWNpdHkgd2UgYWxyZWFkeSBhZG9wdGVkIEFkai1TSUQgYWxzbyBmb3IgQkdQLUVQRS4gDQoN
ClRoZSB0ZXJtcyDigJxhZGphY2VuY3Qgbm9kZeKAnSBjYW4gYWxzbyBiZSB1c2VkIG91dHNpZGUg
dGhlIHNjb3BlIG9mIGFuIGlncC4NCg0KDQo+ICAgQWRqYWNlbmN5IHN1cHByZXNzaW9uIE1VU1Qg
Tk9UIGJlIHBlcmZvcm1lZCBieSB0aGUgSUdQLg0KPiANCj4gU0I+IFdoeS93aHkgbm90Pw0KPiAN
Cj4gICBBIG5vZGUgTVVTVCBpbnN0YWxsIGEgRklCIGVudHJ5IGZvciBhbnkgQWRqLVNJRCBvZiB2
YWx1ZSBWIGF0dGFjaGVkDQo+ICAgdG8gZGF0YS1saW5rIEw6DQo+IA0KPiAgICAgIEluY29taW5n
IEFjdGl2ZSBTZWdtZW50OiBWDQo+ICAgICAgT3BlcmF0aW9uOiBORVhUDQo+ICAgICAgRWdyZXNz
IEludGVyZmFjZTogTA0KPiANCj4gICBUaGUgQWRqLVNJRCBpbXBsaWVzLCBmcm9tIHRoZSByb3V0
ZXIgYWR2ZXJ0aXNpbmcgaXQsIHRoZSBmb3J3YXJkaW5nDQo+ICAgb2YgdGhlIHBhY2tldCB0aHJv
dWdoIHRoZSBhZGphY2VuY3kgaWRlbnRpZmllZCBieSB0aGUgQWRqLVNJRCwNCj4gICByZWdhcmRs
ZXNzIGl0cyBJR1AvU1BGIGNvc3QuICBJbiBvdGhlciB3b3JkcywgdGhlIHVzZSBvZiBBZGphY2Vu
Y3kNCj4gICBTZWdtZW50cyBvdmVycmlkZXMgdGhlIHJvdXRpbmcgZGVjaXNpb24gbWFkZSBieSBT
UEYgYWxnb3JpdGhtLg0KPiANCj4gU0I+IG5pdDogYnkgdGhlIFNQRg0KPiANCj4gMy41LjEuICBQ
YXJhbGxlbCBBZGphY2VuY2llcw0KPiANCj4gICBBZGotU0lEcyBjYW4gYmUgdXNlZCBpbiBvcmRl
ciB0byByZXByZXNlbnQgYSBzZXQgb2YgcGFyYWxsZWwNCj4gICBpbnRlcmZhY2VzIGJldHdlZW4g
dHdvIGFkamFjZW50IHJvdXRlcnMuDQo+IA0KPiBTQj4gU28gd2UgbmVlZCB0byBiZSBjbGVhcmVy
IHRoYXQgYW4gQWRqLVNJRCBjYW4gYmUgYSBMaW5rLCBhIExpbmsgQnVuZGxlIG9yIGEgbGluayBH
cm91cC4NCg0KDQpvay4NCg0KDQo+ICAgQSBub2RlIE1VU1QgaW5zdGFsbCBhIEZJQiBlbnRyeSBm
b3IgYW55IGxvY2FsbHkgb3JpZ2luYXRlZCBBZGphY2VuY3kNCj4gICBTZWdtZW50IChBZGotU0lE
KSBvZiB2YWx1ZSBXIGF0dGFjaGVkIHRvIGEgc2V0IG9mIGxpbmsgQiB3aXRoOg0KPiANCj4gICAg
ICBJbmNvbWluZyBBY3RpdmUgU2VnbWVudDogVw0KPiAgICAgIEluZ3Jlc3MgT3BlcmF0aW9uOiBO
RVhUDQo+ICAgICAgRWdyZXNzIGludGVyZmFjZTogbG9hZGJhbGFuY2UgYmV0d2VlbiBhbnkgZGF0
YS1saW5rIHdpdGhpbiBzZXQgQg0KPiANCj4gICBXaGVuIHBhcmFsbGVsIGFkamFjZW5jaWVzIGFy
ZSB1c2VkIGFuZCBhc3NvY2lhdGVkIHRvIHRoZSBzYW1lIEFkai0NCj4gICBTSUQsIGFuZCBpbiBv
cmRlciB0byBvcHRpbWl6ZSB0aGUgbG9hZCBiYWxhbmNpbmcgZnVuY3Rpb24sIGEgIndlaWdodCIN
Cj4gICBmYWN0b3IgY2FuIGJlIGFzc29jaWF0ZWQgdG8gdGhlIEFkai1TSUQgYWR2ZXJ0aXNlZCB3
aXRoIGVhY2gNCj4gICBhZGphY2VuY3kuICBUaGUgd2VpZ2h0IHRlbGxzIHRoZSBpbmdyZXNzIChv
ciBhIFNETi9vcmNoZXN0cmF0aW9uDQo+ICAgc3lzdGVtKSBhYm91dCB0aGUgbG9hZGJhbGFuY2lu
ZyBmYWN0b3Igb3ZlciB0aGUgcGFyYWxsZWwgYWRqYWNlbmNpZXMuDQo+ICAgQXMgc2hvd24gaW4g
RmlndXJlIDEsIEEgYW5kIEIgYXJlIGNvbm5lY3RlZCB0aHJvdWdoIHR3byBwYXJhbGxlbA0KPiAg
IGFkamFjZW5jaWVzDQo+IA0KPiANCj4gDQo+IEZpbHNmaWxzLCBldCBhbC4gICAgICAgICAgRXhw
aXJlcyBNYXkgMjMsIDIwMTcgICAgICAgICAgICAgICAgIFtQYWdlIDE1XQ0KPiANCj4gSW50ZXJu
ZXQtRHJhZnQgICAgICAgICAgICAgICBTZWdtZW50IFJvdXRpbmcgICAgICAgICAgICAgICBOb3Zl
bWJlciAyMDE2DQo+IA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlu
ay0xDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0rDQo+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8DQo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFMtLS1BICAgICAgICBCLS0tQw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAgICAgfA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0t
LS0tKw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLTINCj4gDQo+ICAg
ICAgICAgICAgICAgICAgIEZpZ3VyZSAxOiBQYXJhbGxlbCBMaW5rcyBhbmQgQWRqLVNJRHMNCj4g
DQo+ICAgTm9kZSBBIGFkdmVydGlzZXMgZm9sbG93aW5nIEFkai1TSURzIGFuZCB3ZWlnaHRzOg0K
PiANCj4gICBvICBMaW5rLTE6IEFkai1TSUQgMTAwMCwgd2VpZ2h0OiAxDQo+IA0KPiAgIG8gIExp
bmstMjogQWRqLVNJRCAxMDAwLCB3ZWlnaHQ6IDINCj4gDQo+ICAgTm9kZSBTIHJlY2VpdmVzIHRo
ZSBhZHZlcnRpc2VtZW50cyBvZiB0aGUgcGFyYWxsZWwgYWRqYWNlbmNpZXMgYW5kDQo+ICAgdW5k
ZXJzdGFuZHMgdGhhdCBieSB1c2luZyBBZGotU0lEIDEwMDAgbm9kZSBBIHdpbGwgbG9hZGJhbGFu
Y2UgdGhlDQo+ICAgdHJhZmZpYyBhY3Jvc3MgdGhlIHBhcmFsbGVsIGxpbmtzIChsaW5rLTEgYW5k
IGxpbmstMikgYWNjb3JkaW5nIHRvIGENCj4gICAxOjIgcmF0aW8uDQo+IA0KPiBTQj4gV2hhdCBo
YXBwZW5zIGFib3V0IGZsb3cgb3JkZXIgd2hlbiB5b3UgdXNlIHRoaXMgY29uc3RydWN0Pw0KDQoN
CnRoaXMgaXMgb3V0c2lkZSB0aGUgc2NvcGUgb2YgU1IuIFRoaXMgaXMgYWJvdXQgRUNNUCBhbGdv
cml0aG1zIGFzIHVzZWQgdG9kYXkgd2l0aCBvciB3aXRob3V0IFNSLg0KDQoNCj4gDQo+ICAgVGhl
IHdlaWdodCB2YWx1ZSBpcyBhZHZlcnRpc2VkIHdpdGggdGhlIEFkai1TSUQgYXMgZGVmaW5lZCBp
biBJR1AgU1INCj4gICBleHRlbnNpb25zIGRvY3VtZW50cy4NCj4gDQo+IDMuNS4yLiAgTEFOIEFk
amFjZW5jeSBTZWdtZW50cw0KPiANCj4gICBJbiBMQU4gc3VibmV0d29ya3MsIGxpbmstc3RhdGUg
cHJvdG9jb2xzIGRlZmluZSB0aGUgY29uY2VwdCBvZg0KPiAgIERlc2lnbmF0ZWQgUm91dGVyIChE
UiwgaW4gT1NQRikgb3IgRGVzaWduYXRlZCBJbnRlcm1lZGlhdGUgU3lzdGVtDQo+ICAgKERJUywg
aW4gSVMtSVMpIHRoYXQgY29uZHVjdCBmbG9vZGluZyBpbiBicm9hZGNhc3Qgc3VibmV0d29ya3Mg
YW5kDQo+ICAgdGhhdCBkZXNjcmliZSB0aGUgTEFOIHRvcG9sb2d5IGluIGEgc3BlY2lhbCByb3V0
aW5nIHVwZGF0ZSAoT1NQRg0KPiAgIFR5cGUyIExTQSBvciBJUy1JUyBQc2V1ZG9ub2RlIExTUCku
DQo+IA0KPiAgIFRoZSBkaWZmaWN1bHR5IHdpdGggTEFOcyBpcyB0aGF0IGVhY2ggcm91dGVyIG9u
bHkgYWR2ZXJ0aXNlcyBpdHMNCj4gICBjb25uZWN0aXZpdHkgdG8gdGhlIERSL0RJUyBhbmQgbm90
IHRvIGVhY2ggb3RoZXIgaW5kaXZpZHVhbCBub2RlcyBpbg0KPiAgIHRoZSBMQU4uICBUaGVyZWZv
cmUsIGFkZGl0aW9uYWwgcHJvdG9jb2wgbWVjaGFuaXNtcyAoSVMtSVMgYW5kIE9TUEYpDQo+ICAg
YXJlIG5lY2Vzc2FyeSBpbiBvcmRlciBmb3IgZWFjaCByb3V0ZXIgaW4gdGhlIExBTiB0byBhZHZl
cnRpc2UgYW4NCj4gICBBZGotU0lEIGFzc29jaWF0ZWQgdG8gZWFjaCBuZWlnaGJvciBpbiB0aGUg
TEFOLiAgVGhlc2UgZXh0ZW5zaW9ucyBhcmUNCj4gICBkZWZpbmVkIGluIElHUCBTUiBleHRlbnNp
b25zIGRvY3VtZW50cy4NCj4gDQo+IFNCPiBUaGlzIHNob3VsZCByZWFsbHkgYmUgaW4gdGhlIGZv
cm0gIndpbGwgbmVlZCB0byBiZSBwcm92aWRlZOKAnQ0KDQoNCndlbGwsIGluIGZhY3QsIHRoZXJl
IEFSRSBwcm92aWRlZC4NCg0KDQo+IA0KPiAzLjYuICBCaW5kaW5nIFNlZ21lbnQNCj4gDQo+IFNC
PiBJIGhhdmUgcmVhZCB0aGlzIHNlY3Rpb24gc2V2ZXJhbCB0aW1lcywgYW5kIGl0IGlzIHJlYWxs
eSBub3QgY2xlYXIuDQo+IFNCPiBOb3IgaXMgaXQgY2xlYXIgdGhhdCB0aGlzIGlzIHBhcnQgb2Yg
U1IgYXMgb3Bwb3NlZCB0byBhIGdlbmVyYWwNCj4gU0I+IE1QTFMgZmVhdHVyZS4NCg0KDQpJdCBp
cyBub3QgZGF0YXBsYW5lIHNwZWNpZmljLiBJdCBpcyBhIGdlbmVyaWMgbWVjaGFuaXNtIHVzZWQg
dG8gbWFwIGEgc2luZ2xlIHZhbHVlIChTSUQpIHRvIGEgc291cmNlIHJvdXRlZCBwYXRoLg0KDQoN
Cj4gDQo+IDMuNi4xLiAgTWFwcGluZyBTZXJ2ZXINCj4gDQo+ICAgQSBSZW1vdGUtQmluZGluZyBT
SUQgUyBhZHZlcnRpc2VkIGJ5IHRoZSBtYXBwaW5nIHNlcnZlciBNIGZvciByZW1vdGUNCj4gICBw
cmVmaXggUiBhdHRhY2hlZCB0byBub24tU1ItY2FwYWJsZSBub2RlIE4gc2lnbmFscyB0aGUgc2Ft
ZQ0KPiAgIGluZm9ybWF0aW9uIGFzIGlmIE4gaGFkIGFkdmVydGlzZWQgUyBhcyBhIFByZWZpeC1T
SUQuICBGdXJ0aGVyDQo+ICAgZGV0YWlscyBhcmUgZGVzY3JpYmVkIGluIHRoZSBTUi9MRFAgaW50
ZXJ3b3JraW5nIHByb2NlZHVyZXMNCj4gICAoW0ktRC5pZXRmLXNwcmluZy1zZWdtZW50LXJvdXRp
bmctbGRwLWludGVyb3BdLg0KPiANCj4gDQo+IA0KPiBGaWxzZmlscywgZXQgYWwuICAgICAgICAg
IEV4cGlyZXMgTWF5IDIzLCAyMDE3ICAgICAgICAgICAgICAgICBbUGFnZSAxNl0NCj4gDQo+IElu
dGVybmV0LURyYWZ0ICAgICAgICAgICAgICAgU2VnbWVudCBSb3V0aW5nICAgICAgICAgICAgICAg
Tm92ZW1iZXIgMjAxNg0KPiANCj4gDQo+ICAgVGhlIHNlZ21lbnQgYWxsb2NhdGlvbiBhbmQgU1JH
QiBNYWludGVuYW5jZSBydWxlcyBhcmUgdGhlIHNhbWUgYXMNCj4gICB0aG9zZSBkZWZpbmVkIGZv
ciBQcmVmaXgtU0lELg0KPiANCj4gMy42LjIuICBUdW5uZWwgSGVhZGVuZA0KPiANCj4gICBUaGUg
c2VnbWVudCBhbGxvY2F0aW9uIGFuZCBTUkdCIE1haW50ZW5hbmNlIHJ1bGVzIGFyZSB0aGUgc2Ft
ZSBhcw0KPiAgIHRob3NlIGRlZmluZWQgZm9yIEFkai1TSUQuICBBIHR1bm5lbCBhdHRhY2hlZCB0
byBhIGhlYWQtZW5kIEggYWN0cyBhcw0KPiAgIGFuIGFkamFjZW5jeSBhdHRhY2hlZCB0byBILg0K
PiANCj4gICBOb3RlOiBhbiBhbHRlcm5hdGl2ZSBjb25zaXN0cyBvZiByZXByZXNlbnRpbmcgdHVu
bmVscyBhcyBmb3J3YXJkaW5nLQ0KPiAgIGFkamFjZW5jaWVzICggW1JGQzQyMDZdKS4gIEluIHN1
Y2ggY2FzZSwgdGhlIHR1bm5lbCBpcyBwcmVzZW50ZWQgdG8NCj4gICB0aGUgcm91dGluZyBhcmVh
IGFzIGEgcm91dGluZyBhZGphY2VuY3kgYW5kIGlzIGNvbnNpZGVyZWQgYXMgc3VjaCBieQ0KPiAg
IGFsbCBhcmVhIHJvdXRlcnMuICBUaGUgUmVtb3RlLUJpbmRpbmcgU0lEIGlzIHByZWZlcnJlZCBh
cyBpdCBhbGxvd3MNCj4gICB0byBhZHZlcnRpc2UgdGhlIHByZXNlbmNlIG9mIGEgdHVubmVsIHdp
dGhvdXQgaW5mbHVlbmNpbmcgdGhlIExTREINCj4gICBhbmQgdGhlIFNQRiBjb21wdXRhdGlvbi4N
Cj4gDQo+IDMuNy4gIEludGVyLUFyZWEgQ29uc2lkZXJhdGlvbnMNCj4gDQo+ICAgSW4gdGhlIGZv
bGxvd2luZyBleGFtcGxlIGRpYWdyYW0gd2UgYXNzdW1lIGFuIElHUCBkZXBsb3llZCB1c2luZw0K
PiAgIGFyZWFzIGFuZCB3aGVyZSBTUiBoYXMgYmVlbiBkZXBsb3llZC4NCj4gDQo+ICAgICAgICAg
ICAgICAgICAhICAgICAgICAgICENCj4gICAgICAgICAgICAgICAgICEgICAgICAgICAgIQ0KPiAg
ICAgICAgICBCLS0tLS0tQy0tLS0tRi0tLS1HLS0tLS1LDQo+ICAgICAgICAgLyAgICAgICB8ICAg
ICAgICAgIHwgICAgIHwNCj4gICBTLS0tQS8gICAgICAgIHwgICAgICAgICAgfCAgICAgfA0KPiAg
ICAgICAgXCAgICAgICAgfCAgICAgICAgICB8ICAgICB8DQo+ICAgICAgICAgXEQtLS0tLS1JLS0t
LS0tLS0tLUotLS0tLUwtLS0tWiAoMTkyLjAuMi4xLzMyLCBOb2RlLVNJRDogMTUwKQ0KPiAgICAg
ICAgICAgICAgICAgISAgICAgICAgICAhDQo+ICAgICAgICAgQXJlYS0xICAhIEJhY2tib25lICEg
QXJlYSAyDQo+ICAgICAgICAgICAgICAgICAhICAgYXJlYSAgICENCj4gDQo+ICAgICAgICAgICAg
ICAgICAgIEZpZ3VyZSAyOiBJbnRlci1BcmVhIFRvcG9sb2d5IEV4YW1wbGUNCj4gDQo+ICAgSW4g
YXJlYSAyLCBub2RlIFogYWxsb2NhdGVzIE5vZGUtU0lEIDE1MCB0byBoaXMgbG9jYWwgcHJlZml4
DQo+ICAgMTkyLjAuMi4xLzMyLiAgQUJScyBHIGFuZCBKIHdpbGwgcHJvcGFnYXRlIHRoZSBwcmVm
aXggaW50byB0aGUNCj4gICBiYWNrYm9uZSBhcmVhIGJ5IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNl
IG9mIHRoZSBwcmVmaXggYWNjb3JkaW5nIHRvDQo+ICAgbm9ybWFsIGludGVyLWFyZWEvbGV2ZWwg
SUdQIHByb3BhZ2F0aW9uIHJ1bGVzLg0KPiANCj4gICBOb2RlcyBDIGFuZCBJIHdpbGwgYXBwbHkg
dGhlIHNhbWUgYmVoYXZpb3Igd2hlbiBsZWFraW5nIHByZWZpeGVzIGZyb20NCj4gICB0aGUgYmFj
a2JvbmUgYXJlYSBkb3duIHRvIGFyZWEgMS4gIFRoZXJlZm9yZSwgbm9kZSBTIHdpbGwgc2VlIHBy
ZWZpeA0KPiAgIDE5Mi4wLjIuMS8zMiB3aXRoIFByZWZpeC1TSUQgMTUwIGFuZCBhZHZlcnRpc2Vk
IGJ5IG5vZGVzIEMgYW5kIEkuDQo+IA0KPiAgIEl0IHRoZXJlZm9yZSByZXN1bHRzIHRoYXQgYSBQ
cmVmaXgtU0lEIHJlbWFpbnMgYXR0YWNoZWQgdG8gaXRzDQo+ICAgcmVsYXRlZCBJR1AgUHJlZml4
IHRocm91Z2ggdGhlIGludGVyLWFyZWEgcHJvY2Vzcy4NCj4gDQo+ICAgV2hlbiBub2RlIFMgc2Vu
ZHMgdHJhZmZpYyB0byAxOTIuMC4yLjEvMzIsIGl0IHB1c2hlcyBOb2RlLVNJRCgxNTApIGFzDQo+
ICAgYWN0aXZlIHNlZ21lbnQgYW5kIGZvcndhcmQgaXQgdG8gQS4NCj4gDQo+IA0KPiANCj4gRmls
c2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBpcmVzIE1heSAyMywgMjAxNyAgICAgICAgICAgICAg
ICAgW1BhZ2UgMTddDQo+IA0KPiBJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICAgIFNlZ21lbnQg
Um91dGluZyAgICAgICAgICAgICAgIE5vdmVtYmVyIDIwMTYNCj4gDQo+IA0KPiAgIFdoZW4gcGFj
a2V0IGFycml2ZXMgYXQgQUJSIEkgKG9yIEMpLCB0aGUgQUJSIGZvcndhcmRzIHRoZSBwYWNrZXQN
Cj4gICBhY2NvcmRpbmcgdG8gdGhlIGFjdGl2ZSBzZWdtZW50IChOb2RlLVNJRCgxNTApKS4gIEZv
cndhcmRpbmcNCj4gICBjb250aW51ZXMgYWNyb3NzIGFyZWEgYm9yZGVycywgdXNpbmcgdGhlIHNh
bWUgTm9kZS1TSUQoMTUwKSwgdW50aWwNCj4gICB0aGUgcGFja2V0IHJlYWNoZXMgaXRzIGRlc3Rp
bmF0aW9uLg0KPiANCj4gICBXaGVuIGFuIEFCUiBwcm9wYWdhdGVzIGEgcHJlZml4IGZyb20gb25l
IGFyZWEgdG8gYW5vdGhlciBpdCBNVVNUIHNldA0KPiAgIHRoZSBSLUZsYWcuDQo+IA0KPiBTQj4g
QXMgZmFyIGFzIEkgY2FuIHNlZSB0aGVzZSBmbGFncyBhcmUgbm90IHByb3Blcmx5IGRlZmluZWQg
aW4gdGhpcyBhcmNoaXRlY3R1cmUgZG9jdW1lbnQuDQo+IFNCPiBXaGF0IGlzIHJlYWxseSBuZWVk
ZWQgaXMgYSBzZWN0aW9uIG9uIHJvdXRpbmcgcHJvdG9jb2wgaW5kaWNhdG9ycy4NCg0KDQpyb3V0
aW5nIHByb3RvY29scyBkcmFmdHMgYXJlIHJlZmVyZW5jZWQuIEluIHlvdXIgcHJldmlvdXMgY29t
bWVudHMgeW91IHN1Z2dlc3RlZCBub3QgdG8gaGF2ZSB0aGVzZSBkZXRhaWxzLg0KDQoNCj4gDQo+
IDQuICBCR1AgUGVlcmluZyBTZWdtZW50cw0KPiANCj4gICBJbiB0aGUgY29udGV4dCBvZiBCR1Ag
RWdyZXNzIFBlZXIgRW5naW5lZXJpbmcgKEVQRSksIGFzIGRlc2NyaWJlZCBpbg0KPiAgIFtJLUQu
aWV0Zi1zcHJpbmctc2VnbWVudC1yb3V0aW5nLWNlbnRyYWwtZXBlXSwgYW4gRVBFIGVuYWJsZWQg
RWdyZXNzDQo+ICAgUEUgbm9kZSBNQVkgYWR2ZXJ0aXNlIHNlZ21lbnRzIGNvcnJlc3BvbmRpbmcg
dG8gaXRzIGF0dGFjaGVkIHBlZXJzLg0KPiAgIFRoZXNlIHNlZ21lbnRzIGFyZSBjYWxsZWQgQkdQ
IHBlZXJpbmcgc2VnbWVudHMgb3IgQkdQIFBlZXJpbmcgU0lEcy4NCj4gICBUaGV5IGVuYWJsZSB0
aGUgZXhwcmVzc2lvbiBvZiBzb3VyY2Utcm91dGVkIGludGVyLWRvbWFpbiBwYXRocy4NCj4gDQo+
ICAgQW4gaW5ncmVzcyBib3JkZXIgcm91dGVyIG9mIGFuIEFTIG1heSBjb21wb3NlIGEgbGlzdCBv
ZiBzZWdtZW50cyB0bw0KPiAgIHN0ZWVyIGEgZmxvdyBhbG9uZyBhIHNlbGVjdGVkIHBhdGggd2l0
aGluIHRoZSBBUywgdG93YXJkcyBhIHNlbGVjdGVkDQo+ICAgZWdyZXNzIGJvcmRlciByb3V0ZXIg
QyBvZiB0aGUgQVMgYW5kIHRocm91Z2ggYSBzcGVjaWZpYyBwZWVyLiAgQXQNCj4gICBtaW5pbXVt
LCBhIEJHUCBQZWVyaW5nIEVuZ2luZWVyaW5nIHBvbGljeSBhcHBsaWVkIGF0IGFuIGluZ3Jlc3Mg
UEUNCj4gICBpbnZvbHZlcyB0d28gc2VnbWVudHM6IHRoZSBOb2RlIFNJRCBvZiB0aGUgY2hvc2Vu
IGVncmVzcyBQRSBhbmQgdGhlbg0KPiAgIHRoZSBCR1AgUGVlcmluZyBTZWdtZW50IGZvciB0aGUg
Y2hvc2VuIGVncmVzcyBQRSBwZWVyIG9yIHBlZXJpbmcNCj4gICBpbnRlcmZhY2UuDQo+IA0KPiAg
IEhlcmVhZnRlciwgd2Ugd2lsbCBkZWZpbmUgdGhyZWUgdHlwZXMgb2YgQkdQIHBlZXJpbmcgc2Vn
bWVudHMvU0lEJ3M6DQo+ICAgUGVlck5vZGVTSUQsIFBlZXJBZGpTSUQgYW5kIFBlZXJTZXRTSUQu
DQo+IA0KPiAgIG8gIFBlZXJOb2RlIFNJRC4gIEEgQkdQIFBlZXJOb2RlIHNlZ21lbnQvU0lEIGlz
IGEgbG9jYWwgc2VnbWVudC4gIEF0DQo+ICAgICAgdGhlIEJHUCBub2RlIGFkdmVydGlzaW5nIGl0
LCBpdHMgc2VtYW50aWNzIGlzOg0KPiANCj4gICAgICAqICBTUiBoZWFkZXIgb3BlcmF0aW9uOiBO
RVhULg0KPiANCj4gICAgICAqICBOZXh0LUhvcDogdGhlIGNvbm5lY3RlZCBwZWVyaW5nIG5vZGUg
dG8gd2hpY2ggdGhlIHNlZ21lbnQgaXMNCj4gICAgICAgICByZWxhdGVkLg0KPiANCj4gICBvICBQ
ZWVyQWRqIFNJRDogQSBCR1AgUGVlckFkaiBzZWdtZW50L1NJRCBpcyBhIGxvY2FsIHNlZ21lbnQu
ICBBdCB0aGUNCj4gICAgICBCR1Agbm9kZSBhZHZlcnRpc2luZyBpdCwgaXRzIHNlbWFudGljcyBp
czoNCj4gDQo+ICAgICAgKiAgU1IgaGVhZGVyIG9wZXJhdGlvbjogTkVYVC4NCj4gDQo+ICAgICAg
KiAgTmV4dC1Ib3A6IHRoZSBwZWVyIGNvbm5lY3RlZCB0aHJvdWdoIHRoZSBpbnRlcmZhY2UgdG8g
d2hpY2ggdGhlDQo+ICAgICAgICAgc2VnbWVudCBpcyByZWxhdGVkLg0KPiANCj4gICBvICBQZWVy
U2V0IFNJRC4gIEEgQkdQIFBlZXJTZXQgc2VnbWVudC9TSUQgaXMgYSBsb2NhbCBzZWdtZW50LiAg
QXQNCj4gICAgICB0aGUgQkdQIG5vZGUgYWR2ZXJ0aXNpbmcgaXQsIGl0cyBzZW1hbnRpY3MgaXM6
DQo+IA0KPiAgICAgICogIFNSIGhlYWRlciBvcGVyYXRpb246IE5FWFQuDQo+IA0KPiANCj4gDQo+
IA0KPiBGaWxzZmlscywgZXQgYWwuICAgICAgICAgIEV4cGlyZXMgTWF5IDIzLCAyMDE3ICAgICAg
ICAgICAgICAgICBbUGFnZSAxOF0NCj4gDQo+IEludGVybmV0LURyYWZ0ICAgICAgICAgICAgICAg
U2VnbWVudCBSb3V0aW5nICAgICAgICAgICAgICAgTm92ZW1iZXIgMjAxNg0KPiANCj4gDQo+ICAg
ICAgKiAgTmV4dC1Ib3A6IGxvYWRiYWxhbmNlIGFjcm9zcyBhbnkgY29ubmVjdGVkIGludGVyZmFj
ZSB0byBhbnkNCj4gICAgICAgICBwZWVyIGluIHRoZSByZWxhdGVkIGdyb3VwLg0KPiANCj4gICAg
ICBBIHBlZXIgc2V0IGNvdWxkIGJlIGFsbCB0aGUgY29ubmVjdGVkIHBlZXJzIGZyb20gdGhlIHNh
bWUgQVMgb3IgYQ0KPiAgICAgIHN1YnNldCBvZiB0aGVzZS4gIEEgZ3JvdXAgY291bGQgYWxzbyBz
cGFuIGFjcm9zcyBBUy4gIFRoZSBncm91cA0KPiAgICAgIGRlZmluaXRpb24gaXMgYSBwb2xpY3kg
c2V0IGJ5IHRoZSBvcGVyYXRvci4NCj4gDQo+ICAgVGhlIEJHUCBleHRlbnNpb25zIG5lY2Vzc2Fy
eSBpbiBvcmRlciB0byBzaWduYWwgdGhlc2UgQkdQIHBlZXJpbmcNCj4gICBzZWdtZW50cyB3aWxs
IGJlIGRlZmluZWQgaW4gYSBzZXBhcmF0ZSBkb2N1bWVudC4NCj4gDQo+IDUuICBJR1AgTWlycm9y
aW5nIENvbnRleHQgU2VnbWVudA0KPiANCj4gICBJdCBpcyBiZW5lZmljaWFsIGZvciBhbiBJR1Ag
bm9kZSB0byBiZSBhYmxlIHRvIGFkdmVydGlzZSBpdHMgYWJpbGl0eQ0KPiAgIHRvIHByb2Nlc3Mg
dHJhZmZpYyBvcmlnaW5hbGx5IGRlc3RpbmVkIHRvIGFub3RoZXIgSUdQIG5vZGUsIGNhbGxlZA0K
PiAgIHRoZSBNaXJyb3JlZCBub2RlIGFuZCBpZGVudGlmaWVkIGJ5IGFuIElQIGFkZHJlc3Mgb3Ig
YSBOb2RlLVNJRCwNCj4gICBwcm92aWRlZCB0aGF0IGEgIk1pcnJvcmluZyBDb250ZXh0IiBzZWdt
ZW50IGJlIGluc2VydGVkIGluIHRoZQ0KPiAgIHNlZ21lbnQgbGlzdCBwcmlvciB0byBhbnkgc2Vy
dmljZSBzZWdtZW50IGxvY2FsIHRvIHRoZSBtaXJyb3JlZCBub2RlLg0KPiANCj4gICBXaGVuIGEg
Z2l2ZW4gbm9kZSBCIHdhbnRzIHRvIHByb3ZpZGUgZWdyZXNzIG5vZGUgQSBwcm90ZWN0aW9uLCBp
dA0KPiAgIGFkdmVydGlzZXMgYSBzZWdtZW50IGlkZW50aWZ5aW5nIG5vZGUncyBBIGNvbnRleHQu
ICBTdWNoIHNlZ21lbnQgaXMNCj4gICBjYWxsZWQgIk1pcnJvciBDb250ZXh0IFNlZ21lbnQiIGFu
ZCBpZGVudGlmaWVkIGJ5IHRoZSBNaXJyb3IgU0lELg0KPiANCj4gICBUaGUgTWlycm9yIFNJRCBp
cyBhZHZlcnRpc2VkIHVzaW5nIHRoZSBCaW5kaW5nIFNlZ21lbnQgZGVmaW5lZCBpbiBTUg0KPiAg
IElHUCBwcm90b2NvbCBleHRlbnNpb25zICggW0ktRC5pZXRmLWlzaXMtc2VnbWVudC1yb3V0aW5n
LWV4dGVuc2lvbnNdLA0KPiAgIFtJLUQuaWV0Zi1vc3BmLXNlZ21lbnQtcm91dGluZy1leHRlbnNp
b25zXSBhbmQNCj4gICBbSS1ELmlldGYtb3NwZi1vc3BmdjMtc2VnbWVudC1yb3V0aW5nLWV4dGVu
c2lvbnNdKS4NCj4gDQo+ICAgSW4gdGhlIGV2ZW50IG9mIGEgZmFpbHVyZSwgYSBwb2ludCBvZiBs
b2NhbCByZXBhaXIgKFBMUikgZGl2ZXJ0aW5nDQo+ICAgdHJhZmZpYyBmcm9tIEEgdG8gQiBkb2Vz
IGEgUFVTSCBvZiB0aGUgTWlycm9yIFNJRCBvbiB0aGUgcHJvdGVjdGVkDQo+ICAgdHJhZmZpYy4g
IEIsIHdoZW4gcmVjZWl2aW5nIHRoZSB0cmFmZmljIHdpdGggdGhlIE1pcnJvciBTSUQgYXMgdGhl
DQo+ICAgYWN0aXZlIHNlZ21lbnQsIHVzZXMgdGhhdCBzZWdtZW50IGFuZCBwcm9jZXNzIHVuZGVy
bHlpbmcgc2VnbWVudHMgaW4NCj4gICB0aGUgY29udGV4dCBvZiBBLg0KPiANCj4gNi4gIE11bHRp
Y2FzdA0KPiANCj4gICBTZWdtZW50IFJvdXRpbmcgaXMgZGVmaW5lZCBmb3IgdW5pY2FzdC4gIFRo
ZSBhcHBsaWNhdGlvbiBvZiB0aGUNCj4gICBzb3VyY2Utcm91dGUgY29uY2VwdCB0byBNdWx0aWNh
c3QgaXMgbm90IGluIHRoZSBzY29wZSBvZiB0aGlzDQo+ICAgZG9jdW1lbnQuDQo+IA0KPiBTQj4g
QSByZWZlcmVuY2UgdG8gQklFUiBtaWdodCBiZSBhcHJvcHJpYXRlIHNpbmNlIHRoYXQgaXMgdGhl
DQo+IFNCPiBjb25jZXB0dWFsbHkgc2ltaWxhci4NCj4gDQo+IDcuICBJQU5BIENvbnNpZGVyYXRp
b25zDQo+IA0KPiAgIFRoaXMgZG9jdW1lbnQgZG9lcyBub3QgcmVxdWlyZSBhbnkgYWN0aW9uIGZy
b20gSUFOQS4NCj4gDQo+IDguICBTZWN1cml0eSBDb25zaWRlcmF0aW9ucw0KPiANCj4gICBTZWdt
ZW50IFJvdXRpbmcgaXMgYXBwbGljYWJsZSB0byBib3RoIE1QTFMgYW5kIElQdjYgZGF0YSBwbGFu
ZXMuDQo+IA0KPiBTQj4gSXNuJ3QgaXQgYXBwbGljYWJsZSB0byBhbnkgZm9yd2FyZGluZyBwbGFu
ZSBpbiB3aGljaCBhbiBvcmRlcmVkDQo+IFNCPiBsaXN0IG9mIGluc3RydWN0aW9ucyBjYW4gYmUg
aW1wb3NlZCBvbiBhIHBhY2tldCwgYXQgbGVhc3QgZnJvbQ0KPiBTQj4gYW4gYXJjaGl0ZWN0dXJh
bCBwZXJzcGVjdGl2ZS4NCg0KDQpzbyBmYXIsIHdlIGZvY3VzZWQgb24gbXBscyBhbmQgdjYgYnV0
IHByb2JhYmx5IGFwcGxpY2FibGUgdG8gb3RoZXJzLg0KDQoNCj4gDQo+IEZpbHNmaWxzLCBldCBh
bC4gICAgICAgICAgRXhwaXJlcyBNYXkgMjMsIDIwMTcgICAgICAgICAgICAgICAgIFtQYWdlIDE5
XQ0KPiANCj4gSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgICBTZWdtZW50IFJvdXRpbmcgICAg
ICAgICAgICAgICBOb3ZlbWJlciAyMDE2DQo+IA0KPiANCj4gICBTZWdtZW50IFJvdXRpbmcgYWRk
cyBzb21lIG1ldGEtZGF0YSBvbiB0aGUgcGFja2V0LCB3aXRoIHRoZSBsaXN0IG9mDQo+ICAgZm9y
d2FyZGluZyBwYXRoIGVsZW1lbnRzIChlLmcuOiBub2RlcywgbGlua3MsIHNlcnZpY2VzLCBldGMu
KSB0aGF0DQo+ICAgdGhlIHBhY2tldCBtdXN0IHRyYXZlcnNlLg0KPiANCj4gU0I+IEVhcmxpZXIg
dGhleSB3ZXJlIGluc3RydWN0aW9ucywgb3Igc2VnbWVudHMsIGFuZCBpdCB3YXMgYW4gb3JkZXJl
ZCBsaXN0Lg0KDQoNCml0IGlzIHRoZSBjYXNlIGFuZCByZWZlcnJlZCBoZXJlIGFzIG1ldGFkYXRh
LiBCdXQgcHJvYmFibHkgdGhpcyB0ZXJtIG1heSBiZSBtaXN1bmRlcnN0b29kLg0KDQoNCj4gU0I+
IEkgYW0gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgeW91IHRyYXZlcnNlIGEgc2VydmljZS4gRWl0
aGVyIHdheQ0KPiBTQj4gSSBhbSBzdHJ1Y2sgYnkgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUg
ZGVzY3JpcHRpb24gaGVyZSBhbmQgYXQNCj4gU0I+IHRoZSBmcm9udCBvZiB0aGUgZG9jdW1lbnQu
DQo+IA0KPiANCj4gICBJdCBoYXMgdG8gYmUgbm90ZWQgdGhhdCB0aGUgY29tcGxldGUNCj4gICBz
b3VyY2Ugcm91dGVkIHBhdGggbWF5IGJlIHJlcHJlc2VudGVkIGJ5IGEgc2luZ2xlIHNlZ21lbnQu
ICBUaGlzIGlzDQo+ICAgdGhlIGNhc2Ugb2YgdGhlIEJpbmRpbmcgU0lELg0KPiANCj4gU0I+IEkg
YW0gbm90IHN1cmUgd2hhdCB0aGF0IGFkZHMuIFRoZSBpbXBvcnRhbnQgcG9pbnQgaXMgdG8gY29u
c2lkZXIgdGhlDQo+IFNCPiB2dWxuZXJhYmlsaXRpZXMgYW5kIGl0IGlzIG5vdCBjbGVhciB3aGV0
aGVyIEJTIGlzIGFuIGluY3JlYXNlZCB2dWxuZXJhYmlsaXR5DQo+IFNCPiBpZiBub3QgaXQgaXMg
dW5jbGVhciB3aGF0IGl0IGFkZHMgdG8gdGhlIGFuYWx5c2lzLg0KPiANCj4gOC4xLiAgTVBMUyBE
YXRhIFBsYW5lDQo+IA0KPiAgIFdoZW4gYXBwbGllZCB0byB0aGUgTVBMUyBkYXRhIHBsYW5lLCBT
ZWdtZW50IFJvdXRpbmcgZG9lcyBub3QNCj4gICBpbnRyb2R1Y2UgYW55IG5ldyBiZWhhdmlvciBv
ciBhbnkgY2hhbmdlIGluIHRoZSB3YXkgTVBMUyBkYXRhIHBsYW5lDQo+ICAgd29ya3MuICBUaGVy
ZWZvcmUsIGZyb20gYSBzZWN1cml0eSBzdGFuZHBvaW50LCB0aGlzIGRvY3VtZW50IGRvZXMgbm90
DQo+ICAgZGVmaW5lIGFueSBhZGRpdGlvbmFsIG1lY2hhbmlzbSBpbiB0aGUgTVBMUyBkYXRhIHBs
YW5lLg0KPiANCj4gU0I+IFdlbGwgbm90IHF1aXRlLiBPbmUgY2hhcmFjdGVyaXN0aWMgb2YgTVBM
UyB3YXMgdGhhdCB0aGUgYmVoYXZpb3VyDQo+IFNCPiBvZiBhIGxhYmVsIHdhcyBvbmx5IGtub3du
IHRvIGl0cyBwZWVycy4gSWYgYSBwYWNrZXQgbWlzbGFuZGVkIGF0DQo+IFNCPiBhIG5vZGUgdGhl
IGJlaGF2aW91ciB3YXMgdGh1cyBjb21wbGV0ZWx5IHVucHJlZGljdGFibGUgYW5kIHRodXMNCj4g
U0I+IGhhZCB0byBleHBsb2l0LiBNUExTLVNSIHJlZHVjZXMgdGhhdCB1bnByZWRpY3RhYmlsaXR5
IGFuZCB0aHVzDQo+IFNCPiBhZGQgcG90ZW50aWFsIGV4cGxvaXRzIHRoYXQgZG8gbm90IGV4aXN0
IGluIHRoZSBvcmlnaW5hbCBNUExTIGRlc2lnbi4NCg0KDQppbmRlZWQgYnV0IHRoaXMgaXMgYSBj
b25jZXJuIG9mIHRoZSBvdmVyYWxsIG5ldHdvcmsgb3BlcmF0aW9ucyBzZWN1cml0eSAoYXQgdGhl
IGVkZ2VzKS4gTm90IGluIHRoZSBkYXRhcGxhbmUgaXRzZWxmLg0KDQoNCj4gICBTUiBhbGxvd3Mg
dGhlIGV4cHJlc3Npb24gb2YgYSBzb3VyY2Ugcm91dGVkIHBhdGggdXNpbmcgYSBzaW5nbGUNCj4g
ICBzZWdtZW50ICh0aGUgQmluZGluZyBTSUQpLiAgQ29tcGFyZWQgdG8gUlNWUC1URSB3aGljaCBh
bHNvIHByb3ZpZGVzDQo+ICAgZXhwbGljaXQgcm91dGluZyBjYXBhYmlsaXR5LCB0aGVyZSBhcmUg
bm8gZnVuZGFtZW50YWwgZGlmZmVyZW5jZXMgaW4NCj4gICB0ZXJtIG9mIGluZm9ybWF0aW9uIHBy
b3ZpZGVkLiAgQm90aCBSU1ZQLVRFIGFuZCBTZWdtZW50IFJvdXRpbmcgbWF5DQo+ICAgZXhwcmVz
cyBhIHNvdXJjZSByb3V0ZWQgcGF0aCB1c2luZyBhIHNpbmdsZSBzZWdtZW50Lg0KPiANCj4gICBX
aGVuIGEgcGF0aCBpcyBleHByZXNzZWQgdXNpbmcgYSBzaW5nbGUgbGFiZWwsIHRoZSBzeW50YXgg
b2YgdGhlDQo+ICAgbWV0YS1kYXRhIGlzIGVxdWl2YWxlbnQgYmV0d2VlbiBSU1ZQLVRFIGFuZCBT
Ui4NCj4gDQo+IFNCPiBPbmUgb2YgdGhlIGRpZmZlcmVuY2VzIGlzIHRoYXQgUlNWUCBhY3RpdmVs
eSBtYWludGFpbnMgdGhlIHBhdGguDQo+IFNCPiBJcyB0aGVyZSBhIGRhbmdlciBvZiBzdGFsZSBw
YXRocyBiZWluZyBsZWZ0IGluIGFuIFNSIG5ldHdvcmsNCj4gU0I+IGFuZCBzdWJzZXF1ZW50bHkg
ZXhwbG9pdGVkPw0KDQoNClNSIHBhdGhzIHN0YXRlIGlzIG9ubHkgYXQgaW5ncmVzcyAoc2ltaWxh
ciB0byBhbnkgVEUgY2xhc3NpZmljYXRpb24gbWVjaGFuaXNtKS4NCg0KU1IgcGF0aHMgaW4gdGhl
IGNvcmUgZG9lcyBub3QgZXhpc3QgYXMgaXQgaXMgc2ltcGx5IGlncC9iZ3Agc3RhdGUuDQoNCg0K
PiAgIFdoZW4gYSBzb3VyY2Ugcm91dGVkIHBhdGggaXMgZXhwcmVzc2VkIHdpdGggYSBsaXN0IG9m
IHNlZ21lbnRzDQo+ICAgYWRkaXRpb25hbCBtZXRhLWRhdGEgaXMgYWRkZWQgdG8gdGhlIHBhY2tl
dCBjb25zaXN0aW5nIG9mIHRoZSBzb3VyY2UNCj4gICByb3V0ZWQgcGF0aCB0aGUgcGFja2V0IG11
c3QgZm9sbG93IGV4cHJlc3NlZCBhcyBhIHNlZ21lbnQgbGlzdC4NCj4gDQo+ICAgV2hlbiBhIHBh
dGggaXMgZXhwcmVzc2VkIHVzaW5nIGEgbGFiZWwgc3RhY2ssIGlmIG9uZSBoYXMgYWNjZXNzIHRv
DQo+ICAgdGhlIG1lYW5pbmcgKGkuZS46IHRoZSBGb3J3YXJkaW5nIEVxdWl2YWxlbmNlIENsYXNz
KSBvZiB0aGUgbGFiZWxzLA0KPiAgIG9uZSBoYXMgdGhlIGtub3dsZWRnZSBvZiB0aGUgZXhwbGlj
aXQgcGF0aC4gIEZvciB0aGUgTVBMUyBkYXRhIHBsYW5lLA0KPiAgIGFzIG5vIGRhdGEgcGxhbmUg
bW9kaWZpY2F0aW9uIGlzIHJlcXVpcmVkLCB0aGVyZSBpcyBubyBmdW5kYW1lbnRhbA0KPiAgIGNo
YW5nZSBvZiBjYXBhYmlsaXR5LiAgWWV0LCB0aGUgb2NjdXJyZW5jZSBvZiBsYWJlbCBzdGFja2lu
ZyB3aWxsDQo+ICAgaW5jcmVhc2UuDQo+IA0KPiBTQj4gVGhlIGRpZmZlcmVuY2UgaXMgdGhhdCBh
biBhY3RvciBjb3VsZCBjb25zdHJ1Y3QgYW4gZXhwbGljaXQgcGF0aA0KPiBTQj4gaW4gYSB3YXkg
dGhhdCB3YXMgbm90IHBvc3NpYmxlIGluIHJlZ3VsYXIgTVBMUy4gSW4gYm90aCBjYXNlcw0KPiBT
Qj4gdGhleSBuZWVkIHRvIGdldCB0aGUgcGFja2V0IGluc2lkZSB0aGUgbmV0d29yaywgYnV0IG9u
Y2UgaW5zaWRlIHRoZQ0KPiBTQj4gbmV0d29yayB0aGV5IGNvdWxkIGNvbnN0cnVjdCB2YXJpb3Vz
IHR5cGVzIG9mIGFtcGxpZmljYXRpb24gYXR0YWNrDQo+IFNCPiB0aGF0IGFyZSBub3QgcG9zc2li
bGUgaW4gY2xhc3NpYyBNUExTDQoNCg0KSSB0aGluayBldmVyeXRoaW5nIGlzIHBvc3NpYmxlIGtu
b3dpbmcgaG93IGltcGxlbWVudGF0aW9ucyBhbGxvY2F0ZSBsYWJlbHMuDQoNCg0KPiAgIEZyb20g
YSBuZXR3b3JrIHByb3RlY3Rpb24gc3RhbmRwb2ludCwgdGhlcmUgaXMgYW4gYXNzdW1lZCB0cnVz
dCBtb2RlbA0KPiAgIHN1Y2ggdGhhdCBhbnkgbm9kZSBpbXBvc2luZyBhIGxhYmVsIHN0YWNrIG9u
IGEgcGFja2V0IGlzIGFzc3VtZWQgdG8NCj4gICBiZSBhbGxvd2VkIHRvIGRvIHNvLiAgVGhpcyBp
cyBhIHNpZ25pZmljYW50IGNoYW5nZSBjb21wYXJlZCB0byBwbGFpbg0KPiAgIElQIG9mZmVyaW5n
IHNob3J0ZXN0IHBhdGggcm91dGluZyBidXQgbm90IGZ1bmRhbWVudGFsbHkgZGlmZmVyZW50DQo+
ICAgY29tcGFyZWQgdG8gZXhpc3RpbmcgdGVjaG5pcXVlcyBwcm92aWRpbmcgZXhwbGljaXQgcm91
dGluZyBjYXBhYmlsaXR5DQo+ICAgc3VjaCBhcyBSU1ZQLVRFLiAgQnkgZGVmYXVsdCwgdGhlIGV4
cGxpY2l0IHJvdXRpbmcgaW5mb3JtYXRpb24gTVVTVA0KPiAgIE5PVCBiZSBsZWFrZWQgdGhyb3Vn
aCB0aGUgYm91bmRhcmllcyBvZiB0aGUgYWRtaW5pc3RlcmVkIGRvbWFpbi4NCj4gICBTZWdtZW50
IFJvdXRpbmcgZXh0ZW5zaW9ucyB0aGF0IGhhdmUgYmVlbiBkZWZpbmVkIGluIHZhcmlvdXMNCj4g
ICBwcm90b2NvbHMsIGxldmVyYWdlIHRoZSBzZWN1cml0eSBtZWNoYW5pc21zIG9mIHRoZXNlIHBy
b3RvY29scyBzdWNoDQo+ICAgYXMgZW5jcnlwdGlvbiwgYXV0aGVudGljYXRpb24sIGZpbHRlcmlu
ZywgZXRjLg0KPiANCj4gICBJbiB0aGUgZ2VuZXJhbCBjYXNlLCBhIHNlZ21lbnQgcm91dGluZyBj
YXBhYmxlIHJvdXRlciBhY2NlcHRzIGFuZA0KPiAgIGluc3RhbGwgbGFiZWxzLCBvbmx5IGlmIHRo
ZXNlIGxhYmVscyBoYXZlIGJlZW4gcHJldmlvdXNseSBhZHZlcnRpc2VkDQo+ICAgYnkgYSB0cnVz
dGVkIHNvdXJjZS4gIFRoZSByZWNlaXZlZCBpbmZvcm1hdGlvbiBpcyB2YWxpZGF0ZWQgdXNpbmcN
Cj4gICBleGlzdGluZyBjb250cm9sIHBsYW5lIHByb3RvY29scyBwcm92aWRpbmcgYXV0aGVudGlj
YXRpb24gYW5kDQo+IA0KPiANCj4gDQo+IEZpbHNmaWxzLCBldCBhbC4gICAgICAgICAgRXhwaXJl
cyBNYXkgMjMsIDIwMTcgICAgICAgICAgICAgICAgIFtQYWdlIDIwXQ0KPiANCj4gSW50ZXJuZXQt
RHJhZnQgICAgICAgICAgICAgICBTZWdtZW50IFJvdXRpbmcgICAgICAgICAgICAgICBOb3ZlbWJl
ciAyMDE2DQo+IA0KPiANCj4gICBzZWN1cml0eSBtZWNoYW5pc21zLiAgU2VnbWVudCByb3V0aW5n
IGRvZXMgbm90IGRlZmluZSBhbnkgYWRkaXRpb25hbA0KPiAgIHNlY3VyaXR5IG1lY2hhbmlzbSBp
biBleGlzdGluZyBjb250cm9sIHBsYW5lIHByb3RvY29scy4NCj4gDQo+ICAgU2VnbWVudCBSb3V0
aW5nIGRvZXMgbm90IGludHJvZHVjZSBzaWduYWxpbmcgYmV0d2VlbiB0aGUgc291cmNlIGFuZA0K
PiAgIHRoZSBtaWQgcG9pbnRzIG9mIGEgc291cmNlIHJvdXRlZCBwYXRoLiAgV2l0aCBTUiwgdGhl
IHNvdXJjZSByb3V0ZWQNCj4gICBwYXRoIGlzIGNvbXB1dGVkIHVzaW5nIFNJRHMgcHJldmlvdXNs
eSBhZHZlcnRpc2VkIGluIHRoZSBJUCBjb250cm9sDQo+ICAgcGxhbmUuICBUaGVyZWZvcmUsIGlu
IGFkZGl0aW9uIHRvIGZpbHRlcmluZyBhbmQgY29udHJvbGxlZA0KPiAgIGFkdmVydGlzZW1lbnQg
b2YgU0lEcyBhdCB0aGUgYm91bmRhcmllcyBvZiB0aGUgU1IgZG9tYWluLCBmaWx0ZXJpbmcNCj4g
ICBpbiB0aGUgZGF0YSBwbGFuZSBpcyBhbHNvIHJlcXVpcmVkLiAgRmlsdGVyaW5nIE1VU1QgYmUg
cGVyZm9ybWVkIG9uDQo+ICAgdGhlIGZvcndhcmRpbmcgcGxhbmUgYXQgdGhlIGJvdW5kYXJpZXMg
b2YgdGhlIFNSIGRvbWFpbiBhbmQgbWF5DQo+ICAgcmVxdWlyZSBsb29raW5nIGF0IG11bHRpcGxl
IGxhYmVscy9pbnN0cnVjdGlvbi4NCj4gDQo+ICAgRm9yIHRoZSBNUExTIGRhdGEgcGxhbmUsIHRo
ZXJlIGFyZSBubyBuZXcgcmVxdWlyZW1lbnQgYXMgdGhlIGV4aXN0aW5nDQo+ICAgTVBMUyBhcmNo
aXRlY3R1cmUgYWxyZWFkeSBhbGxvdyBzdWNoIHNvdXJjZSByb3V0aW5nIGJ5IHN0YWNraW5nDQo+
ICAgbXVsdGlwbGUgbGFiZWxzLg0KPiANCj4gU0I+IEkgdGhpbmsgdGhlIGNvbmNlcm4gaXMgd2hl
dGhlciBTUiBtYWtlIGl0IGVhc2llciB0byBjb25zdHJ1Y3QgYW4gYXR0YWNrDQo+IFNCPiBnaXZl
biBob3cgd2lkZWx5IGtub3cgdGhlIGxhYmVscyBhcmUgaW4gdGhlIG5ldHdvcmsgY29tcGFyZWQg
dG8NCj4gU0I+IGNsYXNzaWMgTVBMUz8NCj4gDQo+ICAgQW5kIGZvciBzZWN1cml0eSBwcm90ZWN0
aW9uLCBbUkZDNDM4MV0gc2VjdGlvbiAyLjQNCj4gICBhbmQgW1JGQzU5MjBdIHNlY3Rpb24gOC4y
IGFscmVhZHkgY2FsbHMgZm9yIHRoZSBmaWx0ZXJpbmcgb2YgTVBMUw0KPiAgIHBhY2tldHMgb24g
dHJ1c3QgYm91bmRhcmllcy4NCj4gDQo+IDguMi4gIElQdjYgRGF0YSBQbGFuZQ0KPiANCj4gICBX
aGVuIGFwcGxpZWQgdG8gdGhlIElQdjYgZGF0YSBwbGFuZSwgU2VnbWVudCBSb3V0aW5nIGRvZXMg
aW50cm9kdWNlDQo+ICAgdGhlIFNlZ21lbnQgUm91dGluZyBIZWFkZXIgKFNSSCwNCj4gICBbSS1E
LmlldGYtNm1hbi1zZWdtZW50LXJvdXRpbmctaGVhZGVyXSkgd2hpY2ggaXMgYSB0eXBlIG9mIFJv
dXRpbmcNCj4gICBFeHRlbnNpb24gaGVhZGVyIGFzIGRlZmluZWQgaW4gW1JGQzI0NjBdLg0KPiAN
Cj4gICBUaGUgU1JIIGFkZHMgc29tZSBtZXRhLWRhdGEgb24gdGhlIElQdjYgcGFja2V0LCB3aXRo
IHRoZSBsaXN0IG9mDQo+ICAgZm9yd2FyZGluZyBwYXRoIGVsZW1lbnRzIChlLmcuOiBub2Rlcywg
bGlua3MsIHNlcnZpY2VzLCBldGMuKSB0aGF0DQo+ICAgdGhlIHBhY2tldCBtdXN0IHRyYXZlcnNl
IGFuZCB0aGF0IGFyZSByZXByZXNlbnRlZCBieSBJUHY2IGFkZHJlc3Nlcy4NCj4gICBBIGNvbXBs
ZXRlIHNvdXJjZSByb3V0ZWQgcGF0aCBtYXkgYmUgZW5jb2RlZCBpbiB0aGUgcGFja2V0IHVzaW5n
IGENCj4gICBzaW5nbGUgc2VnbWVudCAoc2luZ2xlIElQdjYgYWRkcmVzcykuDQo+IA0KPiAgIEZy
b20gYSBuZXR3b3JrIHByb3RlY3Rpb24gc3RhbmRwb2ludCwgdGhlcmUgaXMgYW4gYXNzdW1lZCB0
cnVzdCBtb2RlbA0KPiAgIHN1Y2ggdGhhdCBhbnkgbm9kZSBhZGRpbmcgYW4gU1JIIHRvIHRoZSBw
YWNrZXQgaXMgYXNzdW1lZCB0byBiZQ0KPiAgIGFsbG93ZWQgdG8gZG8gc28uDQo+IA0KPiBTQj4g
QXMgSSB1bmRlcnN0YW5kIGl0IHRoZXJlIGlzIGN1cnJlbnQgZGViYXRlIGFzIHRvIHdoZXRoZXIg
YWRkaW5nDQo+IFNCPiBhIGhlYWRlciB0byBhIHBhY2tldCBpcyBhbGxvd2VkIGluIHRoZSBJUHY2
IGFyY2hpdGVjdHVyZS4NCg0KDQp5ZXMsIHdlIHJlYWNoZWQgYW4gYWdyZWVtZW50IGluIDZtYW4g
YW5kIHJmYzI0NjBiaXMgd2lsbCBiZSBob3BlZnVsbHkgcHVibGlzaGVkIHNvb24uDQoNCg0KPiAg
IFRoZXJlZm9yZSwgYnkgZGVmYXVsdCwgdGhlIGV4cGxpY2l0IHJvdXRpbmcNCj4gICBpbmZvcm1h
dGlvbiBNVVNUIE5PVCBiZSBsZWFrZWQgdGhyb3VnaCB0aGUgYm91bmRhcmllcyBvZiB0aGUNCj4g
ICBhZG1pbmlzdGVyZWQgZG9tYWluLiAgU2VnbWVudCBSb3V0aW5nIGV4dGVuc2lvbnMgdGhhdCBo
YXZlIGJlZW4NCj4gICBkZWZpbmVkIGluIHZhcmlvdXMgcHJvdG9jb2xzLCBsZXZlcmFnZSB0aGUg
c2VjdXJpdHkgbWVjaGFuaXNtcyBvZg0KPiAgIHRoZXNlIHByb3RvY29scyBzdWNoIGFzIGVuY3J5
cHRpb24sIGF1dGhlbnRpY2F0aW9uLCBmaWx0ZXJpbmcsIGV0Yy4NCj4gDQo+IFNCPiBUaGUgd29y
cnkgb2YgY291cnNlIGlzIHRoYXQgdGhlIGluZm9ybWF0aW9uIGlzIHNvIHdpZGVseSBrbm93bg0K
PiBTQj4gaW4gdGhlIG5ldHdvcmsgdGhhdCBhbnkgcm9ndWUgbm9kZSBjYW4gbGVhayB0aGlzLg0K
DQoNCm5vdCBuZXcgYW5kIG5vdCBkaWZmZXJlbnQgZnJvbSBpZ3AgbGVha2luZy4NCg0KDQo+ICAg
SW4gdGhlIGdlbmVyYWwgY2FzZSwgYW4gU1IgSVB2NiByb3V0ZXIgYWNjZXB0cyBhbmQgaW5zdGFs
bCBzZWdtZW50cw0KPiAgIGlkZW50aWZpZXJzIChpbiB0aGUgZm9ybSBvZiBJUHY2IGFkZHJlc3Nl
cyksIG9ubHkgaWYgdGhlc2UgU0lEcyBhcmUNCj4gICBhZHZlcnRpc2VkIGJ5IGEgdHJ1c3RlZCBz
b3VyY2UuICBUaGUgcmVjZWl2ZWQgaW5mb3JtYXRpb24gaXMNCj4gICB2YWxpZGF0ZWQgdXNpbmcg
ZXhpc3RpbmcgY29udHJvbCBwbGFuZSBwcm90b2NvbHMgcHJvdmlkaW5nDQo+ICAgYXV0aGVudGlj
YXRpb24gYW5kIHNlY3VyaXR5IG1lY2hhbmlzbXMuICBTZWdtZW50IHJvdXRpbmcgZG9lcyBub3QN
Cj4gICBkZWZpbmUgYW55IGFkZGl0aW9uYWwgc2VjdXJpdHkgbWVjaGFuaXNtIGluIGV4aXN0aW5n
IGNvbnRyb2wgcGxhbmUNCj4gICBwcm90b2NvbHMuDQo+IA0KPiANCj4gDQo+IA0KPiANCj4gRmls
c2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBpcmVzIE1heSAyMywgMjAxNyAgICAgICAgICAgICAg
ICAgW1BhZ2UgMjFdDQo+IA0KPiBJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICAgIFNlZ21lbnQg
Um91dGluZyAgICAgICAgICAgICAgIE5vdmVtYmVyIDIwMTYNCj4gDQo+IA0KPiAgIEluIGFkZGl0
aW9uLCBTUiBkb21haW4gYm91bmRhcnkgcm91dGVycywgYnkgZGVmYXVsdCwgTVVTVCBhcHBseSBk
YXRhDQo+ICAgcGxhbmUgZmlsdGVycyBzbyB0byBvbmx5IGFjY2VwdCBwYWNrZXRzIHdob3NlIERB
IGFuZCBTUkggKGlmIGFueSkNCj4gICBjb250YWluIGFkZHJlc3NlcyBwcmV2aW91c2x5IGFkdmVy
dGlzZWQgYXMgU0lEcy4NCj4gDQo+IFNCPiBJIGFtIHdvbmRlcmluZyBob3cgZGVlcCB0aGUgZHBp
IG5lZWRzIHRvIGJlIGhlcmU/IEFsc28gZG9uJ3QgeW91IG5lZWQNCj4gU0I+IHRvIGZvcmJpZCBh
bnkgcGFja2V0IHdpdGggYW4gU1JIIGZyb20gZW50ZXJpbmcgdGhlIG5ldHdvcms/DQoNCg0Kbm90
IGJ5IGRlZmluaXRpb24uDQoNCkluIHNvbWUgY2FzZXMgeW91IG1heSB3YW50IHRvIGFsbG93IHNy
aCBwYWNrZXRzIGFzIGxvbmcgYXMgdGhleSBhcmUgYWxsb3dlZCB0byBkbyBzbyBhbmQgdG8gaGF2
ZSBhIGdpdmVuIHNyaCB2YWx1ZS4gYXV0aGVudGljYXRpb24gaXMga2V5IGhlcmUuDQoNCg0KPiAg
IFRoZXJlIGFyZSBhIG51bWJlciBvZiBzZWN1cml0eSBjb25jZXJucyB3aXRoIHNvdXJjZSByb3V0
aW5nIGF0IHRoZQ0KPiAgIElQdjYgZGF0YSBwbGFuZSBbUkZDNTA5NV0uICBUaGUgbmV3IElQdjYt
YmFzZWQgc2VnbWVudCByb3V0aW5nIGhlYWRlcg0KPiAgIGRlZmluZWQgaW4gW0ktRC5pZXRmLTZt
YW4tc2VnbWVudC1yb3V0aW5nLWhlYWRlcl0gYW5kIGl0cyBhc3NvY2lhdGVkDQo+ICAgc2VjdXJp
dHkgbWVhc3VyZXMgYWRkcmVzcyB0aGVzZSBjb25jZXJucy4NCj4gDQo+IFNCPiBZb3UgY2FuIG9u
bHkgcmVhbGx5IHNheSB0aGF0IHdoZW4gdGhhdCBkcmFmdCBpcyBhbiBSRkMuDQo+IA0KPiAgIFRo
ZSBJUHY2IFNlZ21lbnQgUm91dGluZw0KPiAgIEhlYWRlciBpcyBkZWZpbmVkIGluIGEgd2F5IHRo
YXQgYmxpbmQgYXR0YWNrcyBhcmUgbmV2ZXIgcG9zc2libGUsDQo+ICAgaS5lLiwgYXR0YWNrZXJz
IHdpbGwgYmUgdW5hYmxlIHRvIHNlbmQgc291cmNlIHJvdXRlZCBwYWNrZXRzIHRoYXQgZ2V0DQo+
ICAgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCwgd2l0aG91dCBiZWluZyBwYXJ0IG9mIHRoZSBuZWdh
dGlvbnMgZm9yDQo+ICAgc2V0dGluZyB1cCB0aGUgc291cmNlIHJvdXRlcyBvciBiZWluZyBhYmxl
IHRvIGVhdmVzZHJvcCBsZWdpdGltYXRlDQo+ICAgc291cmNlIHJvdXRlZCBwYWNrZXRzLiAgSW4g
c29tZSBuZXR3b3JrcyB0aGlzIGJhc2UgbGV2ZWwgc2VjdXJpdHkgbWF5DQo+ICAgYmUgY29tcGxl
bWVudGVkIHdpdGggb3RoZXIgbWVjaGFuaXNtcywgc3VjaCBhcyBwYWNrZXQgZmlsdGVyaW5nLA0K
PiAgIGNyeXB0b2dyYXBoaWMgc2VjdXJpdHksIGV0Yy4NCj4gDQo+IFNCPiBJIGFtIHN1cnByaXNl
ZCB0aGF0IHRoZXJlIGFyZSBubyBkYXRhcGxhbmUgaW52YXJpYW50IGFzcGVjdHMgdG8NCj4gU0I+
IHRoZSBzZWN1cml0eSwgYW5kIHRoYXQgdGhlcmUgYXJlIG5vIHNlcGFyYXRlIGNvbnRyb2wgcGxh
bmUgZGlzY3Vzc2lvbiwNCj4gU0I+IHBhcnRpY3VsYXJseSBhcyB5b3UgYXJlIGludHJvZHVjaW5n
IGEgbmV3IGNvbnRyb2wgcGxhbmUgdG8gTVBMUy4NCj4gDQo+IDkuICBNYW5hZ2VhYmlsaXR5IENv
bnNpZGVyYXRpb25zDQo+IA0KPiAgIEluIFNSIGVuYWJsZWQgbmV0d29ya3MsIHRoZSBwYXRoIHRo
ZSBwYWNrZXQgdGFrZXMgaXMgZW5jb2RlZCBpbiB0aGUNCj4gICBoZWFkZXIuICBBcyB0aGUgcGF0
aCBpcyBub3Qgc2lnbmFsZWQgdGhyb3VnaCBhIHByb3RvY29sLA0KPiANCj4gU0I+IElzIHRoaXMg
dHJ1ZSBmb3IgQmluZGluZyBTSUQ/DQoNCg0KeWVzLCB0aGUgYmluZGluZyBzaWQgaXMgYSBzZWdt
ZW50IGJyaW5naW5nIHRoZSBwYWNrZXQgaW50byB0aGUgbm9kZSB0aGF0IHdpbGwgdGhlbiBleHBh
bmQgdGhlIHBhdGguDQoNCg0KPiANCj4gICBPQU0NCj4gICBtZWNoYW5pc21zIGFyZSBuZWNlc3Nh
cnkgaW4gb3JkZXIgZm9yIHRoZSBuZXR3b3JrIG9wZXJhdG9yIHRvDQo+ICAgdmFsaWRhdGUgdGhl
IGVmZmVjdGl2ZW5lc3Mgb2YgYSBwYXRoIGFzIHdlbGwgYXMgdG8gY2hlY2sgYW5kIG1vbml0b3IN
Cj4gICBpdHMgbGl2ZW5lc3MgYW5kIHBlcmZvcm1hbmNlLg0KPiANCj4gICBIb3dldmVyLCBpdCBo
YXMgdG8gYmUgbm90ZWQgdGhhdCBTUg0KPiAgIGFsbG93cyB0byByZWR1Y2Ugc3Vic3RhbnRpYWxs
eSB0aGUgbnVtYmVyIG9mIHN0YXRlcyBpbiB0cmFuc2l0IG5vZGVzDQo+ICAgYW5kIGhlbmNlIHRo
ZSBudW1iZXIgb2YgZWxlbWVudHMgdGhhdCBhIHRyYW5zaXQgbm9kZSBoYXMgdG8gbWFuYWdlIGlz
DQo+ICAgc21hbGxlci4NCj4gDQo+ICAgU1IgT0FNIHVzZSBjYXNlcyBhbmQgcmVxdWlyZW1lbnRz
IGZvciB0aGUgTVBMUyBkYXRhIHBsYW5lIGFyZSBkZWZpbmVkDQo+ICAgaW4gW0ktRC5pZXRmLXNw
cmluZy1vYW0tdXNlY2FzZV0gYW5kDQo+ICAgW0ktRC5pZXRmLXNwcmluZy1zci1vYW0tcmVxdWly
ZW1lbnRdLiAgT0FNIHByb2NlZHVyZXMgZm9yIHRoZSBNUExTDQo+ICAgZGF0YSBwbGFuZSBhcmUg
ZGVmaW5lZCBpbiBbSS1ELmlldGYtbXBscy1zcHJpbmctbHNwLXBpbmddLg0KPiANCj4gICBTUiBy
b3V0ZXJzIHJlY2VpdmUgYWR2ZXJ0aXNlbWVudCBvZiBTSURzIChpbmRleCwgbGFiZWwgb3IgSVB2
Ng0KPiAgIGFkZHJlc3MpIGZyb20gdGhlIGRpZmZlcmVudCByb3V0aW5nIHByb3RvY29scyBiZWlu
ZyBleHRlbmRlZCBmb3IgU1IuDQo+ICAgRWFjaCBvZiB0aGVzZSBwcm90b2NvbHMgaGF2ZSBtb25p
dG9yaW5nIGFuZCB0cm91Ymxlc2hvb3RpbmcNCj4gICBtZWNoYW5pc21zIHNvIHRvIHByb3ZpZGUg
b3BlcmF0aW9uIGFuZCBtYW5hZ2VtZW50IGZ1bmN0aW9ucyBmb3IgSVANCj4gICBhZGRyZXNzZXMg
dGhhdCBNVVNUIGJlIGV4dGVuZGVkIGluIG9yZGVyIHRvIGluY2x1ZGUgdHJvdWJsZXNob290aW5n
DQo+ICAgYW5kIG1vbml0b3JpbmcgZnVuY3Rpb25zIG9mIHRoZSBTSUQuDQo+IA0KPiAgIFNSIGFy
Y2hpdGVjdHVyZSBpbnRyb2R1Y2VzIHRoZSB1c2FnZSBvZiBnbG9iYWwgc2VnbWVudHMuICBFYWNo
IGdsb2JhbA0KPiAgIHNlZ21lbnQgbXVzdCBiZSBib3VuZCB0byBhIGdsb2JhbGx5LXVuaXF1ZSBp
bmRleCBvciBhZGRyZXNzLiAgVGhlDQo+ICAgbWFuYWdlbWVudCBvZiB0aGUgYWxsb2NhdGlvbiBv
ZiBzdWNoIGluZGV4IG9yIGFkZHJlc3MgYnkgdGhlIG9wZXJhdG9yDQo+ICAgaXMgY3JpdGljYWwg
Zm9yIHRoZSBuZXR3b3JrIGJlaGF2aW9yIHRvIGF2b2lkIHNpdHVhdGlvbnMgbGlrZSBtaXMtDQo+
ICAgcm91dGluZy4gIEluIGFkZGl0aW9uIHRvIHRoZSBhbGxvY2F0aW9uIHBvbGljeS90b29saW5n
IHRoYXQgdGhlDQo+ICAgb3BlcmF0b3Igd2lsbCBoYXZlIGluIHBsYWNlLCBhbiBpbXBsZW1lbnRh
dGlvbiBTSE9VTEQgcHJvdGVjdCB0aGUNCj4gICBuZXR3b3JrIGluIGNhc2Ugb2YgY29uZmxpY3Qg
ZGV0ZWN0aW9uIGJ5IHByb3ZpZGluZyBhIGRldGVybWluaXN0aWMNCj4gICByZXNvbHV0aW9uIGFw
cHJvYWNoLg0KPiANCj4gDQo+IA0KPiANCj4gRmlsc2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBp
cmVzIE1heSAyMywgMjAxNyAgICAgICAgICAgICAgICAgW1BhZ2UgMjJdDQo+IA0KPiBJbnRlcm5l
dC1EcmFmdCAgICAgICAgICAgICAgIFNlZ21lbnQgUm91dGluZyAgICAgICAgICAgICAgIE5vdmVt
YmVyIDIwMTYNCj4gDQo+IA0KPiAgIEFuIG9wZXJhdG9yIG1heSBpbXBsZW1lbnQgdG9vbHMgaW4g
b3JkZXIgdG8gYXVkaXQgdGhlIG5ldHdvcmsgYW5kDQo+ICAgZW5zdXJlIHRoZSBnb29kIGFsbG9j
YXRpb24gb2YgaW5kZXhlcywgU0lEcyBvciBJUCBhZGRyZXNzZXMuDQo+ICAgQ29uZmxpY3QgZGV0
ZWN0aW9uIGJldHdlZW4gU0lEcywgaW5jbHVkaW5nIE1hcHBpbmcgU2VydmVyIGJpbmRpbmcNCj4g
ICBTSURzLCBhbmQgdGhlaXIgcmVzb2x1dGlvbiBhcmUgYWRkcmVzc2VkIGluDQo+ICAgW0ktRC5p
ZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uXS4NCj4gDQo+ICAgU1Igd2l0aCB0aGUgTVBM
UyBkYXRhIHBsYW5lLCBjYW4gYmUgZ3JhY2VmdWxseSBpbnRyb2R1Y2VkIGluIGFuDQo+ICAgZXhp
c3RpbmcgTERQIFtSRkM1MDM2XSBuZXR3b3JrLiAgVGhpcyBpcyBkZXNjcmliZWQgaW4NCj4gICBb
SS1ELmlldGYtc3ByaW5nLXNlZ21lbnQtcm91dGluZy1sZHAtaW50ZXJvcF0uICBTUiBhbmQgTERQ
IG1heSBhbHNvDQo+ICAgaW50ZXItd29yay4gIEluIHRoaXMgY2FzZSwgdGhlIGludHJvZHVjdGlv
biBvZiBtYXBwaW5nLXNlcnZlciBtYXkNCj4gICBpbnRyb2R1Y2Ugc29tZSBhZGRpdGlvbmFsIG1h
bmFnZWFiaWxpdHkgY29uc2lkZXJhdGlvbnMgdGhhdCBhcmUNCj4gICBkaXNjdXNzZWQgaW4gW0kt
RC5pZXRmLXNwcmluZy1zZWdtZW50LXJvdXRpbmctbGRwLWludGVyb3BdLg0KPiANCj4gICBXaGVu
IGEgcGF0aCBpcyBleHByZXNzZWQgdXNpbmcgYSBhIGxhYmVsIHN0YWNrLCB0aGUgb2NjdXJyZW5j
ZSBvZg0KPiAgIGxhYmVsIHN0YWNraW5nIHdpbGwgaW5jcmVhc2UuICBBIG5vZGUgbWF5IHdhbnQg
dG8gc2lnbmFsIGluIHRoZQ0KPiAgIGNvbnRyb2wgcGxhbmUgaXQncyBhYmlsaXR5IGluIHRlcm1z
IG9mIHNpemUgb2YgdGhlIGxhYmVsIHN0YWNrIGl0IGNhbg0KPiAgIHN1cHBvcnQuDQo+IA0KPiAg
IEEgWUFORyBkYXRhIG1vZGVsIFtSRkM2MDIwXSBmb3Igc2VnbWVudCByb3V0aW5nIGNvbmZpZ3Vy
YXRpb24gYW5kDQo+ICAgb3BlcmF0aW9ucyBoYXMgYmVlbiBkZWZpbmVkIGluIFtJLUQuaWV0Zi1z
cHJpbmctc3IteWFuZ10uDQo+IA0KPiAgIFdoZW4gU2VnbWVudCBSb3V0aW5nIGlzIGFwcGxpZWQg
dG8gdGhlIElQdjYgZGF0YSBwbGFuZSwgc2VnbWVudHMgYXJlDQo+ICAgaWRlbnRpZmllZCB0aHJv
dWdoIElQdjYgYWRkcmVzc2VzLiAgVGhlIGFsbG9jYXRpb24sIG1hbmFnZW1lbnQgYW5kDQo+ICAg
dHJvdWJsZXNob290aW5nIG9mIHNlZ21lbnQgaWRlbnRpZmllcnMgaXMgbm8gZGlmZmVyZW50IHRo
YW4gdGhlDQo+ICAgZXhpc3RpbmcgbWVjaGFuaXNtcyBhcHBsaWVkIHRvIHRoZSBhbGxvY2F0aW9u
IGFuZCBtYW5hZ2VtZW50IG9mIElQdjYNCj4gICBhZGRyZXNzZXMuDQo+IA0KPiAgIEluIHRoZSBT
UiBvdmVyIElQdjYgZGF0YSBwbGFuZSBjb250ZXh0LCB0aGUgYWxsb2NhdGlvbiBvZiBTSURzDQo+
ICAgcmVzdWx0cyBpbnRvIHRoZSBhbGxvY2F0aW9uIG9mIElQdjYgYWRkcmVzc2VzLiAgVGhlcmVm
b3JlLA0KPiAgIG1hbmFnZW1lbnQsIHRyb3VibGVzaG9vdGluZywgbW9uaXRvcmluZyBmdW5jdGlv
bnMgYXJlIHRoZSBzYW1lIGFzIHRoZQ0KPiAgIG9uZSB1c2VkIGZvciBJUHY2IGFkZHJlc3Nlcy4N
Cj4gDQo+ICAgVGhlIGNvbnRyb2wgb2YgYSBzb3VyY2Ugcm91dGVkIHBhdGggb2YgYW4gSVB2NiBw
YWNrZXQgaGF2aW5nIGFuIFNSSA0KPiAgIFNIT1VMRCBiZSBpbXBsZW1lbnRlZCB0aHJvdWdoIHRo
ZSBpbnNwZWN0aW9uIG9mIHRoZSBwYWNrZXQgaGVhZGVyIGFuZA0KPiAgIG1vcmUgcHJlY2lzZWx5
IGl0cyBEQSBhbmQgc2VnbWVudCBsaXN0IChpbiB0aGUgU1JIKS4gIFRoZSBEQSBvZiB0aGUNCj4g
ICBwYWNrZXQgZ2l2ZXMgdGhlIGFjdGl2ZSBzZWdtZW50IGFkZHJlc3MuICBUaGUgc2VnbWVudCBs
aXN0IGluIHRoZSBTUkgNCj4gICBnaXZlcyB0aGUgZW50aXJlIHBhdGggb2YgdGhlIHBhY2tldC4g
IFRoZSB2YWxpZGF0aW9uIG9mIHRoZSBzb3VyY2UNCj4gICByb3V0ZWQgcGF0aCBpcyBkb25lIHRo
cm91Z2ggaW5zcGVjdGlvbiBvZiBEQSBhbmQgU1JIIHByZXNlbnQgaW4gdGhlDQo+ICAgcGFja2V0
IGhlYWRlciBtYXRjaGVkIHRvIHRoZSBlcXVpdmFsZW50IHJvdXRpbmcgdGFibGUgZW50cmllcy4N
Cj4gDQo+ICAgSW4gdGhlIGNvbnRleHQgb2YgU1Igb3ZlciB0aGUgSVB2NiBkYXRhIHBsYW5lLCB0
aGUgc291cmNlIHJvdXRlZCBwYXRoDQo+ICAgaXMgZW5jb2RlZCBpbiB0aGUgU1JIIGFzIGRlc2Ny
aWJlZCBpbg0KPiAgIFtJLUQuaWV0Zi02bWFuLXNlZ21lbnQtcm91dGluZy1oZWFkZXJdLiAgVGhl
IFNSIElQdjYgc291cmNlIHJvdXRlZA0KPiAgIHBhdGggaXMgaW5zdGFudGlhdGVkIGludG8gdGhl
IFNSSCBhcyBhIGxpc3Qgb2YgSVB2NiBhZGRyZXNzIHdoZXJlIHRoZQ0KPiAgIGFjdGl2ZSBzZWdt
ZW50IGlzIGluIHRoZSBEZXN0aW5hdGlvbiBBZGRyZXNzIChEQSkgZmllbGQgb2YgdGhlIElQdjYN
Cj4gICBwYWNrZXQgaGVhZGVyLiAgVHlwaWNhbGx5LCBieSBpbnNwZWN0aW5nIGluIGFueSBub2Rl
IHRoZSBwYWNrZXQNCj4gICBoZWFkZXIsIGl0IGlzIHBvc3NpYmxlIHRvIGRlcml2ZSB0aGUgc291
cmNlIHJvdXRlZCBwYXRoIGl0IGJlbG9uZ3MNCj4gICB0by4gIFNpbWlsYXIgdG8gdGhlIGNvbnRl
eHQgb2YgU1Igb3ZlciBNUExTIGRhdGEgcGxhbmUsIGFuDQo+IA0KPiANCj4gDQo+IEZpbHNmaWxz
LCBldCBhbC4gICAgICAgICAgRXhwaXJlcyBNYXkgMjMsIDIwMTcgICAgICAgICAgICAgICAgIFtQ
YWdlIDIzXQ0KPiANCj4gSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgICBTZWdtZW50IFJvdXRp
bmcgICAgICAgICAgICAgICBOb3ZlbWJlciAyMDE2DQo+IA0KPiANCj4gICBpbXBsZW1lbnRhdGlv
biBtYXkgb3JpZ2luYXRlIHBhdGggY29udHJvbCBhbmQgbW9uaXRvcmluZyBwYWNrZXRzDQo+ICAg
d2hlcmUgdGhlIHNvdXJjZSByb3V0ZWQgcGF0aCBpcyBpbnNlcnRlZCBpbiB0aGUgU1JIIGFuZCB3
aGVyZSBlYWNoDQo+ICAgc2VnbWVudCBvZiB0aGUgcGF0aCBpbnNlcnRzIGluIHRoZSBwYWNrZXQg
dGhlIHJlbGV2YW50IGRhdGEgaW4gb3JkZXINCj4gICB0byBtZWFzdXJlIHRoZSBlbmQgdG8gZW5k
IHBhdGggYW5kIHBlcmZvcm1hbmNlLg0KPiANCj4gMTAuICBDb250cmlidXRvcnMNCj4gDQo+ICAg
VGhlIGZvbGxvd2luZyBwZW9wbGUgaGF2ZSBzdWJzdGFudGlhbGx5IGNvbnRyaWJ1dGVkIHRvIHRo
ZSBkZWZpbml0aW9uDQo+ICAgb2YgdGhlIFNlZ21lbnQgUm91dGluZyBhcmNoaXRlY3R1cmUgYW5k
IHRvIHRoZSBlZGl0aW5nIG9mIHRoaXMNCj4gICBkb2N1bWVudDoNCj4gDQo+ICAgQWhtZWQgQmFz
aGFuZHkNCj4gICBDaXNjbyBTeXN0ZW1zLCBJbmMuDQo+ICAgRW1haWw6IGJhc2hhbmR5QGNpc2Nv
LmNvbQ0KPiANCj4gICBNYXJ0aW4gSG9ybmVmZmVyDQo+ICAgRGV1dHNjaGUgVGVsZWtvbQ0KPiAg
IEVtYWlsOiBNYXJ0aW4uSG9ybmVmZmVyQHRlbGVrb20uZGUNCj4gDQo+ICAgV2ltIEhlbmRlcmlj
a3gNCj4gICBBbGNhdGVsLUx1Y2VudA0KPiAgIEVtYWlsOiB3aW0uaGVuZGVyaWNreEBhbGNhdGVs
LWx1Y2VudC5jb20NCj4gDQo+ICAgSmVmZiBUYW50c3VyYQ0KPiAgIEVyaWNzc29uDQo+ICAgRW1h
aWw6IEplZmYuVGFudHN1cmFAZXJpY3Nzb24uY29tDQo+IA0KPiAgIEVkd2FyZCBDcmFiYmUNCj4g
ICBJbmRpdmlkdWFsDQo+ICAgRW1haWw6IGVkd2FyZC5jcmFiYmVAZ21haWwuY29tDQo+IA0KPiAg
IElnb3IgTWlsb2pldmljDQo+ICAgRW1haWw6IG1pbG9qZXZpY2lnb3JAZ21haWwuY29tDQo+IA0K
PiAgIFNha3UgWXR0aQ0KPiAgIFREQw0KPiAgIEVtYWlsOiBzYWt1QHl0dGkuZmkNCj4gDQo+IDEx
LiAgQWNrbm93bGVkZ2VtZW50cw0KPiANCj4gICBXZSB3b3VsZCBsaWtlIHRvIHRoYW5rIERhdmUg
V2FyZCwgRGFuIEZyb3N0LCBTdGV3YXJ0IEJyeWFudCwgUGllcnJlDQo+ICAgRnJhbmNvaXMsIFRo
b21hcyBUZWxrYW1wLCBMZXMgR2luc2JlcmcsIFJ1ZWRpZ2VyIEdlaWIsIEhhbm5lcw0KPiAgIEdy
ZWRsZXIsIFB1c2hwYXNpcyBTYXJrYXIsIEVyaWMgUm9zZW4gYW5kIENocmlzIEJvd2VycyBmb3Ig
dGhlaXINCj4gICBjb21tZW50cyBhbmQgcmV2aWV3IG9mIHRoaXMgZG9jdW1lbnQuDQo+IA0KPiAN
Cj4gDQo+IA0KPiANCj4gDQo+IA0KPiBGaWxzZmlscywgZXQgYWwuICAgICAgICAgIEV4cGlyZXMg
TWF5IDIzLCAyMDE3ICAgICAgICAgICAgICAgICBbUGFnZSAyNF0NCj4gDQo+IEludGVybmV0LURy
YWZ0ICAgICAgICAgICAgICAgU2VnbWVudCBSb3V0aW5nICAgICAgICAgICAgICAgTm92ZW1iZXIg
MjAxNg0KPiANCj4gDQo+IDEyLiAgUmVmZXJlbmNlcw0KPiANCj4gMTIuMS4gIE5vcm1hdGl2ZSBS
ZWZlcmVuY2VzDQo+IA0KPiAgIFtSRkMyMTE5XSAgQnJhZG5lciwgUy4sICJLZXkgd29yZHMgZm9y
IHVzZSBpbiBSRkNzIHRvIEluZGljYXRlDQo+ICAgICAgICAgICAgICBSZXF1aXJlbWVudCBMZXZl
bHMiLCBCQ1AgMTQsIFJGQyAyMTE5LA0KPiAgICAgICAgICAgICAgRE9JIDEwLjE3NDg3L1JGQzIx
MTksIE1hcmNoIDE5OTcsDQo+ICAgICAgICAgICAgICA8aHR0cDovL3d3dy5yZmMtZWRpdG9yLm9y
Zy9pbmZvL3JmYzIxMTk+Lg0KPiANCj4gICBbUkZDMjQ2MF0gIERlZXJpbmcsIFMuIGFuZCBSLiBI
aW5kZW4sICJJbnRlcm5ldCBQcm90b2NvbCwgVmVyc2lvbiA2DQo+ICAgICAgICAgICAgICAoSVB2
NikgU3BlY2lmaWNhdGlvbiIsIFJGQyAyNDYwLCBET0kgMTAuMTc0ODcvUkZDMjQ2MCwNCj4gICAg
ICAgICAgICAgIERlY2VtYmVyIDE5OTgsIDxodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2luZm8v
cmZjMjQ2MD4uDQo+IA0KPiAgIFtSRkMzMDMxXSAgUm9zZW4sIEUuLCBWaXN3YW5hdGhhbiwgQS4s
IGFuZCBSLiBDYWxsb24sICJNdWx0aXByb3RvY29sDQo+ICAgICAgICAgICAgICBMYWJlbCBTd2l0
Y2hpbmcgQXJjaGl0ZWN0dXJlIiwgUkZDIDMwMzEsDQo+ICAgICAgICAgICAgICBET0kgMTAuMTc0
ODcvUkZDMzAzMSwgSmFudWFyeSAyMDAxLA0KPiAgICAgICAgICAgICAgPGh0dHA6Ly93d3cucmZj
LWVkaXRvci5vcmcvaW5mby9yZmMzMDMxPi4NCj4gDQo+ICAgW1JGQzQyMDZdICBLb21wZWxsYSwg
Sy4gYW5kIFkuIFJla2h0ZXIsICJMYWJlbCBTd2l0Y2hlZCBQYXRocyAoTFNQKQ0KPiAgICAgICAg
ICAgICAgSGllcmFyY2h5IHdpdGggR2VuZXJhbGl6ZWQgTXVsdGktUHJvdG9jb2wgTGFiZWwgU3dp
dGNoaW5nDQo+ICAgICAgICAgICAgICAoR01QTFMpIFRyYWZmaWMgRW5naW5lZXJpbmcgKFRFKSIs
IFJGQyA0MjA2LA0KPiAgICAgICAgICAgICAgRE9JIDEwLjE3NDg3L1JGQzQyMDYsIE9jdG9iZXIg
MjAwNSwNCj4gICAgICAgICAgICAgIDxodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2luZm8vcmZj
NDIwNj4uDQo+IA0KPiAxMi4yLiAgSW5mb3JtYXRpdmUgUmVmZXJlbmNlcw0KPiANCj4gU0I+IEl0
IGlzIHVuY2xlYXIgdG8gbWUgd2hldGhlciBvciBub3QgbWFueSBvZiB0aGVzZSByZWZlcmVuY2Vz
IGFyZSB0cnVlbHkNCj4gU0I+IGluZm9ybWF0aXZlLiBJdCBzZWVtcyB0aGF0IGluIG1hbnkgY2Fz
ZXMgdGhlIGFyY2hpdGVjdHVyYWwgZGVzY3JpcHRpb24NCj4gU0I+IGlzIHNvIHNjYW50IHRoYXQg
dGhlIHJlYWRlciBjYW5ub3QgZnVsbHkgdW5kZXJzdGFuZCBlbGVtZW50cyBvZiB0aGUNCj4gU0I+
IHRoZSBhcmNoaXRlY3R1cmUgd2l0aG91dCByZWFkaW5nIHNvbWUgb2YgdGhlc2UgcmVmZXJlbmNl
cywgYW5kIHRoYXQNCj4gU0I+IG1ha2VzIHRoZW0gbm9ybWF0aXZlLg0KPiANCj4gICBbSS1ELmZp
bHNmaWxzLXNwcmluZy1sYXJnZS1zY2FsZS1pbnRlcmNvbm5lY3RdDQo+ICAgICAgICAgICAgICBG
aWxzZmlscywgQy4sIENhaSwgRC4sIFByZXZpZGksIFMuLCBIZW5kZXJpY2t4LCBXLiwNCj4gICAg
ICAgICAgICAgIENvb3BlciwgRC4sIEZlcmd1c29uLCBGLiwgTGFiZXJnZSwgVC4sIExpbiwgUy4s
IERlY3JhZW5lLA0KPiAgICAgICAgICAgICAgQi4sIEphbGlsLCBMLiwgamVmZnRhbnRAZ21haWwu
Y29tLCBqLiwgYW5kIFIuIFNoYWtpciwNCj4gICAgICAgICAgICAgICJJbnRlcmNvbm5lY3Rpbmcg
TWlsbGlvbnMgT2YgRW5kcG9pbnRzIFdpdGggU2VnbWVudA0KPiAgICAgICAgICAgICAgUm91dGlu
ZyIsIGRyYWZ0LWZpbHNmaWxzLXNwcmluZy1sYXJnZS1zY2FsZS0NCj4gICAgICAgICAgICAgIGlu
dGVyY29ubmVjdC0wNCAod29yayBpbiBwcm9ncmVzcyksIE9jdG9iZXIgMjAxNi4NCj4gDQo+ICAg
W0ktRC5mcmFuY29pcy1ydGd3Zy1zZWdtZW50LXJvdXRpbmctdGktbGZhXQ0KPiAgICAgICAgICAg
ICAgRnJhbmNvaXMsIFAuLCBCYXNoYW5keSwgQS4sIGFuZCBDLiBGaWxzZmlscywgIkFic3RyYWN0
IiwNCj4gICAgICAgICAgICAgIGRyYWZ0LWZyYW5jb2lzLXJ0Z3dnLXNlZ21lbnQtcm91dGluZy10
aS1sZmEtMDIgKHdvcmsgaW4NCj4gICAgICAgICAgICAgIHByb2dyZXNzKSwgTm92ZW1iZXIgMjAx
Ni4NCj4gDQo+ICAgW0ktRC5pZXRmLTZtYW4tc2VnbWVudC1yb3V0aW5nLWhlYWRlcl0NCj4gICAg
ICAgICAgICAgIFByZXZpZGksIFMuLCBGaWxzZmlscywgQy4sIEZpZWxkLCBCLiwgTGV1bmcsIEku
LCBMaW5rb3ZhLA0KPiAgICAgICAgICAgICAgSi4sIEFyaWVzLCBFLiwgS29zdWdpLCBULiwgVnlu
Y2tlLCBFLiwgYW5kIEQuIExlYnJ1biwNCj4gICAgICAgICAgICAgICJJUHY2IFNlZ21lbnQgUm91
dGluZyBIZWFkZXIgKFNSSCkiLCBkcmFmdC1pZXRmLTZtYW4tDQo+ICAgICAgICAgICAgICBzZWdt
ZW50LXJvdXRpbmctaGVhZGVyLTAyICh3b3JrIGluIHByb2dyZXNzKSwgU2VwdGVtYmVyDQo+ICAg
ICAgICAgICAgICAyMDE2Lg0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBGaWxzZmlscywgZXQg
YWwuICAgICAgICAgIEV4cGlyZXMgTWF5IDIzLCAyMDE3ICAgICAgICAgICAgICAgICBbUGFnZSAy
NV0NCj4gDQo+IEludGVybmV0LURyYWZ0ICAgICAgICAgICAgICAgU2VnbWVudCBSb3V0aW5nICAg
ICAgICAgICAgICAgTm92ZW1iZXIgMjAxNg0KPiANCj4gDQo+ICAgW0ktRC5pZXRmLWlzaXMtc2Vn
bWVudC1yb3V0aW5nLWV4dGVuc2lvbnNdDQo+ICAgICAgICAgICAgICBQcmV2aWRpLCBTLiwgRmls
c2ZpbHMsIEMuLCBCYXNoYW5keSwgQS4sIEdyZWRsZXIsIEguLA0KPiAgICAgICAgICAgICAgTGl0
a293c2tpLCBTLiwgRGVjcmFlbmUsIEIuLCBhbmQgai4gamVmZnRhbnRAZ21haWwuY29tLA0KPiAg
ICAgICAgICAgICAgIklTLUlTIEV4dGVuc2lvbnMgZm9yIFNlZ21lbnQgUm91dGluZyIsIGRyYWZ0
LWlldGYtaXNpcy0NCj4gICAgICAgICAgICAgIHNlZ21lbnQtcm91dGluZy1leHRlbnNpb25zLTA5
ICh3b3JrIGluIHByb2dyZXNzKSwgT2N0b2Jlcg0KPiAgICAgICAgICAgICAgMjAxNi4NCj4gDQo+
ICAgW0ktRC5pZXRmLW1wbHMtc3ByaW5nLWxzcC1waW5nXQ0KPiAgICAgICAgICAgICAgS3VtYXIs
IE4uLCBTd2FsbG93LCBHLiwgUGlnbmF0YXJvLCBDLiwgQWtpeWEsIE4uLCBLaW5pLA0KPiAgICAg
ICAgICAgICAgUy4sIEdyZWRsZXIsIEguLCBhbmQgTS4gQ2hlbiwgIkxhYmVsIFN3aXRjaGVkIFBh
dGggKExTUCkNCj4gICAgICAgICAgICAgIFBpbmcvVHJhY2UgZm9yIFNlZ21lbnQgUm91dGluZyBO
ZXR3b3JrcyBVc2luZyBNUExTDQo+ICAgICAgICAgICAgICBEYXRhcGxhbmUiLCBkcmFmdC1pZXRm
LW1wbHMtc3ByaW5nLWxzcC1waW5nLTAxICh3b3JrIGluDQo+ICAgICAgICAgICAgICBwcm9ncmVz
cyksIE9jdG9iZXIgMjAxNi4NCj4gDQo+ICAgW0ktRC5pZXRmLW9zcGYtb3NwZnYzLXNlZ21lbnQt
cm91dGluZy1leHRlbnNpb25zXQ0KPiAgICAgICAgICAgICAgUHNlbmFrLCBQLiwgUHJldmlkaSwg
Uy4sIEZpbHNmaWxzLCBDLiwgR3JlZGxlciwgSC4sDQo+ICAgICAgICAgICAgICBTaGFraXIsIFIu
LCBIZW5kZXJpY2t4LCBXLiwgYW5kIEouIFRhbnRzdXJhLCAiT1NQRnYzDQo+ICAgICAgICAgICAg
ICBFeHRlbnNpb25zIGZvciBTZWdtZW50IFJvdXRpbmciLCBkcmFmdC1pZXRmLW9zcGYtb3NwZnYz
LQ0KPiAgICAgICAgICAgICAgc2VnbWVudC1yb3V0aW5nLWV4dGVuc2lvbnMtMDcgKHdvcmsgaW4g
cHJvZ3Jlc3MpLCBPY3RvYmVyDQo+ICAgICAgICAgICAgICAyMDE2Lg0KPiANCj4gICBbSS1ELmll
dGYtb3NwZi1zZWdtZW50LXJvdXRpbmctZXh0ZW5zaW9uc10NCj4gICAgICAgICAgICAgIFBzZW5h
aywgUC4sIFByZXZpZGksIFMuLCBGaWxzZmlscywgQy4sIEdyZWRsZXIsIEguLA0KPiAgICAgICAg
ICAgICAgU2hha2lyLCBSLiwgSGVuZGVyaWNreCwgVy4sIGFuZCBKLiBUYW50c3VyYSwgIk9TUEYN
Cj4gICAgICAgICAgICAgIEV4dGVuc2lvbnMgZm9yIFNlZ21lbnQgUm91dGluZyIsIGRyYWZ0LWll
dGYtb3NwZi1zZWdtZW50LQ0KPiAgICAgICAgICAgICAgcm91dGluZy1leHRlbnNpb25zLTEwICh3
b3JrIGluIHByb2dyZXNzKSwgT2N0b2JlciAyMDE2Lg0KPiANCj4gICBbSS1ELmlldGYtcGNlLXNl
Z21lbnQtcm91dGluZ10NCj4gICAgICAgICAgICAgIFNpdmFiYWxhbiwgUy4sIE1lZHZlZCwgSi4s
IEZpbHNmaWxzLCBDLiwgQ3JhYmJlLCBFLiwNCj4gICAgICAgICAgICAgIFJhc3p1aywgUi4sIExv
cGV6LCBWLiwgVGFudHN1cmEsIEouLCBIZW5kZXJpY2t4LCBXLiwgYW5kDQo+ICAgICAgICAgICAg
ICBKLiBIYXJkd2ljaywgIlBDRVAgRXh0ZW5zaW9ucyBmb3IgU2VnbWVudCBSb3V0aW5nIiwgZHJh
ZnQtDQo+ICAgICAgICAgICAgICBpZXRmLXBjZS1zZWdtZW50LXJvdXRpbmctMDggKHdvcmsgaW4g
cHJvZ3Jlc3MpLCBPY3RvYmVyDQo+ICAgICAgICAgICAgICAyMDE2Lg0KPiANCj4gICBbSS1ELmll
dGYtc3ByaW5nLWNvbmZsaWN0LXJlc29sdXRpb25dDQo+ICAgICAgICAgICAgICBHaW5zYmVyZywg
TC4sIFBzZW5haywgUC4sIFByZXZpZGksIFMuLCBhbmQgTS4gUGlsa2EsDQo+ICAgICAgICAgICAg
ICAiU2VnbWVudCBSb3V0aW5nIENvbmZsaWN0IFJlc29sdXRpb24iLCBkcmFmdC1pZXRmLXNwcmlu
Zy0NCj4gICAgICAgICAgICAgIGNvbmZsaWN0LXJlc29sdXRpb24tMDIgKHdvcmsgaW4gcHJvZ3Jl
c3MpLCBPY3RvYmVyIDIwMTYuDQo+IA0KPiAgIFtJLUQuaWV0Zi1zcHJpbmctaXB2Ni11c2UtY2Fz
ZXNdDQo+ICAgICAgICAgICAgICBCcnpvem93c2tpLCBKLiwgTGVkZHksIEouLCBUb3duc2xleSwg
Vy4sIEZpbHNmaWxzLCBDLiwgYW5kDQo+ICAgICAgICAgICAgICBSLiBNYWdsaW9uZSwgIklQdjYg
U1BSSU5HIFVzZSBDYXNlcyIsIGRyYWZ0LWlldGYtc3ByaW5nLQ0KPiAgICAgICAgICAgICAgaXB2
Ni11c2UtY2FzZXMtMDcgKHdvcmsgaW4gcHJvZ3Jlc3MpLCBKdWx5IDIwMTYuDQo+IA0KPiANCj4g
DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gRmlsc2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBpcmVz
IE1heSAyMywgMjAxNyAgICAgICAgICAgICAgICAgW1BhZ2UgMjZdDQo+IA0KPiBJbnRlcm5ldC1E
cmFmdCAgICAgICAgICAgICAgIFNlZ21lbnQgUm91dGluZyAgICAgICAgICAgICAgIE5vdmVtYmVy
IDIwMTYNCj4gDQo+IA0KPiAgIFtJLUQuaWV0Zi1zcHJpbmctb2FtLXVzZWNhc2VdDQo+ICAgICAg
ICAgICAgICBHZWliLCBSLiwgRmlsc2ZpbHMsIEMuLCBQaWduYXRhcm8sIEMuLCBhbmQgTi4gS3Vt
YXIsICJBDQo+ICAgICAgICAgICAgICBTY2FsYWJsZSBhbmQgVG9wb2xvZ3ktQXdhcmUgTVBMUyBE
YXRhcGxhbmUgTW9uaXRvcmluZw0KPiAgICAgICAgICAgICAgU3lzdGVtIiwgZHJhZnQtaWV0Zi1z
cHJpbmctb2FtLXVzZWNhc2UtMDQgKHdvcmsgaW4NCj4gICAgICAgICAgICAgIHByb2dyZXNzKSwg
T2N0b2JlciAyMDE2Lg0KPiANCj4gICBbSS1ELmlldGYtc3ByaW5nLXJlc2lsaWVuY3ktdXNlLWNh
c2VzXQ0KPiAgICAgICAgICAgICAgRmlsc2ZpbHMsIEMuLCBQcmV2aWRpLCBTLiwgRGVjcmFlbmUs
IEIuLCBhbmQgUi4gU2hha2lyLA0KPiAgICAgICAgICAgICAgIlJlc2lsaWVuY3kgdXNlIGNhc2Vz
IGluIFNQUklORyBuZXR3b3JrcyIsIGRyYWZ0LWlldGYtDQo+ICAgICAgICAgICAgICBzcHJpbmct
cmVzaWxpZW5jeS11c2UtY2FzZXMtMDggKHdvcmsgaW4gcHJvZ3Jlc3MpLCBPY3RvYmVyDQo+ICAg
ICAgICAgICAgICAyMDE2Lg0KPiANCj4gICBbSS1ELmlldGYtc3ByaW5nLXNlZ21lbnQtcm91dGlu
Zy1jZW50cmFsLWVwZV0NCj4gICAgICAgICAgICAgIEZpbHNmaWxzLCBDLiwgUHJldmlkaSwgUy4s
IEFyaWVzLCBFLiwgR2luc2J1cmcsIEQuLCBhbmQgRC4NCj4gICAgICAgICAgICAgIEFmYW5hc2ll
diwgIlNlZ21lbnQgUm91dGluZyBDZW50cmFsaXplZCBCR1AgUGVlcg0KPiAgICAgICAgICAgICAg
RW5naW5lZXJpbmciLCBkcmFmdC1pZXRmLXNwcmluZy1zZWdtZW50LXJvdXRpbmctY2VudHJhbC0N
Cj4gICAgICAgICAgICAgIGVwZS0wMiAod29yayBpbiBwcm9ncmVzcyksIFNlcHRlbWJlciAyMDE2
Lg0KPiANCj4gICBbSS1ELmlldGYtc3ByaW5nLXNlZ21lbnQtcm91dGluZy1sZHAtaW50ZXJvcF0N
Cj4gICAgICAgICAgICAgIEZpbHNmaWxzLCBDLiwgUHJldmlkaSwgUy4sIEJhc2hhbmR5LCBBLiwg
RGVjcmFlbmUsIEIuLCBhbmQNCj4gICAgICAgICAgICAgIFMuIExpdGtvd3NraSwgIlNlZ21lbnQg
Um91dGluZyBpbnRlcndvcmtpbmcgd2l0aCBMRFAiLA0KPiAgICAgICAgICAgICAgZHJhZnQtaWV0
Zi1zcHJpbmctc2VnbWVudC1yb3V0aW5nLWxkcC1pbnRlcm9wLTA0ICh3b3JrIGluDQo+ICAgICAg
ICAgICAgICBwcm9ncmVzcyksIEp1bHkgMjAxNi4NCj4gDQo+ICAgW0ktRC5pZXRmLXNwcmluZy1z
ZWdtZW50LXJvdXRpbmctbXBsc10NCj4gICAgICAgICAgICAgIEZpbHNmaWxzLCBDLiwgUHJldmlk
aSwgUy4sIEJhc2hhbmR5LCBBLiwgRGVjcmFlbmUsIEIuLA0KPiAgICAgICAgICAgICAgTGl0a293
c2tpLCBTLiwgSG9ybmVmZmVyLCBNLiwgU2hha2lyLCBSLiwNCj4gICAgICAgICAgICAgIGplZmZ0
YW50QGdtYWlsLmNvbSwgai4sIGFuZCBFLiBDcmFiYmUsICJTZWdtZW50IFJvdXRpbmcNCj4gICAg
ICAgICAgICAgIHdpdGggTVBMUyBkYXRhIHBsYW5lIiwgZHJhZnQtaWV0Zi1zcHJpbmctc2VnbWVu
dC1yb3V0aW5nLQ0KPiAgICAgICAgICAgICAgbXBscy0wNSAod29yayBpbiBwcm9ncmVzcyksIEp1
bHkgMjAxNi4NCj4gDQo+ICAgW0ktRC5pZXRmLXNwcmluZy1zZWdtZW50LXJvdXRpbmctbXNkY10N
Cj4gICAgICAgICAgICAgIEZpbHNmaWxzLCBDLiwgUHJldmlkaSwgUy4sIE1pdGNoZWxsLCBKLiwg
QXJpZXMsIEUuLCBhbmQgUC4NCj4gICAgICAgICAgICAgIExhcHVraG92LCAiQkdQLVByZWZpeCBT
ZWdtZW50IGluIGxhcmdlLXNjYWxlIGRhdGENCj4gICAgICAgICAgICAgIGNlbnRlcnMiLCBkcmFm
dC1pZXRmLXNwcmluZy1zZWdtZW50LXJvdXRpbmctbXNkYy0wMiAod29yaw0KPiAgICAgICAgICAg
ICAgaW4gcHJvZ3Jlc3MpLCBPY3RvYmVyIDIwMTYuDQo+IA0KPiAgIFtJLUQuaWV0Zi1zcHJpbmct
c3Itb2FtLXJlcXVpcmVtZW50XQ0KPiAgICAgICAgICAgICAgS3VtYXIsIE4uLCBQaWduYXRhcm8s
IEMuLCBBa2l5YSwgTi4sIEdlaWIsIFIuLCBNaXJza3ksIEcuLA0KPiAgICAgICAgICAgICAgYW5k
IFMuIExpdGtvd3NraSwgIk9BTSBSZXF1aXJlbWVudHMgZm9yIFNlZ21lbnQgUm91dGluZw0KPiAg
ICAgICAgICAgICAgTmV0d29yayIsIGRyYWZ0LWlldGYtc3ByaW5nLXNyLW9hbS1yZXF1aXJlbWVu
dC0wMiAod29yayBpbg0KPiAgICAgICAgICAgICAgcHJvZ3Jlc3MpLCBKdWx5IDIwMTYuDQo+IA0K
PiAgIFtJLUQuaWV0Zi1zcHJpbmctc3IteWFuZ10NCj4gICAgICAgICAgICAgIExpdGtvd3NraSwg
Uy4sIFF1LCBZLiwgU2Fya2FyLCBQLiwgYW5kIEouIFRhbnRzdXJhLCAiWUFORw0KPiAgICAgICAg
ICAgICAgRGF0YSBNb2RlbCBmb3IgU2VnbWVudCBSb3V0aW5nIiwgZHJhZnQtaWV0Zi1zcHJpbmct
c3ItDQo+ICAgICAgICAgICAgICB5YW5nLTA1ICh3b3JrIGluIHByb2dyZXNzKSwgT2N0b2JlciAy
MDE2Lg0KPiANCj4gDQo+IA0KPiANCj4gRmlsc2ZpbHMsIGV0IGFsLiAgICAgICAgICBFeHBpcmVz
IE1heSAyMywgMjAxNyAgICAgICAgICAgICAgICAgW1BhZ2UgMjddDQo+IA0KPiBJbnRlcm5ldC1E
cmFmdCAgICAgICAgICAgICAgIFNlZ21lbnQgUm91dGluZyAgICAgICAgICAgICAgIE5vdmVtYmVy
IDIwMTYNCj4gDQo+IA0KPiAgIFtSRkM0MzgxXSAgQmVocmluZ2VyLCBNLiwgIkFuYWx5c2lzIG9m
IHRoZSBTZWN1cml0eSBvZiBCR1AvTVBMUyBJUA0KPiAgICAgICAgICAgICAgVmlydHVhbCBQcml2
YXRlIE5ldHdvcmtzIChWUE5zKSIsIFJGQyA0MzgxLA0KPiAgICAgICAgICAgICAgRE9JIDEwLjE3
NDg3L1JGQzQzODEsIEZlYnJ1YXJ5IDIwMDYsDQo+ICAgICAgICAgICAgICA8aHR0cDovL3d3dy5y
ZmMtZWRpdG9yLm9yZy9pbmZvL3JmYzQzODE+Lg0KPiANCj4gICBbUkZDNDkxNV0gIFBzZW5haywg
UC4sIE1pcnRvcmFiaSwgUy4sIFJveSwgQS4sIE5ndXllbiwgTC4sIGFuZCBQLg0KPiAgICAgICAg
ICAgICAgUGlsbGF5LUVzbmF1bHQsICJNdWx0aS1Ub3BvbG9neSAoTVQpIFJvdXRpbmcgaW4gT1NQ
RiIsDQo+ICAgICAgICAgICAgICBSRkMgNDkxNSwgRE9JIDEwLjE3NDg3L1JGQzQ5MTUsIEp1bmUg
MjAwNywNCj4gICAgICAgICAgICAgIDxodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2luZm8vcmZj
NDkxNT4uDQo+IA0KPiAgIFtSRkM1MDM2XSAgQW5kZXJzc29uLCBMLiwgRWQuLCBNaW5laSwgSS4s
IEVkLiwgYW5kIEIuIFRob21hcywgRWQuLA0KPiAgICAgICAgICAgICAgIkxEUCBTcGVjaWZpY2F0
aW9uIiwgUkZDIDUwMzYsIERPSSAxMC4xNzQ4Ny9SRkM1MDM2LA0KPiAgICAgICAgICAgICAgT2N0
b2JlciAyMDA3LCA8aHR0cDovL3d3dy5yZmMtZWRpdG9yLm9yZy9pbmZvL3JmYzUwMzY+Lg0KPiAN
Cj4gICBbUkZDNTA5NV0gIEFibGV5LCBKLiwgU2F2b2xhLCBQLiwgYW5kIEcuIE5ldmlsbGUtTmVp
bCwgIkRlcHJlY2F0aW9uDQo+ICAgICAgICAgICAgICBvZiBUeXBlIDAgUm91dGluZyBIZWFkZXJz
IGluIElQdjYiLCBSRkMgNTA5NSwNCj4gICAgICAgICAgICAgIERPSSAxMC4xNzQ4Ny9SRkM1MDk1
LCBEZWNlbWJlciAyMDA3LA0KPiAgICAgICAgICAgICAgPGh0dHA6Ly93d3cucmZjLWVkaXRvci5v
cmcvaW5mby9yZmM1MDk1Pi4NCj4gDQo+ICAgW1JGQzUxMjBdICBQcnp5Z2llbmRhLCBULiwgU2hl
biwgTi4sIGFuZCBOLiBTaGV0aCwgIk0tSVNJUzogTXVsdGkNCj4gICAgICAgICAgICAgIFRvcG9s
b2d5IChNVCkgUm91dGluZyBpbiBJbnRlcm1lZGlhdGUgU3lzdGVtIHRvDQo+ICAgICAgICAgICAg
ICBJbnRlcm1lZGlhdGUgU3lzdGVtcyAoSVMtSVNzKSIsIFJGQyA1MTIwLA0KPiAgICAgICAgICAg
ICAgRE9JIDEwLjE3NDg3L1JGQzUxMjAsIEZlYnJ1YXJ5IDIwMDgsDQo+ICAgICAgICAgICAgICA8
aHR0cDovL3d3dy5yZmMtZWRpdG9yLm9yZy9pbmZvL3JmYzUxMjA+Lg0KPiANCj4gICBbUkZDNTky
MF0gIEZhbmcsIEwuLCBFZC4sICJTZWN1cml0eSBGcmFtZXdvcmsgZm9yIE1QTFMgYW5kIEdNUExT
DQo+ICAgICAgICAgICAgICBOZXR3b3JrcyIsIFJGQyA1OTIwLCBET0kgMTAuMTc0ODcvUkZDNTky
MCwgSnVseSAyMDEwLA0KPiAgICAgICAgICAgICAgPGh0dHA6Ly93d3cucmZjLWVkaXRvci5vcmcv
aW5mby9yZmM1OTIwPi4NCj4gDQo+ICAgW1JGQzYwMjBdICBCam9ya2x1bmQsIE0uLCBFZC4sICJZ
QU5HIC0gQSBEYXRhIE1vZGVsaW5nIExhbmd1YWdlIGZvcg0KPiAgICAgICAgICAgICAgdGhlIE5l
dHdvcmsgQ29uZmlndXJhdGlvbiBQcm90b2NvbCAoTkVUQ09ORikiLCBSRkMgNjAyMCwNCj4gICAg
ICAgICAgICAgIERPSSAxMC4xNzQ4Ny9SRkM2MDIwLCBPY3RvYmVyIDIwMTAsDQo+ICAgICAgICAg
ICAgICA8aHR0cDovL3d3dy5yZmMtZWRpdG9yLm9yZy9pbmZvL3JmYzYwMjA+Lg0KPiANCj4gICBb
UkZDNjU0OV0gIExpbmRlbSwgQS4sIFJveSwgQS4sIGFuZCBTLiBNaXJ0b3JhYmksICJPU1BGdjIg
TXVsdGktDQo+ICAgICAgICAgICAgICBJbnN0YW5jZSBFeHRlbnNpb25zIiwgUkZDIDY1NDksIERP
SSAxMC4xNzQ4Ny9SRkM2NTQ5LA0KPiAgICAgICAgICAgICAgTWFyY2ggMjAxMiwgPGh0dHA6Ly93
d3cucmZjLWVkaXRvci5vcmcvaW5mby9yZmM2NTQ5Pi4NCj4gDQo+ICAgW1JGQzY4MjJdICBQcmV2
aWRpLCBTLiwgRWQuLCBHaW5zYmVyZywgTC4sIFNoYW5kLCBNLiwgUm95LCBBLiwgYW5kIEQuDQo+
ICAgICAgICAgICAgICBXYXJkLCAiSVMtSVMgTXVsdGktSW5zdGFuY2UiLCBSRkMgNjgyMiwNCj4g
ICAgICAgICAgICAgIERPSSAxMC4xNzQ4Ny9SRkM2ODIyLCBEZWNlbWJlciAyMDEyLA0KPiAgICAg
ICAgICAgICAgPGh0dHA6Ly93d3cucmZjLWVkaXRvci5vcmcvaW5mby9yZmM2ODIyPi4NCj4gDQo+
ICAgW1JGQzc3OTRdICBHaW5zYmVyZywgTC4sIEVkLiwgRGVjcmFlbmUsIEIuLCBQcmV2aWRpLCBT
LiwgWHUsIFguLCBhbmQNCj4gICAgICAgICAgICAgIFUuIENodW5kdXJpLCAiSVMtSVMgUHJlZml4
IEF0dHJpYnV0ZXMgZm9yIEV4dGVuZGVkIElQdjQNCj4gICAgICAgICAgICAgIGFuZCBJUHY2IFJl
YWNoYWJpbGl0eSIsIFJGQyA3Nzk0LCBET0kgMTAuMTc0ODcvUkZDNzc5NCwNCj4gICAgICAgICAg
ICAgIE1hcmNoIDIwMTYsIDxodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL2luZm8vcmZjNzc5ND4u
DQo+IA0KPiANCj4gDQo+IA0KPiBGaWxzZmlscywgZXQgYWwuICAgICAgICAgIEV4cGlyZXMgTWF5
IDIzLCAyMDE3ICAgICAgICAgICAgICAgICBbUGFnZSAyOF0NCj4gDQo+IEludGVybmV0LURyYWZ0
ICAgICAgICAgICAgICAgU2VnbWVudCBSb3V0aW5nICAgICAgICAgICAgICAgTm92ZW1iZXIgMjAx
Ng0KPiANCj4gDQo+ICAgW1JGQzc4NTVdICBQcmV2aWRpLCBTLiwgRWQuLCBGaWxzZmlscywgQy4s
IEVkLiwgRGVjcmFlbmUsIEIuLA0KPiAgICAgICAgICAgICAgTGl0a293c2tpLCBTLiwgSG9ybmVm
ZmVyLCBNLiwgYW5kIFIuIFNoYWtpciwgIlNvdXJjZQ0KPiAgICAgICAgICAgICAgUGFja2V0IFJv
dXRpbmcgaW4gTmV0d29ya2luZyAoU1BSSU5HKSBQcm9ibGVtIFN0YXRlbWVudA0KPiAgICAgICAg
ICAgICAgYW5kIFJlcXVpcmVtZW50cyIsIFJGQyA3ODU1LCBET0kgMTAuMTc0ODcvUkZDNzg1NSwg
TWF5DQo+ICAgICAgICAgICAgICAyMDE2LCA8aHR0cDovL3d3dy5yZmMtZWRpdG9yLm9yZy9pbmZv
L3JmYzc4NTU+Lg0KPiANCj4gQXV0aG9ycycgQWRkcmVzc2VzDQo+IA0KPiAgIENsYXJlbmNlIEZp
bHNmaWxzIChlZGl0b3IpDQo+ICAgQ2lzY28gU3lzdGVtcywgSW5jLg0KPiAgIEJydXNzZWxzDQo+
ICAgQkUNCj4gDQo+ICAgRW1haWw6IGNmaWxzZmlsQGNpc2NvLmNvbQ0KPiANCj4gDQo+ICAgU3Rl
ZmFubyBQcmV2aWRpIChlZGl0b3IpDQo+ICAgQ2lzY28gU3lzdGVtcywgSW5jLg0KPiAgIFZpYSBE
ZWwgU2VyYWZpY28sIDIwMA0KPiAgIFJvbWUgIDAwMTQyDQo+ICAgSXRhbHkNCj4gDQo+ICAgRW1h
aWw6IHNwcmV2aWRpQGNpc2NvLmNvbQ0KPiANCj4gDQo+ICAgQnJ1bm8gRGVjcmFlbmUNCj4gICBP
cmFuZ2UNCj4gICBGUg0KPiANCj4gICBFbWFpbDogYnJ1bm8uZGVjcmFlbmVAb3JhbmdlLmNvbQ0K
PiANCj4gDQo+ICAgU3RlcGhhbmUgTGl0a293c2tpDQo+ICAgT3JhbmdlDQo+ICAgRlINCj4gDQo+
ICAgRW1haWw6IHN0ZXBoYW5lLmxpdGtvd3NraUBvcmFuZ2UuY29tDQo+IA0KPiANCj4gICBSb2Ig
U2hha2lyDQo+ICAgR29vZ2xlLCBJbmMuDQo+ICAgMTYwMCBBbXBoaXRoZWF0cmUgUGFya3dheQ0K
PiAgIE1vdW50YWluIFZpZXcsIENBICA5NDA0Mw0KPiANCj4gICBFbWFpbDogcm9ianNAZ29vZ2xl
LmNvbQ0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KPiBGaWxzZmlscywgZXQgYWwuICAgICAgICAg
IEV4cGlyZXMgTWF5DQo+IA0KDQo=


From nobody Tue Dec  6 07:31:35 2016
Return-Path: <sprevidi@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A71241296B8 for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 07:31:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.418
X-Spam-Level: 
X-Spam-Status: No, score=-17.418 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ftaX3Ijc6VMI for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 07:31:31 -0800 (PST)
Received: from alln-iport-6.cisco.com (alln-iport-6.cisco.com [173.37.142.93]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 516AD1299FB for <spring@ietf.org>; Tue,  6 Dec 2016 07:31:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1467; q=dns/txt; s=iport; t=1481038274; x=1482247874; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=iGroWNThL905p4HYSPaOgPG/SI2NQ1ysyRsiUtPHTu4=; b=KEi9F0AhaLFW0uzunuAToMVu+U1g5AmiQgyY2ZWgMae0VFE2OhkAVKI7 jHwwR1xvzzE83uGjtb4lsCUQLQcFWEXkpNwCPHAyX3zDH9a71ZpueLWWe 4R4M0OOMkZ7cyQCzHy7bD8Z6NxbsmNq42J1ZvmwQepU2KHJr6DHXNpKji M=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AXAQCy2EZY/5BdJa1eGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgzkBAQEBAR9agQYHjUCXDZR+ggceDYUtSgKCID8UAQIBAQEBAQE?= =?us-ascii?q?BYiiEaAEBAQMBAQFsCwULAgEIGC4nCyUCBA4FiGcIDqtZi0MBAQEBAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEXBYY+gX2CXoMLgT2DMYIwBZpmAYZLikyBc4R9g0WGCo4DhA0?= =?us-ascii?q?BHzeBGSMOAQGFInKIAYENAQEB?=
X-IronPort-AV: E=Sophos;i="5.33,310,1477958400"; d="scan'208";a="357369427"
Received: from rcdn-core-8.cisco.com ([173.37.93.144]) by alln-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Dec 2016 15:31:13 +0000
Received: from XCH-RTP-009.cisco.com (xch-rtp-009.cisco.com [64.101.220.149]) by rcdn-core-8.cisco.com (8.14.5/8.14.5) with ESMTP id uB6FVCF9011369 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 6 Dec 2016 15:31:13 GMT
Received: from xch-rtp-010.cisco.com (64.101.220.150) by XCH-RTP-009.cisco.com (64.101.220.149) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Tue, 6 Dec 2016 10:31:12 -0500
Received: from xch-rtp-010.cisco.com ([64.101.220.150]) by XCH-RTP-010.cisco.com ([64.101.220.150]) with mapi id 15.00.1210.000; Tue, 6 Dec 2016 10:31:12 -0500
From: "Stefano Previdi (sprevidi)" <sprevidi@cisco.com>
To: Martin Vigoureux <martin.vigoureux@nokia.com>
Thread-Topic: [spring] WG LC for draft-ietf-spring-segment-routing
Thread-Index: AQHSSVtIEJWTN4xHd06gGujnbgmR6qD7S/kAgAAgrYA=
Date: Tue, 6 Dec 2016 15:31:12 +0000
Message-ID: <122DDE48-AF7F-43D4-A797-36298A589113@cisco.com>
References: <d97bccbd-cb8f-0364-ddd7-7922aba242af@nokia.com> <80b3461b-3f25-803e-0ac9-971a3d8259b8@nokia.com>
In-Reply-To: <80b3461b-3f25-803e-0ac9-971a3d8259b8@nokia.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.61.194.198]
Content-Type: text/plain; charset="Windows-1252"
Content-ID: <D9DE8B1D4C65F34D9432ED6915F11EEF@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/9YzZJH1Sw09FR3loFRYnuJNmoww>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] WG LC for draft-ietf-spring-segment-routing
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Dec 2016 15:31:33 -0000

as an author, I support this draft.

s.


> On Dec 6, 2016, at 2:34 PM, Martin Vigoureux <martin.vigoureux@nokia.com>=
 wrote:
>=20
> WG,
>=20
> this is a reminder, please express your opinion regarding this WG LC.
>=20
> Thank you
>=20
> -m
>=20
> Le 28/11/2016 =E0 10:37, Martin Vigoureux a =E9crit :
>> Hello WG,
>>=20
>> this e-mail initiates a two-week WG LC for
>> draft-ietf-spring-segment-routing [1].
>>=20
>> All authors have already replied to the IPR poll.
>> There is known IPR [2] on this document.
>>=20
>> Please read the latest version of the document and state whether or not
>> you support the submission of this document to the IESG as a Proposed
>> Standard.
>>=20
>> Please also express the comments you would have on this latest version.
>>=20
>> Your involvement in this step is very important so please take the time
>> to read and express your opinions on the list.
>>=20
>> Thank you
>>=20
>> M&B
>>=20
>> [1] https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing/
>> [2]
>> https://datatracker.ietf.org/ipr/search/?submit=3Ddraft&id=3Ddraft-ietf-=
spring-segment-routing
>>=20
>>=20
>> _______________________________________________
>> spring mailing list
>> spring@ietf.org
>> https://www.ietf.org/mailman/listinfo/spring
>>=20
>=20
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring


From nobody Tue Dec  6 07:33:20 2016
Return-Path: <sprevidi@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3D63A129853 for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 07:33:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.418
X-Spam-Level: 
X-Spam-Status: No, score=-17.418 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 57kK7kJTatuf for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 07:33:16 -0800 (PST)
Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3F4D0129524 for <spring@ietf.org>; Tue,  6 Dec 2016 07:33:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=986; q=dns/txt; s=iport; t=1481038394; x=1482247994; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=iR83gzNLyN0Lb1m1ZzdI9AwHEPaT/DDSKGKIirkdbWw=; b=RBoD0fdVtMaCakOwS/UJ6tr/6QRpn+LwLpZvEL6vRjW0VGkiBf5NmebL u4rdE8Jb2+GyAfZLWrErFGRRtoFuIC5Tstw2J/rshWjZETRFp1qM3wwqM AJxWdwPX6kkbIxEdLpsas3pcv/qjLPI9RIa7cGnjS7FQM3X0ZKghW9GFL 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AYAQDk2UZY/4wNJK1eGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgysOAQEBAQEfWoEGB41Alw2UfoIHHguFL0oCgiA/FAECAQEBAQE?= =?us-ascii?q?BAWIohGgBAQEDAQEBODQLBQsCAQgYHhAnCyUCBA4FiGcIDqtQi0MBAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEXBYY+gX0IglaESIMxgjAFlHyFagGGS4pMgXOEfYNFhgq?= =?us-ascii?q?OA4QNAR83gRkjDgEBhSJyiAGBDQEBAQ?=
X-IronPort-AV: E=Sophos;i="5.33,310,1477958400"; d="scan'208";a="357276530"
Received: from alln-core-7.cisco.com ([173.36.13.140]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 06 Dec 2016 15:33:13 +0000
Received: from XCH-RTP-006.cisco.com (xch-rtp-006.cisco.com [64.101.220.146]) by alln-core-7.cisco.com (8.14.5/8.14.5) with ESMTP id uB6FXDag024852 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 6 Dec 2016 15:33:13 GMT
Received: from xch-rtp-010.cisco.com (64.101.220.150) by XCH-RTP-006.cisco.com (64.101.220.146) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Tue, 6 Dec 2016 10:33:12 -0500
Received: from xch-rtp-010.cisco.com ([64.101.220.150]) by XCH-RTP-010.cisco.com ([64.101.220.150]) with mapi id 15.00.1210.000; Tue, 6 Dec 2016 10:33:12 -0500
From: "Stefano Previdi (sprevidi)" <sprevidi@cisco.com>
To: Martin Vigoureux <martin.vigoureux@nokia.com>
Thread-Topic: [spring] WG LC for draft-ietf-spring-ipv6-use-cases
Thread-Index: AQHST8bVWUkm/5JEYkiRrXVdYsDf2KD7YF8A
Date: Tue, 6 Dec 2016 15:33:12 +0000
Message-ID: <4444E8E6-F4D4-4A61-9436-099F202709E1@cisco.com>
References: <ef5cdba1-030e-16b8-d485-3ab3e4bacd38@nokia.com>
In-Reply-To: <ef5cdba1-030e-16b8-d485-3ab3e4bacd38@nokia.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.61.194.198]
Content-Type: text/plain; charset="us-ascii"
Content-ID: <DE959A97D92A7E48B866D1BB0E1A5B71@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/8FTsPN-LUbBFOgU22kVQYLiWnaU>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] WG LC for draft-ietf-spring-ipv6-use-cases
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Dec 2016 15:33:18 -0000

I support this draft.

s.


> On Dec 6, 2016, at 2:39 PM, Martin Vigoureux <martin.vigoureux@nokia.com>=
 wrote:
>=20
> Hello WG,
>=20
> this e-mail initiates a two-week WG LC for draft-ietf-spring-ipv6-use-cas=
es [1].
>=20
> All the authors have already replied to the IPR poll.
> There is no known IPR.
>=20
> Please read the latest version of the document and state whether or not y=
ou support the submission of this document to the IESG with the objective t=
o become an Informational RFC.
>=20
> Please also express the comments you would have on this latest version.
>=20
> Your involvement in this step is very important so please take the time t=
o read and express your opinions on the list.
>=20
> Thank you
>=20
> M&B
>=20
> [1] https://datatracker.ietf.org/doc/draft-ietf-spring-ipv6-use-cases/
>=20
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring


From nobody Wed Dec  7 02:12:31 2016
Return-Path: <John_Leddy@comcast.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 73E9C129AFC for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 12:08:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.797
X-Spam-Level: 
X-Spam-Status: No, score=-4.797 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-2.896, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qwTPbsb835IJ for <spring@ietfa.amsl.com>; Tue,  6 Dec 2016 12:08:53 -0800 (PST)
Received: from vaadcmhout01.cable.comcast.com (vaadcmhout01.cable.comcast.com [96.114.28.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 86425129A7E for <spring@ietf.org>; Tue,  6 Dec 2016 12:08:53 -0800 (PST)
X-AuditID: 60721c4b-20bff700000045be-59-58471ad0c037
Received: from VAADCEX43.cable.comcast.com (vaadcmhoutvip.cable.comcast.com [96.115.73.56]) (using TLS with cipher AES256-SHA256 (256/256 bits)) (Client did not present a certificate) by  (SMTP Gateway) with SMTP id 33.1B.17854.0DA17485; Tue,  6 Dec 2016 15:08:50 -0500 (EST)
Received: from VAADCEX41.cable.comcast.com (147.191.103.218) by VAADCEX43.cable.comcast.com (147.191.103.220) with Microsoft SMTP Server (TLS) id 15.0.1130.7; Tue, 6 Dec 2016 15:08:47 -0500
Received: from VAADCEX41.cable.comcast.com ([fe80::3aea:a7ff:fe12:e268]) by VAADCEX41.cable.comcast.com ([fe80::3aea:a7ff:fe12:e268%19]) with mapi id 15.00.1130.005; Tue, 6 Dec 2016 15:08:47 -0500
From: "Leddy, John" <John_Leddy@comcast.com>
To: "spring@ietf.org" <spring@ietf.org>
Thread-Topic: [spring] WG LC for draft-ietf-spring-ipv6-use-cases
Thread-Index: AQHST/yNWUkm/5JEYkiRrXVdYsDf2A==
Date: Tue, 6 Dec 2016 20:08:47 +0000
Message-ID: <1F5E34FF-8060-44A7-9121-9C8B9BDB8E70@cable.comcast.com>
References: <ef5cdba1-030e-16b8-d485-3ab3e4bacd38@nokia.com> <4444E8E6-F4D4-4A61-9436-099F202709E1@cisco.com>
In-Reply-To: <4444E8E6-F4D4-4A61-9436-099F202709E1@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/f.1c.1.161117
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [68.87.29.11]
Content-Type: text/plain; charset="utf-8"
Content-ID: <1FB18F316566804F95696AD279B22A7E@cable.comcast.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Forward
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrPIsWRmVeSWpSXmKPExsWSUOxpoXtJyj3C4NE6LYt5z9tZLNbvfsRk cfzCb0YHZo8pvzeyeixZ8pPJ4+6tS0wBzFFcNimpOZllqUX6dglcGcuXvGUquMJdse7VQaYG xjXcXYycHBICJhKPHh5iA7GFBGYySSy8GdfFyAVkH2SUWL/9HjOEc4JRYu7N1awgVWwCOhIz pl0Dsjk4RATUJZ4dDQcxmQXSJOafUQCpEBZwkLi06z4jiC0i4CjxofUvO4StJ7Fx2TcmEJtF QEWitf8+mM0r4CJx/cZHRogb8iUudbaA3cMpYCvx9/05ZhCbUUBM4vupNWD1zALiEreezGeC uF9AYsme88wQtqjEy8f/wK4UBdq1+0cXK0RcR+Ls9SeMELaBxNal+1hATpYQkJf4OJcJ4npN ifW79CGmO0hcb9/PCGErSkzpfsgOcaWgxMmZT1ggpohLHD6yg3UCo/QsJAfNQpg0C8mkWUgm zUIyaQEj6ypGubLExJTk3Iz80hIDQ73kxKScVL3k/NzkxOISEL2JERTtRTLeOxjX/XQ/xCjA wajEw9vM6R4hxJpYVlyZe4hRgoNZSYR3hiRQiDclsbIqtSg/vqg0J7X4EKM0B4uSOO/Wm5oR QgLpiSWp2ampBalFMFkmDk6pBsb5zwV5pLS69e+4262Jv7n6w7W+LYe/29iKS//xvNPyy+yb da4is/zkUFWDZ5KzpizybPH46a7nc/EhT0v+M7tdFfdO8Xq95X59umnj7MYjDC+3/znxuK4p wtVI1D7fedfD11r5tkaZGfJvBScKvLdz126bdDBUIvHZ7KlvzkpOvGCtZC2ueVKJpTgj0VCL uag4EQDbKO+08gIAAA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/fuzFRsCd-pXDZXC3Pen9U3bi24Y>
X-Mailman-Approved-At: Wed, 07 Dec 2016 02:12:30 -0800
Cc: Martin Vigoureux <martin.vigoureux@nokia.com>, "Stefano Previdi \(sprevidi\)" <sprevidi@cisco.com>
Subject: Re: [spring] WG LC for draft-ietf-spring-ipv6-use-cases
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 06 Dec 2016 20:08:55 -0000

SSBzdXBwb3J0IHRoZSBEcmFmdC4NCg0KSm9obiBMZWRkeQ0KQ29tY2FzdA0KDQoNCiAgICA+IE9u
IERlYyA2LCAyMDE2LCBhdCAyOjM5IFBNLCBNYXJ0aW4gVmlnb3VyZXV4IDxtYXJ0aW4udmlnb3Vy
ZXV4QG5va2lhLmNvbT4gd3JvdGU6DQogICAgPiANCiAgICA+IEhlbGxvIFdHLA0KICAgID4gDQog
ICAgPiB0aGlzIGUtbWFpbCBpbml0aWF0ZXMgYSB0d28td2VlayBXRyBMQyBmb3IgZHJhZnQtaWV0
Zi1zcHJpbmctaXB2Ni11c2UtY2FzZXMgWzFdLg0KICAgID4gDQogICAgPiBBbGwgdGhlIGF1dGhv
cnMgaGF2ZSBhbHJlYWR5IHJlcGxpZWQgdG8gdGhlIElQUiBwb2xsLg0KICAgID4gVGhlcmUgaXMg
bm8ga25vd24gSVBSLg0KICAgID4gDQogICAgPiBQbGVhc2UgcmVhZCB0aGUgbGF0ZXN0IHZlcnNp
b24gb2YgdGhlIGRvY3VtZW50IGFuZCBzdGF0ZSB3aGV0aGVyIG9yIG5vdCB5b3Ugc3VwcG9ydCB0
aGUgc3VibWlzc2lvbiBvZiB0aGlzIGRvY3VtZW50IHRvIHRoZSBJRVNHIHdpdGggdGhlIG9iamVj
dGl2ZSB0byBiZWNvbWUgYW4gSW5mb3JtYXRpb25hbCBSRkMuDQogICAgPiANCiAgICA+IFBsZWFz
ZSBhbHNvIGV4cHJlc3MgdGhlIGNvbW1lbnRzIHlvdSB3b3VsZCBoYXZlIG9uIHRoaXMgbGF0ZXN0
IHZlcnNpb24uDQogICAgPiANCiAgICA+IFlvdXIgaW52b2x2ZW1lbnQgaW4gdGhpcyBzdGVwIGlz
IHZlcnkgaW1wb3J0YW50IHNvIHBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgYW5kIGV4cHJl
c3MgeW91ciBvcGluaW9ucyBvbiB0aGUgbGlzdC4NCiAgICA+IA0KICAgID4gVGhhbmsgeW91DQog
ICAgPiANCiAgICA+IE0mQg0KICAgID4gDQogICAgPiBbMV0gaHR0cHM6Ly9kYXRhdHJhY2tlci5p
ZXRmLm9yZy9kb2MvZHJhZnQtaWV0Zi1zcHJpbmctaXB2Ni11c2UtY2FzZXMvDQogICAgPiANCiAg
ICA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQogICAg
PiBzcHJpbmcgbWFpbGluZyBsaXN0DQogICAgPiBzcHJpbmdAaWV0Zi5vcmcNCiAgICA+IGh0dHBz
Oi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vc3ByaW5nDQogICAgDQogICAgDQogICAg
DQoNCg==


From nobody Wed Dec  7 05:37:24 2016
Return-Path: <maho@lab.dtag.de>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D8D0012944F for <spring@ietfa.amsl.com>; Wed,  7 Dec 2016 05:37:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.107
X-Spam-Level: 
X-Spam-Status: No, score=-1.107 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RDNS_NONE=0.793] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pgJL5gwlhc5l for <spring@ietfa.amsl.com>; Wed,  7 Dec 2016 05:37:20 -0800 (PST)
Received: from owl2.lab.dtag.de (unknown [194.25.1.238]) by ietfa.amsl.com (Postfix) with ESMTP id D324C129441 for <spring@ietf.org>; Wed,  7 Dec 2016 05:37:19 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by owl2.lab.dtag.de (Postfix) with ESMTP id 6F2BAC68F4; Wed,  7 Dec 2016 14:37:16 +0100 (CET)
Received: from owl2.lab.dtag.de ([127.0.0.1]) by localhost (owl2.lab.dtag.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AAm6C+g0uDIG; Wed,  7 Dec 2016 14:37:16 +0100 (CET)
Received: from localhost (localhost [127.0.0.1]) by owl2.lab.dtag.de (Postfix) with ESMTP id 4DA70C7133; Wed,  7 Dec 2016 14:37:16 +0100 (CET)
Received: from dhcp-128.intranet (p5DD92620.dip0.t-ipconnect.de [93.217.38.32]) by owl2.lab.dtag.de (Postfix) with ESMTPSA id 0784CC68F4; Wed,  7 Dec 2016 14:37:15 +0100 (CET)
To: Martin Vigoureux <martin.vigoureux@nokia.com>, spring@ietf.org
References: <d97bccbd-cb8f-0364-ddd7-7922aba242af@nokia.com>
From: Martin Horneffer <maho@lab.dtag.de>
Message-ID: <5a0fae80-7059-bea2-ea3e-0eec2e47b588@lab.dtag.de>
Date: Wed, 7 Dec 2016 14:37:15 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
MIME-Version: 1.0
In-Reply-To: <d97bccbd-cb8f-0364-ddd7-7922aba242af@nokia.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/olD2NwTTztDWyBBhfKX1QSVs3iY>
Subject: Re: [spring] WG LC for draft-ietf-spring-segment-routing
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Dec 2016 13:37:22 -0000

As a contributor, and from an operator's point of view I support this 
document.

Martin

Am 28.11.16 um 10:37 schrieb Martin Vigoureux:
>
> Hello WG,
>
> this e-mail initiates a two-week WG LC for 
> draft-ietf-spring-segment-routing [1].
>
> All authors have already replied to the IPR poll.
> There is known IPR [2] on this document.
>
> Please read the latest version of the document and state whether or 
> not you support the submission of this document to the IESG as a 
> Proposed Standard.
>
> Please also express the comments you would have on this latest version.
>
> Your involvement in this step is very important so please take the 
> time to read and express your opinions on the list.
>
> Thank you
>
> M&B
>
> [1] https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing/
> [2] 
> https://datatracker.ietf.org/ipr/search/?submit=draft&id=draft-ietf-spring-segment-routing
>
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring
>


From nobody Wed Dec  7 05:37:47 2016
Return-Path: <maho@nic.dtag.de>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5A04712944F for <spring@ietfa.amsl.com>; Wed,  7 Dec 2016 05:37:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.107
X-Spam-Level: 
X-Spam-Status: No, score=-1.107 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RDNS_NONE=0.793] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id G_nklDdhVz4k for <spring@ietfa.amsl.com>; Wed,  7 Dec 2016 05:37:42 -0800 (PST)
Received: from owl2.lab.dtag.de (unknown [194.25.1.238]) by ietfa.amsl.com (Postfix) with ESMTP id 7B43C129446 for <spring@ietf.org>; Wed,  7 Dec 2016 05:37:42 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by owl2.lab.dtag.de (Postfix) with ESMTP id EE6B5C7133; Wed,  7 Dec 2016 14:37:41 +0100 (CET)
Received: from owl2.lab.dtag.de ([127.0.0.1]) by localhost (owl2.lab.dtag.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hU7vlxznt52P; Wed,  7 Dec 2016 14:37:41 +0100 (CET)
Received: from localhost (localhost [127.0.0.1]) by owl2.lab.dtag.de (Postfix) with ESMTP id D4037C7424; Wed,  7 Dec 2016 14:37:41 +0100 (CET)
Received: from dhcp-128.intranet (p5DD92620.dip0.t-ipconnect.de [93.217.38.32]) by owl2.lab.dtag.de (Postfix) with ESMTPSA id 9CE6BC7133; Wed,  7 Dec 2016 14:37:41 +0100 (CET)
From: Martin Horneffer <maho@nic.dtag.de>
To: Martin Vigoureux <martin.vigoureux@nokia.com>, spring@ietf.org
References: <d97bccbd-cb8f-0364-ddd7-7922aba242af@nokia.com>
Message-ID: <92a4a077-8948-8706-740d-67a76c62a4a5@nic.dtag.de>
Date: Wed, 7 Dec 2016 14:37:41 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
MIME-Version: 1.0
In-Reply-To: <d97bccbd-cb8f-0364-ddd7-7922aba242af@nokia.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/FevOvIUBVtATTM98fQhU4WgxKjw>
Subject: Re: [spring] WG LC for draft-ietf-spring-segment-routing
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Dec 2016 13:37:44 -0000

As a contributor, and from an operator's point of view I support this 
document.

Martin

Am 28.11.16 um 10:37 schrieb Martin Vigoureux:
>
> Hello WG,
>
> this e-mail initiates a two-week WG LC for
> draft-ietf-spring-segment-routing [1].
>
> All authors have already replied to the IPR poll.
> There is known IPR [2] on this document.
>
> Please read the latest version of the document and state whether or
> not you support the submission of this document to the IESG as a
> Proposed Standard.
>
> Please also express the comments you would have on this latest version.
>
> Your involvement in this step is very important so please take the
> time to read and express your opinions on the list.
>
> Thank you
>
> M&B
>
> [1] https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing/
> [2]
> https://datatracker.ietf.org/ipr/search/?submit=draft&id=draft-ietf-spring-segment-routing
>
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring
>


From nobody Wed Dec  7 07:53:32 2016
Return-Path: <internet-drafts@ietf.org>
X-Original-To: spring@ietf.org
Delivered-To: spring@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id EB7EE1294EF; Wed,  7 Dec 2016 07:53:27 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.39.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <148112600795.13610.15882748200329090211.idtracker@ietfa.amsl.com>
Date: Wed, 07 Dec 2016 07:53:27 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/LgwCB-TPTsoYNDLDhHU-JmmX8n0>
Cc: spring@ietf.org
Subject: [spring] I-D Action: draft-filsfils-spring-large-scale-interconnect-05.txt
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Dec 2016 15:53:28 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Source Packet Routing in Networking of the IETF.

        Title           : Interconnecting Millions Of Endpoints With Segment Routing
        Authors         : Clarence Filsfils
                          Dennis Cai
                          Stefano Previdi
                          Wim Henderickx
                          Dave Cooper
                          Tim Laberge
                          Steven Lin
                          Bruno Decraene
                          Luay Jalil
                          Jeff Tantsura
                          Rob Shakir
	Filename        : draft-filsfils-spring-large-scale-interconnect-05.txt
	Pages           : 11
	Date            : 2016-12-07

Abstract:
   This document describes an application of Segment Routing to scale
   the network to support hundreds of thousands of network nodes, and
   tens of millions of physical underlay endpoints.  This use-case can
   be applied to the interconnection of massive-scale DC's and/or large
   aggregation networks.  Forwarding tables of midpoint and leaf nodes
   only require a few tens of thousands of entries.



The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-filsfils-spring-large-scale-interconnect/

There's also a htmlized version available at:
https://tools.ietf.org/html/draft-filsfils-spring-large-scale-interconnect-05

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-filsfils-spring-large-scale-interconnect-05


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Thu Dec  8 05:35:46 2016
Return-Path: <shraddha@juniper.net>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1B4BB12A015 for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 05:35:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.921
X-Spam-Level: 
X-Spam-Status: No, score=-1.921 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=junipernetworks.onmicrosoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id llbKp14mM5AD for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 05:35:41 -0800 (PST)
Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0135.outbound.protection.outlook.com [104.47.32.135]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BA60512A010 for <spring@ietf.org>; Thu,  8 Dec 2016 05:35:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=junipernetworks.onmicrosoft.com; s=selector1-juniper-net; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=UuUzChvEzKzaUy6HFoVPhO2gtLLNq52GEI715woFKYk=; b=TzcLthqm1FdHYGjwA9ZfxU6Uylm3MEYN3G7NjHY8Hm+s0w9GZvgYDsD6s996KjmRcF7v3jEueUrMSgTct7BNhgIf+yNflT8MeBBZNTz40kHkSPro8BIWoj3Cjo17vxatbtlkbTdbdnB346eal6tYa5syi60DGPy3KMjqi46Ef2k=
Received: from BN3PR05MB2706.namprd05.prod.outlook.com (10.167.2.135) by BN3PR05MB2708.namprd05.prod.outlook.com (10.167.2.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.5; Thu, 8 Dec 2016 13:35:39 +0000
Received: from BN3PR05MB2706.namprd05.prod.outlook.com ([10.167.2.135]) by BN3PR05MB2706.namprd05.prod.outlook.com ([10.167.2.135]) with mapi id 15.01.0771.009; Thu, 8 Dec 2016 13:35:38 +0000
From: Shraddha Hegde <shraddha@juniper.net>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AQHSTosrXQxpQCJn2U+krU3/nbr9WaD+DnsA
Date: Thu, 8 Dec 2016 13:35:38 +0000
Message-ID: <BN3PR05MB270658A88940710E82CE14F3D5840@BN3PR05MB2706.namprd05.prod.outlook.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com>
In-Reply-To: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=shraddha@juniper.net; 
x-originating-ip: [116.197.184.10]
x-ms-office365-filtering-correlation-id: e4031a40-e95c-48c1-dafb-08d41f6f191d
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BN3PR05MB2708;
x-microsoft-exchange-diagnostics: 1; BN3PR05MB2708; 7:dB0fLxVgfxrxMSLMAAcIxrL/w410vxsDBs17PrQUGkrnIstEhTnGJc4nypc9Drz9zID+Zkd6EnVRCpFv7CWla9yoZxv0uPrO8rNduaCTi87wBZ6uKy5P2wb2AoV0aTQVmc/PSi9Y462jbXCSI51W1D7gaQMucQbZvyCeiOHbxoCFV8RIH48Bra3FgoRrUfxAnIv2WonK7Lk0AihRiMWapZF9yrE8FKMdlUOcHzJNuiJS+gjzTL4A29aUr6zvAlQo2j1f/ZzKHIaGS6H+KNPYjupl8nvd/9CdWgE24KK2MQPN2YFFwMnHS5SeN7MsKsqvKxUORQ2VyDAYl0R4MaUCHnqAcpoQ83ndxG670bnXKzQ8tFgTLmXm2OkjovlLUmYgNHnTcKIkU+Bpb94eay+znKyInC5nzG5jcRLNvFHyrignNZHC5YenKzr5rV3rXiWmaPuPdm9tigA3Qmn6HfLBhQ==
x-microsoft-antispam-prvs: <BN3PR05MB27083E5A4543E3BA569202D9D5840@BN3PR05MB2708.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(95692535739014)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(6072148); SRVR:BN3PR05MB2708; BCL:0; PCL:0; RULEID:; SRVR:BN3PR05MB2708; 
x-forefront-prvs: 0150F3F97D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(7916002)(39450400003)(39850400002)(39410400002)(39840400002)(39860400002)(189002)(199003)(377454003)(66066001)(76576001)(68736007)(9326002)(7696004)(7846002)(7736002)(77096006)(5001770100001)(229853002)(38730400001)(92566002)(19609705001)(2501003)(9686002)(97736004)(86362001)(6506006)(74316002)(106116001)(106356001)(8936002)(99286002)(2906002)(105586002)(81166006)(81156014)(107886002)(50986999)(790700001)(8676002)(189998001)(561944003)(33656002)(54356999)(76176999)(101416001)(2950100002)(122556002)(3280700002)(5660300001)(3660700001)(2900100001)(3846002)(102836003)(6116002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR05MB2708; H:BN3PR05MB2706.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BN3PR05MB270658A88940710E82CE14F3D5840BN3PR05MB2706namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2016 13:35:38.8900 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR05MB2708
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/wy8IDsdm2kZyCMeHzxFsi9TRBKc>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 08 Dec 2016 13:35:44 -0000

--_000_BN3PR05MB270658A88940710E82CE14F3D5840BN3PR05MB2706namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Les,

The newer approach describes the conflict resolution for the SRMS entries.
How is the conflict resolved across individual prefix advertisements and SR=
MS advertisements?

It is useful to assign a default preference (best possible preference)to in=
dividual prefix-sid advertisements while resolving the
Conflicts such that individual advertisements always wins.

Rgds
shraddha

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Monday, December 5, 2016 5:34 AM
To: spring@ietf.org
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









--_000_BN3PR05MB270658A88940710E82CE14F3D5840BN3PR05MB2706namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri",sans-serif;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Hi Les,<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">The newer approach des=
cribes the conflict resolution for the SRMS entries.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">How is the conflict re=
solved across individual prefix advertisements and SRMS advertisements?<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">It is useful to assign=
 a default preference (best possible preference)to individual prefix-sid ad=
vertisements while resolving the<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Conflicts such that in=
dividual advertisements always wins.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Rgds<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">shraddha<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Les Ginsberg (ginsberg) [mailto:ginsber=
g@cisco.com]
<br>
<b>Sent:</b> Monday, December 5, 2016 5:34 AM<br>
<b>To:</b> spring@ietf.org<br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_BN3PR05MB270658A88940710E82CE14F3D5840BN3PR05MB2706namp_--


From nobody Thu Dec  8 06:03:45 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A88AE129482 for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 06:03:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.417
X-Spam-Level: 
X-Spam-Status: No, score=-17.417 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3e2hFyYDGZq6 for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 06:03:39 -0800 (PST)
Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5B1BD129471 for <spring@ietf.org>; Thu,  8 Dec 2016 06:03:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=24080; q=dns/txt; s=iport; t=1481205819; x=1482415419; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=mE3sevl4EFhZx11Xqc0kyKT2k975EclI685I02nJV+8=; b=DMR0CflFd24t9vsX+rrHRhogl8/pThOohS7gEVjTjLO2sce/IVtwYQBu Jy6PiaebkfFTzneUPe87AfXq3UDeGeCXY7PAwEzPSDBBSEjVrD+y0YNwp Fr5dCPFVKMpYO/GoC3Lpdi7xnEtGCwTtqVbeMs1d4JYJGveBFdbKL00a0 Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AVAQBOZ0lY/4sNJK1dGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnNEAQEBAQEfWoEGB41DlxKVAYIIKYV4AoFxPxQBAgEBAQEBAQF?= =?us-ascii?q?iKIRoAQEBBC1cAgEIEQQBASEHBzIUCQgBAQQBEggTiFAOqliLPQEBAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBARgFhj6EW4R+hSsFlH+FawGRFZBKjgiEDQEfN0lQg10cgV1?= =?us-ascii?q?yAYckgQ0BAQE?=
X-IronPort-AV: E=Sophos;i="5.33,319,1477958400";  d="scan'208,217";a="356776093"
Received: from alln-core-6.cisco.com ([173.36.13.139]) by alln-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 08 Dec 2016 14:03:37 +0000
Received: from XCH-RCD-003.cisco.com (xch-rcd-003.cisco.com [173.37.102.13]) by alln-core-6.cisco.com (8.14.5/8.14.5) with ESMTP id uB8E3bjv022650 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 8 Dec 2016 14:03:37 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-RCD-003.cisco.com (173.37.102.13) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 8 Dec 2016 08:03:37 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Thu, 8 Dec 2016 08:03:37 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: Shraddha Hegde <shraddha@juniper.net>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAImYAAAu+LsA=
Date: Thu, 8 Dec 2016 14:03:37 +0000
Message-ID: <6069af8cbc1d451984ba7476e9722f4e@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <BN3PR05MB270658A88940710E82CE14F3D5840@BN3PR05MB2706.namprd05.prod.outlook.com>
In-Reply-To: <BN3PR05MB270658A88940710E82CE14F3D5840@BN3PR05MB2706.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.119.150]
Content-Type: multipart/alternative; boundary="_000_6069af8cbc1d451984ba7476e9722f4eXCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/5WovE8ctAJW9Z4Mqc6ORl6DK01k>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 08 Dec 2016 14:03:44 -0000

--_000_6069af8cbc1d451984ba7476e9722f4eXCHALN001ciscocom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Shraddha -

Current version of the draft (https://www.ietf.org/id/draft-ietf-spring-con=
flict-resolution-02.txt ) states in Section 3,1

"Advertisement of a preference value is optional.  Nodes which do not
   advertise a preference value are assigned a preference value of 128.

All SIDs advertised in prefix reachability advertisements implicitly
   have a preference value of 192."

So the default behavior is that SIDs in prefix reachability advertisements =
are preferred over SRMS entries.

The proposal below makes no changes to that.

   Les


From: Shraddha Hegde [mailto:shraddha@juniper.net]
Sent: Thursday, December 08, 2016 5:36 AM
To: Les Ginsberg (ginsberg); spring@ietf.org
Subject: RE: [spring] SID Conflict Resolution: A Simpler Proposal

Hi Les,

The newer approach describes the conflict resolution for the SRMS entries.
How is the conflict resolved across individual prefix advertisements and SR=
MS advertisements?

It is useful to assign a default preference (best possible preference)to in=
dividual prefix-sid advertisements while resolving the
Conflicts such that individual advertisements always wins.

Rgds
shraddha

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Monday, December 5, 2016 5:34 AM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









--_000_6069af8cbc1d451984ba7476e9722f4eXCHALN001ciscocom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
span.EmailStyle20
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Shraddha &#8211;<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Current version of the=
 draft (<a href=3D"https://www.ietf.org/id/draft-ietf-spring-conflict-resol=
ution-02.txt">https://www.ietf.org/id/draft-ietf-spring-conflict-resolution=
-02.txt</a> ) states in Section 3,1<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><i><span style=3D"color:#1F497D">&#8220;Advertisemen=
t of a preference value is optional.&nbsp; Nodes which do not<o:p></o:p></s=
pan></i></p>
<p class=3D"MsoNormal"><i><span style=3D"color:#1F497D">&nbsp;&nbsp; advert=
ise a preference value are assigned a preference value of 128.
<o:p></o:p></span></i></p>
<p class=3D"MsoNormal"><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></i></p>
<p class=3D"MsoNormal"><i><span style=3D"color:#1F497D">All SIDs advertised=
 in prefix reachability advertisements implicitly<o:p></o:p></span></i></p>
<p class=3D"MsoNormal"><i><span style=3D"color:#1F497D">&nbsp;&nbsp; have a=
 preference value of 192.&#8221;<o:p></o:p></span></i></p>
<p class=3D"MsoNormal"><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></i></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">So the default behavio=
r is that SIDs in prefix reachability advertisements are preferred over SRM=
S entries.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">The proposal below mak=
es no changes to that.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp; Les<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Shraddha=
 Hegde [mailto:shraddha@juniper.net]
<br>
<b>Sent:</b> Thursday, December 08, 2016 5:36 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); spring@ietf.org<br>
<b>Subject:</b> RE: [spring] SID Conflict Resolution: A Simpler Proposal<o:=
p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Hi Les,<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">The newer approach des=
cribes the conflict resolution for the SRMS entries.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">How is the conflict re=
solved across individual prefix advertisements and SRMS advertisements?<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">It is useful to assign=
 a default preference (best possible preference)to individual prefix-sid ad=
vertisements while resolving the<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Conflicts such that in=
dividual advertisements always wins.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Rgds<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">shraddha<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Les Ginsberg (ginsberg) [<a href=3D"mai=
lto:ginsberg@cisco.com">mailto:ginsberg@cisco.com</a>]
<br>
<b>Sent:</b> Monday, December 5, 2016 5:34 AM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</div>
</body>
</html>

--_000_6069af8cbc1d451984ba7476e9722f4eXCHALN001ciscocom_--


From nobody Thu Dec  8 07:00:35 2016
Return-Path: <bruno.decraene@orange.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 62DC71294B1 for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 07:00:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.815
X-Spam-Level: 
X-Spam-Status: No, score=-4.815 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0GpbThOh-Ks0 for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 07:00:32 -0800 (PST)
Received: from relais-inet.orange.com (mta241.mail.business.static.orange.com [80.12.66.41]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C22761294C4 for <spring@ietf.org>; Thu,  8 Dec 2016 07:00:32 -0800 (PST)
Received: from opfedar02.francetelecom.fr (unknown [xx.xx.xx.4]) by opfedar27.francetelecom.fr (ESMTP service) with ESMTP id 3AA8C60296 for <spring@ietf.org>; Thu,  8 Dec 2016 16:00:31 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.61]) by opfedar02.francetelecom.fr (ESMTP service) with ESMTP id 24E44180066 for <spring@ietf.org>; Thu,  8 Dec 2016 16:00:31 +0100 (CET)
Received: from OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06]) by OPEXCLILM7E.corporate.adroot.infra.ftgroup ([fe80::b91c:ea2c:ac8a:7462%19]) with mapi id 14.03.0319.002; Thu, 8 Dec 2016 16:00:31 +0100
From: <bruno.decraene@orange.com>
To: "spring@ietf.org" <spring@ietf.org>
Thread-Topic: IETF 97 minutes updated
Thread-Index: AdJRYsyRDeAmF6GPTeKq3R988XWTvw==
Date: Thu, 8 Dec 2016 15:00:30 +0000
Message-ID: <18058_1481209231_5849758F_18058_14737_1_53C29892C857584299CBF5D05346208A1ECBDCF6@OPEXCLILM21.corporate.adroot.infra.ftgroup>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.168.234.5]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/ebwTLifFhBuLJZwYX9EjIZMHLqo>
Subject: [spring] IETF 97 minutes updated
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 08 Dec 2016 15:00:34 -0000

Hi all,

I have just updated the minutes=20
https://www.ietf.org/proceedings/97/minutes/minutes-97-spring-01

Changes are editorial only. I mostly added the Meetecho URL link for each p=
resentation and discussion slot. This allows for a fast reference to each d=
iscussion/presentation.
As a reminder, in addition to following the URL, the Meetecho GUI requires =
to click on the "Play" button, in order to start the playback (blue/triangl=
e button at the bottom left). IOW, the video will not play automatically.

--Bruno


___________________________________________________________________________=
______________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.


From nobody Thu Dec  8 09:04:58 2016
Return-Path: <cfilsfil@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 45211129F60 for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 09:04:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.519
X-Spam-Level: 
X-Spam-Status: No, score=-15.519 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3JdUd0X7AxY2 for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 09:04:54 -0800 (PST)
Received: from aer-iport-1.cisco.com (aer-iport-1.cisco.com [173.38.203.51]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C35F2129FB3 for <spring@ietf.org>; Thu,  8 Dec 2016 09:04:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=115; q=dns/txt; s=iport; t=1481216663; x=1482426263; h=to:from:subject:message-id:date:mime-version: content-transfer-encoding; bh=HeEdy72WiDcvd4Aysp44Z/Hzg8CX+KEi3c+N8HZmqHI=; b=ltFS/aGOJ/XqGMHyc7WbV0Rybl2uikyku1RJ78KlH+HDw5thIXAt1hnL G96pubJBpwGFdNJ8YrsxCuibMJBqJPYFjDaldwHbYkR5cIogBEwFJyO7Z 1s26KoDVcgaGwF6KxBJFVBkfoaNmXHYnTDwJSMRx4i1my29VulNuUWpzd c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BKBADykUlY/xbLJq1dGgEBAQECAQEBA?= =?us-ascii?q?QgBAQEBgzcBAQEBAb1liFwRAQIBAQEBAQEBYihCEoQ+FUAcGgIFFgsCCwMCAQI?= =?us-ascii?q?BWAgBAYhnl0GPfoIUFYsuMoELhTOEW4UUgjiCXQEEmmqRH4FcAYg3hi2KJYdxN?= =?us-ascii?q?SGBGYVXPYRAhCYBAQE?=
X-IronPort-AV: E=Sophos;i="5.33,320,1477958400"; d="scan'208";a="690305747"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Dec 2016 17:04:18 +0000
Received: from [10.60.210.99] (ams-cfilsfil-8812.cisco.com [10.60.210.99]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id uB8H4HhA008784 for <spring@ietf.org>; Thu, 8 Dec 2016 17:04:18 GMT
To: spring@ietf.org
From: Clarence Filsfils <cfilsfil@cisco.com>
Message-ID: <58499291.2030602@cisco.com>
Date: Thu, 8 Dec 2016 18:04:17 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/uCZaShyXeWGeu0-frdkWGhmts04>
Subject: Re: [spring] WG LC for draft-ietf-spring-segment-routing
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 08 Dec 2016 17:04:56 -0000

As co-author, I do support the submission of
this draft to the IESG as a Proposed Standard.

Cheers,
Clarence


From nobody Thu Dec  8 09:59:31 2016
Return-Path: <jefftant.ietf@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 41E421295F0 for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 09:59:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LcFWTQZVbZMV for <spring@ietfa.amsl.com>; Thu,  8 Dec 2016 09:59:28 -0800 (PST)
Received: from mail-pf0-x242.google.com (mail-pf0-x242.google.com [IPv6:2607:f8b0:400e:c00::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 62FCF1296C9 for <spring@ietf.org>; Thu,  8 Dec 2016 09:59:25 -0800 (PST)
Received: by mail-pf0-x242.google.com with SMTP id c4so22659851pfb.3 for <spring@ietf.org>; Thu, 08 Dec 2016 09:59:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=user-agent:date:subject:from:to:message-id:thread-topic:references :in-reply-to:mime-version:content-transfer-encoding; bh=FgErHxqEQhstlxRZSZRc06PVJsMMhnpe6Ry1up/ACNw=; b=e5iItTxVejFdCsVxiSvurgC6d3aDMromN/hmjf6ydd/vLYIceybQ8ptI/kQ6VQL02+ jTvjUJCpMkxmmB1vmrBzvlMiLqXjY3f6Ct8amYGCLzK6cGqP8VQPG3XVfm67LVm/o8Ks g25KKBkWpKeVEhe8VWwnAQOxr9I38Nn8bqIObVXj5PGIQ9b+gZu38cQ5faJWviqVtHBS qqGo83cm8CxqvHDgquo9EU3EosQ7YqGfl9e2UiHr2hDuwy+yfQjWc6YKKA4eblgsH03I /RF+j9ubZvq/UMOYbmAULV7v3Y5kgpMWaf2iQxKnXdHhovSCQ2uJk2QWqjhIMUzRYwyf iJaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:user-agent:date:subject:from:to:message-id :thread-topic:references:in-reply-to:mime-version :content-transfer-encoding; bh=FgErHxqEQhstlxRZSZRc06PVJsMMhnpe6Ry1up/ACNw=; b=cZV3/iC+Hs+TDahbl69+r8QCCsoT5WLoNKZKZjgFy8PqmeEHACmhT0WamoH5TR09eA 9LSwpYn83R+vtMhRLZBpfLhIi86c+iTSkhUk5e8qaznsr9GC7DdZJXuiN9PToCUbC5Ec aySYbM/mV4bAj0pRKzDcD6jpB5NuCd2kssrSZ2Prez5BaPxZHbD2G6JdK43MF5TAkecz V2zGvLWcO3oCg3R31/fo79BgATYBr151CGi+RTG9ERHWusDts+pPzaGqAwb9Et/rkvLj T7wiy15xnspPnasR0XYv6XtGg1oYF1Id+EBU7TdeVUMnYw+2G8boye230aKiGdKgbMY0 zQBA==
X-Gm-Message-State: AKaTC00xlxdIbZkwEjJQl/IR3mR26ejl3ndmC3/6tkmoha3sWdZL4DV4FJs44J7dHcHoKg==
X-Received: by 10.99.150.10 with SMTP id c10mr65587641pge.121.1481219965006; Thu, 08 Dec 2016 09:59:25 -0800 (PST)
Received: from [10.15.176.210] ([38.142.8.210]) by smtp.gmail.com with ESMTPSA id g63sm51680268pfd.60.2016.12.08.09.59.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Dec 2016 09:59:24 -0800 (PST)
User-Agent: Microsoft-MacOutlook/f.1c.1.161117
Date: Thu, 08 Dec 2016 09:59:32 -0800
From: Jeff Tantsura <jefftant.ietf@gmail.com>
To: Martin Vigoureux <martin.vigoureux@nokia.com>, <spring@ietf.org>
Message-ID: <06EA2E28-778E-43DB-A8D3-D5E432E61A13@gmail.com>
Thread-Topic: [spring] WG LC for draft-ietf-spring-segment-routing
References: <d97bccbd-cb8f-0364-ddd7-7922aba242af@nokia.com>
In-Reply-To: <d97bccbd-cb8f-0364-ddd7-7922aba242af@nokia.com>
Mime-version: 1.0
Content-type: text/plain; charset="UTF-8"
Content-transfer-encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/TNVDbkOM0Maj_rT263v888uv4Fw>
Subject: Re: [spring] WG LC for draft-ietf-spring-segment-routing
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 08 Dec 2016 17:59:30 -0000

As contributor I support the submission of this document to the IESG as a Proposed Standard.

Cheers,
Jeff
 

On 11/28/16, 01:37, "spring on behalf of Martin Vigoureux" <spring-bounces@ietf.org on behalf of martin.vigoureux@nokia.com> wrote:

    Hello WG,
    
    this e-mail initiates a two-week WG LC for 
    draft-ietf-spring-segment-routing [1].
    
    All authors have already replied to the IPR poll.
    There is known IPR [2] on this document.
    
    Please read the latest version of the document and state whether or not 
    you support the submission of this document to the IESG as a Proposed 
    Standard.
    
    Please also express the comments you would have on this latest version.
    
    Your involvement in this step is very important so please take the time 
    to read and express your opinions on the list.
    
    Thank you
    
    M&B
    
    [1] https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing/
    [2] 
    https://datatracker.ietf.org/ipr/search/?submit=draft&id=draft-ietf-spring-segment-routing
    
    _______________________________________________
    spring mailing list
    spring@ietf.org
    https://www.ietf.org/mailman/listinfo/spring
    



From nobody Fri Dec  9 01:17:00 2016
Return-Path: <bruno.decraene@orange.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2F56212A2C2; Fri,  9 Dec 2016 01:16:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.515
X-Spam-Level: 
X-Spam-Status: No, score=-5.515 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qWAqe-ZGONGZ; Fri,  9 Dec 2016 01:16:57 -0800 (PST)
Received: from relais-inet.orange.com (mta136.mail.business.static.orange.com [80.12.70.36]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D076812A248; Fri,  9 Dec 2016 01:16:56 -0800 (PST)
Received: from opfednr05.francetelecom.fr (unknown [xx.xx.xx.69]) by opfednr20.francetelecom.fr (ESMTP service) with ESMTP id E488540759; Fri,  9 Dec 2016 10:16:54 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.61]) by opfednr05.francetelecom.fr (ESMTP service) with ESMTP id B5E3A2006B; Fri,  9 Dec 2016 10:16:54 +0100 (CET)
Received: from OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06]) by OPEXCLILM7E.corporate.adroot.infra.ftgroup ([fe80::b91c:ea2c:ac8a:7462%19]) with mapi id 14.03.0319.002; Fri, 9 Dec 2016 10:16:54 +0100
From: <bruno.decraene@orange.com>
To: Stewart Bryant <stewart.bryant@gmail.com>
Thread-Topic: [spring] Conflict resolution - a plea for simplicity
Thread-Index: AQHSTMU8DXxv6q12q0yVqaIcs4EdzqD+L1pA
Date: Fri, 9 Dec 2016 09:16:53 +0000
Message-ID: <6488_1481275014_584A7686_6488_635_1_53C29892C857584299CBF5D05346208A1ECBEC91@OPEXCLILM21.corporate.adroot.infra.ftgroup>
References: <ca931d36-8be4-6578-0b10-91acc8428d0e@gmail.com>
In-Reply-To: <ca931d36-8be4-6578-0b10-91acc8428d0e@gmail.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.168.234.5]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/mfURs8H1gl1wNiGB_ppSKyTHHbQ>
Cc: "draft-ietf-spring-conflict-resolution@ietf.org" <draft-ietf-spring-conflict-resolution@ietf.org>, "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] Conflict resolution - a plea for simplicity
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 09:16:59 -0000

Hi Stewart,

Thanks for your comments.
As an individual contributor, please find some comments inlined. [Bruno]

> From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Stewart Bryant=
  > Sent: Friday, December 02, 2016 6:55 PM
>=20
 > There was some discussion on the conflict resolution draft at IETF97
 > that got cut off with a request to discuss on the list.
 >=20
 > As I understand the situation, we have a misconfiguration in the network,
 > and we are being encouraged to take an essentially aggressive strategy
 > of picking one of the configurations and assuming that must be right
 > in order to continue forwarding traffic. It seems to me that we are
 > tossing a coin here and whilst we could be sending traffic the
 > right way we could also be sending it the wrong way with bad
 > consequences in terms of misdelivery or inducing congestion.

[Bruno]
You are correct that the draft handles a case of network/node misconfigurat=
ion, and that we are mostly tossing a coin to select one of the conflicting=
 entries.
However I'm not seeing cases that would lead to misdelivery, misrouting or =
induced congestion:
- we are facing a case were e.g. one SID have been affected to the two diff=
erent Segment/IP prefix/FEC.
- Those SID are just a number, locally allocated by the Autonomous System. =
Nobody cares much whether a given FEC uses the index 53 or 42. However, wha=
t we do need is that all nodes use the same value for a given FEC. Hence th=
e needs for a determinist rule. This is the purpose of this draft.

If you see such misrouting, could you please elaborate on this? e.g. with a=
n example.

 > The alternative strategy is to note the conflict and not believe either
 > router. This more conservative strategy seems the better approach for
 > a number of reasons:
 >=20
 > 1) Traffic will not be misdelivered, or use unintended parts of the netw=
ork.
=20
[Bruno] IMO that's the case for both strategy. cf 1rst comment.
=20
 > 2) Traffic,  was being routed via SR rather than simple shortest path
 > for a reason and so you should not try to guess the operators decision,
 > you should rigidly execute it.
=20
[Bruno] IMO that's the case for both strategy. cf 1rst comment.
=20
 > 3) It seems to me that the aggressive approach fails 7 of Ross Callons
 > Twelve truths (RFC1925). These were published on 1/April, but the real
 > joke is that they ARE useful truths, so forget about the date. 3,
 > 4, *5*, *6*, 8, probably 10, certainly 12.
=20
[Bruno] They may be useful truths, but they are a bit too general to me. No=
t sure they will really help when discussing trade-off.=20
One may add the robustness principle (RFC 3117, 761), especially since we a=
re not even discussing a protocol error.
=20
 > 4) Finally there is the protocol 101 rule stating that the exception
 > path MUST be simple, because it is rarely executed and thus often
 > hosts most of the bugs.
=20
[Bruno] good point. Thanks.
=20
 > Point 4 is particularly important. What we have in the draft is
 > complex and difficult to test on a live network, and yet it is
 > only there to take action when someone makes a mistake.
 > Exception code like this is usually the Cinderella in the
 > system, rushed in at the end of development and hardly tested.
 >=20
 > It is usually by far the best approach to assert that the
 > misconfiguration should never happen,

[Bruno] In an ideal world, there would be no configuration error and no bug=
. But unfortunately, I'm not living in this world, so this is not a valid h=
ypothesis for me. Hence the need for this document, so that a consistent be=
havior is picked.
(Eventually, in a world with no human (involved), although even God seems t=
o play dice with the universe :-) )

> have a very simple test
 > do detect it and do something very simple by effective when
 > it is detected. Given that routing only works because
 > routers tell the truth, and clearly one or both of the routers
 > has breached that trust, the best approach is to trust neither.
=20
[Bruno] It's not about truth, and we don't care whether a given segment is =
given a value/index of N or M. In case of conflict, we have a set of values=
 advertised, and we need to pick one, deterministically, using a preference=
 or tie-break mechanism.=20
That does not seem very far, to me, from the use case described in our draf=
t https://tools.ietf.org/html/draft-bryant-rtgwg-param-sync-00#section-5 wh=
ere different nodes advertise different value in the IGP and all nodes need=
 to select the same one, in a distributed way.
=20
 > What is unclear to me is what to do with the traffic, i.e. do
 > you degrade it to the base path, or do you drop it. I would think
 > that the latter is the more conservative, because presumably it
 > was put in the SR path for a reason, and so SHOULD be carried on
 > an SR path.
=20
[Bruno] traffic and path is not affected, whether value 42 or 53 is selecte=
d for a given segment. What we do need is consistency across all nodes.

-- Bruno


 > - Stewart
 >=20
 > _______________________________________________
 > spring mailing list
 > spring@ietf.org
 > https://www.ietf.org/mailman/listinfo/spring

___________________________________________________________________________=
______________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.


From nobody Fri Dec  9 02:07:22 2016
Return-Path: <bruno.decraene@orange.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E069812A34F for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 02:07:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.814
X-Spam-Level: 
X-Spam-Status: No, score=-4.814 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TEna8zMKPEfd for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 02:07:17 -0800 (PST)
Received: from relais-inet.orange.com (mta240.mail.business.static.orange.com [80.12.66.40]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 39B23129646 for <spring@ietf.org>; Fri,  9 Dec 2016 02:07:13 -0800 (PST)
Received: from opfedar06.francetelecom.fr (unknown [xx.xx.xx.8]) by opfedar23.francetelecom.fr (ESMTP service) with ESMTP id 865E71602F5; Fri,  9 Dec 2016 11:07:11 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.32]) by opfedar06.francetelecom.fr (ESMTP service) with ESMTP id 6603180062; Fri,  9 Dec 2016 11:07:11 +0100 (CET)
Received: from OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06]) by OPEXCLILM32.corporate.adroot.infra.ftgroup ([fe80::8924:188:2124:a046%19]) with mapi id 14.03.0319.002; Fri, 9 Dec 2016 11:07:11 +0100
From: <bruno.decraene@orange.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDdlkBw
Date: Fri, 9 Dec 2016 10:07:10 +0000
Message-ID: <13659_1481278031_584A824F_13659_1413_1_53C29892C857584299CBF5D05346208A1ECBEDCF@OPEXCLILM21.corporate.adroot.infra.ftgroup>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com>
In-Reply-To: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.168.234.5]
Content-Type: multipart/alternative; boundary="_000_53C29892C857584299CBF5D05346208A1ECBEDCFOPEXCLILM21corp_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/b6Iarnw6SyyYRDg4QcG5wGPwm08>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 10:07:21 -0000

--_000_53C29892C857584299CBF5D05346208A1ECBEDCFOPEXCLILM21corp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Les,

As a individual contributor, please find below some clarification questions=
 [Bruno]

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Monday, December 05, 2016 1:04 AM
To: spring@ietf.org
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives and

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution to

the problem. The authors are very sympathetic to this feedback and therefore

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



[Bruno] In the draft, the "Ignore" policy (=A73.3.1) ignores all conflictin=
g entries.

In your below proposition, the policy seems to pick the most preferred entr=
y. This looks like more similar to the "Quarantine" policy proposed in the =
draft (=A73.3.2)

Am I missing something?



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

[Bruno] I'm not sure what you are refering to by "preference". Is this the =
IGP "SRMS Preference sub-TLV" or is this the preference defined in the draf=
t (=A73.3.4)?

Assuming you meant the SRMS preference, why limiting to this field, rather =
than including all fields defined in the draft preference algo?

Using the latter would reduce the risk of ignoring all entries (i.e. having=
 no entry in output of this algo). Also a priori,  a sort would not be requ=
ired as a single pass could select the most preferred entry.



Thanks

-- Bruno



Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









___________________________________________________________________________=
______________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.


--_000_53C29892C857584299CBF5D05346208A1ECBEDCFOPEXCLILM21corp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Texte brut Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.TextebrutCar
	{mso-style-name:"Texte brut Car";
	mso-style-priority:99;
	mso-style-link:"Texte brut";
	font-family:Consolas;}
p.PlainText, li.PlainText, div.PlainText
	{mso-style-name:"Plain Text";
	mso-style-link:"Plain Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"FR" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Hi Les,=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">As a in=
dividual contributor, please find below some clarification questions [Bruno=
]<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> spring [=
mailto:spring-bounces@ietf.org]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Monday, December 05, 2016 1:04 AM<br>
<b>To:</b> spring@ietf.org<br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">When the problem addressed b=
y draft-ietf-spring-conflict-resolution was first
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">presented at IETF 94, the au=
thors defined the following priorities:<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1)Detect the problem<o:p></o=
:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2)Report the problem<o:p></o=
:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">This alerts the network oper=
ator to the existence of a conflict so that<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the configuration error can =
be corrected.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3)Define consistent behavior=
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">This avoids mis-forwarding w=
hile the conflict exists.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4)Don&#8217;t overengineer t=
he solution<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Given that it is impossible =
to know which of the conflicting entries<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">is the correct one, we shoul=
d apply a simple algorithm to resolve the conflict.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">5)Agree on the resolution be=
havior<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">The resolution behavior was =
deliberately the last point because it was
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">considered the least importa=
nt.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Input was received over the =
past year which emphasized the importance of<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">trying to &quot;maximize for=
warding&quot; in the presence of conflicts. Subsequent<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">revisions of the draft have =
tried to address this concern. However the authors
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">have repeatedly stressed tha=
t the solution being proposed
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(&quot;ignore overlap only&q=
uot;) was more complex than other offered alternatives and
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">would be more difficult to g=
uarantee interoperability because subtle
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">differences in an implementa=
tion could produce different results.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">At IETF97 significant feedba=
ck was received preferring a simpler solution to
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the problem. The authors are=
 very sympathetic to this feedback and therefore
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">are proposing a solution bas=
ed on what the draft defines as the &quot;Ignore&quot;
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">policy - where all entries w=
hich are in conflict are ignored. We believe this
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">is far more desirable and al=
igns with the priorities listed above.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">[Bru=
no] In the draft, the &#8220;Ignore&#8221; policy (=A73.3.1) ignores all co=
nflicting entries.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">In y=
our below proposition, the policy seems to pick the most preferred entry. T=
his looks like more similar to the &#8220;Quarantine&#8221; policy proposed=
 in the draft (=A73.3.2)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Am I=
 missing something?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">We outline the proposed solu=
tion below and would like to receive feedback from
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the WG before publishing the=
 next revision of the draft.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">&nbsp;&nbsp; Les (on behalf =
of the authors)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">New Proposal<o:p></o:p></=
span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">In the latest revision of=
 the draft &quot;SRMS Preference&quot; was introduced. This
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">provides a way for a nume=
rical preference to be explicitly associated with an
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">SRMS advertisement. Using=
 this an operator can indicate which advertisement is
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">to be preferred when a co=
nflict is present. The authors think this is a useful
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">addition and we therefore=
 want to include this in the new solution.<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">The new preference rule u=
sed to resolve conflicts is defined as follows:<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">A given mapping entry =
is compared against all mapping entries in the database
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">with a preference grea=
ter than or equal to its own. If there is a conflict,
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">the mapping entry with=
 lower preference is ignored. If two mapping entries are<o:p></o:p></span><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">in conflict and have e=
qual preference then both entries are ignored.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">Implementation of this po=
licy is defined as follows:<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 1: Within a singl=
e address-family/algorithm/topology sort entries
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">based on preference <o=
:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">[Bru=
no] I&#8217;m not sure what you are refering to by &#8220;preference&#8221;=
. Is this the IGP &#8220;SRMS Preference sub-TLV&#8221; or is this the pref=
erence defined in the draft (=A73.3.4)?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Assu=
ming you meant the SRMS preference, why limiting to this field, rather than=
 including all fields defined in the draft preference algo?<o:p></o:p></spa=
n></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Usin=
g the latter would reduce the risk of ignoring all entries (i.e. having no =
entry in output of this algo). Also a priori, &nbsp;a sort would not be req=
uired as a single pass could select the most
 preferred entry.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Than=
ks<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">-- B=
runo<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 2: Starting with =
the lowest preference entries, resolve prefix conflicts
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">using the above prefer=
ence rule. The output is an active policy per topology.<o:p></o:p></span></=
i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 3: Take the outpu=
ts from Step 2 and again sort them by preference
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 4: Starting with =
the lowest preference entries, resolve SID conflicts
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">using the above prefer=
ence rule<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></spa=
n></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">The output from Step 4=
 is then the current Active Policy.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Here are a few examples. Eac=
h mapping entry is represented by the tuple:<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(Preference, Prefix/mask Ind=
ex range &lt;#&gt;)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 1:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 100)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (149, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (148, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 3 conflicts with entry=
 2, it is ignored.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 2 conflicts with entry=
 1, it is ignored.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 1.1.1.1/32 100 range 1=
00)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 2:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 100)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (150, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (150, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (150, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 1 conflicts with entry=
 2, both are marked as ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 3 conflicts with entry=
 2. It is marked as ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 4 has no conflicts wit=
h any entries<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 2.2.2.1/32 1000 range =
1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 3:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 500)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (150, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (150, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (150, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 1 conflicts with entri=
es 2, 3, and&nbsp; 4. All entries are marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Empty<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 4:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (149, 1.1.1.10/32 200 ran=
ge 300)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (149, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (148, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 4 conflicts with entry=
 2. It is marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 2 conflicts with entry=
 3. Entries 2 and 3 are marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 1.1.1.1/32 100 range 1=
0)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
</div>
</div>
<PRE>______________________________________________________________________=
___________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.
</PRE></body>
</html>

--_000_53C29892C857584299CBF5D05346208A1ECBEDCFOPEXCLILM21corp_--


From nobody Fri Dec  9 07:44:27 2016
Return-Path: <mustapha.aissaoui@nokia.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E28112946A for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 07:44:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.92
X-Spam-Level: 
X-Spam-Status: No, score=-6.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3MkRaOzwLMbx for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 07:44:22 -0800 (PST)
Received: from smtp-us.alcatel-lucent.com (us-hpswa-esg-01.alcatel-lucent.com [135.245.18.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 58AD21294A1 for <spring@ietf.org>; Fri,  9 Dec 2016 07:43:42 -0800 (PST)
Received: from us70uumx3.dmz.alcatel-lucent.com (unknown [135.245.18.15]) by Websense Email Security Gateway with ESMTPS id 7D7349C12B70F; Fri,  9 Dec 2016 15:43:38 +0000 (GMT)
Received: from us70uusmtp3.zam.alcatel-lucent.com (us70uusmtp3.zam.alcatel-lucent.com [135.5.2.65]) by us70uumx3.dmz.alcatel-lucent.com (GMO) with ESMTP id uB9Fhej9029852 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 9 Dec 2016 15:43:40 GMT
Received: from US70TWXCHHUB04.zam.alcatel-lucent.com (us70twxchhub04.zam.alcatel-lucent.com [135.5.2.36]) by us70uusmtp3.zam.alcatel-lucent.com (GMO) with ESMTP id uB9FheMR014776 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 9 Dec 2016 15:43:40 GMT
Received: from US70UWXCHMBA01.zam.alcatel-lucent.com ([169.254.7.176]) by US70TWXCHHUB04.zam.alcatel-lucent.com ([135.5.2.36]) with mapi id 14.03.0301.000; Fri, 9 Dec 2016 10:43:40 -0500
From: "Aissaoui, Mustapha (Nokia - CA)" <mustapha.aissaoui@nokia.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAodWg
Date: Fri, 9 Dec 2016 15:43:39 +0000
Message-ID: <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com>
In-Reply-To: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.17]
Content-Type: multipart/alternative; boundary="_000_4A79394211F1AF4EB57D998426C9340DD4AFFBBFUS70UWXCHMBA01z_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/FViJjl0GtnlJkE0qhfeNf7g4dV4>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 15:44:26 -0000

--_000_4A79394211F1AF4EB57D998426C9340DD4AFFBBFUS70UWXCHMBA01z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I have a couple of comments on the below proposal.


1.     Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft. I=
n many cases, a configuration on the resolving router can assign a preferen=
ce to each SRMS in case there is no advertisement of this sub-TLV or to ove=
rride an advertised value. I propose that this option be allowed. Here is a=
 proposed update to the relevant paragraph:

"
           Advertisement of a preference value is optional.  Nodes which do=
 not
          advertise a preference value are assigned a preference value of 1=
28.
           A resolving router can override the default or the advertised va=
lue by local policy.

"



2.     I am trying to understand the concept of sorting SRMS entries which =
have different prefixes and different range sizes.

Since a SID advertised in a prefix SID sub-TLV within a Prefix TLV (IS-IS I=
P Reach TLV or OSPF Extended Prefix TLV) has higher priority over a SID for=
 the same prefix advertised from a SRMS, then you have to add to the below =
sorting an entry for each individual prefix which advertised a prefix SID s=
ub-TLV within a prefix TLV.

At this point, the concept of an entry with multiple prefixes is moot and y=
ou may as well just sort on a per prefix basis which is the most natural th=
ing to do given that the prefix resolution and then the SID resolution are =
performed on a per prefix basis. SID conflicts can be resolved on a per pre=
fix basis using the below proposed preference algorithm without having to i=
gnore SID values for unrelated prefixes just because it happens that they w=
ere advertised in the same SRMS entry.

Regards,
Mustapha.

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Sunday, December 04, 2016 7:04 PM
To: spring@ietf.org
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









--_000_4A79394211F1AF4EB57D998426C9340DD4AFFBBFUS70UWXCHMBA01z_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New",serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri",sans-serif;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Arial",sans-serif;
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New",serif;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:600063328;
	mso-list-type:hybrid;
	mso-list-template-ids:-2029859504 67698703 67698713 67698715 67698703 6769=
8713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">I have a couple of comments on the below proposal.<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"font-size:10.0pt;font-family:&q=
uot;Arial&quot;,sans-serif"><span style=3D"mso-list:Ignore">1.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:10.0pt;font-family:=
&quot;Arial&quot;,sans-serif">Regarding the SRMS Preference Sub-TLV in sect=
ion 3.1 of the draft. In many cases, a configuration on the resolving route=
r can assign a preference to each SRMS in case
 there is no advertisement of this sub-TLV or to override an advertised val=
ue. I propose that this option be allowed. Here is a proposed update to the=
 relevant paragraph:<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp; Advertisement of a preference value is optional.&nbsp; Nodes which do n=
ot<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp;advertise a preference value are assigned a preference value of 128. &nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp;&nbsp;<span style=3D"color:red">A resolving router can override the defa=
ult or the advertised value by local policy.</span><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"font-size:10.0pt;font-family:&q=
uot;Arial&quot;,sans-serif"><span style=3D"mso-list:Ignore">2.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:10.0pt;font-family:=
&quot;Arial&quot;,sans-serif">I am trying to understand the concept of sort=
ing SRMS entries which have different prefixes and different range sizes. &=
nbsp;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">Since a SID advertised in a prefix SID sub-TLV=
 within a Prefix TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV) has h=
igher priority over a SID for the same prefix
 advertised from a SRMS, then you have to add to the below sorting an entry=
 for each individual prefix which advertised a prefix SID sub-TLV within a =
prefix TLV.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">At this point, the concept of an entry with mu=
ltiple prefixes is moot and you may as well just sort on a per prefix basis=
 which is the most natural thing to do given that
 the prefix resolution and then the SID resolution are performed on a per p=
refix basis. SID conflicts can be resolved on a per prefix basis using the =
below proposed preference algorithm without having to ignore SID values for=
 unrelated prefixes just because
 it happens that they were advertised in the same SRMS entry.<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Mustapha.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> spring [mailto:spring-bounces@ietf.org]=
 <b>On Behalf Of
</b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Sunday, December 04, 2016 7:04 PM<br>
<b>To:</b> spring@ietf.org<br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</div>
</body>
</html>

--_000_4A79394211F1AF4EB57D998426C9340DD4AFFBBFUS70UWXCHMBA01z_--


From nobody Fri Dec  9 10:30:40 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9C21A129524 for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 10:30:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.417
X-Spam-Level: 
X-Spam-Status: No, score=-17.417 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qOAzizEr2IkM for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 10:30:35 -0800 (PST)
Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E79FB1294D6 for <spring@ietf.org>; Fri,  9 Dec 2016 10:30:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=34122; q=dns/txt; s=iport; t=1481308235; x=1482517835; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=NIdkfRxmmyvtY+phfsAL6PlMSZknps1bA3kTfWUTE4A=; b=czrkUqqOBuWUclvi1SppekjrGUOQL9unfmtdxfft11H6ba5UipFAVEU6 Nz/yj5unG7uAhQcYnVtTSGIgcO9JEF9qTsGAxKCiw4zMGwwNs0mHYYdSZ te3t7bFupq/hp260MaIbYp9YWGwhg7T4Vizfr9qKHVftN/yfBcizYg4Ps k=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CUAwCU90pY/4kNJK1dGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnNEAQEBAQEfWoEGB41ClxOVAoIKhiECgWw/FAECAQEBAQEBAWI?= =?us-ascii?q?dC4RoAQEBBC1MEAIBCBEEAQEhAQYHMhQJCAEBBA4FCBMEiEysXosrAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBHYY+hFuEGhEBSAqFKwWPP4VBhWsBiV6HOYF8hH+JU44?= =?us-ascii?q?LhA0BHzdJGT+DYByBXXKHAQ0XB4EDgQ0BAQE?=
X-IronPort-AV: E=Sophos;i="5.33,324,1477958400";  d="scan'208,217";a="358806104"
Received: from alln-core-4.cisco.com ([173.36.13.137]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 09 Dec 2016 18:30:33 +0000
Received: from XCH-RCD-005.cisco.com (xch-rcd-005.cisco.com [173.37.102.15]) by alln-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id uB9IUXcE015237 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 9 Dec 2016 18:30:33 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-RCD-005.cisco.com (173.37.102.15) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Fri, 9 Dec 2016 12:30:32 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Fri, 9 Dec 2016 12:30:32 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: "bruno.decraene@orange.com" <bruno.decraene@orange.com>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDdlkBwAA8oUZA=
Date: Fri, 9 Dec 2016 18:30:32 +0000
Message-ID: <dc0ee71a612d433dba6e6d73b274ec6f@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <13659_1481278031_584A824F_13659_1413_1_53C29892C857584299CBF5D05346208A1ECBEDCF@OPEXCLILM21.corporate.adroot.infra.ftgroup>
In-Reply-To: <13659_1481278031_584A824F_13659_1413_1_53C29892C857584299CBF5D05346208A1ECBEDCF@OPEXCLILM21.corporate.adroot.infra.ftgroup>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.119.150]
Content-Type: multipart/alternative; boundary="_000_dc0ee71a612d433dba6e6d73b274ec6fXCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/Ueo6xq2vQ7whw1iHy1AKKaVwwQ0>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 18:30:38 -0000

--_000_dc0ee71a612d433dba6e6d73b274ec6fXCHALN001ciscocom_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Bruno -

Welcome back to the discussion. :)
Inline.

From: bruno.decraene@orange.com [mailto:bruno.decraene@orange.com]
Sent: Friday, December 09, 2016 2:07 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Hi Les,

As a individual contributor, please find below some clarification questions=
 [Bruno]

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Monday, December 05, 2016 1:04 AM
To: spring@ietf.org
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



[Bruno] In the draft, the "Ignore" policy (=A73.3.1) ignores all conflictin=
g entries.

In your below proposition, the policy seems to pick the most preferred entr=
y. This looks like more similar to the "Quarantine" policy proposed in the =
draft (=A73.3.2)

Am I missing something?



[Les:] At the time "Ignore" was introduced (over a year ago) the notion of =
"SRMS preference" did not exist - that was only added in the most recent ve=
rsion of the draft.

We (the authors) feel that this is a useful construct because:



1)It provides an explicit basis on which to choose between conflicting entr=
ies.

2)It is particularly useful when bringing up a new SRMS as it allows the ad=
vertised values to be verified before they are used.



So, your comment is correct in that there is now a preference algorithm in =
use - whereas with the original definition of "Ignore" there was no prefere=
nce algorithm. But the sole criteria of the preference rule is the explicit=
ly configured preference - none of the other criteria proposed for Quaranti=
ne are used - and in particular we do not make partial use of a mapping ent=
ry as is the case with "Ignore Overlap Only".



I am happy to modify the nomenclature - but the point of this thread is not=
 to replace a new draft revision - it is to get the sense of the WG before =
we publish a new revision as to whether we should continue down the "Ignore=
 Overlap only" path or move to a simpler strategy - so let's not be too pic=
ky about the naming.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

[Bruno] I'm not sure what you are refering to by "preference". Is this the =
IGP "SRMS Preference sub-TLV" or is this the preference defined in the draf=
t (=A73.3.4)?



[Les:] It is the former.



Assuming you meant the SRMS preference, why limiting to this field, rather =
than including all fields defined in the draft preference algo?

Using the latter would reduce the risk of ignoring all entries (i.e. having=
 no entry in output of this algo). Also a priori,  a sort would not be requ=
ired as a single pass could select the most preferred entry.



[Les:] The point of the alternative proposal is a simplification. The prese=
ntation in Seoul (check out the slides) highlighted complexities in the imp=
lementation of "ignore-overlap-only" - in particular subtleties in the orde=
r in which an implementation looks at entries which could produce interoper=
ability issues even though implementations are using the same preference ru=
le. The alternative reduces the chances of these interoperability issues oc=
curring because the algorithm used is simpler and less subject to subtle im=
plementation differences.



If you want to argue that these are solvable problems I won't disagree with=
 you - it is a question of where we want to put our time and effort. A numb=
er of folks are commenting that they prefer to focus on fixing the configur=
ation and not invest  time in validating that conflict resolution is implem=
ented in an interoperable way. As we (the authors) have stated from the beg=
inning, we believe the emphasis should be on detecting and reporting the co=
nflicts - not spending cycles implementing the most robust means of trying =
to operate optimally while the misconfiguration exists. I know you disagree=
 on this point - but that is exactly what the WG is debating - not whether =
it is possible to make "ignore overlap only" work.



   Les



Thanks

-- Bruno



Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

--_000_dc0ee71a612d433dba6e6d73b274ec6fXCHALN001ciscocom_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
p.Textebrut, li.Textebrut, div.Textebrut
	{mso-style-name:"Texte brut";
	mso-style-link:"Texte brut Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.TextebrutCar
	{mso-style-name:"Texte brut Car";
	mso-style-priority:99;
	mso-style-link:"Texte brut";
	font-family:Consolas;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
span.EmailStyle24
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Bruno &#8211;<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Welcome back to the di=
scussion. </span>
<span style=3D"font-family:Wingdings;color:#1F497D">J</span><span style=3D"=
color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Inline.<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> bruno.de=
craene@orange.com [mailto:bruno.decraene@orange.com]
<br>
<b>Sent:</b> Friday, December 09, 2016 2:07 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> spring@ietf.org<br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Hi Les,<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">As a individual contri=
butor, please find below some clarification questions [Bruno]<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"FR" style=3D"font-size:10.0pt;font-=
family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lan=
g=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;san=
s-serif&quot;"> spring [mailto:spring-bounces@ietf.org]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Monday, December 05, 2016 1:04 AM<br>
<b>To:</b> spring@ietf.org<br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"FR"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">[Bruno] In the draf=
t, the &#8220;Ignore&#8221; policy (=A73.3.1) ignores all conflicting entri=
es.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">In your below propo=
sition, the policy seems to pick the most preferred entry. This looks like =
more similar to the &#8220;Quarantine&#8221; policy proposed in the draft (=
=A73.3.2)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Am I missing someth=
ing?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] At the=
 time &#8220;Ignore&#8221; was introduced (over a year ago) the notion of &=
#8220;SRMS preference&#8221; did not exist &#8211; that was only added in t=
he most recent version of the draft.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">We (the autho=
rs) feel that this is a useful construct because:<o:p></o:p></span></i></b>=
</p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">1)It provides=
 an explicit basis on which to choose between conflicting entries.<o:p></o:=
p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">2)It is parti=
cularly useful when bringing up a new SRMS as it allows the advertised valu=
es to be verified before they are used.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">So, your comm=
ent is correct in that there is now a preference algorithm in use &#8211; w=
hereas with the original definition of &#8220;Ignore&#8221; there was no pr=
eference algorithm. But the sole criteria of the preference
 rule is the explicitly configured preference &#8211; none of the other cri=
teria proposed for Quarantine are used &#8211; and in particular we do not =
make partial use of a mapping entry as is the case with &#8220;Ignore Overl=
ap Only&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">I am happy to=
 modify the nomenclature &#8211; but the point of this thread is not to rep=
lace a new draft revision &#8211; it is to get the sense of the WG before w=
e publish a new revision as to whether we should
 continue down the &#8220;Ignore Overlap only&#8221; path or move to a simp=
ler strategy &#8211; so let&#8217;s not be too picky about the naming.<o:p>=
</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">[Bruno] I&#8217;m n=
ot sure what you are refering to by &#8220;preference&#8221;. Is this the I=
GP &#8220;SRMS Preference sub-TLV&#8221; or is this the preference defined =
in the draft (=A73.3.4)?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] It is =
the former.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Assuming you meant =
the SRMS preference, why limiting to this field, rather than including all =
fields defined in the draft preference algo?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Using the latter wo=
uld reduce the risk of ignoring all entries (i.e. having no entry in output=
 of this algo). Also a priori, &nbsp;a sort would not be required as a sing=
le pass could select the most preferred entry.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] The po=
int of the alternative proposal is a simplification. The presentation in Se=
oul (check out the slides) highlighted complexities in the implementation o=
f &#8220;ignore-overlap-only&#8221; &#8211; in particular
 subtleties in the order in which an implementation looks at entries which =
could produce interoperability issues even though implementations are using=
 the same preference rule. The alternative reduces the chances of these int=
eroperability issues occurring because
 the algorithm used is simpler and less subject to subtle implementation di=
fferences.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">If you want t=
o argue that these are solvable problems I won&#8217;t disagree with you &#=
8211; it is a question of where we want to put our time and effort. A numbe=
r of folks are commenting that they prefer to focus
 on fixing the configuration and not invest &nbsp;time in validating that c=
onflict resolution is implemented in an interoperable way. As we (the autho=
rs) have stated from the beginning, we believe the emphasis should be on de=
tecting and reporting the conflicts &#8211;
 not spending cycles implementing the most robust means of trying to operat=
e optimally while the misconfiguration exists. I know you disagree on this =
point &#8211; but that is exactly what the WG is debating &#8211; not wheth=
er it is possible to make &#8220;ignore overlap only&#8221;
 work.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">&nbsp;&nbsp; =
Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Thanks<o:p></o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">-- Bruno<o:p></o:p>=
</span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
<pre><span lang=3D"FR">____________________________________________________=
_____________________________________________________________________<o:p><=
/o:p></span></pre>
<pre><span lang=3D"FR"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR">Ce message et ses pieces jointes peuvent contenir de=
s informations confidentielles ou privilegiees et ne doivent donc<o:p></o:p=
></span></pre>
<pre><span lang=3D"FR">pas etre diffuses, exploites ou copies sans autorisa=
tion. Si vous avez recu ce message par erreur, veuillez le signaler<o:p></o=
:p></span></pre>
<pre><span lang=3D"FR">a l'expediteur et le detruire ainsi que les pieces j=
ointes. Les messages electroniques etant susceptibles d'alteration,<o:p></o=
:p></span></pre>
<pre><span lang=3D"FR">Orange decline toute responsabilite si ce message a =
ete altere, deforme ou falsifie. Merci.<o:p></o:p></span></pre>
<pre><span lang=3D"FR"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR">This message and its attachments may contain confide=
ntial or privileged information that may be protected by law;<o:p></o:p></s=
pan></pre>
<pre><span lang=3D"FR">they should not be distributed, used or copied witho=
ut authorisation.<o:p></o:p></span></pre>
<pre><span lang=3D"FR">If you have received this email in error, please not=
ify the sender and delete this message and its attachments.<o:p></o:p></spa=
n></pre>
<pre><span lang=3D"FR">As emails may be altered, Orange is not liable for m=
essages that have been modified, changed or falsified.<o:p></o:p></span></p=
re>
<pre><span lang=3D"FR">Thank you.<o:p></o:p></span></pre>
</div>
</div>
</body>
</html>

--_000_dc0ee71a612d433dba6e6d73b274ec6fXCHALN001ciscocom_--


From nobody Fri Dec  9 10:48:39 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0F3CF129514 for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 10:48:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.417
X-Spam-Level: 
X-Spam-Status: No, score=-17.417 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id labgV9cY47iv for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 10:48:35 -0800 (PST)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ABD4512952B for <spring@ietf.org>; Fri,  9 Dec 2016 10:48:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=30296; q=dns/txt; s=iport; t=1481309314; x=1482518914; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=L26dM5jVIPRJDFgK9X2pHfe70Db9GHgXWV850FRgPS4=; b=eCw/8cP7HVDgYS0QUZz/ttrLtjf2ifOFRFAoVKjnTFVTdhygS0lruaxV OzMNjvjN3hi56eZAxKN7qTgCltK3rOVv1nYBS20cJGHIX9Ocqn7/FN+wB cvy+V48suZ5NU689Bii/xAwjaXf4+9nnMFM9NHG5JuPvgmYgqswprCHo6 w=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AWAQBJ+0pY/4gNJK1dGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnM5CwEBAQEBH1qBBgeNQpcTlQKCCi2FdAKBZj8UAQIBAQEBAQE?= =?us-ascii?q?BYiiEaAEBAQQtXAIBCBEEAQEhAQYHMhQJCAEBBAESCBOIUA6sb4sqAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBGAWGPoRbhH6FKwWVAIVrAYlehzmBfIR/iVOHZoYlhA0?= =?us-ascii?q?BHzdJWINgHIFdcgGILoENAQEB?=
X-IronPort-AV: E=Sophos;i="5.33,324,1477958400";  d="scan'208,217";a="358722844"
Received: from alln-core-3.cisco.com ([173.36.13.136]) by alln-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 09 Dec 2016 18:48:33 +0000
Received: from XCH-ALN-004.cisco.com (xch-aln-004.cisco.com [173.36.7.14]) by alln-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id uB9ImWh2008821 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 9 Dec 2016 18:48:33 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-ALN-004.cisco.com (173.36.7.14) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Fri, 9 Dec 2016 12:48:32 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Fri, 9 Dec 2016 12:48:32 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: "Aissaoui, Mustapha (Nokia - CA)" <mustapha.aissaoui@nokia.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAodWgAC/MMoA=
Date: Fri, 9 Dec 2016 18:48:32 +0000
Message-ID: <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com>
In-Reply-To: <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.119.150]
Content-Type: multipart/alternative; boundary="_000_cea34d39cf904665b4859b74d28a4237XCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/O2Tq6eMICwciWCpTfJ2ddydmbF0>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 18:48:38 -0000

--_000_cea34d39cf904665b4859b74d28a4237XCHALN001ciscocom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Mustapha -

From: Aissaoui, Mustapha (Nokia - CA) [mailto:mustapha.aissaoui@nokia.com]
Sent: Friday, December 09, 2016 7:44 AM
To: Les Ginsberg (ginsberg); spring@ietf.org
Subject: RE: SID Conflict Resolution: A Simpler Proposal

I have a couple of comments on the below proposal.


1.     Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft. I=
n many cases, a configuration on the resolving router can assign a preferen=
ce to each SRMS in case there is no advertisement of this sub-TLV or to ove=
rride an advertised value. I propose that this option be allowed. Here is a=
 proposed update to the relevant paragraph:

"
           Advertisement of a preference value is optional.  Nodes which do=
 not
          advertise a preference value are assigned a preference value of 1=
28.
           A resolving router can override the default or the advertised va=
lue by local policy.

"

[Les:] In order to get consistent conflict resolution on all nodes in the n=
etwork, it is necessary that they all have the same database - which includ=
es the preference value. If you allow local policy to modify the preference=
 you no longer have consistent databases on all nodes and we can no longer =
guarantee consistent conflict resolution. So your proposal is not viable IM=
O.



2.     I am trying to understand the concept of sorting SRMS entries which =
have different prefixes and different range sizes.

Since a SID advertised in a prefix SID sub-TLV within a Prefix TLV (IS-IS I=
P Reach TLV or OSPF Extended Prefix TLV) has higher priority over a SID for=
 the same prefix advertised from a SRMS, then you have to add to the below =
sorting an entry for each individual prefix which advertised a prefix SID s=
ub-TLV within a prefix TLV.

At this point, the concept of an entry with multiple prefixes is moot and y=
ou may as well just sort on a per prefix basis which is the most natural th=
ing to do given that the prefix resolution and then the SID resolution are =
performed on a per prefix basis. SID conflicts can be resolved on a per pre=
fix basis using the below proposed preference algorithm without having to i=
gnore SID values for unrelated prefixes just because it happens that they w=
ere advertised in the same SRMS entry.



[Les:] The simpler proposal does not require sorting on anything other than=
 preference. After that, you can process entries in any order you want and =
you will get the same answer.

With "Ignore Overlap Only" one of the issues with trying to use the non-con=
flicting portions of a mapping entry which has a range > 1 is that the orde=
r in which you process entries influences the result. Please see slides 17 =
- 20 from the IETF97 presentation: https://www.ietf.org/proceedings/97/slid=
es/slides-97-spring-1_ietf97_draft-ietf-spring-conflict-resolution-02-00.pp=
tx for some simple examples of this.



   Les



Regards,
Mustapha.

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Sunday, December 04, 2016 7:04 PM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









--_000_cea34d39cf904665b4859b74d28a4237XCHALN001ciscocom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
span.EmailStyle23
	{mso-style-type:personal;
	font-family:"Arial","sans-serif";
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
span.EmailStyle24
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Mustapha -<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Aissaoui=
, Mustapha (Nokia - CA) [mailto:mustapha.aissaoui@nokia.com]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:44 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); spring@ietf.org<br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">I have a couple of comments on the below =
proposal.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">1.</s=
pan><span style=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,=
&quot;serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">Regarding the SRMS Preference Sub-TLV in section 3.1 of t=
he draft. In many cases, a configuration on the resolving router can assign=
 a preference to each SRMS in case there is no advertisement
 of this sub-TLV or to override an advertised value. I propose that this op=
tion be allowed. Here is a proposed update to the relevant paragraph:<o:p><=
/o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Ad=
vertisement of a preference value is optional.&nbsp; Nodes which do not<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;adv=
ertise a preference value are assigned a preference value of 128. &nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nb=
sp;<span style=3D"color:red">A resolving router can override the default or=
 the advertised value by local policy.</span><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] In order to get consistent conflict resolution on=
 all nodes in the network, it is necessary that they all have the same data=
base &#8211; which includes the preference value.
 If you allow local policy to modify the preference you no longer have cons=
istent databases on all nodes and we can no longer guarantee consistent con=
flict resolution. So your proposal is not viable IMO.</span></i></b><span s=
tyle=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">2.</s=
pan><span style=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,=
&quot;serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">I am trying to understand the concept of sorting SRMS ent=
ries which have different prefixes and different range sizes. &nbsp;<o:p></=
o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">Since a SID advertised in a prefix=
 SID sub-TLV within a Prefix TLV (IS-IS IP Reach TLV or OSPF Extended Prefi=
x TLV) has higher priority over a SID for the same prefix
 advertised from a SRMS, then you have to add to the below sorting an entry=
 for each individual prefix which advertised a prefix SID sub-TLV within a =
prefix TLV.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">At this point, the concept of an e=
ntry with multiple prefixes is moot and you may as well just sort on a per =
prefix basis which is the most natural thing to do given
 that the prefix resolution and then the SID resolution are performed on a =
per prefix basis. SID conflicts can be resolved on a per prefix basis using=
 the below proposed preference algorithm without having to ignore SID value=
s for unrelated prefixes just because
 it happens that they were advertised in the same SRMS entry.<o:p></o:p></s=
pan></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] The simpler proposal does not require sorting on =
anything other than preference. After that, you can process entries in any =
order you want and you will get the same
 answer.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">With &#8220;Ignore Overlap Only&#8221; one of the issues=
 with trying to use the non-conflicting portions of a mapping entry which h=
as a range &gt; 1 is that the order in which you process
 entries influences the result. Please see slides 17 &#8211; 20 from the IE=
TF97 presentation:
<a href=3D"https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ie=
tf97_draft-ietf-spring-conflict-resolution-02-00.pptx">
https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_draft-=
ietf-spring-conflict-resolution-02-00.pptx</a> for some simple examples of =
this.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">&nbsp;&nbsp; Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><span style=3D"colo=
r:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Mustapha.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> spring [<a href=3D"mailto:spring-bounce=
s@ietf.org">mailto:spring-bounces@ietf.org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Sunday, December 04, 2016 7:04 PM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</body>
</html>

--_000_cea34d39cf904665b4859b74d28a4237XCHALN001ciscocom_--


From nobody Fri Dec  9 12:10:48 2016
Return-Path: <gunter.van_de_velde@nokia.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B48D21296A7 for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 12:10:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.92
X-Spam-Level: 
X-Spam-Status: No, score=-6.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7BOdzrX9I_gk for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 12:10:43 -0800 (PST)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EBDD7129548 for <spring@ietf.org>; Fri,  9 Dec 2016 12:10:42 -0800 (PST)
Received: from fr712umx4.dmz.alcatel-lucent.com (unknown [135.245.210.45]) by Websense Email Security Gateway with ESMTPS id 2C69078D6C7BA; Fri,  9 Dec 2016 20:10:37 +0000 (GMT)
Received: from fr712usmtp2.zeu.alcatel-lucent.com (fr712usmtp2.zeu.alcatel-lucent.com [135.239.2.42]) by fr712umx4.dmz.alcatel-lucent.com (GMO-o) with ESMTP id uB9KAcmf015593 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 9 Dec 2016 20:10:39 GMT
Received: from FR711WXCHHUB02.zeu.alcatel-lucent.com (fr711wxchhub02.zeu.alcatel-lucent.com [135.239.2.112]) by fr712usmtp2.zeu.alcatel-lucent.com (GMO) with ESMTP id uB9KAZ6C003888 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 9 Dec 2016 20:10:36 GMT
Received: from FR711WXCHMBA06.zeu.alcatel-lucent.com ([169.254.2.227]) by FR711WXCHHUB02.zeu.alcatel-lucent.com ([135.239.2.112]) with mapi id 14.03.0301.000; Fri, 9 Dec 2016 21:10:35 +0100
From: "Van De Velde, Gunter (Nokia - BE)" <gunter.van_de_velde@nokia.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AQHSUlhMXA56fiVWgEm1U+Ly+bSdjw==
Date: Fri, 9 Dec 2016 20:10:36 +0000
Message-ID: <332FE00B-442E-44DC-A825-78E56FC12176@alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.239.27.41]
Content-Type: multipart/alternative; boundary="_000_332FE00B442E44DCA82578E56FC12176alcatellucentcom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/A2OS7hvfuo-w0JrVNVWfqXrmfhM>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 20:10:45 -0000

--_000_332FE00B442E44DCA82578E56FC12176alcatellucentcom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

VGhlIG1ldGhvZCB0byDigJxtYXhpbWl6ZSBmb3J3YXJkaW5n4oCdIGFzIG1lbnRpb25lZCBpbiB0
aGUgZHJhZnQgc2VlbXMgdG8gYmUgaW4gY29uc2lzdGVudCBsb2dpYyB3aXRoIGhvdyB0aGUgY3Vy
cmVudA0KdW5pY2FzdCByb3V0aW5nIHRhYmxlIGlzIGJ1aWxkLiBGb3IgdW5pY2FzdCByb3V0ZXMg
dGhlIHJvdXRlIHNlbGVjdGVkIGZvciBhIGdpdmVuIElQIGRlc3RpbmF0aW9uIGFkZHJlc3MgaXMg
YSBmdW5jdGlvbihwcmVmaXgtbGVuZ3RoL2FkbWluLWRpc3RhbmNlKS4NClRoaXMgaXMgZG9uZSBm
b3IgYmV0dGVyIGFkZHJlc3Mgc3BhY2UgbWFuYWdlbWVudCwgYW5kIHRvIGhhdmUgcHJlZGljdGFi
bGUgcm91dGluZyBpbmNhc2Ugb2YgY2xhc2hlcyBpbiB0aGUgcm91dGluZyB0YWJsZS4gSGVuY2Us
IHRvIG1lLCBpdCBzZWVtcyBvbmx5IG5hdHVyYWwgdG8NCnRvIGtlZXAgcHJvbW90aW5nICJpZ25v
cmUgb3ZlcmxhcCBvbmx5IiBhcyByZXN1bHQgYXMgaXQgbWltaWNzIHRyYWRpdGlvbmFsIHVuaWNh
c3Qgcm91dGluZyB0YWJsZSBjb25zdHJ1Y3RzLg0KDQpUaGUgYWx0ZXJuYXRpdmUgc291bmRzIGEg
Yml0IGxpa2Ugc3RlcHBpbmcgYmFjayB0byBDbGFzcyBBL0IvQyBhZGRyZXNzZXMgYnkganVzdCBh
dm9pZGluZyB0aGUgcHJvYmxlbSBhbmQgc2lnbmlmaWNhbnRseSBpbXBhY3QgcG90ZW50aWFsIGNs
YXNoIHNjZW5hcmlvcyBhcyBjb25zZXF1ZW5jZSBkdWUgdG8gb3ZlcnNpbXBsaWZpY2F0aW9uLg0K
DQpGaW5hbGx5LCBJIGRvIG5vdCB1bmRlcnN0YW5kIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoZSBz
dWRkZW4gd29ycnkgcmVnYXJkaW5nICJpZ25vcmUgb3ZlcmxhcCBvbmx5IiBwb2xpY3kgdG8gYmUg
b2JzY2VuZWx5IGNvbXBsZXguIElmIEkgdW5kZXJzdGFuZCBJRVRGIHByb2NlZHVyZXMgd2VsbCwg
YW5kIGlmDQog4oCcaWdub3JlIG92ZXJsYXAgb25seeKAnSBpcyBkb2N1bWVudGVkIHByb3Blcmx5
LCBqdXN0IGxpa2UgYW55IHN0YW5kYXJkIHRyYWNrIFJGQyBzaG91bGQgYmUsIHRoZW4gaG93IGFy
ZSBpbmNvbXBhdGlibGUgYmVoYXZpb3VycyBwb3NzaWJsZT8gU2hvdWxkIHdlIG5vdCB0cnkgdG8g
YXJjaGl0ZWN0IGZvcg0KdGhlIEJFU1QgcmVhbGlzdGljIGZ1dHVyZSBwcm9vZiBzb2x1dGlvbiwg
YW5kIG5vdCBmb3IgdGhlIGVhc2llc3QgbGVzcyBvcHRpbWFsIHNvbHV0aW9uLiAoS2VlcCBpbiBt
aW5kIHRoYXQgYXQgc29tZSBwb2ludCBpbiB0aW1lIHBlb3BsZSBiZWxpZXZlZCB0aGF0IGRvaW5n
IHJvdXRpbmcgaW4gdGhlDQpzdHlsZSBvZiBDbGFzcyBBL0IvQyB3YXMgdGhlIGZ1dHVyZSBhbHNv
LCBhbmQgc2VlIHdoZXJlIHdlIGFyZSByaWdodCBub3cpLg0KDQpHLw0KDQoNCg0KRnJvbTogc3By
aW5nIFttYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBMZXMgR2lu
c2JlcmcgKGdpbnNiZXJnKQ0KU2VudDogU3VuZGF5LCBEZWNlbWJlciAwNCwgMjAxNiA3OjA0IFBN
DQpUbzogc3ByaW5nQGlldGYub3JnDQpTdWJqZWN0OiBbc3ByaW5nXSBTSUQgQ29uZmxpY3QgUmVz
b2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQoNCg0KV2hlbiB0aGUgcHJvYmxlbSBhZGRyZXNz
ZWQgYnkgZHJhZnQtaWV0Zi1zcHJpbmctY29uZmxpY3QtcmVzb2x1dGlvbiB3YXMgZmlyc3QNCg0K
cHJlc2VudGVkIGF0IElFVEYgOTQsIHRoZSBhdXRob3JzIGRlZmluZWQgdGhlIGZvbGxvd2luZyBw
cmlvcml0aWVzOg0KDQoNCg0KMSlEZXRlY3QgdGhlIHByb2JsZW0NCg0KMilSZXBvcnQgdGhlIHBy
b2JsZW0NCg0KVGhpcyBhbGVydHMgdGhlIG5ldHdvcmsgb3BlcmF0b3IgdG8gdGhlIGV4aXN0ZW5j
ZSBvZiBhIGNvbmZsaWN0IHNvIHRoYXQNCg0KdGhlIGNvbmZpZ3VyYXRpb24gZXJyb3IgY2FuIGJl
IGNvcnJlY3RlZC4NCg0KMylEZWZpbmUgY29uc2lzdGVudCBiZWhhdmlvcg0KDQpUaGlzIGF2b2lk
cyBtaXMtZm9yd2FyZGluZyB3aGlsZSB0aGUgY29uZmxpY3QgZXhpc3RzLg0KDQo0KURvbuKAmXQg
b3ZlcmVuZ2luZWVyIHRoZSBzb2x1dGlvbg0KDQpHaXZlbiB0aGF0IGl0IGlzIGltcG9zc2libGUg
dG8ga25vdyB3aGljaCBvZiB0aGUgY29uZmxpY3RpbmcgZW50cmllcw0KDQppcyB0aGUgY29ycmVj
dCBvbmUsIHdlIHNob3VsZCBhcHBseSBhIHNpbXBsZSBhbGdvcml0aG0gdG8gcmVzb2x2ZSB0aGUg
Y29uZmxpY3QuDQoNCjUpQWdyZWUgb24gdGhlIHJlc29sdXRpb24gYmVoYXZpb3INCg0KDQoNClRo
ZSByZXNvbHV0aW9uIGJlaGF2aW9yIHdhcyBkZWxpYmVyYXRlbHkgdGhlIGxhc3QgcG9pbnQgYmVj
YXVzZSBpdCB3YXMNCg0KY29uc2lkZXJlZCB0aGUgbGVhc3QgaW1wb3J0YW50Lg0KDQoNCg0KSW5w
dXQgd2FzIHJlY2VpdmVkIG92ZXIgdGhlIHBhc3QgeWVhciB3aGljaCBlbXBoYXNpemVkIHRoZSBp
bXBvcnRhbmNlIG9mDQoNCnRyeWluZyB0byAibWF4aW1pemUgZm9yd2FyZGluZyIgaW4gdGhlIHBy
ZXNlbmNlIG9mIGNvbmZsaWN0cy4gU3Vic2VxdWVudA0KDQpyZXZpc2lvbnMgb2YgdGhlIGRyYWZ0
IGhhdmUgdHJpZWQgdG8gYWRkcmVzcyB0aGlzIGNvbmNlcm4uIEhvd2V2ZXIgdGhlIGF1dGhvcnMN
Cg0KaGF2ZSByZXBlYXRlZGx5IHN0cmVzc2VkIHRoYXQgdGhlIHNvbHV0aW9uIGJlaW5nIHByb3Bv
c2VkDQoNCigiaWdub3JlIG92ZXJsYXAgb25seSIpIHdhcyBtb3JlIGNvbXBsZXggdGhhbiBvdGhl
ciBvZmZlcmVkIGFsdGVybmF0aXZlcyBhbmQNCg0Kd291bGQgYmUgbW9yZSBkaWZmaWN1bHQgdG8g
Z3VhcmFudGVlIGludGVyb3BlcmFiaWxpdHkgYmVjYXVzZSBzdWJ0bGUNCg0KZGlmZmVyZW5jZXMg
aW4gYW4gaW1wbGVtZW50YXRpb24gY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgcmVzdWx0cy4NCg0K
DQoNCkF0IElFVEY5NyBzaWduaWZpY2FudCBmZWVkYmFjayB3YXMgcmVjZWl2ZWQgcHJlZmVycmlu
ZyBhIHNpbXBsZXIgc29sdXRpb24gdG8NCg0KdGhlIHByb2JsZW0uIFRoZSBhdXRob3JzIGFyZSB2
ZXJ5IHN5bXBhdGhldGljIHRvIHRoaXMgZmVlZGJhY2sgYW5kIHRoZXJlZm9yZQ0KDQphcmUgcHJv
cG9zaW5nIGEgc29sdXRpb24gYmFzZWQgb24gd2hhdCB0aGUgZHJhZnQgZGVmaW5lcyBhcyB0aGUg
Iklnbm9yZSINCg0KcG9saWN5IC0gd2hlcmUgYWxsIGVudHJpZXMgd2hpY2ggYXJlIGluIGNvbmZs
aWN0IGFyZSBpZ25vcmVkLiBXZSBiZWxpZXZlIHRoaXMNCg0KaXMgZmFyIG1vcmUgZGVzaXJhYmxl
IGFuZCBhbGlnbnMgd2l0aCB0aGUgcHJpb3JpdGllcyBsaXN0ZWQgYWJvdmUuDQoNCg0KDQpXZSBv
dXRsaW5lIHRoZSBwcm9wb3NlZCBzb2x1dGlvbiBiZWxvdyBhbmQgd291bGQgbGlrZSB0byByZWNl
aXZlIGZlZWRiYWNrIGZyb20NCg0KdGhlIFdHIGJlZm9yZSBwdWJsaXNoaW5nIHRoZSBuZXh0IHJl
dmlzaW9uIG9mIHRoZSBkcmFmdC4NCg0KDQoNCiAgIExlcyAob24gYmVoYWxmIG9mIHRoZSBhdXRo
b3JzKQ0KDQoNCg0KTmV3IFByb3Bvc2FsDQoNCg0KDQpJbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9m
IHRoZSBkcmFmdCAiU1JNUyBQcmVmZXJlbmNlIiB3YXMgaW50cm9kdWNlZC4gVGhpcw0KDQpwcm92
aWRlcyBhIHdheSBmb3IgYSBudW1lcmljYWwgcHJlZmVyZW5jZSB0byBiZSBleHBsaWNpdGx5IGFz
c29jaWF0ZWQgd2l0aCBhbg0KDQpTUk1TIGFkdmVydGlzZW1lbnQuIFVzaW5nIHRoaXMgYW4gb3Bl
cmF0b3IgY2FuIGluZGljYXRlIHdoaWNoIGFkdmVydGlzZW1lbnQgaXMNCg0KdG8gYmUgcHJlZmVy
cmVkIHdoZW4gYSBjb25mbGljdCBpcyBwcmVzZW50LiBUaGUgYXV0aG9ycyB0aGluayB0aGlzIGlz
IGEgdXNlZnVsDQoNCmFkZGl0aW9uIGFuZCB3ZSB0aGVyZWZvcmUgd2FudCB0byBpbmNsdWRlIHRo
aXMgaW4gdGhlIG5ldyBzb2x1dGlvbi4NCg0KDQoNClRoZSBuZXcgcHJlZmVyZW5jZSBydWxlIHVz
ZWQgdG8gcmVzb2x2ZSBjb25mbGljdHMgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCg0KQSBn
aXZlbiBtYXBwaW5nIGVudHJ5IGlzIGNvbXBhcmVkIGFnYWluc3QgYWxsIG1hcHBpbmcgZW50cmll
cyBpbiB0aGUgZGF0YWJhc2UNCg0Kd2l0aCBhIHByZWZlcmVuY2UgZ3JlYXRlciB0aGFuIG9yIGVx
dWFsIHRvIGl0cyBvd24uIElmIHRoZXJlIGlzIGEgY29uZmxpY3QsDQoNCnRoZSBtYXBwaW5nIGVu
dHJ5IHdpdGggbG93ZXIgcHJlZmVyZW5jZSBpcyBpZ25vcmVkLiBJZiB0d28gbWFwcGluZyBlbnRy
aWVzIGFyZQ0KDQppbiBjb25mbGljdCBhbmQgaGF2ZSBlcXVhbCBwcmVmZXJlbmNlIHRoZW4gYm90
aCBlbnRyaWVzIGFyZSBpZ25vcmVkLg0KDQoNCg0KSW1wbGVtZW50YXRpb24gb2YgdGhpcyBwb2xp
Y3kgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCg0KU3RlcCAxOiBXaXRoaW4gYSBzaW5nbGUg
YWRkcmVzcy1mYW1pbHkvYWxnb3JpdGhtL3RvcG9sb2d5IHNvcnQgZW50cmllcw0KDQpiYXNlZCBv
biBwcmVmZXJlbmNlDQoNClN0ZXAgMjogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHByZWZlcmVu
Y2UgZW50cmllcywgcmVzb2x2ZSBwcmVmaXggY29uZmxpY3RzDQoNCnVzaW5nIHRoZSBhYm92ZSBw
cmVmZXJlbmNlIHJ1bGUuIFRoZSBvdXRwdXQgaXMgYW4gYWN0aXZlIHBvbGljeSBwZXIgdG9wb2xv
Z3kuDQoNClN0ZXAgMzogVGFrZSB0aGUgb3V0cHV0cyBmcm9tIFN0ZXAgMiBhbmQgYWdhaW4gc29y
dCB0aGVtIGJ5IHByZWZlcmVuY2UNCg0KU3RlcCA0OiBTdGFydGluZyB3aXRoIHRoZSBsb3dlc3Qg
cHJlZmVyZW5jZSBlbnRyaWVzLCByZXNvbHZlIFNJRCBjb25mbGljdHMNCg0KdXNpbmcgdGhlIGFi
b3ZlIHByZWZlcmVuY2UgcnVsZQ0KDQoNCg0KVGhlIG91dHB1dCBmcm9tIFN0ZXAgNCBpcyB0aGVu
IHRoZSBjdXJyZW50IEFjdGl2ZSBQb2xpY3kuDQoNCg0KDQpIZXJlIGFyZSBhIGZldyBleGFtcGxl
cy4gRWFjaCBtYXBwaW5nIGVudHJ5IGlzIHJlcHJlc2VudGVkIGJ5IHRoZSB0dXBsZToNCg0KKFBy
ZWZlcmVuY2UsIFByZWZpeC9tYXNrIEluZGV4IHJhbmdlIDwjPikNCg0KDQoNCkV4YW1wbGUgMToN
Cg0KDQoNCjEuICgxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdlIDEwMCkNCg0KMi4gKDE0OSwgMS4x
LjEuMTAvMzIgMjAwIHJhbmdlIDIwMCkNCg0KMy4gKDE0OCwgMS4xLjEuMTAxLzMyIDUwMCByYW5n
ZSAxMCkNCg0KDQoNCkVudHJ5IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMiwgaXQgaXMgaWdub3Jl
ZC4NCg0KRW50cnkgMiBjb25mbGljdHMgd2l0aCBlbnRyeSAxLCBpdCBpcyBpZ25vcmVkLg0KDQpB
Y3RpdmUgcG9saWN5Og0KDQoNCg0KKDE1MCwgMS4xLjEuMS8zMiAxMDAgcmFuZ2UgMTAwKQ0KDQoN
Cg0KRXhhbXBsZSAyOg0KDQoNCg0KMS4gKDE1MCwgMS4xLjEuMS8zMiAxMDAgcmFuZ2UgMTAwKQ0K
DQoyLiAoMTUwLCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMjAwKQ0KDQozLiAoMTUwLCAxLjEuMS4x
MDEvMzIgNTAwIHJhbmdlIDEwKQ0KDQo0LiAoMTUwLCAyLjIuMi4xLzMyIDEwMDAgcmFuZ2UgMSkN
Cg0KDQoNCkVudHJ5IDEgY29uZmxpY3RzIHdpdGggZW50cnkgMiwgYm90aCBhcmUgbWFya2VkIGFz
IGlnbm9yZS4NCg0KRW50cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAyLiBJdCBpcyBtYXJrZWQg
YXMgaWdub3JlLg0KDQpFbnRyeSA0IGhhcyBubyBjb25mbGljdHMgd2l0aCBhbnkgZW50cmllcw0K
DQoNCg0KQWN0aXZlIHBvbGljeToNCg0KKDE1MCwgMi4yLjIuMS8zMiAxMDAwIHJhbmdlIDEpDQoN
Cg0KDQpFeGFtcGxlIDM6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSA1MDAp
DQoNCjIuICgxNTAsIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAyMDApDQoNCjMuICgxNTAsIDEuMS4x
LjEwMS8zMiA1MDAgcmFuZ2UgMTApDQoNCjQuICgxNTAsIDIuMi4yLjEvMzIgMTAwMCByYW5nZSAx
KQ0KDQoNCg0KRW50cnkgMSBjb25mbGljdHMgd2l0aCBlbnRyaWVzIDIsIDMsIGFuZCAgNC4gQWxs
IGVudHJpZXMgYXJlIG1hcmtlZCBpZ25vcmUuDQoNCg0KDQpBY3RpdmUgcG9saWN5Og0KDQpFbXB0
eQ0KDQoNCg0KRXhhbXBsZSA0Og0KDQoNCg0KMS4gKDE1MCwgMS4xLjEuMS8zMiAxMDAgcmFuZ2Ug
MTApDQoNCjIuICgxNDksIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAzMDApDQoNCjMuICgxNDksIDEu
MS4xLjEwMS8zMiA1MDAgcmFuZ2UgMTApDQoNCjQuICgxNDgsIDIuMi4yLjEvMzIgMTAwMCByYW5n
ZSAxKQ0KDQoNCg0KRW50cnkgNCBjb25mbGljdHMgd2l0aCBlbnRyeSAyLiBJdCBpcyBtYXJrZWQg
aWdub3JlLg0KDQpFbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDMuIEVudHJpZXMgMiBhbmQg
MyBhcmUgbWFya2VkIGlnbm9yZS4NCg0KDQoNCkFjdGl2ZSBwb2xpY3k6DQoNCigxNTAsIDEuMS4x
LjEvMzIgMTAwIHJhbmdlIDEwKQ0KDQoNCg0KDQoNCg0KDQoNCg==

--_000_332FE00B442E44DCA82578E56FC12176alcatellucentcom_
Content-Type: text/html; charset="utf-8"
Content-ID: <01D65057E33BC84EAC0FE9BDF58B9521@exchange.lucent.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iVGl0bGUiIGNvbnRlbnQ9IiI+DQo8bWV0YSBuYW1lPSJLZXl3b3JkcyIgY29udGVu
dD0iIj4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUg
KGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxlPjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8N
CkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6QXJpYWw7DQoJcGFub3NlLTE6MiAxMSA2IDQgMiAy
IDIgMiAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToiQ291cmllciBOZXciOw0KCXBh
bm9zZS0xOjIgNyAzIDkgMiAyIDUgMiA0IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToi
Q2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMTowIDAgMCAwIDAgMCAwIDAgMCAwO30NCkBmb250LWZh
Y2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIg
NDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwg
ZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglm
b250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTpsaW5rLCBzcGFuLk1z
b0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0
LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xs
b3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVj
b3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5Nc29QbGFpblRleHQsIGxpLk1zb1BsYWluVGV4dCwgZGl2
Lk1zb1BsYWluVGV4dA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6
IlBsYWluIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7
DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseTpDYWxpYnJpO30NCnByZQ0KCXttc28t
c3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkhUTUwgUHJlZm9ybWF0dGVkIENo
YXIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZTox
MC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpwLk1zb0xpc3RQYXJhZ3JhcGgs
IGxpLk1zb0xpc3RQYXJhZ3JhcGgsIGRpdi5Nc29MaXN0UGFyYWdyYXBoDQoJe21zby1zdHlsZS1w
cmlvcml0eTozNDsNCgltYXJnaW4tdG9wOjBjbTsNCgltYXJnaW4tcmlnaHQ6MGNtOw0KCW1hcmdp
bi1ib3R0b206MGNtOw0KCW1hcmdpbi1sZWZ0OjM2LjBwdDsNCgltYXJnaW4tYm90dG9tOi4wMDAx
cHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseTpDYWxpYnJpO30NCnNwYW4uSFRN
TFByZWZvcm1hdHRlZENoYXINCgl7bXNvLXN0eWxlLW5hbWU6IkhUTUwgUHJlZm9ybWF0dGVkIENo
YXIiOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiSFRNTCBQcmVm
b3JtYXR0ZWQiOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0Kc3Bhbi5QbGFpblRleHRD
aGFyDQoJe21zby1zdHlsZS1uYW1lOiJQbGFpbiBUZXh0IENoYXIiOw0KCW1zby1zdHlsZS1wcmlv
cml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiUGxhaW4gVGV4dCI7DQoJZm9udC1mYW1pbHk6Q2Fs
aWJyaTt9DQpwLm1zb25vcm1hbDAsIGxpLm1zb25vcm1hbDAsIGRpdi5tc29ub3JtYWwwDQoJe21z
by1zdHlsZS1uYW1lOm1zb25vcm1hbDsNCgltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJn
aW4tcmlnaHQ6MGNtOw0KCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0
OjBjbTsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4i
O30NCnNwYW4uRW1haWxTdHlsZTIzDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQt
ZmFtaWx5OkFyaWFsOw0KCWNvbG9yOndpbmRvd3RleHQ7DQoJZm9udC13ZWlnaHQ6bm9ybWFsOw0K
CWZvbnQtc3R5bGU6bm9ybWFsOw0KCXRleHQtZGVjb3JhdGlvbjpub25lIG5vbmU7fQ0Kc3Bhbi5F
bWFpbFN0eWxlMjQNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1p
bHk6Q2FsaWJyaTsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCnNwYW4ubXNvSW5zDQoJe21zby1zdHls
ZS10eXBlOmV4cG9ydC1vbmx5Ow0KCW1zby1zdHlsZS1uYW1lOiIiOw0KCXRleHQtZGVjb3JhdGlv
bjp1bmRlcmxpbmU7DQoJY29sb3I6dGVhbDt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUt
dHlwZTpleHBvcnQtb25seTsNCglmb250LXNpemU6MTAuMHB0O30NCkBwYWdlIFdvcmRTZWN0aW9u
MQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQg
NzIuMHB0O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlz
dCBEZWZpbml0aW9ucyAqLw0KQGxpc3QgbDANCgl7bXNvLWxpc3QtaWQ6NjAwMDYzMzI4Ow0KCW1z
by1saXN0LXR5cGU6aHlicmlkOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczotMjAyOTg1OTUwNCA2
NzY5ODcwMyA2NzY5ODcxMyA2NzY5ODcxNSA2NzY5ODcwMyA2NzY5ODcxMyA2NzY5ODcxNSA2NzY5
ODcwMyA2NzY5ODcxMyA2NzY5ODcxNTt9DQpAbGlzdCBsMDpsZXZlbDENCgl7bXNvLWxldmVsLXRh
Yi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k
ZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDA6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0
OmFscGhhLWxvd2VyOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwwOmxldmVs
Mw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpyb21hbi1sb3dlcjsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOnJpZ2h0Ow0KCXRleHQtaW5k
ZW50Oi05LjBwdDt9DQpAbGlzdCBsMDpsZXZlbDQNCgl7bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7
DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7
fQ0KQGxpc3QgbDA6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmFscGhhLWxvd2Vy
Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwwOmxldmVsNg0KCXttc28tbGV2
ZWwtbnVtYmVyLWZvcm1hdDpyb21hbi1sb3dlcjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsN
Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOnJpZ2h0Ow0KCXRleHQtaW5kZW50Oi05LjBwdDt9
DQpAbGlzdCBsMDpsZXZlbDcNCgl7bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7fQ0KQGxpc3QgbDA6
bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmFscGhhLWxvd2VyOw0KCW1zby1sZXZl
bC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0
LWluZGVudDotMTguMHB0O30NCkBsaXN0IGwwOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpyb21hbi1sb3dlcjsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwt
bnVtYmVyLXBvc2l0aW9uOnJpZ2h0Ow0KCXRleHQtaW5kZW50Oi05LjBwdDt9DQpvbA0KCXttYXJn
aW4tYm90dG9tOjBjbTt9DQp1bA0KCXttYXJnaW4tYm90dG9tOjBjbTt9DQotLT48L3N0eWxlPg0K
PC9oZWFkPg0KPGJvZHkgYmdjb2xvcj0id2hpdGUiIGxhbmc9IkVOLUdCIiBsaW5rPSJibHVlIiB2
bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPlRoZSBtZXRob2QgdG8g4oCcbWF4aW1p
emUgZm9yd2FyZGluZ+KAnSBhcyBtZW50aW9uZWQgaW4gdGhlIGRyYWZ0IHNlZW1zIHRvIGJlIGlu
IGNvbnNpc3RlbnQgbG9naWMgd2l0aCBob3cgdGhlIGN1cnJlbnQNCjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+dW5p
Y2FzdCByb3V0aW5nIHRhYmxlIGlzIGJ1aWxkLiBGb3IgdW5pY2FzdCByb3V0ZXMgdGhlIHJvdXRl
IHNlbGVjdGVkIGZvciBhIGdpdmVuIElQIGRlc3RpbmF0aW9uIGFkZHJlc3MgaXMgYSBmdW5jdGlv
bihwcmVmaXgtbGVuZ3RoL2FkbWluLWRpc3RhbmNlKS4NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+VGhpcyBpcyBk
b25lIGZvciBiZXR0ZXIgYWRkcmVzcyBzcGFjZSBtYW5hZ2VtZW50LCBhbmQgdG8gaGF2ZSBwcmVk
aWN0YWJsZSByb3V0aW5nIGluY2FzZSBvZiBjbGFzaGVzIGluIHRoZSByb3V0aW5nIHRhYmxlLiBI
ZW5jZSwgdG8gbWUsIGl0IHNlZW1zIG9ubHkgbmF0dXJhbCB0bw0KPG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj50byBr
ZWVwIHByb21vdGluZyAmcXVvdDtpZ25vcmUgb3ZlcmxhcCBvbmx5JnF1b3Q7IGFzIHJlc3VsdCBh
cyBpdCBtaW1pY3MgdHJhZGl0aW9uYWwgdW5pY2FzdCByb3V0aW5nIHRhYmxlIGNvbnN0cnVjdHMu
DQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iY29sb3I6YmxhY2siPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+VGhlIGFsdGVybmF0aXZlIHNvdW5k
cyBhIGJpdCBsaWtlIHN0ZXBwaW5nIGJhY2sgdG8gQ2xhc3MgQS9CL0MgYWRkcmVzc2VzIGJ5IGp1
c3QgYXZvaWRpbmcgdGhlIHByb2JsZW0gYW5kIHNpZ25pZmljYW50bHkgaW1wYWN0IHBvdGVudGlh
bCBjbGFzaCBzY2VuYXJpb3MgYXMgY29uc2VxdWVuY2UgZHVlIHRvIG92ZXJzaW1wbGlmaWNhdGlv
bi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iY29sb3I6YmxhY2siPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+RmluYWxseSwgSSBkbyBub3QgdW5k
ZXJzdGFuZCB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGUgc3VkZGVuIHdvcnJ5IHJlZ2FyZGluZyAm
cXVvdDtpZ25vcmUgb3ZlcmxhcCBvbmx5JnF1b3Q7IHBvbGljeSB0byBiZSBvYnNjZW5lbHkgY29t
cGxleC4gSWYgSSB1bmRlcnN0YW5kIElFVEYgcHJvY2VkdXJlcyB3ZWxsLCBhbmQgaWYNCjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xv
cjpibGFjayI+Jm5ic3A74oCcaWdub3JlIG92ZXJsYXAgb25seeKAnSBpcyBkb2N1bWVudGVkIHBy
b3Blcmx5LCBqdXN0IGxpa2UgYW55IHN0YW5kYXJkIHRyYWNrIFJGQyBzaG91bGQgYmUsIHRoZW4g
aG93IGFyZSBpbmNvbXBhdGlibGUgYmVoYXZpb3VycyBwb3NzaWJsZT8gU2hvdWxkIHdlIG5vdCB0
cnkgdG8gYXJjaGl0ZWN0IGZvcg0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj50aGUgQkVTVCByZWFsaXN0aWMgZnV0
dXJlIHByb29mIHNvbHV0aW9uLCBhbmQgbm90IGZvciB0aGUgZWFzaWVzdCBsZXNzIG9wdGltYWwg
c29sdXRpb24uIChLZWVwIGluIG1pbmQgdGhhdCBhdCBzb21lIHBvaW50IGluIHRpbWUgcGVvcGxl
IGJlbGlldmVkIHRoYXQgZG9pbmcgcm91dGluZyBpbiB0aGUNCjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+c3R5bGUg
b2YgQ2xhc3MgQS9CL0Mgd2FzIHRoZSBmdXR1cmUgYWxzbywgYW5kIHNlZSB3aGVyZSB3ZSBhcmUg
cmlnaHQgbm93KS4NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5HLyA8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6
YmxhY2siPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1m
YW1pbHk6QXJpYWwiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJv
cmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowY20gMGNtIDBj
bSA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xp
ZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PGI+RnJvbTo8L2I+IHNwcmluZyBbbWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYu
b3JnXSA8Yj5PbiBCZWhhbGYgT2YNCjwvYj5MZXMgR2luc2JlcmcgKGdpbnNiZXJnKTxicj4NCjxi
PlNlbnQ6PC9iPiBTdW5kYXksIERlY2VtYmVyIDA0LCAyMDE2IDc6MDQgUE08YnI+DQo8Yj5Ubzo8
L2I+IHNwcmluZ0BpZXRmLm9yZzxicj4NCjxiPlN1YmplY3Q6PC9iPiBbc3ByaW5nXSBTSUQgQ29u
ZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsPG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5XaGVuIHRoZSBwcm9ibGVtIGFkZHJlc3NlZCBieSBkcmFm
dC1pZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uIHdhcyBmaXJzdA0KPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5wcmVzZW50ZWQgYXQgSUVURiA5NCwgdGhlIGF1
dGhvcnMgZGVmaW5lZCB0aGUgZm9sbG93aW5nIHByaW9yaXRpZXM6PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPjEpRGV0ZWN0IHRoZSBwcm9ibGVtPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4yKVJlcG9ydCB0aGUgcHJvYmxlbTxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+VGhpcyBhbGVydHMgdGhlIG5ldHdvcmsgb3BlcmF0b3IgdG8g
dGhlIGV4aXN0ZW5jZSBvZiBhIGNvbmZsaWN0IHNvIHRoYXQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPnRoZSBjb25maWd1cmF0aW9uIGVycm9yIGNhbiBiZSBjb3JyZWN0
ZWQuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4zKURlZmluZSBjb25z
aXN0ZW50IGJlaGF2aW9yPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5U
aGlzIGF2b2lkcyBtaXMtZm9yd2FyZGluZyB3aGlsZSB0aGUgY29uZmxpY3QgZXhpc3RzLjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+NClEb27igJl0IG92ZXJlbmdpbmVl
ciB0aGUgc29sdXRpb248bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkdp
dmVuIHRoYXQgaXQgaXMgaW1wb3NzaWJsZSB0byBrbm93IHdoaWNoIG9mIHRoZSBjb25mbGljdGlu
ZyBlbnRyaWVzPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5pcyB0aGUg
Y29ycmVjdCBvbmUsIHdlIHNob3VsZCBhcHBseSBhIHNpbXBsZSBhbGdvcml0aG0gdG8gcmVzb2x2
ZSB0aGUgY29uZmxpY3QuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij41
KUFncmVlIG9uIHRoZSByZXNvbHV0aW9uIGJlaGF2aW9yPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPlRoZSByZXNvbHV0aW9uIGJlaGF2aW9yIHdhcyBkZWxpYmVyYXRlbHkgdGhlIGxhc3Qg
cG9pbnQgYmVjYXVzZSBpdCB3YXMNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Y29uc2lkZXJlZCB0aGUgbGVhc3QgaW1wb3J0YW50LjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij5JbnB1dCB3YXMgcmVjZWl2ZWQgb3ZlciB0aGUgcGFzdCB5ZWFyIHdoaWNoIGVt
cGhhc2l6ZWQgdGhlIGltcG9ydGFuY2Ugb2Y8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPnRyeWluZyB0byAmcXVvdDttYXhpbWl6ZSBmb3J3YXJkaW5nJnF1b3Q7IGluIHRo
ZSBwcmVzZW5jZSBvZiBjb25mbGljdHMuIFN1YnNlcXVlbnQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPnJldmlzaW9ucyBvZiB0aGUgZHJhZnQgaGF2ZSB0cmllZCB0byBh
ZGRyZXNzIHRoaXMgY29uY2Vybi4gSG93ZXZlciB0aGUgYXV0aG9ycw0KPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5oYXZlIHJlcGVhdGVkbHkgc3RyZXNzZWQgdGhhdCB0
aGUgc29sdXRpb24gYmVpbmcgcHJvcG9zZWQNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+KCZxdW90O2lnbm9yZSBvdmVybGFwIG9ubHkmcXVvdDspIHdhcyBtb3JlIGNv
bXBsZXggdGhhbiBvdGhlciBvZmZlcmVkIGFsdGVybmF0aXZlcyBhbmQNCjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+d291bGQgYmUgbW9yZSBkaWZmaWN1bHQgdG8gZ3Vh
cmFudGVlIGludGVyb3BlcmFiaWxpdHkgYmVjYXVzZSBzdWJ0bGUNCjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+ZGlmZmVyZW5jZXMgaW4gYW4gaW1wbGVtZW50YXRpb24g
Y291bGQgcHJvZHVjZSBkaWZmZXJlbnQgcmVzdWx0cy48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+QXQgSUVURjk3IHNpZ25pZmljYW50IGZlZWRiYWNrIHdhcyByZWNlaXZlZCBwcmVmZXJy
aW5nIGEgc2ltcGxlciBzb2x1dGlvbiB0bw0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij50aGUgcHJvYmxlbS4gVGhlIGF1dGhvcnMgYXJlIHZlcnkgc3ltcGF0aGV0aWMg
dG8gdGhpcyBmZWVkYmFjayBhbmQgdGhlcmVmb3JlDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPmFyZSBwcm9wb3NpbmcgYSBzb2x1dGlvbiBiYXNlZCBvbiB3aGF0IHRo
ZSBkcmFmdCBkZWZpbmVzIGFzIHRoZSAmcXVvdDtJZ25vcmUmcXVvdDsNCjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+cG9saWN5IC0gd2hlcmUgYWxsIGVudHJpZXMgd2hp
Y2ggYXJlIGluIGNvbmZsaWN0IGFyZSBpZ25vcmVkLiBXZSBiZWxpZXZlIHRoaXMNCjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+aXMgZmFyIG1vcmUgZGVzaXJhYmxlIGFu
ZCBhbGlnbnMgd2l0aCB0aGUgcHJpb3JpdGllcyBsaXN0ZWQgYWJvdmUuPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPldlIG91dGxpbmUgdGhlIHByb3Bvc2VkIHNvbHV0aW9uIGJlbG93IGFu
ZCB3b3VsZCBsaWtlIHRvIHJlY2VpdmUgZmVlZGJhY2sgZnJvbQ0KPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij50aGUgV0cgYmVmb3JlIHB1Ymxpc2hpbmcgdGhlIG5leHQg
cmV2aXNpb24gb2YgdGhlIGRyYWZ0LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJz
cDsmbmJzcDsgTGVzIChvbiBiZWhhbGYgb2YgdGhlIGF1dGhvcnMpPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPjxpPk5ldyBQcm9wb3NhbDwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPjxpPiZuYnNwOzwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPjxpPkluIHRoZSBsYXRlc3QgcmV2aXNpb24gb2YgdGhlIGRyYWZ0ICZxdW90
O1NSTVMgUHJlZmVyZW5jZSZxdW90OyB3YXMgaW50cm9kdWNlZC4gVGhpcw0KPC9pPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+cHJvdmlkZXMgYSB3YXkgZm9yIGEg
bnVtZXJpY2FsIHByZWZlcmVuY2UgdG8gYmUgZXhwbGljaXRseSBhc3NvY2lhdGVkIHdpdGggYW4N
CjwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxpPlNSTVMgYWR2
ZXJ0aXNlbWVudC4gVXNpbmcgdGhpcyBhbiBvcGVyYXRvciBjYW4gaW5kaWNhdGUgd2hpY2ggYWR2
ZXJ0aXNlbWVudCBpcw0KPC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+PGk+dG8gYmUgcHJlZmVycmVkIHdoZW4gYSBjb25mbGljdCBpcyBwcmVzZW50LiBUaGUgYXV0
aG9ycyB0aGluayB0aGlzIGlzIGEgdXNlZnVsDQo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij48aT5hZGRpdGlvbiBhbmQgd2UgdGhlcmVmb3JlIHdhbnQgdG8gaW5j
bHVkZSB0aGlzIGluIHRoZSBuZXcgc29sdXRpb24uPC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+PGk+Jm5ic3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+PGk+VGhlIG5ldyBwcmVmZXJlbmNlIHJ1bGUgdXNlZCB0byByZXNvbHZl
IGNvbmZsaWN0cyBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+Jm5ic3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+QSBnaXZlbiBtYXBwaW5nIGVudHJ5IGlzIGNvbXBhcmVk
IGFnYWluc3QgYWxsIG1hcHBpbmcgZW50cmllcyBpbiB0aGUgZGF0YWJhc2UNCjwvaT48L2I+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT53aXRoIGEgcHJlZmVy
ZW5jZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gaXRzIG93bi4gSWYgdGhlcmUgaXMgYSBjb25m
bGljdCwNCjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48
Yj48aT50aGUgbWFwcGluZyBlbnRyeSB3aXRoIGxvd2VyIHByZWZlcmVuY2UgaXMgaWdub3JlZC4g
SWYgdHdvIG1hcHBpbmcgZW50cmllcyBhcmU8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+aW4gY29uZmxpY3QgYW5kIGhhdmUgZXF1YWwgcHJlZmVy
ZW5jZSB0aGVuIGJvdGggZW50cmllcyBhcmUgaWdub3JlZC48L2k+PC9iPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+Jm5ic3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+SW1wbGVtZW50YXRpb24gb2YgdGhpcyBwb2xpY3kg
aXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPjxpPiZuYnNwOzwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjxiPjxpPlN0ZXAgMTogV2l0aGluIGEgc2luZ2xlIGFkZHJlc3MtZmFtaWx5L2FsZ29y
aXRobS90b3BvbG9neSBzb3J0IGVudHJpZXMNCjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT5iYXNlZCBvbiBwcmVmZXJlbmNlIDwvaT48L2I+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT5TdGVwIDI6IFN0YXJ0
aW5nIHdpdGggdGhlIGxvd2VzdCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgcHJlZml4IGNv
bmZsaWN0cw0KPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PjxiPjxpPnVzaW5nIHRoZSBhYm92ZSBwcmVmZXJlbmNlIHJ1bGUuIFRoZSBvdXRwdXQgaXMgYW4g
YWN0aXZlIHBvbGljeSBwZXIgdG9wb2xvZ3kuPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPjxiPjxpPlN0ZXAgMzogVGFrZSB0aGUgb3V0cHV0cyBmcm9tIFN0
ZXAgMiBhbmQgYWdhaW4gc29ydCB0aGVtIGJ5IHByZWZlcmVuY2UNCjwvaT48L2I+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT5TdGVwIDQ6IFN0YXJ0aW5nIHdp
dGggdGhlIGxvd2VzdCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgU0lEIGNvbmZsaWN0cw0K
PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPnVz
aW5nIHRoZSBhYm92ZSBwcmVmZXJlbmNlIHJ1bGU8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+Jm5ic3A7PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPlRoZSBvdXRwdXQgZnJvbSBTdGVwIDQgaXMg
dGhlbiB0aGUgY3VycmVudCBBY3RpdmUgUG9saWN5LjwvaT48L2I+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPkhlcmUgYXJlIGEgZmV3IGV4YW1wbGVzLiBFYWNoIG1hcHBpbmcgZW50cnkg
aXMgcmVwcmVzZW50ZWQgYnkgdGhlIHR1cGxlOjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+KFByZWZlcmVuY2UsIFByZWZpeC9tYXNrIEluZGV4IHJhbmdlICZsdDsjJmd0
Oyk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+RXhhbXBsZSAxOjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4xLiAoMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSAxMDApPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4yLiAoMTQ5LCAxLjEuMS4xMC8zMiAy
MDAgcmFuZ2UgMjAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+My4g
KDE0OCwgMS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+RW50cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBpdCBpcyBpZ25vcmVkLjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+RW50cnkgMiBjb25mbGljdHMgd2l0
aCBlbnRyeSAxLCBpdCBpcyBpZ25vcmVkLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+QWN0aXZlIHBvbGljeTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+KDE1
MCwgMS4xLjEuMS8zMiAxMDAgcmFuZ2UgMTAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij5FeGFtcGxlIDI6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjEuICgxNTAsIDEuMS4x
LjEvMzIgMTAwIHJhbmdlIDEwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPjIuICgxNTAsIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAyMDApPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4zLiAoMTUwLCAxLjEuMS4xMDEvMzIgNTAwIHJhbmdlIDEw
KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+NC4gKDE1MCwgMi4yLjIu
MS8zMiAxMDAwIHJhbmdlIDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkVudHJ5IDEg
Y29uZmxpY3RzIHdpdGggZW50cnkgMiwgYm90aCBhcmUgbWFya2VkIGFzIGlnbm9yZS48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkVudHJ5IDMgY29uZmxpY3RzIHdpdGgg
ZW50cnkgMi4gSXQgaXMgbWFya2VkIGFzIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPkVudHJ5IDQgaGFzIG5vIGNvbmZsaWN0cyB3aXRoIGFueSBlbnRyaWVz
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkFjdGl2ZSBwb2xpY3k6PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4oMTUwLCAyLjIuMi4xLzMyIDEwMDAgcmFuZ2Ug
MSk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+RXhhbXBsZSAzOjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4xLiAoMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSA1MDApPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4yLiAoMTUwLCAxLjEuMS4xMC8zMiAy
MDAgcmFuZ2UgMjAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+My4g
KDE1MCwgMS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPjQuICgxNTAsIDIuMi4yLjEvMzIgMTAwMCByYW5nZSAxKTxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5FbnRyeSAxIGNvbmZsaWN0cyB3aXRoIGVudHJpZXMgMiwg
MywgYW5kJm5ic3A7IDQuIEFsbCBlbnRyaWVzIGFyZSBtYXJrZWQgaWdub3JlLjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij5BY3RpdmUgcG9saWN5OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+RW1wdHk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+RXhh
bXBsZSA0OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4xLiAoMTUwLCAxLjEuMS4xLzMy
IDEwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjIu
ICgxNDksIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAzMDApPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4zLiAoMTQ5LCAxLjEuMS4xMDEvMzIgNTAwIHJhbmdlIDEwKTxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+NC4gKDE0OCwgMi4yLjIuMS8zMiAx
MDAwIHJhbmdlIDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkVudHJ5IDQgY29uZmxp
Y3RzIHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPkVudHJ5IDIgY29uZmxpY3RzIHdpdGggZW50cnkgMy4gRW50
cmllcyAyIGFuZCAzIGFyZSBtYXJrZWQgaWdub3JlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij5BY3RpdmUgcG9saWN5OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+KDE1MCwgMS4xLjEuMS8zMiAxMDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_332FE00B442E44DCA82578E56FC12176alcatellucentcom_--


From nobody Fri Dec  9 13:43:17 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 90EBD12955D for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 13:43:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.417
X-Spam-Level: 
X-Spam-Status: No, score=-17.417 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P8lbJRpiPDig for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 13:43:06 -0800 (PST)
Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 95D1B129541 for <spring@ietf.org>; Fri,  9 Dec 2016 13:43:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=44676; q=dns/txt; s=iport; t=1481319786; x=1482529386; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=0WWntRCLydWmSOmwLoH8kJIGkXp++LFIK5y08byww7M=; b=gjry0xk2tU91pz6/obMUgzrSrlPabWRPcWbdVK0Q/BSxpbcwaxj2sVeX 7/mH3O+cyqBB3AOcB7mv22GZTBEj1px7IUB3WN49/719SRJi+MgjA4iCY 6N4Y1cmWyJVucUofvMgdNOiMRjtsMHk4WNPt6/trxMF1pK4wi6GN3ZbPK Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BvAQAaJEtY/4gNJK1dGgEBAQECAQEBA?= =?us-ascii?q?QgBAQEBgnNEAQEBAQEfWoEGB41ClxOVAoIKhiECGoFMPxQBAgEBAQEBAQFiKIR?= =?us-ascii?q?oAQEBBCMKXAIBCBEEAQEhAQYDAgICMBQJCAIEARIIEwSITKsjgikvinABAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEdhj6DU4EIhF8fgk6CXQWVAIVrAZEXkE6OC4QNAR8?= =?us-ascii?q?3SViDYByBXXKHASuBA4ENAQEB?=
X-IronPort-AV: E=Sophos;i="5.33,325,1477958400";  d="scan'208,217";a="184560650"
Received: from alln-core-3.cisco.com ([173.36.13.136]) by rcdn-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 09 Dec 2016 21:43:05 +0000
Received: from XCH-RCD-001.cisco.com (xch-rcd-001.cisco.com [173.37.102.11]) by alln-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id uB9Lh5cI006313 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 9 Dec 2016 21:43:05 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-RCD-001.cisco.com (173.37.102.11) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Fri, 9 Dec 2016 15:43:04 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Fri, 9 Dec 2016 15:43:04 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: "Van De Velde, Gunter (Nokia - BE)" <gunter.van_de_velde@nokia.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AQHSUlhMOvA8JiDrT2eiOTpEk40qz6EAG4Cg
Date: Fri, 9 Dec 2016 21:43:04 +0000
Message-ID: <33ada622a415433ba2955ca8c0aa6dc5@XCH-ALN-001.cisco.com>
References: <332FE00B-442E-44DC-A825-78E56FC12176@alcatel-lucent.com>
In-Reply-To: <332FE00B-442E-44DC-A825-78E56FC12176@alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.119.150]
Content-Type: multipart/alternative; boundary="_000_33ada622a415433ba2955ca8c0aa6dc5XCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/xep3h10SmnMmurlvttBC-mho7dE>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 21:43:09 -0000

--_000_33ada622a415433ba2955ca8c0aa6dc5XCHALN001ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

R3VudGVyIOKAkw0KDQpJdCBpcyBhIG1pc3VuZGVyc3RhbmRpbmcgdG8gdGhpbmsgdGhhdCBjb25m
bGljdCByZXNvbHV0aW9uIG9mIEFOWSBGTEFWT1IgYWZmZWN0cyB0aGUgYmVzdCBwYXRoIHNlbGVj
dGlvbi9pbnN0YWxsYXRpb24uIFRoaXMgaXMgc2ltcGx5IG5vdCB0aGUgY2FzZS4NCg0KV2UgYXJl
IHRhbGtpbmcgYWJvdXQgYW4gTVBMUyBmb3J3YXJkaW5nIHBsYW5lIHdoaWNoIHVzZXMgbGFiZWxz
IHdoaWNoIGFyZSBnbG9iYWxseSBzY29wZWQuIChUaGUgZmFjdCB0aGF0IHRoZSBsYWJlbCBpcyBy
ZXByZXNlbnRlZCBhcyBhbiBpbmRleCBpbnRvIGEgcm91dGVyIHNwZWNpZmljIFNSR0IgaXMgbm90
IHJlbGV2YW50KS4NCklmIHdlIGhhdmUgYSBjb25mbGljdCB0aGVuIGEgZ2l2ZW4gbGFiZWwgY2Fu
IGJlIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBwcmVmaXhlcyDigJMgaGVyZSBpcyBvbmUgZXhh
bXBsZToNCg0KMS4xLjEuMS8zMiBpbmRleCAxMDANCjIuMi4yLjIvMzIgaW5kZXggMTAwDQoNCklm
IEkgY2hvb3NlIHRvIHVzZSBpbmRleCAxMDAgZm9yIDEuMS4xLjEvMzIg4oCTIGJ1dCBteSBuZWln
aGJvciBjaG9vc2VzIHRvIHVzZSBpbmRleCAxMDAgZm9yIDIuMi4yLjIvMzIg4oCTIHRoZW4gd2hl
biBJIGVuY2Fwc3VsYXRlIGEgcGFja2V0IGFkZHJlc3NlZCB0byAxLjEuMS4xIGFuZCBmb3J3YXJk
IGl0IHRvIG15IG5laWdoYm9yIGl0IHdpbGwgZ2V0IHNlbnQgaW4gdGhlIGRpcmVjdGlvbiBvZiAy
LjIuMi4yLg0KVGhpcyBpcyB0aGUgcHJvYmxlbSBjb25mbGljdCByZXNvbHV0aW9uIGlzIHRyeWlu
ZyB0byBhZGRyZXNzLg0KDQpBcyByZWdhcmRzIOKAnGlnbm9yZSBvdmVybGFwIG9ubHnigJ0gY29t
cGxleGl0eSwgSSByZXBlYXQgbXkgZWFybGllciByZXBseSB0byBCcnVubzoNCg0K4oCcSWYgeW91
IHdhbnQgdG8gYXJndWUgdGhhdCB0aGVzZSBhcmUgc29sdmFibGUgcHJvYmxlbXMgSSB3b27igJl0
IGRpc2FncmVlIHdpdGggeW91IOKAkyBpdCBpcyBhIHF1ZXN0aW9uIG9mIHdoZXJlIHdlIHdhbnQg
dG8gcHV0IG91ciB0aW1lIGFuZCBlZmZvcnQuIEEgbnVtYmVyIG9mIGZvbGtzIGFyZSBjb21tZW50
aW5nIHRoYXQgdGhleSBwcmVmZXIgdG8gZm9jdXMgb24gZml4aW5nIHRoZSBjb25maWd1cmF0aW9u
IGFuZCBub3QgaW52ZXN0ICB0aW1lIGluIHZhbGlkYXRpbmcgdGhhdCBjb25mbGljdCByZXNvbHV0
aW9uIGlzIGltcGxlbWVudGVkIGluIGFuIGludGVyb3BlcmFibGUgd2F5LiBBcyB3ZSAodGhlIGF1
dGhvcnMpIGhhdmUgc3RhdGVkIGZyb20gdGhlIGJlZ2lubmluZywgd2UgYmVsaWV2ZSB0aGUgZW1w
aGFzaXMgc2hvdWxkIGJlIG9uIGRldGVjdGluZyBhbmQgcmVwb3J0aW5nIHRoZSBjb25mbGljdHMg
4oCTIG5vdCBzcGVuZGluZyBjeWNsZXMgaW1wbGVtZW50aW5nIHRoZSBtb3N0IHJvYnVzdCBtZWFu
cyBvZiB0cnlpbmcgdG8gb3BlcmF0ZSBvcHRpbWFsbHkgd2hpbGUgdGhlIG1pc2NvbmZpZ3VyYXRp
b24gZXhpc3RzLuKAnQ0KDQogICBMZXMNCg0KDQpGcm9tOiBWYW4gRGUgVmVsZGUsIEd1bnRlciAo
Tm9raWEgLSBCRSkgW21haWx0bzpndW50ZXIudmFuX2RlX3ZlbGRlQG5va2lhLmNvbV0NClNlbnQ6
IEZyaWRheSwgRGVjZW1iZXIgMDksIDIwMTYgMTI6MTEgUE0NClRvOiBMZXMgR2luc2JlcmcgKGdp
bnNiZXJnKTsgc3ByaW5nQGlldGYub3JnDQpTdWJqZWN0OiBSZTogW3NwcmluZ10gU0lEIENvbmZs
aWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KDQpUaGUgbWV0aG9kIHRvIOKAnG1h
eGltaXplIGZvcndhcmRpbmfigJ0gYXMgbWVudGlvbmVkIGluIHRoZSBkcmFmdCBzZWVtcyB0byBi
ZSBpbiBjb25zaXN0ZW50IGxvZ2ljIHdpdGggaG93IHRoZSBjdXJyZW50DQp1bmljYXN0IHJvdXRp
bmcgdGFibGUgaXMgYnVpbGQuIEZvciB1bmljYXN0IHJvdXRlcyB0aGUgcm91dGUgc2VsZWN0ZWQg
Zm9yIGEgZ2l2ZW4gSVAgZGVzdGluYXRpb24gYWRkcmVzcyBpcyBhIGZ1bmN0aW9uKHByZWZpeC1s
ZW5ndGgvYWRtaW4tZGlzdGFuY2UpLg0KVGhpcyBpcyBkb25lIGZvciBiZXR0ZXIgYWRkcmVzcyBz
cGFjZSBtYW5hZ2VtZW50LCBhbmQgdG8gaGF2ZSBwcmVkaWN0YWJsZSByb3V0aW5nIGluY2FzZSBv
ZiBjbGFzaGVzIGluIHRoZSByb3V0aW5nIHRhYmxlLiBIZW5jZSwgdG8gbWUsIGl0IHNlZW1zIG9u
bHkgbmF0dXJhbCB0bw0KdG8ga2VlcCBwcm9tb3RpbmcgImlnbm9yZSBvdmVybGFwIG9ubHkiIGFz
IHJlc3VsdCBhcyBpdCBtaW1pY3MgdHJhZGl0aW9uYWwgdW5pY2FzdCByb3V0aW5nIHRhYmxlIGNv
bnN0cnVjdHMuDQoNClRoZSBhbHRlcm5hdGl2ZSBzb3VuZHMgYSBiaXQgbGlrZSBzdGVwcGluZyBi
YWNrIHRvIENsYXNzIEEvQi9DIGFkZHJlc3NlcyBieSBqdXN0IGF2b2lkaW5nIHRoZSBwcm9ibGVt
IGFuZCBzaWduaWZpY2FudGx5IGltcGFjdCBwb3RlbnRpYWwgY2xhc2ggc2NlbmFyaW9zIGFzIGNv
bnNlcXVlbmNlIGR1ZSB0byBvdmVyc2ltcGxpZmljYXRpb24uDQoNCkZpbmFsbHksIEkgZG8gbm90
IHVuZGVyc3RhbmQgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhlIHN1ZGRlbiB3b3JyeSByZWdhcmRp
bmcgImlnbm9yZSBvdmVybGFwIG9ubHkiIHBvbGljeSB0byBiZSBvYnNjZW5lbHkgY29tcGxleC4g
SWYgSSB1bmRlcnN0YW5kIElFVEYgcHJvY2VkdXJlcyB3ZWxsLCBhbmQgaWYNCiDigJxpZ25vcmUg
b3ZlcmxhcCBvbmx54oCdIGlzIGRvY3VtZW50ZWQgcHJvcGVybHksIGp1c3QgbGlrZSBhbnkgc3Rh
bmRhcmQgdHJhY2sgUkZDIHNob3VsZCBiZSwgdGhlbiBob3cgYXJlIGluY29tcGF0aWJsZSBiZWhh
dmlvdXJzIHBvc3NpYmxlPyBTaG91bGQgd2Ugbm90IHRyeSB0byBhcmNoaXRlY3QgZm9yDQp0aGUg
QkVTVCByZWFsaXN0aWMgZnV0dXJlIHByb29mIHNvbHV0aW9uLCBhbmQgbm90IGZvciB0aGUgZWFz
aWVzdCBsZXNzIG9wdGltYWwgc29sdXRpb24uIChLZWVwIGluIG1pbmQgdGhhdCBhdCBzb21lIHBv
aW50IGluIHRpbWUgcGVvcGxlIGJlbGlldmVkIHRoYXQgZG9pbmcgcm91dGluZyBpbiB0aGUNCnN0
eWxlIG9mIENsYXNzIEEvQi9DIHdhcyB0aGUgZnV0dXJlIGFsc28sIGFuZCBzZWUgd2hlcmUgd2Ug
YXJlIHJpZ2h0IG5vdykuDQoNCkcvDQoNCg0KDQpGcm9tOiBzcHJpbmcgW21haWx0bzpzcHJpbmct
Ym91bmNlc0BpZXRmLm9yZ10gT24gQmVoYWxmIE9mIExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpDQpT
ZW50OiBTdW5kYXksIERlY2VtYmVyIDA0LCAyMDE2IDc6MDQgUE0NClRvOiBzcHJpbmdAaWV0Zi5v
cmc8bWFpbHRvOnNwcmluZ0BpZXRmLm9yZz4NClN1YmplY3Q6IFtzcHJpbmddIFNJRCBDb25mbGlj
dCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWwNCg0KDQpXaGVuIHRoZSBwcm9ibGVtIGFk
ZHJlc3NlZCBieSBkcmFmdC1pZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uIHdhcyBmaXJz
dA0KDQpwcmVzZW50ZWQgYXQgSUVURiA5NCwgdGhlIGF1dGhvcnMgZGVmaW5lZCB0aGUgZm9sbG93
aW5nIHByaW9yaXRpZXM6DQoNCg0KDQoxKURldGVjdCB0aGUgcHJvYmxlbQ0KDQoyKVJlcG9ydCB0
aGUgcHJvYmxlbQ0KDQpUaGlzIGFsZXJ0cyB0aGUgbmV0d29yayBvcGVyYXRvciB0byB0aGUgZXhp
c3RlbmNlIG9mIGEgY29uZmxpY3Qgc28gdGhhdA0KDQp0aGUgY29uZmlndXJhdGlvbiBlcnJvciBj
YW4gYmUgY29ycmVjdGVkLg0KDQozKURlZmluZSBjb25zaXN0ZW50IGJlaGF2aW9yDQoNClRoaXMg
YXZvaWRzIG1pcy1mb3J3YXJkaW5nIHdoaWxlIHRoZSBjb25mbGljdCBleGlzdHMuDQoNCjQpRG9u
4oCZdCBvdmVyZW5naW5lZXIgdGhlIHNvbHV0aW9uDQoNCkdpdmVuIHRoYXQgaXQgaXMgaW1wb3Nz
aWJsZSB0byBrbm93IHdoaWNoIG9mIHRoZSBjb25mbGljdGluZyBlbnRyaWVzDQoNCmlzIHRoZSBj
b3JyZWN0IG9uZSwgd2Ugc2hvdWxkIGFwcGx5IGEgc2ltcGxlIGFsZ29yaXRobSB0byByZXNvbHZl
IHRoZSBjb25mbGljdC4NCg0KNSlBZ3JlZSBvbiB0aGUgcmVzb2x1dGlvbiBiZWhhdmlvcg0KDQoN
Cg0KVGhlIHJlc29sdXRpb24gYmVoYXZpb3Igd2FzIGRlbGliZXJhdGVseSB0aGUgbGFzdCBwb2lu
dCBiZWNhdXNlIGl0IHdhcw0KDQpjb25zaWRlcmVkIHRoZSBsZWFzdCBpbXBvcnRhbnQuDQoNCg0K
DQpJbnB1dCB3YXMgcmVjZWl2ZWQgb3ZlciB0aGUgcGFzdCB5ZWFyIHdoaWNoIGVtcGhhc2l6ZWQg
dGhlIGltcG9ydGFuY2Ugb2YNCg0KdHJ5aW5nIHRvICJtYXhpbWl6ZSBmb3J3YXJkaW5nIiBpbiB0
aGUgcHJlc2VuY2Ugb2YgY29uZmxpY3RzLiBTdWJzZXF1ZW50DQoNCnJldmlzaW9ucyBvZiB0aGUg
ZHJhZnQgaGF2ZSB0cmllZCB0byBhZGRyZXNzIHRoaXMgY29uY2Vybi4gSG93ZXZlciB0aGUgYXV0
aG9ycw0KDQpoYXZlIHJlcGVhdGVkbHkgc3RyZXNzZWQgdGhhdCB0aGUgc29sdXRpb24gYmVpbmcg
cHJvcG9zZWQNCg0KKCJpZ25vcmUgb3ZlcmxhcCBvbmx5Iikgd2FzIG1vcmUgY29tcGxleCB0aGFu
IG90aGVyIG9mZmVyZWQgYWx0ZXJuYXRpdmVzIGFuZA0KDQp3b3VsZCBiZSBtb3JlIGRpZmZpY3Vs
dCB0byBndWFyYW50ZWUgaW50ZXJvcGVyYWJpbGl0eSBiZWNhdXNlIHN1YnRsZQ0KDQpkaWZmZXJl
bmNlcyBpbiBhbiBpbXBsZW1lbnRhdGlvbiBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHRz
Lg0KDQoNCg0KQXQgSUVURjk3IHNpZ25pZmljYW50IGZlZWRiYWNrIHdhcyByZWNlaXZlZCBwcmVm
ZXJyaW5nIGEgc2ltcGxlciBzb2x1dGlvbiB0bw0KDQp0aGUgcHJvYmxlbS4gVGhlIGF1dGhvcnMg
YXJlIHZlcnkgc3ltcGF0aGV0aWMgdG8gdGhpcyBmZWVkYmFjayBhbmQgdGhlcmVmb3JlDQoNCmFy
ZSBwcm9wb3NpbmcgYSBzb2x1dGlvbiBiYXNlZCBvbiB3aGF0IHRoZSBkcmFmdCBkZWZpbmVzIGFz
IHRoZSAiSWdub3JlIg0KDQpwb2xpY3kgLSB3aGVyZSBhbGwgZW50cmllcyB3aGljaCBhcmUgaW4g
Y29uZmxpY3QgYXJlIGlnbm9yZWQuIFdlIGJlbGlldmUgdGhpcw0KDQppcyBmYXIgbW9yZSBkZXNp
cmFibGUgYW5kIGFsaWducyB3aXRoIHRoZSBwcmlvcml0aWVzIGxpc3RlZCBhYm92ZS4NCg0KDQoN
CldlIG91dGxpbmUgdGhlIHByb3Bvc2VkIHNvbHV0aW9uIGJlbG93IGFuZCB3b3VsZCBsaWtlIHRv
IHJlY2VpdmUgZmVlZGJhY2sgZnJvbQ0KDQp0aGUgV0cgYmVmb3JlIHB1Ymxpc2hpbmcgdGhlIG5l
eHQgcmV2aXNpb24gb2YgdGhlIGRyYWZ0Lg0KDQoNCg0KICAgTGVzIChvbiBiZWhhbGYgb2YgdGhl
IGF1dGhvcnMpDQoNCg0KDQpOZXcgUHJvcG9zYWwNCg0KDQoNCkluIHRoZSBsYXRlc3QgcmV2aXNp
b24gb2YgdGhlIGRyYWZ0ICJTUk1TIFByZWZlcmVuY2UiIHdhcyBpbnRyb2R1Y2VkLiBUaGlzDQoN
CnByb3ZpZGVzIGEgd2F5IGZvciBhIG51bWVyaWNhbCBwcmVmZXJlbmNlIHRvIGJlIGV4cGxpY2l0
bHkgYXNzb2NpYXRlZCB3aXRoIGFuDQoNClNSTVMgYWR2ZXJ0aXNlbWVudC4gVXNpbmcgdGhpcyBh
biBvcGVyYXRvciBjYW4gaW5kaWNhdGUgd2hpY2ggYWR2ZXJ0aXNlbWVudCBpcw0KDQp0byBiZSBw
cmVmZXJyZWQgd2hlbiBhIGNvbmZsaWN0IGlzIHByZXNlbnQuIFRoZSBhdXRob3JzIHRoaW5rIHRo
aXMgaXMgYSB1c2VmdWwNCg0KYWRkaXRpb24gYW5kIHdlIHRoZXJlZm9yZSB3YW50IHRvIGluY2x1
ZGUgdGhpcyBpbiB0aGUgbmV3IHNvbHV0aW9uLg0KDQoNCg0KVGhlIG5ldyBwcmVmZXJlbmNlIHJ1
bGUgdXNlZCB0byByZXNvbHZlIGNvbmZsaWN0cyBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0K
DQpBIGdpdmVuIG1hcHBpbmcgZW50cnkgaXMgY29tcGFyZWQgYWdhaW5zdCBhbGwgbWFwcGluZyBl
bnRyaWVzIGluIHRoZSBkYXRhYmFzZQ0KDQp3aXRoIGEgcHJlZmVyZW5jZSBncmVhdGVyIHRoYW4g
b3IgZXF1YWwgdG8gaXRzIG93bi4gSWYgdGhlcmUgaXMgYSBjb25mbGljdCwNCg0KdGhlIG1hcHBp
bmcgZW50cnkgd2l0aCBsb3dlciBwcmVmZXJlbmNlIGlzIGlnbm9yZWQuIElmIHR3byBtYXBwaW5n
IGVudHJpZXMgYXJlDQoNCmluIGNvbmZsaWN0IGFuZCBoYXZlIGVxdWFsIHByZWZlcmVuY2UgdGhl
biBib3RoIGVudHJpZXMgYXJlIGlnbm9yZWQuDQoNCg0KDQpJbXBsZW1lbnRhdGlvbiBvZiB0aGlz
IHBvbGljeSBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0KDQpTdGVwIDE6IFdpdGhpbiBhIHNp
bmdsZSBhZGRyZXNzLWZhbWlseS9hbGdvcml0aG0vdG9wb2xvZ3kgc29ydCBlbnRyaWVzDQoNCmJh
c2VkIG9uIHByZWZlcmVuY2UNCg0KU3RlcCAyOiBTdGFydGluZyB3aXRoIHRoZSBsb3dlc3QgcHJl
ZmVyZW5jZSBlbnRyaWVzLCByZXNvbHZlIHByZWZpeCBjb25mbGljdHMNCg0KdXNpbmcgdGhlIGFi
b3ZlIHByZWZlcmVuY2UgcnVsZS4gVGhlIG91dHB1dCBpcyBhbiBhY3RpdmUgcG9saWN5IHBlciB0
b3BvbG9neS4NCg0KU3RlcCAzOiBUYWtlIHRoZSBvdXRwdXRzIGZyb20gU3RlcCAyIGFuZCBhZ2Fp
biBzb3J0IHRoZW0gYnkgcHJlZmVyZW5jZQ0KDQpTdGVwIDQ6IFN0YXJ0aW5nIHdpdGggdGhlIGxv
d2VzdCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgU0lEIGNvbmZsaWN0cw0KDQp1c2luZyB0
aGUgYWJvdmUgcHJlZmVyZW5jZSBydWxlDQoNCg0KDQpUaGUgb3V0cHV0IGZyb20gU3RlcCA0IGlz
IHRoZW4gdGhlIGN1cnJlbnQgQWN0aXZlIFBvbGljeS4NCg0KDQoNCkhlcmUgYXJlIGEgZmV3IGV4
YW1wbGVzLiBFYWNoIG1hcHBpbmcgZW50cnkgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIHR1cGxlOg0K
DQooUHJlZmVyZW5jZSwgUHJlZml4L21hc2sgSW5kZXggcmFuZ2UgPCM+KQ0KDQoNCg0KRXhhbXBs
ZSAxOg0KDQoNCg0KMS4gKDE1MCwgMS4xLjEuMS8zMiAxMDAgcmFuZ2UgMTAwKQ0KDQoyLiAoMTQ5
LCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMjAwKQ0KDQozLiAoMTQ4LCAxLjEuMS4xMDEvMzIgNTAw
IHJhbmdlIDEwKQ0KDQoNCg0KRW50cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBpdCBpcyBp
Z25vcmVkLg0KDQpFbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDEsIGl0IGlzIGlnbm9yZWQu
DQoNCkFjdGl2ZSBwb2xpY3k6DQoNCg0KDQooMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSAxMDAp
DQoNCg0KDQpFeGFtcGxlIDI6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSAx
MDApDQoNCjIuICgxNTAsIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAyMDApDQoNCjMuICgxNTAsIDEu
MS4xLjEwMS8zMiA1MDAgcmFuZ2UgMTApDQoNCjQuICgxNTAsIDIuMi4yLjEvMzIgMTAwMCByYW5n
ZSAxKQ0KDQoNCg0KRW50cnkgMSBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBib3RoIGFyZSBtYXJr
ZWQgYXMgaWdub3JlLg0KDQpFbnRyeSAzIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIuIEl0IGlzIG1h
cmtlZCBhcyBpZ25vcmUuDQoNCkVudHJ5IDQgaGFzIG5vIGNvbmZsaWN0cyB3aXRoIGFueSBlbnRy
aWVzDQoNCg0KDQpBY3RpdmUgcG9saWN5Og0KDQooMTUwLCAyLjIuMi4xLzMyIDEwMDAgcmFuZ2Ug
MSkNCg0KDQoNCkV4YW1wbGUgMzoNCg0KDQoNCjEuICgxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdl
IDUwMCkNCg0KMi4gKDE1MCwgMS4xLjEuMTAvMzIgMjAwIHJhbmdlIDIwMCkNCg0KMy4gKDE1MCwg
MS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCkNCg0KNC4gKDE1MCwgMi4yLjIuMS8zMiAxMDAwIHJh
bmdlIDEpDQoNCg0KDQpFbnRyeSAxIGNvbmZsaWN0cyB3aXRoIGVudHJpZXMgMiwgMywgYW5kICA0
LiBBbGwgZW50cmllcyBhcmUgbWFya2VkIGlnbm9yZS4NCg0KDQoNCkFjdGl2ZSBwb2xpY3k6DQoN
CkVtcHR5DQoNCg0KDQpFeGFtcGxlIDQ6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyIDEwMCBy
YW5nZSAxMCkNCg0KMi4gKDE0OSwgMS4xLjEuMTAvMzIgMjAwIHJhbmdlIDMwMCkNCg0KMy4gKDE0
OSwgMS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCkNCg0KNC4gKDE0OCwgMi4yLjIuMS8zMiAxMDAw
IHJhbmdlIDEpDQoNCg0KDQpFbnRyeSA0IGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIuIEl0IGlzIG1h
cmtlZCBpZ25vcmUuDQoNCkVudHJ5IDIgY29uZmxpY3RzIHdpdGggZW50cnkgMy4gRW50cmllcyAy
IGFuZCAzIGFyZSBtYXJrZWQgaWdub3JlLg0KDQoNCg0KQWN0aXZlIHBvbGljeToNCg0KKDE1MCwg
MS4xLjEuMS8zMiAxMDAgcmFuZ2UgMTApDQoNCg0KDQoNCg0KDQoNCg0K

--_000_33ada622a415433ba2955ca8c0aa6dc5XCHALN001ciscocom_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJ
e2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDt9DQov
KiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1z
b05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNp
emU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7fQ0KYTpsaW5r
LCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1
ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBl
cmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0K
CXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5Nc29QbGFpblRleHQsIGxpLk1zb1BsYWlu
VGV4dCwgZGl2Lk1zb1BsYWluVGV4dA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0
eWxlLWxpbms6IlBsYWluIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9t
Oi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNh
bnMtc2VyaWYiO30NCnByZQ0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxp
bms6IkhUTUwgUHJlZm9ybWF0dGVkIENoYXIiOw0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRv
bTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3
Ijt9DQpwLk1zb0FjZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29BY2V0YXRlDQoJe21zby1z
dHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBUZXh0IENoYXIiOw0K
CW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZTo4LjBwdDsN
Cglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7fQ0KcC5Nc29MaXN0UGFyYWdyYXBo
LCBsaS5Nc29MaXN0UGFyYWdyYXBoLCBkaXYuTXNvTGlzdFBhcmFncmFwaA0KCXttc28tc3R5bGUt
cHJpb3JpdHk6MzQ7DQoJbWFyZ2luLXRvcDowaW47DQoJbWFyZ2luLXJpZ2h0OjBpbjsNCgltYXJn
aW4tYm90dG9tOjBpbjsNCgltYXJnaW4tbGVmdDouNWluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFw
dDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJp
ZiI7fQ0Kc3Bhbi5IVE1MUHJlZm9ybWF0dGVkQ2hhcg0KCXttc28tc3R5bGUtbmFtZToiSFRNTCBQ
cmVmb3JtYXR0ZWQgQ2hhciI7DQoJbXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1s
aW5rOiJIVE1MIFByZWZvcm1hdHRlZCI7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpz
cGFuLlBsYWluVGV4dENoYXINCgl7bXNvLXN0eWxlLW5hbWU6IlBsYWluIFRleHQgQ2hhciI7DQoJ
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJQbGFpbiBUZXh0IjsNCglm
b250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO30NCnAubXNvbm9ybWFsMCwgbGkubXNv
bm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7bXNvLXN0eWxlLW5hbWU6bXNvbm9ybWFsOw0KCW1z
by1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJ
Zm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlmIjt9DQpzcGFuLkVtYWlsU3R5bGUy
Mw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250LWZhbWlseToiQXJpYWwiLCJzYW5z
LXNlcmlmIjsNCgljb2xvcjp3aW5kb3d0ZXh0Ow0KCWZvbnQtd2VpZ2h0Om5vcm1hbDsNCglmb250
LXN0eWxlOm5vcm1hbDsNCgl0ZXh0LWRlY29yYXRpb246bm9uZSBub25lO30NCnNwYW4uRW1haWxT
dHlsZTI0DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQtZmFtaWx5OiJDYWxpYnJp
Iiwic2Fucy1zZXJpZiI7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkVtYWlsU3R5bGUyNQ0K
CXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIs
InNhbnMtc2VyaWYiOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0Kc3Bhbi5CYWxsb29uVGV4dENoYXINCgl7
bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6
OTk7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4dCI7DQoJZm9udC1mYW1pbHk6IlRhaG9t
YSIsInNhbnMtc2VyaWYiO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9y
dC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6
OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29y
ZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUg
bXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2
IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFw
ZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4N
CjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGJnY29s
b3I9IndoaXRlIiBsYW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8ZGl2
IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImNvbG9yOiMxRjQ5N0QiPkd1bnRlciDigJM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMx
RjQ5N0QiPkl0IGlzIGEgbWlzdW5kZXJzdGFuZGluZyB0byB0aGluayB0aGF0IGNvbmZsaWN0IHJl
c29sdXRpb24gb2YgQU5ZIEZMQVZPUiBhZmZlY3RzIHRoZSBiZXN0IHBhdGggc2VsZWN0aW9uL2lu
c3RhbGxhdGlvbi4gVGhpcyBpcyBzaW1wbHkgbm90IHRoZSBjYXNlLjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iY29sb3I6IzFGNDk3RCI+V2UgYXJlIHRhbGtpbmcgYWJvdXQgYW4gTVBMUyBmb3J3YXJk
aW5nIHBsYW5lIHdoaWNoIHVzZXMgbGFiZWxzIHdoaWNoIGFyZSBnbG9iYWxseSBzY29wZWQuIChU
aGUgZmFjdCB0aGF0IHRoZSBsYWJlbCBpcyByZXByZXNlbnRlZCBhcyBhbiBpbmRleCBpbnRvIGEg
cm91dGVyIHNwZWNpZmljIFNSR0IgaXMgbm90IHJlbGV2YW50KS4NCjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5J
ZiB3ZSBoYXZlIGEgY29uZmxpY3QgdGhlbiBhIGdpdmVuIGxhYmVsIGNhbiBiZSBhc3NvY2lhdGVk
IHdpdGggbXVsdGlwbGUgcHJlZml4ZXMg4oCTIGhlcmUgaXMgb25lIGV4YW1wbGU6PG86cD48L286
cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMx
RjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4xLjEuMS4xLzMyIGluZGV4IDEwMDxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjoj
MUY0OTdEIj4yLjIuMi4yLzMyIGluZGV4IDEwMDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6
IzFGNDk3RCI+SWYgSSBjaG9vc2UgdG8gdXNlIGluZGV4IDEwMCBmb3IgMS4xLjEuMS8zMiDigJMg
YnV0IG15IG5laWdoYm9yIGNob29zZXMgdG8gdXNlIGluZGV4IDEwMCBmb3IgMi4yLjIuMi8zMiDi
gJMgdGhlbiB3aGVuIEkgZW5jYXBzdWxhdGUgYSBwYWNrZXQgYWRkcmVzc2VkIHRvIDEuMS4xLjEg
YW5kIGZvcndhcmQgaXQgdG8gbXkgbmVpZ2hib3IgaXQgd2lsbCBnZXQgc2VudCBpbg0KIHRoZSBk
aXJlY3Rpb24gb2YgMi4yLjIuMi4gPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlRoaXMgaXMgdGhlIHByb2JsZW0g
Y29uZmxpY3QgcmVzb2x1dGlvbiBpcyB0cnlpbmcgdG8gYWRkcmVzcy48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkFzIHJlZ2FyZHMg4oCcaWdub3JlIG92ZXJsYXAgb25seeKA
nSBjb21wbGV4aXR5LCBJIHJlcGVhdCBteSBlYXJsaWVyIHJlcGx5IHRvIEJydW5vOjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjoj
MUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+4oCcPC9zcGFuPjxiPjxpPjxzcGFuIHN0eWxl
PSJjb2xvcjojMUY0OTdEIj5JZiB5b3Ugd2FudCB0byBhcmd1ZSB0aGF0IHRoZXNlIGFyZSBzb2x2
YWJsZSBwcm9ibGVtcyBJIHdvbuKAmXQgZGlzYWdyZWUgd2l0aCB5b3Ug4oCTIGl0IGlzIGEgcXVl
c3Rpb24gb2Ygd2hlcmUgd2Ugd2FudCB0byBwdXQgb3VyIHRpbWUgYW5kIGVmZm9ydC4gQSBudW1i
ZXIgb2YgZm9sa3MgYXJlDQogY29tbWVudGluZyB0aGF0IHRoZXkgcHJlZmVyIHRvIGZvY3VzIG9u
IGZpeGluZyB0aGUgY29uZmlndXJhdGlvbiBhbmQgbm90IGludmVzdCAmbmJzcDt0aW1lIGluIHZh
bGlkYXRpbmcgdGhhdCBjb25mbGljdCByZXNvbHV0aW9uIGlzIGltcGxlbWVudGVkIGluIGFuIGlu
dGVyb3BlcmFibGUgd2F5LiBBcyB3ZSAodGhlIGF1dGhvcnMpIGhhdmUgc3RhdGVkIGZyb20gdGhl
IGJlZ2lubmluZywgd2UgYmVsaWV2ZSB0aGUgZW1waGFzaXMgc2hvdWxkIGJlIG9uIGRldGVjdGlu
Zw0KIGFuZCByZXBvcnRpbmcgdGhlIGNvbmZsaWN0cyDigJMgbm90IHNwZW5kaW5nIGN5Y2xlcyBp
bXBsZW1lbnRpbmcgdGhlIG1vc3Qgcm9idXN0IG1lYW5zIG9mIHRyeWluZyB0byBvcGVyYXRlIG9w
dGltYWxseSB3aGlsZSB0aGUgbWlzY29uZmlndXJhdGlvbiBleGlzdHMu4oCdPG86cD48L286cD48
L3NwYW4+PC9pPjwvYj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48aT48c3BhbiBzdHls
ZT0iY29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9pPjwvYj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5i
c3A7Jm5ic3A7IExlczxvOnA+PC9vOnA+PC9zcGFuPjwvaT48L2I+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdE
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTti
b3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQiPg0K
PGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAx
LjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDsiPiBWYW4gRGUgVmVsZGUsIEd1bnRlciAoTm9raWEgLSBCRSkgW21haWx0
bzpndW50ZXIudmFuX2RlX3ZlbGRlQG5va2lhLmNvbV0NCjxicj4NCjxiPlNlbnQ6PC9iPiBGcmlk
YXksIERlY2VtYmVyIDA5LCAyMDE2IDEyOjExIFBNPGJyPg0KPGI+VG86PC9iPiBMZXMgR2luc2Jl
cmcgKGdpbnNiZXJnKTsgc3ByaW5nQGlldGYub3JnPGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBb
c3ByaW5nXSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsPG86cD48
L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
R0IiIHN0eWxlPSJjb2xvcjpibGFjayI+VGhlIG1ldGhvZCB0byDigJxtYXhpbWl6ZSBmb3J3YXJk
aW5n4oCdIGFzIG1lbnRpb25lZCBpbiB0aGUgZHJhZnQgc2VlbXMgdG8gYmUgaW4gY29uc2lzdGVu
dCBsb2dpYyB3aXRoIGhvdyB0aGUgY3VycmVudA0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tR0IiIHN0eWxlPSJjb2xvcjpibGFjayI+
dW5pY2FzdCByb3V0aW5nIHRhYmxlIGlzIGJ1aWxkLiBGb3IgdW5pY2FzdCByb3V0ZXMgdGhlIHJv
dXRlIHNlbGVjdGVkIGZvciBhIGdpdmVuIElQIGRlc3RpbmF0aW9uIGFkZHJlc3MgaXMgYSBmdW5j
dGlvbihwcmVmaXgtbGVuZ3RoL2FkbWluLWRpc3RhbmNlKS4NCjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6
YmxhY2siPlRoaXMgaXMgZG9uZSBmb3IgYmV0dGVyIGFkZHJlc3Mgc3BhY2UgbWFuYWdlbWVudCwg
YW5kIHRvIGhhdmUgcHJlZGljdGFibGUgcm91dGluZyBpbmNhc2Ugb2YgY2xhc2hlcyBpbiB0aGUg
cm91dGluZyB0YWJsZS4gSGVuY2UsIHRvIG1lLCBpdCBzZWVtcyBvbmx5IG5hdHVyYWwgdG8NCjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPnRvIGtlZXAgcHJvbW90aW5nICZxdW90O2lnbm9yZSBv
dmVybGFwIG9ubHkmcXVvdDsgYXMgcmVzdWx0IGFzIGl0IG1pbWljcyB0cmFkaXRpb25hbCB1bmlj
YXN0IHJvdXRpbmcgdGFibGUgY29uc3RydWN0cy4NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2si
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPlRoZSBhbHRlcm5hdGl2ZSBzb3VuZHMg
YSBiaXQgbGlrZSBzdGVwcGluZyBiYWNrIHRvIENsYXNzIEEvQi9DIGFkZHJlc3NlcyBieSBqdXN0
IGF2b2lkaW5nIHRoZSBwcm9ibGVtIGFuZCBzaWduaWZpY2FudGx5IGltcGFjdCBwb3RlbnRpYWwg
Y2xhc2ggc2NlbmFyaW9zIGFzIGNvbnNlcXVlbmNlIGR1ZSB0byBvdmVyc2ltcGxpZmljYXRpb24u
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0i
RU4tR0IiIHN0eWxlPSJjb2xvcjpibGFjayI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tR0IiIHN0eWxlPSJjb2xvcjpibGFj
ayI+RmluYWxseSwgSSBkbyBub3QgdW5kZXJzdGFuZCB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGUg
c3VkZGVuIHdvcnJ5IHJlZ2FyZGluZyAmcXVvdDtpZ25vcmUgb3ZlcmxhcCBvbmx5JnF1b3Q7IHBv
bGljeSB0byBiZSBvYnNjZW5lbHkgY29tcGxleC4gSWYgSSB1bmRlcnN0YW5kIElFVEYgcHJvY2Vk
dXJlcyB3ZWxsLCBhbmQgaWYNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNwO+KAnGln
bm9yZSBvdmVybGFwIG9ubHnigJ0gaXMgZG9jdW1lbnRlZCBwcm9wZXJseSwganVzdCBsaWtlIGFu
eSBzdGFuZGFyZCB0cmFjayBSRkMgc2hvdWxkIGJlLCB0aGVuIGhvdyBhcmUgaW5jb21wYXRpYmxl
IGJlaGF2aW91cnMgcG9zc2libGU/IFNob3VsZCB3ZSBub3QgdHJ5IHRvIGFyY2hpdGVjdCBmb3IN
CjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPnRoZSBCRVNUIHJlYWxpc3RpYyBmdXR1cmUgcHJv
b2Ygc29sdXRpb24sIGFuZCBub3QgZm9yIHRoZSBlYXNpZXN0IGxlc3Mgb3B0aW1hbCBzb2x1dGlv
bi4gKEtlZXAgaW4gbWluZCB0aGF0IGF0IHNvbWUgcG9pbnQgaW4gdGltZSBwZW9wbGUgYmVsaWV2
ZWQgdGhhdCBkb2luZyByb3V0aW5nIGluIHRoZQ0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tR0IiIHN0eWxlPSJjb2xvcjpibGFjayI+
c3R5bGUgb2YgQ2xhc3MgQS9CL0Mgd2FzIHRoZSBmdXR1cmUgYWxzbywgYW5kIHNlZSB3aGVyZSB3
ZSBhcmUgcmlnaHQgbm93KS4NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPjxvOnA+Jm5ic3A7
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdC
IiBzdHlsZT0iY29sb3I6YmxhY2siPkcvIDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iZm9udC1zaXpl
OjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7Ij4mbmJzcDs8L3NwYW4+PHNwYW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7
cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5v
bmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAw
aW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gbGFuZz0iRU4tR0IiPkZyb206PC9z
cGFuPjwvYj48c3BhbiBsYW5nPSJFTi1HQiI+IHNwcmluZyBbPGEgaHJlZj0ibWFpbHRvOnNwcmlu
Zy1ib3VuY2VzQGlldGYub3JnIj5tYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmc8L2E+XQ0K
PGI+T24gQmVoYWxmIE9mIDwvYj5MZXMgR2luc2JlcmcgKGdpbnNiZXJnKTxicj4NCjxiPlNlbnQ6
PC9iPiBTdW5kYXksIERlY2VtYmVyIDA0LCAyMDE2IDc6MDQgUE08YnI+DQo8Yj5Ubzo8L2I+IDxh
IGhyZWY9Im1haWx0bzpzcHJpbmdAaWV0Zi5vcmciPnNwcmluZ0BpZXRmLm9yZzwvYT48YnI+DQo8
Yj5TdWJqZWN0OjwvYj4gW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxl
ciBQcm9wb3NhbDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPldoZW4gdGhl
IHByb2JsZW0gYWRkcmVzc2VkIGJ5IGRyYWZ0LWlldGYtc3ByaW5nLWNvbmZsaWN0LXJlc29sdXRp
b24gd2FzIGZpcnN0DQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+cHJlc2VudGVkIGF0IElFVEYgOTQsIHRoZSBhdXRob3Jz
IGRlZmluZWQgdGhlIGZvbGxvd2luZyBwcmlvcml0aWVzOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1H
QiI+MSlEZXRlY3QgdGhlIHByb2JsZW08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+MilSZXBvcnQgdGhlIHByb2JsZW08bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJF
Ti1HQiI+VGhpcyBhbGVydHMgdGhlIG5ldHdvcmsgb3BlcmF0b3IgdG8gdGhlIGV4aXN0ZW5jZSBv
ZiBhIGNvbmZsaWN0IHNvIHRoYXQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+dGhlIGNvbmZpZ3VyYXRpb24gZXJyb3IgY2Fu
IGJlIGNvcnJlY3RlZC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+MylEZWZpbmUgY29uc2lzdGVudCBiZWhhdmlvcjxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVO
LUdCIj5UaGlzIGF2b2lkcyBtaXMtZm9yd2FyZGluZyB3aGlsZSB0aGUgY29uZmxpY3QgZXhpc3Rz
LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxh
bmc9IkVOLUdCIj40KURvbuKAmXQgb3ZlcmVuZ2luZWVyIHRoZSBzb2x1dGlvbjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5H
aXZlbiB0aGF0IGl0IGlzIGltcG9zc2libGUgdG8ga25vdyB3aGljaCBvZiB0aGUgY29uZmxpY3Rp
bmcgZW50cmllczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PjxzcGFuIGxhbmc9IkVOLUdCIj5pcyB0aGUgY29ycmVjdCBvbmUsIHdlIHNob3VsZCBhcHBseSBh
IHNpbXBsZSBhbGdvcml0aG0gdG8gcmVzb2x2ZSB0aGUgY29uZmxpY3QuPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPjUpQWdy
ZWUgb24gdGhlIHJlc29sdXRpb24gYmVoYXZpb3I8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPlRo
ZSByZXNvbHV0aW9uIGJlaGF2aW9yIHdhcyBkZWxpYmVyYXRlbHkgdGhlIGxhc3QgcG9pbnQgYmVj
YXVzZSBpdCB3YXMNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5jb25zaWRlcmVkIHRoZSBsZWFzdCBpbXBvcnRhbnQuPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0i
RU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5JbnB1dCB3YXMgcmVjZWl2ZWQgb3ZlciB0aGUgcGFzdCB5
ZWFyIHdoaWNoIGVtcGhhc2l6ZWQgdGhlIGltcG9ydGFuY2Ugb2Y8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+dHJ5aW5nIHRv
ICZxdW90O21heGltaXplIGZvcndhcmRpbmcmcXVvdDsgaW4gdGhlIHByZXNlbmNlIG9mIGNvbmZs
aWN0cy4gU3Vic2VxdWVudDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5yZXZpc2lvbnMgb2YgdGhlIGRyYWZ0IGhhdmUgdHJp
ZWQgdG8gYWRkcmVzcyB0aGlzIGNvbmNlcm4uIEhvd2V2ZXIgdGhlIGF1dGhvcnMNCjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdC
Ij5oYXZlIHJlcGVhdGVkbHkgc3RyZXNzZWQgdGhhdCB0aGUgc29sdXRpb24gYmVpbmcgcHJvcG9z
ZWQNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFu
IGxhbmc9IkVOLUdCIj4oJnF1b3Q7aWdub3JlIG92ZXJsYXAgb25seSZxdW90Oykgd2FzIG1vcmUg
Y29tcGxleCB0aGFuIG90aGVyIG9mZmVyZWQgYWx0ZXJuYXRpdmVzIGFuZA0KPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPndv
dWxkIGJlIG1vcmUgZGlmZmljdWx0IHRvIGd1YXJhbnRlZSBpbnRlcm9wZXJhYmlsaXR5IGJlY2F1
c2Ugc3VidGxlDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij48c3BhbiBsYW5nPSJFTi1HQiI+ZGlmZmVyZW5jZXMgaW4gYW4gaW1wbGVtZW50YXRpb24gY291
bGQgcHJvZHVjZSBkaWZmZXJlbnQgcmVzdWx0cy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPkF0
IElFVEY5NyBzaWduaWZpY2FudCBmZWVkYmFjayB3YXMgcmVjZWl2ZWQgcHJlZmVycmluZyBhIHNp
bXBsZXIgc29sdXRpb24gdG8NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj50aGUgcHJvYmxlbS4gVGhlIGF1dGhvcnMgYXJl
IHZlcnkgc3ltcGF0aGV0aWMgdG8gdGhpcyBmZWVkYmFjayBhbmQgdGhlcmVmb3JlDQo8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1H
QiI+YXJlIHByb3Bvc2luZyBhIHNvbHV0aW9uIGJhc2VkIG9uIHdoYXQgdGhlIGRyYWZ0IGRlZmlu
ZXMgYXMgdGhlICZxdW90O0lnbm9yZSZxdW90Ow0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPnBvbGljeSAtIHdoZXJlIGFs
bCBlbnRyaWVzIHdoaWNoIGFyZSBpbiBjb25mbGljdCBhcmUgaWdub3JlZC4gV2UgYmVsaWV2ZSB0
aGlzDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3Bh
biBsYW5nPSJFTi1HQiI+aXMgZmFyIG1vcmUgZGVzaXJhYmxlIGFuZCBhbGlnbnMgd2l0aCB0aGUg
cHJpb3JpdGllcyBsaXN0ZWQgYWJvdmUuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5XZSBvdXRs
aW5lIHRoZSBwcm9wb3NlZCBzb2x1dGlvbiBiZWxvdyBhbmQgd291bGQgbGlrZSB0byByZWNlaXZl
IGZlZWRiYWNrIGZyb20NCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj50aGUgV0cgYmVmb3JlIHB1Ymxpc2hpbmcgdGhlIG5l
eHQgcmV2aXNpb24gb2YgdGhlIGRyYWZ0LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7
Jm5ic3A7IExlcyAob24gYmVoYWxmIG9mIHRoZSBhdXRob3JzKTxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48aT48c3BhbiBsYW5n
PSJFTi1HQiI+TmV3IFByb3Bvc2FsPC9zcGFuPjwvaT48c3BhbiBsYW5nPSJFTi1HQiI+PG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+PHNwYW4gbGFuZz0i
RU4tR0IiPiZuYnNwOzwvc3Bhbj48L2k+PHNwYW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj5J
biB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mIHRoZSBkcmFmdCAmcXVvdDtTUk1TIFByZWZlcmVuY2Um
cXVvdDsgd2FzIGludHJvZHVjZWQuIFRoaXMNCjwvc3Bhbj48L2k+PHNwYW4gbGFuZz0iRU4tR0Ii
PjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxpPjxzcGFu
IGxhbmc9IkVOLUdCIj5wcm92aWRlcyBhIHdheSBmb3IgYSBudW1lcmljYWwgcHJlZmVyZW5jZSB0
byBiZSBleHBsaWNpdGx5IGFzc29jaWF0ZWQgd2l0aCBhbg0KPC9zcGFuPjwvaT48c3BhbiBsYW5n
PSJFTi1HQiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
PGk+PHNwYW4gbGFuZz0iRU4tR0IiPlNSTVMgYWR2ZXJ0aXNlbWVudC4gVXNpbmcgdGhpcyBhbiBv
cGVyYXRvciBjYW4gaW5kaWNhdGUgd2hpY2ggYWR2ZXJ0aXNlbWVudCBpcw0KPC9zcGFuPjwvaT48
c3BhbiBsYW5nPSJFTi1HQiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPnRvIGJlIHByZWZlcnJlZCB3aGVuIGEgY29u
ZmxpY3QgaXMgcHJlc2VudC4gVGhlIGF1dGhvcnMgdGhpbmsgdGhpcyBpcyBhIHVzZWZ1bA0KPC9z
cGFuPjwvaT48c3BhbiBsYW5nPSJFTi1HQiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPmFkZGl0aW9uIGFuZCB3ZSB0
aGVyZWZvcmUgd2FudCB0byBpbmNsdWRlIHRoaXMgaW4gdGhlIG5ldyBzb2x1dGlvbi48L3NwYW4+
PC9pPjxzcGFuIGxhbmc9IkVOLUdCIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij48aT48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjwvaT48c3Bh
biBsYW5nPSJFTi1HQiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPlRoZSBuZXcgcHJlZmVyZW5jZSBydWxlIHVzZWQg
dG8gcmVzb2x2ZSBjb25mbGljdHMgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvc3Bhbj48L2k+PHNw
YW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PC9pPjxzcGFuIGxhbmc9
IkVOLUdCIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48
Yj48aT48c3BhbiBsYW5nPSJFTi1HQiI+QSBnaXZlbiBtYXBwaW5nIGVudHJ5IGlzIGNvbXBhcmVk
IGFnYWluc3QgYWxsIG1hcHBpbmcgZW50cmllcyBpbiB0aGUgZGF0YWJhc2UNCjwvc3Bhbj48L2k+
PC9iPjxzcGFuIGxhbmc9IkVOLUdCIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij48Yj48aT48c3BhbiBsYW5nPSJFTi1HQiI+d2l0aCBhIHByZWZlcmVuY2Ug
Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGl0cyBvd24uIElmIHRoZXJlIGlzIGEgY29uZmxpY3Qs
DQo8L3NwYW4+PC9pPjwvYj48c3BhbiBsYW5nPSJFTi1HQiI+PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPnRoZSBt
YXBwaW5nIGVudHJ5IHdpdGggbG93ZXIgcHJlZmVyZW5jZSBpcyBpZ25vcmVkLiBJZiB0d28gbWFw
cGluZyBlbnRyaWVzIGFyZTwvc3Bhbj48L2k+PC9iPjxzcGFuIGxhbmc9IkVOLUdCIj48bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT48c3BhbiBsYW5n
PSJFTi1HQiI+aW4gY29uZmxpY3QgYW5kIGhhdmUgZXF1YWwgcHJlZmVyZW5jZSB0aGVuIGJvdGgg
ZW50cmllcyBhcmUgaWdub3JlZC48L3NwYW4+PC9pPjwvYj48c3BhbiBsYW5nPSJFTi1HQiI+PG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+PHNwYW4gbGFu
Zz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48L2k+PHNwYW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxpPjxzcGFuIGxhbmc9IkVOLUdC
Ij5JbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHBvbGljeSBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6PC9z
cGFuPjwvaT48c3BhbiBsYW5nPSJFTi1HQiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48L2k+
PHNwYW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPjxiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj5TdGVwIDE6IFdpdGhpbiBhIHNpbmds
ZSBhZGRyZXNzLWZhbWlseS9hbGdvcml0aG0vdG9wb2xvZ3kgc29ydCBlbnRyaWVzDQo8L3NwYW4+
PC9pPjwvYj48c3BhbiBsYW5nPSJFTi1HQiI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPmJhc2VkIG9uIHByZWZl
cmVuY2UgPC9zcGFuPjwvaT48L2I+PHNwYW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj5T
dGVwIDI6IFN0YXJ0aW5nIHdpdGggdGhlIGxvd2VzdCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29s
dmUgcHJlZml4IGNvbmZsaWN0cw0KPC9zcGFuPjwvaT48L2I+PHNwYW4gbGFuZz0iRU4tR0IiPjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPjxzcGFu
IGxhbmc9IkVOLUdCIj51c2luZyB0aGUgYWJvdmUgcHJlZmVyZW5jZSBydWxlLiBUaGUgb3V0cHV0
IGlzIGFuIGFjdGl2ZSBwb2xpY3kgcGVyIHRvcG9sb2d5Ljwvc3Bhbj48L2k+PC9iPjxzcGFuIGxh
bmc9IkVOLUdCIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij48Yj48aT48c3BhbiBsYW5nPSJFTi1HQiI+U3RlcCAzOiBUYWtlIHRoZSBvdXRwdXRzIGZyb20g
U3RlcCAyIGFuZCBhZ2FpbiBzb3J0IHRoZW0gYnkgcHJlZmVyZW5jZQ0KPC9zcGFuPjwvaT48L2I+
PHNwYW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPjxiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj5TdGVwIDQ6IFN0YXJ0aW5nIHdpdGgg
dGhlIGxvd2VzdCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgU0lEIGNvbmZsaWN0cw0KPC9z
cGFuPjwvaT48L2I+PHNwYW4gbGFuZz0iRU4tR0IiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj51c2luZyB0aGUg
YWJvdmUgcHJlZmVyZW5jZSBydWxlPC9zcGFuPjwvaT48L2I+PHNwYW4gbGFuZz0iRU4tR0IiPjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPjxzcGFu
IGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PC9pPjwvYj48c3BhbiBsYW5nPSJFTi1HQiI+PG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+PHNwYW4g
bGFuZz0iRU4tR0IiPlRoZSBvdXRwdXQgZnJvbSBTdGVwIDQgaXMgdGhlbiB0aGUgY3VycmVudCBB
Y3RpdmUgUG9saWN5Ljwvc3Bhbj48L2k+PC9iPjxzcGFuIGxhbmc9IkVOLUdCIj48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+
Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNw
YW4gbGFuZz0iRU4tR0IiPkhlcmUgYXJlIGEgZmV3IGV4YW1wbGVzLiBFYWNoIG1hcHBpbmcgZW50
cnkgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIHR1cGxlOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4oUHJlZmVyZW5jZSwgUHJl
Zml4L21hc2sgSW5kZXggcmFuZ2UgJmx0OyMmZ3Q7KTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+
RXhhbXBsZSAxOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+MS4gKDE1MCwgMS4xLjEuMS8zMiAx
MDAgcmFuZ2UgMTAwKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4yLiAoMTQ5LCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMjAw
KTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxh
bmc9IkVOLUdCIj4zLiAoMTQ4LCAxLjEuMS4xMDEvMzIgNTAwIHJhbmdlIDEwKTxvOnA+PC9vOnA+
PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4m
bmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3Bh
biBsYW5nPSJFTi1HQiI+RW50cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBpdCBpcyBpZ25v
cmVkLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFu
IGxhbmc9IkVOLUdCIj5FbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDEsIGl0IGlzIGlnbm9y
ZWQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4g
bGFuZz0iRU4tR0IiPkFjdGl2ZSBwb2xpY3k6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4oMTUw
LCAxLjEuMS4xLzMyIDEwMCByYW5nZSAxMDApPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5FeGFt
cGxlIDI6PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNw
YW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4xLiAoMTUwLCAxLjEuMS4xLzMyIDEwMCBy
YW5nZSAxMDApPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
PHNwYW4gbGFuZz0iRU4tR0IiPjIuICgxNTAsIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAyMDApPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0i
RU4tR0IiPjMuICgxNTAsIDEuMS4xLjEwMS8zMiA1MDAgcmFuZ2UgMTApPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPjQuICgx
NTAsIDIuMi4yLjEvMzIgMTAwMCByYW5nZSAxKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+RW50
cnkgMSBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBib3RoIGFyZSBtYXJrZWQgYXMgaWdub3JlLjxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9
IkVOLUdCIj5FbnRyeSAzIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIuIEl0IGlzIG1hcmtlZCBhcyBp
Z25vcmUuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNw
YW4gbGFuZz0iRU4tR0IiPkVudHJ5IDQgaGFzIG5vIGNvbmZsaWN0cyB3aXRoIGFueSBlbnRyaWVz
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFu
Zz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5BY3RpdmUgcG9saWN5OjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4oMTUwLCAy
LjIuMi4xLzMyIDEwMDAgcmFuZ2UgMSk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPkV4YW1wbGUg
Mzo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBs
YW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPjEuICgxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdl
IDUwMCk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3Bh
biBsYW5nPSJFTi1HQiI+Mi4gKDE1MCwgMS4xLjEuMTAvMzIgMjAwIHJhbmdlIDIwMCk8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1H
QiI+My4gKDE1MCwgMS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+NC4gKDE1MCwg
Mi4yLjIuMS8zMiAxMDAwIHJhbmdlIDEpPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5FbnRyeSAx
IGNvbmZsaWN0cyB3aXRoIGVudHJpZXMgMiwgMywgYW5kJm5ic3A7IDQuIEFsbCBlbnRyaWVzIGFy
ZSBtYXJrZWQgaWdub3JlLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+QWN0aXZlIHBvbGljeTo8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5n
PSJFTi1HQiI+RW1wdHk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPkV4YW1wbGUgNDo8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1H
QiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
PHNwYW4gbGFuZz0iRU4tR0IiPjEuICgxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdlIDEwKTxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVO
LUdCIj4yLiAoMTQ5LCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMzAwKTxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4zLiAoMTQ5
LCAxLjEuMS4xMDEvMzIgNTAwIHJhbmdlIDEwKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj40LiAoMTQ4LCAyLjIuMi4xLzMy
IDEwMDAgcmFuZ2UgMSk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPkVudHJ5IDQgY29uZmxpY3Rz
IHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGlnbm9yZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+RW50cnkgMiBjb25m
bGljdHMgd2l0aCBlbnRyeSAzLiBFbnRyaWVzIDIgYW5kIDMgYXJlIG1hcmtlZCBpZ25vcmUuPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0i
RU4tR0IiPiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5BY3RpdmUgcG9saWN5OjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4oMTUwLCAxLjEu
MS4xLzMyIDEwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxzcGFuIGxhbmc9IkVO
LUdCIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_33ada622a415433ba2955ca8c0aa6dc5XCHALN001ciscocom_--


From nobody Fri Dec  9 13:59:59 2016
Return-Path: <rraszuk@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A0449129584 for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 13:59:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level: 
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Cjda0kkDYs14 for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 13:59:54 -0800 (PST)
Received: from mail-wj0-x244.google.com (mail-wj0-x244.google.com [IPv6:2a00:1450:400c:c01::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 96C471294AB for <spring@ietf.org>; Fri,  9 Dec 2016 13:59:53 -0800 (PST)
Received: by mail-wj0-x244.google.com with SMTP id kp2so4023330wjc.0 for <spring@ietf.org>; Fri, 09 Dec 2016 13:59:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=ZKNeg+Do9dyx3489hq+djJb/QdlxOIJvkz8hWh4l7pk=; b=LUwjgVa9i5EUij0zsTA9snnzWCOrpV5rmbnAPpVlaeTyjxZPIs0JiKA3UTveT1VFwz zRJsx3UMwdJiqV28Svv0Vz28nDXSmjdmoF7NwWLcLOmIMt/q9LBq6KD+MVisOG4QQNZe P0TrRsWD8GaH+Ip3iX66MRucE4LiTUMfoF9F7yU1ElZp8FU62zDhZjPUwhXoSTGcOQ/a /nJEX0CiUYU42MSbGQlgcEz654GxO3Va50urclENKdX4lluvodxJTOQDo3kwIYPn4dnF GRy+9IpDvGouUk5jkTcycdp3Kse85neG/+mPUZZV57ZT83F/woFuFdCVMxMXNf7/ksMG vjlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=ZKNeg+Do9dyx3489hq+djJb/QdlxOIJvkz8hWh4l7pk=; b=ma5p1N9G0DhjnmXfRDEC5ZRHTzQammW+u3hREzY9A1qohd6kxCTENb1V6/s6mwnbye CQ0WnkG7wpTyYND7ExkrKO2vDkl5d1Gd2xaWdT2CotaIdzbWICN760HOauNVPv8QvZaG e7mcVLvr8FuU1u/Ip4a4PF0N3VeVW/ppcfWjoVbA+Se01uHbYz/AqQRgSUe4EaXuXQUp UZ6OEmeMD7Y159YdHqZpF4ffYWHxO+G8ev94CBD2XfW20GW/bZCO8f6SBuyMf2amGkFR SfGo2196x38u3kCBK+FFFBKMJl75mm/0xMjJSN/Bag2+ABoQViqNMRoxKwpChf3e2hHK Kyqw==
X-Gm-Message-State: AKaTC01+VyuvVR+IpsNFailtUEaiqBlIJ2qUn5V8mYvEgmcA/e/ktczx2ZrE+QIzHMM06fFPYxSiH9wdivM27A==
X-Received: by 10.194.187.103 with SMTP id fr7mr67791108wjc.99.1481320791795;  Fri, 09 Dec 2016 13:59:51 -0800 (PST)
MIME-Version: 1.0
Sender: rraszuk@gmail.com
Received: by 10.80.181.196 with HTTP; Fri, 9 Dec 2016 13:59:51 -0800 (PST)
In-Reply-To: <33ada622a415433ba2955ca8c0aa6dc5@XCH-ALN-001.cisco.com>
References: <332FE00B-442E-44DC-A825-78E56FC12176@alcatel-lucent.com> <33ada622a415433ba2955ca8c0aa6dc5@XCH-ALN-001.cisco.com>
From: Robert Raszuk <robert@raszuk.net>
Date: Fri, 9 Dec 2016 22:59:51 +0100
X-Google-Sender-Auth: 6obL6BRzFlqjptjJVi33VPPFFe4
Message-ID: <CA+b+ERmZKrMR1KXugHwd8fBWCdUw7XPR2WgUAHAtuaWkpxgtJg@mail.gmail.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Content-Type: multipart/alternative; boundary=047d7bd6bc9c97f0d9054340df92
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/uBLHFTH0l_ope09ekDi08gK2l3A>
Cc: "spring@ietf.org" <spring@ietf.org>, "Van De Velde, Gunter \(Nokia - BE\)" <gunter.van_de_velde@nokia.com>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 21:59:58 -0000

--047d7bd6bc9c97f0d9054340df92
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Dear Les,

> This is the problem conflict resolution is trying to address.

The problem description is very clear.

IMO what router should do in this case is (depending on it's location)

a) not to install ANY label and only install IP routes.
b) install 100 and point it to IP switching paths to both 1.1.1.1/32 &
2.2.2.2/32


If/when MPLS/SR forwarding will fail and the best we can do is not only to
properly (sys)log it, but define a *new ICMP error type* which would
attempt to inform the sender that SR path broke at that point in the
network due to conflicting SID entries being detected and suppressed from
entering LFIB.

In general *SID Conflict Detection* and proper signalling should be our
focus here rather then guessing what should be the right
automated/algorithmic way to hide and try to mitigate the real problem.

Simple analogy would be of using static routes with static MPLS labels. I
can assure you that there are legitimate valid use cases where loop get's
enforced by configuration.

As a matter of fact those are done in production for link quality tests.
Also I can have same label bound to N number of prefixes at ultimate node
(with PHP disabled) such that packets received with label 100 will get ECMP
to all of those N destinations. Let's observe that SR does not require to
be deployed domain or AS wide in number of network topologies.

Kind regards,
R.


On Fri, Dec 9, 2016 at 10:43 PM, Les Ginsberg (ginsberg) <ginsberg@cisco.co=
m
> wrote:

> Gunter =E2=80=93
>
>
>
> It is a misunderstanding to think that conflict resolution of ANY FLAVOR
> affects the best path selection/installation. This is simply not the case=
.
>
>
>
> We are talking about an MPLS forwarding plane which uses labels which are
> globally scoped. (The fact that the label is represented as an index into=
 a
> router specific SRGB is not relevant).
>
> If we have a conflict then a given label can be associated with multiple
> prefixes =E2=80=93 here is one example:
>
>
>
> 1.1.1.1/32 index 100
>
> 2.2.2.2/32 index 100
>
>
>
> If I choose to use index 100 for 1.1.1.1/32 =E2=80=93 but my neighbor cho=
oses to
> use index 100 for 2.2.2.2/32 =E2=80=93 then when I encapsulate a packet a=
ddressed
> to 1.1.1.1 and forward it to my neighbor it will get sent in the directio=
n
> of 2.2.2.2.
>
> This is the problem conflict resolution is trying to address.
>
>
>
> As regards =E2=80=9Cignore overlap only=E2=80=9D complexity, I repeat my =
earlier reply to
> Bruno:
>
>
>
> =E2=80=9C*If you want to argue that these are solvable problems I won=E2=
=80=99t disagree
> with you =E2=80=93 it is a question of where we want to put our time and =
effort. A
> number of folks are commenting that they prefer to focus on fixing the
> configuration and not invest  time in validating that conflict resolution
> is implemented in an interoperable way. As we (the authors) have stated
> from the beginning, we believe the emphasis should be on detecting and
> reporting the conflicts =E2=80=93 not spending cycles implementing the mo=
st robust
> means of trying to operate optimally while the misconfiguration exists.=
=E2=80=9D*
>
>
>
> *   Les*
>
>
>
>
>
> *From:* Van De Velde, Gunter (Nokia - BE) [mailto:gunter.van_de_velde@
> nokia.com]
> *Sent:* Friday, December 09, 2016 12:11 PM
> *To:* Les Ginsberg (ginsberg); spring@ietf.org
> *Subject:* Re: [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> The method to =E2=80=9Cmaximize forwarding=E2=80=9D as mentioned in the d=
raft seems to be
> in consistent logic with how the current
>
> unicast routing table is build. For unicast routes the route selected for
> a given IP destination address is a function(prefix-length/admin-distance=
).
>
>
> This is done for better address space management, and to have predictable
> routing incase of clashes in the routing table. Hence, to me, it seems on=
ly
> natural to
>
> to keep promoting "ignore overlap only" as result as it mimics traditiona=
l
> unicast routing table constructs.
>
>
>
> The alternative sounds a bit like stepping back to Class A/B/C addresses
> by just avoiding the problem and significantly impact potential clash
> scenarios as consequence due to oversimplification.
>
>
>
> Finally, I do not understand the reasoning behind the sudden worry
> regarding "ignore overlap only" policy to be obscenely complex. If I
> understand IETF procedures well, and if
>
>  =E2=80=9Cignore overlap only=E2=80=9D is documented properly, just like =
any standard
> track RFC should be, then how are incompatible behaviours possible? Shoul=
d
> we not try to architect for
>
> the BEST realistic future proof solution, and not for the easiest less
> optimal solution. (Keep in mind that at some point in time people believe=
d
> that doing routing in the
>
> style of Class A/B/C was the future also, and see where we are right now)=
.
>
>
>
> G/
>
>
>
>
>
>
>
> *From:* spring [mailto:spring-bounces@ietf.org <spring-bounces@ietf.org>]=
 *On
> Behalf Of *Les Ginsberg (ginsberg)
> *Sent:* Sunday, December 04, 2016 7:04 PM
> *To:* spring@ietf.org
> *Subject:* [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> When the problem addressed by draft-ietf-spring-conflict-resolution was
> first
>
> presented at IETF 94, the authors defined the following priorities:
>
>
>
> 1)Detect the problem
>
> 2)Report the problem
>
> This alerts the network operator to the existence of a conflict so that
>
> the configuration error can be corrected.
>
> 3)Define consistent behavior
>
> This avoids mis-forwarding while the conflict exists.
>
> 4)Don=E2=80=99t overengineer the solution
>
> Given that it is impossible to know which of the conflicting entries
>
> is the correct one, we should apply a simple algorithm to resolve the
> conflict.
>
> 5)Agree on the resolution behavior
>
>
>
> The resolution behavior was deliberately the last point because it was
>
> considered the least important.
>
>
>
> Input was received over the past year which emphasized the importance of
>
> trying to "maximize forwarding" in the presence of conflicts. Subsequent
>
> revisions of the draft have tried to address this concern. However the
> authors
>
> have repeatedly stressed that the solution being proposed
>
> ("ignore overlap only") was more complex than other offered alternatives
> and
>
> would be more difficult to guarantee interoperability because subtle
>
> differences in an implementation could produce different results.
>
>
>
> At IETF97 significant feedback was received preferring a simpler solution
> to
>
> the problem. The authors are very sympathetic to this feedback and
> therefore
>
> are proposing a solution based on what the draft defines as the "Ignore"
>
> policy - where all entries which are in conflict are ignored. We believe
> this
>
> is far more desirable and aligns with the priorities listed above.
>
>
>
> We outline the proposed solution below and would like to receive feedback
> from
>
> the WG before publishing the next revision of the draft.
>
>
>
>    Les (on behalf of the authors)
>
>
>
> *New Proposal*
>
>
>
> *In the latest revision of the draft "SRMS Preference" was introduced.
> This *
>
> *provides a way for a numerical preference to be explicitly associated
> with an *
>
> *SRMS advertisement. Using this an operator can indicate which
> advertisement is *
>
> *to be preferred when a conflict is present. The authors think this is a
> useful *
>
> *addition and we therefore want to include this in the new solution.*
>
>
>
> *The new preference rule used to resolve conflicts is defined as follows:=
*
>
>
>
> *A given mapping entry is compared against all mapping entries in the
> database *
>
> *with a preference greater than or equal to its own. If there is a
> conflict, *
>
> *the mapping entry with lower preference is ignored. If two mapping
> entries are*
>
> *in conflict and have equal preference then both entries are ignored.*
>
>
>
> *Implementation of this policy is defined as follows:*
>
>
>
> *Step 1: Within a single address-family/algorithm/topology sort entries *
>
> *based on preference *
>
> *Step 2: Starting with the lowest preference entries, resolve prefix
> conflicts *
>
> *using the above preference rule. The output is an active policy per
> topology.*
>
> *Step 3: Take the outputs from Step 2 and again sort them by preference *
>
> *Step 4: Starting with the lowest preference entries, resolve SID
> conflicts *
>
> *using the above preference rule*
>
>
>
> *The output from Step 4 is then the current Active Policy.*
>
>
>
> Here are a few examples. Each mapping entry is represented by the tuple:
>
> (Preference, Prefix/mask Index range <#>)
>
>
>
> Example 1:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 100)
>
> 2. (149, 1.1.1.10/32 200 range 200)
>
> 3. (148, 1.1.1.101/32 500 range 10)
>
>
>
> Entry 3 conflicts with entry 2, it is ignored.
>
> Entry 2 conflicts with entry 1, it is ignored.
>
> Active policy:
>
>
>
> (150, 1.1.1.1/32 100 range 100)
>
>
>
> Example 2:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 100)
>
> 2. (150, 1.1.1.10/32 200 range 200)
>
> 3. (150, 1.1.1.101/32 500 range 10)
>
> 4. (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 1 conflicts with entry 2, both are marked as ignore.
>
> Entry 3 conflicts with entry 2. It is marked as ignore.
>
> Entry 4 has no conflicts with any entries
>
>
>
> Active policy:
>
> (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Example 3:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 500)
>
> 2. (150, 1.1.1.10/32 200 range 200)
>
> 3. (150, 1.1.1.101/32 500 range 10)
>
> 4. (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignor=
e.
>
>
>
> Active policy:
>
> Empty
>
>
>
> Example 4:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 10)
>
> 2. (149, 1.1.1.10/32 200 range 300)
>
> 3. (149, 1.1.1.101/32 500 range 10)
>
> 4. (148, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 4 conflicts with entry 2. It is marked ignore.
>
> Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.
>
>
>
> Active policy:
>
> (150, 1.1.1.1/32 100 range 10)
>
>
>
>
>
>
>
>
>
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring
>
>

--047d7bd6bc9c97f0d9054340df92
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small">Dear Les,</div><div class=3D"gmail_defa=
ult" style=3D"font-family:arial,helvetica,sans-serif;font-size:small"><br><=
/div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans=
-serif;font-size:small"><span style=3D"color:rgb(31,73,125);font-family:ari=
al,sans-serif;font-size:12.8px">&gt; This is the problem conflict resolutio=
n is trying to address.</span><br></div><div class=3D"gmail_default" style=
=3D"font-family:arial,helvetica,sans-serif;font-size:small"><span style=3D"=
color:rgb(31,73,125);font-family:arial,sans-serif;font-size:12.8px"><br></s=
pan></div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica=
,sans-serif;font-size:small"><span style=3D"color:rgb(31,73,125);font-famil=
y:arial,sans-serif;font-size:12.8px">The problem description is very clear.=
=C2=A0</span></div><div class=3D"gmail_default" style=3D"font-family:arial,=
helvetica,sans-serif;font-size:small"><span style=3D"color:rgb(31,73,125);f=
ont-family:arial,sans-serif;font-size:12.8px"><br></span></div><div class=
=3D"gmail_default"><font color=3D"#1f497d"><span style=3D"font-size:12.8px"=
>IMO what router should do in this case is (depending on it&#39;s location)=
=C2=A0</span></font></div><div class=3D"gmail_default"><font color=3D"#1f49=
7d"><span style=3D"font-size:12.8px"><br></span></font></div><div class=3D"=
gmail_default"><font color=3D"#1f497d"><span style=3D"font-size:12.8px">a) =
not to install ANY label and only install IP routes.=C2=A0</span></font></d=
iv><div class=3D"gmail_default"><font color=3D"#1f497d"><span style=3D"font=
-size:12.8px">b) install 100 and point it to IP switching paths to both <a =
href=3D"http://1.1.1.1/32">1.1.1.1/32</a> &amp; <a href=3D"http://2.2.2.2/3=
2">2.2.2.2/32</a>=C2=A0</span></font></div><div class=3D"gmail_default"><fo=
nt color=3D"#1f497d"><span style=3D"font-size:12.8px"><br></span></font></d=
iv><div class=3D"gmail_default"><span style=3D"font-size:12.8px;color:rgb(3=
1,73,125)"><br></span></div><div class=3D"gmail_default"><span style=3D"fon=
t-size:12.8px;color:rgb(31,73,125)">If/when MPLS/SR forwarding will fail an=
d the best we can do is not only to properly (sys)log it, but define a </sp=
an><b style=3D"font-size:12.8px;color:rgb(31,73,125)">new ICMP error type</=
b><font color=3D"#1f497d"><span style=3D"font-size:12.8px"> which would att=
empt to inform the sender that SR path broke at that point in the network d=
ue to conflicting SID entries being detected and suppressed=C2=A0from enter=
ing LFIB.=C2=A0</span></font><br></div><div class=3D"gmail_default"><font c=
olor=3D"#1f497d"><span style=3D"font-size:12.8px"><br></span></font></div><=
div class=3D"gmail_default"><font color=3D"#1f497d"><span style=3D"font-siz=
e:12.8px">In general <b>SID Conflict Detection</b> and proper signalling sh=
ould be our focus here rather then guessing what should be the right automa=
ted/algorithmic=C2=A0way to hide and try to mitigate the real problem.=C2=
=A0</span></font></div><div class=3D"gmail_default"><font color=3D"#1f497d"=
><span style=3D"font-size:12.8px"><br></span></font></div><div class=3D"gma=
il_default"><font color=3D"#1f497d"><span style=3D"font-size:12.8px">Simple=
 analogy would be of using static routes with static MPLS labels. I can ass=
ure you that there are legitimate valid use cases where loop get&#39;s enfo=
rced by configuration.=C2=A0</span></font></div><div class=3D"gmail_default=
"><font color=3D"#1f497d"><span style=3D"font-size:12.8px"><br></span></fon=
t></div><div class=3D"gmail_default"><font color=3D"#1f497d"><span style=3D=
"font-size:12.8px">As a matter of fact those are done in production for lin=
k quality tests. Also I can have same label bound to N number of prefixes a=
t ultimate node (with PHP disabled) such that packets received with label 1=
00 will get ECMP to all of those N destinations. Let&#39;s observe that SR =
does not require to be deployed domain or AS wide in number of network topo=
logies.=C2=A0</span></font></div><div class=3D"gmail_default"><font color=
=3D"#1f497d"><span style=3D"font-size:12.8px"><br></span></font></div><div =
class=3D"gmail_default"><font color=3D"#1f497d"><span style=3D"font-size:12=
.8px">Kind regards,</span></font></div><div class=3D"gmail_default"><font c=
olor=3D"#1f497d"><span style=3D"font-size:12.8px">R.</span></font></div><di=
v class=3D"gmail_default"><br></div></div><div class=3D"gmail_extra"><br><d=
iv class=3D"gmail_quote">On Fri, Dec 9, 2016 at 10:43 PM, Les Ginsberg (gin=
sberg) <span dir=3D"ltr">&lt;<a href=3D"mailto:ginsberg@cisco.com" target=
=3D"_blank">ginsberg@cisco.com</a>&gt;</span> wrote:<br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">





<div bgcolor=3D"white" lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"m_2388516417904907696WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">Gunter =E2=80=93<u></u=
><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">It is a misunderstandi=
ng to think that conflict resolution of ANY FLAVOR affects the best path se=
lection/installation. This is simply not the case.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">We are talking about a=
n MPLS forwarding plane which uses labels which are globally scoped. (The f=
act that the label is represented as an index into a router specific SRGB i=
s not relevant).
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">If we have a conflict =
then a given label can be associated with multiple prefixes =E2=80=93 here =
is one example:<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><a href=3D"http://1.1.=
1.1/32" target=3D"_blank">1.1.1.1/32</a> index 100<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><a href=3D"http://2.2.=
2.2/32" target=3D"_blank">2.2.2.2/32</a> index 100<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">If I choose to use ind=
ex 100 for <a href=3D"http://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> =
=E2=80=93 but my neighbor chooses to use index 100 for <a href=3D"http://2.=
2.2.2/32" target=3D"_blank">2.2.2.2/32</a> =E2=80=93 then when I encapsulat=
e a packet addressed to 1.1.1.1 and forward it to my neighbor it will get s=
ent in
 the direction of 2.2.2.2. <u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">This is the problem co=
nflict resolution is trying to address.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">As regards =E2=80=9Cig=
nore overlap only=E2=80=9D complexity, I repeat my earlier reply to Bruno:<=
u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=E2=80=9C</span><b><i>=
<span style=3D"color:#1f497d">If you want to argue that these are solvable =
problems I won=E2=80=99t disagree with you =E2=80=93 it is a question of wh=
ere we want to put our time and effort. A number of folks are
 commenting that they prefer to focus on fixing the configuration and not i=
nvest =C2=A0time in validating that conflict resolution is implemented in a=
n interoperable way. As we (the authors) have stated from the beginning, we=
 believe the emphasis should be on detecting
 and reporting the conflicts =E2=80=93 not spending cycles implementing the=
 most robust means of trying to operate optimally while the misconfiguratio=
n exists.=E2=80=9D<u></u><u></u></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1f497d"><u></u>=C2=A0<u>=
</u></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1f497d">=C2=A0=C2=A0 Les=
<u></u><u></u></span></i></b></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d"><u></u>=C2=A0<u></u></=
span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Van De V=
elde, Gunter (Nokia - BE) [mailto:<a href=3D"mailto:gunter.van_de_velde@nok=
ia.com" target=3D"_blank">gunter.van_de_velde@<wbr>nokia.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 12:11 PM<span class=3D""><br>
<b>To:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org" targ=
et=3D"_blank">spring@ietf.org</a><br>
</span><b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Prop=
osal<u></u><u></u></span></p>
</div>
</div><div><div class=3D"h5">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">The metho=
d to =E2=80=9Cmaximize forwarding=E2=80=9D as mentioned in the draft seems =
to be in consistent logic with how the current
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">unicast r=
outing table is build. For unicast routes the route selected for a given IP=
 destination address is a function(prefix-length/admin-<wbr>distance).
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">This is d=
one for better address space management, and to have predictable routing in=
case of clashes in the routing table. Hence, to me, it seems only natural t=
o
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">to keep p=
romoting &quot;ignore overlap only&quot; as result as it mimics traditional=
 unicast routing table constructs.
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black"><u></u>=
=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">The alter=
native sounds a bit like stepping back to Class A/B/C addresses by just avo=
iding the problem and significantly impact potential clash scenarios as con=
sequence due to oversimplification.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black"><u></u>=
=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">Finally, =
I do not understand the reasoning behind the sudden worry regarding &quot;i=
gnore overlap only&quot; policy to be obscenely complex. If I understand IE=
TF procedures well, and if
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">=C2=A0=E2=
=80=9Cignore overlap only=E2=80=9D is documented properly, just like any st=
andard track RFC should be, then how are incompatible behaviours possible? =
Should we not try to architect for
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">the BEST =
realistic future proof solution, and not for the easiest less optimal solut=
ion. (Keep in mind that at some point in time people believed that doing ro=
uting in the
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">style of =
Class A/B/C was the future also, and see where we are right now).
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black"><u></u>=
=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black">G/ <u></u=
><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black"><u></u>=
=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"color:black"><u></u>=
=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-GB" style=3D"font-size:10.0pt;font-=
family:&quot;Arial&quot;,&quot;sans-serif&quot;">=C2=A0</span><span lang=3D=
"EN-GB"><u></u><u></u></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"EN-GB">From:</span></b><span lang=
=3D"EN-GB"> spring [<a href=3D"mailto:spring-bounces@ietf.org" target=3D"_b=
lank">mailto:spring-bounces@ietf.<wbr>org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Sunday, December 04, 2016 7:04 PM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org" target=3D"_blank">spring@ietf=
.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<u></u>=
<u></u></span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-GB">=C2=A0<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">When th=
e problem addressed by draft-ietf-spring-conflict-<wbr>resolution was first
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">present=
ed at IETF 94, the authors defined the following priorities:<u></u><u></u><=
/span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">1)Detec=
t the problem<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">2)Repor=
t the problem<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">This al=
erts the network operator to the existence of a conflict so that<u></u><u><=
/u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">the con=
figuration error can be corrected.<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">3)Defin=
e consistent behavior<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">This av=
oids mis-forwarding while the conflict exists.<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">4)Don=
=E2=80=99t overengineer the solution<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Given t=
hat it is impossible to know which of the conflicting entries<u></u><u></u>=
</span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">is the =
correct one, we should apply a simple algorithm to resolve the conflict.<u>=
</u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">5)Agree=
 on the resolution behavior<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">The res=
olution behavior was deliberately the last point because it was
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">conside=
red the least important.<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Input w=
as received over the past year which emphasized the importance of<u></u><u>=
</u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">trying =
to &quot;maximize forwarding&quot; in the presence of conflicts. Subsequent=
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">revisio=
ns of the draft have tried to address this concern. However the authors
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">have re=
peatedly stressed that the solution being proposed
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">(&quot;=
ignore overlap only&quot;) was more complex than other offered alternatives=
 and
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">would b=
e more difficult to guarantee interoperability because subtle
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">differe=
nces in an implementation could produce different results.<u></u><u></u></s=
pan></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">At IETF=
97 significant feedback was received preferring a simpler solution to
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">the pro=
blem. The authors are very sympathetic to this feedback and therefore
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">are pro=
posing a solution based on what the draft defines as the &quot;Ignore&quot;
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">policy =
- where all entries which are in conflict are ignored. We believe this
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">is far =
more desirable and aligns with the priorities listed above.<u></u><u></u></=
span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">We outl=
ine the proposed solution below and would like to receive feedback from
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">the WG =
before publishing the next revision of the draft.<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0=
=C2=A0 Les (on behalf of the authors)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">New =
Proposal</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">=C2=
=A0</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">In t=
he latest revision of the draft &quot;SRMS Preference&quot; was introduced.=
 This
</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">prov=
ides a way for a numerical preference to be explicitly associated with an
</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">SRMS=
 advertisement. Using this an operator can indicate which advertisement is
</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">to b=
e preferred when a conflict is present. The authors think this is a useful
</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">addi=
tion and we therefore want to include this in the new solution.</span></i><=
span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">=C2=
=A0</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">The =
new preference rule used to resolve conflicts is defined as follows:</span>=
</i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">=C2=
=A0</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">A=
 given mapping entry is compared against all mapping entries in the databas=
e
</span></i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">w=
ith a preference greater than or equal to its own. If there is a conflict,
</span></i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">t=
he mapping entry with lower preference is ignored. If two mapping entries a=
re</span></i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">i=
n conflict and have equal preference then both entries are ignored.</span><=
/i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">=C2=
=A0</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">Impl=
ementation of this policy is defined as follows:</span></i><span lang=3D"EN=
-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><i><span lang=3D"EN-GB">=C2=
=A0</span></i><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">S=
tep 1: Within a single address-family/algorithm/<wbr>topology sort entries
</span></i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">b=
ased on preference </span></i></b><span lang=3D"EN-GB"><u></u><u></u></span=
></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">S=
tep 2: Starting with the lowest preference entries, resolve prefix conflict=
s
</span></i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">u=
sing the above preference rule. The output is an active policy per topology=
.</span></i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">S=
tep 3: Take the outputs from Step 2 and again sort them by preference
</span></i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">S=
tep 4: Starting with the lowest preference entries, resolve SID conflicts
</span></i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">u=
sing the above preference rule</span></i></b><span lang=3D"EN-GB"><u></u><u=
></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">=
=C2=A0</span></i></b><span lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><b><i><span lang=3D"EN-GB">T=
he output from Step 4 is then the current Active Policy.</span></i></b><spa=
n lang=3D"EN-GB"><u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Here ar=
e a few examples. Each mapping entry is represented by the tuple:<u></u><u>=
</u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">(Prefer=
ence, Prefix/mask Index range &lt;#&gt;)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Example=
 1:<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">1. (150=
, <a href=3D"http://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range =
100)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">2. (149=
, <a href=3D"http://1.1.1.10/32" target=3D"_blank">1.1.1.10/32</a> 200 rang=
e 200)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">3. (148=
, <a href=3D"http://1.1.1.101/32" target=3D"_blank">1.1.1.101/32</a> 500 ra=
nge 10)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Entry 3=
 conflicts with entry 2, it is ignored.<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Entry 2=
 conflicts with entry 1, it is ignored.<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Active =
policy:<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">(150, <=
a href=3D"http://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range 100=
)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Example=
 2:<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">1. (150=
, <a href=3D"http://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range =
100)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">2. (150=
, <a href=3D"http://1.1.1.10/32" target=3D"_blank">1.1.1.10/32</a> 200 rang=
e 200)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">3. (150=
, <a href=3D"http://1.1.1.101/32" target=3D"_blank">1.1.1.101/32</a> 500 ra=
nge 10)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">4. (150=
, <a href=3D"http://2.2.2.1/32" target=3D"_blank">2.2.2.1/32</a> 1000 range=
 1)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Entry 1=
 conflicts with entry 2, both are marked as ignore.<u></u><u></u></span></p=
>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Entry 3=
 conflicts with entry 2. It is marked as ignore.<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Entry 4=
 has no conflicts with any entries<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Active =
policy:<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">(150, <=
a href=3D"http://2.2.2.1/32" target=3D"_blank">2.2.2.1/32</a> 1000 range 1)=
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Example=
 3:<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">1. (150=
, <a href=3D"http://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range =
500)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">2. (150=
, <a href=3D"http://1.1.1.10/32" target=3D"_blank">1.1.1.10/32</a> 200 rang=
e 200)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">3. (150=
, <a href=3D"http://1.1.1.101/32" target=3D"_blank">1.1.1.101/32</a> 500 ra=
nge 10)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">4. (150=
, <a href=3D"http://2.2.2.1/32" target=3D"_blank">2.2.2.1/32</a> 1000 range=
 1)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Entry 1=
 conflicts with entries 2, 3, and=C2=A0 4. All entries are marked ignore.<u=
></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Active =
policy:<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Empty<u=
></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Example=
 4:<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">1. (150=
, <a href=3D"http://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range =
10)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">2. (149=
, <a href=3D"http://1.1.1.10/32" target=3D"_blank">1.1.1.10/32</a> 200 rang=
e 300)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">3. (149=
, <a href=3D"http://1.1.1.101/32" target=3D"_blank">1.1.1.101/32</a> 500 ra=
nge 10)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">4. (148=
, <a href=3D"http://2.2.2.1/32" target=3D"_blank">2.2.2.1/32</a> 1000 range=
 1)<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Entry 4=
 conflicts with entry 2. It is marked ignore.<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Entry 2=
 conflicts with entry 3. Entries 2 and 3 are marked ignore.<u></u><u></u></=
span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">Active =
policy:<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">(150, <=
a href=3D"http://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range 10)=
<u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
<p class=3D"m_2388516417904907696MsoPlainText"><span lang=3D"EN-GB">=C2=A0<=
u></u><u></u></span></p>
</div>
</div></div></div>
</div>
</div>

<br>______________________________<wbr>_________________<br>
spring mailing list<br>
<a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/spring" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/<wbr>listinfo/spring</a><br=
>
<br></blockquote></div><br></div>

--047d7bd6bc9c97f0d9054340df92--


From nobody Fri Dec  9 14:03:59 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5CBE212956F for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 14:03:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.416
X-Spam-Level: 
X-Spam-Status: No, score=-17.416 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ok4lVVOo1ITZ for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 14:03:55 -0800 (PST)
Received: from rcdn-iport-9.cisco.com (rcdn-iport-9.cisco.com [173.37.86.80]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C853A129531 for <spring@ietf.org>; Fri,  9 Dec 2016 14:03:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=63782; q=dns/txt; s=iport; t=1481321034; x=1482530634; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=Q7vJWx3x0FbYqnd/b7GBijwbiTBH4ZJi4Pjx9KLoWVY=; b=Sz3qaj8/m7OFX5AY9PR/aEy7yYUzlkUr9liwLp6UpA4pq2FAE5+GtOQp +Dies2SbUzrodbjAHj2Uh9b9wDwk298tQ5ghjYy+bMgCd8lk8oiszgcnA D9Pb0bE6/PfTyNmW0NJ1uDkSXRXLOD+UEPD7A+So1hWW6waw/UMIxDhdd w=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AWAQDxKUtY/4YNJK1dGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnM5CwEBAQEBH1qBBAIHjUKXE4JXhR6NDYIHAx4BCoUuSgIaKYE?= =?us-ascii?q?jPxQBAgEBAQEBAQFiKIRoAQEBAwEBASEKHgEiCwULAgEIEQICAQEhAQYDAgICH?= =?us-ascii?q?wQCCxQJCAIEDgUIEwSIMgMPCA6qe4IphBIBgyMNg1wBAQEBAQEBAQEBAQEBAQE?= =?us-ascii?q?BAQEBAQEdhj6DU4EIgkiCFx+CToJdBZUAhTY1AYdGhXWDXIF8jlKJVh+EFoQNA?= =?us-ascii?q?Q8QN0lYJIM8HIFdcgGGGyuBA4ENAQEB?=
X-IronPort-AV: E=Sophos;i="5.33,325,1477958400";  d="scan'208,217";a="179418492"
Received: from alln-core-12.cisco.com ([173.36.13.134]) by rcdn-iport-9.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 09 Dec 2016 22:03:43 +0000
Received: from XCH-RCD-004.cisco.com (xch-rcd-004.cisco.com [173.37.102.14]) by alln-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id uB9M3gQM025211 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 9 Dec 2016 22:03:43 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-RCD-004.cisco.com (173.37.102.14) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Fri, 9 Dec 2016 16:03:42 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Fri, 9 Dec 2016 16:03:42 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: Robert Raszuk <robert@raszuk.net>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AQHSUlhMOvA8JiDrT2eiOTpEk40qz6EAG4CggABzhoD//5wgYA==
Date: Fri, 9 Dec 2016 22:03:42 +0000
Message-ID: <7324f7ade4014659a1e19200f70520d1@XCH-ALN-001.cisco.com>
References: <332FE00B-442E-44DC-A825-78E56FC12176@alcatel-lucent.com> <33ada622a415433ba2955ca8c0aa6dc5@XCH-ALN-001.cisco.com> <CA+b+ERmZKrMR1KXugHwd8fBWCdUw7XPR2WgUAHAtuaWkpxgtJg@mail.gmail.com>
In-Reply-To: <CA+b+ERmZKrMR1KXugHwd8fBWCdUw7XPR2WgUAHAtuaWkpxgtJg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.119.150]
Content-Type: multipart/alternative; boundary="_000_7324f7ade4014659a1e19200f70520d1XCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/nPBQEsrW-nFzB7Ttiwpbw4wNK3s>
Cc: "spring@ietf.org" <spring@ietf.org>, "Van De Velde, Gunter \(Nokia - BE\)" <gunter.van_de_velde@nokia.com>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 09 Dec 2016 22:03:58 -0000

--_000_7324f7ade4014659a1e19200f70520d1XCHALN001ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

Um9iZXJ0IC0NCg0KRnJvbTogcnJhc3p1a0BnbWFpbC5jb20gW21haWx0bzpycmFzenVrQGdtYWls
LmNvbV0gT24gQmVoYWxmIE9mIFJvYmVydCBSYXN6dWsNClNlbnQ6IEZyaWRheSwgRGVjZW1iZXIg
MDksIDIwMTYgMjowMCBQTQ0KVG86IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpDQpDYzogVmFuIERl
IFZlbGRlLCBHdW50ZXIgKE5va2lhIC0gQkUpOyBzcHJpbmdAaWV0Zi5vcmcNClN1YmplY3Q6IFJl
OiBbc3ByaW5nXSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQoN
CkRlYXIgTGVzLA0KDQo+IFRoaXMgaXMgdGhlIHByb2JsZW0gY29uZmxpY3QgcmVzb2x1dGlvbiBp
cyB0cnlpbmcgdG8gYWRkcmVzcy4NCg0KVGhlIHByb2JsZW0gZGVzY3JpcHRpb24gaXMgdmVyeSBj
bGVhci4NCg0KSU1PIHdoYXQgcm91dGVyIHNob3VsZCBkbyBpbiB0aGlzIGNhc2UgaXMgKGRlcGVu
ZGluZyBvbiBpdCdzIGxvY2F0aW9uKQ0KDQphKSBub3QgdG8gaW5zdGFsbCBBTlkgbGFiZWwgYW5k
IG9ubHkgaW5zdGFsbCBJUCByb3V0ZXMuDQoNCltMZXM6XSBUaGF0IGlzIHByZWNpc2VseSB3aGF0
IHRoZSBJZ25vcmUgcG9saWN5IHdpbGwgZG8uDQoNCmIpIGluc3RhbGwgMTAwIGFuZCBwb2ludCBp
dCB0byBJUCBzd2l0Y2hpbmcgcGF0aHMgdG8gYm90aCAxLjEuMS4xLzMyPGh0dHA6Ly8xLjEuMS4x
LzMyPiAmIDIuMi4yLjIvMzI8aHR0cDovLzIuMi4yLjIvMzI+DQoNCg0KSWYvd2hlbiBNUExTL1NS
IGZvcndhcmRpbmcgd2lsbCBmYWlsIGFuZCB0aGUgYmVzdCB3ZSBjYW4gZG8gaXMgbm90IG9ubHkg
dG8gcHJvcGVybHkgKHN5cylsb2cgaXQsIGJ1dCBkZWZpbmUgYSBuZXcgSUNNUCBlcnJvciB0eXBl
IHdoaWNoIHdvdWxkIGF0dGVtcHQgdG8gaW5mb3JtIHRoZSBzZW5kZXIgdGhhdCBTUiBwYXRoIGJy
b2tlIGF0IHRoYXQgcG9pbnQgaW4gdGhlIG5ldHdvcmsgZHVlIHRvIGNvbmZsaWN0aW5nIFNJRCBl
bnRyaWVzIGJlaW5nIGRldGVjdGVkIGFuZCBzdXBwcmVzc2VkIGZyb20gZW50ZXJpbmcgTEZJQi4N
Cg0KSW4gZ2VuZXJhbCBTSUQgQ29uZmxpY3QgRGV0ZWN0aW9uIGFuZCBwcm9wZXIgc2lnbmFsbGlu
ZyBzaG91bGQgYmUgb3VyIGZvY3VzIGhlcmUgcmF0aGVyIHRoZW4gZ3Vlc3Npbmcgd2hhdCBzaG91
bGQgYmUgdGhlIHJpZ2h0IGF1dG9tYXRlZC9hbGdvcml0aG1pYyB3YXkgdG8gaGlkZSBhbmQgdHJ5
IHRvIG1pdGlnYXRlIHRoZSByZWFsIHByb2JsZW0uDQpbTGVzOl0gRXhjZWxsZW50IOKAkyB3ZSBh
cmUgaW4gYWdyZWVtZW50ICENCg0KICAgIExlcw0KDQoNClNpbXBsZSBhbmFsb2d5IHdvdWxkIGJl
IG9mIHVzaW5nIHN0YXRpYyByb3V0ZXMgd2l0aCBzdGF0aWMgTVBMUyBsYWJlbHMuIEkgY2FuIGFz
c3VyZSB5b3UgdGhhdCB0aGVyZSBhcmUgbGVnaXRpbWF0ZSB2YWxpZCB1c2UgY2FzZXMgd2hlcmUg
bG9vcCBnZXQncyBlbmZvcmNlZCBieSBjb25maWd1cmF0aW9uLg0KDQpBcyBhIG1hdHRlciBvZiBm
YWN0IHRob3NlIGFyZSBkb25lIGluIHByb2R1Y3Rpb24gZm9yIGxpbmsgcXVhbGl0eSB0ZXN0cy4g
QWxzbyBJIGNhbiBoYXZlIHNhbWUgbGFiZWwgYm91bmQgdG8gTiBudW1iZXIgb2YgcHJlZml4ZXMg
YXQgdWx0aW1hdGUgbm9kZSAod2l0aCBQSFAgZGlzYWJsZWQpIHN1Y2ggdGhhdCBwYWNrZXRzIHJl
Y2VpdmVkIHdpdGggbGFiZWwgMTAwIHdpbGwgZ2V0IEVDTVAgdG8gYWxsIG9mIHRob3NlIE4gZGVz
dGluYXRpb25zLiBMZXQncyBvYnNlcnZlIHRoYXQgU1IgZG9lcyBub3QgcmVxdWlyZSB0byBiZSBk
ZXBsb3llZCBkb21haW4gb3IgQVMgd2lkZSBpbiBudW1iZXIgb2YgbmV0d29yayB0b3BvbG9naWVz
Lg0KDQpLaW5kIHJlZ2FyZHMsDQpSLg0KDQoNCk9uIEZyaSwgRGVjIDksIDIwMTYgYXQgMTA6NDMg
UE0sIExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpIDxnaW5zYmVyZ0BjaXNjby5jb208bWFpbHRvOmdp
bnNiZXJnQGNpc2NvLmNvbT4+IHdyb3RlOg0KR3VudGVyIOKAkw0KDQpJdCBpcyBhIG1pc3VuZGVy
c3RhbmRpbmcgdG8gdGhpbmsgdGhhdCBjb25mbGljdCByZXNvbHV0aW9uIG9mIEFOWSBGTEFWT1Ig
YWZmZWN0cyB0aGUgYmVzdCBwYXRoIHNlbGVjdGlvbi9pbnN0YWxsYXRpb24uIFRoaXMgaXMgc2lt
cGx5IG5vdCB0aGUgY2FzZS4NCg0KV2UgYXJlIHRhbGtpbmcgYWJvdXQgYW4gTVBMUyBmb3J3YXJk
aW5nIHBsYW5lIHdoaWNoIHVzZXMgbGFiZWxzIHdoaWNoIGFyZSBnbG9iYWxseSBzY29wZWQuIChU
aGUgZmFjdCB0aGF0IHRoZSBsYWJlbCBpcyByZXByZXNlbnRlZCBhcyBhbiBpbmRleCBpbnRvIGEg
cm91dGVyIHNwZWNpZmljIFNSR0IgaXMgbm90IHJlbGV2YW50KS4NCklmIHdlIGhhdmUgYSBjb25m
bGljdCB0aGVuIGEgZ2l2ZW4gbGFiZWwgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBw
cmVmaXhlcyDigJMgaGVyZSBpcyBvbmUgZXhhbXBsZToNCg0KMS4xLjEuMS8zMjxodHRwOi8vMS4x
LjEuMS8zMj4gaW5kZXggMTAwDQoyLjIuMi4yLzMyPGh0dHA6Ly8yLjIuMi4yLzMyPiBpbmRleCAx
MDANCg0KSWYgSSBjaG9vc2UgdG8gdXNlIGluZGV4IDEwMCBmb3IgMS4xLjEuMS8zMjxodHRwOi8v
MS4xLjEuMS8zMj4g4oCTIGJ1dCBteSBuZWlnaGJvciBjaG9vc2VzIHRvIHVzZSBpbmRleCAxMDAg
Zm9yIDIuMi4yLjIvMzI8aHR0cDovLzIuMi4yLjIvMzI+IOKAkyB0aGVuIHdoZW4gSSBlbmNhcHN1
bGF0ZSBhIHBhY2tldCBhZGRyZXNzZWQgdG8gMS4xLjEuMSBhbmQgZm9yd2FyZCBpdCB0byBteSBu
ZWlnaGJvciBpdCB3aWxsIGdldCBzZW50IGluIHRoZSBkaXJlY3Rpb24gb2YgMi4yLjIuMi4NClRo
aXMgaXMgdGhlIHByb2JsZW0gY29uZmxpY3QgcmVzb2x1dGlvbiBpcyB0cnlpbmcgdG8gYWRkcmVz
cy4NCg0KQXMgcmVnYXJkcyDigJxpZ25vcmUgb3ZlcmxhcCBvbmx54oCdIGNvbXBsZXhpdHksIEkg
cmVwZWF0IG15IGVhcmxpZXIgcmVwbHkgdG8gQnJ1bm86DQoNCuKAnElmIHlvdSB3YW50IHRvIGFy
Z3VlIHRoYXQgdGhlc2UgYXJlIHNvbHZhYmxlIHByb2JsZW1zIEkgd29u4oCZdCBkaXNhZ3JlZSB3
aXRoIHlvdSDigJMgaXQgaXMgYSBxdWVzdGlvbiBvZiB3aGVyZSB3ZSB3YW50IHRvIHB1dCBvdXIg
dGltZSBhbmQgZWZmb3J0LiBBIG51bWJlciBvZiBmb2xrcyBhcmUgY29tbWVudGluZyB0aGF0IHRo
ZXkgcHJlZmVyIHRvIGZvY3VzIG9uIGZpeGluZyB0aGUgY29uZmlndXJhdGlvbiBhbmQgbm90IGlu
dmVzdCAgdGltZSBpbiB2YWxpZGF0aW5nIHRoYXQgY29uZmxpY3QgcmVzb2x1dGlvbiBpcyBpbXBs
ZW1lbnRlZCBpbiBhbiBpbnRlcm9wZXJhYmxlIHdheS4gQXMgd2UgKHRoZSBhdXRob3JzKSBoYXZl
IHN0YXRlZCBmcm9tIHRoZSBiZWdpbm5pbmcsIHdlIGJlbGlldmUgdGhlIGVtcGhhc2lzIHNob3Vs
ZCBiZSBvbiBkZXRlY3RpbmcgYW5kIHJlcG9ydGluZyB0aGUgY29uZmxpY3RzIOKAkyBub3Qgc3Bl
bmRpbmcgY3ljbGVzIGltcGxlbWVudGluZyB0aGUgbW9zdCByb2J1c3QgbWVhbnMgb2YgdHJ5aW5n
IHRvIG9wZXJhdGUgb3B0aW1hbGx5IHdoaWxlIHRoZSBtaXNjb25maWd1cmF0aW9uIGV4aXN0cy7i
gJ0NCg0KICAgTGVzDQoNCg0KRnJvbTogVmFuIERlIFZlbGRlLCBHdW50ZXIgKE5va2lhIC0gQkUp
IFttYWlsdG86Z3VudGVyLnZhbl9kZV92ZWxkZUBub2tpYS5jb208bWFpbHRvOmd1bnRlci52YW5f
ZGVfdmVsZGVAbm9raWEuY29tPl0NClNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMDksIDIwMTYgMTI6
MTEgUE0NClRvOiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKTsgc3ByaW5nQGlldGYub3JnPG1haWx0
bzpzcHJpbmdAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSZTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJl
c29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KDQpUaGUgbWV0aG9kIHRvIOKAnG1heGltaXpl
IGZvcndhcmRpbmfigJ0gYXMgbWVudGlvbmVkIGluIHRoZSBkcmFmdCBzZWVtcyB0byBiZSBpbiBj
b25zaXN0ZW50IGxvZ2ljIHdpdGggaG93IHRoZSBjdXJyZW50DQp1bmljYXN0IHJvdXRpbmcgdGFi
bGUgaXMgYnVpbGQuIEZvciB1bmljYXN0IHJvdXRlcyB0aGUgcm91dGUgc2VsZWN0ZWQgZm9yIGEg
Z2l2ZW4gSVAgZGVzdGluYXRpb24gYWRkcmVzcyBpcyBhIGZ1bmN0aW9uKHByZWZpeC1sZW5ndGgv
YWRtaW4tZGlzdGFuY2UpLg0KVGhpcyBpcyBkb25lIGZvciBiZXR0ZXIgYWRkcmVzcyBzcGFjZSBt
YW5hZ2VtZW50LCBhbmQgdG8gaGF2ZSBwcmVkaWN0YWJsZSByb3V0aW5nIGluY2FzZSBvZiBjbGFz
aGVzIGluIHRoZSByb3V0aW5nIHRhYmxlLiBIZW5jZSwgdG8gbWUsIGl0IHNlZW1zIG9ubHkgbmF0
dXJhbCB0bw0KdG8ga2VlcCBwcm9tb3RpbmcgImlnbm9yZSBvdmVybGFwIG9ubHkiIGFzIHJlc3Vs
dCBhcyBpdCBtaW1pY3MgdHJhZGl0aW9uYWwgdW5pY2FzdCByb3V0aW5nIHRhYmxlIGNvbnN0cnVj
dHMuDQoNClRoZSBhbHRlcm5hdGl2ZSBzb3VuZHMgYSBiaXQgbGlrZSBzdGVwcGluZyBiYWNrIHRv
IENsYXNzIEEvQi9DIGFkZHJlc3NlcyBieSBqdXN0IGF2b2lkaW5nIHRoZSBwcm9ibGVtIGFuZCBz
aWduaWZpY2FudGx5IGltcGFjdCBwb3RlbnRpYWwgY2xhc2ggc2NlbmFyaW9zIGFzIGNvbnNlcXVl
bmNlIGR1ZSB0byBvdmVyc2ltcGxpZmljYXRpb24uDQoNCkZpbmFsbHksIEkgZG8gbm90IHVuZGVy
c3RhbmQgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhlIHN1ZGRlbiB3b3JyeSByZWdhcmRpbmcgImln
bm9yZSBvdmVybGFwIG9ubHkiIHBvbGljeSB0byBiZSBvYnNjZW5lbHkgY29tcGxleC4gSWYgSSB1
bmRlcnN0YW5kIElFVEYgcHJvY2VkdXJlcyB3ZWxsLCBhbmQgaWYNCiDigJxpZ25vcmUgb3Zlcmxh
cCBvbmx54oCdIGlzIGRvY3VtZW50ZWQgcHJvcGVybHksIGp1c3QgbGlrZSBhbnkgc3RhbmRhcmQg
dHJhY2sgUkZDIHNob3VsZCBiZSwgdGhlbiBob3cgYXJlIGluY29tcGF0aWJsZSBiZWhhdmlvdXJz
IHBvc3NpYmxlPyBTaG91bGQgd2Ugbm90IHRyeSB0byBhcmNoaXRlY3QgZm9yDQp0aGUgQkVTVCBy
ZWFsaXN0aWMgZnV0dXJlIHByb29mIHNvbHV0aW9uLCBhbmQgbm90IGZvciB0aGUgZWFzaWVzdCBs
ZXNzIG9wdGltYWwgc29sdXRpb24uIChLZWVwIGluIG1pbmQgdGhhdCBhdCBzb21lIHBvaW50IGlu
IHRpbWUgcGVvcGxlIGJlbGlldmVkIHRoYXQgZG9pbmcgcm91dGluZyBpbiB0aGUNCnN0eWxlIG9m
IENsYXNzIEEvQi9DIHdhcyB0aGUgZnV0dXJlIGFsc28sIGFuZCBzZWUgd2hlcmUgd2UgYXJlIHJp
Z2h0IG5vdykuDQoNCkcvDQoNCg0KDQpGcm9tOiBzcHJpbmcgW21haWx0bzpzcHJpbmctYm91bmNl
c0BpZXRmLm9yZ10gT24gQmVoYWxmIE9mIExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpDQpTZW50OiBT
dW5kYXksIERlY2VtYmVyIDA0LCAyMDE2IDc6MDQgUE0NClRvOiBzcHJpbmdAaWV0Zi5vcmc8bWFp
bHRvOnNwcmluZ0BpZXRmLm9yZz4NClN1YmplY3Q6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNv
bHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWwNCg0KDQpXaGVuIHRoZSBwcm9ibGVtIGFkZHJlc3Nl
ZCBieSBkcmFmdC1pZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uIHdhcyBmaXJzdA0KDQpw
cmVzZW50ZWQgYXQgSUVURiA5NCwgdGhlIGF1dGhvcnMgZGVmaW5lZCB0aGUgZm9sbG93aW5nIHBy
aW9yaXRpZXM6DQoNCg0KDQoxKURldGVjdCB0aGUgcHJvYmxlbQ0KDQoyKVJlcG9ydCB0aGUgcHJv
YmxlbQ0KDQpUaGlzIGFsZXJ0cyB0aGUgbmV0d29yayBvcGVyYXRvciB0byB0aGUgZXhpc3RlbmNl
IG9mIGEgY29uZmxpY3Qgc28gdGhhdA0KDQp0aGUgY29uZmlndXJhdGlvbiBlcnJvciBjYW4gYmUg
Y29ycmVjdGVkLg0KDQozKURlZmluZSBjb25zaXN0ZW50IGJlaGF2aW9yDQoNClRoaXMgYXZvaWRz
IG1pcy1mb3J3YXJkaW5nIHdoaWxlIHRoZSBjb25mbGljdCBleGlzdHMuDQoNCjQpRG9u4oCZdCBv
dmVyZW5naW5lZXIgdGhlIHNvbHV0aW9uDQoNCkdpdmVuIHRoYXQgaXQgaXMgaW1wb3NzaWJsZSB0
byBrbm93IHdoaWNoIG9mIHRoZSBjb25mbGljdGluZyBlbnRyaWVzDQoNCmlzIHRoZSBjb3JyZWN0
IG9uZSwgd2Ugc2hvdWxkIGFwcGx5IGEgc2ltcGxlIGFsZ29yaXRobSB0byByZXNvbHZlIHRoZSBj
b25mbGljdC4NCg0KNSlBZ3JlZSBvbiB0aGUgcmVzb2x1dGlvbiBiZWhhdmlvcg0KDQoNCg0KVGhl
IHJlc29sdXRpb24gYmVoYXZpb3Igd2FzIGRlbGliZXJhdGVseSB0aGUgbGFzdCBwb2ludCBiZWNh
dXNlIGl0IHdhcw0KDQpjb25zaWRlcmVkIHRoZSBsZWFzdCBpbXBvcnRhbnQuDQoNCg0KDQpJbnB1
dCB3YXMgcmVjZWl2ZWQgb3ZlciB0aGUgcGFzdCB5ZWFyIHdoaWNoIGVtcGhhc2l6ZWQgdGhlIGlt
cG9ydGFuY2Ugb2YNCg0KdHJ5aW5nIHRvICJtYXhpbWl6ZSBmb3J3YXJkaW5nIiBpbiB0aGUgcHJl
c2VuY2Ugb2YgY29uZmxpY3RzLiBTdWJzZXF1ZW50DQoNCnJldmlzaW9ucyBvZiB0aGUgZHJhZnQg
aGF2ZSB0cmllZCB0byBhZGRyZXNzIHRoaXMgY29uY2Vybi4gSG93ZXZlciB0aGUgYXV0aG9ycw0K
DQpoYXZlIHJlcGVhdGVkbHkgc3RyZXNzZWQgdGhhdCB0aGUgc29sdXRpb24gYmVpbmcgcHJvcG9z
ZWQNCg0KKCJpZ25vcmUgb3ZlcmxhcCBvbmx5Iikgd2FzIG1vcmUgY29tcGxleCB0aGFuIG90aGVy
IG9mZmVyZWQgYWx0ZXJuYXRpdmVzIGFuZA0KDQp3b3VsZCBiZSBtb3JlIGRpZmZpY3VsdCB0byBn
dWFyYW50ZWUgaW50ZXJvcGVyYWJpbGl0eSBiZWNhdXNlIHN1YnRsZQ0KDQpkaWZmZXJlbmNlcyBp
biBhbiBpbXBsZW1lbnRhdGlvbiBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHRzLg0KDQoN
Cg0KQXQgSUVURjk3IHNpZ25pZmljYW50IGZlZWRiYWNrIHdhcyByZWNlaXZlZCBwcmVmZXJyaW5n
IGEgc2ltcGxlciBzb2x1dGlvbiB0bw0KDQp0aGUgcHJvYmxlbS4gVGhlIGF1dGhvcnMgYXJlIHZl
cnkgc3ltcGF0aGV0aWMgdG8gdGhpcyBmZWVkYmFjayBhbmQgdGhlcmVmb3JlDQoNCmFyZSBwcm9w
b3NpbmcgYSBzb2x1dGlvbiBiYXNlZCBvbiB3aGF0IHRoZSBkcmFmdCBkZWZpbmVzIGFzIHRoZSAi
SWdub3JlIg0KDQpwb2xpY3kgLSB3aGVyZSBhbGwgZW50cmllcyB3aGljaCBhcmUgaW4gY29uZmxp
Y3QgYXJlIGlnbm9yZWQuIFdlIGJlbGlldmUgdGhpcw0KDQppcyBmYXIgbW9yZSBkZXNpcmFibGUg
YW5kIGFsaWducyB3aXRoIHRoZSBwcmlvcml0aWVzIGxpc3RlZCBhYm92ZS4NCg0KDQoNCldlIG91
dGxpbmUgdGhlIHByb3Bvc2VkIHNvbHV0aW9uIGJlbG93IGFuZCB3b3VsZCBsaWtlIHRvIHJlY2Vp
dmUgZmVlZGJhY2sgZnJvbQ0KDQp0aGUgV0cgYmVmb3JlIHB1Ymxpc2hpbmcgdGhlIG5leHQgcmV2
aXNpb24gb2YgdGhlIGRyYWZ0Lg0KDQoNCg0KICAgTGVzIChvbiBiZWhhbGYgb2YgdGhlIGF1dGhv
cnMpDQoNCg0KDQpOZXcgUHJvcG9zYWwNCg0KDQoNCkluIHRoZSBsYXRlc3QgcmV2aXNpb24gb2Yg
dGhlIGRyYWZ0ICJTUk1TIFByZWZlcmVuY2UiIHdhcyBpbnRyb2R1Y2VkLiBUaGlzDQoNCnByb3Zp
ZGVzIGEgd2F5IGZvciBhIG51bWVyaWNhbCBwcmVmZXJlbmNlIHRvIGJlIGV4cGxpY2l0bHkgYXNz
b2NpYXRlZCB3aXRoIGFuDQoNClNSTVMgYWR2ZXJ0aXNlbWVudC4gVXNpbmcgdGhpcyBhbiBvcGVy
YXRvciBjYW4gaW5kaWNhdGUgd2hpY2ggYWR2ZXJ0aXNlbWVudCBpcw0KDQp0byBiZSBwcmVmZXJy
ZWQgd2hlbiBhIGNvbmZsaWN0IGlzIHByZXNlbnQuIFRoZSBhdXRob3JzIHRoaW5rIHRoaXMgaXMg
YSB1c2VmdWwNCg0KYWRkaXRpb24gYW5kIHdlIHRoZXJlZm9yZSB3YW50IHRvIGluY2x1ZGUgdGhp
cyBpbiB0aGUgbmV3IHNvbHV0aW9uLg0KDQoNCg0KVGhlIG5ldyBwcmVmZXJlbmNlIHJ1bGUgdXNl
ZCB0byByZXNvbHZlIGNvbmZsaWN0cyBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0KDQpBIGdp
dmVuIG1hcHBpbmcgZW50cnkgaXMgY29tcGFyZWQgYWdhaW5zdCBhbGwgbWFwcGluZyBlbnRyaWVz
IGluIHRoZSBkYXRhYmFzZQ0KDQp3aXRoIGEgcHJlZmVyZW5jZSBncmVhdGVyIHRoYW4gb3IgZXF1
YWwgdG8gaXRzIG93bi4gSWYgdGhlcmUgaXMgYSBjb25mbGljdCwNCg0KdGhlIG1hcHBpbmcgZW50
cnkgd2l0aCBsb3dlciBwcmVmZXJlbmNlIGlzIGlnbm9yZWQuIElmIHR3byBtYXBwaW5nIGVudHJp
ZXMgYXJlDQoNCmluIGNvbmZsaWN0IGFuZCBoYXZlIGVxdWFsIHByZWZlcmVuY2UgdGhlbiBib3Ro
IGVudHJpZXMgYXJlIGlnbm9yZWQuDQoNCg0KDQpJbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHBvbGlj
eSBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0KDQpTdGVwIDE6IFdpdGhpbiBhIHNpbmdsZSBh
ZGRyZXNzLWZhbWlseS9hbGdvcml0aG0vdG9wb2xvZ3kgc29ydCBlbnRyaWVzDQoNCmJhc2VkIG9u
IHByZWZlcmVuY2UNCg0KU3RlcCAyOiBTdGFydGluZyB3aXRoIHRoZSBsb3dlc3QgcHJlZmVyZW5j
ZSBlbnRyaWVzLCByZXNvbHZlIHByZWZpeCBjb25mbGljdHMNCg0KdXNpbmcgdGhlIGFib3ZlIHBy
ZWZlcmVuY2UgcnVsZS4gVGhlIG91dHB1dCBpcyBhbiBhY3RpdmUgcG9saWN5IHBlciB0b3BvbG9n
eS4NCg0KU3RlcCAzOiBUYWtlIHRoZSBvdXRwdXRzIGZyb20gU3RlcCAyIGFuZCBhZ2FpbiBzb3J0
IHRoZW0gYnkgcHJlZmVyZW5jZQ0KDQpTdGVwIDQ6IFN0YXJ0aW5nIHdpdGggdGhlIGxvd2VzdCBw
cmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgU0lEIGNvbmZsaWN0cw0KDQp1c2luZyB0aGUgYWJv
dmUgcHJlZmVyZW5jZSBydWxlDQoNCg0KDQpUaGUgb3V0cHV0IGZyb20gU3RlcCA0IGlzIHRoZW4g
dGhlIGN1cnJlbnQgQWN0aXZlIFBvbGljeS4NCg0KDQoNCkhlcmUgYXJlIGEgZmV3IGV4YW1wbGVz
LiBFYWNoIG1hcHBpbmcgZW50cnkgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIHR1cGxlOg0KDQooUHJl
ZmVyZW5jZSwgUHJlZml4L21hc2sgSW5kZXggcmFuZ2UgPCM+KQ0KDQoNCg0KRXhhbXBsZSAxOg0K
DQoNCg0KMS4gKDE1MCwgMS4xLjEuMS8zMjxodHRwOi8vMS4xLjEuMS8zMj4gMTAwIHJhbmdlIDEw
MCkNCg0KMi4gKDE0OSwgMS4xLjEuMTAvMzI8aHR0cDovLzEuMS4xLjEwLzMyPiAyMDAgcmFuZ2Ug
MjAwKQ0KDQozLiAoMTQ4LCAxLjEuMS4xMDEvMzI8aHR0cDovLzEuMS4xLjEwMS8zMj4gNTAwIHJh
bmdlIDEwKQ0KDQoNCg0KRW50cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBpdCBpcyBpZ25v
cmVkLg0KDQpFbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDEsIGl0IGlzIGlnbm9yZWQuDQoN
CkFjdGl2ZSBwb2xpY3k6DQoNCg0KDQooMTUwLCAxLjEuMS4xLzMyPGh0dHA6Ly8xLjEuMS4xLzMy
PiAxMDAgcmFuZ2UgMTAwKQ0KDQoNCg0KRXhhbXBsZSAyOg0KDQoNCg0KMS4gKDE1MCwgMS4xLjEu
MS8zMjxodHRwOi8vMS4xLjEuMS8zMj4gMTAwIHJhbmdlIDEwMCkNCg0KMi4gKDE1MCwgMS4xLjEu
MTAvMzI8aHR0cDovLzEuMS4xLjEwLzMyPiAyMDAgcmFuZ2UgMjAwKQ0KDQozLiAoMTUwLCAxLjEu
MS4xMDEvMzI8aHR0cDovLzEuMS4xLjEwMS8zMj4gNTAwIHJhbmdlIDEwKQ0KDQo0LiAoMTUwLCAy
LjIuMi4xLzMyPGh0dHA6Ly8yLjIuMi4xLzMyPiAxMDAwIHJhbmdlIDEpDQoNCg0KDQpFbnRyeSAx
IGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIsIGJvdGggYXJlIG1hcmtlZCBhcyBpZ25vcmUuDQoNCkVu
dHJ5IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGFzIGlnbm9yZS4NCg0K
RW50cnkgNCBoYXMgbm8gY29uZmxpY3RzIHdpdGggYW55IGVudHJpZXMNCg0KDQoNCkFjdGl2ZSBw
b2xpY3k6DQoNCigxNTAsIDIuMi4yLjEvMzI8aHR0cDovLzIuMi4yLjEvMzI+IDEwMDAgcmFuZ2Ug
MSkNCg0KDQoNCkV4YW1wbGUgMzoNCg0KDQoNCjEuICgxNTAsIDEuMS4xLjEvMzI8aHR0cDovLzEu
MS4xLjEvMzI+IDEwMCByYW5nZSA1MDApDQoNCjIuICgxNTAsIDEuMS4xLjEwLzMyPGh0dHA6Ly8x
LjEuMS4xMC8zMj4gMjAwIHJhbmdlIDIwMCkNCg0KMy4gKDE1MCwgMS4xLjEuMTAxLzMyPGh0dHA6
Ly8xLjEuMS4xMDEvMzI+IDUwMCByYW5nZSAxMCkNCg0KNC4gKDE1MCwgMi4yLjIuMS8zMjxodHRw
Oi8vMi4yLjIuMS8zMj4gMTAwMCByYW5nZSAxKQ0KDQoNCg0KRW50cnkgMSBjb25mbGljdHMgd2l0
aCBlbnRyaWVzIDIsIDMsIGFuZCAgNC4gQWxsIGVudHJpZXMgYXJlIG1hcmtlZCBpZ25vcmUuDQoN
Cg0KDQpBY3RpdmUgcG9saWN5Og0KDQpFbXB0eQ0KDQoNCg0KRXhhbXBsZSA0Og0KDQoNCg0KMS4g
KDE1MCwgMS4xLjEuMS8zMjxodHRwOi8vMS4xLjEuMS8zMj4gMTAwIHJhbmdlIDEwKQ0KDQoyLiAo
MTQ5LCAxLjEuMS4xMC8zMjxodHRwOi8vMS4xLjEuMTAvMzI+IDIwMCByYW5nZSAzMDApDQoNCjMu
ICgxNDksIDEuMS4xLjEwMS8zMjxodHRwOi8vMS4xLjEuMTAxLzMyPiA1MDAgcmFuZ2UgMTApDQoN
CjQuICgxNDgsIDIuMi4yLjEvMzI8aHR0cDovLzIuMi4yLjEvMzI+IDEwMDAgcmFuZ2UgMSkNCg0K
DQoNCkVudHJ5IDQgY29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGlnbm9yZS4N
Cg0KRW50cnkgMiBjb25mbGljdHMgd2l0aCBlbnRyeSAzLiBFbnRyaWVzIDIgYW5kIDMgYXJlIG1h
cmtlZCBpZ25vcmUuDQoNCg0KDQpBY3RpdmUgcG9saWN5Og0KDQooMTUwLCAxLjEuMS4xLzMyPGh0
dHA6Ly8xLjEuMS4xLzMyPiAxMDAgcmFuZ2UgMTApDQoNCg0KDQoNCg0KDQoNCg0KDQpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0Kc3ByaW5nIG1haWxpbmcg
bGlzdA0Kc3ByaW5nQGlldGYub3JnPG1haWx0bzpzcHJpbmdAaWV0Zi5vcmc+DQpodHRwczovL3d3
dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwcmluZw0KDQo=

--_000_7324f7ade4014659a1e19200f70520d1XCHALN001ciscocom_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJ
e2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDt9DQov
KiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1z
b05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNp
emU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7fQ0KYTps
aW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6
Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29I
eXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxl
Ow0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5Nc29BY2V0YXRlLCBsaS5Nc29BY2V0
YXRlLCBkaXYuTXNvQWNldGF0ZQ0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxl
LWxpbms6IkJhbGxvb24gVGV4dCBDaGFyIjsNCgltYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206
LjAwMDFwdDsNCglmb250LXNpemU6OC4wcHQ7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMt
c2VyaWYiO30NCnAuTXNvTGlzdFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1z
b0xpc3RQYXJhZ3JhcGgNCgl7bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbi10b3A6MGlu
Ow0KCW1hcmdpbi1yaWdodDowaW47DQoJbWFyZ2luLWJvdHRvbTowaW47DQoJbWFyZ2luLWxlZnQ6
LjVpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250
LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiO30NCnAubTIzODg1MTY0MTc5MDQ5MDc2
OTZtc29wbGFpbnRleHQsIGxpLm0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0LCBkaXYu
bTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQNCgl7bXNvLXN0eWxlLW5hbWU6bV8yMzg4
NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0K
CW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2lu
LWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBS
b21hbiIsInNlcmlmIjt9DQpzcGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5bGUtdHlwZTpwZXJz
b25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCWNvbG9y
OiMxRjQ5N0Q7fQ0Kc3Bhbi5CYWxsb29uVGV4dENoYXINCgl7bXNvLXN0eWxlLW5hbWU6IkJhbGxv
b24gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6
IkJhbGxvb24gVGV4dCI7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiO30NCi5N
c29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtZmFtaWx5
OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41
aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNl
Y3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNv
IDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAv
Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxh
eW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwv
bzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVO
LVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9u
MSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+Um9iZXJ0IC08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4m
bmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxl
ZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8
ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFk
ZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7Ij4gcnJhc3p1a0BnbWFpbC5jb20gW21haWx0bzpycmFzenVrQGdtYWlsLmNvbV0NCjxi
Pk9uIEJlaGFsZiBPZiA8L2I+Um9iZXJ0IFJhc3p1azxicj4NCjxiPlNlbnQ6PC9iPiBGcmlkYXks
IERlY2VtYmVyIDA5LCAyMDE2IDI6MDAgUE08YnI+DQo8Yj5Ubzo8L2I+IExlcyBHaW5zYmVyZyAo
Z2luc2JlcmcpPGJyPg0KPGI+Q2M6PC9iPiBWYW4gRGUgVmVsZGUsIEd1bnRlciAoTm9raWEgLSBC
RSk7IHNwcmluZ0BpZXRmLm9yZzxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW3NwcmluZ10gU0lE
IENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbDxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwv
bzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkRl
YXIgTGVzLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuNXB0
O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+Jmd0OyBUaGlzIGlzIHRoZSBwcm9ibGVtIGNvbmZsaWN0IHJlc29sdXRpb24g
aXMgdHJ5aW5nIHRvIGFkZHJlc3MuPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PG86cD4m
bmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjVwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRoZSBwcm9ibGVtIGRl
c2NyaXB0aW9uIGlzIHZlcnkgY2xlYXIuJm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
OyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjVwdDtjb2xvcjojMUY0OTdEIj5J
TU8gd2hhdCByb3V0ZXIgc2hvdWxkIGRvIGluIHRoaXMgY2FzZSBpcyAoZGVwZW5kaW5nIG9uIGl0
J3MgbG9jYXRpb24pJm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuNXB0O2NvbG9y
OiMxRjQ5N0QiPmEpIG5vdCB0byBpbnN0YWxsIEFOWSBsYWJlbCBhbmQgb25seSBpbnN0YWxsIElQ
IHJvdXRlcy4mbmJzcDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjVwdCI+PG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9y
OiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxiPjxpPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5bTGVz
Ol0gVGhhdCBpcyBwcmVjaXNlbHkgd2hhdCB0aGUgSWdub3JlIHBvbGljeSB3aWxsIGRvLjxvOnA+
PC9vOnA+PC9zcGFuPjwvaT48L2I+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6OS41cHQ7Y29sb3I6IzFGNDk3RCI+YikgaW5zdGFsbCAxMDAgYW5kIHBvaW50IGl0
IHRvIElQIHN3aXRjaGluZyBwYXRocyB0byBib3RoDQo8YSBocmVmPSJodHRwOi8vMS4xLjEuMS8z
MiI+MS4xLjEuMS8zMjwvYT4gJmFtcDsgPGEgaHJlZj0iaHR0cDovLzIuMi4yLjIvMzIiPjIuMi4y
LjIvMzI8L2E+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS41cHQ7Y29sb3I6
IzFGNDk3RCI+SWYvd2hlbiBNUExTL1NSIGZvcndhcmRpbmcgd2lsbCBmYWlsIGFuZCB0aGUgYmVz
dCB3ZSBjYW4gZG8gaXMgbm90IG9ubHkgdG8gcHJvcGVybHkgKHN5cylsb2cgaXQsIGJ1dCBkZWZp
bmUgYQ0KPGI+bmV3IElDTVAgZXJyb3IgdHlwZTwvYj4gd2hpY2ggd291bGQgYXR0ZW1wdCB0byBp
bmZvcm0gdGhlIHNlbmRlciB0aGF0IFNSIHBhdGggYnJva2UgYXQgdGhhdCBwb2ludCBpbiB0aGUg
bmV0d29yayBkdWUgdG8gY29uZmxpY3RpbmcgU0lEIGVudHJpZXMgYmVpbmcgZGV0ZWN0ZWQgYW5k
IHN1cHByZXNzZWQmbmJzcDtmcm9tIGVudGVyaW5nIExGSUIuJm5ic3A7PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjkuNXB0O2NvbG9yOiMxRjQ5N0QiPkluIGdlbmVyYWwgPGI+U0lEIENvbmZs
aWN0IERldGVjdGlvbjwvYj4gYW5kIHByb3BlciBzaWduYWxsaW5nIHNob3VsZCBiZSBvdXIgZm9j
dXMgaGVyZSByYXRoZXIgdGhlbiBndWVzc2luZyB3aGF0IHNob3VsZCBiZSB0aGUgcmlnaHQgYXV0
b21hdGVkL2FsZ29yaXRobWljJm5ic3A7d2F5IHRvIGhpZGUgYW5kIHRyeSB0byBtaXRpZ2F0ZSB0
aGUNCiByZWFsIHByb2JsZW0uJm5ic3A7PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6OS41
cHQiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxpPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5bTGVzOl0gRXhjZWxsZW50
IOKAkyB3ZSBhcmUgaW4gYWdyZWVtZW50ICE8bzpwPjwvbzpwPjwvc3Bhbj48L2k+PC9iPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxpPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj
b2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2k+PC9iPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxiPjxpPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj
MUY0OTdEIj4mbmJzcDsmbmJzcDsmbmJzcDsgTGVzPG86cD48L286cD48L3NwYW4+PC9pPjwvYj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjkuNXB0O2NvbG9y
OiMxRjQ5N0QiPlNpbXBsZSBhbmFsb2d5IHdvdWxkIGJlIG9mIHVzaW5nIHN0YXRpYyByb3V0ZXMg
d2l0aCBzdGF0aWMgTVBMUyBsYWJlbHMuIEkgY2FuIGFzc3VyZSB5b3UgdGhhdCB0aGVyZSBhcmUg
bGVnaXRpbWF0ZSB2YWxpZCB1c2UgY2FzZXMgd2hlcmUgbG9vcCBnZXQncyBlbmZvcmNlZCBieSBj
b25maWd1cmF0aW9uLiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjVwdDtjb2xv
cjojMUY0OTdEIj5BcyBhIG1hdHRlciBvZiBmYWN0IHRob3NlIGFyZSBkb25lIGluIHByb2R1Y3Rp
b24gZm9yIGxpbmsgcXVhbGl0eSB0ZXN0cy4gQWxzbyBJIGNhbiBoYXZlIHNhbWUgbGFiZWwgYm91
bmQgdG8gTiBudW1iZXIgb2YgcHJlZml4ZXMgYXQgdWx0aW1hdGUgbm9kZSAod2l0aCBQSFAgZGlz
YWJsZWQpIHN1Y2ggdGhhdCBwYWNrZXRzIHJlY2VpdmVkDQogd2l0aCBsYWJlbCAxMDAgd2lsbCBn
ZXQgRUNNUCB0byBhbGwgb2YgdGhvc2UgTiBkZXN0aW5hdGlvbnMuIExldCdzIG9ic2VydmUgdGhh
dCBTUiBkb2VzIG5vdCByZXF1aXJlIHRvIGJlIGRlcGxveWVkIGRvbWFpbiBvciBBUyB3aWRlIGlu
IG51bWJlciBvZiBuZXR3b3JrIHRvcG9sb2dpZXMuJm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48
L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjkuNXB0O2NvbG9yOiMxRjQ5N0QiPktpbmQgcmVnYXJkcyw8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjkuNXB0O2NvbG9yOiMxRjQ5N0QiPlIuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7
PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9uIEZyaSwgRGVjIDksIDIw
MTYgYXQgMTA6NDMgUE0sIExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpICZsdDs8YSBocmVmPSJtYWls
dG86Z2luc2JlcmdAY2lzY28uY29tIiB0YXJnZXQ9Il9ibGFuayI+Z2luc2JlcmdAY2lzY28uY29t
PC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkd1bnRlciDigJM8L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xv
cjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5JdCBpcyBhIG1pc3VuZGVyc3RhbmRp
bmcgdG8gdGhpbmsgdGhhdCBjb25mbGljdCByZXNvbHV0aW9uIG9mIEFOWSBGTEFWT1IgYWZmZWN0
cyB0aGUgYmVzdCBwYXRoIHNlbGVjdGlvbi9pbnN0YWxsYXRpb24uIFRoaXMgaXMgc2ltcGx5IG5v
dCB0aGUgY2FzZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5XZSBh
cmUgdGFsa2luZyBhYm91dCBhbiBNUExTIGZvcndhcmRpbmcgcGxhbmUgd2hpY2ggdXNlcyBsYWJl
bHMgd2hpY2ggYXJlIGdsb2JhbGx5IHNjb3BlZC4gKFRoZSBmYWN0IHRoYXQgdGhlIGxhYmVsIGlz
IHJlcHJlc2VudGVkIGFzIGFuIGluZGV4IGludG8gYQ0KIHJvdXRlciBzcGVjaWZpYyBTUkdCIGlz
IG5vdCByZWxldmFudCkuIDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPklmIHdlIGhhdmUgYSBjb25mbGljdCB0
aGVuIGEgZ2l2ZW4gbGFiZWwgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBwcmVmaXhl
cyDigJMgaGVyZSBpcyBvbmUgZXhhbXBsZTo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xv
cjojMUY0OTdEIj48YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPjEu
MS4xLjEvMzI8L2E+IGluZGV4IDEwMDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPjxhIGhyZWY9Imh0dHA6Ly8y
LjIuMi4yLzMyIiB0YXJnZXQ9Il9ibGFuayI+Mi4yLjIuMi8zMjwvYT4gaW5kZXggMTAwPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iY29s
b3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+SWYgSSBjaG9vc2UgdG8gdXNlIGlu
ZGV4IDEwMCBmb3INCjxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+
MS4xLjEuMS8zMjwvYT4g4oCTIGJ1dCBteSBuZWlnaGJvciBjaG9vc2VzIHRvIHVzZSBpbmRleCAx
MDAgZm9yDQo8YSBocmVmPSJodHRwOi8vMi4yLjIuMi8zMiIgdGFyZ2V0PSJfYmxhbmsiPjIuMi4y
LjIvMzI8L2E+IOKAkyB0aGVuIHdoZW4gSSBlbmNhcHN1bGF0ZSBhIHBhY2tldCBhZGRyZXNzZWQg
dG8gMS4xLjEuMSBhbmQgZm9yd2FyZCBpdCB0byBteSBuZWlnaGJvciBpdCB3aWxsIGdldCBzZW50
IGluIHRoZSBkaXJlY3Rpb24gb2YgMi4yLjIuMi4NCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlRoaXMgaXMg
dGhlIHByb2JsZW0gY29uZmxpY3QgcmVzb2x1dGlvbiBpcyB0cnlpbmcgdG8gYWRkcmVzcy48L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJj
b2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5BcyByZWdhcmRzIOKAnGlnbm9y
ZSBvdmVybGFwIG9ubHnigJ0gY29tcGxleGl0eSwgSSByZXBlYXQgbXkgZWFybGllciByZXBseSB0
byBCcnVubzo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj7igJw8Yj48
aT5JZiB5b3Ugd2FudCB0byBhcmd1ZSB0aGF0IHRoZXNlIGFyZSBzb2x2YWJsZSBwcm9ibGVtcyBJ
IHdvbuKAmXQgZGlzYWdyZWUgd2l0aCB5b3Ug4oCTIGl0IGlzIGEgcXVlc3Rpb24gb2Ygd2hlcmUg
d2Ugd2FudCB0byBwdXQgb3VyIHRpbWUgYW5kIGVmZm9ydC4NCiBBIG51bWJlciBvZiBmb2xrcyBh
cmUgY29tbWVudGluZyB0aGF0IHRoZXkgcHJlZmVyIHRvIGZvY3VzIG9uIGZpeGluZyB0aGUgY29u
ZmlndXJhdGlvbiBhbmQgbm90IGludmVzdCAmbmJzcDt0aW1lIGluIHZhbGlkYXRpbmcgdGhhdCBj
b25mbGljdCByZXNvbHV0aW9uIGlzIGltcGxlbWVudGVkIGluIGFuIGludGVyb3BlcmFibGUgd2F5
LiBBcyB3ZSAodGhlIGF1dGhvcnMpIGhhdmUgc3RhdGVkIGZyb20gdGhlIGJlZ2lubmluZywgd2Ug
YmVsaWV2ZSB0aGUgZW1waGFzaXMNCiBzaG91bGQgYmUgb24gZGV0ZWN0aW5nIGFuZCByZXBvcnRp
bmcgdGhlIGNvbmZsaWN0cyDigJMgbm90IHNwZW5kaW5nIGN5Y2xlcyBpbXBsZW1lbnRpbmcgdGhl
IG1vc3Qgcm9idXN0IG1lYW5zIG9mIHRyeWluZyB0byBvcGVyYXRlIG9wdGltYWxseSB3aGlsZSB0
aGUgbWlzY29uZmlndXJhdGlvbiBleGlzdHMu4oCdPC9pPjwvYj48L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0
OTdEIj4mbmJzcDs8L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyBM
ZXM8L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1s
ZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0K
PGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3Bh
ZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7Ij4gVmFuIERlIFZlbGRlLCBHdW50ZXIgKE5va2lhDQogLSBCRSkgW21haWx0bzo8
YSBocmVmPSJtYWlsdG86Z3VudGVyLnZhbl9kZV92ZWxkZUBub2tpYS5jb20iIHRhcmdldD0iX2Js
YW5rIj5ndW50ZXIudmFuX2RlX3ZlbGRlQG5va2lhLmNvbTwvYT5dDQo8YnI+DQo8Yj5TZW50Ojwv
Yj4gRnJpZGF5LCBEZWNlbWJlciAwOSwgMjAxNiAxMjoxMSBQTTxicj4NCjxiPlRvOjwvYj4gTGVz
IEdpbnNiZXJnIChnaW5zYmVyZyk7IDxhIGhyZWY9Im1haWx0bzpzcHJpbmdAaWV0Zi5vcmciIHRh
cmdldD0iX2JsYW5rIj4NCnNwcmluZ0BpZXRmLm9yZzwvYT48YnI+DQo8Yj5TdWJqZWN0OjwvYj4g
UmU6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWw8
L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiIgc3R5bGU9ImNvbG9yOmJsYWNrIj5UaGUgbWV0aG9k
IHRvIOKAnG1heGltaXplIGZvcndhcmRpbmfigJ0gYXMgbWVudGlvbmVkIGluIHRoZSBkcmFmdCBz
ZWVtcyB0byBiZSBpbiBjb25zaXN0ZW50IGxvZ2ljIHdpdGggaG93IHRoZSBjdXJyZW50DQo8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVO
LUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPnVuaWNhc3Qgcm91dGluZyB0YWJsZSBpcyBidWlsZC4g
Rm9yIHVuaWNhc3Qgcm91dGVzIHRoZSByb3V0ZSBzZWxlY3RlZCBmb3IgYSBnaXZlbiBJUCBkZXN0
aW5hdGlvbiBhZGRyZXNzIGlzIGEgZnVuY3Rpb24ocHJlZml4LWxlbmd0aC9hZG1pbi1kaXN0YW5j
ZSkuDQo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFu
IGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPlRoaXMgaXMgZG9uZSBmb3IgYmV0dGVy
IGFkZHJlc3Mgc3BhY2UgbWFuYWdlbWVudCwgYW5kIHRvIGhhdmUgcHJlZGljdGFibGUgcm91dGlu
ZyBpbmNhc2Ugb2YgY2xhc2hlcyBpbiB0aGUgcm91dGluZyB0YWJsZS4gSGVuY2UsIHRvIG1lLCBp
dA0KIHNlZW1zIG9ubHkgbmF0dXJhbCB0byA8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPnRv
IGtlZXAgcHJvbW90aW5nICZxdW90O2lnbm9yZSBvdmVybGFwIG9ubHkmcXVvdDsgYXMgcmVzdWx0
IGFzIGl0IG1pbWljcyB0cmFkaXRpb25hbCB1bmljYXN0IHJvdXRpbmcgdGFibGUgY29uc3RydWN0
cy4NCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
bGFuZz0iRU4tR0IiIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiIgc3R5bGU9ImNv
bG9yOmJsYWNrIj5UaGUgYWx0ZXJuYXRpdmUgc291bmRzIGEgYml0IGxpa2Ugc3RlcHBpbmcgYmFj
ayB0byBDbGFzcyBBL0IvQyBhZGRyZXNzZXMgYnkganVzdCBhdm9pZGluZyB0aGUgcHJvYmxlbSBh
bmQgc2lnbmlmaWNhbnRseSBpbXBhY3QgcG90ZW50aWFsIGNsYXNoDQogc2NlbmFyaW9zIGFzIGNv
bnNlcXVlbmNlIGR1ZSB0byBvdmVyc2ltcGxpZmljYXRpb24uPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiIgc3R5bGU9ImNvbG9y
OmJsYWNrIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPkZpbmFsbHksIEkgZG8g
bm90IHVuZGVyc3RhbmQgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhlIHN1ZGRlbiB3b3JyeSByZWdh
cmRpbmcgJnF1b3Q7aWdub3JlIG92ZXJsYXAgb25seSZxdW90OyBwb2xpY3kgdG8gYmUgb2JzY2Vu
ZWx5IGNvbXBsZXguIElmIEkgdW5kZXJzdGFuZA0KIElFVEYgcHJvY2VkdXJlcyB3ZWxsLCBhbmQg
aWYgPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBs
YW5nPSJFTi1HQiIgc3R5bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDvigJxpZ25vcmUgb3ZlcmxhcCBv
bmx54oCdIGlzIGRvY3VtZW50ZWQgcHJvcGVybHksIGp1c3QgbGlrZSBhbnkgc3RhbmRhcmQgdHJh
Y2sgUkZDIHNob3VsZCBiZSwgdGhlbiBob3cgYXJlIGluY29tcGF0aWJsZSBiZWhhdmlvdXJzIHBv
c3NpYmxlPw0KIFNob3VsZCB3ZSBub3QgdHJ5IHRvIGFyY2hpdGVjdCBmb3IgPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5nPSJFTi1HQiIgc3R5
bGU9ImNvbG9yOmJsYWNrIj50aGUgQkVTVCByZWFsaXN0aWMgZnV0dXJlIHByb29mIHNvbHV0aW9u
LCBhbmQgbm90IGZvciB0aGUgZWFzaWVzdCBsZXNzIG9wdGltYWwgc29sdXRpb24uIChLZWVwIGlu
IG1pbmQgdGhhdCBhdCBzb21lIHBvaW50IGluIHRpbWUgcGVvcGxlIGJlbGlldmVkDQogdGhhdCBk
b2luZyByb3V0aW5nIGluIHRoZSA8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPnN0eWxlIG9m
IENsYXNzIEEvQi9DIHdhcyB0aGUgZnV0dXJlIGFsc28sIGFuZCBzZWUgd2hlcmUgd2UgYXJlIHJp
Z2h0IG5vdykuDQo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNwOzwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiIHN0
eWxlPSJjb2xvcjpibGFjayI+Ry8NCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A7
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBsYW5n
PSJFTi1HQiIgc3R5bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIGxhbmc9IkVOLUdCIiBzdHlsZT0iZm9udC1z
aXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6
bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4w
cHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0Ux
RTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PGI+PHNwYW4gbGFuZz0iRU4tR0IiPkZyb206PC9zcGFuPjwvYj48c3BhbiBsYW5nPSJF
Ti1HQiI+IHNwcmluZyBbPGEgaHJlZj0ibWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYub3JnIiB0
YXJnZXQ9Il9ibGFuayI+bWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYub3JnPC9hPl0NCjxiPk9u
IEJlaGFsZiBPZiA8L2I+TGVzIEdpbnNiZXJnIChnaW5zYmVyZyk8YnI+DQo8Yj5TZW50OjwvYj4g
U3VuZGF5LCBEZWNlbWJlciAwNCwgMjAxNiA3OjA0IFBNPGJyPg0KPGI+VG86PC9iPiA8YSBocmVm
PSJtYWlsdG86c3ByaW5nQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+c3ByaW5nQGlldGYub3Jn
PC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPiBbc3ByaW5nXSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlv
bjogQSBTaW1wbGVyIFByb3Bvc2FsPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWlu
dGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPldoZW4gdGhlIHByb2JsZW0gYWRkcmVzc2VkIGJ5IGRy
YWZ0LWlldGYtc3ByaW5nLWNvbmZsaWN0LXJlc29sdXRpb24gd2FzIGZpcnN0DQo8L3NwYW4+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQi
PjxzcGFuIGxhbmc9IkVOLUdCIj5wcmVzZW50ZWQgYXQgSUVURiA5NCwgdGhlIGF1dGhvcnMgZGVm
aW5lZCB0aGUgZm9sbG93aW5nIHByaW9yaXRpZXM6PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1H
QiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0
OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+MSlEZXRlY3QgdGhlIHByb2Js
ZW08L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZt
c29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4yKVJlcG9ydCB0aGUgcHJvYmxlbTwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWlu
dGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPlRoaXMgYWxlcnRzIHRoZSBuZXR3b3JrIG9wZXJhdG9y
IHRvIHRoZSBleGlzdGVuY2Ugb2YgYSBjb25mbGljdCBzbyB0aGF0PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBs
YW5nPSJFTi1HQiI+dGhlIGNvbmZpZ3VyYXRpb24gZXJyb3IgY2FuIGJlIGNvcnJlY3RlZC48L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFp
bnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4zKURlZmluZSBjb25zaXN0ZW50IGJlaGF2aW9yPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxh
aW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+VGhpcyBhdm9pZHMgbWlzLWZvcndhcmRpbmcgd2hp
bGUgdGhlIGNvbmZsaWN0IGV4aXN0cy48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
bTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj40KURv
buKAmXQgb3ZlcmVuZ2luZWVyIHRoZSBzb2x1dGlvbjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4t
R0IiPkdpdmVuIHRoYXQgaXQgaXMgaW1wb3NzaWJsZSB0byBrbm93IHdoaWNoIG9mIHRoZSBjb25m
bGljdGluZyBlbnRyaWVzPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2
NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+aXMgdGhlIGNvcnJl
Y3Qgb25lLCB3ZSBzaG91bGQgYXBwbHkgYSBzaW1wbGUgYWxnb3JpdGhtIHRvIHJlc29sdmUgdGhl
IGNvbmZsaWN0Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkw
NDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPjUpQWdyZWUgb24gdGhlIHJl
c29sdXRpb24gYmVoYXZpb3I8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1
MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFp
bnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5UaGUgcmVzb2x1dGlvbiBiZWhhdmlvciB3YXMgZGVs
aWJlcmF0ZWx5IHRoZSBsYXN0IHBvaW50IGJlY2F1c2UgaXQgd2FzDQo8L3NwYW4+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFu
IGxhbmc9IkVOLUdCIj5jb25zaWRlcmVkIHRoZSBsZWFzdCBpbXBvcnRhbnQuPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48
c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+SW5w
dXQgd2FzIHJlY2VpdmVkIG92ZXIgdGhlIHBhc3QgeWVhciB3aGljaCBlbXBoYXNpemVkIHRoZSBp
bXBvcnRhbmNlIG9mPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3
OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+dHJ5aW5nIHRvICZxdW90
O21heGltaXplIGZvcndhcmRpbmcmcXVvdDsgaW4gdGhlIHByZXNlbmNlIG9mIGNvbmZsaWN0cy4g
U3Vic2VxdWVudDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkw
NDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPnJldmlzaW9ucyBvZiB0aGUg
ZHJhZnQgaGF2ZSB0cmllZCB0byBhZGRyZXNzIHRoaXMgY29uY2Vybi4gSG93ZXZlciB0aGUgYXV0
aG9ycw0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3
Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+aGF2ZSByZXBlYXRlZGx5IHN0cmVz
c2VkIHRoYXQgdGhlIHNvbHV0aW9uIGJlaW5nIHByb3Bvc2VkDQo8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxh
bmc9IkVOLUdCIj4oJnF1b3Q7aWdub3JlIG92ZXJsYXAgb25seSZxdW90Oykgd2FzIG1vcmUgY29t
cGxleCB0aGFuIG90aGVyIG9mZmVyZWQgYWx0ZXJuYXRpdmVzIGFuZA0KPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3Bh
biBsYW5nPSJFTi1HQiI+d291bGQgYmUgbW9yZSBkaWZmaWN1bHQgdG8gZ3VhcmFudGVlIGludGVy
b3BlcmFiaWxpdHkgYmVjYXVzZSBzdWJ0bGUNCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0Ii
PmRpZmZlcmVuY2VzIGluIGFuIGltcGxlbWVudGF0aW9uIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50
IHJlc3VsdHMuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0
OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48
c3BhbiBsYW5nPSJFTi1HQiI+QXQgSUVURjk3IHNpZ25pZmljYW50IGZlZWRiYWNrIHdhcyByZWNl
aXZlZCBwcmVmZXJyaW5nIGEgc2ltcGxlciBzb2x1dGlvbiB0bw0KPC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBs
YW5nPSJFTi1HQiI+dGhlIHByb2JsZW0uIFRoZSBhdXRob3JzIGFyZSB2ZXJ5IHN5bXBhdGhldGlj
IHRvIHRoaXMgZmVlZGJhY2sgYW5kIHRoZXJlZm9yZQ0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJF
Ti1HQiI+YXJlIHByb3Bvc2luZyBhIHNvbHV0aW9uIGJhc2VkIG9uIHdoYXQgdGhlIGRyYWZ0IGRl
ZmluZXMgYXMgdGhlICZxdW90O0lnbm9yZSZxdW90Ow0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJF
Ti1HQiI+cG9saWN5IC0gd2hlcmUgYWxsIGVudHJpZXMgd2hpY2ggYXJlIGluIGNvbmZsaWN0IGFy
ZSBpZ25vcmVkLiBXZSBiZWxpZXZlIHRoaXMNCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0Ii
PmlzIGZhciBtb3JlIGRlc2lyYWJsZSBhbmQgYWxpZ25zIHdpdGggdGhlIHByaW9yaXRpZXMgbGlz
dGVkIGFib3ZlLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkw
NDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+
PHNwYW4gbGFuZz0iRU4tR0IiPldlIG91dGxpbmUgdGhlIHByb3Bvc2VkIHNvbHV0aW9uIGJlbG93
IGFuZCB3b3VsZCBsaWtlIHRvIHJlY2VpdmUgZmVlZGJhY2sgZnJvbQ0KPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3Bh
biBsYW5nPSJFTi1HQiI+dGhlIFdHIGJlZm9yZSBwdWJsaXNoaW5nIHRoZSBuZXh0IHJldmlzaW9u
IG9mIHRoZSBkcmFmdC48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0
MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRl
eHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDsmbmJzcDsgTGVzIChvbiBiZWhhbGYgb2YgdGhl
IGF1dGhvcnMpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0
OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48
aT48c3BhbiBsYW5nPSJFTi1HQiI+TmV3IFByb3Bvc2FsPC9zcGFuPjwvaT48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PGk+PHNwYW4g
bGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
bTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj5J
biB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mIHRoZSBkcmFmdCAmcXVvdDtTUk1TIFByZWZlcmVuY2Um
cXVvdDsgd2FzIGludHJvZHVjZWQuIFRoaXMNCjwvc3Bhbj48L2k+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxpPjxzcGFuIGxhbmc9
IkVOLUdCIj5wcm92aWRlcyBhIHdheSBmb3IgYSBudW1lcmljYWwgcHJlZmVyZW5jZSB0byBiZSBl
eHBsaWNpdGx5IGFzc29jaWF0ZWQgd2l0aCBhbg0KPC9zcGFuPjwvaT48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PGk+PHNwYW4gbGFu
Zz0iRU4tR0IiPlNSTVMgYWR2ZXJ0aXNlbWVudC4gVXNpbmcgdGhpcyBhbiBvcGVyYXRvciBjYW4g
aW5kaWNhdGUgd2hpY2ggYWR2ZXJ0aXNlbWVudCBpcw0KPC9zcGFuPjwvaT48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PGk+PHNwYW4g
bGFuZz0iRU4tR0IiPnRvIGJlIHByZWZlcnJlZCB3aGVuIGEgY29uZmxpY3QgaXMgcHJlc2VudC4g
VGhlIGF1dGhvcnMgdGhpbmsgdGhpcyBpcyBhIHVzZWZ1bA0KPC9zcGFuPjwvaT48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PGk+PHNw
YW4gbGFuZz0iRU4tR0IiPmFkZGl0aW9uIGFuZCB3ZSB0aGVyZWZvcmUgd2FudCB0byBpbmNsdWRl
IHRoaXMgaW4gdGhlIG5ldyBzb2x1dGlvbi48L3NwYW4+PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48aT48c3BhbiBsYW5nPSJF
Ti1HQiI+Jm5ic3A7PC9zcGFuPjwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUx
NjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPlRoZSBuZXcg
cHJlZmVyZW5jZSBydWxlIHVzZWQgdG8gcmVzb2x2ZSBjb25mbGljdHMgaXMgZGVmaW5lZCBhcyBm
b2xsb3dzOjwvc3Bhbj48L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5
MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+
PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxh
aW50ZXh0Ij48Yj48aT48c3BhbiBsYW5nPSJFTi1HQiI+QSBnaXZlbiBtYXBwaW5nIGVudHJ5IGlz
IGNvbXBhcmVkIGFnYWluc3QgYWxsIG1hcHBpbmcgZW50cmllcyBpbiB0aGUgZGF0YWJhc2UNCjwv
c3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3
Njk2bXNvcGxhaW50ZXh0Ij48Yj48aT48c3BhbiBsYW5nPSJFTi1HQiI+d2l0aCBhIHByZWZlcmVu
Y2UgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGl0cyBvd24uIElmIHRoZXJlIGlzIGEgY29uZmxp
Y3QsDQo8L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQx
NzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PGI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPnRoZSBtYXBw
aW5nIGVudHJ5IHdpdGggbG93ZXIgcHJlZmVyZW5jZSBpcyBpZ25vcmVkLiBJZiB0d28gbWFwcGlu
ZyBlbnRyaWVzIGFyZTwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0y
Mzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48Yj48aT48c3BhbiBsYW5nPSJFTi1HQiI+
aW4gY29uZmxpY3QgYW5kIGhhdmUgZXF1YWwgcHJlZmVyZW5jZSB0aGVuIGJvdGggZW50cmllcyBh
cmUgaWdub3JlZC48L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4
ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNw
Ozwvc3Bhbj48L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2
OTZtc29wbGFpbnRleHQiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj5JbXBsZW1lbnRhdGlvbiBvZiB0
aGlzIHBvbGljeSBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6PC9zcGFuPjwvaT48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PGk+PHNwYW4g
bGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
bTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxiPjxpPjxzcGFuIGxhbmc9IkVOLUdC
Ij5TdGVwIDE6IFdpdGhpbiBhIHNpbmdsZSBhZGRyZXNzLWZhbWlseS9hbGdvcml0aG0vdG9wb2xv
Z3kgc29ydCBlbnRyaWVzDQo8L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PGI+PGk+PHNwYW4gbGFuZz0iRU4t
R0IiPmJhc2VkIG9uIHByZWZlcmVuY2UNCjwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48Yj48aT48c3BhbiBs
YW5nPSJFTi1HQiI+U3RlcCAyOiBTdGFydGluZyB3aXRoIHRoZSBsb3dlc3QgcHJlZmVyZW5jZSBl
bnRyaWVzLCByZXNvbHZlIHByZWZpeCBjb25mbGljdHMNCjwvc3Bhbj48L2k+PC9iPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48Yj48
aT48c3BhbiBsYW5nPSJFTi1HQiI+dXNpbmcgdGhlIGFib3ZlIHByZWZlcmVuY2UgcnVsZS4gVGhl
IG91dHB1dCBpcyBhbiBhY3RpdmUgcG9saWN5IHBlciB0b3BvbG9neS48L3NwYW4+PC9pPjwvYj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4
dCI+PGI+PGk+PHNwYW4gbGFuZz0iRU4tR0IiPlN0ZXAgMzogVGFrZSB0aGUgb3V0cHV0cyBmcm9t
IFN0ZXAgMiBhbmQgYWdhaW4gc29ydCB0aGVtIGJ5IHByZWZlcmVuY2UNCjwvc3Bhbj48L2k+PC9i
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50
ZXh0Ij48Yj48aT48c3BhbiBsYW5nPSJFTi1HQiI+U3RlcCA0OiBTdGFydGluZyB3aXRoIHRoZSBs
b3dlc3QgcHJlZmVyZW5jZSBlbnRyaWVzLCByZXNvbHZlIFNJRCBjb25mbGljdHMNCjwvc3Bhbj48
L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNv
cGxhaW50ZXh0Ij48Yj48aT48c3BhbiBsYW5nPSJFTi1HQiI+dXNpbmcgdGhlIGFib3ZlIHByZWZl
cmVuY2UgcnVsZTwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4
NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48Yj48aT48c3BhbiBsYW5nPSJFTi1HQiI+Jm5i
c3A7PC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5
MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxiPjxpPjxzcGFuIGxhbmc9IkVOLUdCIj5UaGUgb3V0cHV0
IGZyb20gU3RlcCA0IGlzIHRoZW4gdGhlIGN1cnJlbnQgQWN0aXZlIFBvbGljeS48L3NwYW4+PC9p
PjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3Bs
YWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0i
RU4tR0IiPkhlcmUgYXJlIGEgZmV3IGV4YW1wbGVzLiBFYWNoIG1hcHBpbmcgZW50cnkgaXMgcmVw
cmVzZW50ZWQgYnkgdGhlIHR1cGxlOjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJt
MjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPihQcmVm
ZXJlbmNlLCBQcmVmaXgvbWFzayBJbmRleCByYW5nZSAmbHQ7IyZndDspPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3Bh
biBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0y
Mzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+RXhhbXBs
ZSAxOjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5
Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4g
bGFuZz0iRU4tR0IiPjEuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9
Il9ibGFuayI+DQoxLjEuMS4xLzMyPC9hPiAxMDAgcmFuZ2UgMTAwKTwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4g
bGFuZz0iRU4tR0IiPjIuICgxNDksIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMC8zMiIgdGFyZ2V0
PSJfYmxhbmsiPg0KMS4xLjEuMTAvMzI8L2E+IDIwMCByYW5nZSAyMDApPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3Bh
biBsYW5nPSJFTi1HQiI+My4gKDE0OCwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEwMS8zMiIgdGFy
Z2V0PSJfYmxhbmsiPg0KMS4xLjEuMTAxLzMyPC9hPiA1MDAgcmFuZ2UgMTApPC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48
c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+RW50
cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBpdCBpcyBpZ25vcmVkLjwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNw
YW4gbGFuZz0iRU4tR0IiPkVudHJ5IDIgY29uZmxpY3RzIHdpdGggZW50cnkgMSwgaXQgaXMgaWdu
b3JlZC48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2
OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5BY3RpdmUgcG9saWN5Ojwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4
dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0Ii
PigxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEu
MS4xLzMyPC9hPiAxMDAgcmFuZ2UgMTAwKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZu
YnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5
Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPkV4YW1wbGUgMjo8L3NwYW4+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxz
cGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
bTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4xLiAo
MTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEu
MS8zMjwvYT4gMTAwIHJhbmdlIDEwMCk8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
bTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4yLiAo
MTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMTAvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4x
LjEwLzMyPC9hPiAyMDAgcmFuZ2UgMjAwKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPjMu
ICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMDEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEu
MS4xLjEwMS8zMjwvYT4gNTAwIHJhbmdlIDEwKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0Ii
PjQuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8yLjIuMi4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoy
LjIuMi4xLzMyPC9hPiAxMDAwIHJhbmdlIDEpPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+
Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3
Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+RW50cnkgMSBjb25mbGljdHMgd2l0
aCBlbnRyeSAyLCBib3RoIGFyZSBtYXJrZWQgYXMgaWdub3JlLjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFu
Zz0iRU4tR0IiPkVudHJ5IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGFz
IGlnbm9yZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5
MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5FbnRyeSA0IGhhcyBubyBjb25m
bGljdHMgd2l0aCBhbnkgZW50cmllczwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJt
MjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1z
b3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPkFjdGl2ZSBwb2xpY3k6PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48
c3BhbiBsYW5nPSJFTi1HQiI+KDE1MCwgPGEgaHJlZj0iaHR0cDovLzIuMi4yLjEvMzIiIHRhcmdl
dD0iX2JsYW5rIj4NCjIuMi4yLjEvMzI8L2E+IDEwMDAgcmFuZ2UgMSk8L3NwYW4+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFu
IGxhbmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIz
ODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5FeGFtcGxl
IDM6PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2
bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBs
YW5nPSJFTi1HQiI+MS4gKDE1MCwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEvMzIiIHRhcmdldD0i
X2JsYW5rIj4NCjEuMS4xLjEvMzI8L2E+IDEwMCByYW5nZSA1MDApPC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBs
YW5nPSJFTi1HQiI+Mi4gKDE1MCwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEwLzMyIiB0YXJnZXQ9
Il9ibGFuayI+DQoxLjEuMS4xMC8zMjwvYT4gMjAwIHJhbmdlIDIwMCk8L3NwYW4+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFu
IGxhbmc9IkVOLUdCIj4zLiAoMTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMTAxLzMyIiB0YXJn
ZXQ9Il9ibGFuayI+DQoxLjEuMS4xMDEvMzI8L2E+IDUwMCByYW5nZSAxMCk8L3NwYW4+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxz
cGFuIGxhbmc9IkVOLUdCIj40LiAoMTUwLCA8YSBocmVmPSJodHRwOi8vMi4yLjIuMS8zMiIgdGFy
Z2V0PSJfYmxhbmsiPg0KMi4yLjIuMS8zMjwvYT4gMTAwMCByYW5nZSAxKTwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNw
YW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJt
MjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPkVudHJ5
IDEgY29uZmxpY3RzIHdpdGggZW50cmllcyAyLCAzLCBhbmQmbmJzcDsgNC4gQWxsIGVudHJpZXMg
YXJlIG1hcmtlZCBpZ25vcmUuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4
NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxh
aW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+QWN0aXZlIHBvbGljeTo8L3NwYW4+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFu
IGxhbmc9IkVOLUdCIj5FbXB0eTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4
ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3Bs
YWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPkV4YW1wbGUgNDo8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxh
bmc9IkVOLUdCIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1
MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4xLiAoMTUwLCA8
YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMS8zMjwv
YT4gMTAwIHJhbmdlIDEwKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUx
NjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPjIuICgxNDksIDxh
IGhyZWY9Imh0dHA6Ly8xLjEuMS4xMC8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMTAvMzI8
L2E+IDIwMCByYW5nZSAzMDApPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4
NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+My4gKDE0OSwg
PGEgaHJlZj0iaHR0cDovLzEuMS4xLjEwMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMTAx
LzMyPC9hPiA1MDAgcmFuZ2UgMTApPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0y
Mzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+NC4gKDE0
OCwgPGEgaHJlZj0iaHR0cDovLzIuMi4yLjEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjIuMi4yLjEv
MzI8L2E+IDEwMDAgcmFuZ2UgMSk8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIz
ODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj4mbmJzcDs8
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29w
bGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdCIj5FbnRyeSA0IGNvbmZsaWN0cyB3aXRoIGVudHJ5
IDIuIEl0IGlzIG1hcmtlZCBpZ25vcmUuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+RW50
cnkgMiBjb25mbGljdHMgd2l0aCBlbnRyeSAzLiBFbnRyaWVzIDIgYW5kIDMgYXJlIG1hcmtlZCBp
Z25vcmUuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3
Njk2bXNvcGxhaW50ZXh0Ij48c3BhbiBsYW5nPSJFTi1HQiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Im0yMzg4NTE2NDE3OTA0OTA3Njk2bXNvcGxhaW50ZXh0Ij48c3Bh
biBsYW5nPSJFTi1HQiI+QWN0aXZlIHBvbGljeTo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0ibTIzODg1MTY0MTc5MDQ5MDc2OTZtc29wbGFpbnRleHQiPjxzcGFuIGxhbmc9IkVOLUdC
Ij4oMTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4x
LjEuMS8zMjwvYT4gMTAwIHJhbmdlIDEwKTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZu
YnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5
Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtMjM4ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4g
bGFuZz0iRU4tR0IiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtMjM4
ODUxNjQxNzkwNDkwNzY5Nm1zb3BsYWludGV4dCI+PHNwYW4gbGFuZz0iRU4tR0IiPiZuYnNwOzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEy
LjBwdCI+PGJyPg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X188YnI+DQpzcHJpbmcgbWFpbGluZyBsaXN0PGJyPg0KPGEgaHJlZj0ibWFpbHRvOnNwcmluZ0Bp
ZXRmLm9yZyI+c3ByaW5nQGlldGYub3JnPC9hPjxicj4NCjxhIGhyZWY9Imh0dHBzOi8vd3d3Lmll
dGYub3JnL21haWxtYW4vbGlzdGluZm8vc3ByaW5nIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93
d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9zcHJpbmc8L2E+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_7324f7ade4014659a1e19200f70520d1XCHALN001ciscocom_--


From nobody Fri Dec  9 22:29:45 2016
Return-Path: <gunter.van_de_velde@nokia.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 22C111295F8 for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 22:29:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.92
X-Spam-Level: 
X-Spam-Status: No, score=-6.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hOD6LawW4nXB for <spring@ietfa.amsl.com>; Fri,  9 Dec 2016 22:29:40 -0800 (PST)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DE7AA12950D for <spring@ietf.org>; Fri,  9 Dec 2016 22:29:39 -0800 (PST)
Received: from fr712umx3.dmz.alcatel-lucent.com (unknown [135.245.210.42]) by Websense Email Security Gateway with ESMTPS id 5B92BD78BB65E; Sat, 10 Dec 2016 06:29:36 +0000 (GMT)
Received: from fr711usmtp1.zeu.alcatel-lucent.com (fr711usmtp1.zeu.alcatel-lucent.com [135.239.2.122]) by fr712umx3.dmz.alcatel-lucent.com (GMO-o) with ESMTP id uBA6TZuW009062 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 10 Dec 2016 06:29:37 GMT
Received: from FR711WXCHHUB01.zeu.alcatel-lucent.com (fr711wxchhub01.zeu.alcatel-lucent.com [135.239.2.111]) by fr711usmtp1.zeu.alcatel-lucent.com (GMO) with ESMTP id uBA6TRoB015659 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Sat, 10 Dec 2016 06:29:34 GMT
Received: from FR711WXCHMBA06.zeu.alcatel-lucent.com ([169.254.2.227]) by FR711WXCHHUB01.zeu.alcatel-lucent.com ([135.239.2.111]) with mapi id 14.03.0301.000; Sat, 10 Dec 2016 07:29:27 +0100
From: "Van De Velde, Gunter (Nokia - BE)" <gunter.van_de_velde@nokia.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AQHSUlhMXA56fiVWgEm1U+Ly+bSdj6EAFPwAgACj1QA=
Date: Sat, 10 Dec 2016 06:29:26 +0000
Message-ID: <9B662AB6-DB24-46B9-A6B2-5844F3DCE0CF@alcatel-lucent.com>
References: <332FE00B-442E-44DC-A825-78E56FC12176@alcatel-lucent.com> <33ada622a415433ba2955ca8c0aa6dc5@XCH-ALN-001.cisco.com>
In-Reply-To: <33ada622a415433ba2955ca8c0aa6dc5@XCH-ALN-001.cisco.com>
Accept-Language: en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.239.27.39]
Content-Type: multipart/alternative; boundary="_000_9B662AB6DB2446B9A6B25844F3DCE0CFalcatellucentcom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/faL5zDCRZ9B2-CMWhCuA6DIpTas>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 10 Dec 2016 06:29:44 -0000

--_000_9B662AB6DB2446B9A6B25844F3DCE0CFalcatellucentcom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SW5saW5lOiBHVj4NCg0KRnJvbTogIkxlcyBHaW5zYmVyZyAoZ2luc2JlcmcpIiA8Z2luc2JlcmdA
Y2lzY28uY29tPg0KRGF0ZTogRnJpZGF5LCA5IERlY2VtYmVyIDIwMTYgYXQgMjI6NDMNClRvOiAi
VmFuIERlIFZlbGRlLCBHdW50ZXIgKE5va2lhIC0gQkUpIiA8Z3VudGVyLnZhbl9kZV92ZWxkZUBu
b2tpYS5jb20+LCAic3ByaW5nQGlldGYub3JnIiA8c3ByaW5nQGlldGYub3JnPg0KU3ViamVjdDog
UkU6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWwN
Cg0KR3VudGVyIOKAkw0KDQpJdCBpcyBhIG1pc3VuZGVyc3RhbmRpbmcgdG8gdGhpbmsgdGhhdCBj
b25mbGljdCByZXNvbHV0aW9uIG9mIEFOWSBGTEFWT1IgYWZmZWN0cyB0aGUgYmVzdCBwYXRoIHNl
bGVjdGlvbi9pbnN0YWxsYXRpb24uIFRoaXMgaXMgc2ltcGx5IG5vdCB0aGUgY2FzZS4NCg0KR1Y+
IEkga25vdy4gSSB3YXMganVzdCBtYWtpbmcgdGhlIGNvbXBhcmlzb24gd2l0aCByb3V0aW5nLCBh
cyB0aGVyZSB0aGUgb3ZlcmxhcHBpbmcgc3BhY2UgaXMgY2FydmVkIHVwIGFzIHNvbHV0aW9uLg0K
DQpXZSBhcmUgdGFsa2luZyBhYm91dCBhbiBNUExTIGZvcndhcmRpbmcgcGxhbmUgd2hpY2ggdXNl
cyBsYWJlbHMgd2hpY2ggYXJlIGdsb2JhbGx5IHNjb3BlZC4gKFRoZSBmYWN0IHRoYXQgdGhlIGxh
YmVsIGlzIHJlcHJlc2VudGVkIGFzIGFuIGluZGV4IGludG8gYSByb3V0ZXIgc3BlY2lmaWMgU1JH
QiBpcyBub3QgcmVsZXZhbnQpLg0KSWYgd2UgaGF2ZSBhIGNvbmZsaWN0IHRoZW4gYSBnaXZlbiBs
YWJlbCBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG11bHRpcGxlIHByZWZpeGVzIOKAkyBoZXJlIGlz
IG9uZSBleGFtcGxlOg0KDQoxLjEuMS4xLzMyIGluZGV4IDEwMA0KMi4yLjIuMi8zMiBpbmRleCAx
MDANCg0KSWYgSSBjaG9vc2UgdG8gdXNlIGluZGV4IDEwMCBmb3IgMS4xLjEuMS8zMiDigJMgYnV0
IG15IG5laWdoYm9yIGNob29zZXMgdG8gdXNlIGluZGV4IDEwMCBmb3IgMi4yLjIuMi8zMiDigJMg
dGhlbiB3aGVuIEkgZW5jYXBzdWxhdGUgYSBwYWNrZXQgYWRkcmVzc2VkIHRvIDEuMS4xLjEgYW5k
IGZvcndhcmQgaXQgdG8gbXkgbmVpZ2hib3IgaXQgd2lsbCBnZXQgc2VudCBpbiB0aGUgZGlyZWN0
aW9uIG9mIDIuMi4yLjIuDQpUaGlzIGlzIHRoZSBwcm9ibGVtIGNvbmZsaWN0IHJlc29sdXRpb24g
aXMgdHJ5aW5nIHRvIGFkZHJlc3MuDQoNCkdWPiBJIHVuZGVyc3Rvb2QgdGhhdA0KDQpBcyByZWdh
cmRzIOKAnGlnbm9yZSBvdmVybGFwIG9ubHnigJ0gY29tcGxleGl0eSwgSSByZXBlYXQgbXkgZWFy
bGllciByZXBseSB0byBCcnVubzoNCg0K4oCcSWYgeW91IHdhbnQgdG8gYXJndWUgdGhhdCB0aGVz
ZSBhcmUgc29sdmFibGUgcHJvYmxlbXMgSSB3b27igJl0IGRpc2FncmVlIHdpdGggeW91IOKAkyBp
dCBpcyBhIHF1ZXN0aW9uIG9mIHdoZXJlIHdlIHdhbnQgdG8gcHV0IG91ciB0aW1lIGFuZCBlZmZv
cnQuIEEgbnVtYmVyIG9mIGZvbGtzIGFyZSBjb21tZW50aW5nIHRoYXQgdGhleSBwcmVmZXIgdG8g
Zm9jdXMgb24gZml4aW5nIHRoZSBjb25maWd1cmF0aW9uIGFuZCBub3QgaW52ZXN0ICB0aW1lIGlu
IHZhbGlkYXRpbmcgdGhhdCBjb25mbGljdCByZXNvbHV0aW9uIGlzIGltcGxlbWVudGVkIGluIGFu
IGludGVyb3BlcmFibGUgd2F5LiBBcyB3ZSAodGhlIGF1dGhvcnMpIGhhdmUgc3RhdGVkIGZyb20g
dGhlIGJlZ2lubmluZywgd2UgYmVsaWV2ZSB0aGUgZW1waGFzaXMgc2hvdWxkIGJlIG9uIGRldGVj
dGluZyBhbmQgcmVwb3J0aW5nIHRoZSBjb25mbGljdHMg4oCTIG5vdCBzcGVuZGluZyBjeWNsZXMg
aW1wbGVtZW50aW5nIHRoZSBtb3N0IHJvYnVzdCBtZWFucyBvZiB0cnlpbmcgdG8gb3BlcmF0ZSBv
cHRpbWFsbHkgd2hpbGUgdGhlIG1pc2NvbmZpZ3VyYXRpb24gZXhpc3RzLuKAnQ0KDQpHVj4gTG9v
a3MgbGlrZSB0aGVyZSBhcmUgYWxzbyBhIHNpZ25pZmljYW50IG51bWJlciBvZiBwZW9wbGUgY2hh
bGxlbmdpbmcgdGhlIGltcHJlc3Npb24gdGhhdCAiaWdub3JlIG92ZXJsYXAgb25seSIgcG9saWN5
IHRvIGJlIG9ic2NlbmVseSBjb21wbGV4LiBJdCBpcyB0aGUgdGVjaG5pY2FsbHkgc3VwZXJpb3Ig
c29sdXRpb24sIGhlbmNlIG15IGJlbGlldmUgdG8ga2VlcCBwcm9wb3NhbCBhcyDigJ1pZ25vcmUg
b3ZlcmxhcCBvbmx54oCdLiBJZiB5b3UgbmVlZCBoZWxwIHRvIGNyZWF0ZSB0aGUgdGV4dCBpZiBp
dCBpbmRlZWQgaXMgcGVyY2VpdmVkIGFzIG9ic2NlbmVseSBjb21wbGV4IGJ5IHlvdSwgdGhlbiBJ
4oCZbSBzdXJlIHRoZXJlIGFyZSBwZW9wbGUgb24gdGhlIGxpc3Qgd2lsbGluZyB0byBzdGVwIHVw
IGZvciBoZWxwLg0KDQpHLw0KDQoNCiAgIExlcw0KDQoNCkZyb206IFZhbiBEZSBWZWxkZSwgR3Vu
dGVyIChOb2tpYSAtIEJFKSBbbWFpbHRvOmd1bnRlci52YW5fZGVfdmVsZGVAbm9raWEuY29tXQ0K
U2VudDogRnJpZGF5LCBEZWNlbWJlciAwOSwgMjAxNiAxMjoxMSBQTQ0KVG86IExlcyBHaW5zYmVy
ZyAoZ2luc2JlcmcpOyBzcHJpbmdAaWV0Zi5vcmcNClN1YmplY3Q6IFJlOiBbc3ByaW5nXSBTSUQg
Q29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQoNClRoZSBtZXRob2QgdG8g
4oCcbWF4aW1pemUgZm9yd2FyZGluZ+KAnSBhcyBtZW50aW9uZWQgaW4gdGhlIGRyYWZ0IHNlZW1z
IHRvIGJlIGluIGNvbnNpc3RlbnQgbG9naWMgd2l0aCBob3cgdGhlIGN1cnJlbnQNCnVuaWNhc3Qg
cm91dGluZyB0YWJsZSBpcyBidWlsZC4gRm9yIHVuaWNhc3Qgcm91dGVzIHRoZSByb3V0ZSBzZWxl
Y3RlZCBmb3IgYSBnaXZlbiBJUCBkZXN0aW5hdGlvbiBhZGRyZXNzIGlzIGEgZnVuY3Rpb24ocHJl
Zml4LWxlbmd0aC9hZG1pbi1kaXN0YW5jZSkuDQpUaGlzIGlzIGRvbmUgZm9yIGJldHRlciBhZGRy
ZXNzIHNwYWNlIG1hbmFnZW1lbnQsIGFuZCB0byBoYXZlIHByZWRpY3RhYmxlIHJvdXRpbmcgaW5j
YXNlIG9mIGNsYXNoZXMgaW4gdGhlIHJvdXRpbmcgdGFibGUuIEhlbmNlLCB0byBtZSwgaXQgc2Vl
bXMgb25seSBuYXR1cmFsIHRvDQp0byBrZWVwIHByb21vdGluZyAiaWdub3JlIG92ZXJsYXAgb25s
eSIgYXMgcmVzdWx0IGFzIGl0IG1pbWljcyB0cmFkaXRpb25hbCB1bmljYXN0IHJvdXRpbmcgdGFi
bGUgY29uc3RydWN0cy4NCg0KVGhlIGFsdGVybmF0aXZlIHNvdW5kcyBhIGJpdCBsaWtlIHN0ZXBw
aW5nIGJhY2sgdG8gQ2xhc3MgQS9CL0MgYWRkcmVzc2VzIGJ5IGp1c3QgYXZvaWRpbmcgdGhlIHBy
b2JsZW0gYW5kIHNpZ25pZmljYW50bHkgaW1wYWN0IHBvdGVudGlhbCBjbGFzaCBzY2VuYXJpb3Mg
YXMgY29uc2VxdWVuY2UgZHVlIHRvIG92ZXJzaW1wbGlmaWNhdGlvbi4NCg0KRmluYWxseSwgSSBk
byBub3QgdW5kZXJzdGFuZCB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGUgc3VkZGVuIHdvcnJ5IHJl
Z2FyZGluZyAiaWdub3JlIG92ZXJsYXAgb25seSIgcG9saWN5IHRvIGJlIG9ic2NlbmVseSBjb21w
bGV4LiBJZiBJIHVuZGVyc3RhbmQgSUVURiBwcm9jZWR1cmVzIHdlbGwsIGFuZCBpZg0KIOKAnGln
bm9yZSBvdmVybGFwIG9ubHnigJ0gaXMgZG9jdW1lbnRlZCBwcm9wZXJseSwganVzdCBsaWtlIGFu
eSBzdGFuZGFyZCB0cmFjayBSRkMgc2hvdWxkIGJlLCB0aGVuIGhvdyBhcmUgaW5jb21wYXRpYmxl
IGJlaGF2aW91cnMgcG9zc2libGU/IFNob3VsZCB3ZSBub3QgdHJ5IHRvIGFyY2hpdGVjdCBmb3IN
CnRoZSBCRVNUIHJlYWxpc3RpYyBmdXR1cmUgcHJvb2Ygc29sdXRpb24sIGFuZCBub3QgZm9yIHRo
ZSBlYXNpZXN0IGxlc3Mgb3B0aW1hbCBzb2x1dGlvbi4gKEtlZXAgaW4gbWluZCB0aGF0IGF0IHNv
bWUgcG9pbnQgaW4gdGltZSBwZW9wbGUgYmVsaWV2ZWQgdGhhdCBkb2luZyByb3V0aW5nIGluIHRo
ZQ0Kc3R5bGUgb2YgQ2xhc3MgQS9CL0Mgd2FzIHRoZSBmdXR1cmUgYWxzbywgYW5kIHNlZSB3aGVy
ZSB3ZSBhcmUgcmlnaHQgbm93KS4NCg0KRy8NCg0KDQoNCkZyb206IHNwcmluZyBbbWFpbHRvOnNw
cmluZy1ib3VuY2VzQGlldGYub3JnXSBPbiBCZWhhbGYgT2YgTGVzIEdpbnNiZXJnIChnaW5zYmVy
ZykNClNlbnQ6IFN1bmRheSwgRGVjZW1iZXIgMDQsIDIwMTYgNzowNCBQTQ0KVG86IHNwcmluZ0Bp
ZXRmLm9yZzxtYWlsdG86c3ByaW5nQGlldGYub3JnPg0KU3ViamVjdDogW3NwcmluZ10gU0lEIENv
bmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KDQoNCldoZW4gdGhlIHByb2Js
ZW0gYWRkcmVzc2VkIGJ5IGRyYWZ0LWlldGYtc3ByaW5nLWNvbmZsaWN0LXJlc29sdXRpb24gd2Fz
IGZpcnN0DQoNCnByZXNlbnRlZCBhdCBJRVRGIDk0LCB0aGUgYXV0aG9ycyBkZWZpbmVkIHRoZSBm
b2xsb3dpbmcgcHJpb3JpdGllczoNCg0KDQoNCjEpRGV0ZWN0IHRoZSBwcm9ibGVtDQoNCjIpUmVw
b3J0IHRoZSBwcm9ibGVtDQoNClRoaXMgYWxlcnRzIHRoZSBuZXR3b3JrIG9wZXJhdG9yIHRvIHRo
ZSBleGlzdGVuY2Ugb2YgYSBjb25mbGljdCBzbyB0aGF0DQoNCnRoZSBjb25maWd1cmF0aW9uIGVy
cm9yIGNhbiBiZSBjb3JyZWN0ZWQuDQoNCjMpRGVmaW5lIGNvbnNpc3RlbnQgYmVoYXZpb3INCg0K
VGhpcyBhdm9pZHMgbWlzLWZvcndhcmRpbmcgd2hpbGUgdGhlIGNvbmZsaWN0IGV4aXN0cy4NCg0K
NClEb27igJl0IG92ZXJlbmdpbmVlciB0aGUgc29sdXRpb24NCg0KR2l2ZW4gdGhhdCBpdCBpcyBp
bXBvc3NpYmxlIHRvIGtub3cgd2hpY2ggb2YgdGhlIGNvbmZsaWN0aW5nIGVudHJpZXMNCg0KaXMg
dGhlIGNvcnJlY3Qgb25lLCB3ZSBzaG91bGQgYXBwbHkgYSBzaW1wbGUgYWxnb3JpdGhtIHRvIHJl
c29sdmUgdGhlIGNvbmZsaWN0Lg0KDQo1KUFncmVlIG9uIHRoZSByZXNvbHV0aW9uIGJlaGF2aW9y
DQoNCg0KDQpUaGUgcmVzb2x1dGlvbiBiZWhhdmlvciB3YXMgZGVsaWJlcmF0ZWx5IHRoZSBsYXN0
IHBvaW50IGJlY2F1c2UgaXQgd2FzDQoNCmNvbnNpZGVyZWQgdGhlIGxlYXN0IGltcG9ydGFudC4N
Cg0KDQoNCklucHV0IHdhcyByZWNlaXZlZCBvdmVyIHRoZSBwYXN0IHllYXIgd2hpY2ggZW1waGFz
aXplZCB0aGUgaW1wb3J0YW5jZSBvZg0KDQp0cnlpbmcgdG8gIm1heGltaXplIGZvcndhcmRpbmci
IGluIHRoZSBwcmVzZW5jZSBvZiBjb25mbGljdHMuIFN1YnNlcXVlbnQNCg0KcmV2aXNpb25zIG9m
IHRoZSBkcmFmdCBoYXZlIHRyaWVkIHRvIGFkZHJlc3MgdGhpcyBjb25jZXJuLiBIb3dldmVyIHRo
ZSBhdXRob3JzDQoNCmhhdmUgcmVwZWF0ZWRseSBzdHJlc3NlZCB0aGF0IHRoZSBzb2x1dGlvbiBi
ZWluZyBwcm9wb3NlZA0KDQooImlnbm9yZSBvdmVybGFwIG9ubHkiKSB3YXMgbW9yZSBjb21wbGV4
IHRoYW4gb3RoZXIgb2ZmZXJlZCBhbHRlcm5hdGl2ZXMgYW5kDQoNCndvdWxkIGJlIG1vcmUgZGlm
ZmljdWx0IHRvIGd1YXJhbnRlZSBpbnRlcm9wZXJhYmlsaXR5IGJlY2F1c2Ugc3VidGxlDQoNCmRp
ZmZlcmVuY2VzIGluIGFuIGltcGxlbWVudGF0aW9uIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50IHJl
c3VsdHMuDQoNCg0KDQpBdCBJRVRGOTcgc2lnbmlmaWNhbnQgZmVlZGJhY2sgd2FzIHJlY2VpdmVk
IHByZWZlcnJpbmcgYSBzaW1wbGVyIHNvbHV0aW9uIHRvDQoNCnRoZSBwcm9ibGVtLiBUaGUgYXV0
aG9ycyBhcmUgdmVyeSBzeW1wYXRoZXRpYyB0byB0aGlzIGZlZWRiYWNrIGFuZCB0aGVyZWZvcmUN
Cg0KYXJlIHByb3Bvc2luZyBhIHNvbHV0aW9uIGJhc2VkIG9uIHdoYXQgdGhlIGRyYWZ0IGRlZmlu
ZXMgYXMgdGhlICJJZ25vcmUiDQoNCnBvbGljeSAtIHdoZXJlIGFsbCBlbnRyaWVzIHdoaWNoIGFy
ZSBpbiBjb25mbGljdCBhcmUgaWdub3JlZC4gV2UgYmVsaWV2ZSB0aGlzDQoNCmlzIGZhciBtb3Jl
IGRlc2lyYWJsZSBhbmQgYWxpZ25zIHdpdGggdGhlIHByaW9yaXRpZXMgbGlzdGVkIGFib3ZlLg0K
DQoNCg0KV2Ugb3V0bGluZSB0aGUgcHJvcG9zZWQgc29sdXRpb24gYmVsb3cgYW5kIHdvdWxkIGxp
a2UgdG8gcmVjZWl2ZSBmZWVkYmFjayBmcm9tDQoNCnRoZSBXRyBiZWZvcmUgcHVibGlzaGluZyB0
aGUgbmV4dCByZXZpc2lvbiBvZiB0aGUgZHJhZnQuDQoNCg0KDQogICBMZXMgKG9uIGJlaGFsZiBv
ZiB0aGUgYXV0aG9ycykNCg0KDQoNCk5ldyBQcm9wb3NhbA0KDQoNCg0KSW4gdGhlIGxhdGVzdCBy
ZXZpc2lvbiBvZiB0aGUgZHJhZnQgIlNSTVMgUHJlZmVyZW5jZSIgd2FzIGludHJvZHVjZWQuIFRo
aXMNCg0KcHJvdmlkZXMgYSB3YXkgZm9yIGEgbnVtZXJpY2FsIHByZWZlcmVuY2UgdG8gYmUgZXhw
bGljaXRseSBhc3NvY2lhdGVkIHdpdGggYW4NCg0KU1JNUyBhZHZlcnRpc2VtZW50LiBVc2luZyB0
aGlzIGFuIG9wZXJhdG9yIGNhbiBpbmRpY2F0ZSB3aGljaCBhZHZlcnRpc2VtZW50IGlzDQoNCnRv
IGJlIHByZWZlcnJlZCB3aGVuIGEgY29uZmxpY3QgaXMgcHJlc2VudC4gVGhlIGF1dGhvcnMgdGhp
bmsgdGhpcyBpcyBhIHVzZWZ1bA0KDQphZGRpdGlvbiBhbmQgd2UgdGhlcmVmb3JlIHdhbnQgdG8g
aW5jbHVkZSB0aGlzIGluIHRoZSBuZXcgc29sdXRpb24uDQoNCg0KDQpUaGUgbmV3IHByZWZlcmVu
Y2UgcnVsZSB1c2VkIHRvIHJlc29sdmUgY29uZmxpY3RzIGlzIGRlZmluZWQgYXMgZm9sbG93czoN
Cg0KDQoNCkEgZ2l2ZW4gbWFwcGluZyBlbnRyeSBpcyBjb21wYXJlZCBhZ2FpbnN0IGFsbCBtYXBw
aW5nIGVudHJpZXMgaW4gdGhlIGRhdGFiYXNlDQoNCndpdGggYSBwcmVmZXJlbmNlIGdyZWF0ZXIg
dGhhbiBvciBlcXVhbCB0byBpdHMgb3duLiBJZiB0aGVyZSBpcyBhIGNvbmZsaWN0LA0KDQp0aGUg
bWFwcGluZyBlbnRyeSB3aXRoIGxvd2VyIHByZWZlcmVuY2UgaXMgaWdub3JlZC4gSWYgdHdvIG1h
cHBpbmcgZW50cmllcyBhcmUNCg0KaW4gY29uZmxpY3QgYW5kIGhhdmUgZXF1YWwgcHJlZmVyZW5j
ZSB0aGVuIGJvdGggZW50cmllcyBhcmUgaWdub3JlZC4NCg0KDQoNCkltcGxlbWVudGF0aW9uIG9m
IHRoaXMgcG9saWN5IGlzIGRlZmluZWQgYXMgZm9sbG93czoNCg0KDQoNClN0ZXAgMTogV2l0aGlu
IGEgc2luZ2xlIGFkZHJlc3MtZmFtaWx5L2FsZ29yaXRobS90b3BvbG9neSBzb3J0IGVudHJpZXMN
Cg0KYmFzZWQgb24gcHJlZmVyZW5jZQ0KDQpTdGVwIDI6IFN0YXJ0aW5nIHdpdGggdGhlIGxvd2Vz
dCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgcHJlZml4IGNvbmZsaWN0cw0KDQp1c2luZyB0
aGUgYWJvdmUgcHJlZmVyZW5jZSBydWxlLiBUaGUgb3V0cHV0IGlzIGFuIGFjdGl2ZSBwb2xpY3kg
cGVyIHRvcG9sb2d5Lg0KDQpTdGVwIDM6IFRha2UgdGhlIG91dHB1dHMgZnJvbSBTdGVwIDIgYW5k
IGFnYWluIHNvcnQgdGhlbSBieSBwcmVmZXJlbmNlDQoNClN0ZXAgNDogU3RhcnRpbmcgd2l0aCB0
aGUgbG93ZXN0IHByZWZlcmVuY2UgZW50cmllcywgcmVzb2x2ZSBTSUQgY29uZmxpY3RzDQoNCnVz
aW5nIHRoZSBhYm92ZSBwcmVmZXJlbmNlIHJ1bGUNCg0KDQoNClRoZSBvdXRwdXQgZnJvbSBTdGVw
IDQgaXMgdGhlbiB0aGUgY3VycmVudCBBY3RpdmUgUG9saWN5Lg0KDQoNCg0KSGVyZSBhcmUgYSBm
ZXcgZXhhbXBsZXMuIEVhY2ggbWFwcGluZyBlbnRyeSBpcyByZXByZXNlbnRlZCBieSB0aGUgdHVw
bGU6DQoNCihQcmVmZXJlbmNlLCBQcmVmaXgvbWFzayBJbmRleCByYW5nZSA8Iz4pDQoNCg0KDQpF
eGFtcGxlIDE6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSAxMDApDQoNCjIu
ICgxNDksIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAyMDApDQoNCjMuICgxNDgsIDEuMS4xLjEwMS8z
MiA1MDAgcmFuZ2UgMTApDQoNCg0KDQpFbnRyeSAzIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIsIGl0
IGlzIGlnbm9yZWQuDQoNCkVudHJ5IDIgY29uZmxpY3RzIHdpdGggZW50cnkgMSwgaXQgaXMgaWdu
b3JlZC4NCg0KQWN0aXZlIHBvbGljeToNCg0KDQoNCigxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdl
IDEwMCkNCg0KDQoNCkV4YW1wbGUgMjoNCg0KDQoNCjEuICgxNTAsIDEuMS4xLjEvMzIgMTAwIHJh
bmdlIDEwMCkNCg0KMi4gKDE1MCwgMS4xLjEuMTAvMzIgMjAwIHJhbmdlIDIwMCkNCg0KMy4gKDE1
MCwgMS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCkNCg0KNC4gKDE1MCwgMi4yLjIuMS8zMiAxMDAw
IHJhbmdlIDEpDQoNCg0KDQpFbnRyeSAxIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIsIGJvdGggYXJl
IG1hcmtlZCBhcyBpZ25vcmUuDQoNCkVudHJ5IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQg
aXMgbWFya2VkIGFzIGlnbm9yZS4NCg0KRW50cnkgNCBoYXMgbm8gY29uZmxpY3RzIHdpdGggYW55
IGVudHJpZXMNCg0KDQoNCkFjdGl2ZSBwb2xpY3k6DQoNCigxNTAsIDIuMi4yLjEvMzIgMTAwMCBy
YW5nZSAxKQ0KDQoNCg0KRXhhbXBsZSAzOg0KDQoNCg0KMS4gKDE1MCwgMS4xLjEuMS8zMiAxMDAg
cmFuZ2UgNTAwKQ0KDQoyLiAoMTUwLCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMjAwKQ0KDQozLiAo
MTUwLCAxLjEuMS4xMDEvMzIgNTAwIHJhbmdlIDEwKQ0KDQo0LiAoMTUwLCAyLjIuMi4xLzMyIDEw
MDAgcmFuZ2UgMSkNCg0KDQoNCkVudHJ5IDEgY29uZmxpY3RzIHdpdGggZW50cmllcyAyLCAzLCBh
bmQgIDQuIEFsbCBlbnRyaWVzIGFyZSBtYXJrZWQgaWdub3JlLg0KDQoNCg0KQWN0aXZlIHBvbGlj
eToNCg0KRW1wdHkNCg0KDQoNCkV4YW1wbGUgNDoNCg0KDQoNCjEuICgxNTAsIDEuMS4xLjEvMzIg
MTAwIHJhbmdlIDEwKQ0KDQoyLiAoMTQ5LCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMzAwKQ0KDQoz
LiAoMTQ5LCAxLjEuMS4xMDEvMzIgNTAwIHJhbmdlIDEwKQ0KDQo0LiAoMTQ4LCAyLjIuMi4xLzMy
IDEwMDAgcmFuZ2UgMSkNCg0KDQoNCkVudHJ5IDQgY29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQg
aXMgbWFya2VkIGlnbm9yZS4NCg0KRW50cnkgMiBjb25mbGljdHMgd2l0aCBlbnRyeSAzLiBFbnRy
aWVzIDIgYW5kIDMgYXJlIG1hcmtlZCBpZ25vcmUuDQoNCg0KDQpBY3RpdmUgcG9saWN5Og0KDQoo
MTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSAxMCkNCg0KDQoNCg0KDQoNCg0KDQo=

--_000_9B662AB6DB2446B9A6B25844F3DCE0CFalcatellucentcom_
Content-Type: text/html; charset="utf-8"
Content-ID: <F15CEA04F1F3BD40BA3F4F86355D6F15@exchange.lucent.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iVGl0bGUiIGNvbnRlbnQ9IiI+DQo8bWV0YSBuYW1lPSJLZXl3b3JkcyIgY29udGVu
dD0iIj4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUg
KGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxlPjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8N
CkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6QXJpYWw7DQoJcGFub3NlLTE6MiAxMSA2IDQgMiAy
IDIgMiAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToiQ291cmllciBOZXciOw0KCXBh
bm9zZS0xOjIgNyAzIDkgMiAyIDUgMiA0IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToi
Q2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMTowIDAgMCAwIDAgMCAwIDAgMCAwO30NCkBmb250LWZh
Y2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIg
NDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYg
NCAzIDUgNCA0IDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxp
Lk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206
LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTps
aW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6
Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29I
eXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxl
Ow0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5Nc29QbGFpblRleHQsIGxpLk1zb1Bs
YWluVGV4dCwgZGl2Lk1zb1BsYWluVGV4dA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNv
LXN0eWxlLWxpbms6IlBsYWluIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBjbTsNCgltYXJnaW4tYm90
dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseTpDYWxpYnJpO30N
CnByZQ0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkhUTUwgUHJl
Zm9ybWF0dGVkIENoYXIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0K
CWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpwLk1zb0Fj
ZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29BY2V0YXRlDQoJe21zby1zdHlsZS1wcmlvcml0
eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBUZXh0IENoYXIiOw0KCW1hcmdpbjowY207
DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWls
eTpUYWhvbWE7fQ0KcC5Nc29MaXN0UGFyYWdyYXBoLCBsaS5Nc29MaXN0UGFyYWdyYXBoLCBkaXYu
TXNvTGlzdFBhcmFncmFwaA0KCXttc28tc3R5bGUtcHJpb3JpdHk6MzQ7DQoJbWFyZ2luLXRvcDow
Y207DQoJbWFyZ2luLXJpZ2h0OjBjbTsNCgltYXJnaW4tYm90dG9tOjBjbTsNCgltYXJnaW4tbGVm
dDozNi4wcHQ7DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJ
Zm9udC1mYW1pbHk6Q2FsaWJyaTt9DQpzcGFuLkhUTUxQcmVmb3JtYXR0ZWRDaGFyDQoJe21zby1z
dHlsZS1uYW1lOiJIVE1MIFByZWZvcm1hdHRlZCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6
OTk7DQoJbXNvLXN0eWxlLWxpbms6IkhUTUwgUHJlZm9ybWF0dGVkIjsNCglmb250LWZhbWlseToi
Q291cmllciBOZXciO30NCnNwYW4uUGxhaW5UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiUGxh
aW4gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6
IlBsYWluIFRleHQiOw0KCWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0Kc3Bhbi5CYWxsb29uVGV4dENo
YXINCgl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJp
b3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4dCI7DQoJZm9udC1mYW1pbHk6
VGFob21hO30NCnAubXNvbm9ybWFsMCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7
bXNvLXN0eWxlLW5hbWU6bXNvbm9ybWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1h
cmdpbi1yaWdodDowY207DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxl
ZnQ6MGNtOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21h
biI7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjUNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9u
dC1mYW1pbHk6QXJpYWw7DQoJY29sb3I6d2luZG93dGV4dDsNCglmb250LXdlaWdodDpub3JtYWw7
DQoJZm9udC1zdHlsZTpub3JtYWw7DQoJdGV4dC1kZWNvcmF0aW9uOm5vbmUgbm9uZTt9DQpzcGFu
LkVtYWlsU3R5bGUyNg0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250LWZhbWlseTpD
YWxpYnJpOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjcNCgl7bXNvLXN0
eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgljb2xvcjojMUY0OTdE
O30NCnNwYW4uRW1haWxTdHlsZTI4DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0K
CWZvbnQtZmFtaWx5OkNhbGlicmk7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLm1zb0lucw0K
CXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCgltc28tc3R5bGUtbmFtZToiIjsNCgl0ZXh0
LWRlY29yYXRpb246dW5kZXJsaW5lOw0KCWNvbG9yOnRlYWw7fQ0KLk1zb0NocERlZmF1bHQNCgl7
bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBX
b3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFyZ2luOjcyLjBwdCA3Mi4w
cHQgNzIuMHB0IDcyLjBwdDt9DQpkaXYuV29yZFNlY3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24x
O30NCi0tPjwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgbGFuZz0iRU4t
R0IiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24x
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJtc28tZmFyZWFzdC1sYW5ndWFn
ZTpFTi1VUyI+SW5saW5lOiBHViZndDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0ibXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10
b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+RnJvbTogPC9zcGFu
PjwvYj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZxdW90O0xlcyBHaW5zYmVyZyAoZ2luc2Jl
cmcpJnF1b3Q7ICZsdDtnaW5zYmVyZ0BjaXNjby5jb20mZ3Q7PGJyPg0KPGI+RGF0ZTogPC9iPkZy
aWRheSwgOSBEZWNlbWJlciAyMDE2IGF0IDIyOjQzPGJyPg0KPGI+VG86IDwvYj4mcXVvdDtWYW4g
RGUgVmVsZGUsIEd1bnRlciAoTm9raWEgLSBCRSkmcXVvdDsgJmx0O2d1bnRlci52YW5fZGVfdmVs
ZGVAbm9raWEuY29tJmd0OywgJnF1b3Q7c3ByaW5nQGlldGYub3JnJnF1b3Q7ICZsdDtzcHJpbmdA
aWV0Zi5vcmcmZ3Q7PGJyPg0KPGI+U3ViamVjdDogPC9iPlJFOiBbc3ByaW5nXSBTSUQgQ29uZmxp
Y3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTIuMHB0O2NvbG9yOmJsYWNrIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1
b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5H
dW50ZXIg4oCTPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5JdCBpcyBhIG1p
c3VuZGVyc3RhbmRpbmcgdG8gdGhpbmsgdGhhdCBjb25mbGljdCByZXNvbHV0aW9uIG9mIEFOWSBG
TEFWT1IgYWZmZWN0cyB0aGUgYmVzdCBwYXRoIHNlbGVjdGlvbi9pbnN0YWxsYXRpb24uIFRoaXMg
aXMgc2ltcGx5IG5vdCB0aGUgY2FzZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImNvbG9yOiMx
RjQ5N0QiPkdWJmd0OyBJIGtub3cuIEkgd2FzIGp1c3QgbWFraW5nIHRoZSBjb21wYXJpc29uIHdp
dGggcm91dGluZywgYXMgdGhlcmUgdGhlIG92ZXJsYXBwaW5nIHNwYWNlIGlzIGNhcnZlZCB1cCBh
cyBzb2x1dGlvbi48bzpwPjwvbzpwPjwvc3Bhbj48L2I+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iY29sb3I6IzFGNDk3RCI+V2UgYXJlIHRhbGtpbmcgYWJvdXQgYW4gTVBMUyBmb3J3YXJkaW5n
IHBsYW5lIHdoaWNoIHVzZXMgbGFiZWxzIHdoaWNoIGFyZSBnbG9iYWxseSBzY29wZWQuIChUaGUg
ZmFjdCB0aGF0IHRoZSBsYWJlbCBpcyByZXByZXNlbnRlZCBhcyBhbiBpbmRleCBpbnRvIGEgcm91
dGVyIHNwZWNpZmljIFNSR0IgaXMgbm90IHJlbGV2YW50KS4NCjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5JZiB3
ZSBoYXZlIGEgY29uZmxpY3QgdGhlbiBhIGdpdmVuIGxhYmVsIGNhbiBiZSBhc3NvY2lhdGVkIHdp
dGggbXVsdGlwbGUgcHJlZml4ZXMg4oCTIGhlcmUgaXMgb25lIGV4YW1wbGU6PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5
N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4xLjEuMS4xLzMyIGluZGV4IDEwMDwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0
OTdEIj4yLjIuMi4yLzMyIGluZGV4IDEwMDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFG
NDk3RCI+SWYgSSBjaG9vc2UgdG8gdXNlIGluZGV4IDEwMCBmb3IgMS4xLjEuMS8zMiDigJMgYnV0
IG15IG5laWdoYm9yIGNob29zZXMgdG8gdXNlIGluZGV4IDEwMCBmb3IgMi4yLjIuMi8zMiDigJMg
dGhlbiB3aGVuIEkgZW5jYXBzdWxhdGUgYSBwYWNrZXQgYWRkcmVzc2VkIHRvIDEuMS4xLjEgYW5k
IGZvcndhcmQgaXQgdG8gbXkgbmVpZ2hib3IgaXQgd2lsbCBnZXQgc2VudCBpbg0KIHRoZSBkaXJl
Y3Rpb24gb2YgMi4yLjIuMi4gPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlRoaXMgaXMgdGhlIHByb2JsZW0gY29u
ZmxpY3QgcmVzb2x1dGlvbiBpcyB0cnlpbmcgdG8gYWRkcmVzcy48L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4g
c3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkdWJmd0OyBJIHVuZGVyc3Rvb2QgdGhhdCA8bzpwPjwvbzpw
Pjwvc3Bhbj48L2I+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5BcyByZWdhcmRzIOKAnGlnbm9yZSBvdmVy
bGFwIG9ubHnigJ0gY29tcGxleGl0eSwgSSByZXBlYXQgbXkgZWFybGllciByZXBseSB0byBCcnVu
bzo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPuKAnDxpPklmIHlvdSB3YW50
IHRvIGFyZ3VlIHRoYXQgdGhlc2UgYXJlIHNvbHZhYmxlIHByb2JsZW1zIEkgd29u4oCZdCBkaXNh
Z3JlZSB3aXRoIHlvdSDigJMgaXQgaXMgYSBxdWVzdGlvbiBvZiB3aGVyZSB3ZSB3YW50IHRvIHB1
dCBvdXIgdGltZSBhbmQgZWZmb3J0LiBBIG51bWJlciBvZiBmb2xrcyBhcmUgY29tbWVudGluZyB0
aGF0IHRoZXkgcHJlZmVyIHRvIGZvY3VzIG9uDQogZml4aW5nIHRoZSBjb25maWd1cmF0aW9uIGFu
ZCBub3QgaW52ZXN0ICZuYnNwO3RpbWUgaW4gdmFsaWRhdGluZyB0aGF0IGNvbmZsaWN0IHJlc29s
dXRpb24gaXMgaW1wbGVtZW50ZWQgaW4gYW4gaW50ZXJvcGVyYWJsZSB3YXkuIEFzIHdlICh0aGUg
YXV0aG9ycykgaGF2ZSBzdGF0ZWQgZnJvbSB0aGUgYmVnaW5uaW5nLCB3ZSBiZWxpZXZlIHRoZSBl
bXBoYXNpcyBzaG91bGQgYmUgb24gZGV0ZWN0aW5nIGFuZCByZXBvcnRpbmcgdGhlIGNvbmZsaWN0
cyDigJMgbm90DQogc3BlbmRpbmcgY3ljbGVzIGltcGxlbWVudGluZyB0aGUgbW9zdCByb2J1c3Qg
bWVhbnMgb2YgdHJ5aW5nIHRvIG9wZXJhdGUgb3B0aW1hbGx5IHdoaWxlIHRoZSBtaXNjb25maWd1
cmF0aW9uIGV4aXN0cy7igJ08L2k+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzxvOnA+PC9v
OnA+PC9zcGFuPjwvaT48L2I+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5
bGU9ImNvbG9yOiMxRjQ5N0QiPkdWJmd0OyBMb29rcyBsaWtlIHRoZXJlIGFyZSBhbHNvIGEgc2ln
bmlmaWNhbnQgbnVtYmVyIG9mIHBlb3BsZSBjaGFsbGVuZ2luZyB0aGUgaW1wcmVzc2lvbiB0aGF0
ICZxdW90O2lnbm9yZSBvdmVybGFwIG9ubHkmcXVvdDsgcG9saWN5IHRvIGJlIG9ic2NlbmVseSBj
b21wbGV4LiBJdCBpcyB0aGUgdGVjaG5pY2FsbHkgc3VwZXJpb3Igc29sdXRpb24sIGhlbmNlIG15
IGJlbGlldmUNCiB0byBrZWVwIHByb3Bvc2FsIGFzIOKAnWlnbm9yZSBvdmVybGFwIG9ubHnigJ0u
IElmIHlvdSBuZWVkIGhlbHAgdG8gY3JlYXRlIHRoZSB0ZXh0IGlmIGl0IGluZGVlZCBpcyBwZXJj
ZWl2ZWQgYXMgb2JzY2VuZWx5IGNvbXBsZXggYnkgeW91LCB0aGVuIEnigJltIHN1cmUgdGhlcmUg
YXJlIHBlb3BsZSBvbiB0aGUgbGlzdCB3aWxsaW5nIHRvIHN0ZXAgdXAgZm9yIGhlbHAuDQo8bzpw
PjwvbzpwPjwvc3Bhbj48L2I+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5HLzwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz
cDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48aT48c3BhbiBzdHlsZT0iY29s
b3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7IExlczwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8ZGl2IHN0eWxl
PSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGNtIDBj
bSAwY20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6
c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OlRhaG9tYSI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2Zv
bnQtZmFtaWx5OlRhaG9tYSI+IFZhbiBEZSBWZWxkZSwgR3VudGVyIChOb2tpYSAtIEJFKSBbbWFp
bHRvOmd1bnRlci52YW5fZGVfdmVsZGVAbm9raWEuY29tXQ0KPGJyPg0KPGI+U2VudDo8L2I+IEZy
aWRheSwgRGVjZW1iZXIgMDksIDIwMTYgMTI6MTEgUE08YnI+DQo8Yj5Ubzo8L2I+IExlcyBHaW5z
YmVyZyAoZ2luc2JlcmcpOyBzcHJpbmdAaWV0Zi5vcmc8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6
IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWw8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Y29sb3I6YmxhY2siPlRoZSBtZXRob2QgdG8g4oCcbWF4aW1pemUgZm9yd2FyZGluZ+KAnSBhcyBt
ZW50aW9uZWQgaW4gdGhlIGRyYWZ0IHNlZW1zIHRvIGJlIGluIGNvbnNpc3RlbnQgbG9naWMgd2l0
aCBob3cgdGhlIGN1cnJlbnQNCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+dW5pY2FzdCByb3V0aW5nIHRhYmxlIGlz
IGJ1aWxkLiBGb3IgdW5pY2FzdCByb3V0ZXMgdGhlIHJvdXRlIHNlbGVjdGVkIGZvciBhIGdpdmVu
IElQIGRlc3RpbmF0aW9uIGFkZHJlc3MgaXMgYSBmdW5jdGlvbihwcmVmaXgtbGVuZ3RoL2FkbWlu
LWRpc3RhbmNlKS4NCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+VGhpcyBpcyBkb25lIGZvciBiZXR0ZXIgYWRkcmVz
cyBzcGFjZSBtYW5hZ2VtZW50LCBhbmQgdG8gaGF2ZSBwcmVkaWN0YWJsZSByb3V0aW5nIGluY2Fz
ZSBvZiBjbGFzaGVzIGluIHRoZSByb3V0aW5nIHRhYmxlLiBIZW5jZSwgdG8gbWUsIGl0IHNlZW1z
IG9ubHkgbmF0dXJhbCB0bw0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj50byBrZWVwIHByb21vdGluZyAmcXVvdDtp
Z25vcmUgb3ZlcmxhcCBvbmx5JnF1b3Q7IGFzIHJlc3VsdCBhcyBpdCBtaW1pY3MgdHJhZGl0aW9u
YWwgdW5pY2FzdCByb3V0aW5nIHRhYmxlIGNvbnN0cnVjdHMuDQo8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJjb2xvcjpibGFjayI+VGhlIGFsdGVybmF0aXZlIHNvdW5kcyBhIGJpdCBsaWtlIHN0ZXBwaW5n
IGJhY2sgdG8gQ2xhc3MgQS9CL0MgYWRkcmVzc2VzIGJ5IGp1c3QgYXZvaWRpbmcgdGhlIHByb2Js
ZW0gYW5kIHNpZ25pZmljYW50bHkgaW1wYWN0IHBvdGVudGlhbCBjbGFzaCBzY2VuYXJpb3MgYXMg
Y29uc2VxdWVuY2UgZHVlIHRvIG92ZXJzaW1wbGlmaWNhdGlvbi48L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJjb2xvcjpibGFjayI+RmluYWxseSwgSSBkbyBub3QgdW5kZXJzdGFuZCB0aGUgcmVhc29uaW5n
IGJlaGluZCB0aGUgc3VkZGVuIHdvcnJ5IHJlZ2FyZGluZyAmcXVvdDtpZ25vcmUgb3ZlcmxhcCBv
bmx5JnF1b3Q7IHBvbGljeSB0byBiZSBvYnNjZW5lbHkgY29tcGxleC4gSWYgSSB1bmRlcnN0YW5k
IElFVEYgcHJvY2VkdXJlcyB3ZWxsLCBhbmQgaWYNCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Jm5ic3A74oCcaWdu
b3JlIG92ZXJsYXAgb25seeKAnSBpcyBkb2N1bWVudGVkIHByb3Blcmx5LCBqdXN0IGxpa2UgYW55
IHN0YW5kYXJkIHRyYWNrIFJGQyBzaG91bGQgYmUsIHRoZW4gaG93IGFyZSBpbmNvbXBhdGlibGUg
YmVoYXZpb3VycyBwb3NzaWJsZT8gU2hvdWxkIHdlIG5vdCB0cnkgdG8gYXJjaGl0ZWN0IGZvcg0K
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImNvbG9yOmJsYWNrIj50aGUgQkVTVCByZWFsaXN0aWMgZnV0dXJlIHByb29mIHNvbHV0aW9uLCBh
bmQgbm90IGZvciB0aGUgZWFzaWVzdCBsZXNzIG9wdGltYWwgc29sdXRpb24uIChLZWVwIGluIG1p
bmQgdGhhdCBhdCBzb21lIHBvaW50IGluIHRpbWUgcGVvcGxlIGJlbGlldmVkIHRoYXQgZG9pbmcg
cm91dGluZyBpbiB0aGUNCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+c3R5bGUgb2YgQ2xhc3MgQS9CL0Mgd2FzIHRo
ZSBmdXR1cmUgYWxzbywgYW5kIHNlZSB3aGVyZSB3ZSBhcmUgcmlnaHQgbm93KS4NCjwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpi
bGFjayI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5HLyA8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNwOzwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpi
bGFjayI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6QXJpYWwiPiZuYnNwOzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0
OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowY20gMGNtIDBjbSA0LjBwdCI+DQo8ZGl2Pg0KPGRp
diBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRp
bmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+RnJvbTo8L2I+
IHNwcmluZyBbPGEgaHJlZj0ibWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYub3JnIj5tYWlsdG86
c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmc8L2E+XQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5MZXMgR2lu
c2JlcmcgKGdpbnNiZXJnKTxicj4NCjxiPlNlbnQ6PC9iPiBTdW5kYXksIERlY2VtYmVyIDA0LCAy
MDE2IDc6MDQgUE08YnI+DQo8Yj5Ubzo8L2I+IDxhIGhyZWY9Im1haWx0bzpzcHJpbmdAaWV0Zi5v
cmciPnNwcmluZ0BpZXRmLm9yZzwvYT48YnI+DQo8Yj5TdWJqZWN0OjwvYj4gW3NwcmluZ10gU0lE
IENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbDxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+V2hlbiB0aGUgcHJvYmxlbSBhZGRyZXNzZWQgYnkg
ZHJhZnQtaWV0Zi1zcHJpbmctY29uZmxpY3QtcmVzb2x1dGlvbiB3YXMgZmlyc3QNCjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+cHJlc2VudGVkIGF0IElFVEYgOTQsIHRo
ZSBhdXRob3JzIGRlZmluZWQgdGhlIGZvbGxvd2luZyBwcmlvcml0aWVzOjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4xKURldGVjdCB0aGUgcHJvYmxlbTxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+MilSZXBvcnQgdGhlIHByb2JsZW08bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPlRoaXMgYWxlcnRzIHRoZSBuZXR3b3JrIG9wZXJhdG9y
IHRvIHRoZSBleGlzdGVuY2Ugb2YgYSBjb25mbGljdCBzbyB0aGF0PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij50aGUgY29uZmlndXJhdGlvbiBlcnJvciBjYW4gYmUgY29y
cmVjdGVkLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+MylEZWZpbmUg
Y29uc2lzdGVudCBiZWhhdmlvcjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+VGhpcyBhdm9pZHMgbWlzLWZvcndhcmRpbmcgd2hpbGUgdGhlIGNvbmZsaWN0IGV4aXN0cy48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjQpRG9u4oCZdCBvdmVyZW5n
aW5lZXIgdGhlIHNvbHV0aW9uPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij5HaXZlbiB0aGF0IGl0IGlzIGltcG9zc2libGUgdG8ga25vdyB3aGljaCBvZiB0aGUgY29uZmxp
Y3RpbmcgZW50cmllczxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+aXMg
dGhlIGNvcnJlY3Qgb25lLCB3ZSBzaG91bGQgYXBwbHkgYSBzaW1wbGUgYWxnb3JpdGhtIHRvIHJl
c29sdmUgdGhlIGNvbmZsaWN0LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+NSlBZ3JlZSBvbiB0aGUgcmVzb2x1dGlvbiBiZWhhdmlvcjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij5UaGUgcmVzb2x1dGlvbiBiZWhhdmlvciB3YXMgZGVsaWJlcmF0ZWx5IHRoZSBs
YXN0IHBvaW50IGJlY2F1c2UgaXQgd2FzDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPmNvbnNpZGVyZWQgdGhlIGxlYXN0IGltcG9ydGFudC48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+SW5wdXQgd2FzIHJlY2VpdmVkIG92ZXIgdGhlIHBhc3QgeWVhciB3aGlj
aCBlbXBoYXNpemVkIHRoZSBpbXBvcnRhbmNlIG9mPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij50cnlpbmcgdG8gJnF1b3Q7bWF4aW1pemUgZm9yd2FyZGluZyZxdW90OyBp
biB0aGUgcHJlc2VuY2Ugb2YgY29uZmxpY3RzLiBTdWJzZXF1ZW50PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5yZXZpc2lvbnMgb2YgdGhlIGRyYWZ0IGhhdmUgdHJpZWQg
dG8gYWRkcmVzcyB0aGlzIGNvbmNlcm4uIEhvd2V2ZXIgdGhlIGF1dGhvcnMNCjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+aGF2ZSByZXBlYXRlZGx5IHN0cmVzc2VkIHRo
YXQgdGhlIHNvbHV0aW9uIGJlaW5nIHByb3Bvc2VkDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPigmcXVvdDtpZ25vcmUgb3ZlcmxhcCBvbmx5JnF1b3Q7KSB3YXMgbW9y
ZSBjb21wbGV4IHRoYW4gb3RoZXIgb2ZmZXJlZCBhbHRlcm5hdGl2ZXMgYW5kDQo8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPndvdWxkIGJlIG1vcmUgZGlmZmljdWx0IHRv
IGd1YXJhbnRlZSBpbnRlcm9wZXJhYmlsaXR5IGJlY2F1c2Ugc3VidGxlDQo8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPmRpZmZlcmVuY2VzIGluIGFuIGltcGxlbWVudGF0
aW9uIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50IHJlc3VsdHMuPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPkF0IElFVEY5NyBzaWduaWZpY2FudCBmZWVkYmFjayB3YXMgcmVjZWl2ZWQgcHJl
ZmVycmluZyBhIHNpbXBsZXIgc29sdXRpb24gdG8NCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+dGhlIHByb2JsZW0uIFRoZSBhdXRob3JzIGFyZSB2ZXJ5IHN5bXBhdGhl
dGljIHRvIHRoaXMgZmVlZGJhY2sgYW5kIHRoZXJlZm9yZQ0KPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij5hcmUgcHJvcG9zaW5nIGEgc29sdXRpb24gYmFzZWQgb24gd2hh
dCB0aGUgZHJhZnQgZGVmaW5lcyBhcyB0aGUgJnF1b3Q7SWdub3JlJnF1b3Q7DQo8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPnBvbGljeSAtIHdoZXJlIGFsbCBlbnRyaWVz
IHdoaWNoIGFyZSBpbiBjb25mbGljdCBhcmUgaWdub3JlZC4gV2UgYmVsaWV2ZSB0aGlzDQo8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPmlzIGZhciBtb3JlIGRlc2lyYWJs
ZSBhbmQgYWxpZ25zIHdpdGggdGhlIHByaW9yaXRpZXMgbGlzdGVkIGFib3ZlLjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij5XZSBvdXRsaW5lIHRoZSBwcm9wb3NlZCBzb2x1dGlvbiBiZWxv
dyBhbmQgd291bGQgbGlrZSB0byByZWNlaXZlIGZlZWRiYWNrIGZyb20NCjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+dGhlIFdHIGJlZm9yZSBwdWJsaXNoaW5nIHRoZSBu
ZXh0IHJldmlzaW9uIG9mIHRoZSBkcmFmdC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jm5ic3A7Jm5ic3A7IExlcyAob24gYmVoYWxmIG9mIHRoZSBhdXRob3JzKTxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij48aT5OZXcgUHJvcG9zYWw8L2k+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij48aT4mbmJzcDs8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij48aT5JbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mIHRoZSBkcmFmdCAm
cXVvdDtTUk1TIFByZWZlcmVuY2UmcXVvdDsgd2FzIGludHJvZHVjZWQuIFRoaXMNCjwvaT48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxpPnByb3ZpZGVzIGEgd2F5IGZv
ciBhIG51bWVyaWNhbCBwcmVmZXJlbmNlIHRvIGJlIGV4cGxpY2l0bHkgYXNzb2NpYXRlZCB3aXRo
IGFuDQo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48aT5TUk1T
IGFkdmVydGlzZW1lbnQuIFVzaW5nIHRoaXMgYW4gb3BlcmF0b3IgY2FuIGluZGljYXRlIHdoaWNo
IGFkdmVydGlzZW1lbnQgaXMNCjwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjxpPnRvIGJlIHByZWZlcnJlZCB3aGVuIGEgY29uZmxpY3QgaXMgcHJlc2VudC4gVGhl
IGF1dGhvcnMgdGhpbmsgdGhpcyBpcyBhIHVzZWZ1bA0KPC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+YWRkaXRpb24gYW5kIHdlIHRoZXJlZm9yZSB3YW50IHRv
IGluY2x1ZGUgdGhpcyBpbiB0aGUgbmV3IHNvbHV0aW9uLjwvaT48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPjxpPiZuYnNwOzwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPjxpPlRoZSBuZXcgcHJlZmVyZW5jZSBydWxlIHVzZWQgdG8gcmVz
b2x2ZSBjb25mbGljdHMgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvaT48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxpPiZuYnNwOzwvaT48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPkEgZ2l2ZW4gbWFwcGluZyBlbnRyeSBpcyBjb21w
YXJlZCBhZ2FpbnN0IGFsbCBtYXBwaW5nIGVudHJpZXMgaW4gdGhlIGRhdGFiYXNlDQo8L2k+PC9i
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+d2l0aCBhIHBy
ZWZlcmVuY2UgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGl0cyBvd24uIElmIHRoZXJlIGlzIGEg
Y29uZmxpY3QsDQo8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+PGI+PGk+dGhlIG1hcHBpbmcgZW50cnkgd2l0aCBsb3dlciBwcmVmZXJlbmNlIGlzIGlnbm9y
ZWQuIElmIHR3byBtYXBwaW5nIGVudHJpZXMgYXJlPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPmluIGNvbmZsaWN0IGFuZCBoYXZlIGVxdWFsIHBy
ZWZlcmVuY2UgdGhlbiBib3RoIGVudHJpZXMgYXJlIGlnbm9yZWQuPC9pPjwvYj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxpPiZuYnNwOzwvaT48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxpPkltcGxlbWVudGF0aW9uIG9mIHRoaXMgcG9s
aWN5IGlzIGRlZmluZWQgYXMgZm9sbG93czo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvUGxhaW5UZXh0Ij48aT4mbmJzcDs8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij48Yj48aT5TdGVwIDE6IFdpdGhpbiBhIHNpbmdsZSBhZGRyZXNzLWZhbWlseS9h
bGdvcml0aG0vdG9wb2xvZ3kgc29ydCBlbnRyaWVzDQo8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+YmFzZWQgb24gcHJlZmVyZW5jZSA8L2k+PC9i
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+U3RlcCAyOiBT
dGFydGluZyB3aXRoIHRoZSBsb3dlc3QgcHJlZmVyZW5jZSBlbnRyaWVzLCByZXNvbHZlIHByZWZp
eCBjb25mbGljdHMNCjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij48Yj48aT51c2luZyB0aGUgYWJvdmUgcHJlZmVyZW5jZSBydWxlLiBUaGUgb3V0cHV0IGlz
IGFuIGFjdGl2ZSBwb2xpY3kgcGVyIHRvcG9sb2d5LjwvaT48L2I+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT5TdGVwIDM6IFRha2UgdGhlIG91dHB1dHMgZnJv
bSBTdGVwIDIgYW5kIGFnYWluIHNvcnQgdGhlbSBieSBwcmVmZXJlbmNlDQo8L2k+PC9iPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+U3RlcCA0OiBTdGFydGlu
ZyB3aXRoIHRoZSBsb3dlc3QgcHJlZmVyZW5jZSBlbnRyaWVzLCByZXNvbHZlIFNJRCBjb25mbGlj
dHMNCjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48
aT51c2luZyB0aGUgYWJvdmUgcHJlZmVyZW5jZSBydWxlPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPiZuYnNwOzwvaT48L2I+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT5UaGUgb3V0cHV0IGZyb20gU3RlcCA0
IGlzIHRoZW4gdGhlIGN1cnJlbnQgQWN0aXZlIFBvbGljeS48L2k+PC9iPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij5IZXJlIGFyZSBhIGZldyBleGFtcGxlcy4gRWFjaCBtYXBwaW5nIGVu
dHJ5IGlzIHJlcHJlc2VudGVkIGJ5IHRoZSB0dXBsZTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPihQcmVmZXJlbmNlLCBQcmVmaXgvbWFzayBJbmRleCByYW5nZSAmbHQ7
IyZndDspPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkV4YW1wbGUgMTo8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+MS4gKDE1MCwgMS4xLjEuMS8zMiAxMDAgcmFuZ2UgMTAwKTxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Mi4gKDE0OSwgMS4xLjEuMTAv
MzIgMjAwIHJhbmdlIDIwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PjMuICgxNDgsIDEuMS4xLjEwMS8zMiA1MDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPkVudHJ5IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMiwgaXQgaXMgaWdub3JlZC48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkVudHJ5IDIgY29uZmxpY3Rz
IHdpdGggZW50cnkgMSwgaXQgaXMgaWdub3JlZC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPkFjdGl2ZSBwb2xpY3k6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PigxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdlIDEwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+RXhhbXBsZSAyOjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4xLiAoMTUwLCAx
LjEuMS4xLzMyIDEwMCByYW5nZSAxMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxh
aW5UZXh0Ij4yLiAoMTUwLCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMjAwKTxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+My4gKDE1MCwgMS4xLjEuMTAxLzMyIDUwMCByYW5n
ZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjQuICgxNTAsIDIu
Mi4yLjEvMzIgMTAwMCByYW5nZSAxKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWlu
VGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5FbnRy
eSAxIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIsIGJvdGggYXJlIG1hcmtlZCBhcyBpZ25vcmUuPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5FbnRyeSAzIGNvbmZsaWN0cyB3
aXRoIGVudHJ5IDIuIEl0IGlzIG1hcmtlZCBhcyBpZ25vcmUuPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij5FbnRyeSA0IGhhcyBubyBjb25mbGljdHMgd2l0aCBhbnkgZW50
cmllczxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5BY3RpdmUgcG9saWN5OjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+KDE1MCwgMi4yLjIuMS8zMiAxMDAwIHJh
bmdlIDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkV4YW1wbGUgMzo8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+MS4gKDE1MCwgMS4xLjEuMS8zMiAxMDAgcmFuZ2UgNTAwKTxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Mi4gKDE1MCwgMS4xLjEuMTAv
MzIgMjAwIHJhbmdlIDIwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PjMuICgxNTAsIDEuMS4xLjEwMS8zMiA1MDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvUGxhaW5UZXh0Ij40LiAoMTUwLCAyLjIuMi4xLzMyIDEwMDAgcmFuZ2UgMSk8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+RW50cnkgMSBjb25mbGljdHMgd2l0aCBlbnRyaWVz
IDIsIDMsIGFuZCZuYnNwOyA0LiBBbGwgZW50cmllcyBhcmUgbWFya2VkIGlnbm9yZS48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+QWN0aXZlIHBvbGljeTo8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPkVtcHR5PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PkV4YW1wbGUgNDo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNw
OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+MS4gKDE1MCwgMS4xLjEu
MS8zMiAxMDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4yLiAoMTQ5LCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMzAwKTxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+My4gKDE0OSwgMS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCk8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjQuICgxNDgsIDIuMi4yLjEv
MzIgMTAwMCByYW5nZSAxKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5FbnRyeSA0IGNv
bmZsaWN0cyB3aXRoIGVudHJ5IDIuIEl0IGlzIG1hcmtlZCBpZ25vcmUuPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5FbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDMu
IEVudHJpZXMgMiBhbmQgMyBhcmUgbWFya2VkIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1Bs
YWluVGV4dCI+QWN0aXZlIHBvbGljeTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPigxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdlIDEwKTxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_9B662AB6DB2446B9A6B25844F3DCE0CFalcatellucentcom_--


From nobody Sat Dec 10 00:27:35 2016
Return-Path: <wim.henderickx@nokia.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2BDD312955F for <spring@ietfa.amsl.com>; Sat, 10 Dec 2016 00:27:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.92
X-Spam-Level: 
X-Spam-Status: No, score=-6.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rviSs9Ctn2yK for <spring@ietfa.amsl.com>; Sat, 10 Dec 2016 00:27:30 -0800 (PST)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D9303129404 for <spring@ietf.org>; Sat, 10 Dec 2016 00:27:29 -0800 (PST)
Received: from fr712umx3.dmz.alcatel-lucent.com (unknown [135.245.210.42]) by Websense Email Security Gateway with ESMTPS id E4CFBFB838F74; Sat, 10 Dec 2016 08:27:25 +0000 (GMT)
Received: from fr711usmtp1.zeu.alcatel-lucent.com (fr711usmtp1.zeu.alcatel-lucent.com [135.239.2.122]) by fr712umx3.dmz.alcatel-lucent.com (GMO-o) with ESMTP id uBA8RQLQ021769 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 10 Dec 2016 08:27:27 GMT
Received: from FR711WXCHHUB02.zeu.alcatel-lucent.com (fr711wxchhub02.zeu.alcatel-lucent.com [135.239.2.112]) by fr711usmtp1.zeu.alcatel-lucent.com (GMO) with ESMTP id uBA8RMU0015444 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Sat, 10 Dec 2016 08:27:24 GMT
Received: from FR711WXCHMBA07.zeu.alcatel-lucent.com ([169.254.3.153]) by FR711WXCHHUB02.zeu.alcatel-lucent.com ([135.239.2.112]) with mapi id 14.03.0301.000; Sat, 10 Dec 2016 09:27:22 +0100
From: "Henderickx, Wim (Nokia - BE)" <wim.henderickx@nokia.com>
To: "Van De Velde, Gunter (Nokia - BE)" <gunter.van_de_velde@nokia.com>, "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AQHSUlhMXA56fiVWgEm1U+Ly+bSdj6EAG4CggACMjQCAAC1ogA==
Date: Sat, 10 Dec 2016 08:27:22 +0000
Message-ID: <EA22FB19-0AC4-48CA-A2B8-38FDC49364A0@nokia.com>
References: <332FE00B-442E-44DC-A825-78E56FC12176@alcatel-lucent.com> <33ada622a415433ba2955ca8c0aa6dc5@XCH-ALN-001.cisco.com> <9B662AB6-DB24-46B9-A6B2-5844F3DCE0CF@alcatel-lucent.com>
In-Reply-To: <9B662AB6-DB24-46B9-A6B2-5844F3DCE0CF@alcatel-lucent.com>
Accept-Language: nl-BE, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/f.1c.1.161117
x-originating-ip: [135.239.27.39]
Content-Type: multipart/alternative; boundary="_000_EA22FB190AC448CAA2B838FDC49364A0nokiacom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/iazcecWJPUNPPXu3qvm0SSblzgw>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 10 Dec 2016 08:27:34 -0000

--_000_EA22FB190AC448CAA2B838FDC49364A0nokiacom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SSBhbHNvIHZvdGUgZm9yIG1heGltaXppbmcgZm9yd2FyZGluZyBiYXNlZCBvbiBjdXN0b21lciBp
bnB1dC4gQWx0aG91Z2ggSSBhZ3JlZSB3ZSB3YW50IHRvIGF2b2lkIFNJRCBjb25mbGljdHMsIGl0
IGlzIGdvaW5nIHRvIGhhcHBlbiBhbmQgd2UgbmVlZCB0byBtaW5pbWl6ZSB0aGUgaW1wbGljYXRp
b25zIGluIHRoZSBuZXR3b3JrLg0KTGlmZSBpcyBub3QgZWFzeQ0KDQpGcm9tOiBzcHJpbmcgPHNw
cmluZy1ib3VuY2VzQGlldGYub3JnPiBvbiBiZWhhbGYgb2YgR3VudGVyIFZBTiBERSBWRUxERSA8
Z3VudGVyLnZhbl9kZV92ZWxkZUBub2tpYS5jb20+DQpEYXRlOiBTYXR1cmRheSwgMTAgRGVjZW1i
ZXIgMjAxNiBhdCAwNzoyOQ0KVG86ICJMZXMgR2luc2JlcmcgKGdpbnNiZXJnKSIgPGdpbnNiZXJn
QGNpc2NvLmNvbT4sICJzcHJpbmdAaWV0Zi5vcmciIDxzcHJpbmdAaWV0Zi5vcmc+DQpTdWJqZWN0
OiBSZTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3Nh
bA0KDQpJbmxpbmU6IEdWPg0KDQpGcm9tOiAiTGVzIEdpbnNiZXJnIChnaW5zYmVyZykiIDxnaW5z
YmVyZ0BjaXNjby5jb20+DQpEYXRlOiBGcmlkYXksIDkgRGVjZW1iZXIgMjAxNiBhdCAyMjo0Mw0K
VG86ICJWYW4gRGUgVmVsZGUsIEd1bnRlciAoTm9raWEgLSBCRSkiIDxndW50ZXIudmFuX2RlX3Zl
bGRlQG5va2lhLmNvbT4sICJzcHJpbmdAaWV0Zi5vcmciIDxzcHJpbmdAaWV0Zi5vcmc+DQpTdWJq
ZWN0OiBSRTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9w
b3NhbA0KDQpHdW50ZXIg4oCTDQoNCkl0IGlzIGEgbWlzdW5kZXJzdGFuZGluZyB0byB0aGluayB0
aGF0IGNvbmZsaWN0IHJlc29sdXRpb24gb2YgQU5ZIEZMQVZPUiBhZmZlY3RzIHRoZSBiZXN0IHBh
dGggc2VsZWN0aW9uL2luc3RhbGxhdGlvbi4gVGhpcyBpcyBzaW1wbHkgbm90IHRoZSBjYXNlLg0K
DQpHVj4gSSBrbm93LiBJIHdhcyBqdXN0IG1ha2luZyB0aGUgY29tcGFyaXNvbiB3aXRoIHJvdXRp
bmcsIGFzIHRoZXJlIHRoZSBvdmVybGFwcGluZyBzcGFjZSBpcyBjYXJ2ZWQgdXAgYXMgc29sdXRp
b24uDQoNCldlIGFyZSB0YWxraW5nIGFib3V0IGFuIE1QTFMgZm9yd2FyZGluZyBwbGFuZSB3aGlj
aCB1c2VzIGxhYmVscyB3aGljaCBhcmUgZ2xvYmFsbHkgc2NvcGVkLiAoVGhlIGZhY3QgdGhhdCB0
aGUgbGFiZWwgaXMgcmVwcmVzZW50ZWQgYXMgYW4gaW5kZXggaW50byBhIHJvdXRlciBzcGVjaWZp
YyBTUkdCIGlzIG5vdCByZWxldmFudCkuDQpJZiB3ZSBoYXZlIGEgY29uZmxpY3QgdGhlbiBhIGdp
dmVuIGxhYmVsIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUgcHJlZml4ZXMg4oCTIGhl
cmUgaXMgb25lIGV4YW1wbGU6DQoNCjEuMS4xLjEvMzIgaW5kZXggMTAwDQoyLjIuMi4yLzMyIGlu
ZGV4IDEwMA0KDQpJZiBJIGNob29zZSB0byB1c2UgaW5kZXggMTAwIGZvciAxLjEuMS4xLzMyIOKA
kyBidXQgbXkgbmVpZ2hib3IgY2hvb3NlcyB0byB1c2UgaW5kZXggMTAwIGZvciAyLjIuMi4yLzMy
IOKAkyB0aGVuIHdoZW4gSSBlbmNhcHN1bGF0ZSBhIHBhY2tldCBhZGRyZXNzZWQgdG8gMS4xLjEu
MSBhbmQgZm9yd2FyZCBpdCB0byBteSBuZWlnaGJvciBpdCB3aWxsIGdldCBzZW50IGluIHRoZSBk
aXJlY3Rpb24gb2YgMi4yLjIuMi4NClRoaXMgaXMgdGhlIHByb2JsZW0gY29uZmxpY3QgcmVzb2x1
dGlvbiBpcyB0cnlpbmcgdG8gYWRkcmVzcy4NCg0KR1Y+IEkgdW5kZXJzdG9vZCB0aGF0DQoNCkFz
IHJlZ2FyZHMg4oCcaWdub3JlIG92ZXJsYXAgb25seeKAnSBjb21wbGV4aXR5LCBJIHJlcGVhdCBt
eSBlYXJsaWVyIHJlcGx5IHRvIEJydW5vOg0KDQrigJxJZiB5b3Ugd2FudCB0byBhcmd1ZSB0aGF0
IHRoZXNlIGFyZSBzb2x2YWJsZSBwcm9ibGVtcyBJIHdvbuKAmXQgZGlzYWdyZWUgd2l0aCB5b3Ug
4oCTIGl0IGlzIGEgcXVlc3Rpb24gb2Ygd2hlcmUgd2Ugd2FudCB0byBwdXQgb3VyIHRpbWUgYW5k
IGVmZm9ydC4gQSBudW1iZXIgb2YgZm9sa3MgYXJlIGNvbW1lbnRpbmcgdGhhdCB0aGV5IHByZWZl
ciB0byBmb2N1cyBvbiBmaXhpbmcgdGhlIGNvbmZpZ3VyYXRpb24gYW5kIG5vdCBpbnZlc3QgIHRp
bWUgaW4gdmFsaWRhdGluZyB0aGF0IGNvbmZsaWN0IHJlc29sdXRpb24gaXMgaW1wbGVtZW50ZWQg
aW4gYW4gaW50ZXJvcGVyYWJsZSB3YXkuIEFzIHdlICh0aGUgYXV0aG9ycykgaGF2ZSBzdGF0ZWQg
ZnJvbSB0aGUgYmVnaW5uaW5nLCB3ZSBiZWxpZXZlIHRoZSBlbXBoYXNpcyBzaG91bGQgYmUgb24g
ZGV0ZWN0aW5nIGFuZCByZXBvcnRpbmcgdGhlIGNvbmZsaWN0cyDigJMgbm90IHNwZW5kaW5nIGN5
Y2xlcyBpbXBsZW1lbnRpbmcgdGhlIG1vc3Qgcm9idXN0IG1lYW5zIG9mIHRyeWluZyB0byBvcGVy
YXRlIG9wdGltYWxseSB3aGlsZSB0aGUgbWlzY29uZmlndXJhdGlvbiBleGlzdHMu4oCdDQoNCkdW
PiBMb29rcyBsaWtlIHRoZXJlIGFyZSBhbHNvIGEgc2lnbmlmaWNhbnQgbnVtYmVyIG9mIHBlb3Bs
ZSBjaGFsbGVuZ2luZyB0aGUgaW1wcmVzc2lvbiB0aGF0ICJpZ25vcmUgb3ZlcmxhcCBvbmx5IiBw
b2xpY3kgdG8gYmUgb2JzY2VuZWx5IGNvbXBsZXguIEl0IGlzIHRoZSB0ZWNobmljYWxseSBzdXBl
cmlvciBzb2x1dGlvbiwgaGVuY2UgbXkgYmVsaWV2ZSB0byBrZWVwIHByb3Bvc2FsIGFzIOKAnWln
bm9yZSBvdmVybGFwIG9ubHnigJ0uIElmIHlvdSBuZWVkIGhlbHAgdG8gY3JlYXRlIHRoZSB0ZXh0
IGlmIGl0IGluZGVlZCBpcyBwZXJjZWl2ZWQgYXMgb2JzY2VuZWx5IGNvbXBsZXggYnkgeW91LCB0
aGVuIEnigJltIHN1cmUgdGhlcmUgYXJlIHBlb3BsZSBvbiB0aGUgbGlzdCB3aWxsaW5nIHRvIHN0
ZXAgdXAgZm9yIGhlbHAuDQoNCkcvDQoNCg0KICAgTGVzDQoNCg0KRnJvbTogVmFuIERlIFZlbGRl
LCBHdW50ZXIgKE5va2lhIC0gQkUpIFttYWlsdG86Z3VudGVyLnZhbl9kZV92ZWxkZUBub2tpYS5j
b21dDQpTZW50OiBGcmlkYXksIERlY2VtYmVyIDA5LCAyMDE2IDEyOjExIFBNDQpUbzogTGVzIEdp
bnNiZXJnIChnaW5zYmVyZyk7IHNwcmluZ0BpZXRmLm9yZw0KU3ViamVjdDogUmU6IFtzcHJpbmdd
IFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWwNCg0KVGhlIG1ldGhv
ZCB0byDigJxtYXhpbWl6ZSBmb3J3YXJkaW5n4oCdIGFzIG1lbnRpb25lZCBpbiB0aGUgZHJhZnQg
c2VlbXMgdG8gYmUgaW4gY29uc2lzdGVudCBsb2dpYyB3aXRoIGhvdyB0aGUgY3VycmVudA0KdW5p
Y2FzdCByb3V0aW5nIHRhYmxlIGlzIGJ1aWxkLiBGb3IgdW5pY2FzdCByb3V0ZXMgdGhlIHJvdXRl
IHNlbGVjdGVkIGZvciBhIGdpdmVuIElQIGRlc3RpbmF0aW9uIGFkZHJlc3MgaXMgYSBmdW5jdGlv
bihwcmVmaXgtbGVuZ3RoL2FkbWluLWRpc3RhbmNlKS4NClRoaXMgaXMgZG9uZSBmb3IgYmV0dGVy
IGFkZHJlc3Mgc3BhY2UgbWFuYWdlbWVudCwgYW5kIHRvIGhhdmUgcHJlZGljdGFibGUgcm91dGlu
ZyBpbmNhc2Ugb2YgY2xhc2hlcyBpbiB0aGUgcm91dGluZyB0YWJsZS4gSGVuY2UsIHRvIG1lLCBp
dCBzZWVtcyBvbmx5IG5hdHVyYWwgdG8NCnRvIGtlZXAgcHJvbW90aW5nICJpZ25vcmUgb3Zlcmxh
cCBvbmx5IiBhcyByZXN1bHQgYXMgaXQgbWltaWNzIHRyYWRpdGlvbmFsIHVuaWNhc3Qgcm91dGlu
ZyB0YWJsZSBjb25zdHJ1Y3RzLg0KDQpUaGUgYWx0ZXJuYXRpdmUgc291bmRzIGEgYml0IGxpa2Ug
c3RlcHBpbmcgYmFjayB0byBDbGFzcyBBL0IvQyBhZGRyZXNzZXMgYnkganVzdCBhdm9pZGluZyB0
aGUgcHJvYmxlbSBhbmQgc2lnbmlmaWNhbnRseSBpbXBhY3QgcG90ZW50aWFsIGNsYXNoIHNjZW5h
cmlvcyBhcyBjb25zZXF1ZW5jZSBkdWUgdG8gb3ZlcnNpbXBsaWZpY2F0aW9uLg0KDQpGaW5hbGx5
LCBJIGRvIG5vdCB1bmRlcnN0YW5kIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoZSBzdWRkZW4gd29y
cnkgcmVnYXJkaW5nICJpZ25vcmUgb3ZlcmxhcCBvbmx5IiBwb2xpY3kgdG8gYmUgb2JzY2VuZWx5
IGNvbXBsZXguIElmIEkgdW5kZXJzdGFuZCBJRVRGIHByb2NlZHVyZXMgd2VsbCwgYW5kIGlmDQog
4oCcaWdub3JlIG92ZXJsYXAgb25seeKAnSBpcyBkb2N1bWVudGVkIHByb3Blcmx5LCBqdXN0IGxp
a2UgYW55IHN0YW5kYXJkIHRyYWNrIFJGQyBzaG91bGQgYmUsIHRoZW4gaG93IGFyZSBpbmNvbXBh
dGlibGUgYmVoYXZpb3VycyBwb3NzaWJsZT8gU2hvdWxkIHdlIG5vdCB0cnkgdG8gYXJjaGl0ZWN0
IGZvcg0KdGhlIEJFU1QgcmVhbGlzdGljIGZ1dHVyZSBwcm9vZiBzb2x1dGlvbiwgYW5kIG5vdCBm
b3IgdGhlIGVhc2llc3QgbGVzcyBvcHRpbWFsIHNvbHV0aW9uLiAoS2VlcCBpbiBtaW5kIHRoYXQg
YXQgc29tZSBwb2ludCBpbiB0aW1lIHBlb3BsZSBiZWxpZXZlZCB0aGF0IGRvaW5nIHJvdXRpbmcg
aW4gdGhlDQpzdHlsZSBvZiBDbGFzcyBBL0IvQyB3YXMgdGhlIGZ1dHVyZSBhbHNvLCBhbmQgc2Vl
IHdoZXJlIHdlIGFyZSByaWdodCBub3cpLg0KDQpHLw0KDQoNCg0KRnJvbTogc3ByaW5nIFttYWls
dG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBMZXMgR2luc2JlcmcgKGdp
bnNiZXJnKQ0KU2VudDogU3VuZGF5LCBEZWNlbWJlciAwNCwgMjAxNiA3OjA0IFBNDQpUbzogc3By
aW5nQGlldGYub3JnPG1haWx0bzpzcHJpbmdAaWV0Zi5vcmc+DQpTdWJqZWN0OiBbc3ByaW5nXSBT
SUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQoNCg0KV2hlbiB0aGUg
cHJvYmxlbSBhZGRyZXNzZWQgYnkgZHJhZnQtaWV0Zi1zcHJpbmctY29uZmxpY3QtcmVzb2x1dGlv
biB3YXMgZmlyc3QNCg0KcHJlc2VudGVkIGF0IElFVEYgOTQsIHRoZSBhdXRob3JzIGRlZmluZWQg
dGhlIGZvbGxvd2luZyBwcmlvcml0aWVzOg0KDQoNCg0KMSlEZXRlY3QgdGhlIHByb2JsZW0NCg0K
MilSZXBvcnQgdGhlIHByb2JsZW0NCg0KVGhpcyBhbGVydHMgdGhlIG5ldHdvcmsgb3BlcmF0b3Ig
dG8gdGhlIGV4aXN0ZW5jZSBvZiBhIGNvbmZsaWN0IHNvIHRoYXQNCg0KdGhlIGNvbmZpZ3VyYXRp
b24gZXJyb3IgY2FuIGJlIGNvcnJlY3RlZC4NCg0KMylEZWZpbmUgY29uc2lzdGVudCBiZWhhdmlv
cg0KDQpUaGlzIGF2b2lkcyBtaXMtZm9yd2FyZGluZyB3aGlsZSB0aGUgY29uZmxpY3QgZXhpc3Rz
Lg0KDQo0KURvbuKAmXQgb3ZlcmVuZ2luZWVyIHRoZSBzb2x1dGlvbg0KDQpHaXZlbiB0aGF0IGl0
IGlzIGltcG9zc2libGUgdG8ga25vdyB3aGljaCBvZiB0aGUgY29uZmxpY3RpbmcgZW50cmllcw0K
DQppcyB0aGUgY29ycmVjdCBvbmUsIHdlIHNob3VsZCBhcHBseSBhIHNpbXBsZSBhbGdvcml0aG0g
dG8gcmVzb2x2ZSB0aGUgY29uZmxpY3QuDQoNCjUpQWdyZWUgb24gdGhlIHJlc29sdXRpb24gYmVo
YXZpb3INCg0KDQoNClRoZSByZXNvbHV0aW9uIGJlaGF2aW9yIHdhcyBkZWxpYmVyYXRlbHkgdGhl
IGxhc3QgcG9pbnQgYmVjYXVzZSBpdCB3YXMNCg0KY29uc2lkZXJlZCB0aGUgbGVhc3QgaW1wb3J0
YW50Lg0KDQoNCg0KSW5wdXQgd2FzIHJlY2VpdmVkIG92ZXIgdGhlIHBhc3QgeWVhciB3aGljaCBl
bXBoYXNpemVkIHRoZSBpbXBvcnRhbmNlIG9mDQoNCnRyeWluZyB0byAibWF4aW1pemUgZm9yd2Fy
ZGluZyIgaW4gdGhlIHByZXNlbmNlIG9mIGNvbmZsaWN0cy4gU3Vic2VxdWVudA0KDQpyZXZpc2lv
bnMgb2YgdGhlIGRyYWZ0IGhhdmUgdHJpZWQgdG8gYWRkcmVzcyB0aGlzIGNvbmNlcm4uIEhvd2V2
ZXIgdGhlIGF1dGhvcnMNCg0KaGF2ZSByZXBlYXRlZGx5IHN0cmVzc2VkIHRoYXQgdGhlIHNvbHV0
aW9uIGJlaW5nIHByb3Bvc2VkDQoNCigiaWdub3JlIG92ZXJsYXAgb25seSIpIHdhcyBtb3JlIGNv
bXBsZXggdGhhbiBvdGhlciBvZmZlcmVkIGFsdGVybmF0aXZlcyBhbmQNCg0Kd291bGQgYmUgbW9y
ZSBkaWZmaWN1bHQgdG8gZ3VhcmFudGVlIGludGVyb3BlcmFiaWxpdHkgYmVjYXVzZSBzdWJ0bGUN
Cg0KZGlmZmVyZW5jZXMgaW4gYW4gaW1wbGVtZW50YXRpb24gY291bGQgcHJvZHVjZSBkaWZmZXJl
bnQgcmVzdWx0cy4NCg0KDQoNCkF0IElFVEY5NyBzaWduaWZpY2FudCBmZWVkYmFjayB3YXMgcmVj
ZWl2ZWQgcHJlZmVycmluZyBhIHNpbXBsZXIgc29sdXRpb24gdG8NCg0KdGhlIHByb2JsZW0uIFRo
ZSBhdXRob3JzIGFyZSB2ZXJ5IHN5bXBhdGhldGljIHRvIHRoaXMgZmVlZGJhY2sgYW5kIHRoZXJl
Zm9yZQ0KDQphcmUgcHJvcG9zaW5nIGEgc29sdXRpb24gYmFzZWQgb24gd2hhdCB0aGUgZHJhZnQg
ZGVmaW5lcyBhcyB0aGUgIklnbm9yZSINCg0KcG9saWN5IC0gd2hlcmUgYWxsIGVudHJpZXMgd2hp
Y2ggYXJlIGluIGNvbmZsaWN0IGFyZSBpZ25vcmVkLiBXZSBiZWxpZXZlIHRoaXMNCg0KaXMgZmFy
IG1vcmUgZGVzaXJhYmxlIGFuZCBhbGlnbnMgd2l0aCB0aGUgcHJpb3JpdGllcyBsaXN0ZWQgYWJv
dmUuDQoNCg0KDQpXZSBvdXRsaW5lIHRoZSBwcm9wb3NlZCBzb2x1dGlvbiBiZWxvdyBhbmQgd291
bGQgbGlrZSB0byByZWNlaXZlIGZlZWRiYWNrIGZyb20NCg0KdGhlIFdHIGJlZm9yZSBwdWJsaXNo
aW5nIHRoZSBuZXh0IHJldmlzaW9uIG9mIHRoZSBkcmFmdC4NCg0KDQoNCiAgIExlcyAob24gYmVo
YWxmIG9mIHRoZSBhdXRob3JzKQ0KDQoNCg0KTmV3IFByb3Bvc2FsDQoNCg0KDQpJbiB0aGUgbGF0
ZXN0IHJldmlzaW9uIG9mIHRoZSBkcmFmdCAiU1JNUyBQcmVmZXJlbmNlIiB3YXMgaW50cm9kdWNl
ZC4gVGhpcw0KDQpwcm92aWRlcyBhIHdheSBmb3IgYSBudW1lcmljYWwgcHJlZmVyZW5jZSB0byBi
ZSBleHBsaWNpdGx5IGFzc29jaWF0ZWQgd2l0aCBhbg0KDQpTUk1TIGFkdmVydGlzZW1lbnQuIFVz
aW5nIHRoaXMgYW4gb3BlcmF0b3IgY2FuIGluZGljYXRlIHdoaWNoIGFkdmVydGlzZW1lbnQgaXMN
Cg0KdG8gYmUgcHJlZmVycmVkIHdoZW4gYSBjb25mbGljdCBpcyBwcmVzZW50LiBUaGUgYXV0aG9y
cyB0aGluayB0aGlzIGlzIGEgdXNlZnVsDQoNCmFkZGl0aW9uIGFuZCB3ZSB0aGVyZWZvcmUgd2Fu
dCB0byBpbmNsdWRlIHRoaXMgaW4gdGhlIG5ldyBzb2x1dGlvbi4NCg0KDQoNClRoZSBuZXcgcHJl
ZmVyZW5jZSBydWxlIHVzZWQgdG8gcmVzb2x2ZSBjb25mbGljdHMgaXMgZGVmaW5lZCBhcyBmb2xs
b3dzOg0KDQoNCg0KQSBnaXZlbiBtYXBwaW5nIGVudHJ5IGlzIGNvbXBhcmVkIGFnYWluc3QgYWxs
IG1hcHBpbmcgZW50cmllcyBpbiB0aGUgZGF0YWJhc2UNCg0Kd2l0aCBhIHByZWZlcmVuY2UgZ3Jl
YXRlciB0aGFuIG9yIGVxdWFsIHRvIGl0cyBvd24uIElmIHRoZXJlIGlzIGEgY29uZmxpY3QsDQoN
CnRoZSBtYXBwaW5nIGVudHJ5IHdpdGggbG93ZXIgcHJlZmVyZW5jZSBpcyBpZ25vcmVkLiBJZiB0
d28gbWFwcGluZyBlbnRyaWVzIGFyZQ0KDQppbiBjb25mbGljdCBhbmQgaGF2ZSBlcXVhbCBwcmVm
ZXJlbmNlIHRoZW4gYm90aCBlbnRyaWVzIGFyZSBpZ25vcmVkLg0KDQoNCg0KSW1wbGVtZW50YXRp
b24gb2YgdGhpcyBwb2xpY3kgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCg0KU3RlcCAxOiBX
aXRoaW4gYSBzaW5nbGUgYWRkcmVzcy1mYW1pbHkvYWxnb3JpdGhtL3RvcG9sb2d5IHNvcnQgZW50
cmllcw0KDQpiYXNlZCBvbiBwcmVmZXJlbmNlDQoNClN0ZXAgMjogU3RhcnRpbmcgd2l0aCB0aGUg
bG93ZXN0IHByZWZlcmVuY2UgZW50cmllcywgcmVzb2x2ZSBwcmVmaXggY29uZmxpY3RzDQoNCnVz
aW5nIHRoZSBhYm92ZSBwcmVmZXJlbmNlIHJ1bGUuIFRoZSBvdXRwdXQgaXMgYW4gYWN0aXZlIHBv
bGljeSBwZXIgdG9wb2xvZ3kuDQoNClN0ZXAgMzogVGFrZSB0aGUgb3V0cHV0cyBmcm9tIFN0ZXAg
MiBhbmQgYWdhaW4gc29ydCB0aGVtIGJ5IHByZWZlcmVuY2UNCg0KU3RlcCA0OiBTdGFydGluZyB3
aXRoIHRoZSBsb3dlc3QgcHJlZmVyZW5jZSBlbnRyaWVzLCByZXNvbHZlIFNJRCBjb25mbGljdHMN
Cg0KdXNpbmcgdGhlIGFib3ZlIHByZWZlcmVuY2UgcnVsZQ0KDQoNCg0KVGhlIG91dHB1dCBmcm9t
IFN0ZXAgNCBpcyB0aGVuIHRoZSBjdXJyZW50IEFjdGl2ZSBQb2xpY3kuDQoNCg0KDQpIZXJlIGFy
ZSBhIGZldyBleGFtcGxlcy4gRWFjaCBtYXBwaW5nIGVudHJ5IGlzIHJlcHJlc2VudGVkIGJ5IHRo
ZSB0dXBsZToNCg0KKFByZWZlcmVuY2UsIFByZWZpeC9tYXNrIEluZGV4IHJhbmdlIDwjPikNCg0K
DQoNCkV4YW1wbGUgMToNCg0KDQoNCjEuICgxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdlIDEwMCkN
Cg0KMi4gKDE0OSwgMS4xLjEuMTAvMzIgMjAwIHJhbmdlIDIwMCkNCg0KMy4gKDE0OCwgMS4xLjEu
MTAxLzMyIDUwMCByYW5nZSAxMCkNCg0KDQoNCkVudHJ5IDMgY29uZmxpY3RzIHdpdGggZW50cnkg
MiwgaXQgaXMgaWdub3JlZC4NCg0KRW50cnkgMiBjb25mbGljdHMgd2l0aCBlbnRyeSAxLCBpdCBp
cyBpZ25vcmVkLg0KDQpBY3RpdmUgcG9saWN5Og0KDQoNCg0KKDE1MCwgMS4xLjEuMS8zMiAxMDAg
cmFuZ2UgMTAwKQ0KDQoNCg0KRXhhbXBsZSAyOg0KDQoNCg0KMS4gKDE1MCwgMS4xLjEuMS8zMiAx
MDAgcmFuZ2UgMTAwKQ0KDQoyLiAoMTUwLCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMjAwKQ0KDQoz
LiAoMTUwLCAxLjEuMS4xMDEvMzIgNTAwIHJhbmdlIDEwKQ0KDQo0LiAoMTUwLCAyLjIuMi4xLzMy
IDEwMDAgcmFuZ2UgMSkNCg0KDQoNCkVudHJ5IDEgY29uZmxpY3RzIHdpdGggZW50cnkgMiwgYm90
aCBhcmUgbWFya2VkIGFzIGlnbm9yZS4NCg0KRW50cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAy
LiBJdCBpcyBtYXJrZWQgYXMgaWdub3JlLg0KDQpFbnRyeSA0IGhhcyBubyBjb25mbGljdHMgd2l0
aCBhbnkgZW50cmllcw0KDQoNCg0KQWN0aXZlIHBvbGljeToNCg0KKDE1MCwgMi4yLjIuMS8zMiAx
MDAwIHJhbmdlIDEpDQoNCg0KDQpFeGFtcGxlIDM6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMy
IDEwMCByYW5nZSA1MDApDQoNCjIuICgxNTAsIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAyMDApDQoN
CjMuICgxNTAsIDEuMS4xLjEwMS8zMiA1MDAgcmFuZ2UgMTApDQoNCjQuICgxNTAsIDIuMi4yLjEv
MzIgMTAwMCByYW5nZSAxKQ0KDQoNCg0KRW50cnkgMSBjb25mbGljdHMgd2l0aCBlbnRyaWVzIDIs
IDMsIGFuZCAgNC4gQWxsIGVudHJpZXMgYXJlIG1hcmtlZCBpZ25vcmUuDQoNCg0KDQpBY3RpdmUg
cG9saWN5Og0KDQpFbXB0eQ0KDQoNCg0KRXhhbXBsZSA0Og0KDQoNCg0KMS4gKDE1MCwgMS4xLjEu
MS8zMiAxMDAgcmFuZ2UgMTApDQoNCjIuICgxNDksIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAzMDAp
DQoNCjMuICgxNDksIDEuMS4xLjEwMS8zMiA1MDAgcmFuZ2UgMTApDQoNCjQuICgxNDgsIDIuMi4y
LjEvMzIgMTAwMCByYW5nZSAxKQ0KDQoNCg0KRW50cnkgNCBjb25mbGljdHMgd2l0aCBlbnRyeSAy
LiBJdCBpcyBtYXJrZWQgaWdub3JlLg0KDQpFbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDMu
IEVudHJpZXMgMiBhbmQgMyBhcmUgbWFya2VkIGlnbm9yZS4NCg0KDQoNCkFjdGl2ZSBwb2xpY3k6
DQoNCigxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdlIDEwKQ0KDQoNCg0KDQoNCg0KDQoNCg==

--_000_EA22FB190AC448CAA2B838FDC49364A0nokiacom_
Content-Type: text/html; charset="utf-8"
Content-ID: <979E0EA45CB69A4F9CE170299234457C@exchange.lucent.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iVGl0bGUiIGNvbnRlbnQ9IiI+DQo8bWV0YSBuYW1lPSJLZXl3b3JkcyIgY29udGVu
dD0iIj4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUg
KGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxlPjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8N
CkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6QXJpYWw7DQoJcGFub3NlLTE6MiAxMSA2IDQgMiAy
IDIgMiAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToiQ291cmllciBOZXciOw0KCXBh
bm9zZS0xOjIgNyAzIDkgMiAyIDUgMiA0IDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseToi
Q2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMgMiA0O30NCkBmb250LWZh
Y2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIg
NDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5vc2UtMToyIDExIDYg
NCAzIDUgNCA0IDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxp
Lk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206
LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0KYTps
aW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6
Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29I
eXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxl
Ow0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcC5Nc29QbGFpblRleHQsIGxpLk1zb1Bs
YWluVGV4dCwgZGl2Lk1zb1BsYWluVGV4dA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNv
LXN0eWxlLWxpbms6IlBsYWluIFRleHQgQ2hhciI7DQoJbWFyZ2luOjBjbTsNCgltYXJnaW4tYm90
dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseTpDYWxpYnJpO30N
CnByZQ0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkhUTUwgUHJl
Zm9ybWF0dGVkIENoYXIiOw0KCW1hcmdpbjowY207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0K
CWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpwLk1zb0Fj
ZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29BY2V0YXRlDQoJe21zby1zdHlsZS1wcmlvcml0
eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBUZXh0IENoYXIiOw0KCW1hcmdpbjowY207
DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWls
eTpUYWhvbWE7fQ0KcC5Nc29MaXN0UGFyYWdyYXBoLCBsaS5Nc29MaXN0UGFyYWdyYXBoLCBkaXYu
TXNvTGlzdFBhcmFncmFwaA0KCXttc28tc3R5bGUtcHJpb3JpdHk6MzQ7DQoJbWFyZ2luLXRvcDow
Y207DQoJbWFyZ2luLXJpZ2h0OjBjbTsNCgltYXJnaW4tYm90dG9tOjBjbTsNCgltYXJnaW4tbGVm
dDozNi4wcHQ7DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJ
Zm9udC1mYW1pbHk6Q2FsaWJyaTt9DQpzcGFuLkhUTUxQcmVmb3JtYXR0ZWRDaGFyDQoJe21zby1z
dHlsZS1uYW1lOiJIVE1MIFByZWZvcm1hdHRlZCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6
OTk7DQoJbXNvLXN0eWxlLWxpbms6IkhUTUwgUHJlZm9ybWF0dGVkIjsNCglmb250LWZhbWlseToi
Q291cmllciBOZXciO30NCnNwYW4uUGxhaW5UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiUGxh
aW4gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6
IlBsYWluIFRleHQiOw0KCWZvbnQtZmFtaWx5OkNhbGlicmk7fQ0Kc3Bhbi5CYWxsb29uVGV4dENo
YXINCgl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJp
b3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6IkJhbGxvb24gVGV4dCI7DQoJZm9udC1mYW1pbHk6
VGFob21hO30NCnAubXNvbm9ybWFsMCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7
bXNvLXN0eWxlLW5hbWU6bXNvbm9ybWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1h
cmdpbi1yaWdodDowY207DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxl
ZnQ6MGNtOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21h
biI7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjUNCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9u
dC1mYW1pbHk6QXJpYWw7DQoJY29sb3I6d2luZG93dGV4dDsNCglmb250LXdlaWdodDpub3JtYWw7
DQoJZm9udC1zdHlsZTpub3JtYWw7DQoJdGV4dC1kZWNvcmF0aW9uOm5vbmUgbm9uZTt9DQpzcGFu
LkVtYWlsU3R5bGUyNg0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbDsNCglmb250LWZhbWlseTpD
YWxpYnJpOw0KCWNvbG9yOndpbmRvd3RleHQ7fQ0Kc3Bhbi5FbWFpbFN0eWxlMjcNCgl7bXNvLXN0
eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgljb2xvcjojMUY0OTdE
O30NCnNwYW4uRW1haWxTdHlsZTI4DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOw0KCWZvbnQt
ZmFtaWx5OkNhbGlicmk7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkVtYWlsU3R5bGUyOQ0K
CXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseTpDYWxpYnJpOw0K
CWNvbG9yOndpbmRvd3RleHQ7fQ0Kc3Bhbi5tc29JbnMNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0
LW9ubHk7DQoJbXNvLXN0eWxlLW5hbWU6IiI7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsN
Cgljb2xvcjp0ZWFsO30NCi5Nc29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1v
bmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6NjEy
LjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgNzIuMHB0IDcyLjBwdCA3Mi4wcHQ7fQ0KZGl2
LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPg0KPC9oZWFk
Pg0KPGJvZHkgYmdjb2xvcj0id2hpdGUiIGxhbmc9IkVOLUdCIiBsaW5rPSJibHVlIiB2bGluaz0i
cHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0ibXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkkgYWxzbyB2b3RlIGZv
ciBtYXhpbWl6aW5nIGZvcndhcmRpbmcgYmFzZWQgb24gY3VzdG9tZXIgaW5wdXQuIEFsdGhvdWdo
IEkgYWdyZWUgd2Ugd2FudCB0byBhdm9pZCBTSUQgY29uZmxpY3RzLCBpdCBpcyBnb2luZyB0byBo
YXBwZW4gYW5kIHdlIG5lZWQgdG8gbWluaW1pemUgdGhlIGltcGxpY2F0aW9ucyBpbiB0aGUgbmV0
d29yay48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0ibXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPkxpZmUgaXMgbm90IGVhc3k8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0ibXNvLWZh
cmVhc3QtbGFuZ3VhZ2U6RU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXYg
c3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5n
OjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPjxzcGFuIHN0eWxl
PSJjb2xvcjpibGFjayI+RnJvbTogPC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2si
PnNwcmluZyAmbHQ7c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmcmZ3Q7IG9uIGJlaGFsZiBvZiBHdW50
ZXIgVkFOIERFIFZFTERFICZsdDtndW50ZXIudmFuX2RlX3ZlbGRlQG5va2lhLmNvbSZndDs8YnI+
DQo8Yj5EYXRlOiA8L2I+U2F0dXJkYXksIDEwIERlY2VtYmVyIDIwMTYgYXQgMDc6Mjk8YnI+DQo8
Yj5UbzogPC9iPiZxdW90O0xlcyBHaW5zYmVyZyAoZ2luc2JlcmcpJnF1b3Q7ICZsdDtnaW5zYmVy
Z0BjaXNjby5jb20mZ3Q7LCAmcXVvdDtzcHJpbmdAaWV0Zi5vcmcmcXVvdDsgJmx0O3NwcmluZ0Bp
ZXRmLm9yZyZndDs8YnI+DQo8Yj5TdWJqZWN0OiA8L2I+UmU6IFtzcHJpbmddIFNJRCBDb25mbGlj
dCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWw8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMi4wcHQ7Y29sb3I6YmxhY2siPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv
dDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwv
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9Im1zby1mYXJlYXN0LWxhbmd1
YWdlOkVOLVVTIj5JbmxpbmU6IEdWJmd0Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJtc28tZmFyZWFzdC1sYW5ndWFnZTpFTi1VUyI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVy
LXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5Gcm9tOiA8L3Nw
YW4+PC9iPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+JnF1b3Q7TGVzIEdpbnNiZXJnIChnaW5z
YmVyZykmcXVvdDsgJmx0O2dpbnNiZXJnQGNpc2NvLmNvbSZndDs8YnI+DQo8Yj5EYXRlOiA8L2I+
RnJpZGF5LCA5IERlY2VtYmVyIDIwMTYgYXQgMjI6NDM8YnI+DQo8Yj5UbzogPC9iPiZxdW90O1Zh
biBEZSBWZWxkZSwgR3VudGVyIChOb2tpYSAtIEJFKSZxdW90OyAmbHQ7Z3VudGVyLnZhbl9kZV92
ZWxkZUBub2tpYS5jb20mZ3Q7LCAmcXVvdDtzcHJpbmdAaWV0Zi5vcmcmcXVvdDsgJmx0O3Nwcmlu
Z0BpZXRmLm9yZyZndDs8YnI+DQo8Yj5TdWJqZWN0OiA8L2I+UkU6IFtzcHJpbmddIFNJRCBDb25m
bGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWw8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1m
YW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjoj
MUY0OTdEIj5HdW50ZXIg4oCTPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5J
dCBpcyBhIG1pc3VuZGVyc3RhbmRpbmcgdG8gdGhpbmsgdGhhdCBjb25mbGljdCByZXNvbHV0aW9u
IG9mIEFOWSBGTEFWT1IgYWZmZWN0cyB0aGUgYmVzdCBwYXRoIHNlbGVjdGlvbi9pbnN0YWxsYXRp
b24uIFRoaXMgaXMgc2ltcGx5IG5vdCB0aGUgY2FzZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9
ImNvbG9yOiMxRjQ5N0QiPkdWJmd0OyBJIGtub3cuIEkgd2FzIGp1c3QgbWFraW5nIHRoZSBjb21w
YXJpc29uIHdpdGggcm91dGluZywgYXMgdGhlcmUgdGhlIG92ZXJsYXBwaW5nIHNwYWNlIGlzIGNh
cnZlZCB1cCBhcyBzb2x1dGlvbi48L3NwYW4+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+V2UgYXJlIHRhbGtpbmcgYWJvdXQgYW4gTVBMUyBm
b3J3YXJkaW5nIHBsYW5lIHdoaWNoIHVzZXMgbGFiZWxzIHdoaWNoIGFyZSBnbG9iYWxseSBzY29w
ZWQuIChUaGUgZmFjdCB0aGF0IHRoZSBsYWJlbCBpcyByZXByZXNlbnRlZCBhcyBhbiBpbmRleCBp
bnRvIGEgcm91dGVyIHNwZWNpZmljIFNSR0IgaXMgbm90IHJlbGV2YW50KS4NCjwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0
OTdEIj5JZiB3ZSBoYXZlIGEgY29uZmxpY3QgdGhlbiBhIGdpdmVuIGxhYmVsIGNhbiBiZSBhc3Nv
Y2lhdGVkIHdpdGggbXVsdGlwbGUgcHJlZml4ZXMg4oCTIGhlcmUgaXMgb25lIGV4YW1wbGU6PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNv
bG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4xLjEuMS4xLzMyIGluZGV4IDEwMDwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJj
b2xvcjojMUY0OTdEIj4yLjIuMi4yLzMyIGluZGV4IDEwMDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Y29sb3I6IzFGNDk3RCI+SWYgSSBjaG9vc2UgdG8gdXNlIGluZGV4IDEwMCBmb3IgMS4xLjEuMS8z
MiDigJMgYnV0IG15IG5laWdoYm9yIGNob29zZXMgdG8gdXNlIGluZGV4IDEwMCBmb3IgMi4yLjIu
Mi8zMiDigJMgdGhlbiB3aGVuIEkgZW5jYXBzdWxhdGUgYSBwYWNrZXQgYWRkcmVzc2VkIHRvIDEu
MS4xLjEgYW5kIGZvcndhcmQgaXQgdG8gbXkgbmVpZ2hib3IgaXQgd2lsbCBnZXQgc2VudCBpbg0K
IHRoZSBkaXJlY3Rpb24gb2YgMi4yLjIuMi4gPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPlRoaXMgaXMgdGhlIHBy
b2JsZW0gY29uZmxpY3QgcmVzb2x1dGlvbiBpcyB0cnlpbmcgdG8gYWRkcmVzcy48L3NwYW4+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFG
NDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkdWJmd0OyBJIHVuZGVyc3Rvb2QgdGhhdCA8
L3NwYW4+DQo8L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBz
dHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPkFzIHJlZ2FyZHMg4oCc
aWdub3JlIG92ZXJsYXAgb25seeKAnSBjb21wbGV4aXR5LCBJIHJlcGVhdCBteSBlYXJsaWVyIHJl
cGx5IHRvIEJydW5vOjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+4oCcPGk+
SWYgeW91IHdhbnQgdG8gYXJndWUgdGhhdCB0aGVzZSBhcmUgc29sdmFibGUgcHJvYmxlbXMgSSB3
b27igJl0IGRpc2FncmVlIHdpdGggeW91IOKAkyBpdCBpcyBhIHF1ZXN0aW9uIG9mIHdoZXJlIHdl
IHdhbnQgdG8gcHV0IG91ciB0aW1lIGFuZCBlZmZvcnQuIEEgbnVtYmVyIG9mIGZvbGtzIGFyZSBj
b21tZW50aW5nIHRoYXQgdGhleSBwcmVmZXIgdG8gZm9jdXMgb24NCiBmaXhpbmcgdGhlIGNvbmZp
Z3VyYXRpb24gYW5kIG5vdCBpbnZlc3QgJm5ic3A7dGltZSBpbiB2YWxpZGF0aW5nIHRoYXQgY29u
ZmxpY3QgcmVzb2x1dGlvbiBpcyBpbXBsZW1lbnRlZCBpbiBhbiBpbnRlcm9wZXJhYmxlIHdheS4g
QXMgd2UgKHRoZSBhdXRob3JzKSBoYXZlIHN0YXRlZCBmcm9tIHRoZSBiZWdpbm5pbmcsIHdlIGJl
bGlldmUgdGhlIGVtcGhhc2lzIHNob3VsZCBiZSBvbiBkZXRlY3RpbmcgYW5kIHJlcG9ydGluZyB0
aGUgY29uZmxpY3RzIOKAkyBub3QNCiBzcGVuZGluZyBjeWNsZXMgaW1wbGVtZW50aW5nIHRoZSBt
b3N0IHJvYnVzdCBtZWFucyBvZiB0cnlpbmcgdG8gb3BlcmF0ZSBvcHRpbWFsbHkgd2hpbGUgdGhl
IG1pc2NvbmZpZ3VyYXRpb24gZXhpc3RzLuKAnTwvaT48L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5i
c3A7PC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
Yj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+R1YmZ3Q7IExvb2tzIGxpa2UgdGhlcmUgYXJl
IGFsc28gYSBzaWduaWZpY2FudCBudW1iZXIgb2YgcGVvcGxlIGNoYWxsZW5naW5nIHRoZSBpbXBy
ZXNzaW9uIHRoYXQgJnF1b3Q7aWdub3JlIG92ZXJsYXAgb25seSZxdW90OyBwb2xpY3kgdG8gYmUg
b2JzY2VuZWx5IGNvbXBsZXguIEl0IGlzIHRoZSB0ZWNobmljYWxseSBzdXBlcmlvciBzb2x1dGlv
biwgaGVuY2UgbXkgYmVsaWV2ZQ0KIHRvIGtlZXAgcHJvcG9zYWwgYXMg4oCdaWdub3JlIG92ZXJs
YXAgb25seeKAnS4gSWYgeW91IG5lZWQgaGVscCB0byBjcmVhdGUgdGhlIHRleHQgaWYgaXQgaW5k
ZWVkIGlzIHBlcmNlaXZlZCBhcyBvYnNjZW5lbHkgY29tcGxleCBieSB5b3UsIHRoZW4gSeKAmW0g
c3VyZSB0aGVyZSBhcmUgcGVvcGxlIG9uIHRoZSBsaXN0IHdpbGxpbmcgdG8gc3RlcCB1cCBmb3Ig
aGVscC4NCjwvc3Bhbj48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkcvPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyBMZXM8L3NwYW4+
PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxl
PSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1
ZSAxLjVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJi
b3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAw
Y20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEwLjBwdDtmb250LWZhbWlseTpUYWhvbWEiPkZyb206PC9zcGFuPjwvYj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTpUYWhvbWEiPiBWYW4gRGUgVmVsZGUsIEd1
bnRlciAoTm9raWEgLSBCRSkgW21haWx0bzpndW50ZXIudmFuX2RlX3ZlbGRlQG5va2lhLmNvbV0N
Cjxicj4NCjxiPlNlbnQ6PC9iPiBGcmlkYXksIERlY2VtYmVyIDA5LCAyMDE2IDEyOjExIFBNPGJy
Pg0KPGI+VG86PC9iPiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKTsgc3ByaW5nQGlldGYub3JnPGJy
Pg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbc3ByaW5nXSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjog
QSBTaW1wbGVyIFByb3Bvc2FsPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj5UaGUgbWV0aG9kIHRvIOKAnG1heGlt
aXplIGZvcndhcmRpbmfigJ0gYXMgbWVudGlvbmVkIGluIHRoZSBkcmFmdCBzZWVtcyB0byBiZSBp
biBjb25zaXN0ZW50IGxvZ2ljIHdpdGggaG93IHRoZSBjdXJyZW50DQo8L3NwYW4+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPnVu
aWNhc3Qgcm91dGluZyB0YWJsZSBpcyBidWlsZC4gRm9yIHVuaWNhc3Qgcm91dGVzIHRoZSByb3V0
ZSBzZWxlY3RlZCBmb3IgYSBnaXZlbiBJUCBkZXN0aW5hdGlvbiBhZGRyZXNzIGlzIGEgZnVuY3Rp
b24ocHJlZml4LWxlbmd0aC9hZG1pbi1kaXN0YW5jZSkuDQo8L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPlRoaXMgaXMg
ZG9uZSBmb3IgYmV0dGVyIGFkZHJlc3Mgc3BhY2UgbWFuYWdlbWVudCwgYW5kIHRvIGhhdmUgcHJl
ZGljdGFibGUgcm91dGluZyBpbmNhc2Ugb2YgY2xhc2hlcyBpbiB0aGUgcm91dGluZyB0YWJsZS4g
SGVuY2UsIHRvIG1lLCBpdCBzZWVtcyBvbmx5IG5hdHVyYWwgdG8NCjwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+dG8g
a2VlcCBwcm9tb3RpbmcgJnF1b3Q7aWdub3JlIG92ZXJsYXAgb25seSZxdW90OyBhcyByZXN1bHQg
YXMgaXQgbWltaWNzIHRyYWRpdGlvbmFsIHVuaWNhc3Qgcm91dGluZyB0YWJsZSBjb25zdHJ1Y3Rz
Lg0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPlRoZSBhbHRlcm5hdGl2ZSBzb3Vu
ZHMgYSBiaXQgbGlrZSBzdGVwcGluZyBiYWNrIHRvIENsYXNzIEEvQi9DIGFkZHJlc3NlcyBieSBq
dXN0IGF2b2lkaW5nIHRoZSBwcm9ibGVtIGFuZCBzaWduaWZpY2FudGx5IGltcGFjdCBwb3RlbnRp
YWwgY2xhc2ggc2NlbmFyaW9zIGFzIGNvbnNlcXVlbmNlIGR1ZSB0byBvdmVyc2ltcGxpZmljYXRp
b24uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImNvbG9yOmJsYWNrIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPkZpbmFsbHksIEkgZG8gbm90IHVu
ZGVyc3RhbmQgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhlIHN1ZGRlbiB3b3JyeSByZWdhcmRpbmcg
JnF1b3Q7aWdub3JlIG92ZXJsYXAgb25seSZxdW90OyBwb2xpY3kgdG8gYmUgb2JzY2VuZWx5IGNv
bXBsZXguIElmIEkgdW5kZXJzdGFuZCBJRVRGIHByb2NlZHVyZXMgd2VsbCwgYW5kIGlmDQo8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29s
b3I6YmxhY2siPiZuYnNwO+KAnGlnbm9yZSBvdmVybGFwIG9ubHnigJ0gaXMgZG9jdW1lbnRlZCBw
cm9wZXJseSwganVzdCBsaWtlIGFueSBzdGFuZGFyZCB0cmFjayBSRkMgc2hvdWxkIGJlLCB0aGVu
IGhvdyBhcmUgaW5jb21wYXRpYmxlIGJlaGF2aW91cnMgcG9zc2libGU/IFNob3VsZCB3ZSBub3Qg
dHJ5IHRvIGFyY2hpdGVjdCBmb3INCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+dGhlIEJFU1QgcmVhbGlzdGljIGZ1
dHVyZSBwcm9vZiBzb2x1dGlvbiwgYW5kIG5vdCBmb3IgdGhlIGVhc2llc3QgbGVzcyBvcHRpbWFs
IHNvbHV0aW9uLiAoS2VlcCBpbiBtaW5kIHRoYXQgYXQgc29tZSBwb2ludCBpbiB0aW1lIHBlb3Bs
ZSBiZWxpZXZlZCB0aGF0IGRvaW5nIHJvdXRpbmcgaW4gdGhlDQo8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPnN0eWxl
IG9mIENsYXNzIEEvQi9DIHdhcyB0aGUgZnV0dXJlIGFsc28sIGFuZCBzZWUgd2hlcmUgd2UgYXJl
IHJpZ2h0IG5vdykuDQo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjpibGFjayI+Ry8gPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9y
OmJsYWNrIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQt
ZmFtaWx5OkFyaWFsIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8ZGl2IHN0eWxlPSJi
b3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGNtIDBjbSAw
Y20gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29s
aWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtIj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxiPkZyb206PC9iPiBzcHJpbmcgWzxhIGhyZWY9Im1haWx0bzpzcHJpbmctYm91
bmNlc0BpZXRmLm9yZyI+bWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYub3JnPC9hPl0NCjxiPk9u
IEJlaGFsZiBPZiA8L2I+TGVzIEdpbnNiZXJnIChnaW5zYmVyZyk8YnI+DQo8Yj5TZW50OjwvYj4g
U3VuZGF5LCBEZWNlbWJlciAwNCwgMjAxNiA3OjA0IFBNPGJyPg0KPGI+VG86PC9iPiA8YSBocmVm
PSJtYWlsdG86c3ByaW5nQGlldGYub3JnIj5zcHJpbmdAaWV0Zi5vcmc8L2E+PGJyPg0KPGI+U3Vi
amVjdDo8L2I+IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJv
cG9zYWw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPldoZW4gdGhl
IHByb2JsZW0gYWRkcmVzc2VkIGJ5IGRyYWZ0LWlldGYtc3ByaW5nLWNvbmZsaWN0LXJlc29sdXRp
b24gd2FzIGZpcnN0DQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPnBy
ZXNlbnRlZCBhdCBJRVRGIDk0LCB0aGUgYXV0aG9ycyBkZWZpbmVkIHRoZSBmb2xsb3dpbmcgcHJp
b3JpdGllczo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+MSlEZXRlY3QgdGhlIHByb2Js
ZW08bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjIpUmVwb3J0IHRoZSBw
cm9ibGVtPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5UaGlzIGFsZXJ0
cyB0aGUgbmV0d29yayBvcGVyYXRvciB0byB0aGUgZXhpc3RlbmNlIG9mIGEgY29uZmxpY3Qgc28g
dGhhdDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+dGhlIGNvbmZpZ3Vy
YXRpb24gZXJyb3IgY2FuIGJlIGNvcnJlY3RlZC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPjMpRGVmaW5lIGNvbnNpc3RlbnQgYmVoYXZpb3I8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPlRoaXMgYXZvaWRzIG1pcy1mb3J3YXJkaW5nIHdoaWxl
IHRoZSBjb25mbGljdCBleGlzdHMuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij40KURvbuKAmXQgb3ZlcmVuZ2luZWVyIHRoZSBzb2x1dGlvbjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+R2l2ZW4gdGhhdCBpdCBpcyBpbXBvc3NpYmxlIHRvIGtu
b3cgd2hpY2ggb2YgdGhlIGNvbmZsaWN0aW5nIGVudHJpZXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29QbGFpblRleHQiPmlzIHRoZSBjb3JyZWN0IG9uZSwgd2Ugc2hvdWxkIGFwcGx5IGEg
c2ltcGxlIGFsZ29yaXRobSB0byByZXNvbHZlIHRoZSBjb25mbGljdC48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjUpQWdyZWUgb24gdGhlIHJlc29sdXRpb24gYmVoYXZp
b3I8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+VGhlIHJlc29sdXRpb24gYmVoYXZpb3Ig
d2FzIGRlbGliZXJhdGVseSB0aGUgbGFzdCBwb2ludCBiZWNhdXNlIGl0IHdhcw0KPG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5jb25zaWRlcmVkIHRoZSBsZWFzdCBpbXBv
cnRhbnQuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPklucHV0IHdhcyByZWNlaXZlZCBv
dmVyIHRoZSBwYXN0IHllYXIgd2hpY2ggZW1waGFzaXplZCB0aGUgaW1wb3J0YW5jZSBvZjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+dHJ5aW5nIHRvICZxdW90O21heGlt
aXplIGZvcndhcmRpbmcmcXVvdDsgaW4gdGhlIHByZXNlbmNlIG9mIGNvbmZsaWN0cy4gU3Vic2Vx
dWVudDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+cmV2aXNpb25zIG9m
IHRoZSBkcmFmdCBoYXZlIHRyaWVkIHRvIGFkZHJlc3MgdGhpcyBjb25jZXJuLiBIb3dldmVyIHRo
ZSBhdXRob3JzDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPmhhdmUg
cmVwZWF0ZWRseSBzdHJlc3NlZCB0aGF0IHRoZSBzb2x1dGlvbiBiZWluZyBwcm9wb3NlZA0KPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4oJnF1b3Q7aWdub3JlIG92ZXJs
YXAgb25seSZxdW90Oykgd2FzIG1vcmUgY29tcGxleCB0aGFuIG90aGVyIG9mZmVyZWQgYWx0ZXJu
YXRpdmVzIGFuZA0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij53b3Vs
ZCBiZSBtb3JlIGRpZmZpY3VsdCB0byBndWFyYW50ZWUgaW50ZXJvcGVyYWJpbGl0eSBiZWNhdXNl
IHN1YnRsZQ0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5kaWZmZXJl
bmNlcyBpbiBhbiBpbXBsZW1lbnRhdGlvbiBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHRz
LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5BdCBJRVRGOTcgc2lnbmlmaWNhbnQgZmVl
ZGJhY2sgd2FzIHJlY2VpdmVkIHByZWZlcnJpbmcgYSBzaW1wbGVyIHNvbHV0aW9uIHRvDQo8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPnRoZSBwcm9ibGVtLiBUaGUgYXV0
aG9ycyBhcmUgdmVyeSBzeW1wYXRoZXRpYyB0byB0aGlzIGZlZWRiYWNrIGFuZCB0aGVyZWZvcmUN
CjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+YXJlIHByb3Bvc2luZyBh
IHNvbHV0aW9uIGJhc2VkIG9uIHdoYXQgdGhlIGRyYWZ0IGRlZmluZXMgYXMgdGhlICZxdW90O0ln
bm9yZSZxdW90Ow0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5wb2xp
Y3kgLSB3aGVyZSBhbGwgZW50cmllcyB3aGljaCBhcmUgaW4gY29uZmxpY3QgYXJlIGlnbm9yZWQu
IFdlIGJlbGlldmUgdGhpcw0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij5pcyBmYXIgbW9yZSBkZXNpcmFibGUgYW5kIGFsaWducyB3aXRoIHRoZSBwcmlvcml0aWVzIGxp
c3RlZCBhYm92ZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNw
OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+V2Ugb3V0bGluZSB0aGUg
cHJvcG9zZWQgc29sdXRpb24gYmVsb3cgYW5kIHdvdWxkIGxpa2UgdG8gcmVjZWl2ZSBmZWVkYmFj
ayBmcm9tDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPnRoZSBXRyBi
ZWZvcmUgcHVibGlzaGluZyB0aGUgbmV4dCByZXZpc2lvbiBvZiB0aGUgZHJhZnQuPG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOyZuYnNwOyBMZXMgKG9uIGJlaGFsZiBvZiB0aGUg
YXV0aG9ycyk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+TmV3IFByb3Bvc2FsPC9p
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+Jm5ic3A7PC9pPjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+SW4gdGhlIGxhdGVzdCBy
ZXZpc2lvbiBvZiB0aGUgZHJhZnQgJnF1b3Q7U1JNUyBQcmVmZXJlbmNlJnF1b3Q7IHdhcyBpbnRy
b2R1Y2VkLiBUaGlzDQo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij48aT5wcm92aWRlcyBhIHdheSBmb3IgYSBudW1lcmljYWwgcHJlZmVyZW5jZSB0byBiZSBleHBs
aWNpdGx5IGFzc29jaWF0ZWQgd2l0aCBhbg0KPC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb1BsYWluVGV4dCI+PGk+U1JNUyBhZHZlcnRpc2VtZW50LiBVc2luZyB0aGlzIGFuIG9wZXJh
dG9yIGNhbiBpbmRpY2F0ZSB3aGljaCBhZHZlcnRpc2VtZW50IGlzDQo8L2k+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48aT50byBiZSBwcmVmZXJyZWQgd2hlbiBhIGNv
bmZsaWN0IGlzIHByZXNlbnQuIFRoZSBhdXRob3JzIHRoaW5rIHRoaXMgaXMgYSB1c2VmdWwNCjwv
aT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxpPmFkZGl0aW9uIGFu
ZCB3ZSB0aGVyZWZvcmUgd2FudCB0byBpbmNsdWRlIHRoaXMgaW4gdGhlIG5ldyBzb2x1dGlvbi48
L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48aT4mbmJzcDs8L2k+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48aT5UaGUgbmV3IHByZWZl
cmVuY2UgcnVsZSB1c2VkIHRvIHJlc29sdmUgY29uZmxpY3RzIGlzIGRlZmluZWQgYXMgZm9sbG93
czo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48aT4mbmJzcDs8
L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT5BIGdpdmVu
IG1hcHBpbmcgZW50cnkgaXMgY29tcGFyZWQgYWdhaW5zdCBhbGwgbWFwcGluZyBlbnRyaWVzIGlu
IHRoZSBkYXRhYmFzZQ0KPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjxiPjxpPndpdGggYSBwcmVmZXJlbmNlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBp
dHMgb3duLiBJZiB0aGVyZSBpcyBhIGNvbmZsaWN0LA0KPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPnRoZSBtYXBwaW5nIGVudHJ5IHdpdGggbG93
ZXIgcHJlZmVyZW5jZSBpcyBpZ25vcmVkLiBJZiB0d28gbWFwcGluZyBlbnRyaWVzIGFyZTwvaT48
L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT5pbiBjb25m
bGljdCBhbmQgaGF2ZSBlcXVhbCBwcmVmZXJlbmNlIHRoZW4gYm90aCBlbnRyaWVzIGFyZSBpZ25v
cmVkLjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48aT4m
bmJzcDs8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48aT5JbXBs
ZW1lbnRhdGlvbiBvZiB0aGlzIHBvbGljeSBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6PC9pPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGk+Jm5ic3A7PC9pPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+U3RlcCAxOiBXaXRoaW4gYSBz
aW5nbGUgYWRkcmVzcy1mYW1pbHkvYWxnb3JpdGhtL3RvcG9sb2d5IHNvcnQgZW50cmllcw0KPC9p
PjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjxiPjxpPmJhc2Vk
IG9uIHByZWZlcmVuY2UgPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjxiPjxpPlN0ZXAgMjogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHByZWZlcmVuY2Ug
ZW50cmllcywgcmVzb2x2ZSBwcmVmaXggY29uZmxpY3RzDQo8L2k+PC9iPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+dXNpbmcgdGhlIGFib3ZlIHByZWZlcmVu
Y2UgcnVsZS4gVGhlIG91dHB1dCBpcyBhbiBhY3RpdmUgcG9saWN5IHBlciB0b3BvbG9neS48L2k+
PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+U3RlcCAz
OiBUYWtlIHRoZSBvdXRwdXRzIGZyb20gU3RlcCAyIGFuZCBhZ2FpbiBzb3J0IHRoZW0gYnkgcHJl
ZmVyZW5jZQ0KPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQi
PjxiPjxpPlN0ZXAgNDogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHByZWZlcmVuY2UgZW50cmll
cywgcmVzb2x2ZSBTSUQgY29uZmxpY3RzDQo8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+dXNpbmcgdGhlIGFib3ZlIHByZWZlcmVuY2UgcnVsZTwv
aT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij48Yj48aT4mbmJz
cDs8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+PGI+PGk+
VGhlIG91dHB1dCBmcm9tIFN0ZXAgNCBpcyB0aGVuIHRoZSBjdXJyZW50IEFjdGl2ZSBQb2xpY3ku
PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+SGVyZSBhcmUgYSBmZXcgZXhh
bXBsZXMuIEVhY2ggbWFwcGluZyBlbnRyeSBpcyByZXByZXNlbnRlZCBieSB0aGUgdHVwbGU6PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4oUHJlZmVyZW5jZSwgUHJlZml4
L21hc2sgSW5kZXggcmFuZ2UgJmx0OyMmZ3Q7KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij5FeGFtcGxlIDE6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjEuICgxNTAsIDEuMS4x
LjEvMzIgMTAwIHJhbmdlIDEwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPjIuICgxNDksIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAyMDApPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4zLiAoMTQ4LCAxLjEuMS4xMDEvMzIgNTAwIHJhbmdlIDEw
KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5FbnRyeSAzIGNvbmZsaWN0cyB3aXRoIGVu
dHJ5IDIsIGl0IGlzIGlnbm9yZWQuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij5FbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDEsIGl0IGlzIGlnbm9yZWQuPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5BY3RpdmUgcG9saWN5OjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4oMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSAxMDApPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkV4YW1wbGUgMjo8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+MS4gKDE1MCwgMS4xLjEuMS8zMiAxMDAgcmFuZ2UgMTAwKTxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Mi4gKDE1MCwgMS4xLjEuMTAvMzIgMjAwIHJh
bmdlIDIwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjMuICgxNTAs
IDEuMS4xLjEwMS8zMiA1MDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
UGxhaW5UZXh0Ij40LiAoMTUwLCAyLjIuMi4xLzMyIDEwMDAgcmFuZ2UgMSk8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb1BsYWluVGV4dCI+RW50cnkgMSBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBib3RoIGFy
ZSBtYXJrZWQgYXMgaWdub3JlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4
dCI+RW50cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAyLiBJdCBpcyBtYXJrZWQgYXMgaWdub3Jl
LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+RW50cnkgNCBoYXMgbm8g
Y29uZmxpY3RzIHdpdGggYW55IGVudHJpZXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Q
bGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+
QWN0aXZlIHBvbGljeTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPigx
NTAsIDIuMi4yLjEvMzIgMTAwMCByYW5nZSAxKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij5FeGFtcGxlIDM6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjEuICgxNTAsIDEuMS4x
LjEvMzIgMTAwIHJhbmdlIDUwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRl
eHQiPjIuICgxNTAsIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAyMDApPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4zLiAoMTUwLCAxLjEuMS4xMDEvMzIgNTAwIHJhbmdlIDEw
KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+NC4gKDE1MCwgMi4yLjIu
MS8zMiAxMDAwIHJhbmdlIDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkVudHJ5IDEg
Y29uZmxpY3RzIHdpdGggZW50cmllcyAyLCAzLCBhbmQmbmJzcDsgNC4gQWxsIGVudHJpZXMgYXJl
IG1hcmtlZCBpZ25vcmUuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkFjdGl2ZSBwb2xp
Y3k6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5FbXB0eTxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij5FeGFtcGxlIDQ6PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFp
blRleHQiPjEuICgxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdlIDEwKTxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Mi4gKDE0OSwgMS4xLjEuMTAvMzIgMjAwIHJhbmdlIDMw
MCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPjMuICgxNDksIDEuMS4x
LjEwMS8zMiA1MDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5U
ZXh0Ij40LiAoMTQ4LCAyLjIuMi4xLzMyIDEwMDAgcmFuZ2UgMSk8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b1BsYWluVGV4dCI+RW50cnkgNCBjb25mbGljdHMgd2l0aCBlbnRyeSAyLiBJdCBpcyBtYXJrZWQg
aWdub3JlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+RW50cnkgMiBj
b25mbGljdHMgd2l0aCBlbnRyeSAzLiBFbnRyaWVzIDIgYW5kIDMgYXJlIG1hcmtlZCBpZ25vcmUu
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPkFjdGl2ZSBwb2xpY3k6PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4oMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSAx
MCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb1BsYWluVGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvUGxhaW5UZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29QbGFpblRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_EA22FB190AC448CAA2B838FDC49364A0nokiacom_--


From nobody Mon Dec 12 03:13:15 2016
Return-Path: <prvs=14725c631=Ruediger.Geib@telekom.de>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CD1DB1295EA for <spring@ietfa.amsl.com>; Mon, 12 Dec 2016 03:13:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.216
X-Spam-Level: 
X-Spam-Status: No, score=-7.216 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=telekom.de
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id v_KaK8NR7Mnx for <spring@ietfa.amsl.com>; Mon, 12 Dec 2016 03:13:06 -0800 (PST)
Received: from MAILOUT31.telekom.de (MAILOUT31.telekom.de [80.149.113.193]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5D34D1295E2 for <spring@ietf.org>; Mon, 12 Dec 2016 03:13:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telekom.de; i=@telekom.de; q=dns/txt; s=dtag1; t=1481541186; x=1513077186; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=m/L/7LELBoaylMJ90u7UNziFFGEcEO/SyNbLZQXKMIk=; b=4VO+Tp150zQJeg17Ke6a3U7L49SlT2T49Mbhvm2j4kGE34wUyhhp9CmL vSQu3FJZMKbhmligWKTspKQV4EttDhInStcA84nSDOgSSz6UU/n5AYfE2 bjZPZJMfVrIxU53C1dyzJ5SSSvNd8Oy8FJKzIa01ev7gbi1btdoowK8k/ R1BeBNlSlKd2q8fjBEl1q+Oac8zK+CqGQuQiQ9z/cYwMguroHfCzmPYxT Y2fMiMxiQ8ZyZcVfvLcHc4P/rMeF56Iv5wlrlUtpctSWPPkGwLbMk9p07 NSdLmSVZh99qPG/WZ1IzKuJjvHFvhrAm0VBBQvIk5zBnPu8gQabDzdAk8 A==;
Received: from q4de8psa169.blf.telekom.de ([10.151.13.200]) by MAILOUT31.telekom.de with ESMTP/TLS/DHE-RSA-AES128-SHA; 12 Dec 2016 12:13:03 +0100
X-IronPort-AV: E=Sophos;i="5.33,336,1477954800"; d="scan'208";a="1217089369"
Received: from he101653.emea1.cds.t-internal.com ([10.134.226.13]) by q4de8psazkj.blf.telekom.de with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Dec 2016 12:12:34 +0100
Received: from HE101653.emea1.cds.t-internal.com (10.134.226.13) by HE101653.emea1.cds.t-internal.com (10.134.226.13) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Mon, 12 Dec 2016 12:12:34 +0100
Received: from HE101653.emea1.cds.t-internal.com ([fe80::8954:80af:2020:572c]) by HE101653.emea1.cds.t-internal.com ([fe80::8954:80af:2020:572c%27]) with mapi id 15.00.1236.000; Mon, 12 Dec 2016 12:12:34 +0100
From: <Ruediger.Geib@telekom.de>
To: <martin.vigoureux@nokia.com>
Thread-Topic: [spring] WG LC for draft-ietf-spring-segment-routing
Thread-Index: AQHST8ae16LnAKaO50qiZpWi+19hsKEEMIHg
Date: Mon, 12 Dec 2016 11:12:34 +0000
Message-ID: <f1ff54dc13e346239e8e24652590ca90@HE101653.emea1.cds.t-internal.com>
References: <80b3461b-3f25-803e-0ac9-971a3d8259b8@nokia.com> <F1472C7C-A8C3-4128-9E46-16C147109F1E@cisco.com>
In-Reply-To: <F1472C7C-A8C3-4128-9E46-16C147109F1E@cisco.com>
Accept-Language: en-US
Content-Language: de-DE
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.157.172.89]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/b-bR3bNkhMz78_O43NroKS-bfEE>
Cc: spring@ietf.org
Subject: [spring]  WG LC for draft-ietf-spring-segment-routing
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Dec 2016 11:13:14 -0000

Hi Martin,

I think this draft should be made Proposed Standard.

Regards, Ruediger

--------------------------------------

From: Martin Vigoureux <martin.vigoureux@nokia.com>
Subject: Re: [spring] WG LC for draft-ietf-spring-segment-routing
Date: December 6, 2016 at 2:34:14 PM GMT+1
To: <spring@ietf.org>

WG,

this is a reminder, please express your opinion regarding this WG LC.

Thank you=20


-m


>> Hello WG,
>>=20
>> this e-mail initiates a two-week WG LC for=20
>> draft-ietf-spring-segment-routing [1].
>>=20
>> All authors have already replied to the IPR poll.
>> There is known IPR [2] on this document.
>>=20
>> Please read the latest version of the document and state whether or=20
>> not you support the submission of this document to the IESG as a=20
>> Proposed Standard.
>>=20
>> Please also express the comments you would have on this latest version.
>>=20
>> Your involvement in this step is very important so please take the=20
>> time to read and express your opinions on the list.
>>=20
>> Thank you
>>=20
>> M&B
>>=20
>> [1]=20
>> https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing/
>> [2]
>> https://datatracker.ietf.org/ipr/search/?submit=3Ddraft&id=3Ddraft-ietf-=
s
>> pring-segment-routing
>>=20
>>=20
>> _______________________________________________
>> spring mailing list
>> spring@ietf.org
>> https://www.ietf.org/mailman/listinfo/spring


From nobody Mon Dec 12 08:13:37 2016
Return-Path: <bruno.decraene@orange.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B56E5129CD7 for <spring@ietfa.amsl.com>; Mon, 12 Dec 2016 08:13:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.495
X-Spam-Level: 
X-Spam-Status: No, score=-5.495 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, RP_MATCHES_RCVD=-2.896, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P3QXhkwp0wdM for <spring@ietfa.amsl.com>; Mon, 12 Dec 2016 08:13:32 -0800 (PST)
Received: from relais-inet.orange.com (mta135.mail.business.static.orange.com [80.12.70.35]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A92FC129CA5 for <spring@ietf.org>; Mon, 12 Dec 2016 08:12:55 -0800 (PST)
Received: from opfednr00.francetelecom.fr (unknown [xx.xx.xx.64]) by opfednr27.francetelecom.fr (ESMTP service) with ESMTP id 3787BA04C6; Mon, 12 Dec 2016 17:12:54 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.18]) by opfednr00.francetelecom.fr (ESMTP service) with ESMTP id 050FB1A0082; Mon, 12 Dec 2016 17:12:54 +0100 (CET)
Received: from OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06]) by OPEXCLILM34.corporate.adroot.infra.ftgroup ([fe80::cba:56d0:a732:ef5a%19]) with mapi id 14.03.0319.002; Mon, 12 Dec 2016 17:12:53 +0100
From: <bruno.decraene@orange.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDdlkBwAA8oUZAAlSinoA==
Date: Mon, 12 Dec 2016 16:12:52 +0000
Message-ID: <5500_1481559174_584ECC86_5500_3055_38_53C29892C857584299CBF5D05346208A1ECC2691@OPEXCLILM21.corporate.adroot.infra.ftgroup>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <13659_1481278031_584A824F_13659_1413_1_53C29892C857584299CBF5D05346208A1ECBEDCF@OPEXCLILM21.corporate.adroot.infra.ftgroup> <dc0ee71a612d433dba6e6d73b274ec6f@XCH-ALN-001.cisco.com>
In-Reply-To: <dc0ee71a612d433dba6e6d73b274ec6f@XCH-ALN-001.cisco.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.168.234.1]
Content-Type: multipart/alternative; boundary="_000_53C29892C857584299CBF5D05346208A1ECC2691OPEXCLILM21corp_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/qVDofzPP0UTptyA7hNZydHtwEaQ>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Dec 2016 16:13:36 -0000

--_000_53C29892C857584299CBF5D05346208A1ECC2691OPEXCLILM21corp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Les,

On the complexity side, I have the feeling that a portion of this complexit=
y comes from editorial choices in the draft. And in particular that the tex=
t and concepts used for the per FEC policy could be simplified.

Indeed, what we need for a consistent behavior across all implementations, =
is to specify the behavior of the end result. We should not need to discuss=
 implementation internals.
A priori, the following text should be enough:

"In step 1, Prefix conflicts are resolved on a per FEC/IP prefix/Segment ba=
sis. For each FEC, the preferred SID is selected, as per the preference fun=
ction (e.g. best Preference field, then smallest SID)
                Note that following this step, each prefix covered by an IG=
P SID advertisement has exactly one SID.
In step 2, SID conflicts are resolved. For each SID, the preferred Prefix i=
s selected as per the preference function.
                Note that following this step, each SID has a single prefix=
. However some prefix may have no SID."

With the above text, there is no need for the draft to introduce generalize=
d mapping entries, nor to split original entries into multiple ranges, nor =
to clarify whether the info are to be taken from the original or derived en=
tries...

Then each implementation is free to choose its own data-structure and imple=
mentation details.
e.g one may split original entries into multiple ranges if this is your cho=
ice.
Another one may simply decompress the MS advertisement by adding the SID to=
 each prefix, as if it were coming from a prefixSID. (As the MS range is "e=
ssentially a compression scheme") so if its too complex to handle in its co=
mpress form, lets decompress).
e.g. after receiving the MS entry (128, 1.1.1.1/32 100 range 255), the SID =
100 (resp. 101...354) is added to the IP prefix 1.1.1.1 (resp. 1.1.1.2... 1=
.1.1.255)
Following this decompression, comparison is much more simple as there is no=
 more MS entries which are not directly comparable to prefix SID.
e.g. in the worst case, a prefix as a set of SID, and one is selected using=
 the preference function. A simple preference may be to select the highest =
Preference, and then the smallest SID to tie-brake.

In summary, having multiple advertisements for a routing entries and having=
 to select one, is not new in the routing space/area. In this case, the com=
plexity comes from the Mapping Server range, rather than the selection of o=
ne SID. So let's just decompress this Mapping Server range, and the problem=
 gets simpler and very similar to what we are used to in the routing space,=
 i.e. select the best route/path/entry


2) Preference function
For all policy except "ignore all", there is a need for a preference functi=
on. So this point is not a changing the complexity between a per advertisem=
ent policy (quarantine/new proposal) and a per FEC policy (e.g. ignore over=
lap)

Thanks,
--Bruno

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Friday, December 09, 2016 7:31 PM
To: DECRAENE Bruno IMT/OLN
Cc: spring@ietf.org
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Bruno -

Welcome back to the discussion. :)
Inline.

From: bruno.decraene@orange.com<mailto:bruno.decraene@orange.com> [mailto:b=
runo.decraene@orange.com]
Sent: Friday, December 09, 2016 2:07 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Hi Les,

As a individual contributor, please find below some clarification questions=
 [Bruno]

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Monday, December 05, 2016 1:04 AM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives and

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution to

the problem. The authors are very sympathetic to this feedback and therefore

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



[Bruno] In the draft, the "Ignore" policy (=A73.3.1) ignores all conflictin=
g entries.

In your below proposition, the policy seems to pick the most preferred entr=
y. This looks like more similar to the "Quarantine" policy proposed in the =
draft (=A73.3.2)

Am I missing something?



[Les:] At the time "Ignore" was introduced (over a year ago) the notion of =
"SRMS preference" did not exist - that was only added in the most recent ve=
rsion of the draft.

We (the authors) feel that this is a useful construct because:



1)It provides an explicit basis on which to choose between conflicting entr=
ies.

2)It is particularly useful when bringing up a new SRMS as it allows the ad=
vertised values to be verified before they are used.



So, your comment is correct in that there is now a preference algorithm in =
use - whereas with the original definition of "Ignore" there was no prefere=
nce algorithm. But the sole criteria of the preference rule is the explicit=
ly configured preference - none of the other criteria proposed for Quaranti=
ne are used - and in particular we do not make partial use of a mapping ent=
ry as is the case with "Ignore Overlap Only".



I am happy to modify the nomenclature - but the point of this thread is not=
 to replace a new draft revision - it is to get the sense of the WG before =
we publish a new revision as to whether we should continue down the "Ignore=
 Overlap only" path or move to a simpler strategy - so let's not be too pic=
ky about the naming.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

[Bruno] I'm not sure what you are refering to by "preference". Is this the =
IGP "SRMS Preference sub-TLV" or is this the preference defined in the draf=
t (=A73.3.4)?



[Les:] It is the former.



Assuming you meant the SRMS preference, why limiting to this field, rather =
than including all fields defined in the draft preference algo?

Using the latter would reduce the risk of ignoring all entries (i.e. having=
 no entry in output of this algo). Also a priori,  a sort would not be requ=
ired as a single pass could select the most preferred entry.



[Les:] The point of the alternative proposal is a simplification. The prese=
ntation in Seoul (check out the slides) highlighted complexities in the imp=
lementation of "ignore-overlap-only" - in particular subtleties in the orde=
r in which an implementation looks at entries which could produce interoper=
ability issues even though implementations are using the same preference ru=
le. The alternative reduces the chances of these interoperability issues oc=
curring because the algorithm used is simpler and less subject to subtle im=
plementation differences.



If you want to argue that these are solvable problems I won't disagree with=
 you - it is a question of where we want to put our time and effort. A numb=
er of folks are commenting that they prefer to focus on fixing the configur=
ation and not invest  time in validating that conflict resolution is implem=
ented in an interoperable way. As we (the authors) have stated from the beg=
inning, we believe the emphasis should be on detecting and reporting the co=
nflicts - not spending cycles implementing the most robust means of trying =
to operate optimally while the misconfiguration exists. I know you disagree=
 on this point - but that is exactly what the WG is debating - not whether =
it is possible to make "ignore overlap only" work.



   Les



Thanks

-- Bruno



Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

___________________________________________________________________________=
______________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.


--_000_53C29892C857584299CBF5D05346208A1ECC2691OPEXCLILM21corp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Texte brut Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
pre
	{mso-style-priority:99;
	mso-style-link:"Pr=E9format=E9 HTML Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Texte de bulles Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.PrformatHTMLCar
	{mso-style-name:"Pr=E9format=E9 HTML Car";
	mso-style-priority:99;
	mso-style-link:"Pr=E9format=E9 HTML";
	font-family:Consolas;}
span.TextebrutCar
	{mso-style-name:"Texte brut Car";
	mso-style-priority:99;
	mso-style-link:"Texte brut";
	font-family:Consolas;}
p.PlainText, li.PlainText, div.PlainText
	{mso-style-name:"Plain Text";
	mso-style-link:"Plain Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
span.EmailStyle23
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
p.HTMLPreformatted, li.HTMLPreformatted, div.HTMLPreformatted
	{mso-style-name:"HTML Preformatted";
	mso-style-link:"HTML Preformatted Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
span.EmailStyle26
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.TextedebullesCar
	{mso-style-name:"Texte de bulles Car";
	mso-style-priority:99;
	mso-style-link:"Texte de bulles";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle29
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"FR" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Les,<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">On the =
complexity side, I have the feeling that a portion of this complexity comes=
 from editorial choices in the draft. And in particular that the text and c=
oncepts used for the per FEC policy could
 be simplified.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Indeed,=
 what we need for a consistent behavior across all implementations, is to s=
pecify the behavior of the end result. We should not need to discuss implem=
entation internals.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">A prior=
i, the following text should be enough:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&quot;I=
n step 1, Prefix conflicts are resolved on a per FEC/IP prefix/Segment basi=
s. For each FEC, the preferred SID is selected, as per the preference funct=
ion (e.g. best Preference field, then smallest
 SID)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; Note that following this step, each prefix covered by an IGP SID a=
dvertisement has exactly one SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">In step=
 2, SID conflicts are resolved. For each SID, the preferred Prefix is selec=
ted as per the preference function.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; Note that following this step, each SID has a single prefix. Howev=
er some prefix may have no SID.&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">With th=
e above text, there is no need for the draft to introduce generalized mappi=
ng entries, nor to split original entries into multiple ranges, nor to clar=
ify whether the info are to be taken from
 the original or derived entries...<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Then ea=
ch implementation is free to choose its own data-structure and implementati=
on details.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">e.g one=
 may split original entries into multiple ranges if this is your choice.<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Another=
 one may simply decompress the MS advertisement by adding the SID to each p=
refix, as if it were coming from a prefixSID. (As the MS range is &quot;ess=
entially a compression scheme&quot;) so if its too
 complex to handle in its compress form, lets decompress).<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">e.g. af=
ter receiving the MS entry (128, 1.1.1.1/32 100 range 255), the SID 100 (re=
sp. 101...354) is added to the IP prefix 1.1.1.1 (resp. 1.1.1.2... 1.1.1.25=
5)
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Followi=
ng this decompression, comparison is much more simple as there is no more M=
S entries which are not directly comparable to prefix SID.<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">e.g. in=
 the worst case, a prefix as a set of SID, and one is selected using the pr=
eference function. A simple preference may be to select the highest Prefere=
nce, and then the smallest SID to tie-brake.&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">In summ=
ary, having multiple advertisements for a routing entries and having to sel=
ect one, is not new in the routing space/area. In this case, the complexity=
 comes from the Mapping Server range,
 rather than the selection of one SID. So let&#8217;s just decompress this =
Mapping Server range, and the problem gets simpler and very similar to what=
 we are used to in the routing space, i.e. select the best route/path/entry=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">2) Pref=
erence function<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">For all=
 policy except &quot;ignore all&quot;, there is a need for a preference fun=
ction. So this point is not a changing the complexity between a per adverti=
sement policy (quarantine/new proposal) and a per
 FEC policy (e.g. ignore overlap)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Thanks,=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">--Bruno=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Les Gins=
berg (ginsberg) [mailto:ginsberg@cisco.com]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:31 PM<br>
<b>To:</b> DECRAENE Bruno IMT/OLN<br>
<b>Cc:</b> spring@ietf.org<br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Bruno &=
#8211;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Welcome=
 back to the discussion.
</span><span lang=3D"EN-US" style=3D"font-family:Wingdings;color:#1F497D">J=
</span><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Inline.=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span =
lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&qu=
ot;sans-serif&quot;">
<a href=3D"mailto:bruno.decraene@orange.com">bruno.decraene@orange.com</a> =
[<a href=3D"mailto:bruno.decraene@orange.com">mailto:bruno.decraene@orange.=
com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 2:07 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Hi Les,=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">As a in=
dividual contributor, please find below some clarification questions [Bruno=
]<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> spring [=
<a href=3D"mailto:spring-bounces@ietf.org">mailto:spring-bounces@ietf.org</=
a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Monday, December 05, 2016 1:04 AM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">When the problem addressed b=
y draft-ietf-spring-conflict-resolution was first
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">presented at IETF 94, the au=
thors defined the following priorities:<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1)Detect the problem<o:p></o=
:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2)Report the problem<o:p></o=
:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">This alerts the network oper=
ator to the existence of a conflict so that<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the configuration error can =
be corrected.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3)Define consistent behavior=
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">This avoids mis-forwarding w=
hile the conflict exists.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4)Don&#8217;t overengineer t=
he solution<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Given that it is impossible =
to know which of the conflicting entries<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">is the correct one, we shoul=
d apply a simple algorithm to resolve the conflict.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">5)Agree on the resolution be=
havior<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">The resolution behavior was =
deliberately the last point because it was
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">considered the least importa=
nt.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Input was received over the =
past year which emphasized the importance of<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">trying to &quot;maximize for=
warding&quot; in the presence of conflicts. Subsequent<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">revisions of the draft have =
tried to address this concern. However the authors
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">have repeatedly stressed tha=
t the solution being proposed
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(&quot;ignore overlap only&q=
uot;) was more complex than other offered alternatives and
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">would be more difficult to g=
uarantee interoperability because subtle
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">differences in an implementa=
tion could produce different results.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">At IETF97 significant feedba=
ck was received preferring a simpler solution to
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the problem. The authors are=
 very sympathetic to this feedback and therefore
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">are proposing a solution bas=
ed on what the draft defines as the &quot;Ignore&quot;
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">policy - where all entries w=
hich are in conflict are ignored. We believe this
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">is far more desirable and al=
igns with the priorities listed above.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">[Bru=
no] In the draft, the &#8220;Ignore&#8221; policy (=A73.3.1) ignores all co=
nflicting entries.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">In y=
our below proposition, the policy seems to pick the most preferred entry. T=
his looks like more similar to the &#8220;Quarantine&#8221; policy proposed=
 in the draft (=A73.3.2)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Am I=
 missing something?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">[Les:] At the time &#8220;Ignore&#8221; was introduced (over a year ago) =
the notion of &#8220;SRMS preference&#8221; did not exist &#8211; that was =
only added in the most recent version of the draft.<o:p></o:p></span></i></=
b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">We (the authors) feel that this is a useful construct because:<o:p></o:p>=
</span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">1)It provides an explicit basis on which to choose between conflicting en=
tries.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">2)It is particularly useful when bringing up a new SRMS as it allows the =
advertised values to be verified before they are used.<o:p></o:p></span></i=
></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">So, your comment is correct in that there is now a preference algorithm i=
n use &#8211; whereas with the original definition of &#8220;Ignore&#8221; =
there was no preference algorithm. But the sole criteria
 of the preference rule is the explicitly configured preference &#8211; non=
e of the other criteria proposed for Quarantine are used &#8211; and in par=
ticular we do not make partial use of a mapping entry as is the case with &=
#8220;Ignore Overlap Only&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">I am happy to modify the nomenclature &#8211; but the point of this threa=
d is not to replace a new draft revision &#8211; it is to get the sense of =
the WG before we publish a new revision as to whether
 we should continue down the &#8220;Ignore Overlap only&#8221; path or move=
 to a simpler strategy &#8211; so let&#8217;s not be too picky about the na=
ming.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">We outline the proposed solu=
tion below and would like to receive feedback from
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the WG before publishing the=
 next revision of the draft.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">&nbsp;&nbsp; Les (on behalf =
of the authors)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">New Proposal<o:p></o:p></=
span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">In the latest revision of=
 the draft &quot;SRMS Preference&quot; was introduced. This
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">provides a way for a nume=
rical preference to be explicitly associated with an
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">SRMS advertisement. Using=
 this an operator can indicate which advertisement is
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">to be preferred when a co=
nflict is present. The authors think this is a useful
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">addition and we therefore=
 want to include this in the new solution.<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">The new preference rule u=
sed to resolve conflicts is defined as follows:<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">A given mapping entry =
is compared against all mapping entries in the database
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">with a preference grea=
ter than or equal to its own. If there is a conflict,
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">the mapping entry with=
 lower preference is ignored. If two mapping entries are<o:p></o:p></span><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">in conflict and have e=
qual preference then both entries are ignored.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">Implementation of this po=
licy is defined as follows:<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 1: Within a singl=
e address-family/algorithm/topology sort entries
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">based on preference <o=
:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">[Bru=
no] I&#8217;m not sure what you are refering to by &#8220;preference&#8221;=
. Is this the IGP &#8220;SRMS Preference sub-TLV&#8221; or is this the pref=
erence defined in the draft (=A73.3.4)?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">[Les:] It is the former.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Assu=
ming you meant the SRMS preference, why limiting to this field, rather than=
 including all fields defined in the draft preference algo?<o:p></o:p></spa=
n></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Usin=
g the latter would reduce the risk of ignoring all entries (i.e. having no =
entry in output of this algo). Also a priori, &nbsp;a sort would not be req=
uired as a single pass could select the most
 preferred entry.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">[Les:] The point of the alternative proposal is a simplification. The pre=
sentation in Seoul (check out the slides) highlighted complexities in the i=
mplementation of &#8220;ignore-overlap-only&#8221;
 &#8211; in particular subtleties in the order in which an implementation l=
ooks at entries which could produce interoperability issues even though imp=
lementations are using the same preference rule. The alternative reduces th=
e chances of these interoperability issues
 occurring because the algorithm used is simpler and less subject to subtle=
 implementation differences.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">If you want to argue that these are solvable problems I won&#8217;t disag=
ree with you &#8211; it is a question of where we want to put our time and =
effort. A number of folks are commenting that they
 prefer to focus on fixing the configuration and not invest &nbsp;time in v=
alidating that conflict resolution is implemented in an interoperable way. =
As we (the authors) have stated from the beginning, we believe the emphasis=
 should be on detecting and reporting
 the conflicts &#8211; not spending cycles implementing the most robust mea=
ns of trying to operate optimally while the misconfiguration exists. I know=
 you disagree on this point &#8211; but that is exactly what the WG is deba=
ting &#8211; not whether it is possible to make &#8220;ignore
 overlap only&#8221; work.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">&nbsp;&nbsp; Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Than=
ks<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">-- B=
runo<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 2: Starting with =
the lowest preference entries, resolve prefix conflicts
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">using the above prefer=
ence rule. The output is an active policy per topology.<o:p></o:p></span></=
i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 3: Take the outpu=
ts from Step 2 and again sort them by preference
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 4: Starting with =
the lowest preference entries, resolve SID conflicts
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">using the above prefer=
ence rule<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></spa=
n></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">The output from Step 4=
 is then the current Active Policy.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Here are a few examples. Eac=
h mapping entry is represented by the tuple:<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(Preference, Prefix/mask Ind=
ex range &lt;#&gt;)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 1:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 100)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (149, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (148, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 3 conflicts with entry=
 2, it is ignored.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 2 conflicts with entry=
 1, it is ignored.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 1.1.1.1/32 100 range 1=
00)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 2:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 100)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (150, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (150, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (150, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 1 conflicts with entry=
 2, both are marked as ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 3 conflicts with entry=
 2. It is marked as ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 4 has no conflicts wit=
h any entries<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 2.2.2.1/32 1000 range =
1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 3:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 500)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (150, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (150, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (150, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 1 conflicts with entri=
es 2, 3, and&nbsp; 4. All entries are marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Empty<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 4:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (149, 1.1.1.10/32 200 ran=
ge 300)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (149, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (148, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 4 conflicts with entry=
 2. It is marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 2 conflicts with entry=
 3. Entries 2 and 3 are marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 1.1.1.1/32 100 range 1=
0)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
</div>
<pre>______________________________________________________________________=
___________________________________________________<o:p></o:p></pre>
<pre><o:p>&nbsp;</o:p></pre>
<pre>Ce message et ses pieces jointes peuvent contenir des informations con=
fidentielles ou privilegiees et ne doivent donc<o:p></o:p></pre>
<pre>pas etre diffuses, exploites ou copies sans autorisation. Si vous avez=
 recu ce message par erreur, veuillez le signaler<o:p></o:p></pre>
<pre>a l'expediteur et le detruire ainsi que les pieces jointes. Les messag=
es electroniques etant susceptibles d'alteration,<o:p></o:p></pre>
<pre>Orange decline toute responsabilite si ce message a ete altere, deform=
e ou falsifie. Merci.<o:p></o:p></pre>
<pre><o:p>&nbsp;</o:p></pre>
<pre>This message and its attachments may contain confidential or privilege=
d information that may be protected by law;<o:p></o:p></pre>
<pre>they should not be distributed, used or copied without authorisation.<=
o:p></o:p></pre>
<pre>If you have received this email in error, please notify the sender and=
 delete this message and its attachments.<o:p></o:p></pre>
<pre>As emails may be altered, Orange is not liable for messages that have =
been modified, changed or falsified.<o:p></o:p></pre>
<pre>Thank you.<o:p></o:p></pre>
</div>
</div>
</div>
<PRE>______________________________________________________________________=
___________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.
</PRE></body>
</html>

--_000_53C29892C857584299CBF5D05346208A1ECC2691OPEXCLILM21corp_--


From nobody Mon Dec 12 18:07:33 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 71775129FD4 for <spring@ietfa.amsl.com>; Mon, 12 Dec 2016 18:07:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.417
X-Spam-Level: 
X-Spam-Status: No, score=-17.417 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XigOboDefBPn for <spring@ietfa.amsl.com>; Mon, 12 Dec 2016 18:07:25 -0800 (PST)
Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 013B51294CD for <spring@ietf.org>; Mon, 12 Dec 2016 18:07:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=63548; q=dns/txt; s=iport; t=1481594845; x=1482804445; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=lDInAd/mS4TvzRi1msfkSR3B8Rt5vd4AI/CbWn70Fiw=; b=T3wPvfHD0JwLXya7PKDNwQlrhcJX6zze+Y/fd7Xz7bDWO5xIKcl4KICx /SkG5jfgFlf51vUEBYf/7JuWngbqKeErk1qOAzL4kKGNqx89+NMstWdhc McSokd9EJ798zTOyfxG0uvCCbkUdlUxD9DFOpvz4ZikOaguM8/eyOUpAj s=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BLAgAvV09Y/40NJK1TChkBAQEBAQEBA?= =?us-ascii?q?QEBAQcBAQEBAYJzOQsBAQEBAR9agQYHjUKXFpUEggiGIQKBeT8UAQIBAQEBAQE?= =?us-ascii?q?BYh0LhGgBAQEEGgESTBACAQgRBAEBIQEGBzIUCQgBAQQOBQgTBIhMrTOLEQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAR2GPoRbhBoGCwEGQgqFKwWPP4VBhWsBiV+HPYF?= =?us-ascii?q?8hQCJU44LhA4BHzdJGT2DYxyBXXKFVQ0XB4EDgQ0BAQE?=
X-IronPort-AV: E=Sophos;i="5.33,339,1477958400";  d="scan'208,217";a="182517475"
Received: from alln-core-8.cisco.com ([173.36.13.141]) by rcdn-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 13 Dec 2016 02:07:21 +0000
Received: from XCH-RCD-001.cisco.com (xch-rcd-001.cisco.com [173.37.102.11]) by alln-core-8.cisco.com (8.14.5/8.14.5) with ESMTP id uBD27Lvg029338 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 13 Dec 2016 02:07:21 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-RCD-001.cisco.com (173.37.102.11) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Mon, 12 Dec 2016 20:07:21 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Mon, 12 Dec 2016 20:07:21 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: "bruno.decraene@orange.com" <bruno.decraene@orange.com>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDdlkBwAA8oUZAAlSinoAATsLkw
Date: Tue, 13 Dec 2016 02:07:20 +0000
Message-ID: <0e13ebc08fbf42e7a2e0f2ac879e5b52@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <13659_1481278031_584A824F_13659_1413_1_53C29892C857584299CBF5D05346208A1ECBEDCF@OPEXCLILM21.corporate.adroot.infra.ftgroup> <dc0ee71a612d433dba6e6d73b274ec6f@XCH-ALN-001.cisco.com> <5500_1481559174_584ECC86_5500_3055_38_53C29892C857584299CBF5D05346208A1ECC2691@OPEXCLILM21.corporate.adroot.infra.ftgroup>
In-Reply-To: <5500_1481559174_584ECC86_5500_3055_38_53C29892C857584299CBF5D05346208A1ECC2691@OPEXCLILM21.corporate.adroot.infra.ftgroup>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.52.82]
Content-Type: multipart/alternative; boundary="_000_0e13ebc08fbf42e7a2e0f2ac879e5b52XCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/w9ig9O2ucBDOt4xhyoYF9Q1HK_k>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 13 Dec 2016 02:07:31 -0000

--_000_0e13ebc08fbf42e7a2e0f2ac879e5b52XCHALN001ciscocom_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Bruno -

There is absolutely nothing in the draft which discusses implementation cho=
ices. In Section 3.3.7 there is a conceptual discussion that states in part=
:

"Mapping entries with a range greater than
   1 which are in conflict with other mapping entries have to internally
   be split into 2 or more "derived mapping entries".  The derived
   mapping entries then fall into two categories - those that are in
   conflict with other mapping entries and those which are NOT in
   conflict.  The former are ignored and the latter are used."

This isn't specifying an implementation data structure - it is simply stati=
ng the fact that for a mapping entry with a range greater than one has to b=
e to identify which portions of that mapping entry are "unusable" because o=
f conflict and which portions are usable. Conceptually this results in "der=
ived mapping entries" - but how one chooses to implement them is deliberate=
ly not stated. One could (as you suggest below) expand the entry into indiv=
idual per FEC entries - or one could associate some adjunct data structure =
which tracks the usability status of each prefix - or one could recalculate=
 the conflict on demand whenever one needs to know the usable SID for a pre=
fix and eliminate the need for additional data structures - or one could li=
nk child derived mapping entries to the "raw" received mapping entry. The d=
raft is agnostic in this regard.

The point I am making is that there are two issues which only arise with "i=
gnore overlap only":

1)One has to come up with a way to track the usability of each prefix/SID p=
air covered by the advertised range while still remembering the original ad=
vertisement because the granularity of usability is NOT the raw advertiseme=
nt

2)When one implements the conflict resolution algorithm there are subtletie=
s which can affect the outcome which are peculiar to "ignore overlap only" =
because of the possible partial use of a raw mapping entry. See Slide 18 of=
 the slides for IETF97.

Neither of these issue arise with "Ignore".

Now, can we specify the normative behavior of "ignore overlap only" such th=
at it is clear? Yes
Is it possible to implement "ignore overlap only"? Yes

However, bugs exist despite everyone's best efforts, and part of the argume=
nt for simplicity includes:


=B7         Simpler requirements make implementation bugs less likely

=B7         As conflict resolution is an error pathway it inevitably gets e=
xercised less often - so bugs are less likely to be found

=B7         Additional test effort is then required to adequately test "ign=
ore overlap only"

=B7         All of the above could result in non-interoperable implementati=
ons

Perhaps the words used to describe "ignore overlap only" could be reduced o=
r revised to be more clear - but that would not alter the functional requir=
ements.
Everyone gets to decide what value to put on the differences between the tw=
o approaches, but I don't think I have incorrectly identified what is requi=
red to implement "ignore overlap only".

   Les

From: bruno.decraene@orange.com [mailto:bruno.decraene@orange.com]
Sent: Monday, December 12, 2016 8:13 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Les,

On the complexity side, I have the feeling that a portion of this complexit=
y comes from editorial choices in the draft. And in particular that the tex=
t and concepts used for the per FEC policy could be simplified.

Indeed, what we need for a consistent behavior across all implementations, =
is to specify the behavior of the end result. We should not need to discuss=
 implementation internals.
A priori, the following text should be enough:

"In step 1, Prefix conflicts are resolved on a per FEC/IP prefix/Segment ba=
sis. For each FEC, the preferred SID is selected, as per the preference fun=
ction (e.g. best Preference field, then smallest SID)
                Note that following this step, each prefix covered by an IG=
P SID advertisement has exactly one SID.
In step 2, SID conflicts are resolved. For each SID, the preferred Prefix i=
s selected as per the preference function.
                Note that following this step, each SID has a single prefix=
. However some prefix may have no SID."

With the above text, there is no need for the draft to introduce generalize=
d mapping entries, nor to split original entries into multiple ranges, nor =
to clarify whether the info are to be taken from the original or derived en=
tries...

Then each implementation is free to choose its own data-structure and imple=
mentation details.
e.g one may split original entries into multiple ranges if this is your cho=
ice.
Another one may simply decompress the MS advertisement by adding the SID to=
 each prefix, as if it were coming from a prefixSID. (As the MS range is "e=
ssentially a compression scheme") so if its too complex to handle in its co=
mpress form, lets decompress).
e.g. after receiving the MS entry (128, 1.1.1.1/32 100 range 255), the SID =
100 (resp. 101...354) is added to the IP prefix 1.1.1.1 (resp. 1.1.1.2... 1=
.1.1.255)
Following this decompression, comparison is much more simple as there is no=
 more MS entries which are not directly comparable to prefix SID.
e.g. in the worst case, a prefix as a set of SID, and one is selected using=
 the preference function. A simple preference may be to select the highest =
Preference, and then the smallest SID to tie-brake.

In summary, having multiple advertisements for a routing entries and having=
 to select one, is not new in the routing space/area. In this case, the com=
plexity comes from the Mapping Server range, rather than the selection of o=
ne SID. So let's just decompress this Mapping Server range, and the problem=
 gets simpler and very similar to what we are used to in the routing space,=
 i.e. select the best route/path/entry


2) Preference function
For all policy except "ignore all", there is a need for a preference functi=
on. So this point is not a changing the complexity between a per advertisem=
ent policy (quarantine/new proposal) and a per FEC policy (e.g. ignore over=
lap)

Thanks,
--Bruno

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Friday, December 09, 2016 7:31 PM
To: DECRAENE Bruno IMT/OLN
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Bruno -

Welcome back to the discussion. :)
Inline.

From: bruno.decraene@orange.com<mailto:bruno.decraene@orange.com> [mailto:b=
runo.decraene@orange.com]
Sent: Friday, December 09, 2016 2:07 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Hi Les,

As a individual contributor, please find below some clarification questions=
 [Bruno]

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Monday, December 05, 2016 1:04 AM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



[Bruno] In the draft, the "Ignore" policy (=A73.3.1) ignores all conflictin=
g entries.

In your below proposition, the policy seems to pick the most preferred entr=
y. This looks like more similar to the "Quarantine" policy proposed in the =
draft (=A73.3.2)

Am I missing something?



[Les:] At the time "Ignore" was introduced (over a year ago) the notion of =
"SRMS preference" did not exist - that was only added in the most recent ve=
rsion of the draft.

We (the authors) feel that this is a useful construct because:



1)It provides an explicit basis on which to choose between conflicting entr=
ies.

2)It is particularly useful when bringing up a new SRMS as it allows the ad=
vertised values to be verified before they are used.



So, your comment is correct in that there is now a preference algorithm in =
use - whereas with the original definition of "Ignore" there was no prefere=
nce algorithm. But the sole criteria of the preference rule is the explicit=
ly configured preference - none of the other criteria proposed for Quaranti=
ne are used - and in particular we do not make partial use of a mapping ent=
ry as is the case with "Ignore Overlap Only".



I am happy to modify the nomenclature - but the point of this thread is not=
 to replace a new draft revision - it is to get the sense of the WG before =
we publish a new revision as to whether we should continue down the "Ignore=
 Overlap only" path or move to a simpler strategy - so let's not be too pic=
ky about the naming.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

[Bruno] I'm not sure what you are refering to by "preference". Is this the =
IGP "SRMS Preference sub-TLV" or is this the preference defined in the draf=
t (=A73.3.4)?



[Les:] It is the former.



Assuming you meant the SRMS preference, why limiting to this field, rather =
than including all fields defined in the draft preference algo?

Using the latter would reduce the risk of ignoring all entries (i.e. having=
 no entry in output of this algo). Also a priori,  a sort would not be requ=
ired as a single pass could select the most preferred entry.



[Les:] The point of the alternative proposal is a simplification. The prese=
ntation in Seoul (check out the slides) highlighted complexities in the imp=
lementation of "ignore-overlap-only" - in particular subtleties in the orde=
r in which an implementation looks at entries which could produce interoper=
ability issues even though implementations are using the same preference ru=
le. The alternative reduces the chances of these interoperability issues oc=
curring because the algorithm used is simpler and less subject to subtle im=
plementation differences.



If you want to argue that these are solvable problems I won't disagree with=
 you - it is a question of where we want to put our time and effort. A numb=
er of folks are commenting that they prefer to focus on fixing the configur=
ation and not invest  time in validating that conflict resolution is implem=
ented in an interoperable way. As we (the authors) have stated from the beg=
inning, we believe the emphasis should be on detecting and reporting the co=
nflicts - not spending cycles implementing the most robust means of trying =
to operate optimally while the misconfiguration exists. I know you disagree=
 on this point - but that is exactly what the WG is debating - not whether =
it is possible to make "ignore overlap only" work.



   Les



Thanks

-- Bruno



Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

--_000_0e13ebc08fbf42e7a2e0f2ac879e5b52XCHALN001ciscocom_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
p.PrformatHTML, li.PrformatHTML, div.PrformatHTML
	{mso-style-name:"Pr=E9format=E9 HTML";
	mso-style-link:"Pr=E9format=E9 HTML Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PrformatHTMLCar
	{mso-style-name:"Pr=E9format=E9 HTML Car";
	mso-style-priority:99;
	mso-style-link:"Pr=E9format=E9 HTML";
	font-family:Consolas;}
p.Textebrut, li.Textebrut, div.Textebrut
	{mso-style-name:"Texte brut";
	mso-style-link:"Texte brut Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.TextebrutCar
	{mso-style-name:"Texte brut Car";
	mso-style-priority:99;
	mso-style-link:"Texte brut";
	font-family:Consolas;}
span.EmailStyle27
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle28
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
p.Textedebulles, li.Textedebulles, div.Textedebulles
	{mso-style-name:"Texte de bulles";
	mso-style-link:"Texte de bulles Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.TextedebullesCar
	{mso-style-name:"Texte de bulles Car";
	mso-style-priority:99;
	mso-style-link:"Texte de bulles";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle31
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle32
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:170724835;
	mso-list-type:hybrid;
	mso-list-template-ids:-763972788 67698689 67698691 67698693 67698689 67698=
691 67698693 67698689 67698691 67698693;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Bruno &#8211;<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">There is absolutely no=
thing in the draft which discusses implementation choices. In Section 3.3.7=
 there is a conceptual discussion that states in part:<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&#8220;Mapping entries=
 with a range greater than<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp; 1 which a=
re in conflict with other mapping entries have to internally<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp; be split =
into 2 or more &quot;derived mapping entries&quot;.&nbsp; The derived<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp; mapping e=
ntries then fall into two categories - those that are in<o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp; conflict =
with other mapping entries and those which are NOT in<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp; conflict.=
&nbsp; The former are ignored and the latter are used.&#8221;<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">This isn&#8217;t speci=
fying an implementation data structure &#8211; it is simply stating the fac=
t that for a mapping entry with a range greater than one has to be to ident=
ify which portions of that mapping entry are &#8220;unusable&#8221;
 because of conflict and which portions are usable. Conceptually this resul=
ts in &#8220;derived mapping entries&#8221; &#8211; but how one chooses to =
implement them is deliberately not stated. One could (as you suggest below)=
 expand the entry into individual per FEC entries
 &#8211; or one could associate some adjunct data structure which tracks th=
e usability status of each prefix - or one could recalculate the conflict o=
n demand whenever one needs to know the usable SID for a prefix and elimina=
te the need for additional data structures
 &#8211; or one could link child derived mapping entries to the &#8220;raw&=
#8221; received mapping entry. The draft is agnostic in this regard. &nbsp;=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">The point I am making =
is that there are two issues which only arise with &#8220;ignore overlap on=
ly&#8221;:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">1)One has to come up w=
ith a way to track the usability of each prefix/SID pair covered by the adv=
ertised range while still remembering the original advertisement because th=
e granularity of usability is NOT the
 raw advertisement<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">2)When one implements =
the conflict resolution algorithm there are subtleties which can affect the=
 outcome which are peculiar to &#8220;ignore overlap only&#8221; because of=
 the possible partial use of a raw mapping entry.
 See Slide 18 of the slides for IETF97.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Neither of these issue=
 arise with &#8220;Ignore&#8221;.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Now, can we specify th=
e normative behavior of &#8220;ignore overlap only&#8221; such that it is c=
lear? Yes<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Is it possible to impl=
ement &#8220;ignore overlap only&#8221;? Yes<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">However, bugs exist de=
spite everyone&#8217;s best efforts, and part of the argument for simplicit=
y includes:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">Simpler requir=
ements make implementation bugs less likely<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">As conflict re=
solution is an error pathway it inevitably gets exercised less often &#8211=
; so bugs are less likely to be found<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">Additional tes=
t effort is then required to adequately test &#8220;ignore overlap only&#82=
21;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">All of the abo=
ve could result in non-interoperable implementations<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Perhaps the words used=
 to describe &#8220;ignore overlap only&#8221; could be reduced or revised =
to be more clear &#8211; but that would not alter the functional requiremen=
ts.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Everyone gets to decid=
e what value to put on the differences between the two approaches, but I do=
n&#8217;t think I have incorrectly identified what is required to implement=
 &#8220;ignore overlap only&#8221;.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp; Les<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> bruno.de=
craene@orange.com [mailto:bruno.decraene@orange.com]
<br>
<b>Sent:</b> Monday, December 12, 2016 8:13 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> spring@ietf.org<br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"FR" style=3D"color:#1F497D">Les,<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"FR" style=3D"color:#1F497D"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">On the complexity side=
, I have the feeling that a portion of this complexity comes from editorial=
 choices in the draft. And in particular that the text and concepts used fo=
r the per FEC policy could be simplified.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Indeed, what we need f=
or a consistent behavior across all implementations, is to specify the beha=
vior of the end result. We should not need to discuss implementation intern=
als.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">A priori, the followin=
g text should be enough:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&quot;In step 1, Prefi=
x conflicts are resolved on a per FEC/IP prefix/Segment basis. For each FEC=
, the preferred SID is selected, as per the preference function (e.g. best =
Preference field, then smallest SID)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note t=
hat following this step, each prefix covered by an IGP SID advertisement ha=
s exactly one SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">In step 2, SID conflic=
ts are resolved. For each SID, the preferred Prefix is selected as per the =
preference function.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Note t=
hat following this step, each SID has a single prefix. However some prefix =
may have no SID.&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">With the above text, t=
here is no need for the draft to introduce generalized mapping entries, nor=
 to split original entries into multiple ranges, nor to clarify whether the=
 info are to be taken from the original
 or derived entries...<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Then each implementati=
on is free to choose its own data-structure and implementation details.<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">e.g one may split orig=
inal entries into multiple ranges if this is your choice.<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Another one may simply=
 decompress the MS advertisement by adding the SID to each prefix, as if it=
 were coming from a prefixSID. (As the MS range is &quot;essentially a comp=
ression scheme&quot;) so if its too complex to
 handle in its compress form, lets decompress).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">e.g. after receiving t=
he MS entry (128, 1.1.1.1/32 100 range 255), the SID 100 (resp. 101...354) =
is added to the IP prefix 1.1.1.1 (resp. 1.1.1.2... 1.1.1.255)
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Following this decompr=
ession, comparison is much more simple as there is no more MS entries which=
 are not directly comparable to prefix SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">e.g. in the worst case=
, a prefix as a set of SID, and one is selected using the preference functi=
on. A simple preference may be to select the highest Preference, and then t=
he smallest SID to tie-brake.&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">In summary, having mul=
tiple advertisements for a routing entries and having to select one, is not=
 new in the routing space/area. In this case, the complexity comes from the=
 Mapping Server range, rather than the
 selection of one SID. So let&#8217;s just decompress this Mapping Server r=
ange, and the problem gets simpler and very similar to what we are used to =
in the routing space, i.e. select the best route/path/entry<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">2) Preference function=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">For all policy except =
&quot;ignore all&quot;, there is a need for a preference function. So this =
point is not a changing the complexity between a per advertisement policy (=
quarantine/new proposal) and a per FEC policy
 (e.g. ignore overlap)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Thanks,<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">--Bruno<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"FR" style=3D"font-size:10.0pt;font-=
family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lan=
g=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;san=
s-serif&quot;"> Les Ginsberg (ginsberg) [<a href=3D"mailto:ginsberg@cisco.c=
om">mailto:ginsberg@cisco.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:31 PM<br>
<b>To:</b> DECRAENE Bruno IMT/OLN<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"FR"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Bruno &#8211;<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Welcome back to the di=
scussion. </span>
<span style=3D"font-family:Wingdings;color:#1F497D">J</span><span style=3D"=
color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Inline.<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">
<a href=3D"mailto:bruno.decraene@orange.com">bruno.decraene@orange.com</a> =
[<a href=3D"mailto:bruno.decraene@orange.com">mailto:bruno.decraene@orange.=
com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 2:07 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Hi Les,<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">As a individual contri=
butor, please find below some clarification questions [Bruno]<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"FR" style=3D"font-size:10.0pt;font-=
family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lan=
g=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;san=
s-serif&quot;"> spring [<a href=3D"mailto:spring-bounces@ietf.org">mailto:s=
pring-bounces@ietf.org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Monday, December 05, 2016 1:04 AM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"FR"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">[Bruno] In the draf=
t, the &#8220;Ignore&#8221; policy (=A73.3.1) ignores all conflicting entri=
es.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">In your below propo=
sition, the policy seems to pick the most preferred entry. This looks like =
more similar to the &#8220;Quarantine&#8221; policy proposed in the draft (=
=A73.3.2)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Am I missing someth=
ing?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] At the=
 time &#8220;Ignore&#8221; was introduced (over a year ago) the notion of &=
#8220;SRMS preference&#8221; did not exist &#8211; that was only added in t=
he most recent version of the draft.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">We (the autho=
rs) feel that this is a useful construct because:<o:p></o:p></span></i></b>=
</p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">1)It provides=
 an explicit basis on which to choose between conflicting entries.<o:p></o:=
p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">2)It is parti=
cularly useful when bringing up a new SRMS as it allows the advertised valu=
es to be verified before they are used.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">So, your comm=
ent is correct in that there is now a preference algorithm in use &#8211; w=
hereas with the original definition of &#8220;Ignore&#8221; there was no pr=
eference algorithm. But the sole criteria of the preference
 rule is the explicitly configured preference &#8211; none of the other cri=
teria proposed for Quarantine are used &#8211; and in particular we do not =
make partial use of a mapping entry as is the case with &#8220;Ignore Overl=
ap Only&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">I am happy to=
 modify the nomenclature &#8211; but the point of this thread is not to rep=
lace a new draft revision &#8211; it is to get the sense of the WG before w=
e publish a new revision as to whether we should
 continue down the &#8220;Ignore Overlap only&#8221; path or move to a simp=
ler strategy &#8211; so let&#8217;s not be too picky about the naming.<o:p>=
</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">[Bruno] I&#8217;m n=
ot sure what you are refering to by &#8220;preference&#8221;. Is this the I=
GP &#8220;SRMS Preference sub-TLV&#8221; or is this the preference defined =
in the draft (=A73.3.4)?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] It is =
the former.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Assuming you meant =
the SRMS preference, why limiting to this field, rather than including all =
fields defined in the draft preference algo?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Using the latter wo=
uld reduce the risk of ignoring all entries (i.e. having no entry in output=
 of this algo). Also a priori, &nbsp;a sort would not be required as a sing=
le pass could select the most preferred entry.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] The po=
int of the alternative proposal is a simplification. The presentation in Se=
oul (check out the slides) highlighted complexities in the implementation o=
f &#8220;ignore-overlap-only&#8221; &#8211; in particular
 subtleties in the order in which an implementation looks at entries which =
could produce interoperability issues even though implementations are using=
 the same preference rule. The alternative reduces the chances of these int=
eroperability issues occurring because
 the algorithm used is simpler and less subject to subtle implementation di=
fferences.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">If you want t=
o argue that these are solvable problems I won&#8217;t disagree with you &#=
8211; it is a question of where we want to put our time and effort. A numbe=
r of folks are commenting that they prefer to focus
 on fixing the configuration and not invest &nbsp;time in validating that c=
onflict resolution is implemented in an interoperable way. As we (the autho=
rs) have stated from the beginning, we believe the emphasis should be on de=
tecting and reporting the conflicts &#8211;
 not spending cycles implementing the most robust means of trying to operat=
e optimally while the misconfiguration exists. I know you disagree on this =
point &#8211; but that is exactly what the WG is debating &#8211; not wheth=
er it is possible to make &#8220;ignore overlap only&#8221;
 work.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">&nbsp;&nbsp; =
Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Thanks<o:p></o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">-- Bruno<o:p></o:p>=
</span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">________________________________________________________________=
_________________________________________________________<o:p></o:p></span>=
</pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Ce message et ses pieces jointes peuvent contenir des informatio=
ns confidentielles ou privilegiees et ne doivent donc<o:p></o:p></span></pr=
e>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">pas etre diffuses, exploites ou copies sans autorisation. Si vou=
s avez recu ce message par erreur, veuillez le signaler<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">a l'expediteur et le detruire ainsi que les pieces jointes. Les =
messages electroniques etant susceptibles d'alteration,<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Orange decline toute responsabilite si ce message a ete altere, =
deforme ou falsifie. Merci.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">This message and its attachments may contain confidential or pri=
vileged information that may be protected by law;<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">they should not be distributed, used or copied without authorisa=
tion.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">If you have received this email in error, please notify the send=
er and delete this message and its attachments.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">As emails may be altered, Orange is not liable for messages that=
 have been modified, changed or falsified.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Thank you.<o:p></o:p></span></pre>
</div>
</div>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">________________________________________________________________=
_________________________________________________________<o:p></o:p></span>=
</pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Ce message et ses pieces jointes peuvent contenir des informatio=
ns confidentielles ou privilegiees et ne doivent donc<o:p></o:p></span></pr=
e>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">pas etre diffuses, exploites ou copies sans autorisation. Si vou=
s avez recu ce message par erreur, veuillez le signaler<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">a l'expediteur et le detruire ainsi que les pieces jointes. Les =
messages electroniques etant susceptibles d'alteration,<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Orange decline toute responsabilite si ce message a ete altere, =
deforme ou falsifie. Merci.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">This message and its attachments may contain confidential or pri=
vileged information that may be protected by law;<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">they should not be distributed, used or copied without authorisa=
tion.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">If you have received this email in error, please notify the send=
er and delete this message and its attachments.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">As emails may be altered, Orange is not liable for messages that=
 have been modified, changed or falsified.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Thank you.<o:p></o:p></span></pre>
</div>
</div>
</body>
</html>

--_000_0e13ebc08fbf42e7a2e0f2ac879e5b52XCHALN001ciscocom_--


From nobody Wed Dec 14 08:05:27 2016
Return-Path: <bruno.decraene@orange.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F3766127077 for <spring@ietfa.amsl.com>; Wed, 14 Dec 2016 08:05:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.814
X-Spam-Level: 
X-Spam-Status: No, score=-4.814 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-2.896, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TdAGvxSbLged for <spring@ietfa.amsl.com>; Wed, 14 Dec 2016 08:05:22 -0800 (PST)
Received: from relais-inet.orange.com (mta241.mail.business.static.orange.com [80.12.66.41]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 682D5129B5F for <spring@ietf.org>; Wed, 14 Dec 2016 08:05:21 -0800 (PST)
Received: from opfedar00.francetelecom.fr (unknown [xx.xx.xx.11]) by opfedar22.francetelecom.fr (ESMTP service) with ESMTP id BBC23605F5; Wed, 14 Dec 2016 17:05:19 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.41]) by opfedar00.francetelecom.fr (ESMTP service) with ESMTP id 9272D180040; Wed, 14 Dec 2016 17:05:19 +0100 (CET)
Received: from OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06]) by OPEXCLILM31.corporate.adroot.infra.ftgroup ([fe80::2cc9:4bac:7b7d:229d%19]) with mapi id 14.03.0319.002; Wed, 14 Dec 2016 17:05:19 +0100
From: <bruno.decraene@orange.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDdlkBwAA8oUZAAlSinoAATsLkwAE5+CRA=
Date: Wed, 14 Dec 2016 16:05:18 +0000
Message-ID: <21794_1481731519_58516DBF_21794_5469_1_53C29892C857584299CBF5D05346208A1ECC43F3@OPEXCLILM21.corporate.adroot.infra.ftgroup>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <13659_1481278031_584A824F_13659_1413_1_53C29892C857584299CBF5D05346208A1ECBEDCF@OPEXCLILM21.corporate.adroot.infra.ftgroup> <dc0ee71a612d433dba6e6d73b274ec6f@XCH-ALN-001.cisco.com> <5500_1481559174_584ECC86_5500_3055_38_53C29892C857584299CBF5D05346208A1ECC2691@OPEXCLILM21.corporate.adroot.infra.ftgroup> <0e13ebc08fbf42e7a2e0f2ac879e5b52@XCH-ALN-001.cisco.com>
In-Reply-To: <0e13ebc08fbf42e7a2e0f2ac879e5b52@XCH-ALN-001.cisco.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.168.234.1]
Content-Type: multipart/alternative; boundary="_000_53C29892C857584299CBF5D05346208A1ECC43F3OPEXCLILM21corp_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/jkooWgbHgu9QQaxWF00Ny08twBc>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 14 Dec 2016 16:05:26 -0000

--_000_53C29892C857584299CBF5D05346208A1ECC43F3OPEXCLILM21corp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Les,

Please see inline [Buno]

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Tuesday, December 13, 2016 3:07 AM
To: DECRAENE Bruno IMT/OLN
Cc: spring@ietf.org
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Bruno -

There is absolutely nothing in the draft which discusses implementation cho=
ices. In Section 3.3.7 there is a conceptual discussion that states in part:

"Mapping entries with a range greater than
   1 which are in conflict with other mapping entries have to internally
   be split into 2 or more "derived mapping entries".  The derived
   mapping entries then fall into two categories - those that are in
   conflict with other mapping entries and those which are NOT in
   conflict.  The former are ignored and the latter are used."

This isn't specifying an implementation data structure - it is simply stati=
ng the fact that for a mapping entry with a range greater than one has to b=
e to identify which portions of that mapping entry are "unusable" because o=
f conflict and which portions are usable. Conceptually this results in "der=
ived mapping entries"
[Bruno] Equally conceptually, this result in decompressing the Mapping Serv=
er (MS) range by attaching the MS SID to each FEC. Then we get a per FEC re=
solution. IMHO I find this concept less complex.
- but how one chooses to implement them is deliberately not stated. One cou=
ld (as you suggest below) expand the entry into individual per FEC entries =
- or one could associate some adjunct data structure which tracks the usabi=
lity status of each prefix - or one could recalculate the conflict on deman=
d whenever one needs to know the usable SID for a prefix and eliminate the =
need for additional data structures - or one could link child derived mappi=
ng entries to the "raw" received mapping entry. The draft is agnostic in th=
is regard.

[Bruno] My use of the term =AB data structure =BB was probably incorrect. H=
owever the draft does propose a specific algorithm (split mapping entries) =
with an associated "Information Model" (derived entries). Then slides and d=
iscussion highlight the complexity of this algorithm, which brings some spe=
cific additional points perceived as additional complexity. e.g. we now nee=
d to specify whether the preference is to use the protocol entries or the d=
erived entries.
My point is that such text, discussions and perceived complexity is specifi=
c to this algorithm, and standardizing this is debatable. e.g. some impleme=
ntation may feel obliged to use this algorithm. I'd rather have a text whic=
h is not specific to the algorithm used to achieve the end result/rule.

The point I am making is that there are two issues which only arise with "i=
gnore overlap only":

1)One has to come up with a way to track the usability of each prefix/SID p=
air covered by the advertised range while still remembering the original ad=
vertisement because the granularity of usability is NOT the raw advertiseme=
nt
[Bruno] Agreed. One has to "decompress" the Mapping Server range field. But=
 to me this is specific to the choice made to compress this information. Th=
e (de)compression algo seems reasonably simple to me.
If we don't want to handle the decompression on the receiving side, because=
 this is too complex, then we probably shouldn't compress it in the first p=
lace. This would typically require the network operator to decompress it in=
 the configuration file of the Mapping Server (sending side). Even for such=
 a non-software professional, the script seems doable. But on the protocol =
side, this would present a scaling impact to have the Mapping Server advert=
ise 100s of individual FEC. And the justification for this seem poor (it's =
too complex for a software company to write the code to decompress the rang=
e field, so we chose to ask N network operators to write the script to gene=
rate 100s of configuration lines, by mostly decompressing the range field).

2)When one implements the conflict resolution algorithm there are subtletie=
s which can affect the outcome which are peculiar to "ignore overlap only" =
because of the possible partial use of a raw mapping entry. See Slide 18 of=
 the slides for IETF97.
[Bruno] Exactly my point. This slide and subtleties are specific to the spe=
cific algorithm chosen. Alternatively, if you decompress the received mappi=
ng entries, you don't have such subtleties/complexity

Neither of these issue arise with "Ignore".

Now, can we specify the normative behavior of "ignore overlap only" such th=
at it is clear? Yes
Is it possible to implement "ignore overlap only"? Yes

However, bugs exist despite everyone's best efforts, and part of the argume=
nt for simplicity includes:


=B7         Simpler requirements make implementation bugs less likely

=B7         As conflict resolution is an error pathway it inevitably gets e=
xercised less often - so bugs are less likely to be found
[Bruno] Debatable. By design, we'll need redundant MS hence redundant MS en=
tries. Then if MS is used to incrementally deploy SR in a LDP network, whic=
h was its goal, we'll also have SID prefix entries. So in nominal case, we'=
ll have 2 or 3 SID advertisement per FEC, and the conflict resolution draft=
/code needs to handle this. (Whichever policy is chosen).

=B7         Additional test effort is then required to adequately test "ign=
ore overlap only"

=B7         All of the above could result in non-interoperable implementati=
ons

Perhaps the words used to describe "ignore overlap only" could be reduced o=
r revised to be more clear - but that would not alter the functional requir=
ements.
Everyone gets to decide what value to put on the differences between the tw=
o approaches, but I don't think I have incorrectly identified what is requi=
red to implement "ignore overlap only".
[Bruno] indeed. But the perceived complexity may be different: decompressin=
g the range field is relatively simple to understand, then selecting the be=
st SID among a set is nothing new in the routing space.
-- Bruno
   Les

From: bruno.decraene@orange.com<mailto:bruno.decraene@orange.com> [mailto:b=
runo.decraene@orange.com]
Sent: Monday, December 12, 2016 8:13 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Les,

On the complexity side, I have the feeling that a portion of this complexit=
y comes from editorial choices in the draft. And in particular that the tex=
t and concepts used for the per FEC policy could be simplified.

Indeed, what we need for a consistent behavior across all implementations, =
is to specify the behavior of the end result. We should not need to discuss=
 implementation internals.
A priori, the following text should be enough:

"In step 1, Prefix conflicts are resolved on a per FEC/IP prefix/Segment ba=
sis. For each FEC, the preferred SID is selected, as per the preference fun=
ction (e.g. best Preference field, then smallest SID)
                Note that following this step, each prefix covered by an IG=
P SID advertisement has exactly one SID.
In step 2, SID conflicts are resolved. For each SID, the preferred Prefix i=
s selected as per the preference function.
                Note that following this step, each SID has a single prefix=
. However some prefix may have no SID."

With the above text, there is no need for the draft to introduce generalize=
d mapping entries, nor to split original entries into multiple ranges, nor =
to clarify whether the info are to be taken from the original or derived en=
tries...

Then each implementation is free to choose its own data-structure and imple=
mentation details.
e.g one may split original entries into multiple ranges if this is your cho=
ice.
Another one may simply decompress the MS advertisement by adding the SID to=
 each prefix, as if it were coming from a prefixSID. (As the MS range is "e=
ssentially a compression scheme") so if its too complex to handle in its co=
mpress form, lets decompress).
e.g. after receiving the MS entry (128, 1.1.1.1/32 100 range 255), the SID =
100 (resp. 101...354) is added to the IP prefix 1.1.1.1 (resp. 1.1.1.2... 1=
.1.1.255)
Following this decompression, comparison is much more simple as there is no=
 more MS entries which are not directly comparable to prefix SID.
e.g. in the worst case, a prefix as a set of SID, and one is selected using=
 the preference function. A simple preference may be to select the highest =
Preference, and then the smallest SID to tie-brake.

In summary, having multiple advertisements for a routing entries and having=
 to select one, is not new in the routing space/area. In this case, the com=
plexity comes from the Mapping Server range, rather than the selection of o=
ne SID. So let's just decompress this Mapping Server range, and the problem=
 gets simpler and very similar to what we are used to in the routing space,=
 i.e. select the best route/path/entry


2) Preference function
For all policy except "ignore all", there is a need for a preference functi=
on. So this point is not a changing the complexity between a per advertisem=
ent policy (quarantine/new proposal) and a per FEC policy (e.g. ignore over=
lap)

Thanks,
--Bruno

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Friday, December 09, 2016 7:31 PM
To: DECRAENE Bruno IMT/OLN
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Bruno -

Welcome back to the discussion. :)
Inline.

From: bruno.decraene@orange.com<mailto:bruno.decraene@orange.com> [mailto:b=
runo.decraene@orange.com]
Sent: Friday, December 09, 2016 2:07 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Hi Les,

As a individual contributor, please find below some clarification questions=
 [Bruno]

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Monday, December 05, 2016 1:04 AM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives and

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution to

the problem. The authors are very sympathetic to this feedback and therefore

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



[Bruno] In the draft, the "Ignore" policy (=A73.3.1) ignores all conflictin=
g entries.

In your below proposition, the policy seems to pick the most preferred entr=
y. This looks like more similar to the "Quarantine" policy proposed in the =
draft (=A73.3.2)

Am I missing something?



[Les:] At the time "Ignore" was introduced (over a year ago) the notion of =
"SRMS preference" did not exist - that was only added in the most recent ve=
rsion of the draft.

We (the authors) feel that this is a useful construct because:



1)It provides an explicit basis on which to choose between conflicting entr=
ies.

2)It is particularly useful when bringing up a new SRMS as it allows the ad=
vertised values to be verified before they are used.



So, your comment is correct in that there is now a preference algorithm in =
use - whereas with the original definition of "Ignore" there was no prefere=
nce algorithm. But the sole criteria of the preference rule is the explicit=
ly configured preference - none of the other criteria proposed for Quaranti=
ne are used - and in particular we do not make partial use of a mapping ent=
ry as is the case with "Ignore Overlap Only".



I am happy to modify the nomenclature - but the point of this thread is not=
 to replace a new draft revision - it is to get the sense of the WG before =
we publish a new revision as to whether we should continue down the "Ignore=
 Overlap only" path or move to a simpler strategy - so let's not be too pic=
ky about the naming.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

[Bruno] I'm not sure what you are refering to by "preference". Is this the =
IGP "SRMS Preference sub-TLV" or is this the preference defined in the draf=
t (=A73.3.4)?



[Les:] It is the former.



Assuming you meant the SRMS preference, why limiting to this field, rather =
than including all fields defined in the draft preference algo?

Using the latter would reduce the risk of ignoring all entries (i.e. having=
 no entry in output of this algo). Also a priori,  a sort would not be requ=
ired as a single pass could select the most preferred entry.



[Les:] The point of the alternative proposal is a simplification. The prese=
ntation in Seoul (check out the slides) highlighted complexities in the imp=
lementation of "ignore-overlap-only" - in particular subtleties in the orde=
r in which an implementation looks at entries which could produce interoper=
ability issues even though implementations are using the same preference ru=
le. The alternative reduces the chances of these interoperability issues oc=
curring because the algorithm used is simpler and less subject to subtle im=
plementation differences.



If you want to argue that these are solvable problems I won't disagree with=
 you - it is a question of where we want to put our time and effort. A numb=
er of folks are commenting that they prefer to focus on fixing the configur=
ation and not invest  time in validating that conflict resolution is implem=
ented in an interoperable way. As we (the authors) have stated from the beg=
inning, we believe the emphasis should be on detecting and reporting the co=
nflicts - not spending cycles implementing the most robust means of trying =
to operate optimally while the misconfiguration exists. I know you disagree=
 on this point - but that is exactly what the WG is debating - not whether =
it is possible to make "ignore overlap only" work.



   Les



Thanks

-- Bruno



Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

___________________________________________________________________________=
______________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.


--_000_53C29892C857584299CBF5D05346208A1ECC43F3OPEXCLILM21corp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Texte brut Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
pre
	{mso-style-priority:99;
	mso-style-link:"Pr=E9format=E9 HTML Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Texte de bulles Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PrformatHTMLCar
	{mso-style-name:"Pr=E9format=E9 HTML Car";
	mso-style-priority:99;
	mso-style-link:"Pr=E9format=E9 HTML";
	font-family:Consolas;}
span.TextebrutCar
	{mso-style-name:"Texte brut Car";
	mso-style-priority:99;
	mso-style-link:"Texte brut";
	font-family:Consolas;}
span.TextedebullesCar
	{mso-style-name:"Texte de bulles Car";
	mso-style-priority:99;
	mso-style-link:"Texte de bulles";
	font-family:"Tahoma","sans-serif";}
p.HTMLPreformatted, li.HTMLPreformatted, div.HTMLPreformatted
	{mso-style-name:"HTML Preformatted";
	mso-style-link:"HTML Preformatted Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
p.PlainText, li.PlainText, div.PlainText
	{mso-style-name:"Plain Text";
	mso-style-link:"Plain Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
p.BalloonText, li.BalloonText, div.BalloonText
	{mso-style-name:"Balloon Text";
	mso-style-link:"Balloon Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle30
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle31
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle32
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle33
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle34
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:170724835;
	mso-list-type:hybrid;
	mso-list-template-ids:-763972788 67698689 67698691 67698693 67698689 67698=
691 67698693 67698689 67698691 67698693;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	font-family:Wingdings;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"FR" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Les,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Please see inline [Buno]<o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Les Gins=
berg (ginsberg) [mailto:ginsberg@cisco.com]
<br>
<b>Sent:</b> Tuesday, December 13, 2016 3:07 AM<br>
<b>To:</b> DECRAENE Bruno IMT/OLN<br>
<b>Cc:</b> spring@ietf.org<br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Bruno &=
#8211;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">There i=
s absolutely nothing in the draft which discusses implementation choices. I=
n Section 3.3.7 there is a conceptual discussion that states in part:<o:p><=
/o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&#8220;=
Mapping entries with a range greater than<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp; 1 which are in conflict with other mapping entries have to internally=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp; be split into 2 or more &quot;derived mapping entries&quot;.&nbsp; Th=
e derived<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp; mapping entries then fall into two categories - those that are in<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp; conflict with other mapping entries and those which are NOT in<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp; conflict.&nbsp; The former are ignored and the latter are used.&#8221=
;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">This is=
n&#8217;t specifying an implementation data structure &#8211; it is simply =
stating the fact that for a mapping entry with a range greater than one has=
 to be to identify which portions of that mapping
 entry are &#8220;unusable&#8221; because of conflict and which portions ar=
e usable. Conceptually this results in &#8220;derived mapping entries&#8221=
;</span><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">[Bruno] Equally conceptually, t=
his result in decompressing the Mapping Server (MS) range by attaching the =
MS SID to each FEC. Then we get a per FEC resolution. IMHO I find this conc=
ept less complex.<span style=3D"color:#1F497D"><o:p></o:p></span></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&#8211;=
 but how one chooses to implement them is deliberately not stated. One coul=
d (as you suggest below) expand the entry into individual per FEC entries &=
#8211; or one could associate some adjunct data structure
 which tracks the usability status of each prefix - or one could recalculat=
e the conflict on demand whenever one needs to know the usable SID for a pr=
efix and eliminate the need for additional data structures &#8211; or one c=
ould link child derived mapping entries
 to the &#8220;raw&#8221; received mapping entry. The draft is agnostic in =
this regard. &nbsp;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">[Bruno] My use of the term =AB&=
nbsp;data structure&nbsp;=BB was probably incorrect. However the draft does=
 propose a specific algorithm (split mapping entries) with an associated &#=
8220;Information Model&#8221; (derived entries). Then slides and
 discussion highlight the complexity of this algorithm, which brings some s=
pecific additional points perceived as additional complexity. e.g. we now n=
eed to specify whether the preference is to use the protocol entries or the=
 derived entries.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">My point is that such text, dis=
cussions and perceived complexity is specific to this algorithm, and standa=
rdizing this is debatable. e.g. some implementation may feel obliged to use=
 this algorithm. I&#8217;d rather have a text
 which is not specific to the algorithm used to achieve the end result/rule=
. <span style=3D"color:#1F497D">
<o:p></o:p></span></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">The poi=
nt I am making is that there are two issues which only arise with &#8220;ig=
nore overlap only&#8221;:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">1)One h=
as to come up with a way to track the usability of each prefix/SID pair cov=
ered by the advertised range while still remembering the original advertise=
ment because the granularity of usability
 is NOT the raw advertisement<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">[Bruno] Agreed. One has to &#82=
20;decompress&#8221; the Mapping Server range field. But to me this is spec=
ific to the choice made to compress this information. The (de)compression a=
lgo seems reasonably simple to me.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">If we don&#8217;t want to handl=
e the decompression on the receiving side, because this is too complex, the=
n we probably shouldn&#8217;t compress it in the first place. This would ty=
pically require the network operator to decompress
 it in the configuration file of the Mapping Server (sending side). Even fo=
r such a non-software professional, the script seems doable. But on the pro=
tocol side, this would present a scaling impact to have the Mapping Server =
advertise 100s of individual FEC.
 And the justification for this seem poor (it&#8217;s too complex for a sof=
tware company to write the code to decompress the range field, so we chose =
to ask N network operators to write the script to generate 100s of configur=
ation lines, by mostly decompressing the
 range field).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">2)When =
one implements the conflict resolution algorithm there are subtleties which=
 can affect the outcome which are peculiar to &#8220;ignore overlap only&#8=
221; because of the possible partial use of a raw
 mapping entry. See Slide 18 of the slides for IETF97.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">[Bruno] Exactly my point. This =
slide and subtleties are specific to the specific algorithm chosen. Alterna=
tively, if you decompress the received mapping entries, you don&#8217;t hav=
e such subtleties/complexity</span><span lang=3D"EN-US" style=3D"color:#1F4=
97D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Neither=
 of these issue arise with &#8220;Ignore&#8221;.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Now, ca=
n we specify the normative behavior of &#8220;ignore overlap only&#8221; su=
ch that it is clear? Yes<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Is it p=
ossible to implement &#8220;ignore overlap only&#8221;? Yes<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">However=
, bugs exist despite everyone&#8217;s best efforts, and part of the argumen=
t for simplicity includes:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-18.0pt;mso-list:l0 leve=
l1 lfo2"><![if !supportLists]><span lang=3D"EN-US" style=3D"font-family:Sym=
bol;color:#1F497D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US" style=3D"color:#1F497D"=
>Simpler requirements make implementation bugs less likely<o:p></o:p></span=
></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-18.0pt;mso-list:l0 leve=
l1 lfo2"><![if !supportLists]><span lang=3D"EN-US" style=3D"font-family:Sym=
bol;color:#1F497D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US" style=3D"color:#1F497D"=
>As conflict resolution is an error pathway it inevitably gets exercised le=
ss often &#8211; so bugs are less likely to be found<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">[Bruno] Debatable. By design, w=
e&#8217;ll need redundant MS hence redundant MS entries. Then if MS is used=
 to incrementally deploy SR in a LDP network, which was its goal, we&#8217;=
ll also have SID prefix entries. So in nominal case,
 we&#8217;ll have 2 or 3 SID advertisement per FEC, and the conflict resolu=
tion draft/code needs to handle this. (Whichever policy is chosen).
<span style=3D"color:#1F497D"><o:p></o:p></span></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-18.0pt;mso-list:l0 leve=
l1 lfo2"><![if !supportLists]><span lang=3D"EN-US" style=3D"font-family:Sym=
bol;color:#1F497D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US" style=3D"color:#1F497D"=
>Additional test effort is then required to adequately test &#8220;ignore o=
verlap only&#8221;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-18.0pt;mso-list:l0 leve=
l1 lfo2"><![if !supportLists]><span lang=3D"EN-US" style=3D"font-family:Sym=
bol;color:#1F497D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7=
.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US" style=3D"color:#1F497D"=
>All of the above could result in non-interoperable implementations<o:p></o=
:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Perhaps=
 the words used to describe &#8220;ignore overlap only&#8221; could be redu=
ced or revised to be more clear &#8211; but that would not alter the functi=
onal requirements.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Everyon=
e gets to decide what value to put on the differences between the two appro=
aches, but I don&#8217;t think I have incorrectly identified what is requir=
ed to implement &#8220;ignore overlap only&#8221;.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">[Bruno] indeed. But the perceiv=
ed complexity may be different: decompressing the range field is relatively=
 simple to understand, then selecting the best SID among a set is nothing n=
ew in the routing space.<span style=3D"color:#1F497D"><o:p></o:p></span></s=
pan></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">-- Brun=
o</span><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp; Les<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span =
lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&qu=
ot;sans-serif&quot;">
<a href=3D"mailto:bruno.decraene@orange.com">bruno.decraene@orange.com</a> =
[<a href=3D"mailto:bruno.decraene@orange.com">mailto:bruno.decraene@orange.=
com</a>]
<br>
<b>Sent:</b> Monday, December 12, 2016 8:13 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Les,<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">On the =
complexity side, I have the feeling that a portion of this complexity comes=
 from editorial choices in the draft. And in particular that the text and c=
oncepts used for the per FEC policy could
 be simplified.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Indeed,=
 what we need for a consistent behavior across all implementations, is to s=
pecify the behavior of the end result. We should not need to discuss implem=
entation internals.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">A prior=
i, the following text should be enough:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&quot;I=
n step 1, Prefix conflicts are resolved on a per FEC/IP prefix/Segment basi=
s. For each FEC, the preferred SID is selected, as per the preference funct=
ion (e.g. best Preference field, then smallest
 SID)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; Note that following this step, each prefix covered by an IGP SID a=
dvertisement has exactly one SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">In step=
 2, SID conflicts are resolved. For each SID, the preferred Prefix is selec=
ted as per the preference function.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; Note that following this step, each SID has a single prefix. Howev=
er some prefix may have no SID.&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">With th=
e above text, there is no need for the draft to introduce generalized mappi=
ng entries, nor to split original entries into multiple ranges, nor to clar=
ify whether the info are to be taken from
 the original or derived entries...<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Then ea=
ch implementation is free to choose its own data-structure and implementati=
on details.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">e.g one=
 may split original entries into multiple ranges if this is your choice.<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Another=
 one may simply decompress the MS advertisement by adding the SID to each p=
refix, as if it were coming from a prefixSID. (As the MS range is &quot;ess=
entially a compression scheme&quot;) so if its too
 complex to handle in its compress form, lets decompress).<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">e.g. af=
ter receiving the MS entry (128, 1.1.1.1/32 100 range 255), the SID 100 (re=
sp. 101...354) is added to the IP prefix 1.1.1.1 (resp. 1.1.1.2... 1.1.1.25=
5)
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Followi=
ng this decompression, comparison is much more simple as there is no more M=
S entries which are not directly comparable to prefix SID.<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">e.g. in=
 the worst case, a prefix as a set of SID, and one is selected using the pr=
eference function. A simple preference may be to select the highest Prefere=
nce, and then the smallest SID to tie-brake.&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">In summ=
ary, having multiple advertisements for a routing entries and having to sel=
ect one, is not new in the routing space/area. In this case, the complexity=
 comes from the Mapping Server range,
 rather than the selection of one SID. So let&#8217;s just decompress this =
Mapping Server range, and the problem gets simpler and very similar to what=
 we are used to in the routing space, i.e. select the best route/path/entry=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">2) Pref=
erence function<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">For all=
 policy except &quot;ignore all&quot;, there is a need for a preference fun=
ction. So this point is not a changing the complexity between a per adverti=
sement policy (quarantine/new proposal) and a per
 FEC policy (e.g. ignore overlap)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Thanks,=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">--Bruno=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Les Gins=
berg (ginsberg) [<a href=3D"mailto:ginsberg@cisco.com">mailto:ginsberg@cisc=
o.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:31 PM<br>
<b>To:</b> DECRAENE Bruno IMT/OLN<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Bruno &=
#8211;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Welcome=
 back to the discussion.
</span><span lang=3D"EN-US" style=3D"font-family:Wingdings;color:#1F497D">J=
</span><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Inline.=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span =
lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&qu=
ot;sans-serif&quot;">
<a href=3D"mailto:bruno.decraene@orange.com">bruno.decraene@orange.com</a> =
[<a href=3D"mailto:bruno.decraene@orange.com">mailto:bruno.decraene@orange.=
com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 2:07 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Hi Les,=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">As a in=
dividual contributor, please find below some clarification questions [Bruno=
]<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> spring [=
<a href=3D"mailto:spring-bounces@ietf.org">mailto:spring-bounces@ietf.org</=
a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Monday, December 05, 2016 1:04 AM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">When the problem addressed b=
y draft-ietf-spring-conflict-resolution was first
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">presented at IETF 94, the au=
thors defined the following priorities:<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1)Detect the problem<o:p></o=
:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2)Report the problem<o:p></o=
:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">This alerts the network oper=
ator to the existence of a conflict so that<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the configuration error can =
be corrected.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3)Define consistent behavior=
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">This avoids mis-forwarding w=
hile the conflict exists.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4)Don&#8217;t overengineer t=
he solution<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Given that it is impossible =
to know which of the conflicting entries<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">is the correct one, we shoul=
d apply a simple algorithm to resolve the conflict.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">5)Agree on the resolution be=
havior<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">The resolution behavior was =
deliberately the last point because it was
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">considered the least importa=
nt.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Input was received over the =
past year which emphasized the importance of<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">trying to &quot;maximize for=
warding&quot; in the presence of conflicts. Subsequent<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">revisions of the draft have =
tried to address this concern. However the authors
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">have repeatedly stressed tha=
t the solution being proposed
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(&quot;ignore overlap only&q=
uot;) was more complex than other offered alternatives and
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">would be more difficult to g=
uarantee interoperability because subtle
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">differences in an implementa=
tion could produce different results.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">At IETF97 significant feedba=
ck was received preferring a simpler solution to
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the problem. The authors are=
 very sympathetic to this feedback and therefore
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">are proposing a solution bas=
ed on what the draft defines as the &quot;Ignore&quot;
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">policy - where all entries w=
hich are in conflict are ignored. We believe this
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">is far more desirable and al=
igns with the priorities listed above.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">[Bru=
no] In the draft, the &#8220;Ignore&#8221; policy (=A73.3.1) ignores all co=
nflicting entries.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">In y=
our below proposition, the policy seems to pick the most preferred entry. T=
his looks like more similar to the &#8220;Quarantine&#8221; policy proposed=
 in the draft (=A73.3.2)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Am I=
 missing something?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">[Les:] At the time &#8220;Ignore&#8221; was introduced (over a year ago) =
the notion of &#8220;SRMS preference&#8221; did not exist &#8211; that was =
only added in the most recent version of the draft.<o:p></o:p></span></i></=
b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">We (the authors) feel that this is a useful construct because:<o:p></o:p>=
</span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">1)It provides an explicit basis on which to choose between conflicting en=
tries.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">2)It is particularly useful when bringing up a new SRMS as it allows the =
advertised values to be verified before they are used.<o:p></o:p></span></i=
></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">So, your comment is correct in that there is now a preference algorithm i=
n use &#8211; whereas with the original definition of &#8220;Ignore&#8221; =
there was no preference algorithm. But the sole criteria
 of the preference rule is the explicitly configured preference &#8211; non=
e of the other criteria proposed for Quarantine are used &#8211; and in par=
ticular we do not make partial use of a mapping entry as is the case with &=
#8220;Ignore Overlap Only&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">I am happy to modify the nomenclature &#8211; but the point of this threa=
d is not to replace a new draft revision &#8211; it is to get the sense of =
the WG before we publish a new revision as to whether
 we should continue down the &#8220;Ignore Overlap only&#8221; path or move=
 to a simpler strategy &#8211; so let&#8217;s not be too picky about the na=
ming.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">We outline the proposed solu=
tion below and would like to receive feedback from
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the WG before publishing the=
 next revision of the draft.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">&nbsp;&nbsp; Les (on behalf =
of the authors)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">New Proposal<o:p></o:p></=
span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">In the latest revision of=
 the draft &quot;SRMS Preference&quot; was introduced. This
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">provides a way for a nume=
rical preference to be explicitly associated with an
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">SRMS advertisement. Using=
 this an operator can indicate which advertisement is
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">to be preferred when a co=
nflict is present. The authors think this is a useful
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">addition and we therefore=
 want to include this in the new solution.<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">The new preference rule u=
sed to resolve conflicts is defined as follows:<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">A given mapping entry =
is compared against all mapping entries in the database
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">with a preference grea=
ter than or equal to its own. If there is a conflict,
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">the mapping entry with=
 lower preference is ignored. If two mapping entries are<o:p></o:p></span><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">in conflict and have e=
qual preference then both entries are ignored.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">Implementation of this po=
licy is defined as follows:<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 1: Within a singl=
e address-family/algorithm/topology sort entries
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">based on preference <o=
:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">[Bru=
no] I&#8217;m not sure what you are refering to by &#8220;preference&#8221;=
. Is this the IGP &#8220;SRMS Preference sub-TLV&#8221; or is this the pref=
erence defined in the draft (=A73.3.4)?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">[Les:] It is the former.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Assu=
ming you meant the SRMS preference, why limiting to this field, rather than=
 including all fields defined in the draft preference algo?<o:p></o:p></spa=
n></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Usin=
g the latter would reduce the risk of ignoring all entries (i.e. having no =
entry in output of this algo). Also a priori, &nbsp;a sort would not be req=
uired as a single pass could select the most
 preferred entry.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">[Les:] The point of the alternative proposal is a simplification. The pre=
sentation in Seoul (check out the slides) highlighted complexities in the i=
mplementation of &#8220;ignore-overlap-only&#8221;
 &#8211; in particular subtleties in the order in which an implementation l=
ooks at entries which could produce interoperability issues even though imp=
lementations are using the same preference rule. The alternative reduces th=
e chances of these interoperability issues
 occurring because the algorithm used is simpler and less subject to subtle=
 implementation differences.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">If you want to argue that these are solvable problems I won&#8217;t disag=
ree with you &#8211; it is a question of where we want to put our time and =
effort. A number of folks are commenting that they
 prefer to focus on fixing the configuration and not invest &nbsp;time in v=
alidating that conflict resolution is implemented in an interoperable way. =
As we (the authors) have stated from the beginning, we believe the emphasis=
 should be on detecting and reporting
 the conflicts &#8211; not spending cycles implementing the most robust mea=
ns of trying to operate optimally while the misconfiguration exists. I know=
 you disagree on this point &#8211; but that is exactly what the WG is deba=
ting &#8211; not whether it is possible to make &#8220;ignore
 overlap only&#8221; work.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">&nbsp;&nbsp; Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Than=
ks<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">-- B=
runo<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 2: Starting with =
the lowest preference entries, resolve prefix conflicts
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">using the above prefer=
ence rule. The output is an active policy per topology.<o:p></o:p></span></=
i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 3: Take the outpu=
ts from Step 2 and again sort them by preference
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 4: Starting with =
the lowest preference entries, resolve SID conflicts
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">using the above prefer=
ence rule<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></spa=
n></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">The output from Step 4=
 is then the current Active Policy.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Here are a few examples. Eac=
h mapping entry is represented by the tuple:<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(Preference, Prefix/mask Ind=
ex range &lt;#&gt;)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 1:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 100)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (149, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (148, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 3 conflicts with entry=
 2, it is ignored.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 2 conflicts with entry=
 1, it is ignored.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 1.1.1.1/32 100 range 1=
00)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 2:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 100)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (150, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (150, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (150, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 1 conflicts with entry=
 2, both are marked as ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 3 conflicts with entry=
 2. It is marked as ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 4 has no conflicts wit=
h any entries<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 2.2.2.1/32 1000 range =
1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 3:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 500)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (150, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (150, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (150, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 1 conflicts with entri=
es 2, 3, and&nbsp; 4. All entries are marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Empty<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 4:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (149, 1.1.1.10/32 200 ran=
ge 300)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (149, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (148, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 4 conflicts with entry=
 2. It is marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 2 conflicts with entry=
 3. Entries 2 and 3 are marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 1.1.1.1/32 100 range 1=
0)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
</div>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">_=
___________________________________________________________________________=
_____________________________________________<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;"><=
o:p>&nbsp;</o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">C=
e message et ses pieces jointes peuvent contenir des informations confident=
ielles ou privilegiees et ne doivent donc<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">p=
as etre diffuses, exploites ou copies sans autorisation. Si vous avez recu =
ce message par erreur, veuillez le signaler<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">a=
 l'expediteur et le detruire ainsi que les pieces jointes. Les messages ele=
ctroniques etant susceptibles d'alteration,<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">O=
range decline toute responsabilite si ce message a ete altere, deforme ou f=
alsifie. Merci.<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;"><=
o:p>&nbsp;</o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">T=
his message and its attachments may contain confidential or privileged info=
rmation that may be protected by law;<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">t=
hey should not be distributed, used or copied without authorisation.<o:p></=
o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">I=
f you have received this email in error, please notify the sender and delet=
e this message and its attachments.<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">A=
s emails may be altered, Orange is not liable for messages that have been m=
odified, changed or falsified.<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">T=
hank you.<o:p></o:p></span></pre>
</div>
</div>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">_=
___________________________________________________________________________=
_____________________________________________<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;"><=
o:p>&nbsp;</o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">C=
e message et ses pieces jointes peuvent contenir des informations confident=
ielles ou privilegiees et ne doivent donc<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">p=
as etre diffuses, exploites ou copies sans autorisation. Si vous avez recu =
ce message par erreur, veuillez le signaler<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">a=
 l'expediteur et le detruire ainsi que les pieces jointes. Les messages ele=
ctroniques etant susceptibles d'alteration,<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">O=
range decline toute responsabilite si ce message a ete altere, deforme ou f=
alsifie. Merci.<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;"><=
o:p>&nbsp;</o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">T=
his message and its attachments may contain confidential or privileged info=
rmation that may be protected by law;<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">t=
hey should not be distributed, used or copied without authorisation.<o:p></=
o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">I=
f you have received this email in error, please notify the sender and delet=
e this message and its attachments.<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">A=
s emails may be altered, Orange is not liable for messages that have been m=
odified, changed or falsified.<o:p></o:p></span></pre>
<pre><span style=3D"font-size:10.0pt;font-family:&quot;Courier New&quot;">T=
hank you.<o:p></o:p></span></pre>
</div>
</div>
</div>
<PRE>______________________________________________________________________=
___________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.
</PRE></body>
</html>

--_000_53C29892C857584299CBF5D05346208A1ECC43F3OPEXCLILM21corp_--


From nobody Fri Dec 16 06:47:08 2016
Return-Path: <bruno.decraene@orange.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C01D412963E; Fri, 16 Dec 2016 06:47:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.389
X-Spam-Level: 
X-Spam-Status: No, score=-4.389 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, LOCALPART_IN_SUBJECT=1.107, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, RP_MATCHES_RCVD=-2.896, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id riD47pij8kKs; Fri, 16 Dec 2016 06:47:04 -0800 (PST)
Received: from relais-inet.orange.com (mta135.mail.business.static.orange.com [80.12.70.35]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 878FE129663; Fri, 16 Dec 2016 06:47:01 -0800 (PST)
Received: from opfednr06.francetelecom.fr (unknown [xx.xx.xx.70]) by opfednr27.francetelecom.fr (ESMTP service) with ESMTP id 92A91A08A5; Fri, 16 Dec 2016 15:46:59 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.24]) by opfednr06.francetelecom.fr (ESMTP service) with ESMTP id 697061A2999; Fri, 16 Dec 2016 15:46:59 +0100 (CET)
Received: from OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06]) by OPEXCLILM7D.corporate.adroot.infra.ftgroup ([fe80::9044:c5ee:4dd2:4f16%19]) with mapi id 14.03.0319.002; Fri, 16 Dec 2016 15:46:59 +0100
From: <bruno.decraene@orange.com>
To: "draft-ietf-spring-ipv6-use-cases@ietf.org" <draft-ietf-spring-ipv6-use-cases@ietf.org>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: draft-ietf-spring-ipv6-use-cases - shepherd review
Thread-Index: AdJXqlEYjoPjwSyiQZm/+o0EBVlxZg==
Date: Fri, 16 Dec 2016 14:46:58 +0000
Message-ID: <17317_1481899619_5853FE63_17317_744_1_53C29892C857584299CBF5D05346208A1ECC6721@OPEXCLILM21.corporate.adroot.infra.ftgroup>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.168.234.1]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/pbPqN80dlMovtyZ1AZBVDe67EIM>
Cc: "spring-chairs@ietf.org" <spring-chairs@ietf.org>
Subject: [spring] draft-ietf-spring-ipv6-use-cases - shepherd review
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 16 Dec 2016 14:47:07 -0000

Hi authors,

As the document shepherd, I have reviewed draft-ietf-spring-ipv6-use-cases.
I'm generally fine with the document, but do have some comments. Please fin=
d them below.

Best regards,
Bruno

=3D=3D=3D=3D=3D Major comments
Section 2.3.0 (intro of 2.3) and 2.3.1 are related to Service Function Chai=
ning and Data Center Network Overlay use cases.
Hence they have an adherence with the SFC and NVO3 WG.
Have those WG been presented this document, kept up to date, and are aligne=
d with the requirements as written?
Besides, those texts are unchanged since early 2014, while the situation ma=
y have change since then, especially since both SFC and NVO3 WG are "recent=
". Especially SFC which has been formed at the same period (23/12/2013). A =
priori, their work is likely to have progressed since then, which does not =
seem reflected in this draft.

=3D=3D=3D=3D=3D Minor comments

=A72 IPv6 SPRING use cases
There are a few paragraphs ("In addition....in the above use case.") which =
describes that the lack of MPLS support for IPv6 only networks is a use cas=
e for the IPv6 SR dataplane. However it seems to me that MPLS SR support IP=
v6 FEC/segment hence would have been a solution for such use case. So it do=
es not seem to me a use case mandating a new dataplane (IPv6 SR).
On a related point, the term "IPv6-only" does not seem well defined as it c=
ould sometime means "non-IPv4" and sometimes "non-MPLS", which is different.
---
  "In addition it is worth to note that in today's MPLS dual-stack
   networks IPv4 traffic is labeled while IPv6 traffic is usually
   natively routed, not label-switched.  Therefore in order to be able
   to provide Traffic Engineering "like" capabilities for IPv6 traffic
   additional/alternative encapsulation mechanisms would be required."
=20=20=20
The first observation does not seem enough to require the new of a new data=
-plane. As discussed above, this may be caused by a lack of support for IPv=
6 in existing MPLS signaling protocols. MPLS SR seems to be a valid option.=
 So it does not seem to be a use case mandating a new dataplane (IPv6 SR).
---
"   2.  There is a strict lack of an MPLS dataplane"
May be adding "in a portion of the end to end path". (as some may have MPLS=
 in the core, yet not in the access/DC/home network...)
---
   "This section will describe some scenarios where MPLS may not be
   present and it will highlight how the SPRING architecture could be
   used to address such use cases, particularly, when an MPLS data plane
   is neither present nor desired."

May be rephrasing to avoid saying twice in the same sentence that MPLS is n=
ot present.=20
---
"   In any environment with requirements such as those listed above, an
   IPv6 data plane provides a powerful combination of capabilities for a
   network operator to realize benefits in explicit routing, protection
   and restoration, high routing scalability, traffic engineering,
   service chaining, service differentiation and application flexibility
   via programmability."

[...]
=20=20=20
"   In addition to the use cases described in this document the SPRING
   architecture can be applied to all the use cases described in
   [RFC7855] for the SPRING MPLS data plane, when an IPv6 data plane is
   present.  Here there is a summary of those use cases:

   1.  Traffic Engineering

   2.  Disjoint paths in dual-plane networks

   3.  Fast Reroute: Protecting node and adjacency segments

   4.  OAM/monitoring

   5.  Egress Peering Engineering"


I feel that there is redundancy with those 2 paragraphs. In particular the =
catalog of usages/benefits is duplicated.
---
=A72.2
It's not clear to me what "egress vectoring" is. (May be because this Acces=
s Network section seems to refer to a specific access techno (DOCSIS) which=
 I'm not familiar with.) Could you add a reference?=20=20

---
=A72.3

   "A service provider may choose to have these service functions
   performed external to the routing infrastructure, specifically on
   either dedicated physical servers or within VMs running on a
   virtualization platform."
=20=20=20
It's not clear to me what is meant by "routing infrastructure", especially =
when opposed to servers/VM. Indeed, routers can now run in servers/VM. So m=
ay be rephrasing the whole point would help.
---
Introduction part (2.3.0) is mostly related to service chaining, although t=
his is not reflected by the title. It is referencing two WG documents from =
the SFC WG. Does this mean that the SFC WG is presenting those requirements=
 in the SPRING WG?  This may require involving the SFC WG in this last call=
. And some elaboration why the SFC WG solutions are not adequate/enough. (e=
.g. is this a need to combine both routing instructions and service instruc=
tion in order to both choose the route and the sequence of services functio=
n? In particular when NHS meta data is not needed?)

This service chaining text seems to originate from draft-martin-spring-segm=
ent-routing-ipv6-use-cases-00 i.e .from march 2014. And the text is unchang=
ed since draft-martin-spring-segment-routing-ipv6-use-cases-01 i.e from Apr=
il 4, 2014.This seems like a long time in this domain: mostly the whole dur=
ation of the SFC WG. Is this still aligned with the work that the SFC WG ha=
s done in that 2.5 years period?

---
2.3.1 is mostly related to VPN overlay. In the IETF, this seem in scope to =
the NVO3 WG. Does this mean that the NVO3 WG is presenting those requiremen=
ts in the SPRING WG? This may require involving the NVO3 WG in this last ca=
ll. Especially since NVO3 seems to have enough encapsulation techniques to =
deal with, and it's not clear to me that NVO3 needs one more.

Besides, this section seems to come from 2014 and draft-baker-openstack-ipv=
6-model which has expired 18 month ago. 2014 may be a long time ago in the =
DC environment. Is this approach still up to date/relevant?
----
"The 128-bit PE Ingress ID in the Segment Router Header (SRH) policy list"
Name of the field and structure seems to have changed in the 6MAN draft. po=
ssibly:
:s/PE Ingress ID/Ingress Node TLV
:s/policy list/Optional TLV objects

----
2.3.4
"The details about using Segment Routing together with NSH will be describe=
d in a separate document."
This sentence has been written in March 2014 in draft-martin-spring-segment=
-routing-ipv6-use-cases-00. What's the update on this?
I would expect that either his separate document has been written and shoul=
d be reference, or this subject has not generated enough interest and hence=
 is dead.=20
Also this section seems to say that IPv6 SR does not replace NHS. While sec=
tion 2.3.0 (intro of 2.3) seems to say that service chaining is a use case =
for IPv6 SR.

More generally, I'm a bit surprised that this section has never been update=
d since the creation of the doc in early 2014. Has nothing changed this the=
n? As this been implemented and deployed? What's the feedback?

=3D=3D=3D=3D=3D Nits:
=20
Reference:
Some references are outdated (cf idnits), in particular [I-D.previdi-6man-s=
egment-routing-header].

=A72.3
"The term "Service Function Chain", as defined in [RFC7498], it is used"
:s/it is/is

___________________________________________________________________________=
______________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.


From nobody Wed Dec 21 06:39:47 2016
Return-Path: <bruno.decraene@orange.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4C24412967E for <spring@ietfa.amsl.com>; Wed, 21 Dec 2016 06:39:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.018
X-Spam-Level: 
X-Spam-Status: No, score=-5.018 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Fu1PnLI2Efka for <spring@ietfa.amsl.com>; Wed, 21 Dec 2016 06:39:42 -0800 (PST)
Received: from relais-inet.orange.com (mta239.mail.business.static.orange.com [80.12.66.39]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BF16B12955A for <spring@ietf.org>; Wed, 21 Dec 2016 06:39:41 -0800 (PST)
Received: from opfedar04.francetelecom.fr (unknown [xx.xx.xx.6]) by opfedar26.francetelecom.fr (ESMTP service) with ESMTP id CB5281C0719; Wed, 21 Dec 2016 15:39:39 +0100 (CET)
Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.24]) by opfedar04.francetelecom.fr (ESMTP service) with ESMTP id A9D4A400B6; Wed, 21 Dec 2016 15:39:39 +0100 (CET)
Received: from OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06]) by OPEXCLILM7D.corporate.adroot.infra.ftgroup ([fe80::9044:c5ee:4dd2:4f16%19]) with mapi id 14.03.0319.002; Wed, 21 Dec 2016 15:39:39 +0100
From: <bruno.decraene@orange.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDdlkBwAA8oUZACVgRskA==
Date: Wed, 21 Dec 2016 14:39:39 +0000
Message-ID: <2599_1482331179_585A942B_2599_15892_1_53C29892C857584299CBF5D05346208A1ECCA7D8@OPEXCLILM21.corporate.adroot.infra.ftgroup>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <13659_1481278031_584A824F_13659_1413_1_53C29892C857584299CBF5D05346208A1ECBEDCF@OPEXCLILM21.corporate.adroot.infra.ftgroup> <dc0ee71a612d433dba6e6d73b274ec6f@XCH-ALN-001.cisco.com>
In-Reply-To: <dc0ee71a612d433dba6e6d73b274ec6f@XCH-ALN-001.cisco.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.168.234.5]
Content-Type: multipart/alternative; boundary="_000_53C29892C857584299CBF5D05346208A1ECCA7D8OPEXCLILM21corp_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/T_oBpR7AaF4cq48MuPLV0K0Z2LE>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 21 Dec 2016 14:39:45 -0000

--_000_53C29892C857584299CBF5D05346208A1ECCA7D8OPEXCLILM21corp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Les,

Still as an individual contributor, SID conflict resolution is about a trad=
e-off between implementation complexity and network availability. Hence eva=
luating the consequences on network availability is at least as important a=
s evaluating the implementation complexity; especially as the former is eas=
ier to quantify while the latter may be implementation specific. So on this=
 FEC/network availability standpoint, please find below three comments.

1) The slides presented might IMHO slightly mislead a reader:
- the discussion on network availability compares "Quarantine" vs "Ignore O=
verlap"
- the conclusion discuss "Ignore Overlap" vs "Ignore"

So they are comparing different things, while a quick reader may assume tha=
t apples were compared to apples.
Note that I'm not saying (and not thinking) that this is misleading on purp=
ose. I'm expressing the way I read it.


2) Regarding the new proposal, post Seoul, it is vocal on the complexity si=
de, but not on the network availability side which is not evaluated. This d=
oes not helps the WG understanding of the trade-off involved and the making=
 of an informed decision.
I'm even wondering if the network availability has been considered since by=
 default, this proposal seems to kill, by design, the SRMS and SR-LDP inter=
-working.
SRMS has been designed in order to allow for the inter-working with LDP, in=
 a brown-field scenario where SR is introduced in a LDP MPLS network.
e.g. a typical set of advertisements would be
1. PrefixSID: (192, 1.1.1.1/32 100 range 1)
2. MS:        (128, 1.1.1.1/32 100 range 255)

With this simple example, not even having a configuration error but using a=
 nominal configuration, the MS advertisement would be ignored with the igno=
re policy, hence the LDP interwork would not work, and all LDP/non-SR nodes=
 would loose SID hence loose SR connectivity.
Eventually, you may change the algorithm, to look beyond the most preferred=
 entry, and check whether the SIDs are really different or not. And if not,=
 change the algo to pick the largest range rather than the highest preferen=
ce. But this is adding complexity to cover a specific case, while keeping t=
he solution weak in term of network availability, in the general case. e.g.=
 if we do have a different SID, many  prefix (99%) would lose their SID.

3) Finally, when discussing "Ignore Overlap", a typical quote from the auth=
ors is "maximize forwarding" or "operate optimally", as if we were trying t=
o optimize for the last bit. But note that "Ignore Overlap" is _not_ maximi=
zing forwarding.  Maximizing forwarding would be much more complex, and nob=
ody on the list has even tried for this, including draft-ietf-spring-confli=
ct-resolution.
e.g. with following advertisements with a misconfiguration
1. PrefixSID: (192, 1.1.1.1/32 101 range 1)
2. MS:        (128, 1.1.1.1/32 100 range 255)

During prefix conflict, for 1.1.1.1/32 Ignore Overlap selects the SID from =
prefixSID entry, which will latter have a SID conflict with the MS entry (S=
ID 101, prefixes 1.1.1.1 vs 1.1.1.2). As a result, 1.1.1.2 won't get a SID.
In this specific case, a solution "maximizing the forwarding" would have ig=
nored the PrefixSID. But in the general case, "maximizing the forwarding" m=
ay require evaluating all options, and then pick the best one based on all =
results.


So please let's keep evaluating the impact on the network availability. Ber=
lin presentation was a good example on this.

--Bruno


From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Friday, December 09, 2016 7:31 PM
To: DECRAENE Bruno IMT/OLN
Cc: spring@ietf.org
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Bruno -

Welcome back to the discussion. :)
Inline.

From: bruno.decraene@orange.com<mailto:bruno.decraene@orange.com> [mailto:b=
runo.decraene@orange.com]
Sent: Friday, December 09, 2016 2:07 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Hi Les,

As a individual contributor, please find below some clarification questions=
 [Bruno]

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Monday, December 05, 2016 1:04 AM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives and

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution to

the problem. The authors are very sympathetic to this feedback and therefore

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



[Bruno] In the draft, the "Ignore" policy (=A73.3.1) ignores all conflictin=
g entries.

In your below proposition, the policy seems to pick the most preferred entr=
y. This looks like more similar to the "Quarantine" policy proposed in the =
draft (=A73.3.2)

Am I missing something?



[Les:] At the time "Ignore" was introduced (over a year ago) the notion of =
"SRMS preference" did not exist - that was only added in the most recent ve=
rsion of the draft.

We (the authors) feel that this is a useful construct because:



1)It provides an explicit basis on which to choose between conflicting entr=
ies.

2)It is particularly useful when bringing up a new SRMS as it allows the ad=
vertised values to be verified before they are used.



So, your comment is correct in that there is now a preference algorithm in =
use - whereas with the original definition of "Ignore" there was no prefere=
nce algorithm. But the sole criteria of the preference rule is the explicit=
ly configured preference - none of the other criteria proposed for Quaranti=
ne are used - and in particular we do not make partial use of a mapping ent=
ry as is the case with "Ignore Overlap Only".



I am happy to modify the nomenclature - but the point of this thread is not=
 to replace a new draft revision - it is to get the sense of the WG before =
we publish a new revision as to whether we should continue down the "Ignore=
 Overlap only" path or move to a simpler strategy - so let's not be too pic=
ky about the naming.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

[Bruno] I'm not sure what you are refering to by "preference". Is this the =
IGP "SRMS Preference sub-TLV" or is this the preference defined in the draf=
t (=A73.3.4)?



[Les:] It is the former.



Assuming you meant the SRMS preference, why limiting to this field, rather =
than including all fields defined in the draft preference algo?

Using the latter would reduce the risk of ignoring all entries (i.e. having=
 no entry in output of this algo). Also a priori,  a sort would not be requ=
ired as a single pass could select the most preferred entry.



[Les:] The point of the alternative proposal is a simplification. The prese=
ntation in Seoul (check out the slides) highlighted complexities in the imp=
lementation of "ignore-overlap-only" - in particular subtleties in the orde=
r in which an implementation looks at entries which could produce interoper=
ability issues even though implementations are using the same preference ru=
le. The alternative reduces the chances of these interoperability issues oc=
curring because the algorithm used is simpler and less subject to subtle im=
plementation differences.



If you want to argue that these are solvable problems I won't disagree with=
 you - it is a question of where we want to put our time and effort. A numb=
er of folks are commenting that they prefer to focus on fixing the configur=
ation and not invest  time in validating that conflict resolution is implem=
ented in an interoperable way. As we (the authors) have stated from the beg=
inning, we believe the emphasis should be on detecting and reporting the co=
nflicts - not spending cycles implementing the most robust means of trying =
to operate optimally while the misconfiguration exists. I know you disagree=
 on this point - but that is exactly what the WG is debating - not whether =
it is possible to make "ignore overlap only" work.



   Les



Thanks

-- Bruno



Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

___________________________________________________________________________=
______________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.


--_000_53C29892C857584299CBF5D05346208A1ECCA7D8OPEXCLILM21corp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:m=3D"http://schema=
s.microsoft.com/office/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html=
40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Texte brut Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
pre
	{mso-style-priority:99;
	mso-style-link:"Pr=E9format=E9 HTML Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Texte de bulles Car";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.PrformatHTMLCar
	{mso-style-name:"Pr=E9format=E9 HTML Car";
	mso-style-priority:99;
	mso-style-link:"Pr=E9format=E9 HTML";
	font-family:Consolas;}
span.TextebrutCar
	{mso-style-name:"Texte brut Car";
	mso-style-priority:99;
	mso-style-link:"Texte brut";
	font-family:Consolas;}
p.PlainText, li.PlainText, div.PlainText
	{mso-style-name:"Plain Text";
	mso-style-link:"Plain Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
span.EmailStyle23
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
p.HTMLPreformatted, li.HTMLPreformatted, div.HTMLPreformatted
	{mso-style-name:"HTML Preformatted";
	mso-style-link:"HTML Preformatted Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
span.EmailStyle26
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle27
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.TextedebullesCar
	{mso-style-name:"Texte de bulles Car";
	mso-style-priority:99;
	mso-style-link:"Texte de bulles";
	font-family:"Tahoma","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"FR" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Les,<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Still a=
s an individual contributor, SID conflict resolution is about
</span><span lang=3D"EN-US" style=3D"color:#1F497D">a trade-off between imp=
lementation complexity and network availability. Hence evaluating the conse=
quences on network availability is at least as important as evaluating the =
implementation complexity; especially
 as the former is easier to quantify while the latter may be implementation=
 specific. So on this FEC/network availability standpoint, please find belo=
w three comments.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">1) The =
slides presented might IMHO slightly mislead a reader:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">- the d=
iscussion on network availability compares &quot;Quarantine&quot; vs &quot;=
Ignore Overlap&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">- the c=
onclusion discuss &quot;Ignore Overlap&quot; vs &quot;Ignore&quot;<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">So they=
 are comparing different things, while a quick reader may assume that apple=
s were compared to apples.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Note th=
at I'm not saying (and not thinking) that this is misleading on purpose. I'=
m expressing the way I read it.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">2) Rega=
rding the new proposal, post Seoul, it is vocal on the complexity side, but=
 not on the network availability side which is not evaluated. This does not=
 helps the WG understanding of the trade-off
 involved and the making of an informed decision.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">I'm eve=
n wondering if the network availability has been considered since by defaul=
t, this proposal seems to kill, by design, the SRMS and SR-LDP inter-workin=
g.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">SRMS ha=
s been designed in order to allow for the inter-working with LDP, in a brow=
n-field scenario where SR is introduced in a LDP MPLS network.<o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">e.g. a =
typical set of advertisements would be<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">1. Pref=
ixSID: (192, 1.1.1.1/32 100 range 1)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">2. MS: =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(128, 1.1.1.1/32 100 range 255)<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">With th=
is simple example, not even having a configuration error but using a nomina=
l configuration, the MS advertisement would be ignored with the ignore poli=
cy, hence the LDP interwork would not
 work, and all LDP/non-SR nodes would loose SID hence loose SR connectivity=
.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Eventua=
lly, you may change the algorithm, to look beyond the most preferred entry,=
 and check whether the SIDs are really different or not. And if not, change=
 the algo to pick the largest range rather
 than the highest preference. But this is adding complexity to cover a spec=
ific case, while keeping the solution weak in term of network availability,=
 in the general case. e.g. if we do have a different SID, many&nbsp; prefix=
 (99%) would lose their SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">3) Fina=
lly, when discussing &quot;Ignore Overlap&quot;, a typical quote from the a=
uthors is &quot;maximize forwarding&quot; or &quot;operate optimally&quot;,=
 as if we were trying to optimize for the last bit. But note that &quot;Ign=
ore
 Overlap&quot; is _not_ maximizing forwarding.&nbsp; Maximizing forwarding =
would be much more complex, and nobody on the list has even tried for this,=
 including draft-ietf-spring-conflict-resolution.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">e.g. wi=
th following advertisements with a misconfiguration<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">1. Pref=
ixSID: (192, 1.1.1.1/32 101 range 1)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">2. MS:&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (128, 1.1.1.1/32 100 range 255)<o=
:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">During =
prefix conflict, for 1.1.1.1/32 Ignore Overlap selects the SID from prefixS=
ID entry, which will latter have a SID conflict with the MS entry (SID 101,=
 prefixes 1.1.1.1 vs 1.1.1.2). As a result,
 1.1.1.2 won't get a SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">In this=
 specific case, a solution &quot;maximizing the forwarding&quot; would have=
 ignored the PrefixSID. But in the general case, &quot;maximizing the forwa=
rding&quot; may require evaluating all options, and then pick
 the best one based on all results.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">So plea=
se let&#8217;s keep evaluating the impact on the network availability. Berl=
in presentation was a good example on this.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">--Bruno=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Les Gins=
berg (ginsberg) [mailto:ginsberg@cisco.com]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:31 PM<br>
<b>To:</b> DECRAENE Bruno IMT/OLN<br>
<b>Cc:</b> spring@ietf.org<br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Bruno &=
#8211;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Welcome=
 back to the discussion.
</span><span lang=3D"EN-US" style=3D"font-family:Wingdings;color:#1F497D">J=
</span><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Inline.=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span =
lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&qu=
ot;sans-serif&quot;">
<a href=3D"mailto:bruno.decraene@orange.com">bruno.decraene@orange.com</a> =
[<a href=3D"mailto:bruno.decraene@orange.com">mailto:bruno.decraene@orange.=
com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 2:07 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">Hi Les,=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D">As a in=
dividual contributor, please find below some clarification questions [Bruno=
]<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p>&n=
bsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> spring [=
<a href=3D"mailto:spring-bounces@ietf.org">mailto:spring-bounces@ietf.org</=
a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Monday, December 05, 2016 1:04 AM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">When the problem addressed b=
y draft-ietf-spring-conflict-resolution was first
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">presented at IETF 94, the au=
thors defined the following priorities:<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1)Detect the problem<o:p></o=
:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2)Report the problem<o:p></o=
:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">This alerts the network oper=
ator to the existence of a conflict so that<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the configuration error can =
be corrected.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3)Define consistent behavior=
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">This avoids mis-forwarding w=
hile the conflict exists.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4)Don&#8217;t overengineer t=
he solution<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Given that it is impossible =
to know which of the conflicting entries<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">is the correct one, we shoul=
d apply a simple algorithm to resolve the conflict.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">5)Agree on the resolution be=
havior<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">The resolution behavior was =
deliberately the last point because it was
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">considered the least importa=
nt.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Input was received over the =
past year which emphasized the importance of<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">trying to &quot;maximize for=
warding&quot; in the presence of conflicts. Subsequent<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">revisions of the draft have =
tried to address this concern. However the authors
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">have repeatedly stressed tha=
t the solution being proposed
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(&quot;ignore overlap only&q=
uot;) was more complex than other offered alternatives and
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">would be more difficult to g=
uarantee interoperability because subtle
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">differences in an implementa=
tion could produce different results.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">At IETF97 significant feedba=
ck was received preferring a simpler solution to
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the problem. The authors are=
 very sympathetic to this feedback and therefore
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">are proposing a solution bas=
ed on what the draft defines as the &quot;Ignore&quot;
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">policy - where all entries w=
hich are in conflict are ignored. We believe this
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">is far more desirable and al=
igns with the priorities listed above.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">[Bru=
no] In the draft, the &#8220;Ignore&#8221; policy (=A73.3.1) ignores all co=
nflicting entries.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">In y=
our below proposition, the policy seems to pick the most preferred entry. T=
his looks like more similar to the &#8220;Quarantine&#8221; policy proposed=
 in the draft (=A73.3.2)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Am I=
 missing something?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">[Les:] At the time &#8220;Ignore&#8221; was introduced (over a year ago) =
the notion of &#8220;SRMS preference&#8221; did not exist &#8211; that was =
only added in the most recent version of the draft.<o:p></o:p></span></i></=
b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">We (the authors) feel that this is a useful construct because:<o:p></o:p>=
</span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">1)It provides an explicit basis on which to choose between conflicting en=
tries.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">2)It is particularly useful when bringing up a new SRMS as it allows the =
advertised values to be verified before they are used.<o:p></o:p></span></i=
></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">So, your comment is correct in that there is now a preference algorithm i=
n use &#8211; whereas with the original definition of &#8220;Ignore&#8221; =
there was no preference algorithm. But the sole criteria
 of the preference rule is the explicitly configured preference &#8211; non=
e of the other criteria proposed for Quarantine are used &#8211; and in par=
ticular we do not make partial use of a mapping entry as is the case with &=
#8220;Ignore Overlap Only&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">I am happy to modify the nomenclature &#8211; but the point of this threa=
d is not to replace a new draft revision &#8211; it is to get the sense of =
the WG before we publish a new revision as to whether
 we should continue down the &#8220;Ignore Overlap only&#8221; path or move=
 to a simpler strategy &#8211; so let&#8217;s not be too picky about the na=
ming.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">We outline the proposed solu=
tion below and would like to receive feedback from
<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">the WG before publishing the=
 next revision of the draft.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">&nbsp;&nbsp; Les (on behalf =
of the authors)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">New Proposal<o:p></o:p></=
span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">In the latest revision of=
 the draft &quot;SRMS Preference&quot; was introduced. This
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">provides a way for a nume=
rical preference to be explicitly associated with an
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">SRMS advertisement. Using=
 this an operator can indicate which advertisement is
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">to be preferred when a co=
nflict is present. The authors think this is a useful
<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">addition and we therefore=
 want to include this in the new solution.<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">The new preference rule u=
sed to resolve conflicts is defined as follows:<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">A given mapping entry =
is compared against all mapping entries in the database
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">with a preference grea=
ter than or equal to its own. If there is a conflict,
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">the mapping entry with=
 lower preference is ignored. If two mapping entries are<o:p></o:p></span><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">in conflict and have e=
qual preference then both entries are ignored.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US">Implementation of this po=
licy is defined as follows:<o:p></o:p></span></i></p>
<p class=3D"MsoPlainText"><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span><=
/i></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 1: Within a singl=
e address-family/algorithm/topology sort entries
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">based on preference <o=
:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">[Bru=
no] I&#8217;m not sure what you are refering to by &#8220;preference&#8221;=
. Is this the IGP &#8220;SRMS Preference sub-TLV&#8221; or is this the pref=
erence defined in the draft (=A73.3.4)?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">[Les:] It is the former.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Assu=
ming you meant the SRMS preference, why limiting to this field, rather than=
 including all fields defined in the draft preference algo?<o:p></o:p></spa=
n></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Usin=
g the latter would reduce the risk of ignoring all entries (i.e. having no =
entry in output of this algo). Also a priori, &nbsp;a sort would not be req=
uired as a single pass could select the most
 preferred entry.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">[Les:] The point of the alternative proposal is a simplification. The pre=
sentation in Seoul (check out the slides) highlighted complexities in the i=
mplementation of &#8220;ignore-overlap-only&#8221;
 &#8211; in particular subtleties in the order in which an implementation l=
ooks at entries which could produce interoperability issues even though imp=
lementations are using the same preference rule. The alternative reduces th=
e chances of these interoperability issues
 occurring because the algorithm used is simpler and less subject to subtle=
 implementation differences.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">If you want to argue that these are solvable problems I won&#8217;t disag=
ree with you &#8211; it is a question of where we want to put our time and =
effort. A number of folks are commenting that they
 prefer to focus on fixing the configuration and not invest &nbsp;time in v=
alidating that conflict resolution is implemented in an interoperable way. =
As we (the authors) have stated from the beginning, we believe the emphasis=
 should be on detecting and reporting
 the conflicts &#8211; not spending cycles implementing the most robust mea=
ns of trying to operate optimally while the misconfiguration exists. I know=
 you disagree on this point &#8211; but that is exactly what the WG is deba=
ting &#8211; not whether it is possible to make &#8220;ignore
 overlap only&#8221; work.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
">&nbsp;&nbsp; Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D"><o:p=
>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">Than=
ks<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US" style=3D"color:#1F497D">-- B=
runo<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US" style=3D"color:#1F497D=
"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 2: Starting with =
the lowest preference entries, resolve prefix conflicts
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">using the above prefer=
ence rule. The output is an active policy per topology.<o:p></o:p></span></=
i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 3: Take the outpu=
ts from Step 2 and again sort them by preference
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">Step 4: Starting with =
the lowest preference entries, resolve SID conflicts
<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">using the above prefer=
ence rule<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US"><o:p>&nbsp;</o:p></spa=
n></i></b></p>
<p class=3D"MsoPlainText"><b><i><span lang=3D"EN-US">The output from Step 4=
 is then the current Active Policy.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Here are a few examples. Eac=
h mapping entry is represented by the tuple:<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(Preference, Prefix/mask Ind=
ex range &lt;#&gt;)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 1:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 100)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (149, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (148, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 3 conflicts with entry=
 2, it is ignored.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 2 conflicts with entry=
 1, it is ignored.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 1.1.1.1/32 100 range 1=
00)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 2:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 100)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (150, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (150, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (150, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 1 conflicts with entry=
 2, both are marked as ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 3 conflicts with entry=
 2. It is marked as ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 4 has no conflicts wit=
h any entries<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 2.2.2.1/32 1000 range =
1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 3:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 500)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (150, 1.1.1.10/32 200 ran=
ge 200)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (150, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (150, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 1 conflicts with entri=
es 2, 3, and&nbsp; 4. All entries are marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Empty<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Example 4:<o:p></o:p></span>=
</p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">1. (150, 1.1.1.1/32 100 rang=
e 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">2. (149, 1.1.1.10/32 200 ran=
ge 300)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">3. (149, 1.1.1.101/32 500 ra=
nge 10)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">4. (148, 2.2.2.1/32 1000 ran=
ge 1)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 4 conflicts with entry=
 2. It is marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Entry 2 conflicts with entry=
 3. Entries 2 and 3 are marked ignore.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">Active policy:<o:p></o:p></s=
pan></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US">(150, 1.1.1.1/32 100 range 1=
0)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
</div>
<pre>______________________________________________________________________=
___________________________________________________<o:p></o:p></pre>
<pre><o:p>&nbsp;</o:p></pre>
<pre>Ce message et ses pieces jointes peuvent contenir des informations con=
fidentielles ou privilegiees et ne doivent donc<o:p></o:p></pre>
<pre>pas etre diffuses, exploites ou copies sans autorisation. Si vous avez=
 recu ce message par erreur, veuillez le signaler<o:p></o:p></pre>
<pre>a l'expediteur et le detruire ainsi que les pieces jointes. Les messag=
es electroniques etant susceptibles d'alteration,<o:p></o:p></pre>
<pre>Orange decline toute responsabilite si ce message a ete altere, deform=
e ou falsifie. Merci.<o:p></o:p></pre>
<pre><o:p>&nbsp;</o:p></pre>
<pre>This message and its attachments may contain confidential or privilege=
d information that may be protected by law;<o:p></o:p></pre>
<pre>they should not be distributed, used or copied without authorisation.<=
o:p></o:p></pre>
<pre>If you have received this email in error, please notify the sender and=
 delete this message and its attachments.<o:p></o:p></pre>
<pre>As emails may be altered, Orange is not liable for messages that have =
been modified, changed or falsified.<o:p></o:p></pre>
<pre>Thank you.<o:p></o:p></pre>
</div>
</div>
</div>
<PRE>______________________________________________________________________=
___________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.
</PRE></body>
</html>

--_000_53C29892C857584299CBF5D05346208A1ECCA7D8OPEXCLILM21corp_--


From nobody Wed Dec 21 17:49:42 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A25BA129446 for <spring@ietfa.amsl.com>; Wed, 21 Dec 2016 17:49:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.621
X-Spam-Level: 
X-Spam-Status: No, score=-17.621 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YdC-X2hLFUNs for <spring@ietfa.amsl.com>; Wed, 21 Dec 2016 17:49:37 -0800 (PST)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0C21C129468 for <spring@ietf.org>; Wed, 21 Dec 2016 17:49:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=67104; q=dns/txt; s=iport; t=1482371377; x=1483580977; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=g/zI4D8Og4ew7BooKraKz9jH93Cr3duksNBeFUXKEY8=; b=XVZfn1yITB5uIXhOTeS+ADNzPvl7R2LUczy60N3UynBMo+tyJMxp0qkL aLALQ0QT/UkKT/KslwguAtMNXXEYOtjUDOA/YThjwQyGbUlVNDFsnkAsD ptorKJcaD83K/uBP5PT1TfOJWSoYjMVbMcU7xLS0G9rGaOiHlj5L2oRfr E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CNAQAwMFtY/4ENJK1eGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnFEAQEBAQEfXIEIB41KllCVE4IKKoV4AoFfPxQBAgEBAQEBAQF?= =?us-ascii?q?iHQuEaAEBAQICGgESTBACAQgRBAEBIQEGBzIUCQgBAQQOBQgTBIhNDqp1in8BA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEYBYY2hFmEEhEBSAqFKwWPQoVFhXABiWOHTIF?= =?us-ascii?q?+hQaDSoYMjiSEDgEfN0oeQi6DZRyBXXIBhh4NFweBA4ENAQEB?=
X-IronPort-AV: E=Sophos;i="5.33,386,1477958400";  d="scan'208,217";a="363914015"
Received: from alln-core-9.cisco.com ([173.36.13.129]) by alln-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 22 Dec 2016 01:49:34 +0000
Received: from XCH-ALN-005.cisco.com (xch-aln-005.cisco.com [173.36.7.15]) by alln-core-9.cisco.com (8.14.5/8.14.5) with ESMTP id uBM1nYMC019040 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 22 Dec 2016 01:49:34 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-ALN-005.cisco.com (173.36.7.15) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Wed, 21 Dec 2016 19:49:33 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Wed, 21 Dec 2016 19:49:33 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: "bruno.decraene@orange.com" <bruno.decraene@orange.com>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDdlkBwAA8oUZACVgRskAAWou1g
Date: Thu, 22 Dec 2016 01:49:33 +0000
Message-ID: <1f3288d0ea20445389ca2dab011df9de@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <13659_1481278031_584A824F_13659_1413_1_53C29892C857584299CBF5D05346208A1ECBEDCF@OPEXCLILM21.corporate.adroot.infra.ftgroup> <dc0ee71a612d433dba6e6d73b274ec6f@XCH-ALN-001.cisco.com> <2599_1482331179_585A942B_2599_15892_1_53C29892C857584299CBF5D05346208A1ECCA7D8@OPEXCLILM21.corporate.adroot.infra.ftgroup>
In-Reply-To: <2599_1482331179_585A942B_2599_15892_1_53C29892C857584299CBF5D05346208A1ECCA7D8@OPEXCLILM21.corporate.adroot.infra.ftgroup>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.68.94]
Content-Type: multipart/alternative; boundary="_000_1f3288d0ea20445389ca2dab011df9deXCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/c3PnhemOAeUdxQ10Q33ZJ-Yez5A>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 01:49:40 -0000

--_000_1f3288d0ea20445389ca2dab011df9deXCHALN001ciscocom_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Bruno -

From: bruno.decraene@orange.com [mailto:bruno.decraene@orange.com]
Sent: Wednesday, December 21, 2016 6:40 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Les,

Still as an individual contributor, SID conflict resolution is about a trad=
e-off between implementation complexity and network availability. Hence eva=
luating the consequences on network availability is at least as important a=
s evaluating the implementation complexity; especially as the former is eas=
ier to quantify while the latter may be implementation specific. So on this=
 FEC/network availability standpoint, please find below three comments.

1) The slides presented might IMHO slightly mislead a reader:
- the discussion on network availability compares "Quarantine" vs "Ignore O=
verlap"
- the conclusion discuss "Ignore Overlap" vs "Ignore"

So they are comparing different things, while a quick reader may assume tha=
t apples were compared to apples.
Note that I'm not saying (and not thinking) that this is misleading on purp=
ose. I'm expressing the way I read it.

[Les:] Please remember the history here. Prior to Seoul the input we had wa=
s:
"Ignore" is least desirable - evaluate between "Quarantine" and "Ignore Ove=
rlap".
The discussion over the previous few months therefore was comparing the lat=
ter two. Slides for both Berlin and Seoul were therefore prepared with that=
 in mind.

Significant feedback at Seoul and since has made "Ignore" a candidate again=
 - so the email thread has now focused on "Ignore" vs "Ignore Overlap Only"=
.
If I had received this feedback before Seoul I would have prepared differen=
t slides.

My apologies for not being clairvoyant. :)

2) Regarding the new proposal, post Seoul, it is vocal on the complexity si=
de, but not on the network availability side which is not evaluated. This d=
oes not helps the WG understanding of the trade-off involved and the making=
 of an informed decision.
I'm even wondering if the network availability has been considered since by=
 default, this proposal seems to kill, by design, the SRMS and SR-LDP inter=
-working.
SRMS has been designed in order to allow for the inter-working with LDP, in=
 a brown-field scenario where SR is introduced in a LDP MPLS network.
e.g. a typical set of advertisements would be
1. PrefixSID: (192, 1.1.1.1/32 100 range 1)
2. MS:        (128, 1.1.1.1/32 100 range 255)

With this simple example, not even having a configuration error but using a=
 nominal configuration, the MS advertisement would be ignored with the igno=
re policy, hence the LDP interwork would not work, and all LDP/non-SR nodes=
 would loose SID hence loose SR connectivity.
Eventually, you may change the algorithm, to look beyond the most preferred=
 entry, and check whether the SIDs are really different or not. And if not,=
 change the algo to pick the largest range rather than the highest preferen=
ce. But this is adding complexity to cover a specific case, while keeping t=
he solution weak in term of network availability, in the general case. e.g.=
 if we do have a different SID, many  prefix (99%) would lose their SID.

[Les:] Your interpretation is incorrect. There is no conflict in the exampl=
e you provide - therefore no entries will be ignored (this is true no matte=
r what conflict resolution strategy is chosen).
The definition of conflicts can be found in Section 3.2 of the draft. Nothi=
ng in this discussion proposes changes to that- and the definition of a con=
flict has never been under debate.

What we have discussed over the last 6 months or more has been what to do w=
hen conflicts exist- this is Section 3.3 of the draft.


3) Finally, when discussing "Ignore Overlap", a typical quote from the auth=
ors is "maximize forwarding" or "operate optimally", as if we were trying t=
o optimize for the last bit. But note that "Ignore Overlap" is _not_ maximi=
zing forwarding.  Maximizing forwarding would be much more complex, and nob=
ody on the list has even tried for this, including draft-ietf-spring-confli=
ct-resolution.
e.g. with following advertisements with a misconfiguration
1. PrefixSID: (192, 1.1.1.1/32 101 range 1)
2. MS:        (128, 1.1.1.1/32 100 range 255)

During prefix conflict, for 1.1.1.1/32 Ignore Overlap selects the SID from =
prefixSID entry, which will latter have a SID conflict with the MS entry (S=
ID 101, prefixes 1.1.1.1 vs 1.1.1.2). As a result, 1.1.1.2 won't get a SID.
In this specific case, a solution "maximizing the forwarding" would have ig=
nored the PrefixSID. But in the general case, "maximizing the forwarding" m=
ay require evaluating all options, and then pick the best one based on all =
results.


So please let's keep evaluating the impact on the network availability. Ber=
lin presentation was a good example on this.
[Les:] Well, the Berlin slides (see Slide 25) use the term "Maximize SR For=
warding".
https://www.ietf.org/proceedings/96/slides/slides-96-spring-4.pdf


One of the problems with making a choice when conflicts exist is that there=
 is no way of knowing what prefixes are the most important in a particular =
network deployment.  "Ignore overlap only" aimed to maximize the number of =
prefixes which had SIDs in the hope that we would have a greater chance of =
including the more important prefixes - but since all of our tie-breakers a=
re simply arbitrary choices there is no guarantee. From Section 3.3.4 of th=
e draft:

2 Smaller range wins
3.  IPv6 entry wins over IPv4 entry
4.  Longer prefix length wins
5.  Smaller algorithm wins
6.  Smaller starting address (considered as an unsigned integer
       value) wins
   7.  Smaller starting SID wins

If you were to seriously try to focus on "network availability" we would ne=
ed to incorporate additional information which might include:


=B7         Is a prefix reachable?

=B7         How much traffic depends on each prefix

=B7         What class of traffic depends on each prefix

This can only increase the complexity of the implementation - and I have no=
 doubt the debate about the best heuristics could go on without end.

I return again to the priorities which the authors stated from the beginnin=
g:

1)Detect the problem
2)Report the problem
3)Define consistent behavior
4)Don't overengineer the solution
Given that it is impossible to know which of the conflicting entries
is the correct one, we should apply a simple algorithm to resolve the confl=
ict.
5)Agree on the resolution behavior


For some of us, the resolution behavior is the least important. For you it =
seems it is the most important.
That is what  the debate is really about.

   Les

--Bruno


From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Friday, December 09, 2016 7:31 PM
To: DECRAENE Bruno IMT/OLN
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Bruno -

Welcome back to the discussion. :)
Inline.

From: bruno.decraene@orange.com<mailto:bruno.decraene@orange.com> [mailto:b=
runo.decraene@orange.com]
Sent: Friday, December 09, 2016 2:07 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Hi Les,

As a individual contributor, please find below some clarification questions=
 [Bruno]

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Monday, December 05, 2016 1:04 AM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



[Bruno] In the draft, the "Ignore" policy (=A73.3.1) ignores all conflictin=
g entries.

In your below proposition, the policy seems to pick the most preferred entr=
y. This looks like more similar to the "Quarantine" policy proposed in the =
draft (=A73.3.2)

Am I missing something?



[Les:] At the time "Ignore" was introduced (over a year ago) the notion of =
"SRMS preference" did not exist - that was only added in the most recent ve=
rsion of the draft.

We (the authors) feel that this is a useful construct because:



1)It provides an explicit basis on which to choose between conflicting entr=
ies.

2)It is particularly useful when bringing up a new SRMS as it allows the ad=
vertised values to be verified before they are used.



So, your comment is correct in that there is now a preference algorithm in =
use - whereas with the original definition of "Ignore" there was no prefere=
nce algorithm. But the sole criteria of the preference rule is the explicit=
ly configured preference - none of the other criteria proposed for Quaranti=
ne are used - and in particular we do not make partial use of a mapping ent=
ry as is the case with "Ignore Overlap Only".



I am happy to modify the nomenclature - but the point of this thread is not=
 to replace a new draft revision - it is to get the sense of the WG before =
we publish a new revision as to whether we should continue down the "Ignore=
 Overlap only" path or move to a simpler strategy - so let's not be too pic=
ky about the naming.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

[Bruno] I'm not sure what you are refering to by "preference". Is this the =
IGP "SRMS Preference sub-TLV" or is this the preference defined in the draf=
t (=A73.3.4)?



[Les:] It is the former.



Assuming you meant the SRMS preference, why limiting to this field, rather =
than including all fields defined in the draft preference algo?

Using the latter would reduce the risk of ignoring all entries (i.e. having=
 no entry in output of this algo). Also a priori,  a sort would not be requ=
ired as a single pass could select the most preferred entry.



[Les:] The point of the alternative proposal is a simplification. The prese=
ntation in Seoul (check out the slides) highlighted complexities in the imp=
lementation of "ignore-overlap-only" - in particular subtleties in the orde=
r in which an implementation looks at entries which could produce interoper=
ability issues even though implementations are using the same preference ru=
le. The alternative reduces the chances of these interoperability issues oc=
curring because the algorithm used is simpler and less subject to subtle im=
plementation differences.



If you want to argue that these are solvable problems I won't disagree with=
 you - it is a question of where we want to put our time and effort. A numb=
er of folks are commenting that they prefer to focus on fixing the configur=
ation and not invest  time in validating that conflict resolution is implem=
ented in an interoperable way. As we (the authors) have stated from the beg=
inning, we believe the emphasis should be on detecting and reporting the co=
nflicts - not spending cycles implementing the most robust means of trying =
to operate optimally while the misconfiguration exists. I know you disagree=
 on this point - but that is exactly what the WG is debating - not whether =
it is possible to make "ignore overlap only" work.



   Les



Thanks

-- Bruno



Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

--_000_1f3288d0ea20445389ca2dab011df9deXCHALN001ciscocom_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
p.PrformatHTML, li.PrformatHTML, div.PrformatHTML
	{mso-style-name:"Pr=E9format=E9 HTML";
	mso-style-link:"Pr=E9format=E9 HTML Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.PrformatHTMLCar
	{mso-style-name:"Pr=E9format=E9 HTML Car";
	mso-style-priority:99;
	mso-style-link:"Pr=E9format=E9 HTML";
	font-family:Consolas;}
p.Textebrut, li.Textebrut, div.Textebrut
	{mso-style-name:"Texte brut";
	mso-style-link:"Texte brut Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.TextebrutCar
	{mso-style-name:"Texte brut Car";
	mso-style-priority:99;
	mso-style-link:"Texte brut";
	font-family:Consolas;}
span.EmailStyle27
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle28
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle29
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
p.Textedebulles, li.Textedebulles, div.Textedebulles
	{mso-style-name:"Texte de bulles";
	mso-style-link:"Texte de bulles Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.TextedebullesCar
	{mso-style-name:"Texte de bulles Car";
	mso-style-priority:99;
	mso-style-link:"Texte de bulles";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle32
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:377820275;
	mso-list-type:hybrid;
	mso-list-template-ids:1453607876 67698689 67698691 67698693 67698689 67698=
691 67698693 67698689 67698691 67698693;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Bruno -<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> bruno.de=
craene@orange.com [mailto:bruno.decraene@orange.com]
<br>
<b>Sent:</b> Wednesday, December 21, 2016 6:40 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> spring@ietf.org<br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Les,<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Still as an individual=
 contributor, SID conflict resolution is about a trade-off between implemen=
tation complexity and network availability. Hence evaluating the consequenc=
es on network availability is at least
 as important as evaluating the implementation complexity; especially as th=
e former is easier to quantify while the latter may be implementation speci=
fic. So on this FEC/network availability standpoint, please find below thre=
e comments.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">1) The slides presente=
d might IMHO slightly mislead a reader:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">- the discussion on ne=
twork availability compares &quot;Quarantine&quot; vs &quot;Ignore Overlap&=
quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">- the conclusion discu=
ss &quot;Ignore Overlap&quot; vs &quot;Ignore&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">So they are comparing =
different things, while a quick reader may assume that apples were compared=
 to apples.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Note that I'm not sayi=
ng (and not thinking) that this is misleading on purpose. I'm expressing th=
e way I read it.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">[Les:] Please re=
member the history here. Prior to Seoul the input we had was:<o:p></o:p></s=
pan></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">&#8220;Ignore&#8=
221; is least desirable &#8211; evaluate between &#8220;Quarantine&#8221; a=
nd &#8220;Ignore Overlap&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">The discussion o=
ver the previous few months therefore was comparing the latter two. Slides =
for both Berlin and Seoul were therefore prepared with that in mind.<o:p></=
o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">Significant feed=
back at Seoul and since has made &#8220;Ignore&#8221; a candidate again &#8=
211; so the email thread has now focused on &#8220;Ignore&#8221; vs &#8220;=
Ignore Overlap Only&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">If I had receive=
d this feedback before Seoul I would have prepared different slides.<o:p></=
o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">My apologies for=
 not being clairvoyant.
</span></i></b><b><i><span style=3D"font-family:Wingdings;color:#1F497D">J<=
/span></i></b><span style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">2) Regarding the new p=
roposal, post Seoul, it is vocal on the complexity side, but not on the net=
work availability side which is not evaluated. This does not helps the WG u=
nderstanding of the trade-off involved
 and the making of an informed decision.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I'm even wondering if =
the network availability has been considered since by default, this proposa=
l seems to kill, by design, the SRMS and SR-LDP inter-working.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">SRMS has been designed=
 in order to allow for the inter-working with LDP, in a brown-field scenari=
o where SR is introduced in a LDP MPLS network.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">e.g. a typical set of =
advertisements would be<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">1. PrefixSID: (192, 1.=
1.1.1/32 100 range 1)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">2. MS: &nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;(128, 1.1.1.1/32 100 range 255)<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">With this simple examp=
le, not even having a configuration error but using a nominal configuration=
, the MS advertisement would be ignored with the ignore policy, hence the L=
DP interwork would not work, and all
 LDP/non-SR nodes would loose SID hence loose SR connectivity.<o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Eventually, you may ch=
ange the algorithm, to look beyond the most preferred entry, and check whet=
her the SIDs are really different or not. And if not, change the algo to pi=
ck the largest range rather than the
 highest preference. But this is adding complexity to cover a specific case=
, while keeping the solution weak in term of network availability, in the g=
eneral case. e.g. if we do have a different SID, many&nbsp; prefix (99%) wo=
uld lose their SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">[Les:] Your inte=
rpretation is incorrect. There is no conflict in the example you provide &#=
8211; therefore no entries will be ignored (this is true no matter what con=
flict resolution strategy is chosen).<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">The definition o=
f conflicts can be found in Section 3.2 of the draft. Nothing in this discu=
ssion proposes changes to that- and the definition of a conflict has never =
been under debate.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">What we have dis=
cussed over the last 6 months or more has been what to do when conflicts ex=
ist- this is Section 3.3 of the draft.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">3) Finally, when discu=
ssing &quot;Ignore Overlap&quot;, a typical quote from the authors is &quot=
;maximize forwarding&quot; or &quot;operate optimally&quot;, as if we were =
trying to optimize for the last bit. But note that &quot;Ignore Overlap&quo=
t;
 is _not_ maximizing forwarding.&nbsp; Maximizing forwarding would be much =
more complex, and nobody on the list has even tried for this, including dra=
ft-ietf-spring-conflict-resolution.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">e.g. with following ad=
vertisements with a misconfiguration<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">1. PrefixSID: (192, 1.=
1.1.1/32 101 range 1)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">2. MS:&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp; (128, 1.1.1.1/32 100 range 255)<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">During prefix conflict=
, for 1.1.1.1/32 Ignore Overlap selects the SID from prefixSID entry, which=
 will latter have a SID conflict with the MS entry (SID 101, prefixes 1.1.1=
.1 vs 1.1.1.2). As a result, 1.1.1.2
 won't get a SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">In this specific case,=
 a solution &quot;maximizing the forwarding&quot; would have ignored the Pr=
efixSID. But in the general case, &quot;maximizing the forwarding&quot; may=
 require evaluating all options, and then pick the best
 one based on all results.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">So please let&#8217;s =
keep evaluating the impact on the network availability. Berlin presentation=
 was a good example on this.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">[Les:] Well, the=
 Berlin slides (see Slide 25) use the term &#8220;Maximize SR Forwarding&#8=
221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><a href=3D"https=
://www.ietf.org/proceedings/96/slides/slides-96-spring-4.pdf">https://www.i=
etf.org/proceedings/96/slides/slides-96-spring-4.pdf</a><o:p></o:p></span><=
/i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">One of the probl=
ems with making a choice when conflicts exist is that there is no way of kn=
owing what prefixes are the most important in a particular network deployme=
nt. &nbsp;&#8220;Ignore overlap only&#8221; aimed to
 maximize the number of prefixes which had SIDs in the hope that we would h=
ave a greater chance of including the more important prefixes &#8211; but s=
ince all of our tie-breakers are simply arbitrary choices there is no guara=
ntee. From Section 3.3.4 of the draft:<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">2 Smaller range wins<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">3.&nbsp; IPv6 entry wins over IPv4 entry<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">4.&nbsp; Longer prefix length wins<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">5.&nbsp; Smaller algorithm wins<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">6.&nbsp; Smaller starting address (considered as an unsigned integer=
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value) wins<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp; 7.&nbsp; =
Smaller starting SID wins<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">If you were to s=
eriously try to focus on &#8220;network availability&#8221; we would need t=
o incorporate additional information which might include:<o:p></o:p></span>=
</i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">Is a prefix re=
achable?<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">How much traff=
ic depends on each prefix<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">What class of =
traffic depends on each prefix<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">This can only in=
crease the complexity of the implementation &#8211; and I have no doubt the=
 debate about the best heuristics could go on without end.<o:p></o:p></span=
></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">I return again t=
o the priorities which the authors stated from the beginning:<o:p></o:p></s=
pan></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">1)Detect the problem<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">2)Report the problem<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">3)Define consistent behavior<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">4)Don&#8217;t overengineer the solution<o:p></o:p></span></i><=
/b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">Given that it is impossible to know which of the conflicting e=
ntries<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">is the correct one, we should apply a simple algorithm to reso=
lve the conflict.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">5)Agree on the r=
esolution behavior<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">For some of us, =
the resolution behavior is the least important. For you it seems it is the =
most important.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">That is what &nb=
sp;the debate is really about.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">&nbsp;&nbsp; Les=
<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">--Bruno<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"FR" style=3D"font-size:10.0pt;font-=
family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lan=
g=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;san=
s-serif&quot;"> Les Ginsberg (ginsberg) [<a href=3D"mailto:ginsberg@cisco.c=
om">mailto:ginsberg@cisco.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:31 PM<br>
<b>To:</b> DECRAENE Bruno IMT/OLN<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"FR"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Bruno &#8211;<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Welcome back to the di=
scussion. </span>
<span style=3D"font-family:Wingdings;color:#1F497D">J</span><span style=3D"=
color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Inline.<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">
<a href=3D"mailto:bruno.decraene@orange.com">bruno.decraene@orange.com</a> =
[<a href=3D"mailto:bruno.decraene@orange.com">mailto:bruno.decraene@orange.=
com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 2:07 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Hi Les,<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">As a individual contri=
butor, please find below some clarification questions [Bruno]<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"FR" style=3D"font-size:10.0pt;font-=
family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lan=
g=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;san=
s-serif&quot;"> spring [<a href=3D"mailto:spring-bounces@ietf.org">mailto:s=
pring-bounces@ietf.org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Monday, December 05, 2016 1:04 AM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"FR"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">[Bruno] In the draf=
t, the &#8220;Ignore&#8221; policy (=A73.3.1) ignores all conflicting entri=
es.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">In your below propo=
sition, the policy seems to pick the most preferred entry. This looks like =
more similar to the &#8220;Quarantine&#8221; policy proposed in the draft (=
=A73.3.2)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Am I missing someth=
ing?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] At the=
 time &#8220;Ignore&#8221; was introduced (over a year ago) the notion of &=
#8220;SRMS preference&#8221; did not exist &#8211; that was only added in t=
he most recent version of the draft.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">We (the autho=
rs) feel that this is a useful construct because:<o:p></o:p></span></i></b>=
</p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">1)It provides=
 an explicit basis on which to choose between conflicting entries.<o:p></o:=
p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">2)It is parti=
cularly useful when bringing up a new SRMS as it allows the advertised valu=
es to be verified before they are used.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">So, your comm=
ent is correct in that there is now a preference algorithm in use &#8211; w=
hereas with the original definition of &#8220;Ignore&#8221; there was no pr=
eference algorithm. But the sole criteria of the preference
 rule is the explicitly configured preference &#8211; none of the other cri=
teria proposed for Quarantine are used &#8211; and in particular we do not =
make partial use of a mapping entry as is the case with &#8220;Ignore Overl=
ap Only&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">I am happy to=
 modify the nomenclature &#8211; but the point of this thread is not to rep=
lace a new draft revision &#8211; it is to get the sense of the WG before w=
e publish a new revision as to whether we should
 continue down the &#8220;Ignore Overlap only&#8221; path or move to a simp=
ler strategy &#8211; so let&#8217;s not be too picky about the naming.<o:p>=
</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">[Bruno] I&#8217;m n=
ot sure what you are refering to by &#8220;preference&#8221;. Is this the I=
GP &#8220;SRMS Preference sub-TLV&#8221; or is this the preference defined =
in the draft (=A73.3.4)?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] It is =
the former.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Assuming you meant =
the SRMS preference, why limiting to this field, rather than including all =
fields defined in the draft preference algo?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Using the latter wo=
uld reduce the risk of ignoring all entries (i.e. having no entry in output=
 of this algo). Also a priori, &nbsp;a sort would not be required as a sing=
le pass could select the most preferred entry.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] The po=
int of the alternative proposal is a simplification. The presentation in Se=
oul (check out the slides) highlighted complexities in the implementation o=
f &#8220;ignore-overlap-only&#8221; &#8211; in particular
 subtleties in the order in which an implementation looks at entries which =
could produce interoperability issues even though implementations are using=
 the same preference rule. The alternative reduces the chances of these int=
eroperability issues occurring because
 the algorithm used is simpler and less subject to subtle implementation di=
fferences.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">If you want t=
o argue that these are solvable problems I won&#8217;t disagree with you &#=
8211; it is a question of where we want to put our time and effort. A numbe=
r of folks are commenting that they prefer to focus
 on fixing the configuration and not invest &nbsp;time in validating that c=
onflict resolution is implemented in an interoperable way. As we (the autho=
rs) have stated from the beginning, we believe the emphasis should be on de=
tecting and reporting the conflicts &#8211;
 not spending cycles implementing the most robust means of trying to operat=
e optimally while the misconfiguration exists. I know you disagree on this =
point &#8211; but that is exactly what the WG is debating &#8211; not wheth=
er it is possible to make &#8220;ignore overlap only&#8221;
 work.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">&nbsp;&nbsp; =
Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Thanks<o:p></o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">-- Bruno<o:p></o:p>=
</span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">________________________________________________________________=
_________________________________________________________<o:p></o:p></span>=
</pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Ce message et ses pieces jointes peuvent contenir des informatio=
ns confidentielles ou privilegiees et ne doivent donc<o:p></o:p></span></pr=
e>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">pas etre diffuses, exploites ou copies sans autorisation. Si vou=
s avez recu ce message par erreur, veuillez le signaler<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">a l'expediteur et le detruire ainsi que les pieces jointes. Les =
messages electroniques etant susceptibles d'alteration,<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Orange decline toute responsabilite si ce message a ete altere, =
deforme ou falsifie. Merci.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">This message and its attachments may contain confidential or pri=
vileged information that may be protected by law;<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">they should not be distributed, used or copied without authorisa=
tion.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">If you have received this email in error, please notify the send=
er and delete this message and its attachments.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">As emails may be altered, Orange is not liable for messages that=
 have been modified, changed or falsified.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Thank you.<o:p></o:p></span></pre>
</div>
</div>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">________________________________________________________________=
_________________________________________________________<o:p></o:p></span>=
</pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Ce message et ses pieces jointes peuvent contenir des informatio=
ns confidentielles ou privilegiees et ne doivent donc<o:p></o:p></span></pr=
e>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">pas etre diffuses, exploites ou copies sans autorisation. Si vou=
s avez recu ce message par erreur, veuillez le signaler<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">a l'expediteur et le detruire ainsi que les pieces jointes. Les =
messages electroniques etant susceptibles d'alteration,<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Orange decline toute responsabilite si ce message a ete altere, =
deforme ou falsifie. Merci.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">This message and its attachments may contain confidential or pri=
vileged information that may be protected by law;<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">they should not be distributed, used or copied without authorisa=
tion.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">If you have received this email in error, please notify the send=
er and delete this message and its attachments.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">As emails may be altered, Orange is not liable for messages that=
 have been modified, changed or falsified.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Thank you.<o:p></o:p></span></pre>
</div>
</div>
</body>
</html>

--_000_1f3288d0ea20445389ca2dab011df9deXCHALN001ciscocom_--


From nobody Wed Dec 21 23:42:33 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 76280129467 for <spring@ietfa.amsl.com>; Wed, 21 Dec 2016 23:42:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.621
X-Spam-Level: 
X-Spam-Status: No, score=-17.621 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WPf_O0jUmPzQ for <spring@ietfa.amsl.com>; Wed, 21 Dec 2016 23:42:27 -0800 (PST)
Received: from rcdn-iport-3.cisco.com (rcdn-iport-3.cisco.com [173.37.86.74]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4B2B9129473 for <spring@ietf.org>; Wed, 21 Dec 2016 23:42:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=74662; q=dns/txt; s=iport; t=1482392547; x=1483602147; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=lMlFhfpVJnJWx632+vEgaTzBicq5gza/VfdzDC2QZ9E=; b=WMC9fAW7dMKrCBL2mT1d9d0haQmLOhcYuJyHUEFhVtu3NUC8M+2+BG5q +n0HeHjz2pYBUZHzDctCLLKEpuhsVpCutlkE2yL2K58zHNvuDJG2t6Ul+ 5kOrhGdOqkBWGuq30r/QvjEpUTUIMurS8uDqokwXumcjwYVXb5Z5dtNNy o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CLAgADg1tY/4UNJK1eGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnE5CwEBAQEBH1yBCAeNSpZQlRSCCSqFeAKBZD8UAQIBAQEBAQE?= =?us-ascii?q?BYh0LhGgBAQECAhoBEkwQAgEIEQQBASEBBgcyFAkIAQEEDgUIEwSITQ6rD4sCA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEBGAWGNoRZhBIRAUgKhSsFj0KFRYVwAYljh0y?= =?us-ascii?q?BfoUGg0qGDI4khA4BHzdKHkIug2gcgV1yAYYeDRcHgQOBDQEBAQ?=
X-IronPort-AV: E=Sophos;i="5.33,387,1477958400";  d="scan'208,217";a="188391408"
Received: from alln-core-11.cisco.com ([173.36.13.133]) by rcdn-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 22 Dec 2016 07:42:23 +0000
Received: from XCH-RCD-001.cisco.com (xch-rcd-001.cisco.com [173.37.102.11]) by alln-core-11.cisco.com (8.14.5/8.14.5) with ESMTP id uBM7gNg6024052 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 22 Dec 2016 07:42:23 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-RCD-001.cisco.com (173.37.102.11) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 22 Dec 2016 01:42:22 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Thu, 22 Dec 2016 01:42:22 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: "bruno.decraene@orange.com" <bruno.decraene@orange.com>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDdlkBwAA8oUZACVgRskAAWou1gAA1VBGA=
Date: Thu, 22 Dec 2016 07:42:22 +0000
Message-ID: <10ea072784584a99b56d4d7ebac2b86c@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <13659_1481278031_584A824F_13659_1413_1_53C29892C857584299CBF5D05346208A1ECBEDCF@OPEXCLILM21.corporate.adroot.infra.ftgroup> <dc0ee71a612d433dba6e6d73b274ec6f@XCH-ALN-001.cisco.com> <2599_1482331179_585A942B_2599_15892_1_53C29892C857584299CBF5D05346208A1ECCA7D8@OPEXCLILM21.corporate.adroot.infra.ftgroup> <1f3288d0ea20445389ca2dab011df9de@XCH-ALN-001.cisco.com>
In-Reply-To: <1f3288d0ea20445389ca2dab011df9de@XCH-ALN-001.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.68.94]
Content-Type: multipart/alternative; boundary="_000_10ea072784584a99b56d4d7ebac2b86cXCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/5TUWB9bS8BMobMjF_-KMUEGnZTg>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 07:42:32 -0000

--_000_10ea072784584a99b56d4d7ebac2b86cXCHALN001ciscocom_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

And one more thought for everyone to mull over while enjoying the holidays.=
..

Consistency is a requirement of any solution i.e. all routers in the networ=
k MUST use the same algorithm operating on the same database.
However, this requirement goes beyond routers - it is also required of any =
entity - specifically controllers - which might specify an engineered path =
consisting of prefix SIDs.

I think no one questions that all routers will implement the standardized s=
olution - but will all controllers?

Consider the consequences if a controller does not implement the solution.

We have the following conflict:

(192, 1.1.1.1/32 100 range 1)
(192, 2.2.2.2/32 100 range 1)

If we use a policy which chooses a winning entry in such a case (such as "I=
gnore Overlap Only") the winner will be (192, 1.1.1.1/32 100 range 1) (base=
d on current preference rules defined in the draft).
Labels associated with SID 100 will be installed in router forwarding plans=
 and direct traffic towards 1.1.1.1.

If we use a policy which does not use either of the conflicting entries rou=
ters will NOT install labels associated with SID 100 in the forwarding plan=
e and traffic arriving with such a label will be dropped.

If a controller which does NOT do conflict resolution builds an engineered =
path which traverses 2.2.2.2, it will send a label stack including SID 100.

Using "Ignore Overlap Only", routers will forward a packet with SID 100 tow=
ards 1.1.1.1 rather than 2.2.2.2.

Using "Ignore", packets using SID 100 will be dropped.

I am not optimistic that all controllers will implement conflict resolution=
. If I am right, the consequences of the combination of the Conflict Resolu=
tion policy chosen and a Controller which does not implement conflict resol=
ution should be considered.

  Les


From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Wednesday, December 21, 2016 5:50 PM
To: bruno.decraene@orange.com
Cc: spring@ietf.org
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal

Bruno -

From: bruno.decraene@orange.com<mailto:bruno.decraene@orange.com> [mailto:b=
runo.decraene@orange.com]
Sent: Wednesday, December 21, 2016 6:40 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Les,

Still as an individual contributor, SID conflict resolution is about a trad=
e-off between implementation complexity and network availability. Hence eva=
luating the consequences on network availability is at least as important a=
s evaluating the implementation complexity; especially as the former is eas=
ier to quantify while the latter may be implementation specific. So on this=
 FEC/network availability standpoint, please find below three comments.

1) The slides presented might IMHO slightly mislead a reader:
- the discussion on network availability compares "Quarantine" vs "Ignore O=
verlap"
- the conclusion discuss "Ignore Overlap" vs "Ignore"

So they are comparing different things, while a quick reader may assume tha=
t apples were compared to apples.
Note that I'm not saying (and not thinking) that this is misleading on purp=
ose. I'm expressing the way I read it.

[Les:] Please remember the history here. Prior to Seoul the input we had wa=
s:
"Ignore" is least desirable - evaluate between "Quarantine" and "Ignore Ove=
rlap".
The discussion over the previous few months therefore was comparing the lat=
ter two. Slides for both Berlin and Seoul were therefore prepared with that=
 in mind.

Significant feedback at Seoul and since has made "Ignore" a candidate again=
 - so the email thread has now focused on "Ignore" vs "Ignore Overlap Only"=
.
If I had received this feedback before Seoul I would have prepared differen=
t slides.

My apologies for not being clairvoyant. :)

2) Regarding the new proposal, post Seoul, it is vocal on the complexity si=
de, but not on the network availability side which is not evaluated. This d=
oes not helps the WG understanding of the trade-off involved and the making=
 of an informed decision.
I'm even wondering if the network availability has been considered since by=
 default, this proposal seems to kill, by design, the SRMS and SR-LDP inter=
-working.
SRMS has been designed in order to allow for the inter-working with LDP, in=
 a brown-field scenario where SR is introduced in a LDP MPLS network.
e.g. a typical set of advertisements would be
1. PrefixSID: (192, 1.1.1.1/32 100 range 1)
2. MS:        (128, 1.1.1.1/32 100 range 255)

With this simple example, not even having a configuration error but using a=
 nominal configuration, the MS advertisement would be ignored with the igno=
re policy, hence the LDP interwork would not work, and all LDP/non-SR nodes=
 would loose SID hence loose SR connectivity.
Eventually, you may change the algorithm, to look beyond the most preferred=
 entry, and check whether the SIDs are really different or not. And if not,=
 change the algo to pick the largest range rather than the highest preferen=
ce. But this is adding complexity to cover a specific case, while keeping t=
he solution weak in term of network availability, in the general case. e.g.=
 if we do have a different SID, many  prefix (99%) would lose their SID.

[Les:] Your interpretation is incorrect. There is no conflict in the exampl=
e you provide - therefore no entries will be ignored (this is true no matte=
r what conflict resolution strategy is chosen).
The definition of conflicts can be found in Section 3.2 of the draft. Nothi=
ng in this discussion proposes changes to that- and the definition of a con=
flict has never been under debate.

What we have discussed over the last 6 months or more has been what to do w=
hen conflicts exist- this is Section 3.3 of the draft.


3) Finally, when discussing "Ignore Overlap", a typical quote from the auth=
ors is "maximize forwarding" or "operate optimally", as if we were trying t=
o optimize for the last bit. But note that "Ignore Overlap" is _not_ maximi=
zing forwarding.  Maximizing forwarding would be much more complex, and nob=
ody on the list has even tried for this, including draft-ietf-spring-confli=
ct-resolution.
e.g. with following advertisements with a misconfiguration
1. PrefixSID: (192, 1.1.1.1/32 101 range 1)
2. MS:        (128, 1.1.1.1/32 100 range 255)

During prefix conflict, for 1.1.1.1/32 Ignore Overlap selects the SID from =
prefixSID entry, which will latter have a SID conflict with the MS entry (S=
ID 101, prefixes 1.1.1.1 vs 1.1.1.2). As a result, 1.1.1.2 won't get a SID.
In this specific case, a solution "maximizing the forwarding" would have ig=
nored the PrefixSID. But in the general case, "maximizing the forwarding" m=
ay require evaluating all options, and then pick the best one based on all =
results.


So please let's keep evaluating the impact on the network availability. Ber=
lin presentation was a good example on this.
[Les:] Well, the Berlin slides (see Slide 25) use the term "Maximize SR For=
warding".
https://www.ietf.org/proceedings/96/slides/slides-96-spring-4.pdf


One of the problems with making a choice when conflicts exist is that there=
 is no way of knowing what prefixes are the most important in a particular =
network deployment.  "Ignore overlap only" aimed to maximize the number of =
prefixes which had SIDs in the hope that we would have a greater chance of =
including the more important prefixes - but since all of our tie-breakers a=
re simply arbitrary choices there is no guarantee. From Section 3.3.4 of th=
e draft:

2 Smaller range wins
3.  IPv6 entry wins over IPv4 entry
4.  Longer prefix length wins
5.  Smaller algorithm wins
6.  Smaller starting address (considered as an unsigned integer
       value) wins
   7.  Smaller starting SID wins

If you were to seriously try to focus on "network availability" we would ne=
ed to incorporate additional information which might include:


=B7         Is a prefix reachable?

=B7         How much traffic depends on each prefix

=B7         What class of traffic depends on each prefix

This can only increase the complexity of the implementation - and I have no=
 doubt the debate about the best heuristics could go on without end.

I return again to the priorities which the authors stated from the beginnin=
g:

1)Detect the problem
2)Report the problem
3)Define consistent behavior
4)Don't overengineer the solution
Given that it is impossible to know which of the conflicting entries
is the correct one, we should apply a simple algorithm to resolve the confl=
ict.
5)Agree on the resolution behavior


For some of us, the resolution behavior is the least important. For you it =
seems it is the most important.
That is what  the debate is really about.

   Les

--Bruno


From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Friday, December 09, 2016 7:31 PM
To: DECRAENE Bruno IMT/OLN
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Bruno -

Welcome back to the discussion. :)
Inline.

From: bruno.decraene@orange.com<mailto:bruno.decraene@orange.com> [mailto:b=
runo.decraene@orange.com]
Sent: Friday, December 09, 2016 2:07 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Hi Les,

As a individual contributor, please find below some clarification questions=
 [Bruno]

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Monday, December 05, 2016 1:04 AM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



[Bruno] In the draft, the "Ignore" policy (=A73.3.1) ignores all conflictin=
g entries.

In your below proposition, the policy seems to pick the most preferred entr=
y. This looks like more similar to the "Quarantine" policy proposed in the =
draft (=A73.3.2)

Am I missing something?



[Les:] At the time "Ignore" was introduced (over a year ago) the notion of =
"SRMS preference" did not exist - that was only added in the most recent ve=
rsion of the draft.

We (the authors) feel that this is a useful construct because:



1)It provides an explicit basis on which to choose between conflicting entr=
ies.

2)It is particularly useful when bringing up a new SRMS as it allows the ad=
vertised values to be verified before they are used.



So, your comment is correct in that there is now a preference algorithm in =
use - whereas with the original definition of "Ignore" there was no prefere=
nce algorithm. But the sole criteria of the preference rule is the explicit=
ly configured preference - none of the other criteria proposed for Quaranti=
ne are used - and in particular we do not make partial use of a mapping ent=
ry as is the case with "Ignore Overlap Only".



I am happy to modify the nomenclature - but the point of this thread is not=
 to replace a new draft revision - it is to get the sense of the WG before =
we publish a new revision as to whether we should continue down the "Ignore=
 Overlap only" path or move to a simpler strategy - so let's not be too pic=
ky about the naming.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

[Bruno] I'm not sure what you are refering to by "preference". Is this the =
IGP "SRMS Preference sub-TLV" or is this the preference defined in the draf=
t (=A73.3.4)?



[Les:] It is the former.



Assuming you meant the SRMS preference, why limiting to this field, rather =
than including all fields defined in the draft preference algo?

Using the latter would reduce the risk of ignoring all entries (i.e. having=
 no entry in output of this algo). Also a priori,  a sort would not be requ=
ired as a single pass could select the most preferred entry.



[Les:] The point of the alternative proposal is a simplification. The prese=
ntation in Seoul (check out the slides) highlighted complexities in the imp=
lementation of "ignore-overlap-only" - in particular subtleties in the orde=
r in which an implementation looks at entries which could produce interoper=
ability issues even though implementations are using the same preference ru=
le. The alternative reduces the chances of these interoperability issues oc=
curring because the algorithm used is simpler and less subject to subtle im=
plementation differences.



If you want to argue that these are solvable problems I won't disagree with=
 you - it is a question of where we want to put our time and effort. A numb=
er of folks are commenting that they prefer to focus on fixing the configur=
ation and not invest  time in validating that conflict resolution is implem=
ented in an interoperable way. As we (the authors) have stated from the beg=
inning, we believe the emphasis should be on detecting and reporting the co=
nflicts - not spending cycles implementing the most robust means of trying =
to operate optimally while the misconfiguration exists. I know you disagree=
 on this point - but that is exactly what the WG is debating - not whether =
it is possible to make "ignore overlap only" work.



   Les



Thanks

-- Bruno



Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

___________________________________________________________________________=
______________________________________________



Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc

pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu=
 ce message par erreur, veuillez le signaler

a l'expediteur et le detruire ainsi que les pieces jointes. Les messages el=
ectroniques etant susceptibles d'alteration,

Orange decline toute responsabilite si ce message a ete altere, deforme ou =
falsifie. Merci.



This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law;

they should not be distributed, used or copied without authorisation.

If you have received this email in error, please notify the sender and dele=
te this message and its attachments.

As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.

Thank you.

--_000_10ea072784584a99b56d4d7ebac2b86cXCHALN001ciscocom_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
span.PrformatHTMLCar
	{mso-style-name:"Pr=E9format=E9 HTML Car";
	mso-style-priority:99;
	mso-style-link:"Pr=E9format=E9 HTML";
	font-family:Consolas;}
p.PrformatHTML, li.PrformatHTML, div.PrformatHTML
	{mso-style-name:"Pr=E9format=E9 HTML";
	mso-style-link:"Pr=E9format=E9 HTML Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.TextebrutCar
	{mso-style-name:"Texte brut Car";
	mso-style-priority:99;
	mso-style-link:"Texte brut";
	font-family:Consolas;}
p.Textebrut, li.Textebrut, div.Textebrut
	{mso-style-name:"Texte brut";
	mso-style-link:"Texte brut Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.TextedebullesCar
	{mso-style-name:"Texte de bulles Car";
	mso-style-priority:99;
	mso-style-link:"Texte de bulles";
	font-family:"Tahoma","sans-serif";}
p.Textedebulles, li.Textedebulles, div.Textedebulles
	{mso-style-name:"Texte de bulles";
	mso-style-link:"Texte de bulles Car";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.EmailStyle30
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle31
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle32
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle33
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle34
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:377820275;
	mso-list-type:hybrid;
	mso-list-template-ids:1453607876 67698689 67698691 67698693 67698689 67698=
691 67698693 67698689 67698691 67698693;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Symbol;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:"Courier New";}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:\F0A7;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">And one more thought f=
or everyone to mull over while enjoying the holidays&#8230;<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Consistency is a requi=
rement of any solution i.e. all routers in the network MUST use the same al=
gorithm operating on the same database.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">However, this requirem=
ent goes beyond routers &#8211; it is also required of any entity &#8211; s=
pecifically controllers &#8211; which might specify an engineered path cons=
isting of prefix SIDs.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I think no one questio=
ns that all routers will implement the standardized solution &#8211; but wi=
ll all controllers?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Consider the consequen=
ces if a controller does not implement the solution.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">We have the following =
conflict:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">(192, 1.1.1.1/32 100 r=
ange 1)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">(192, 2.2.2.2/32 100 r=
ange 1)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">If we use a policy whi=
ch chooses a winning entry in such a case (such as &#8220;Ignore Overlap On=
ly&#8221;) the winner will be (192, 1.1.1.1/32 100 range 1) (based on curre=
nt preference rules defined in the draft).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Labels associated with=
 SID 100 will be installed in router forwarding plans and direct traffic to=
wards 1.1.1.1.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">If we use a policy whi=
ch does not use either of the conflicting entries routers will NOT install =
labels associated with SID 100 in the forwarding plane and traffic arriving=
 with such a label will be dropped.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">If a controller which =
does NOT do conflict resolution builds an engineered path which traverses 2=
.2.2.2, it will send a label stack including SID 100.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Using &#8220;Ignore Ov=
erlap Only&#8221;, routers will forward a packet with SID 100 towards 1.1.1=
.1 rather than 2.2.2.2.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Using &#8220;Ignore&#8=
221;, packets using SID 100 will be dropped.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I am not optimistic th=
at all controllers will implement conflict resolution. If I am right, the c=
onsequences of the combination of the Conflict Resolution policy chosen and=
 a Controller which does not implement
 conflict resolution should be considered.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp; Les<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> spring [=
mailto:spring-bounces@ietf.org]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Wednesday, December 21, 2016 5:50 PM<br>
<b>To:</b> bruno.decraene@orange.com<br>
<b>Cc:</b> spring@ietf.org<br>
<b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Proposal<o:=
p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Bruno -<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">
<a href=3D"mailto:bruno.decraene@orange.com">bruno.decraene@orange.com</a> =
[<a href=3D"mailto:bruno.decraene@orange.com">mailto:bruno.decraene@orange.=
com</a>]
<br>
<b>Sent:</b> Wednesday, December 21, 2016 6:40 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Les,<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Still as an individual=
 contributor, SID conflict resolution is about a trade-off between implemen=
tation complexity and network availability. Hence evaluating the consequenc=
es on network availability is at least
 as important as evaluating the implementation complexity; especially as th=
e former is easier to quantify while the latter may be implementation speci=
fic. So on this FEC/network availability standpoint, please find below thre=
e comments.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">1) The slides presente=
d might IMHO slightly mislead a reader:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">- the discussion on ne=
twork availability compares &quot;Quarantine&quot; vs &quot;Ignore Overlap&=
quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">- the conclusion discu=
ss &quot;Ignore Overlap&quot; vs &quot;Ignore&quot;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">So they are comparing =
different things, while a quick reader may assume that apples were compared=
 to apples.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Note that I'm not sayi=
ng (and not thinking) that this is misleading on purpose. I'm expressing th=
e way I read it.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">[Les:] Please re=
member the history here. Prior to Seoul the input we had was:<o:p></o:p></s=
pan></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">&#8220;Ignore&#8=
221; is least desirable &#8211; evaluate between &#8220;Quarantine&#8221; a=
nd &#8220;Ignore Overlap&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">The discussion o=
ver the previous few months therefore was comparing the latter two. Slides =
for both Berlin and Seoul were therefore prepared with that in mind.<o:p></=
o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">Significant feed=
back at Seoul and since has made &#8220;Ignore&#8221; a candidate again &#8=
211; so the email thread has now focused on &#8220;Ignore&#8221; vs &#8220;=
Ignore Overlap Only&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">If I had receive=
d this feedback before Seoul I would have prepared different slides.<o:p></=
o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">My apologies for=
 not being clairvoyant.
</span></i></b><b><i><span style=3D"font-family:Wingdings;color:#1F497D">J<=
/span></i></b><span style=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">2) Regarding the new p=
roposal, post Seoul, it is vocal on the complexity side, but not on the net=
work availability side which is not evaluated. This does not helps the WG u=
nderstanding of the trade-off involved
 and the making of an informed decision.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">I'm even wondering if =
the network availability has been considered since by default, this proposa=
l seems to kill, by design, the SRMS and SR-LDP inter-working.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">SRMS has been designed=
 in order to allow for the inter-working with LDP, in a brown-field scenari=
o where SR is introduced in a LDP MPLS network.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">e.g. a typical set of =
advertisements would be<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">1. PrefixSID: (192, 1.=
1.1.1/32 100 range 1)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">2. MS: &nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;(128, 1.1.1.1/32 100 range 255)<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">With this simple examp=
le, not even having a configuration error but using a nominal configuration=
, the MS advertisement would be ignored with the ignore policy, hence the L=
DP interwork would not work, and all
 LDP/non-SR nodes would loose SID hence loose SR connectivity.<o:p></o:p></=
span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Eventually, you may ch=
ange the algorithm, to look beyond the most preferred entry, and check whet=
her the SIDs are really different or not. And if not, change the algo to pi=
ck the largest range rather than the
 highest preference. But this is adding complexity to cover a specific case=
, while keeping the solution weak in term of network availability, in the g=
eneral case. e.g. if we do have a different SID, many&nbsp; prefix (99%) wo=
uld lose their SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">[Les:] Your inte=
rpretation is incorrect. There is no conflict in the example you provide &#=
8211; therefore no entries will be ignored (this is true no matter what con=
flict resolution strategy is chosen).<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">The definition o=
f conflicts can be found in Section 3.2 of the draft. Nothing in this discu=
ssion proposes changes to that- and the definition of a conflict has never =
been under debate.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">What we have dis=
cussed over the last 6 months or more has been what to do when conflicts ex=
ist- this is Section 3.3 of the draft.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">3) Finally, when discu=
ssing &quot;Ignore Overlap&quot;, a typical quote from the authors is &quot=
;maximize forwarding&quot; or &quot;operate optimally&quot;, as if we were =
trying to optimize for the last bit. But note that &quot;Ignore Overlap&quo=
t;
 is _not_ maximizing forwarding.&nbsp; Maximizing forwarding would be much =
more complex, and nobody on the list has even tried for this, including dra=
ft-ietf-spring-conflict-resolution.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">e.g. with following ad=
vertisements with a misconfiguration<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">1. PrefixSID: (192, 1.=
1.1.1/32 101 range 1)<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">2. MS:&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp; (128, 1.1.1.1/32 100 range 255)<o:p></o:p></span=
></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">During prefix conflict=
, for 1.1.1.1/32 Ignore Overlap selects the SID from prefixSID entry, which=
 will latter have a SID conflict with the MS entry (SID 101, prefixes 1.1.1=
.1 vs 1.1.1.2). As a result, 1.1.1.2
 won't get a SID.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">In this specific case,=
 a solution &quot;maximizing the forwarding&quot; would have ignored the Pr=
efixSID. But in the general case, &quot;maximizing the forwarding&quot; may=
 require evaluating all options, and then pick the best
 one based on all results.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">So please let&#8217;s =
keep evaluating the impact on the network availability. Berlin presentation=
 was a good example on this.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">[Les:] Well, the=
 Berlin slides (see Slide 25) use the term &#8220;Maximize SR Forwarding&#8=
221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><a href=3D"https=
://www.ietf.org/proceedings/96/slides/slides-96-spring-4.pdf">https://www.i=
etf.org/proceedings/96/slides/slides-96-spring-4.pdf</a><o:p></o:p></span><=
/i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">One of the probl=
ems with making a choice when conflicts exist is that there is no way of kn=
owing what prefixes are the most important in a particular network deployme=
nt. &nbsp;&#8220;Ignore overlap only&#8221; aimed to
 maximize the number of prefixes which had SIDs in the hope that we would h=
ave a greater chance of including the more important prefixes &#8211; but s=
ince all of our tie-breakers are simply arbitrary choices there is no guara=
ntee. From Section 3.3.4 of the draft:<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">2 Smaller range wins<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">3.&nbsp; IPv6 entry wins over IPv4 entry<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">4.&nbsp; Longer prefix length wins<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">5.&nbsp; Smaller algorithm wins<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">6.&nbsp; Smaller starting address (considered as an unsigned integer=
<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><span style=3D"color:#1=
F497D">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value) wins<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">&nbsp;&nbsp; 7.&nbsp; =
Smaller starting SID wins<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">If you were to s=
eriously try to focus on &#8220;network availability&#8221; we would need t=
o incorporate additional information which might include:<o:p></o:p></span>=
</i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">Is a prefix re=
achable?<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">How much traff=
ic depends on each prefix<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo2"><![if !supportLists]><span style=3D"font-family:Symbol;color:#1F497=
D"><span style=3D"mso-list:Ignore">=B7<span style=3D"font:7.0pt &quot;Times=
 New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"color:#1F497D">What class of =
traffic depends on each prefix<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">This can only in=
crease the complexity of the implementation &#8211; and I have no doubt the=
 debate about the best heuristics could go on without end.<o:p></o:p></span=
></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">I return again t=
o the priorities which the authors stated from the beginning:<o:p></o:p></s=
pan></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">1)Detect the problem<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">2)Report the problem<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">3)Define consistent behavior<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">4)Don&#8217;t overengineer the solution<o:p></o:p></span></i><=
/b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">Given that it is impossible to know which of the conflicting e=
ntries<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D">is the correct one, we should apply a simple algorithm to reso=
lve the conflict.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">5)Agree on the r=
esolution behavior<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal" style=3D"margin-left:5.25pt"><b><i><span style=3D"co=
lor:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">For some of us, =
the resolution behavior is the least important. For you it seems it is the =
most important.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">That is what &nb=
sp;the debate is really about.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">&nbsp;&nbsp; Les=
<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">--Bruno<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"FR" style=3D"font-size:10.0pt;font-=
family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lan=
g=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;san=
s-serif&quot;"> Les Ginsberg (ginsberg) [<a href=3D"mailto:ginsberg@cisco.c=
om">mailto:ginsberg@cisco.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:31 PM<br>
<b>To:</b> DECRAENE Bruno IMT/OLN<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"FR"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Bruno &#8211;<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Welcome back to the di=
scussion. </span>
<span style=3D"font-family:Wingdings;color:#1F497D">J</span><span style=3D"=
color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Inline.<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">
<a href=3D"mailto:bruno.decraene@orange.com">bruno.decraene@orange.com</a> =
[<a href=3D"mailto:bruno.decraene@orange.com">mailto:bruno.decraene@orange.=
com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 2:07 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Hi Les,<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">As a individual contri=
butor, please find below some clarification questions [Bruno]<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span lang=3D"FR" style=3D"font-size:10.0pt;font-=
family:&quot;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span lan=
g=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;san=
s-serif&quot;"> spring [<a href=3D"mailto:spring-bounces@ietf.org">mailto:s=
pring-bounces@ietf.org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Monday, December 05, 2016 1:04 AM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"FR"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">[Bruno] In the draf=
t, the &#8220;Ignore&#8221; policy (=A73.3.1) ignores all conflicting entri=
es.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">In your below propo=
sition, the policy seems to pick the most preferred entry. This looks like =
more similar to the &#8220;Quarantine&#8221; policy proposed in the draft (=
=A73.3.2)<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Am I missing someth=
ing?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] At the=
 time &#8220;Ignore&#8221; was introduced (over a year ago) the notion of &=
#8220;SRMS preference&#8221; did not exist &#8211; that was only added in t=
he most recent version of the draft.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">We (the autho=
rs) feel that this is a useful construct because:<o:p></o:p></span></i></b>=
</p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">1)It provides=
 an explicit basis on which to choose between conflicting entries.<o:p></o:=
p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">2)It is parti=
cularly useful when bringing up a new SRMS as it allows the advertised valu=
es to be verified before they are used.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">So, your comm=
ent is correct in that there is now a preference algorithm in use &#8211; w=
hereas with the original definition of &#8220;Ignore&#8221; there was no pr=
eference algorithm. But the sole criteria of the preference
 rule is the explicitly configured preference &#8211; none of the other cri=
teria proposed for Quarantine are used &#8211; and in particular we do not =
make partial use of a mapping entry as is the case with &#8220;Ignore Overl=
ap Only&#8221;.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">I am happy to=
 modify the nomenclature &#8211; but the point of this thread is not to rep=
lace a new draft revision &#8211; it is to get the sense of the WG before w=
e publish a new revision as to whether we should
 continue down the &#8220;Ignore Overlap only&#8221; path or move to a simp=
ler strategy &#8211; so let&#8217;s not be too picky about the naming.<o:p>=
</o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">[Bruno] I&#8217;m n=
ot sure what you are refering to by &#8220;preference&#8221;. Is this the I=
GP &#8220;SRMS Preference sub-TLV&#8221; or is this the preference defined =
in the draft (=A73.3.4)?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] It is =
the former.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Assuming you meant =
the SRMS preference, why limiting to this field, rather than including all =
fields defined in the draft preference algo?<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Using the latter wo=
uld reduce the risk of ignoring all entries (i.e. having no entry in output=
 of this algo). Also a priori, &nbsp;a sort would not be required as a sing=
le pass could select the most preferred entry.<o:p></o:p></span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">[Les:] The po=
int of the alternative proposal is a simplification. The presentation in Se=
oul (check out the slides) highlighted complexities in the implementation o=
f &#8220;ignore-overlap-only&#8221; &#8211; in particular
 subtleties in the order in which an implementation looks at entries which =
could produce interoperability issues even though implementations are using=
 the same preference rule. The alternative reduces the chances of these int=
eroperability issues occurring because
 the algorithm used is simpler and less subject to subtle implementation di=
fferences.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">If you want t=
o argue that these are solvable problems I won&#8217;t disagree with you &#=
8211; it is a question of where we want to put our time and effort. A numbe=
r of folks are commenting that they prefer to focus
 on fixing the configuration and not invest &nbsp;time in validating that c=
onflict resolution is implemented in an interoperable way. As we (the autho=
rs) have stated from the beginning, we believe the emphasis should be on de=
tecting and reporting the conflicts &#8211;
 not spending cycles implementing the most robust means of trying to operat=
e optimally while the misconfiguration exists. I know you disagree on this =
point &#8211; but that is exactly what the WG is debating &#8211; not wheth=
er it is possible to make &#8220;ignore overlap only&#8221;
 work.<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D">&nbsp;&nbsp; =
Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">Thanks<o:p></o:p></=
span></p>
<p class=3D"MsoPlainText"><span style=3D"color:#1F497D">-- Bruno<o:p></o:p>=
</span></p>
<p class=3D"MsoPlainText"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</=
o:p></span></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">________________________________________________________________=
_________________________________________________________<o:p></o:p></span>=
</pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Ce message et ses pieces jointes peuvent contenir des informatio=
ns confidentielles ou privilegiees et ne doivent donc<o:p></o:p></span></pr=
e>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">pas etre diffuses, exploites ou copies sans autorisation. Si vou=
s avez recu ce message par erreur, veuillez le signaler<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">a l'expediteur et le detruire ainsi que les pieces jointes. Les =
messages electroniques etant susceptibles d'alteration,<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Orange decline toute responsabilite si ce message a ete altere, =
deforme ou falsifie. Merci.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">This message and its attachments may contain confidential or pri=
vileged information that may be protected by law;<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">they should not be distributed, used or copied without authorisa=
tion.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">If you have received this email in error, please notify the send=
er and delete this message and its attachments.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">As emails may be altered, Orange is not liable for messages that=
 have been modified, changed or falsified.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Thank you.<o:p></o:p></span></pre>
</div>
</div>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">________________________________________________________________=
_________________________________________________________<o:p></o:p></span>=
</pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Ce message et ses pieces jointes peuvent contenir des informatio=
ns confidentielles ou privilegiees et ne doivent donc<o:p></o:p></span></pr=
e>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">pas etre diffuses, exploites ou copies sans autorisation. Si vou=
s avez recu ce message par erreur, veuillez le signaler<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">a l'expediteur et le detruire ainsi que les pieces jointes. Les =
messages electroniques etant susceptibles d'alteration,<o:p></o:p></span></=
pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Orange decline toute responsabilite si ce message a ete altere, =
deforme ou falsifie. Merci.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">This message and its attachments may contain confidential or pri=
vileged information that may be protected by law;<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">they should not be distributed, used or copied without authorisa=
tion.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">If you have received this email in error, please notify the send=
er and delete this message and its attachments.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">As emails may be altered, Orange is not liable for messages that=
 have been modified, changed or falsified.<o:p></o:p></span></pre>
<pre><span lang=3D"FR" style=3D"font-size:10.0pt;font-family:&quot;Courier =
New&quot;">Thank you.<o:p></o:p></span></pre>
</div>
</div>
</div>
</body>
</html>

--_000_10ea072784584a99b56d4d7ebac2b86cXCHALN001ciscocom_--


From nobody Thu Dec 22 08:10:20 2016
Return-Path: <mustapha.aissaoui@nokia.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0B0C1128B38 for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 08:10:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.92
X-Spam-Level: 
X-Spam-Status: No, score=-6.92 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JNWhcS5zeKzN for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 08:10:16 -0800 (PST)
Received: from smtp-us.alcatel-lucent.com (us-hpswa-esg-01.alcatel-lucent.com [135.245.18.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3456D1296CE for <spring@ietf.org>; Thu, 22 Dec 2016 08:10:15 -0800 (PST)
Received: from us70uumx3.dmz.alcatel-lucent.com (unknown [135.245.18.15]) by Websense Email Security Gateway with ESMTPS id 5953FD01EADEF; Thu, 22 Dec 2016 16:10:11 +0000 (GMT)
Received: from us70uusmtp3.zam.alcatel-lucent.com (us70uusmtp3.zam.alcatel-lucent.com [135.5.2.65]) by us70uumx3.dmz.alcatel-lucent.com (GMO) with ESMTP id uBMGADQt028378 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 22 Dec 2016 16:10:14 GMT
Received: from US70TWXCHHUB04.zam.alcatel-lucent.com (us70twxchhub04.zam.alcatel-lucent.com [135.5.2.36]) by us70uusmtp3.zam.alcatel-lucent.com (GMO) with ESMTP id uBMGADgI018889 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Thu, 22 Dec 2016 16:10:13 GMT
Received: from US70UWXCHMBA01.zam.alcatel-lucent.com ([169.254.7.176]) by US70TWXCHHUB04.zam.alcatel-lucent.com ([135.5.2.36]) with mapi id 14.03.0301.000; Thu, 22 Dec 2016 11:10:13 -0500
From: "Aissaoui, Mustapha (Nokia - CA)" <mustapha.aissaoui@nokia.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAodWgAC/MMoAChMj6cA==
Date: Thu, 22 Dec 2016 16:10:12 +0000
Message-ID: <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com>
In-Reply-To: <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: multipart/alternative; boundary="_000_4A79394211F1AF4EB57D998426C9340DD4B100A7US70UWXCHMBA01z_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/1uoM1iRDERC6M8JPbX_QWGyBZ8Y>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 16:10:19 -0000

--_000_4A79394211F1AF4EB57D998426C9340DD4B100A7US70UWXCHMBA01z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Les,
I read slides 17-21 of the document you referenced below and I have the fol=
lowing comments:


1.     Page 17, "Order Matters - Prefix vs SID Conflict".

When you perform resolution on  a per prefix basis, prefix conflicts are na=
turally processed first followed by SID conflicts across different prefixes=
. So the ordering issue described is only specific if you decided to resolv=
e conflicting SID entries outside of the natural prefix resolution by a rou=
ter.



2.     Page 18, "Order Matters: Derived vs non-derived- prefix conflict".

It seems to me this issue is an artifact of the specific algorithm used to =
resolve conflicts. Because the algorithm uses parameters such as "Range (st=
art w smallest)" then obviously derived SRMS entries will lend a different =
result than original SRMS entries.

With the pre-prefix resolution, the only information kept from the original=
 SRMS entry is the preference and the advertising or owner router. Anything=
 else is not used. It seems to me a simple algorithm based on preference fi=
rst then followed by some rule on selecting the advertising router if confl=
icts exist within the same preference would work.



3.     Finally, there is something which has not been addressed in the slid=
es. There is still a possibility of conflicting entries among SIDs advertis=
ed using the prefix SID sub-TLV within a Prefix TLV (IS-IS IP Reach TLV or =
OSPF Extended Prefix TLV). A simple rule selecting the advertising router s=
hould also work fine here.

Regards,
Mustapha.

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Friday, December 09, 2016 1:49 PM
To: Aissaoui, Mustapha (Nokia - CA) <mustapha.aissaoui@nokia.com>; spring@i=
etf.org
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Mustapha -

From: Aissaoui, Mustapha (Nokia - CA) [mailto:mustapha.aissaoui@nokia.com]
Sent: Friday, December 09, 2016 7:44 AM
To: Les Ginsberg (ginsberg); spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

I have a couple of comments on the below proposal.


1.     Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft. I=
n many cases, a configuration on the resolving router can assign a preferen=
ce to each SRMS in case there is no advertisement of this sub-TLV or to ove=
rride an advertised value. I propose that this option be allowed. Here is a=
 proposed update to the relevant paragraph:

"
           Advertisement of a preference value is optional.  Nodes which do=
 not
          advertise a preference value are assigned a preference value of 1=
28.
           A resolving router can override the default or the advertised va=
lue by local policy.

"

[Les:] In order to get consistent conflict resolution on all nodes in the n=
etwork, it is necessary that they all have the same database - which includ=
es the preference value. If you allow local policy to modify the preference=
 you no longer have consistent databases on all nodes and we can no longer =
guarantee consistent conflict resolution. So your proposal is not viable IM=
O.



2.     I am trying to understand the concept of sorting SRMS entries which =
have different prefixes and different range sizes.

Since a SID advertised in a prefix SID sub-TLV within a Prefix TLV (IS-IS I=
P Reach TLV or OSPF Extended Prefix TLV) has higher priority over a SID for=
 the same prefix advertised from a SRMS, then you have to add to the below =
sorting an entry for each individual prefix which advertised a prefix SID s=
ub-TLV within a prefix TLV.

At this point, the concept of an entry with multiple prefixes is moot and y=
ou may as well just sort on a per prefix basis which is the most natural th=
ing to do given that the prefix resolution and then the SID resolution are =
performed on a per prefix basis. SID conflicts can be resolved on a per pre=
fix basis using the below proposed preference algorithm without having to i=
gnore SID values for unrelated prefixes just because it happens that they w=
ere advertised in the same SRMS entry.



[Les:] The simpler proposal does not require sorting on anything other than=
 preference. After that, you can process entries in any order you want and =
you will get the same answer.

With "Ignore Overlap Only" one of the issues with trying to use the non-con=
flicting portions of a mapping entry which has a range > 1 is that the orde=
r in which you process entries influences the result. Please see slides 17 =
- 20 from the IETF97 presentation: https://www.ietf.org/proceedings/97/slid=
es/slides-97-spring-1_ietf97_draft-ietf-spring-conflict-resolution-02-00.pp=
tx for some simple examples of this.



   Les



Regards,
Mustapha.

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Sunday, December 04, 2016 7:04 PM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









--_000_4A79394211F1AF4EB57D998426C9340DD4B100A7US70UWXCHMBA01z_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New",serif;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma",sans-serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New",serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri",sans-serif;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma",sans-serif;}
span.EmailStyle25
	{mso-style-type:personal;
	font-family:"Arial",sans-serif;
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
span.EmailStyle26
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle27
	{mso-style-type:personal-reply;
	font-family:"Arial",sans-serif;
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1961061576;
	mso-list-type:hybrid;
	mso-list-template-ids:-785107920 67698703 67698713 67698715 67698703 67698=
713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Hi Les,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">I read slides 17-21 of the document you referenced be=
low and I have the following comments:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-size:10.0pt;font-family:&q=
uot;Arial&quot;,sans-serif"><span style=3D"mso-list:Ignore">1.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:10.0pt;font-family:=
&quot;Arial&quot;,sans-serif">Page 17, &#8220;Order Matters - Prefix vs SID=
 Conflict&#8221;.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">When you perform resolution on&nbsp; a per pre=
fix basis, prefix conflicts are naturally processed first followed by SID c=
onflicts across different prefixes. So the ordering
 issue described is only specific if you decided to resolve conflicting SID=
 entries outside of the natural prefix resolution by a router.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">&nbsp;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-size:10.0pt;font-family:&q=
uot;Arial&quot;,sans-serif"><span style=3D"mso-list:Ignore">2.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:10.0pt;font-family:=
&quot;Arial&quot;,sans-serif">Page 18, &#8220;Order Matters: Derived vs non=
-derived&#8211; prefix conflict&#8221;.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">It seems to me this issue is an artifact of th=
e specific algorithm used to resolve conflicts. Because the algorithm uses =
parameters such as &#8220;Range (start w smallest)&#8221;
 then obviously derived SRMS entries will lend a different result than orig=
inal SRMS entries.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">With the pre-prefix resolution, the only infor=
mation kept from the original SRMS entry is the preference and the advertis=
ing or owner router. Anything else is not used.
 It seems to me a simple algorithm based on preference first then followed =
by some rule on selecting the advertising router if conflicts exist within =
the same preference would work.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-size:10.0pt;font-family:&q=
uot;Arial&quot;,sans-serif"><span style=3D"mso-list:Ignore">3.<span style=
=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style=3D"font-size:10.0pt;font-family:=
&quot;Arial&quot;,sans-serif">Finally, there is something which has not bee=
n addressed in the slides. There is still a possibility of conflicting entr=
ies among SIDs advertised using the prefix SID
 sub-TLV within a Prefix TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TL=
V). A simple rule selecting the advertising router should also work fine he=
re.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Mustapha.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Les Ginsberg (ginsberg) [mailto:ginsber=
g@cisco.com]
<br>
<b>Sent:</b> Friday, December 09, 2016 1:49 PM<br>
<b>To:</b> Aissaoui, Mustapha (Nokia - CA) &lt;mustapha.aissaoui@nokia.com&=
gt;; spring@ietf.org<br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Mustapha -<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,sans-serif">From:</span></b><span style=3D"font-size:10.0pt;f=
ont-family:&quot;Tahoma&quot;,sans-serif"> Aissaoui, Mustapha (Nokia - CA) =
[<a href=3D"mailto:mustapha.aissaoui@nokia.com">mailto:mustapha.aissaoui@no=
kia.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:44 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org">spri=
ng@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">I have a couple of comments on the below proposal.<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif">1.</span><span st=
yle=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,serif">&nbsp=
;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,sans-s=
erif">Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft. In=
 many cases, a configuration on the resolving router can assign a preferenc=
e to each SRMS in case there is no advertisement
 of this sub-TLV or to override an advertised value. I propose that this op=
tion be allowed. Here is a proposed update to the relevant paragraph:<o:p><=
/o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp; Advertisement of a preference value is optional.&nbsp; Nodes which do n=
ot<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp;advertise a preference value are assigned a preference value of 128. &nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp;&nbsp;<span style=3D"color:red">A resolving router can override the defa=
ult or the advertised value by local policy.</span><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] In order to get consistent conflict resolution on=
 all nodes in the network, it is necessary that they all have the same data=
base &#8211; which includes the preference value.
 If you allow local policy to modify the preference you no longer have cons=
istent databases on all nodes and we can no longer guarantee consistent con=
flict resolution. So your proposal is not viable IMO.</span></i></b><span s=
tyle=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif">2.</span><span st=
yle=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,serif">&nbsp=
;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,sans-s=
erif">I am trying to understand the concept of sorting SRMS entries which h=
ave different prefixes and different range sizes. &nbsp;<o:p></o:p></span><=
/p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">Since a SID advertised in a prefix SID sub-TLV=
 within a Prefix TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV) has h=
igher priority over a SID for the same prefix
 advertised from a SRMS, then you have to add to the below sorting an entry=
 for each individual prefix which advertised a prefix SID sub-TLV within a =
prefix TLV.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">At this point, the concept of an entry with mu=
ltiple prefixes is moot and you may as well just sort on a per prefix basis=
 which is the most natural thing to do given that
 the prefix resolution and then the SID resolution are performed on a per p=
refix basis. SID conflicts can be resolved on a per prefix basis using the =
below proposed preference algorithm without having to ignore SID values for=
 unrelated prefixes just because
 it happens that they were advertised in the same SRMS entry.<o:p></o:p></s=
pan></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] The simpler proposal does not require sorting on =
anything other than preference. After that, you can process entries in any =
order you want and you will get the same
 answer.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">With &#8220;Ignore Overlap Only&#8221; one of the issues=
 with trying to use the non-conflicting portions of a mapping entry which h=
as a range &gt; 1 is that the order in which you process
 entries influences the result. Please see slides 17 &#8211; 20 from the IE=
TF97 presentation:
<a href=3D"https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ie=
tf97_draft-ietf-spring-conflict-resolution-02-00.pptx">
https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_draft-=
ietf-spring-conflict-resolution-02-00.pptx</a> for some simple examples of =
this.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">&nbsp;&nbsp; Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><span style=3D"colo=
r:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Mustapha.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> spring [<a href=3D"mailto:spring-bounce=
s@ietf.org">mailto:spring-bounces@ietf.org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Sunday, December 04, 2016 7:04 PM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_4A79394211F1AF4EB57D998426C9340DD4B100A7US70UWXCHMBA01z_--


From nobody Thu Dec 22 11:27:04 2016
Return-Path: <MAnand@infinera.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E0A211293DA for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 11:27:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.903
X-Spam-Level: 
X-Spam-Status: No, score=-1.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=infinera.onmicrosoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id k8OizWsjJfJd for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 11:27:02 -0800 (PST)
Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0085.outbound.protection.outlook.com [104.47.41.85]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D6B25128874 for <spring@ietf.org>; Thu, 22 Dec 2016 11:27:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=infinera.onmicrosoft.com; s=selector1-infinera-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=sYZ5zMFgOvxdSvnseZ+J3kge0+8aoh/EHmc1ftSY3K8=; b=SVmUBOO9zzprpruqOn1ZtLo3uAqtZVGoqT6or6bDcSP5gpVxCjKWMQcWz8b291aIYv9iPNhigS4uxvi0bB40YdA3ioKsyQK5jWls3OY77nmrSIt6LQPAcROcxNDNL/Y4z5qFjFIeBljnR75J7+VffT5WlWeV9sl4a08Zy4oLCEI=
Received: from BY2PR10MB0775.namprd10.prod.outlook.com (10.163.111.141) by BN6PR10MB1780.namprd10.prod.outlook.com (10.172.21.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14; Thu, 22 Dec 2016 19:27:00 +0000
Received: from BY2PR10MB0775.namprd10.prod.outlook.com ([10.163.111.141]) by BY2PR10MB0775.namprd10.prod.outlook.com ([10.163.111.141]) with mapi id 15.01.0789.018; Thu, 22 Dec 2016 19:26:59 +0000
From: Madhukar Anand <MAnand@infinera.com>
To: "spring@ietf.org" <spring@ietf.org>
Thread-Topic: New Version Notification for draft-anand-spring-poi-sr-02.txt
Thread-Index: AQHSXIfRH++5eg0zoU22nws7rbq3FKEUWFEA
Date: Thu, 22 Dec 2016 19:26:58 +0000
Message-ID: <BY2PR10MB0775158F7C8B3ED7D9D3A445AC920@BY2PR10MB0775.namprd10.prod.outlook.com>
References: <148243415082.25984.2629223354634136446.idtracker@ietfa.amsl.com>
In-Reply-To: <148243415082.25984.2629223354634136446.idtracker@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=MAnand@infinera.com; 
x-originating-ip: [24.6.82.167]
x-ld-processed: 285643de-5f5b-4b03-a153-0ae2dc8aaf77,ExtAddr
x-forefront-antispam-report: SFV:SKI; SCL:-1SFV:NSPM; SFS:(10009020)(6009001)(7916002)(39450400003)(39410400002)(39830400002)(199003)(377424004)(189002)(2473002)(13464003)(377454003)(305945005)(9686002)(5660300001)(8936002)(229853002)(101416001)(2906002)(54356999)(38730400001)(122556002)(230783001)(99286002)(81156014)(33656002)(81166006)(6506006)(3846002)(6436002)(102836003)(76176999)(561944003)(6116002)(50986999)(1730700003)(15650500001)(8676002)(2900100001)(66066001)(76576001)(5640700003)(77096006)(25786008)(39060400001)(74316002)(6916009)(110136003)(4326007)(68736007)(105586002)(106116001)(3280700002)(106356001)(86362001)(2950100002)(97736004)(7696004)(3660700001)(2501003)(189998001)(2351001)(92566002)(80792005)(7736002)(4001150100001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR10MB1780; H:BY2PR10MB0775.namprd10.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;  A:1; MX:1; LANG:en; 
x-ms-office365-filtering-correlation-id: b15498b6-bbc3-4374-bb26-08d42aa07fb8
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BN6PR10MB1780;
x-microsoft-exchange-diagnostics: 1; BN6PR10MB1780; 7:kWMXQRnyznfDrZwzTQFN92PGrhnYH7ukHRA1dfL8DVsGljjJVcS4Bx7m7BrnmlkiU058qMqJhfyJYxKGhyXpZOJgxKDlipmYGZVE9joJJQ68u6x95lbvU6YXsMUqdBSQhInW7oatSCF5e7fR4zzahjixDX4VkyKUtMnedGrUH+lHPGrA7EZR8NDe83tZ3bKV4w/XOyO1srbb1TdRhPm1AgW4cvObpFyVqBJDxX8LrV3xVONs3ahDWm345mrAsab3mODoW9Vc8QLK0g1vpvOORneD3JhLBpj0ir8pgvo5o6zbWzZpgl6Bj5OmsZMbJNENdbCiZue1Ksn8lz8CjajC8n1pn4AHUbT7iso85cnV5ctjooxtZ050bd4QEHyvUEBZe66VxyvjwGqXqT0BHqT76YfrPFMmvwFdnHcv1hVx0TXmRwmDaF2/IJPlms9VdP1Bm3R9CBBCcbbQTg04ze2gHw==
x-microsoft-antispam-prvs: <BN6PR10MB178080D38D4DCF045F9D1A15AC920@BN6PR10MB1780.namprd10.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(120809045254105);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123560025)(6072148); SRVR:BN6PR10MB1780; BCL:0; PCL:0; RULEID:; SRVR:BN6PR10MB1780; 
x-forefront-prvs: 01644DCF4A
received-spf: None (protection.outlook.com: infinera.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: infinera.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Dec 2016 19:26:58.7856 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 285643de-5f5b-4b03-a153-0ae2dc8aaf77
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR10MB1780
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/RGfduWSTa-7JefYXguGUoQgQOe8>
Cc: Jeff Tantsura <jefftant.ietf@gmail.com>, Sanjoy Bardhan <sbardhan@infinera.com>
Subject: [spring] FW: New Version Notification for draft-anand-spring-poi-sr-02.txt
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 19:27:04 -0000

SGVsbG8gRm9sa3MsDQoNCiAgIFdlIGhhdmUgdXBsb2FkZWQgYSBuZXcgZHJhZnQgdmVyc2lvbiBv
ZiB0cmFuc3BvcnQgc2VnbWVudCByb3V0aW5nIGV4dGVuc2lvbnMgKGJvdGggdGhlIHByb3RvY29s
IGV4dGVuc2lvbnMgZHJhZnQgYW5kIHRoZSBPQU0gZXh0ZW5zaW9ucyBkcmFmdCkgd2hlcmUgd2Ug
aGF2ZSB0cmllZCB0byBhcnRpY3VsYXRlIHRoZSBvcGVyYXRpbmcgbW9kZWwgb2YgcGFja2V0IGFu
ZCB0cmFuc3BvcnQgbmV0d29ya3MgYW5kIHRoZSB1c2Ugb2YgdHJhbnNwb3J0IHNlZ21lbnRzLiBQ
bGVhc2UgZ28gdGhyb3VnaCB0aGVzZSBkcmFmdHMgYW5kIGxldCB1cyBrbm93IGlmIHRoaXMgaGVs
cHMgaW4gYmV0dGVyIHVuZGVyc3RhbmRpbmcgdGhlIG1vdGl2YXRpb25zIGZvciBvdXIgcHJvcG9z
YWwuDQoNClRoYW5rcywNCk1hZGh1a2FyLCBTYW5qb3ksIFJhbWVzaCBhbmQgSmVmZg0KDQoNCg0K
LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGludGVybmV0LWRyYWZ0c0BpZXRmLm9y
ZyBbbWFpbHRvOmludGVybmV0LWRyYWZ0c0BpZXRmLm9yZ10gDQpTZW50OiBUaHVyc2RheSwgRGVj
ZW1iZXIgMjIsIDIwMTYgMTE6MTYgQU0NClRvOiBSYW1lc2ggU3VicmFobWFuaWFtIDxSU3VicmFo
bWFuaWFtQGluZmluZXJhLmNvbT47IEplZmYgVGFudHN1cmEgPGplZmZ0YW50LmlldGZAZ21haWwu
Y29tPjsgTWFkaHVrYXIgQW5hbmQgPE1BbmFuZEBpbmZpbmVyYS5jb20+OyBTYW5qb3kgQmFyZGhh
biA8c2JhcmRoYW5AaW5maW5lcmEuY29tPg0KU3ViamVjdDogTmV3IFZlcnNpb24gTm90aWZpY2F0
aW9uIGZvciBkcmFmdC1hbmFuZC1zcHJpbmctcG9pLXNyLTAyLnR4dA0KDQoNCkEgbmV3IHZlcnNp
b24gb2YgSS1ELCBkcmFmdC1hbmFuZC1zcHJpbmctcG9pLXNyLTAyLnR4dCBoYXMgYmVlbiBzdWNj
ZXNzZnVsbHkgc3VibWl0dGVkIGJ5IE1hZGh1a2FyIEFuYW5kIGFuZCBwb3N0ZWQgdG8gdGhlIElF
VEYgcmVwb3NpdG9yeS4NCg0KTmFtZToJCWRyYWZ0LWFuYW5kLXNwcmluZy1wb2ktc3INClJldmlz
aW9uOgkwMg0KVGl0bGU6CQlQYWNrZXQtT3B0aWNhbCBJbnRlZ3JhdGlvbiBpbiBTZWdtZW50IFJv
dXRpbmcNCkRvY3VtZW50IGRhdGU6CTIwMTYtMTItMjINCkdyb3VwOgkJSW5kaXZpZHVhbCBTdWJt
aXNzaW9uDQpQYWdlczoJCTE4DQpVUkw6ICAgICAgICAgICAgaHR0cHM6Ly93d3cuaWV0Zi5vcmcv
aW50ZXJuZXQtZHJhZnRzL2RyYWZ0LWFuYW5kLXNwcmluZy1wb2ktc3ItMDIudHh0DQpTdGF0dXM6
ICAgICAgICAgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvZHJhZnQtYW5hbmQtc3By
aW5nLXBvaS1zci8NCkh0bWxpemVkOiAgICAgICBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwv
ZHJhZnQtYW5hbmQtc3ByaW5nLXBvaS1zci0wMg0KRGlmZjogICAgICAgICAgIGh0dHBzOi8vd3d3
LmlldGYub3JnL3JmY2RpZmY/dXJsMj1kcmFmdC1hbmFuZC1zcHJpbmctcG9pLXNyLTAyDQoNCkFi
c3RyYWN0Og0KICAgVGhpcyBkb2N1bWVudCBpbGx1c3RyYXRlcyBhIHdheSB0byBpbnRlZ3JhdGUg
YSBuZXcgY2xhc3Mgb2Ygbm9kZXMgYW5kDQogICBsaW5rcyBpbiBzZWdtZW50IHJvdXRpbmcgdG8g
cmVwcmVzZW50IHRyYW5zcG9ydCBuZXR3b3JrcyBpbiBhbiBvcGFxdWUNCiAgIHdheSBpbnRvIHRo
ZSBzZWdtZW50IHJvdXRpbmcgZG9tYWluLiAgQW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyB3b3Vs
ZA0KICAgYmUgb3B0aWNhbCBuZXR3b3JrcyB0aGF0IGFyZSB0eXBpY2FsbHkgdHJhbnNwb3J0IGNl
bnRyaWMuICBJbiB0aGUgSVANCiAgIGNlbnRyaWMgbmV0d29yaywgdGhpcyB3aWxsIGhlbHAgaW4g
ZGVmaW5pbmcgYSBjb21tb24gY29udHJvbCBwcm90b2NvbA0KICAgZm9yIHBhY2tldCBvcHRpY2Fs
IGludGVncmF0aW9uIHRoYXQgd2lsbCBpbmNsdWRlIG9wdGljYWwgcGF0aHMgYXMNCiAgICd0cmFu
c3BvcnQgc2VnbWVudHMnIG9yIHN1Yi1wYXRocyBhcyBhbiBhdWdtZW50YXRpb24gdG8gdGhlIGRl
ZmluZWQNCiAgIGV4dGVuc2lvbnMgb2Ygc2VnbWVudCByb3V0aW5nLiBUaGUgdHJhbnNwb3J0IHNl
Z21lbnQgb3B0aW9uIGFsc28NCiAgIGRlZmluZXMgYSBnZW5lcmFsIG1lY2hhbmlzbSB0byBhbGxv
dyBmb3IgZnV0dXJlIGV4dGVuc2liaWxpdHkgb2YNCiAgIHNlZ21lbnQgcm91dGluZyBpbnRvIG5v
bi1wYWNrZXQgZG9tYWlucy4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCg0KDQpQ
bGVhc2Ugbm90ZSB0aGF0IGl0IG1heSB0YWtlIGEgY291cGxlIG9mIG1pbnV0ZXMgZnJvbSB0aGUg
dGltZSBvZiBzdWJtaXNzaW9uIHVudGlsIHRoZSBodG1saXplZCB2ZXJzaW9uIGFuZCBkaWZmIGFy
ZSBhdmFpbGFibGUgYXQgdG9vbHMuaWV0Zi5vcmcuDQoNClRoZSBJRVRGIFNlY3JldGFyaWF0DQoN
Cg==


From nobody Thu Dec 22 11:37:07 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C11181294C0 for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 11:37:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.621
X-Spam-Level: 
X-Spam-Status: No, score=-17.621 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 86Yu-gPCIyB3 for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 11:37:04 -0800 (PST)
Received: from rcdn-iport-9.cisco.com (rcdn-iport-9.cisco.com [173.37.86.80]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1C13C128874 for <spring@ietf.org>; Thu, 22 Dec 2016 11:37:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=42227; q=dns/txt; s=iport; t=1482435423; x=1483645023; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=qGGWdHmUSyH7PTrOkWkMV6RJ0XGBQ7tiV85j1uUFzbs=; b=bF9LdbQPKwp6NEQFPn+LYcWKx6OfpNWKMzl789oSEpEJMyqoZd+c083T PLolWtGyW5LZ/xGPoS92MCW/a3CaZ/BxIumjX+ht5lJDzrLiXV1iT8eh6 jgfzrPg+IBVFqeR8buEMcU84tIpHdpUa6eVQ2JWfH/wKpZyl4qhOY+ZyC 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AIBQD9KVxY/4QNJK1eGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnE5CwEBAQEBH11POgeNSpZRlRWCCS6FdAKBbD8UAQIBAQEBAQE?= =?us-ascii?q?BYiiEaAEBAQQaE1wCAQgRBAEBIQEGBzIUCQgBAQQBEggTiFIOrQSKfQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBARgFhkiEY4UBhSsFlQaFcwGJY4dNgX6FB4NKhgyHeoY?= =?us-ascii?q?shA4BHzcBSmCEFhyBXXIBh1sBgQwBAQE?=
X-IronPort-AV: E=Sophos;i="5.33,390,1477958400";  d="scan'208,217";a="184277033"
Received: from alln-core-10.cisco.com ([173.36.13.132]) by rcdn-iport-9.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 22 Dec 2016 19:37:01 +0000
Received: from XCH-ALN-005.cisco.com (xch-aln-005.cisco.com [173.36.7.15]) by alln-core-10.cisco.com (8.14.5/8.14.5) with ESMTP id uBMJb1av026642 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 22 Dec 2016 19:37:01 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-ALN-005.cisco.com (173.36.7.15) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 22 Dec 2016 13:37:00 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Thu, 22 Dec 2016 13:37:00 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: "Aissaoui, Mustapha (Nokia - CA)" <mustapha.aissaoui@nokia.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAodWgAC/MMoAChMj6cAAKwMEw
Date: Thu, 22 Dec 2016 19:37:00 +0000
Message-ID: <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com>
In-Reply-To: <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [128.107.151.19]
Content-Type: multipart/alternative; boundary="_000_63a79609cc964132a1f67cb75da98cf7XCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/JoH0ZaL1kGgEa4QnPe9-ckrKCqU>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 19:37:07 -0000

--_000_63a79609cc964132a1f67cb75da98cf7XCHALN001ciscocom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Mustapha -

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Aissaoui, Mustap=
ha (Nokia - CA)
Sent: Thursday, December 22, 2016 8:10 AM
To: Les Ginsberg (ginsberg); spring@ietf.org
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal

Hi Les,
I read slides 17-21 of the document you referenced below and I have the fol=
lowing comments:


1.     Page 17, "Order Matters - Prefix vs SID Conflict".

When you perform resolution on  a per prefix basis, prefix conflicts are na=
turally processed first followed by SID conflicts across different prefixes=
. So the ordering issue described is only specific if you decided to resolv=
e conflicting SID entries outside of the natural prefix resolution by a rou=
ter.



[Les:] What may seem "natural" to you might not to someone else. I don't ca=
re to debate that point. What is being illustrated here is that in order to=
 provide a normative specification that - if followed - guarantees interope=
rability we have to specify the order in which conflicts are processed othe=
rwise different results may be obtained.



2.     Page 18, "Order Matters: Derived vs non-derived- prefix conflict".

It seems to me this issue is an artifact of the specific algorithm used to =
resolve conflicts. Because the algorithm uses parameters such as "Range (st=
art w smallest)" then obviously derived SRMS entries will lend a different =
result than original SRMS entries.

With the pre-prefix resolution, the only information kept from the original=
 SRMS entry is the preference and the advertising or owner router. Anything=
 else is not used. It seems to me a simple algorithm based on preference fi=
rst then followed by some rule on selecting the advertising router if confl=
icts exist within the same preference would work.



[Les:] You have implemented things in a certain way. Someone else might cho=
ose to implement in a different way. A normative specification does not (an=
d should not) constrain an implementation. What is being illustrated here i=
s that if the implementation does not retain the underived entry (in whatev=
er internal form it chooses) different results will be obtained because the=
 preference algorithm depends on comparing the underived ranges.



3.     Finally, there is something which has not been addressed in the slid=
es. There is still a possibility of conflicting entries among SIDs advertis=
ed using the prefix SID sub-TLV within a Prefix TLV (IS-IS IP Reach TLV or =
OSPF Extended Prefix TLV). A simple rule selecting the advertising router s=
hould also work fine here.

[Les:] No - source of an advertisement has been quite deliberately excluded=
 from the preference algorithm. With redistribution/route leaking the sourc=
e of an advertisement may appear to be different on different routers- this=
 would result in different results on different routers.

   Les

Regards,
Mustapha.

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Friday, December 09, 2016 1:49 PM
To: Aissaoui, Mustapha (Nokia - CA) <mustapha.aissaoui@nokia.com<mailto:mus=
tapha.aissaoui@nokia.com>>; spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Mustapha -

From: Aissaoui, Mustapha (Nokia - CA) [mailto:mustapha.aissaoui@nokia.com]
Sent: Friday, December 09, 2016 7:44 AM
To: Les Ginsberg (ginsberg); spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

I have a couple of comments on the below proposal.


1.     Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft. I=
n many cases, a configuration on the resolving router can assign a preferen=
ce to each SRMS in case there is no advertisement of this sub-TLV or to ove=
rride an advertised value. I propose that this option be allowed. Here is a=
 proposed update to the relevant paragraph:

"
           Advertisement of a preference value is optional.  Nodes which do=
 not
          advertise a preference value are assigned a preference value of 1=
28.
           A resolving router can override the default or the advertised va=
lue by local policy.

"

[Les:] In order to get consistent conflict resolution on all nodes in the n=
etwork, it is necessary that they all have the same database - which includ=
es the preference value. If you allow local policy to modify the preference=
 you no longer have consistent databases on all nodes and we can no longer =
guarantee consistent conflict resolution. So your proposal is not viable IM=
O.



2.     I am trying to understand the concept of sorting SRMS entries which =
have different prefixes and different range sizes.

Since a SID advertised in a prefix SID sub-TLV within a Prefix TLV (IS-IS I=
P Reach TLV or OSPF Extended Prefix TLV) has higher priority over a SID for=
 the same prefix advertised from a SRMS, then you have to add to the below =
sorting an entry for each individual prefix which advertised a prefix SID s=
ub-TLV within a prefix TLV.

At this point, the concept of an entry with multiple prefixes is moot and y=
ou may as well just sort on a per prefix basis which is the most natural th=
ing to do given that the prefix resolution and then the SID resolution are =
performed on a per prefix basis. SID conflicts can be resolved on a per pre=
fix basis using the below proposed preference algorithm without having to i=
gnore SID values for unrelated prefixes just because it happens that they w=
ere advertised in the same SRMS entry.



[Les:] The simpler proposal does not require sorting on anything other than=
 preference. After that, you can process entries in any order you want and =
you will get the same answer.

With "Ignore Overlap Only" one of the issues with trying to use the non-con=
flicting portions of a mapping entry which has a range > 1 is that the orde=
r in which you process entries influences the result. Please see slides 17 =
- 20 from the IETF97 presentation: https://www.ietf.org/proceedings/97/slid=
es/slides-97-spring-1_ietf97_draft-ietf-spring-conflict-resolution-02-00.pp=
tx for some simple examples of this.



   Les



Regards,
Mustapha.

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Sunday, December 04, 2016 7:04 PM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









--_000_63a79609cc964132a1f67cb75da98cf7XCHALN001ciscocom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
span.EmailStyle25
	{mso-style-type:personal;
	font-family:"Arial","sans-serif";
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
span.EmailStyle26
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle27
	{mso-style-type:personal;
	font-family:"Arial","sans-serif";
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
span.EmailStyle28
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Mustapha -<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> spring [=
mailto:spring-bounces@ietf.org]
<b>On Behalf Of </b>Aissaoui, Mustapha (Nokia - CA)<br>
<b>Sent:</b> Thursday, December 22, 2016 8:10 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); spring@ietf.org<br>
<b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Proposal<o:=
p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Hi Les,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">I read slides 17-21 of the document you r=
eferenced below and I have the following comments:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">1.</s=
pan><span style=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,=
&quot;serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">Page 17, &#8220;Order Matters - Prefix vs SID Conflict&#8=
221;.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">When you perform resolution on&nbs=
p; a per prefix basis, prefix conflicts are naturally processed first follo=
wed by SID conflicts across different prefixes. So the ordering
 issue described is only specific if you decided to resolve conflicting SID=
 entries outside of the natural prefix resolution by a router.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></s=
pan></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] What may seem &#8220;natural&#8221; to you might =
not to someone else. I don&#8217;t care to debate that point. What is being=
 illustrated here is that in order to provide a normative
 specification that &#8211; if followed &#8211; guarantees interoperability=
 we have to specify the order in which conflicts are processed otherwise di=
fferent results may be obtained.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">&nbsp;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">2.</s=
pan><span style=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,=
&quot;serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">Page 18, &#8220;Order Matters: Derived vs non-derived&#82=
11; prefix conflict&#8221;.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">It seems to me this issue is an ar=
tifact of the specific algorithm used to resolve conflicts. Because the alg=
orithm uses parameters such as &#8220;Range (start w smallest)&#8221;
 then obviously derived SRMS entries will lend a different result than orig=
inal SRMS entries.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">With the pre-prefix resolution, th=
e only information kept from the original SRMS entry is the preference and =
the advertising or owner router. Anything else is not used.
 It seems to me a simple algorithm based on preference first then followed =
by some rule on selecting the advertising router if conflicts exist within =
the same preference would work.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></s=
pan></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] You have implemented things in a certain way. Som=
eone else might choose to implement in a different way. A normative specifi=
cation does not (and should not) constrain
 an implementation. What is being illustrated here is that if the implement=
ation does not retain the underived entry (in whatever internal form it cho=
oses) different results will be obtained because the preference algorithm d=
epends on comparing the underived
 ranges.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><span style=3D"colo=
r:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">3.</s=
pan><span style=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,=
&quot;serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">Finally, there is something which has not been addressed =
in the slides. There is still a possibility of conflicting entries among SI=
Ds advertised using the prefix SID sub-TLV within a Prefix
 TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV). A simple rule select=
ing the advertising router should also work fine here.<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p=
>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">[Les:] No &#8211=
; source of an advertisement has been quite deliberately excluded from the =
preference algorithm. With redistribution/route leaking the source of an ad=
vertisement may appear to be different on
 different routers- this would result in different results on different rou=
ters.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p=
></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">&nbsp;&nbsp; Les=
<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Mustapha.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Les Ginsberg (ginsberg) [<a href=3D"mai=
lto:ginsberg@cisco.com">mailto:ginsberg@cisco.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 1:49 PM<br>
<b>To:</b> Aissaoui, Mustapha (Nokia - CA) &lt;<a href=3D"mailto:mustapha.a=
issaoui@nokia.com">mustapha.aissaoui@nokia.com</a>&gt;;
<a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Mustapha -<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Aissaoui=
, Mustapha (Nokia - CA) [<a href=3D"mailto:mustapha.aissaoui@nokia.com">mai=
lto:mustapha.aissaoui@nokia.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:44 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org">spri=
ng@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">I have a couple of comments on the below =
proposal.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">1.</s=
pan><span style=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,=
&quot;serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">Regarding the SRMS Preference Sub-TLV in section 3.1 of t=
he draft. In many cases, a configuration on the resolving router can assign=
 a preference to each SRMS in case there is no advertisement
 of this sub-TLV or to override an advertised value. I propose that this op=
tion be allowed. Here is a proposed update to the relevant paragraph:<o:p><=
/o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; Ad=
vertisement of a preference value is optional.&nbsp; Nodes which do not<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;adv=
ertise a preference value are assigned a preference value of 128. &nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nb=
sp;<span style=3D"color:red">A resolving router can override the default or=
 the advertised value by local policy.</span><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] In order to get consistent conflict resolution on=
 all nodes in the network, it is necessary that they all have the same data=
base &#8211; which includes the preference value.
 If you allow local policy to modify the preference you no longer have cons=
istent databases on all nodes and we can no longer guarantee consistent con=
flict resolution. So your proposal is not viable IMO.</span></i></b><span s=
tyle=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;">2.</s=
pan><span style=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,=
&quot;serif&quot;">&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">I am trying to understand the concept of sorting SRMS ent=
ries which have different prefixes and different range sizes. &nbsp;<o:p></=
o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">Since a SID advertised in a prefix=
 SID sub-TLV within a Prefix TLV (IS-IS IP Reach TLV or OSPF Extended Prefi=
x TLV) has higher priority over a SID for the same prefix
 advertised from a SRMS, then you have to add to the below sorting an entry=
 for each individual prefix which advertised a prefix SID sub-TLV within a =
prefix TLV.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,&quot;sans-serif&quot;">At this point, the concept of an e=
ntry with multiple prefixes is moot and you may as well just sort on a per =
prefix basis which is the most natural thing to do given
 that the prefix resolution and then the SID resolution are performed on a =
per prefix basis. SID conflicts can be resolved on a per prefix basis using=
 the below proposed preference algorithm without having to ignore SID value=
s for unrelated prefixes just because
 it happens that they were advertised in the same SRMS entry.<o:p></o:p></s=
pan></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] The simpler proposal does not require sorting on =
anything other than preference. After that, you can process entries in any =
order you want and you will get the same
 answer.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">With &#8220;Ignore Overlap Only&#8221; one of the issues=
 with trying to use the non-conflicting portions of a mapping entry which h=
as a range &gt; 1 is that the order in which you process
 entries influences the result. Please see slides 17 &#8211; 20 from the IE=
TF97 presentation:
<a href=3D"https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ie=
tf97_draft-ietf-spring-conflict-resolution-02-00.pptx">
https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_draft-=
ietf-spring-conflict-resolution-02-00.pptx</a> for some simple examples of =
this.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">&nbsp;&nbsp; Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><span style=3D"colo=
r:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Mustapha.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;"><o:p>&nbsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> spring [<a href=3D"mailto:spring-bounce=
s@ietf.org">mailto:spring-bounces@ietf.org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Sunday, December 04, 2016 7:04 PM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_63a79609cc964132a1f67cb75da98cf7XCHALN001ciscocom_--


From nobody Thu Dec 22 11:52:00 2016
Return-Path: <rraszuk@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BB318127077 for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 11:51:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.596
X-Spam-Level: 
X-Spam-Status: No, score=-2.596 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KXKzUDaMlzqR for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 11:51:57 -0800 (PST)
Received: from mail-qt0-x244.google.com (mail-qt0-x244.google.com [IPv6:2607:f8b0:400d:c0d::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D2155129531 for <spring@ietf.org>; Thu, 22 Dec 2016 11:51:56 -0800 (PST)
Received: by mail-qt0-x244.google.com with SMTP id p16so8619271qta.1 for <spring@ietf.org>; Thu, 22 Dec 2016 11:51:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=+DP4MABjPjMzyXMJ/CEf6jrfmbP+G3iFT4VvlcrV4Zo=; b=gWVCqsFHZIrPljWVIp7hR53CtXiG/Vmaq/7Z/tU4/azZN+iMVEo1A3WB94jJcFbpqg IkxtaD/dUNSX+RvUcN0AUpatnQt63uvz1keu4pVJCcIMpm/5EiCDqDl9og7p2DdvBruL R4XaPS7OF5McUu+kq0T2TUtmO6bh4JSpHzPADx/iSt1SxL60VLYMkHIwT0NLKJPqiYSm AZFm4G5ixvE4Nlu82TKcm76IMVc/SwjkOhbzGvC6B68TpzjyJKhpr9zguNakKeUjOSmO ft2bV9usiSdYo4PfJWnkZ4fM68bgbUp2VJvBWwkf0TP4kd/jI+vYDEYY7TIc75tYSxi4 gZug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=+DP4MABjPjMzyXMJ/CEf6jrfmbP+G3iFT4VvlcrV4Zo=; b=VLRx8Lwe7s5fUS6JdcrV9cJP+5c2tN86kQySq4SMfyDnwBnc0HM2Fe8AjJKM60aH2k NtD/UyHUvJTZ2ELA8Zn3plmEIrPvF236OFGoCouWG8z2W/eSEwCL3AqFCrsl8mCP6GJM mZTSOI9WBFjmCZaUEMRnS7+AMn1NKsCaQrKgVyrpuiRK8DGJwWx7hTWomgmW5BiKu2iG rnIQLeQCt681d6TFwHwaZhhIz05tJfyHzYhJ0DTPnsLXJCqlYIIJNhIGv5NRYkWAZQsQ IDdPyc4wwJVlNCOlsOKA3tIhUBm3n5ChA6yioqkC7ZBtHg5YVaSRJhcnYWEwQyWgzXDb B/gw==
X-Gm-Message-State: AIkVDXIQVYKqjgpZjAhH3Hu++C/yDSGyiZ+qgJHlhcXiuayNwqsn94Y7bHGozMU3rdnOkQ07Baq00xUWkIUc9w==
X-Received: by 10.237.60.101 with SMTP id u34mr12703026qte.53.1482436315856; Thu, 22 Dec 2016 11:51:55 -0800 (PST)
MIME-Version: 1.0
Sender: rraszuk@gmail.com
Received: by 10.140.16.50 with HTTP; Thu, 22 Dec 2016 11:51:54 -0800 (PST)
In-Reply-To: <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com> <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com>
From: Robert Raszuk <robert@raszuk.net>
Date: Thu, 22 Dec 2016 20:51:54 +0100
X-Google-Sender-Auth: 94agwdsqF3pWKXBMF0opz-s89oA
Message-ID: <CA+b+ERnhaUTJ45FwMvMf3V8xhqRKfpGE_9h8MgmOqBejvscAaA@mail.gmail.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Content-Type: multipart/alternative; boundary=94eb2c1914ce0246510544449af5
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/NMQTc8tXV8-5ynYWUcXR7F0h1pM>
Cc: "spring@ietf.org" <spring@ietf.org>, "Aissaoui, Mustapha \(Nokia - CA\)" <mustapha.aissaoui@nokia.com>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 19:51:59 -0000

--94eb2c1914ce0246510544449af5
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi Les,

On #1 I am also with Mustapha here. For clarity of this discussion can you
enumerate when from RIB to FIB/LFIB you are installing the exact same
active prefix from more then one producer ? Is SRMS sort of zombie here and
not treated as real route producer hence we have an issue ? And the issue
is only with conflicts of SRMS + real route producer ?

On #3 you said that *"with redistribution/route leaking the source of an
advertisement may appear to be different on different routers"* that is
very true. In fact with simple static route or static label configured on a
router the RIB and FIB on that router will be different then RIB and FIB on
the other routers without such static route. And the point is that such
static route or label is there for a reason you may not know about. So
struggling for data plane consistency =E2=80=8Bdeliberately excluding sourc=
e when
operational needs require otherwise is not really that much helpful I am
afraid.

Greetings,
Robert.


On Thu, Dec 22, 2016 at 8:37 PM, Les Ginsberg (ginsberg) <ginsberg@cisco.co=
m
> wrote:

> Mustapha -
>
>
>
> *From:* spring [mailto:spring-bounces@ietf.org] *On Behalf Of *Aissaoui,
> Mustapha (Nokia - CA)
> *Sent:* Thursday, December 22, 2016 8:10 AM
> *To:* Les Ginsberg (ginsberg); spring@ietf.org
> *Subject:* Re: [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> Hi Les,
>
> I read slides 17-21 of the document you referenced below and I have the
> following comments:
>
>
>
> 1.     Page 17, =E2=80=9COrder Matters - Prefix vs SID Conflict=E2=80=9D.
>
> When you perform resolution on  a per prefix basis, prefix conflicts are
> naturally processed first followed by SID conflicts across different
> prefixes. So the ordering issue described is only specific if you decided
> to resolve conflicting SID entries outside of the natural prefix resoluti=
on
> by a router.
>
>
>
> *[Les:] What may seem =E2=80=9Cnatural=E2=80=9D to you might not to someo=
ne else. I don=E2=80=99t
> care to debate that point. What is being illustrated here is that in orde=
r
> to provide a normative specification that =E2=80=93 if followed =E2=80=93=
 guarantees
> interoperability we have to specify the order in which conflicts are
> processed otherwise different results may be obtained.*
>
>
>
> 2.     Page 18, =E2=80=9COrder Matters: Derived vs non-derived=E2=80=93 p=
refix conflict=E2=80=9D.
>
> It seems to me this issue is an artifact of the specific algorithm used t=
o
> resolve conflicts. Because the algorithm uses parameters such as =E2=80=
=9CRange
> (start w smallest)=E2=80=9D then obviously derived SRMS entries will lend=
 a
> different result than original SRMS entries.
>
> With the pre-prefix resolution, the only information kept from the
> original SRMS entry is the preference and the advertising or owner router=
.
> Anything else is not used. It seems to me a simple algorithm based on
> preference first then followed by some rule on selecting the advertising
> router if conflicts exist within the same preference would work.
>
>
>
> *[Les:] You have implemented things in a certain way. Someone else might
> choose to implement in a different way. A normative specification does no=
t
> (and should not) constrain an implementation. What is being illustrated
> here is that if the implementation does not retain the underived entry (i=
n
> whatever internal form it chooses) different results will be obtained
> because the preference algorithm depends on comparing the underived range=
s.*
>
>
>
> 3.     Finally, there is something which has not been addressed in the
> slides. There is still a possibility of conflicting entries among SIDs
> advertised using the prefix SID sub-TLV within a Prefix TLV (IS-IS IP Rea=
ch
> TLV or OSPF Extended Prefix TLV). A simple rule selecting the advertising
> router should also work fine here.
>
>
>
> *[Les:] No =E2=80=93 source of an advertisement has been quite *
> *=E2=80=8B=E2=80=8B*
> *deliberately excluded from the preference algorithm. With
> redistribution/route leaking the source of an advertisement may appear to
> be different on different routers- this would result in different results
> on different routers.*
>
>
>
> *   Les*
>
>
>
> Regards,
>
> Mustapha.
>
>
>
> *From:* Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com
> <ginsberg@cisco.com>]
> *Sent:* Friday, December 09, 2016 1:49 PM
> *To:* Aissaoui, Mustapha (Nokia - CA) <mustapha.aissaoui@nokia.com>;
> spring@ietf.org
> *Subject:* RE: SID Conflict Resolution: A Simpler Proposal
>
>
>
> Mustapha -
>
>
>
> *From:* Aissaoui, Mustapha (Nokia - CA) [mailto:mustapha.aissaoui@
> nokia.com <mustapha.aissaoui@nokia.com>]
> *Sent:* Friday, December 09, 2016 7:44 AM
> *To:* Les Ginsberg (ginsberg); spring@ietf.org
> *Subject:* RE: SID Conflict Resolution: A Simpler Proposal
>
>
>
> I have a couple of comments on the below proposal.
>
>
>
> 1.     Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft.
> In many cases, a configuration on the resolving router can assign a
> preference to each SRMS in case there is no advertisement of this sub-TLV
> or to override an advertised value. I propose that this option be allowed=
.
> Here is a proposed update to the relevant paragraph:
>
> =E2=80=9C
>
>            Advertisement of a preference value is optional.  Nodes which
> do not
>
>           advertise a preference value are assigned a preference value of
> 128.
>
>            A resolving router can override the default or the advertised
> value by local policy.
>
> =E2=80=9C
>
> *[Les:] In order to get consistent conflict resolution on all nodes in th=
e
> network, it is necessary that they all have the same database =E2=80=93 w=
hich
> includes the preference value. If you allow local policy to modify the
> preference you no longer have consistent databases on all nodes and we ca=
n
> no longer guarantee consistent conflict resolution. So your proposal is n=
ot
> viable IMO.*
>
>
>
> 2.     I am trying to understand the concept of sorting SRMS entries
> which have different prefixes and different range sizes.
>
> Since a SID advertised in a prefix SID sub-TLV within a Prefix TLV (IS-IS
> IP Reach TLV or OSPF Extended Prefix TLV) has higher priority over a SID
> for the same prefix advertised from a SRMS, then you have to add to the
> below sorting an entry for each individual prefix which advertised a pref=
ix
> SID sub-TLV within a prefix TLV.
>
> At this point, the concept of an entry with multiple prefixes is moot and
> you may as well just sort on a per prefix basis which is the most natural
> thing to do given that the prefix resolution and then the SID resolution
> are performed on a per prefix basis. SID conflicts can be resolved on a p=
er
> prefix basis using the below proposed preference algorithm without having
> to ignore SID values for unrelated prefixes just because it happens that
> they were advertised in the same SRMS entry.
>
>
>
> *[Les:] The simpler proposal does not require sorting on anything other
> than preference. After that, you can process entries in any order you wan=
t
> and you will get the same answer.*
>
> *With =E2=80=9CIgnore Overlap Only=E2=80=9D one of the issues with trying=
 to use the
> non-conflicting portions of a mapping entry which has a range > 1 is that
> the order in which you process entries influences the result. Please see
> slides 17 =E2=80=93 20 from the IETF97 presentation:
> https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_draf=
t-ietf-spring-conflict-resolution-02-00.pptx
> <https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_dra=
ft-ietf-spring-conflict-resolution-02-00.pptx>
> for some simple examples of this.*
>
>
>
> *   Les*
>
>
>
>
>
> Regards,
>
> Mustapha.
>
>
>
> *From:* spring [mailto:spring-bounces@ietf.org <spring-bounces@ietf.org>]=
 *On
> Behalf Of *Les Ginsberg (ginsberg)
> *Sent:* Sunday, December 04, 2016 7:04 PM
> *To:* spring@ietf.org
> *Subject:* [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> When the problem addressed by draft-ietf-spring-conflict-resolution was
> first
>
> presented at IETF 94, the authors defined the following priorities:
>
>
>
> 1)Detect the problem
>
> 2)Report the problem
>
> This alerts the network operator to the existence of a conflict so that
>
> the configuration error can be corrected.
>
> 3)Define consistent behavior
>
> This avoids mis-forwarding while the conflict exists.
>
> 4)Don=E2=80=99t overengineer the solution
>
> Given that it is impossible to know which of the conflicting entries
>
> is the correct one, we should apply a simple algorithm to resolve the
> conflict.
>
> 5)Agree on the resolution behavior
>
>
>
> The resolution behavior was deliberately the last point because it was
>
> considered the least important.
>
>
>
> Input was received over the past year which emphasized the importance of
>
> trying to "maximize forwarding" in the presence of conflicts. Subsequent
>
> revisions of the draft have tried to address this concern. However the
> authors
>
> have repeatedly stressed that the solution being proposed
>
> ("ignore overlap only") was more complex than other offered alternatives
> and
>
> would be more difficult to guarantee interoperability because subtle
>
> differences in an implementation could produce different results.
>
>
>
> At IETF97 significant feedback was received preferring a simpler solution
> to
>
> the problem. The authors are very sympathetic to this feedback and
> therefore
>
> are proposing a solution based on what the draft defines as the "Ignore"
>
> policy - where all entries which are in conflict are ignored. We believe
> this
>
> is far more desirable and aligns with the priorities listed above.
>
>
>
> We outline the proposed solution below and would like to receive feedback
> from
>
> the WG before publishing the next revision of the draft.
>
>
>
>    Les (on behalf of the authors)
>
>
>
> *New Proposal*
>
>
>
> *In the latest revision of the draft "SRMS Preference" was introduced.
> This *
>
> *provides a way for a numerical preference to be explicitly associated
> with an *
>
> *SRMS advertisement. Using this an operator can indicate which
> advertisement is *
>
> *to be preferred when a conflict is present. The authors think this is a
> useful *
>
> *addition and we therefore want to include this in the new solution.*
>
>
>
> *The new preference rule used to resolve conflicts is defined as follows:=
*
>
>
>
> *A given mapping entry is compared against all mapping entries in the
> database *
>
> *with a preference greater than or equal to its own. If there is a
> conflict, *
>
> *the mapping entry with lower preference is ignored. If two mapping
> entries are*
>
> *in conflict and have equal preference then both entries are ignored.*
>
>
>
> *Implementation of this policy is defined as follows:*
>
>
>
> *Step 1: Within a single address-family/algorithm/topology sort entries *
>
> *based on preference *
>
> *Step 2: Starting with the lowest preference entries, resolve prefix
> conflicts *
>
> *using the above preference rule. The output is an active policy per
> topology.*
>
> *Step 3: Take the outputs from Step 2 and again sort them by preference *
>
> *Step 4: Starting with the lowest preference entries, resolve SID
> conflicts *
>
> *using the above preference rule*
>
>
>
> *The output from Step 4 is then the current Active Policy.*
>
>
>
> Here are a few examples. Each mapping entry is represented by the tuple:
>
> (Preference, Prefix/mask Index range <#>)
>
>
>
> Example 1:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 100)
>
> 2. (149, 1.1.1.10/32 200 range 200)
>
> 3. (148, 1.1.1.101/32 500 range 10)
>
>
>
> Entry 3 conflicts with entry 2, it is ignored.
>
> Entry 2 conflicts with entry 1, it is ignored.
>
> Active policy:
>
>
>
> (150, 1.1.1.1/32 100 range 100)
>
>
>
> Example 2:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 100)
>
> 2. (150, 1.1.1.10/32 200 range 200)
>
> 3. (150, 1.1.1.101/32 500 range 10)
>
> 4. (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 1 conflicts with entry 2, both are marked as ignore.
>
> Entry 3 conflicts with entry 2. It is marked as ignore.
>
> Entry 4 has no conflicts with any entries
>
>
>
> Active policy:
>
> (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Example 3:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 500)
>
> 2. (150, 1.1.1.10/32 200 range 200)
>
> 3. (150, 1.1.1.101/32 500 range 10)
>
> 4. (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignor=
e.
>
>
>
> Active policy:
>
> Empty
>
>
>
> Example 4:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 10)
>
> 2. (149, 1.1.1.10/32 200 range 300)
>
> 3. (149, 1.1.1.101/32 500 range 10)
>
> 4. (148, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 4 conflicts with entry 2. It is marked ignore.
>
> Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.
>
>
>
> Active policy:
>
> (150, 1.1.1.1/32 100 range 10)
>
>
>
>
>
>
>
>
>
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring
>
>

--94eb2c1914ce0246510544449af5
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small">Hi Les,</div><div class=3D"gmail_defaul=
t" style=3D"font-family:arial,helvetica,sans-serif;font-size:small"><br></d=
iv><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-s=
erif;font-size:small">On #1 I am also with Mustapha here. For clarity of th=
is discussion can you enumerate when from RIB to FIB/LFIB you are installin=
g the exact same active prefix from more then one producer ? Is SRMS sort o=
f zombie here and not treated as real route producer hence we have an issue=
 ? And the issue is only with conflicts of SRMS + real route producer ?=C2=
=A0</div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,=
sans-serif;font-size:small"><br></div><div class=3D"gmail_default" style=3D=
"font-family:arial,helvetica,sans-serif;font-size:small">On #3 you said tha=
t <i>&quot;with redistribution/route leaking the source of an advertisement=
 may appear to be different on different routers&quot;</i> that is very tru=
e. In fact with simple static route or static label configured on a router =
the RIB and FIB on that router will be different then RIB and FIB on the ot=
her routers without such static route. And the point is that such static ro=
ute or label is there for a reason you may not know about. So struggling fo=
r data plane consistency =E2=80=8Bdeliberately excluding source=C2=A0when o=
perational needs require otherwise is not really that much helpful I am afr=
aid.</div><div class=3D"gmail_default" style=3D"font-family:arial,helvetica=
,sans-serif;font-size:small"><br></div><div class=3D"gmail_default" style=
=3D"font-family:arial,helvetica,sans-serif;font-size:small">Greetings,</div=
><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-ser=
if;font-size:small">Robert.=C2=A0</div><div class=3D"gmail_default" style=
=3D"font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div =
class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Thu, Dec 22, 2016 a=
t 8:37 PM, Les Ginsberg (ginsberg) <span dir=3D"ltr">&lt;<a href=3D"mailto:=
ginsberg@cisco.com" target=3D"_blank">ginsberg@cisco.com</a>&gt;</span> wro=
te:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;=
border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang=3D"EN-US">
<div class=3D"gmail-m_-9072189130253622886WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)">Mustapha -<u></=
u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)"><u></u>=C2=A0<u=
></u></span></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10pt;font-family:tahoma,=
sans-serif">From:</span></b><span style=3D"font-size:10pt;font-family:tahom=
a,sans-serif"> spring [mailto:<a href=3D"mailto:spring-bounces@ietf.org" ta=
rget=3D"_blank">spring-bounces@ietf.<wbr>org</a>]
<b>On Behalf Of </b>Aissaoui, Mustapha (Nokia - CA)<br>
<b>Sent:</b> Thursday, December 22, 2016 8:10 AM<span class=3D"gmail-"><br>
<b>To:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org" targ=
et=3D"_blank">spring@ietf.org</a><br>
</span><b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Prop=
osal<u></u><u></u></span></p>
</div>
</div><span class=3D"gmail-">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Hi Les,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">I read slides 17-21 of the document you referenced below and I have=
 the following comments:<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">1.</span><span style=3D"font-siz=
e:7pt;font-family:&quot;times new roman&quot;,serif">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">Page 17,=
 =E2=80=9COrder Matters - Prefix vs SID Conflict=E2=80=9D.<u></u><u></u></s=
pan></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">When you perform resolution on=
=C2=A0 a per prefix basis, prefix conflicts are naturally processed first f=
ollowed by SID conflicts across different prefixes. So the ordering
 issue described is only specific if you decided to resolve conflicting SID=
 entries outside of the natural prefix resolution by a router.
<u></u><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif;color:rgb(31,73,125)"><u></u>=C2=
=A0<u></u></span></p>
</span><p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"m=
argin-left:0in"><b><i><span style=3D"color:rgb(31,73,125)">[Les:] What may =
seem =E2=80=9Cnatural=E2=80=9D to you might not to someone else. I don=E2=
=80=99t care to debate that point. What is being illustrated here is that i=
n order to provide a normative
 specification that =E2=80=93 if followed =E2=80=93 guarantees interoperabi=
lity we have to specify the order in which conflicts are processed otherwis=
e different results may be obtained.<u></u><u></u></span></i></b></p><span =
class=3D"gmail-">
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">=C2=A0<u></u><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">2.</span><span style=3D"font-siz=
e:7pt;font-family:&quot;times new roman&quot;,serif">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">Page 18,=
 =E2=80=9COrder Matters: Derived vs non-derived=E2=80=93 prefix conflict=E2=
=80=9D.<u></u><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">It seems to me this issue is an =
artifact of the specific algorithm used to resolve conflicts. Because the a=
lgorithm uses parameters such as =E2=80=9CRange (start w smallest)=E2=80=9D
 then obviously derived SRMS entries will lend a different result than orig=
inal SRMS entries.
<u></u><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">With the pre-prefix resolution, =
the only information kept from the original SRMS entry is the preference an=
d the advertising or owner router. Anything else is not used.
 It seems to me a simple algorithm based on preference first then followed =
by some rule on selecting the advertising router if conflicts exist within =
the same preference would work.<u></u><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif;color:rgb(31,73,125)"><u></u>=C2=
=A0<u></u></span></p>
</span><p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"m=
argin-left:0in"><b><i><span style=3D"color:rgb(31,73,125)">[Les:] You have =
implemented things in a certain way. Someone else might choose to implement=
 in a different way. A normative specification does not (and should not) co=
nstrain
 an implementation. What is being illustrated here is that if the implement=
ation does not retain the underived entry (in whatever internal form it cho=
oses) different results will be obtained because the preference algorithm d=
epends on comparing the underived
 ranges.<u></u><u></u></span></i></b></p><span class=3D"gmail-">
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"margin-l=
eft:0in"><span style=3D"color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></=
p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">3.</span><span style=3D"font-siz=
e:7pt;font-family:&quot;times new roman&quot;,serif">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">Finally,=
 there is something which has not been addressed in the slides. There is st=
ill a possibility of conflicting entries among SIDs advertised using the pr=
efix SID sub-TLV within a Prefix
 TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV). A simple rule select=
ing the advertising router should also work fine here.<u></u><u></u></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
</span><p class=3D"MsoNormal"><b><i><span style=3D"color:rgb(31,73,125)">[L=
es:] No =E2=80=93 source of an advertisement has been quite </span></i></b>=
</p><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-=
serif;font-size:small;display:inline"><b><i>=E2=80=8B=E2=80=8B</i></b></div=
><b><i>deliberately excluded from the preference algorithm. With redistribu=
tion/route leaking the source of an advertisement may appear to be differen=
t on
 different routers- this would result in different results on different rou=
ters.<span class=3D"gmail-HOEnZb"><font color=3D"#888888"><u></u><u></u></f=
ont></span></i></b><p></p><span class=3D"gmail-HOEnZb"><font color=3D"#8888=
88">
<p class=3D"MsoNormal"><b><i><span style=3D"color:rgb(31,73,125)"><u></u>=
=C2=A0<u></u></span></i></b></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:rgb(31,73,125)">=C2=A0=C2=
=A0 Les<u></u><u></u></span></i></b></p></font></span><div><div class=3D"gm=
ail-h5">
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)"><u></u>=C2=A0<u=
></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Regards,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Mustapha.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(225,225,225);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Les Ginsberg (ginsberg) [<a href=3D"mai=
lto:ginsberg@cisco.com" target=3D"_blank">mailto:ginsberg@cisco.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 1:49 PM<br>
<b>To:</b> Aissaoui, Mustapha (Nokia - CA) &lt;<a href=3D"mailto:mustapha.a=
issaoui@nokia.com" target=3D"_blank">mustapha.aissaoui@nokia.com</a>&gt;;
<a href=3D"mailto:spring@ietf.org" target=3D"_blank">spring@ietf.org</a><br=
>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<u></u><u></=
u></p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)">Mustapha -<u></=
u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)"><u></u>=C2=A0<u=
></u></span></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10pt;font-family:tahoma,=
sans-serif">From:</span></b><span style=3D"font-size:10pt;font-family:tahom=
a,sans-serif"> Aissaoui, Mustapha (Nokia - CA) [<a href=3D"mailto:mustapha.=
aissaoui@nokia.com" target=3D"_blank">mailto:mustapha.aissaoui@<wbr>nokia.c=
om</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:44 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org" targ=
et=3D"_blank">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<u></u><u></=
u></span></p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">I have a couple of comments on the below proposal.<u></u><u></u></s=
pan></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">1.</span><span style=3D"font-siz=
e:7pt;font-family:&quot;times new roman&quot;,serif">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">Regardin=
g the SRMS Preference Sub-TLV in section 3.1 of the draft. In many cases, a=
 configuration on the resolving router can assign a preference to each SRMS=
 in case there is no advertisement
 of this sub-TLV or to override an advertised value. I propose that this op=
tion be allowed. Here is a proposed update to the relevant paragraph:<u></u=
><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">=E2=80=9C<u></u><u></u></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:&quot;cour=
ier new&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0 Adve=
rtisement of a preference value is optional.=C2=A0 Nodes which do not<u></u=
><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:&quot;cour=
ier new&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0adver=
tise a preference value are assigned a preference value of 128. =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:&quot;cour=
ier new&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=
=A0<span style=3D"color:red">A resolving router can override the default or=
 the advertised value by local policy.</span><u></u><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">=E2=80=9C<u></u><u></u></span></=
p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"margin-l=
eft:0in"><b><i><span style=3D"color:rgb(31,73,125)">[Les:] In order to get =
consistent conflict resolution on all nodes in the network, it is necessary=
 that they all have the same database =E2=80=93 which includes the preferen=
ce value.
 If you allow local policy to modify the preference you no longer have cons=
istent databases on all nodes and we can no longer guarantee consistent con=
flict resolution. So your proposal is not viable IMO.</span></i></b><span s=
tyle=3D"color:rgb(31,73,125)"><u></u><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">2.</span><span style=3D"font-siz=
e:7pt;font-family:&quot;times new roman&quot;,serif">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">I am try=
ing to understand the concept of sorting SRMS entries which have different =
prefixes and different range sizes. =C2=A0<u></u><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">Since a SID advertised in a pref=
ix SID sub-TLV within a Prefix TLV (IS-IS IP Reach TLV or OSPF Extended Pre=
fix TLV) has higher priority over a SID for the same prefix
 advertised from a SRMS, then you have to add to the below sorting an entry=
 for each individual prefix which advertised a prefix SID sub-TLV within a =
prefix TLV.
<u></u><u></u></span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph"><span style=3D"fo=
nt-size:10pt;font-family:arial,sans-serif">At this point, the concept of an=
 entry with multiple prefixes is moot and you may as well just sort on a pe=
r prefix basis which is the most natural thing to do given
 that the prefix resolution and then the SID resolution are performed on a =
per prefix basis. SID conflicts can be resolved on a per prefix basis using=
 the below proposed preference algorithm without having to ignore SID value=
s for unrelated prefixes just because
 it happens that they were advertised in the same SRMS entry.<u></u><u></u>=
</span></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"margin-l=
eft:0in"><b><i><span style=3D"color:rgb(31,73,125)"><u></u>=C2=A0<u></u></s=
pan></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"margin-l=
eft:0in"><b><i><span style=3D"color:rgb(31,73,125)">[Les:] The simpler prop=
osal does not require sorting on anything other than preference. After that=
, you can process entries in any order you want and you will get the same
 answer.<u></u><u></u></span></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"margin-l=
eft:0in"><b><i><span style=3D"color:rgb(31,73,125)">With =E2=80=9CIgnore Ov=
erlap Only=E2=80=9D one of the issues with trying to use the non-conflictin=
g portions of a mapping entry which has a range &gt; 1 is that the order in=
 which you process
 entries influences the result. Please see slides 17 =E2=80=93 20 from the =
IETF97 presentation:
<a href=3D"https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ie=
tf97_draft-ietf-spring-conflict-resolution-02-00.pptx" target=3D"_blank">
https://www.ietf.org/<wbr>proceedings/97/slides/slides-<wbr>97-spring-1_iet=
f97_draft-ietf-<wbr>spring-conflict-resolution-02-<wbr>00.pptx</a> for some=
 simple examples of this.<u></u><u></u></span></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"margin-l=
eft:0in"><b><i><span style=3D"color:rgb(31,73,125)"><u></u>=C2=A0<u></u></s=
pan></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"margin-l=
eft:0in"><b><i><span style=3D"color:rgb(31,73,125)">=C2=A0=C2=A0 Les<u></u>=
<u></u></span></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoListParagraph" style=3D"margin-l=
eft:0in"><span style=3D"color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Regards,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Mustapha.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(225,225,225);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b>From:</b> spring [<a href=3D"mailto:spring-bounce=
s@ietf.org" target=3D"_blank">mailto:spring-bounces@ietf.<wbr>org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Sunday, December 04, 2016 7:04 PM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org" target=3D"_blank">spring@ietf=
.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<u></u>=
<u></u></p>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">When the problem addr=
essed by draft-ietf-spring-conflict-<wbr>resolution was first
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">presented at IETF 94,=
 the authors defined the following priorities:<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">1)Detect the problem<=
u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">2)Report the problem<=
u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">This alerts the netwo=
rk operator to the existence of a conflict so that<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">the configuration err=
or can be corrected.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">3)Define consistent b=
ehavior<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">This avoids mis-forwa=
rding while the conflict exists.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">4)Don=E2=80=99t overe=
ngineer the solution<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Given that it is impo=
ssible to know which of the conflicting entries<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">is the correct one, w=
e should apply a simple algorithm to resolve the conflict.<u></u><u></u></p=
>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">5)Agree on the resolu=
tion behavior<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">The resolution behavi=
or was deliberately the last point because it was
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">considered the least =
important.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Input was received ov=
er the past year which emphasized the importance of<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">trying to &quot;maxim=
ize forwarding&quot; in the presence of conflicts. Subsequent<u></u><u></u>=
</p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">revisions of the draf=
t have tried to address this concern. However the authors
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">have repeatedly stres=
sed that the solution being proposed
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">(&quot;ignore overlap=
 only&quot;) was more complex than other offered alternatives and
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">would be more difficu=
lt to guarantee interoperability because subtle
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">differences in an imp=
lementation could produce different results.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">At IETF97 significant=
 feedback was received preferring a simpler solution to
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">the problem. The auth=
ors are very sympathetic to this feedback and therefore
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">are proposing a solut=
ion based on what the draft defines as the &quot;Ignore&quot;
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">policy - where all en=
tries which are in conflict are ignored. We believe this
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">is far more desirable=
 and aligns with the priorities listed above.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">We outline the propos=
ed solution below and would like to receive feedback from
<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">the WG before publish=
ing the next revision of the draft.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">=C2=A0=C2=A0 Les (on =
behalf of the authors)<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i>New Proposal<u></u=
><u></u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i><u></u>=C2=A0<u></=
u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i>In the latest revi=
sion of the draft &quot;SRMS Preference&quot; was introduced. This
<u></u><u></u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i>provides a way for=
 a numerical preference to be explicitly associated with an
<u></u><u></u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i>SRMS advertisement=
. Using this an operator can indicate which advertisement is
<u></u><u></u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i>to be preferred wh=
en a conflict is present. The authors think this is a useful
<u></u><u></u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i>addition and we th=
erefore want to include this in the new solution.<u></u><u></u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i><u></u>=C2=A0<u></=
u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i>The new preference=
 rule used to resolve conflicts is defined as follows:<u></u><u></u></i></p=
>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i><u></u>=C2=A0<u></=
u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>A given mapping=
 entry is compared against all mapping entries in the database
<u></u><u></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>with a preferen=
ce greater than or equal to its own. If there is a conflict,
<u></u><u></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>the mapping ent=
ry with lower preference is ignored. If two mapping entries are<u></u><u></=
u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>in conflict and=
 have equal preference then both entries are ignored.<u></u><u></u></i></b>=
</p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i><u></u>=C2=A0<u></=
u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i>Implementation of =
this policy is defined as follows:<u></u><u></u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><i><u></u>=C2=A0<u></=
u></i></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>Step 1: Within =
a single address-family/algorithm/<wbr>topology sort entries
<u></u><u></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>based on prefer=
ence <u></u><u></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>Step 2: Startin=
g with the lowest preference entries, resolve prefix conflicts
<u></u><u></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>using the above=
 preference rule. The output is an active policy per topology.<u></u><u></u=
></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>Step 3: Take th=
e outputs from Step 2 and again sort them by preference
<u></u><u></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>Step 4: Startin=
g with the lowest preference entries, resolve SID conflicts
<u></u><u></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>using the above=
 preference rule<u></u><u></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i><u></u>=C2=A0<u=
></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><b><i>The output from=
 Step 4 is then the current Active Policy.<u></u><u></u></i></b></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Here are a few exampl=
es. Each mapping entry is represented by the tuple:<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">(Preference, Prefix/m=
ask Index range &lt;#&gt;)<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Example 1:<u></u><u><=
/u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">1. (150, <a href=3D"h=
ttp://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range 100)<u></u><u>=
</u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">2. (149, <a href=3D"h=
ttp://1.1.1.10/32" target=3D"_blank">1.1.1.10/32</a> 200 range 200)<u></u><=
u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">3. (148, <a href=3D"h=
ttp://1.1.1.101/32" target=3D"_blank">1.1.1.101/32</a> 500 range 10)<u></u>=
<u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Entry 3 conflicts wit=
h entry 2, it is ignored.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Entry 2 conflicts wit=
h entry 1, it is ignored.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Active policy:<u></u>=
<u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">(150, <a href=3D"http=
://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range 100)<u></u><u></u=
></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Example 2:<u></u><u><=
/u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">1. (150, <a href=3D"h=
ttp://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range 100)<u></u><u>=
</u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">2. (150, <a href=3D"h=
ttp://1.1.1.10/32" target=3D"_blank">1.1.1.10/32</a> 200 range 200)<u></u><=
u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">3. (150, <a href=3D"h=
ttp://1.1.1.101/32" target=3D"_blank">1.1.1.101/32</a> 500 range 10)<u></u>=
<u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">4. (150, <a href=3D"h=
ttp://2.2.2.1/32" target=3D"_blank">2.2.2.1/32</a> 1000 range 1)<u></u><u><=
/u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Entry 1 conflicts wit=
h entry 2, both are marked as ignore.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Entry 3 conflicts wit=
h entry 2. It is marked as ignore.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Entry 4 has no confli=
cts with any entries<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Active policy:<u></u>=
<u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">(150, <a href=3D"http=
://2.2.2.1/32" target=3D"_blank">2.2.2.1/32</a> 1000 range 1)<u></u><u></u>=
</p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Example 3:<u></u><u><=
/u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">1. (150, <a href=3D"h=
ttp://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range 500)<u></u><u>=
</u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">2. (150, <a href=3D"h=
ttp://1.1.1.10/32" target=3D"_blank">1.1.1.10/32</a> 200 range 200)<u></u><=
u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">3. (150, <a href=3D"h=
ttp://1.1.1.101/32" target=3D"_blank">1.1.1.101/32</a> 500 range 10)<u></u>=
<u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">4. (150, <a href=3D"h=
ttp://2.2.2.1/32" target=3D"_blank">2.2.2.1/32</a> 1000 range 1)<u></u><u><=
/u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Entry 1 conflicts wit=
h entries 2, 3, and=C2=A0 4. All entries are marked ignore.<u></u><u></u></=
p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Active policy:<u></u>=
<u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Empty<u></u><u></u></=
p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Example 4:<u></u><u><=
/u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">1. (150, <a href=3D"h=
ttp://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range 10)<u></u><u><=
/u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">2. (149, <a href=3D"h=
ttp://1.1.1.10/32" target=3D"_blank">1.1.1.10/32</a> 200 range 300)<u></u><=
u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">3. (149, <a href=3D"h=
ttp://1.1.1.101/32" target=3D"_blank">1.1.1.101/32</a> 500 range 10)<u></u>=
<u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">4. (148, <a href=3D"h=
ttp://2.2.2.1/32" target=3D"_blank">2.2.2.1/32</a> 1000 range 1)<u></u><u><=
/u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Entry 4 conflicts wit=
h entry 2. It is marked ignore.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Entry 2 conflicts wit=
h entry 3. Entries 2 and 3 are marked ignore.<u></u><u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">Active policy:<u></u>=
<u></u></p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText">(150, <a href=3D"http=
://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a> 100 range 10)<u></u><u></u>=
</p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
<p class=3D"gmail-m_-9072189130253622886MsoPlainText"><u></u>=C2=A0<u></u><=
/p>
</div>
</div>
</div>
</div></div></div>
</div>
</div>

<br>______________________________<wbr>_________________<br>
spring mailing list<br>
<a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/spring" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/<wbr>listinfo/spring</a><br=
>
<br></blockquote></div><br></div></div>

--94eb2c1914ce0246510544449af5--


From nobody Thu Dec 22 13:33:07 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CCCB51295E0 for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 13:33:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.62
X-Spam-Level: 
X-Spam-Status: No, score=-17.62 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W9GwOfixtbbR for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 13:33:03 -0800 (PST)
Received: from alln-iport-6.cisco.com (alln-iport-6.cisco.com [173.37.142.93]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2AEAC1295DF for <spring@ietf.org>; Thu, 22 Dec 2016 13:33:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=77852; q=dns/txt; s=iport; t=1482442383; x=1483651983; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=sTCR7nBceb3vyd7zhuNjr2vFYIHdULUPKU2hsYiFWvw=; b=imBNpSL+qG7M4tM4dDloKNPQSVnzycCswTLzPjXaX76muyUFqrB+MGYv +ApB13XqTZv7BeNv555FWUdL6SvDoZuJwGYKndZSBJQvacicV5tRiEqgB NIkePeR5yiVuzSHadSof6Smw5NqcLMh1liR2ZGwSVil42TB588B0yvJUu c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AyBABpRlxY/5RdJa1eGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnE5CwEBAQEBH11POAIHjUqWUoJUhSSFNIUCgmeCBgMfAQ6FKko?= =?us-ascii?q?CGimBKT8UAQIBAQEBAQEBYiiEaAEBAQQBARgJCh4BIgsQAgEGAhECAgEBIQEGA?= =?us-ascii?q?wICAh8EAgsUCQgCBA4FCBOINwMYDo02nUyCJ4QRAYMmDYM5AQEBAQEBAQEBAQE?= =?us-ascii?q?BAQEBAQEBAQEBHYZIhGKCUoF0Gx+CToJdBZUFhT41AYljgiCBPoNvgX6FB4NKh?= =?us-ascii?q?gyHeoFzIIQZhA4BDxA3AUpgLoNoHIFdcgGHWwGBDAEBAQ?=
X-IronPort-AV: E=Sophos;i="5.33,390,1477958400";  d="scan'208,217";a="364480050"
Received: from rcdn-core-12.cisco.com ([173.37.93.148]) by alln-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Dec 2016 21:32:42 +0000
Received: from XCH-ALN-002.cisco.com (xch-aln-002.cisco.com [173.36.7.12]) by rcdn-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id uBMLWgf3000904 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 22 Dec 2016 21:32:42 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-ALN-002.cisco.com (173.36.7.12) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 22 Dec 2016 15:32:41 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Thu, 22 Dec 2016 15:32:41 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: Robert Raszuk <robert@raszuk.net>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAodWgAC/MMoAChMj6cAAKwMEwAA1jLAAACT8g0A==
Date: Thu, 22 Dec 2016 21:32:41 +0000
Message-ID: <ae35b4f22e7744f9a424a8ad02c12a2b@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com> <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com> <CA+b+ERnhaUTJ45FwMvMf3V8xhqRKfpGE_9h8MgmOqBejvscAaA@mail.gmail.com>
In-Reply-To: <CA+b+ERnhaUTJ45FwMvMf3V8xhqRKfpGE_9h8MgmOqBejvscAaA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [128.107.151.19]
Content-Type: multipart/alternative; boundary="_000_ae35b4f22e7744f9a424a8ad02c12a2bXCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/A9nzPY0INzAJQkTTq7LSpNc7xtA>
Cc: "spring@ietf.org" <spring@ietf.org>, "Aissaoui, Mustapha \(Nokia - CA\)" <mustapha.aissaoui@nokia.com>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 21:33:06 -0000

--_000_ae35b4f22e7744f9a424a8ad02c12a2bXCHALN001ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

Um9iZXJ0IOKAkw0KDQpZb3UgaGF2ZSBhIGNvbXBsZXRlIG1pc3VuZGVyc3RhbmRpbmcgb2Ygcm9s
ZXMgaGVyZS4NCg0KSG93IHRoZSBvd25lciBvZiBhIHJvdXRlIG1heSBiZSByZXByZXNlbnRlZCBp
biB0aGUgUklCIGlzbuKAmXQgaW1wYWN0ZWQgYnkgU1JNUyBvciBjb25mbGljdCByZXNvbHV0aW9u
LiBOb3IgaXMgdGhlIGRldGVybWluYXRpb24gb2Ygd2hpY2ggcm91dGUgaXMgdGhlIGJlc3Qgcm91
dGUuIFdlIGFyZSBvbmx5IGRldGVybWluaW5nIHdoZXRoZXIgdG8gdXNlIG9yIG5vdCB1c2UgYSBT
SUQgd2hpY2ggd2FzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJlZml4IGJ5IHNvbWUgYWR2ZXJ0aXNl
bWVudC4NCg0KVGhlIEludHJvZHVjdGlvbiB0byB0aGUgZHJhZnQgc3RhdGVzOg0KDQrigJxUaGUg
cHJvYmxlbSB0byBiZSBhZGRyZXNzZWQgaXMgcHJvdG9jb2wgaW5kZXBlbmRlbnQgaS5lLiwgc2Vn
bWVudA0KICAgcmVsYXRlZCBhZHZlcnRpc2VtZW50cyBtYXkgYmUgb3JpZ2luYXRlZCBieSBtdWx0
aXBsZSBub2RlcyB1c2luZw0KICAgZGlmZmVyZW50IHByb3RvY29scyBhbmQgeWV0IHRoZSBjb25m
bGljdCByZXNvbHV0aW9uIE1VU1QgYmUgdGhlIHNhbWUNCiAgIG9uIGFsbCBub2RlcyByZWdhcmRs
ZXNzIG9mIHRoZSBwcm90b2NvbCB1c2VkIHRvIHRyYW5zcG9ydCB0aGUNCiAgIGFkdmVydGlzZW1l
bnRzLuKAnQ0KDQpQbGVhc2UgZG8gYSBtZW50YWwgcmVzZXQuIOKYug0KDQogICBMZXMNCg0KDQpG
cm9tOiBycmFzenVrQGdtYWlsLmNvbSBbbWFpbHRvOnJyYXN6dWtAZ21haWwuY29tXSBPbiBCZWhh
bGYgT2YgUm9iZXJ0IFJhc3p1aw0KU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDIyLCAyMDE2IDEx
OjUyIEFNDQpUbzogTGVzIEdpbnNiZXJnIChnaW5zYmVyZykNCkNjOiBBaXNzYW91aSwgTXVzdGFw
aGEgKE5va2lhIC0gQ0EpOyBzcHJpbmdAaWV0Zi5vcmcNClN1YmplY3Q6IFJlOiBbc3ByaW5nXSBT
SUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQoNCkhpIExlcywNCg0K
T24gIzEgSSBhbSBhbHNvIHdpdGggTXVzdGFwaGEgaGVyZS4gRm9yIGNsYXJpdHkgb2YgdGhpcyBk
aXNjdXNzaW9uIGNhbiB5b3UgZW51bWVyYXRlIHdoZW4gZnJvbSBSSUIgdG8gRklCL0xGSUIgeW91
IGFyZSBpbnN0YWxsaW5nIHRoZSBleGFjdCBzYW1lIGFjdGl2ZSBwcmVmaXggZnJvbSBtb3JlIHRo
ZW4gb25lIHByb2R1Y2VyID8gSXMgU1JNUyBzb3J0IG9mIHpvbWJpZSBoZXJlIGFuZCBub3QgdHJl
YXRlZCBhcyByZWFsIHJvdXRlIHByb2R1Y2VyIGhlbmNlIHdlIGhhdmUgYW4gaXNzdWUgPyBBbmQg
dGhlIGlzc3VlIGlzIG9ubHkgd2l0aCBjb25mbGljdHMgb2YgU1JNUyArIHJlYWwgcm91dGUgcHJv
ZHVjZXIgPw0KDQpPbiAjMyB5b3Ugc2FpZCB0aGF0ICJ3aXRoIHJlZGlzdHJpYnV0aW9uL3JvdXRl
IGxlYWtpbmcgdGhlIHNvdXJjZSBvZiBhbiBhZHZlcnRpc2VtZW50IG1heSBhcHBlYXIgdG8gYmUg
ZGlmZmVyZW50IG9uIGRpZmZlcmVudCByb3V0ZXJzIiB0aGF0IGlzIHZlcnkgdHJ1ZS4gSW4gZmFj
dCB3aXRoIHNpbXBsZSBzdGF0aWMgcm91dGUgb3Igc3RhdGljIGxhYmVsIGNvbmZpZ3VyZWQgb24g
YSByb3V0ZXIgdGhlIFJJQiBhbmQgRklCIG9uIHRoYXQgcm91dGVyIHdpbGwgYmUgZGlmZmVyZW50
IHRoZW4gUklCIGFuZCBGSUIgb24gdGhlIG90aGVyIHJvdXRlcnMgd2l0aG91dCBzdWNoIHN0YXRp
YyByb3V0ZS4gQW5kIHRoZSBwb2ludCBpcyB0aGF0IHN1Y2ggc3RhdGljIHJvdXRlIG9yIGxhYmVs
IGlzIHRoZXJlIGZvciBhIHJlYXNvbiB5b3UgbWF5IG5vdCBrbm93IGFib3V0LiBTbyBzdHJ1Z2ds
aW5nIGZvciBkYXRhIHBsYW5lIGNvbnNpc3RlbmN5IOKAi2RlbGliZXJhdGVseSBleGNsdWRpbmcg
c291cmNlIHdoZW4gb3BlcmF0aW9uYWwgbmVlZHMgcmVxdWlyZSBvdGhlcndpc2UgaXMgbm90IHJl
YWxseSB0aGF0IG11Y2ggaGVscGZ1bCBJIGFtIGFmcmFpZC4NCg0KR3JlZXRpbmdzLA0KUm9iZXJ0
Lg0KDQoNCk9uIFRodSwgRGVjIDIyLCAyMDE2IGF0IDg6MzcgUE0sIExlcyBHaW5zYmVyZyAoZ2lu
c2JlcmcpIDxnaW5zYmVyZ0BjaXNjby5jb208bWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNvbT4+IHdy
b3RlOg0KTXVzdGFwaGEgLQ0KDQpGcm9tOiBzcHJpbmcgW21haWx0bzpzcHJpbmctYm91bmNlc0Bp
ZXRmLm9yZzxtYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmc+XSBPbiBCZWhhbGYgT2YgQWlz
c2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKQ0KU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDIy
LCAyMDE2IDg6MTAgQU0NClRvOiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKTsgc3ByaW5nQGlldGYu
b3JnPG1haWx0bzpzcHJpbmdAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSZTogW3NwcmluZ10gU0lEIENv
bmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KDQpIaSBMZXMsDQpJIHJlYWQg
c2xpZGVzIDE3LTIxIG9mIHRoZSBkb2N1bWVudCB5b3UgcmVmZXJlbmNlZCBiZWxvdyBhbmQgSSBo
YXZlIHRoZSBmb2xsb3dpbmcgY29tbWVudHM6DQoNCg0KMS4gICAgIFBhZ2UgMTcsIOKAnE9yZGVy
IE1hdHRlcnMgLSBQcmVmaXggdnMgU0lEIENvbmZsaWN04oCdLg0KDQpXaGVuIHlvdSBwZXJmb3Jt
IHJlc29sdXRpb24gb24gIGEgcGVyIHByZWZpeCBiYXNpcywgcHJlZml4IGNvbmZsaWN0cyBhcmUg
bmF0dXJhbGx5IHByb2Nlc3NlZCBmaXJzdCBmb2xsb3dlZCBieSBTSUQgY29uZmxpY3RzIGFjcm9z
cyBkaWZmZXJlbnQgcHJlZml4ZXMuIFNvIHRoZSBvcmRlcmluZyBpc3N1ZSBkZXNjcmliZWQgaXMg
b25seSBzcGVjaWZpYyBpZiB5b3UgZGVjaWRlZCB0byByZXNvbHZlIGNvbmZsaWN0aW5nIFNJRCBl
bnRyaWVzIG91dHNpZGUgb2YgdGhlIG5hdHVyYWwgcHJlZml4IHJlc29sdXRpb24gYnkgYSByb3V0
ZXIuDQoNCg0KDQpbTGVzOl0gV2hhdCBtYXkgc2VlbSDigJxuYXR1cmFs4oCdIHRvIHlvdSBtaWdo
dCBub3QgdG8gc29tZW9uZSBlbHNlLiBJIGRvbuKAmXQgY2FyZSB0byBkZWJhdGUgdGhhdCBwb2lu
dC4gV2hhdCBpcyBiZWluZyBpbGx1c3RyYXRlZCBoZXJlIGlzIHRoYXQgaW4gb3JkZXIgdG8gcHJv
dmlkZSBhIG5vcm1hdGl2ZSBzcGVjaWZpY2F0aW9uIHRoYXQg4oCTIGlmIGZvbGxvd2VkIOKAkyBn
dWFyYW50ZWVzIGludGVyb3BlcmFiaWxpdHkgd2UgaGF2ZSB0byBzcGVjaWZ5IHRoZSBvcmRlciBp
biB3aGljaCBjb25mbGljdHMgYXJlIHByb2Nlc3NlZCBvdGhlcndpc2UgZGlmZmVyZW50IHJlc3Vs
dHMgbWF5IGJlIG9idGFpbmVkLg0KDQoNCg0KMi4gICAgIFBhZ2UgMTgsIOKAnE9yZGVyIE1hdHRl
cnM6IERlcml2ZWQgdnMgbm9uLWRlcml2ZWTigJMgcHJlZml4IGNvbmZsaWN04oCdLg0KDQpJdCBz
ZWVtcyB0byBtZSB0aGlzIGlzc3VlIGlzIGFuIGFydGlmYWN0IG9mIHRoZSBzcGVjaWZpYyBhbGdv
cml0aG0gdXNlZCB0byByZXNvbHZlIGNvbmZsaWN0cy4gQmVjYXVzZSB0aGUgYWxnb3JpdGhtIHVz
ZXMgcGFyYW1ldGVycyBzdWNoIGFzIOKAnFJhbmdlIChzdGFydCB3IHNtYWxsZXN0KeKAnSB0aGVu
IG9idmlvdXNseSBkZXJpdmVkIFNSTVMgZW50cmllcyB3aWxsIGxlbmQgYSBkaWZmZXJlbnQgcmVz
dWx0IHRoYW4gb3JpZ2luYWwgU1JNUyBlbnRyaWVzLg0KDQpXaXRoIHRoZSBwcmUtcHJlZml4IHJl
c29sdXRpb24sIHRoZSBvbmx5IGluZm9ybWF0aW9uIGtlcHQgZnJvbSB0aGUgb3JpZ2luYWwgU1JN
UyBlbnRyeSBpcyB0aGUgcHJlZmVyZW5jZSBhbmQgdGhlIGFkdmVydGlzaW5nIG9yIG93bmVyIHJv
dXRlci4gQW55dGhpbmcgZWxzZSBpcyBub3QgdXNlZC4gSXQgc2VlbXMgdG8gbWUgYSBzaW1wbGUg
YWxnb3JpdGhtIGJhc2VkIG9uIHByZWZlcmVuY2UgZmlyc3QgdGhlbiBmb2xsb3dlZCBieSBzb21l
IHJ1bGUgb24gc2VsZWN0aW5nIHRoZSBhZHZlcnRpc2luZyByb3V0ZXIgaWYgY29uZmxpY3RzIGV4
aXN0IHdpdGhpbiB0aGUgc2FtZSBwcmVmZXJlbmNlIHdvdWxkIHdvcmsuDQoNCg0KDQpbTGVzOl0g
WW91IGhhdmUgaW1wbGVtZW50ZWQgdGhpbmdzIGluIGEgY2VydGFpbiB3YXkuIFNvbWVvbmUgZWxz
ZSBtaWdodCBjaG9vc2UgdG8gaW1wbGVtZW50IGluIGEgZGlmZmVyZW50IHdheS4gQSBub3JtYXRp
dmUgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCAoYW5kIHNob3VsZCBub3QpIGNvbnN0cmFpbiBhbiBp
bXBsZW1lbnRhdGlvbi4gV2hhdCBpcyBiZWluZyBpbGx1c3RyYXRlZCBoZXJlIGlzIHRoYXQgaWYg
dGhlIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHJldGFpbiB0aGUgdW5kZXJpdmVkIGVudHJ5IChp
biB3aGF0ZXZlciBpbnRlcm5hbCBmb3JtIGl0IGNob29zZXMpIGRpZmZlcmVudCByZXN1bHRzIHdp
bGwgYmUgb2J0YWluZWQgYmVjYXVzZSB0aGUgcHJlZmVyZW5jZSBhbGdvcml0aG0gZGVwZW5kcyBv
biBjb21wYXJpbmcgdGhlIHVuZGVyaXZlZCByYW5nZXMuDQoNCg0KDQozLiAgICAgRmluYWxseSwg
dGhlcmUgaXMgc29tZXRoaW5nIHdoaWNoIGhhcyBub3QgYmVlbiBhZGRyZXNzZWQgaW4gdGhlIHNs
aWRlcy4gVGhlcmUgaXMgc3RpbGwgYSBwb3NzaWJpbGl0eSBvZiBjb25mbGljdGluZyBlbnRyaWVz
IGFtb25nIFNJRHMgYWR2ZXJ0aXNlZCB1c2luZyB0aGUgcHJlZml4IFNJRCBzdWItVExWIHdpdGhp
biBhIFByZWZpeCBUTFYgKElTLUlTIElQIFJlYWNoIFRMViBvciBPU1BGIEV4dGVuZGVkIFByZWZp
eCBUTFYpLiBBIHNpbXBsZSBydWxlIHNlbGVjdGluZyB0aGUgYWR2ZXJ0aXNpbmcgcm91dGVyIHNo
b3VsZCBhbHNvIHdvcmsgZmluZSBoZXJlLg0KDQpbTGVzOl0gTm8g4oCTIHNvdXJjZSBvZiBhbiBh
ZHZlcnRpc2VtZW50IGhhcyBiZWVuIHF1aXRlDQrigIvigIsNCmRlbGliZXJhdGVseSBleGNsdWRl
ZCBmcm9tIHRoZSBwcmVmZXJlbmNlIGFsZ29yaXRobS4gV2l0aCByZWRpc3RyaWJ1dGlvbi9yb3V0
ZSBsZWFraW5nIHRoZSBzb3VyY2Ugb2YgYW4gYWR2ZXJ0aXNlbWVudCBtYXkgYXBwZWFyIHRvIGJl
IGRpZmZlcmVudCBvbiBkaWZmZXJlbnQgcm91dGVycy0gdGhpcyB3b3VsZCByZXN1bHQgaW4gZGlm
ZmVyZW50IHJlc3VsdHMgb24gZGlmZmVyZW50IHJvdXRlcnMuDQoNCiAgIExlcw0KDQpSZWdhcmRz
LA0KTXVzdGFwaGEuDQoNCkZyb206IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpIFttYWlsdG86Z2lu
c2JlcmdAY2lzY28uY29tXQ0KU2VudDogRnJpZGF5LCBEZWNlbWJlciAwOSwgMjAxNiAxOjQ5IFBN
DQpUbzogQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKSA8bXVzdGFwaGEuYWlzc2FvdWlA
bm9raWEuY29tPG1haWx0bzptdXN0YXBoYS5haXNzYW91aUBub2tpYS5jb20+Pjsgc3ByaW5nQGll
dGYub3JnPG1haWx0bzpzcHJpbmdAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSRTogU0lEIENvbmZsaWN0
IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KDQpNdXN0YXBoYSAtDQoNCkZyb206IEFp
c3Nhb3VpLCBNdXN0YXBoYSAoTm9raWEgLSBDQSkgW21haWx0bzptdXN0YXBoYS5haXNzYW91aUBu
b2tpYS5jb21dDQpTZW50OiBGcmlkYXksIERlY2VtYmVyIDA5LCAyMDE2IDc6NDQgQU0NClRvOiBM
ZXMgR2luc2JlcmcgKGdpbnNiZXJnKTsgc3ByaW5nQGlldGYub3JnPG1haWx0bzpzcHJpbmdAaWV0
Zi5vcmc+DQpTdWJqZWN0OiBSRTogU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQ
cm9wb3NhbA0KDQpJIGhhdmUgYSBjb3VwbGUgb2YgY29tbWVudHMgb24gdGhlIGJlbG93IHByb3Bv
c2FsLg0KDQoNCjEuICAgICBSZWdhcmRpbmcgdGhlIFNSTVMgUHJlZmVyZW5jZSBTdWItVExWIGlu
IHNlY3Rpb24gMy4xIG9mIHRoZSBkcmFmdC4gSW4gbWFueSBjYXNlcywgYSBjb25maWd1cmF0aW9u
IG9uIHRoZSByZXNvbHZpbmcgcm91dGVyIGNhbiBhc3NpZ24gYSBwcmVmZXJlbmNlIHRvIGVhY2gg
U1JNUyBpbiBjYXNlIHRoZXJlIGlzIG5vIGFkdmVydGlzZW1lbnQgb2YgdGhpcyBzdWItVExWIG9y
IHRvIG92ZXJyaWRlIGFuIGFkdmVydGlzZWQgdmFsdWUuIEkgcHJvcG9zZSB0aGF0IHRoaXMgb3B0
aW9uIGJlIGFsbG93ZWQuIEhlcmUgaXMgYSBwcm9wb3NlZCB1cGRhdGUgdG8gdGhlIHJlbGV2YW50
IHBhcmFncmFwaDoNCg0K4oCcDQogICAgICAgICAgIEFkdmVydGlzZW1lbnQgb2YgYSBwcmVmZXJl
bmNlIHZhbHVlIGlzIG9wdGlvbmFsLiAgTm9kZXMgd2hpY2ggZG8gbm90DQogICAgICAgICAgYWR2
ZXJ0aXNlIGEgcHJlZmVyZW5jZSB2YWx1ZSBhcmUgYXNzaWduZWQgYSBwcmVmZXJlbmNlIHZhbHVl
IG9mIDEyOC4NCiAgICAgICAgICAgQSByZXNvbHZpbmcgcm91dGVyIGNhbiBvdmVycmlkZSB0aGUg
ZGVmYXVsdCBvciB0aGUgYWR2ZXJ0aXNlZCB2YWx1ZSBieSBsb2NhbCBwb2xpY3kuDQoNCuKAnA0K
DQpbTGVzOl0gSW4gb3JkZXIgdG8gZ2V0IGNvbnNpc3RlbnQgY29uZmxpY3QgcmVzb2x1dGlvbiBv
biBhbGwgbm9kZXMgaW4gdGhlIG5ldHdvcmssIGl0IGlzIG5lY2Vzc2FyeSB0aGF0IHRoZXkgYWxs
IGhhdmUgdGhlIHNhbWUgZGF0YWJhc2Ug4oCTIHdoaWNoIGluY2x1ZGVzIHRoZSBwcmVmZXJlbmNl
IHZhbHVlLiBJZiB5b3UgYWxsb3cgbG9jYWwgcG9saWN5IHRvIG1vZGlmeSB0aGUgcHJlZmVyZW5j
ZSB5b3Ugbm8gbG9uZ2VyIGhhdmUgY29uc2lzdGVudCBkYXRhYmFzZXMgb24gYWxsIG5vZGVzIGFu
ZCB3ZSBjYW4gbm8gbG9uZ2VyIGd1YXJhbnRlZSBjb25zaXN0ZW50IGNvbmZsaWN0IHJlc29sdXRp
b24uIFNvIHlvdXIgcHJvcG9zYWwgaXMgbm90IHZpYWJsZSBJTU8uDQoNCg0KDQoyLiAgICAgSSBh
bSB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgY29uY2VwdCBvZiBzb3J0aW5nIFNSTVMgZW50cmll
cyB3aGljaCBoYXZlIGRpZmZlcmVudCBwcmVmaXhlcyBhbmQgZGlmZmVyZW50IHJhbmdlIHNpemVz
Lg0KDQpTaW5jZSBhIFNJRCBhZHZlcnRpc2VkIGluIGEgcHJlZml4IFNJRCBzdWItVExWIHdpdGhp
biBhIFByZWZpeCBUTFYgKElTLUlTIElQIFJlYWNoIFRMViBvciBPU1BGIEV4dGVuZGVkIFByZWZp
eCBUTFYpIGhhcyBoaWdoZXIgcHJpb3JpdHkgb3ZlciBhIFNJRCBmb3IgdGhlIHNhbWUgcHJlZml4
IGFkdmVydGlzZWQgZnJvbSBhIFNSTVMsIHRoZW4geW91IGhhdmUgdG8gYWRkIHRvIHRoZSBiZWxv
dyBzb3J0aW5nIGFuIGVudHJ5IGZvciBlYWNoIGluZGl2aWR1YWwgcHJlZml4IHdoaWNoIGFkdmVy
dGlzZWQgYSBwcmVmaXggU0lEIHN1Yi1UTFYgd2l0aGluIGEgcHJlZml4IFRMVi4NCg0KQXQgdGhp
cyBwb2ludCwgdGhlIGNvbmNlcHQgb2YgYW4gZW50cnkgd2l0aCBtdWx0aXBsZSBwcmVmaXhlcyBp
cyBtb290IGFuZCB5b3UgbWF5IGFzIHdlbGwganVzdCBzb3J0IG9uIGEgcGVyIHByZWZpeCBiYXNp
cyB3aGljaCBpcyB0aGUgbW9zdCBuYXR1cmFsIHRoaW5nIHRvIGRvIGdpdmVuIHRoYXQgdGhlIHBy
ZWZpeCByZXNvbHV0aW9uIGFuZCB0aGVuIHRoZSBTSUQgcmVzb2x1dGlvbiBhcmUgcGVyZm9ybWVk
IG9uIGEgcGVyIHByZWZpeCBiYXNpcy4gU0lEIGNvbmZsaWN0cyBjYW4gYmUgcmVzb2x2ZWQgb24g
YSBwZXIgcHJlZml4IGJhc2lzIHVzaW5nIHRoZSBiZWxvdyBwcm9wb3NlZCBwcmVmZXJlbmNlIGFs
Z29yaXRobSB3aXRob3V0IGhhdmluZyB0byBpZ25vcmUgU0lEIHZhbHVlcyBmb3IgdW5yZWxhdGVk
IHByZWZpeGVzIGp1c3QgYmVjYXVzZSBpdCBoYXBwZW5zIHRoYXQgdGhleSB3ZXJlIGFkdmVydGlz
ZWQgaW4gdGhlIHNhbWUgU1JNUyBlbnRyeS4NCg0KDQoNCltMZXM6XSBUaGUgc2ltcGxlciBwcm9w
b3NhbCBkb2VzIG5vdCByZXF1aXJlIHNvcnRpbmcgb24gYW55dGhpbmcgb3RoZXIgdGhhbiBwcmVm
ZXJlbmNlLiBBZnRlciB0aGF0LCB5b3UgY2FuIHByb2Nlc3MgZW50cmllcyBpbiBhbnkgb3JkZXIg
eW91IHdhbnQgYW5kIHlvdSB3aWxsIGdldCB0aGUgc2FtZSBhbnN3ZXIuDQoNCldpdGgg4oCcSWdu
b3JlIE92ZXJsYXAgT25seeKAnSBvbmUgb2YgdGhlIGlzc3VlcyB3aXRoIHRyeWluZyB0byB1c2Ug
dGhlIG5vbi1jb25mbGljdGluZyBwb3J0aW9ucyBvZiBhIG1hcHBpbmcgZW50cnkgd2hpY2ggaGFz
IGEgcmFuZ2UgPiAxIGlzIHRoYXQgdGhlIG9yZGVyIGluIHdoaWNoIHlvdSBwcm9jZXNzIGVudHJp
ZXMgaW5mbHVlbmNlcyB0aGUgcmVzdWx0LiBQbGVhc2Ugc2VlIHNsaWRlcyAxNyDigJMgMjAgZnJv
bSB0aGUgSUVURjk3IHByZXNlbnRhdGlvbjogaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcHJvY2VlZGlu
Z3MvOTcvc2xpZGVzL3NsaWRlcy05Ny1zcHJpbmctMV9pZXRmOTdfZHJhZnQtaWV0Zi1zcHJpbmct
Y29uZmxpY3QtcmVzb2x1dGlvbi0wMi0wMC5wcHR4IGZvciBzb21lIHNpbXBsZSBleGFtcGxlcyBv
ZiB0aGlzLg0KDQoNCg0KICAgTGVzDQoNCg0KDQpSZWdhcmRzLA0KTXVzdGFwaGEuDQoNCkZyb206
IHNwcmluZyBbbWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYub3JnXSBPbiBCZWhhbGYgT2YgTGVz
IEdpbnNiZXJnIChnaW5zYmVyZykNClNlbnQ6IFN1bmRheSwgRGVjZW1iZXIgMDQsIDIwMTYgNzow
NCBQTQ0KVG86IHNwcmluZ0BpZXRmLm9yZzxtYWlsdG86c3ByaW5nQGlldGYub3JnPg0KU3ViamVj
dDogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0K
DQoNCldoZW4gdGhlIHByb2JsZW0gYWRkcmVzc2VkIGJ5IGRyYWZ0LWlldGYtc3ByaW5nLWNvbmZs
aWN0LXJlc29sdXRpb24gd2FzIGZpcnN0DQoNCnByZXNlbnRlZCBhdCBJRVRGIDk0LCB0aGUgYXV0
aG9ycyBkZWZpbmVkIHRoZSBmb2xsb3dpbmcgcHJpb3JpdGllczoNCg0KDQoNCjEpRGV0ZWN0IHRo
ZSBwcm9ibGVtDQoNCjIpUmVwb3J0IHRoZSBwcm9ibGVtDQoNClRoaXMgYWxlcnRzIHRoZSBuZXR3
b3JrIG9wZXJhdG9yIHRvIHRoZSBleGlzdGVuY2Ugb2YgYSBjb25mbGljdCBzbyB0aGF0DQoNCnRo
ZSBjb25maWd1cmF0aW9uIGVycm9yIGNhbiBiZSBjb3JyZWN0ZWQuDQoNCjMpRGVmaW5lIGNvbnNp
c3RlbnQgYmVoYXZpb3INCg0KVGhpcyBhdm9pZHMgbWlzLWZvcndhcmRpbmcgd2hpbGUgdGhlIGNv
bmZsaWN0IGV4aXN0cy4NCg0KNClEb27igJl0IG92ZXJlbmdpbmVlciB0aGUgc29sdXRpb24NCg0K
R2l2ZW4gdGhhdCBpdCBpcyBpbXBvc3NpYmxlIHRvIGtub3cgd2hpY2ggb2YgdGhlIGNvbmZsaWN0
aW5nIGVudHJpZXMNCg0KaXMgdGhlIGNvcnJlY3Qgb25lLCB3ZSBzaG91bGQgYXBwbHkgYSBzaW1w
bGUgYWxnb3JpdGhtIHRvIHJlc29sdmUgdGhlIGNvbmZsaWN0Lg0KDQo1KUFncmVlIG9uIHRoZSBy
ZXNvbHV0aW9uIGJlaGF2aW9yDQoNCg0KDQpUaGUgcmVzb2x1dGlvbiBiZWhhdmlvciB3YXMgZGVs
aWJlcmF0ZWx5IHRoZSBsYXN0IHBvaW50IGJlY2F1c2UgaXQgd2FzDQoNCmNvbnNpZGVyZWQgdGhl
IGxlYXN0IGltcG9ydGFudC4NCg0KDQoNCklucHV0IHdhcyByZWNlaXZlZCBvdmVyIHRoZSBwYXN0
IHllYXIgd2hpY2ggZW1waGFzaXplZCB0aGUgaW1wb3J0YW5jZSBvZg0KDQp0cnlpbmcgdG8gIm1h
eGltaXplIGZvcndhcmRpbmciIGluIHRoZSBwcmVzZW5jZSBvZiBjb25mbGljdHMuIFN1YnNlcXVl
bnQNCg0KcmV2aXNpb25zIG9mIHRoZSBkcmFmdCBoYXZlIHRyaWVkIHRvIGFkZHJlc3MgdGhpcyBj
b25jZXJuLiBIb3dldmVyIHRoZSBhdXRob3JzDQoNCmhhdmUgcmVwZWF0ZWRseSBzdHJlc3NlZCB0
aGF0IHRoZSBzb2x1dGlvbiBiZWluZyBwcm9wb3NlZA0KDQooImlnbm9yZSBvdmVybGFwIG9ubHki
KSB3YXMgbW9yZSBjb21wbGV4IHRoYW4gb3RoZXIgb2ZmZXJlZCBhbHRlcm5hdGl2ZXMgYW5kDQoN
CndvdWxkIGJlIG1vcmUgZGlmZmljdWx0IHRvIGd1YXJhbnRlZSBpbnRlcm9wZXJhYmlsaXR5IGJl
Y2F1c2Ugc3VidGxlDQoNCmRpZmZlcmVuY2VzIGluIGFuIGltcGxlbWVudGF0aW9uIGNvdWxkIHBy
b2R1Y2UgZGlmZmVyZW50IHJlc3VsdHMuDQoNCg0KDQpBdCBJRVRGOTcgc2lnbmlmaWNhbnQgZmVl
ZGJhY2sgd2FzIHJlY2VpdmVkIHByZWZlcnJpbmcgYSBzaW1wbGVyIHNvbHV0aW9uIHRvDQoNCnRo
ZSBwcm9ibGVtLiBUaGUgYXV0aG9ycyBhcmUgdmVyeSBzeW1wYXRoZXRpYyB0byB0aGlzIGZlZWRi
YWNrIGFuZCB0aGVyZWZvcmUNCg0KYXJlIHByb3Bvc2luZyBhIHNvbHV0aW9uIGJhc2VkIG9uIHdo
YXQgdGhlIGRyYWZ0IGRlZmluZXMgYXMgdGhlICJJZ25vcmUiDQoNCnBvbGljeSAtIHdoZXJlIGFs
bCBlbnRyaWVzIHdoaWNoIGFyZSBpbiBjb25mbGljdCBhcmUgaWdub3JlZC4gV2UgYmVsaWV2ZSB0
aGlzDQoNCmlzIGZhciBtb3JlIGRlc2lyYWJsZSBhbmQgYWxpZ25zIHdpdGggdGhlIHByaW9yaXRp
ZXMgbGlzdGVkIGFib3ZlLg0KDQoNCg0KV2Ugb3V0bGluZSB0aGUgcHJvcG9zZWQgc29sdXRpb24g
YmVsb3cgYW5kIHdvdWxkIGxpa2UgdG8gcmVjZWl2ZSBmZWVkYmFjayBmcm9tDQoNCnRoZSBXRyBi
ZWZvcmUgcHVibGlzaGluZyB0aGUgbmV4dCByZXZpc2lvbiBvZiB0aGUgZHJhZnQuDQoNCg0KDQog
ICBMZXMgKG9uIGJlaGFsZiBvZiB0aGUgYXV0aG9ycykNCg0KDQoNCk5ldyBQcm9wb3NhbA0KDQoN
Cg0KSW4gdGhlIGxhdGVzdCByZXZpc2lvbiBvZiB0aGUgZHJhZnQgIlNSTVMgUHJlZmVyZW5jZSIg
d2FzIGludHJvZHVjZWQuIFRoaXMNCg0KcHJvdmlkZXMgYSB3YXkgZm9yIGEgbnVtZXJpY2FsIHBy
ZWZlcmVuY2UgdG8gYmUgZXhwbGljaXRseSBhc3NvY2lhdGVkIHdpdGggYW4NCg0KU1JNUyBhZHZl
cnRpc2VtZW50LiBVc2luZyB0aGlzIGFuIG9wZXJhdG9yIGNhbiBpbmRpY2F0ZSB3aGljaCBhZHZl
cnRpc2VtZW50IGlzDQoNCnRvIGJlIHByZWZlcnJlZCB3aGVuIGEgY29uZmxpY3QgaXMgcHJlc2Vu
dC4gVGhlIGF1dGhvcnMgdGhpbmsgdGhpcyBpcyBhIHVzZWZ1bA0KDQphZGRpdGlvbiBhbmQgd2Ug
dGhlcmVmb3JlIHdhbnQgdG8gaW5jbHVkZSB0aGlzIGluIHRoZSBuZXcgc29sdXRpb24uDQoNCg0K
DQpUaGUgbmV3IHByZWZlcmVuY2UgcnVsZSB1c2VkIHRvIHJlc29sdmUgY29uZmxpY3RzIGlzIGRl
ZmluZWQgYXMgZm9sbG93czoNCg0KDQoNCkEgZ2l2ZW4gbWFwcGluZyBlbnRyeSBpcyBjb21wYXJl
ZCBhZ2FpbnN0IGFsbCBtYXBwaW5nIGVudHJpZXMgaW4gdGhlIGRhdGFiYXNlDQoNCndpdGggYSBw
cmVmZXJlbmNlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBpdHMgb3duLiBJZiB0aGVyZSBpcyBh
IGNvbmZsaWN0LA0KDQp0aGUgbWFwcGluZyBlbnRyeSB3aXRoIGxvd2VyIHByZWZlcmVuY2UgaXMg
aWdub3JlZC4gSWYgdHdvIG1hcHBpbmcgZW50cmllcyBhcmUNCg0KaW4gY29uZmxpY3QgYW5kIGhh
dmUgZXF1YWwgcHJlZmVyZW5jZSB0aGVuIGJvdGggZW50cmllcyBhcmUgaWdub3JlZC4NCg0KDQoN
CkltcGxlbWVudGF0aW9uIG9mIHRoaXMgcG9saWN5IGlzIGRlZmluZWQgYXMgZm9sbG93czoNCg0K
DQoNClN0ZXAgMTogV2l0aGluIGEgc2luZ2xlIGFkZHJlc3MtZmFtaWx5L2FsZ29yaXRobS90b3Bv
bG9neSBzb3J0IGVudHJpZXMNCg0KYmFzZWQgb24gcHJlZmVyZW5jZQ0KDQpTdGVwIDI6IFN0YXJ0
aW5nIHdpdGggdGhlIGxvd2VzdCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgcHJlZml4IGNv
bmZsaWN0cw0KDQp1c2luZyB0aGUgYWJvdmUgcHJlZmVyZW5jZSBydWxlLiBUaGUgb3V0cHV0IGlz
IGFuIGFjdGl2ZSBwb2xpY3kgcGVyIHRvcG9sb2d5Lg0KDQpTdGVwIDM6IFRha2UgdGhlIG91dHB1
dHMgZnJvbSBTdGVwIDIgYW5kIGFnYWluIHNvcnQgdGhlbSBieSBwcmVmZXJlbmNlDQoNClN0ZXAg
NDogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHByZWZlcmVuY2UgZW50cmllcywgcmVzb2x2ZSBT
SUQgY29uZmxpY3RzDQoNCnVzaW5nIHRoZSBhYm92ZSBwcmVmZXJlbmNlIHJ1bGUNCg0KDQoNClRo
ZSBvdXRwdXQgZnJvbSBTdGVwIDQgaXMgdGhlbiB0aGUgY3VycmVudCBBY3RpdmUgUG9saWN5Lg0K
DQoNCg0KSGVyZSBhcmUgYSBmZXcgZXhhbXBsZXMuIEVhY2ggbWFwcGluZyBlbnRyeSBpcyByZXBy
ZXNlbnRlZCBieSB0aGUgdHVwbGU6DQoNCihQcmVmZXJlbmNlLCBQcmVmaXgvbWFzayBJbmRleCBy
YW5nZSA8Iz4pDQoNCg0KDQpFeGFtcGxlIDE6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyPGh0
dHA6Ly8xLjEuMS4xLzMyPiAxMDAgcmFuZ2UgMTAwKQ0KDQoyLiAoMTQ5LCAxLjEuMS4xMC8zMjxo
dHRwOi8vMS4xLjEuMTAvMzI+IDIwMCByYW5nZSAyMDApDQoNCjMuICgxNDgsIDEuMS4xLjEwMS8z
MjxodHRwOi8vMS4xLjEuMTAxLzMyPiA1MDAgcmFuZ2UgMTApDQoNCg0KDQpFbnRyeSAzIGNvbmZs
aWN0cyB3aXRoIGVudHJ5IDIsIGl0IGlzIGlnbm9yZWQuDQoNCkVudHJ5IDIgY29uZmxpY3RzIHdp
dGggZW50cnkgMSwgaXQgaXMgaWdub3JlZC4NCg0KQWN0aXZlIHBvbGljeToNCg0KDQoNCigxNTAs
IDEuMS4xLjEvMzI8aHR0cDovLzEuMS4xLjEvMzI+IDEwMCByYW5nZSAxMDApDQoNCg0KDQpFeGFt
cGxlIDI6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyPGh0dHA6Ly8xLjEuMS4xLzMyPiAxMDAg
cmFuZ2UgMTAwKQ0KDQoyLiAoMTUwLCAxLjEuMS4xMC8zMjxodHRwOi8vMS4xLjEuMTAvMzI+IDIw
MCByYW5nZSAyMDApDQoNCjMuICgxNTAsIDEuMS4xLjEwMS8zMjxodHRwOi8vMS4xLjEuMTAxLzMy
PiA1MDAgcmFuZ2UgMTApDQoNCjQuICgxNTAsIDIuMi4yLjEvMzI8aHR0cDovLzIuMi4yLjEvMzI+
IDEwMDAgcmFuZ2UgMSkNCg0KDQoNCkVudHJ5IDEgY29uZmxpY3RzIHdpdGggZW50cnkgMiwgYm90
aCBhcmUgbWFya2VkIGFzIGlnbm9yZS4NCg0KRW50cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAy
LiBJdCBpcyBtYXJrZWQgYXMgaWdub3JlLg0KDQpFbnRyeSA0IGhhcyBubyBjb25mbGljdHMgd2l0
aCBhbnkgZW50cmllcw0KDQoNCg0KQWN0aXZlIHBvbGljeToNCg0KKDE1MCwgMi4yLjIuMS8zMjxo
dHRwOi8vMi4yLjIuMS8zMj4gMTAwMCByYW5nZSAxKQ0KDQoNCg0KRXhhbXBsZSAzOg0KDQoNCg0K
MS4gKDE1MCwgMS4xLjEuMS8zMjxodHRwOi8vMS4xLjEuMS8zMj4gMTAwIHJhbmdlIDUwMCkNCg0K
Mi4gKDE1MCwgMS4xLjEuMTAvMzI8aHR0cDovLzEuMS4xLjEwLzMyPiAyMDAgcmFuZ2UgMjAwKQ0K
DQozLiAoMTUwLCAxLjEuMS4xMDEvMzI8aHR0cDovLzEuMS4xLjEwMS8zMj4gNTAwIHJhbmdlIDEw
KQ0KDQo0LiAoMTUwLCAyLjIuMi4xLzMyPGh0dHA6Ly8yLjIuMi4xLzMyPiAxMDAwIHJhbmdlIDEp
DQoNCg0KDQpFbnRyeSAxIGNvbmZsaWN0cyB3aXRoIGVudHJpZXMgMiwgMywgYW5kICA0LiBBbGwg
ZW50cmllcyBhcmUgbWFya2VkIGlnbm9yZS4NCg0KDQoNCkFjdGl2ZSBwb2xpY3k6DQoNCkVtcHR5
DQoNCg0KDQpFeGFtcGxlIDQ6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyPGh0dHA6Ly8xLjEu
MS4xLzMyPiAxMDAgcmFuZ2UgMTApDQoNCjIuICgxNDksIDEuMS4xLjEwLzMyPGh0dHA6Ly8xLjEu
MS4xMC8zMj4gMjAwIHJhbmdlIDMwMCkNCg0KMy4gKDE0OSwgMS4xLjEuMTAxLzMyPGh0dHA6Ly8x
LjEuMS4xMDEvMzI+IDUwMCByYW5nZSAxMCkNCg0KNC4gKDE0OCwgMi4yLjIuMS8zMjxodHRwOi8v
Mi4yLjIuMS8zMj4gMTAwMCByYW5nZSAxKQ0KDQoNCg0KRW50cnkgNCBjb25mbGljdHMgd2l0aCBl
bnRyeSAyLiBJdCBpcyBtYXJrZWQgaWdub3JlLg0KDQpFbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVu
dHJ5IDMuIEVudHJpZXMgMiBhbmQgMyBhcmUgbWFya2VkIGlnbm9yZS4NCg0KDQoNCkFjdGl2ZSBw
b2xpY3k6DQoNCigxNTAsIDEuMS4xLjEvMzI8aHR0cDovLzEuMS4xLjEvMzI+IDEwMCByYW5nZSAx
MCkNCg0KDQoNCg0KDQoNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fDQpzcHJpbmcgbWFpbGluZyBsaXN0DQpzcHJpbmdAaWV0Zi5vcmc8bWFpbHRv
OnNwcmluZ0BpZXRmLm9yZz4NCmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8v
c3ByaW5nDQoNCg==

--_000_ae35b4f22e7744f9a424a8ad02c12a2bXCHALN001ciscocom_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K
CXtmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJcGFub3NlLTE6NSAwIDAgMCAwIDAgMCAwIDAgMDt9
DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIg
MiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3Nl
LTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNv
Tm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJn
aW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGlt
ZXMgTmV3IFJvbWFuIiwic2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNv
LXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVy
bGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxl
LXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l
O30NCnANCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRv
Ow0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFy
Z2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5l
dyBSb21hbiIsInNlcmlmIjt9DQpwLk1zb0FjZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29B
Y2V0YXRlDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9v
biBUZXh0IENoYXIiOw0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZv
bnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7fQ0Kc3Bh
bi5nbWFpbC0NCgl7bXNvLXN0eWxlLW5hbWU6Z21haWwtO30NCnAuZ21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCwgbGkuZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvbGlzdHBhcmFncmFwaCwgZGl2LmdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3Rw
YXJhZ3JhcGgNCgl7bXNvLXN0eWxlLW5hbWU6Z21haWwtbV8tOTA3MjE4OTEzMDI1MzYyMjg4Nm1z
b2xpc3RwYXJhZ3JhcGg7DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0
OjBpbjsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowaW47DQoJ
Zm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYi
O30NCnNwYW4uZ21haWwtaG9lbnpiDQoJe21zby1zdHlsZS1uYW1lOmdtYWlsLWhvZW56Yjt9DQpw
LmdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCwgbGkuZ21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0LCBkaXYuZ21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvcGxhaW50ZXh0DQoJe21zby1zdHlsZS1uYW1lOmdtYWlsLW1fLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQ7DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJp
Z2h0OjBpbjsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowaW47
DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2Vy
aWYiO30NCnNwYW4uRW1haWxTdHlsZTIyDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5
Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJY29sb3I6IzFGNDk3RDt9
DQpzcGFuLkJhbGxvb25UZXh0Q2hhcg0KCXttc28tc3R5bGUtbmFtZToiQmFsbG9vbiBUZXh0IENo
YXIiOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9vbiBU
ZXh0IjsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7fQ0KLk1zb0NocERlZmF1
bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1mYW1pbHk6IkNhbGlicmki
LCJzYW5zLXNlcmlmIjt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47
DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7
cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4N
CjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48
IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0
PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5
b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9
ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij5Sb2JlcnQg4oCTPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90Oztjb2xvcjojMUY0OTdEIj5Zb3UgaGF2ZSBhIGNvbXBsZXRlIG1pc3VuZGVyc3RhbmRp
bmcgb2Ygcm9sZXMgaGVyZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkhvdyB0aGUgb3duZXIgb2YgYSByb3V0ZSBtYXkg
YmUgcmVwcmVzZW50ZWQgaW4gdGhlIFJJQiBpc27igJl0IGltcGFjdGVkIGJ5IFNSTVMgb3IgY29u
ZmxpY3QgcmVzb2x1dGlvbi4gTm9yIGlzIHRoZSBkZXRlcm1pbmF0aW9uIG9mIHdoaWNoIHJvdXRl
IGlzIHRoZSBiZXN0IHJvdXRlLg0KIFdlIGFyZSBvbmx5IGRldGVybWluaW5nIHdoZXRoZXIgdG8g
dXNlIG9yIG5vdCB1c2UgYSBTSUQgd2hpY2ggd2FzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJlZml4
IGJ5IHNvbWUgYWR2ZXJ0aXNlbWVudC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRoZSBJbnRyb2R1Y3Rpb24gdG8gdGhl
IGRyYWZ0IHN0YXRlczo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPuKAnFRoZSBwcm9ibGVtIHRvIGJlIGFkZHJlc3NlZCBp
cyBwcm90b2NvbCBpbmRlcGVuZGVudCBpLmUuLCBzZWdtZW50PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyByZWxhdGVkIGFkdmVydGlzZW1lbnRzIG1heSBiZSBvcmln
aW5hdGVkIGJ5IG11bHRpcGxlIG5vZGVzIHVzaW5nPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5
N0QiPiZuYnNwOyZuYnNwOyBkaWZmZXJlbnQgcHJvdG9jb2xzIGFuZCB5ZXQgdGhlIGNvbmZsaWN0
IHJlc29sdXRpb24gTVVTVCBiZSB0aGUgc2FtZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij4mbmJzcDsmbmJzcDsgb24gYWxsIG5vZGVzIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb3RvY29sIHVz
ZWQgdG8gdHJhbnNwb3J0IHRoZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsm
bmJzcDsgYWR2ZXJ0aXNlbWVudHMu4oCdPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxv
OnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5QbGVhc2UgZG8gYSBtZW50YWwgcmVz
ZXQuDQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6V2lu
Z2RpbmdzO2NvbG9yOiMxRjQ5N0QiPko8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
O2NvbG9yOiMxRjQ5N0QiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMt
c2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7IExlczxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVy
LWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+
DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7
cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7Ij4gcnJhc3p1a0BnbWFpbC5jb20gW21haWx0bzpycmFzenVrQGdtYWlsLmNvbV0N
CjxiPk9uIEJlaGFsZiBPZiA8L2I+Um9iZXJ0IFJhc3p1azxicj4NCjxiPlNlbnQ6PC9iPiBUaHVy
c2RheSwgRGVjZW1iZXIgMjIsIDIwMTYgMTE6NTIgQU08YnI+DQo8Yj5Ubzo8L2I+IExlcyBHaW5z
YmVyZyAoZ2luc2JlcmcpPGJyPg0KPGI+Q2M6PC9iPiBBaXNzYW91aSwgTXVzdGFwaGEgKE5va2lh
IC0gQ0EpOyBzcHJpbmdAaWV0Zi5vcmc8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtzcHJpbmdd
IFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWw8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJz
cDs8L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ij5IaSBMZXMsPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDsiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5PbiAjMSBJIGFtIGFsc28g
d2l0aCBNdXN0YXBoYSBoZXJlLiBGb3IgY2xhcml0eSBvZiB0aGlzIGRpc2N1c3Npb24gY2FuIHlv
dSBlbnVtZXJhdGUgd2hlbiBmcm9tIFJJQiB0byBGSUIvTEZJQiB5b3UgYXJlIGluc3RhbGxpbmcg
dGhlIGV4YWN0IHNhbWUgYWN0aXZlIHByZWZpeCBmcm9tIG1vcmUgdGhlbiBvbmUgcHJvZHVjZXIg
Pw0KIElzIFNSTVMgc29ydCBvZiB6b21iaWUgaGVyZSBhbmQgbm90IHRyZWF0ZWQgYXMgcmVhbCBy
b3V0ZSBwcm9kdWNlciBoZW5jZSB3ZSBoYXZlIGFuIGlzc3VlID8gQW5kIHRoZSBpc3N1ZSBpcyBv
bmx5IHdpdGggY29uZmxpY3RzIG9mIFNSTVMgJiM0MzsgcmVhbCByb3V0ZSBwcm9kdWNlciA/Jm5i
c3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDsiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5PbiAjMyB5b3Ugc2FpZCB0aGF0DQo8
aT4mcXVvdDt3aXRoIHJlZGlzdHJpYnV0aW9uL3JvdXRlIGxlYWtpbmcgdGhlIHNvdXJjZSBvZiBh
biBhZHZlcnRpc2VtZW50IG1heSBhcHBlYXIgdG8gYmUgZGlmZmVyZW50IG9uIGRpZmZlcmVudCBy
b3V0ZXJzJnF1b3Q7PC9pPiB0aGF0IGlzIHZlcnkgdHJ1ZS4gSW4gZmFjdCB3aXRoIHNpbXBsZSBz
dGF0aWMgcm91dGUgb3Igc3RhdGljIGxhYmVsIGNvbmZpZ3VyZWQgb24gYSByb3V0ZXIgdGhlIFJJ
QiBhbmQgRklCIG9uIHRoYXQgcm91dGVyIHdpbGwgYmUgZGlmZmVyZW50DQogdGhlbiBSSUIgYW5k
IEZJQiBvbiB0aGUgb3RoZXIgcm91dGVycyB3aXRob3V0IHN1Y2ggc3RhdGljIHJvdXRlLiBBbmQg
dGhlIHBvaW50IGlzIHRoYXQgc3VjaCBzdGF0aWMgcm91dGUgb3IgbGFiZWwgaXMgdGhlcmUgZm9y
IGEgcmVhc29uIHlvdSBtYXkgbm90IGtub3cgYWJvdXQuIFNvIHN0cnVnZ2xpbmcgZm9yIGRhdGEg
cGxhbmUgY29uc2lzdGVuY3kg4oCLZGVsaWJlcmF0ZWx5IGV4Y2x1ZGluZyBzb3VyY2UmbmJzcDt3
aGVuIG9wZXJhdGlvbmFsIG5lZWRzIHJlcXVpcmUNCiBvdGhlcndpc2UgaXMgbm90IHJlYWxseSB0
aGF0IG11Y2ggaGVscGZ1bCBJIGFtIGFmcmFpZC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PG86cD4mbmJzcDs8L286
cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDsiPkdyZWV0aW5ncyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Um9iZXJ0LiZuYnNwOzxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5P
biBUaHUsIERlYyAyMiwgMjAxNiBhdCA4OjM3IFBNLCBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKSAm
bHQ7PGEgaHJlZj0ibWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmdp
bnNiZXJnQGNpc2NvLmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5N
dXN0YXBoYSAtPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRk
aW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTti
b3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5G
cm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiBzcHJpbmcgW21haWx0
bzo8YSBocmVmPSJtYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5r
Ij5zcHJpbmctYm91bmNlc0BpZXRmLm9yZzwvYT5dDQo8Yj5PbiBCZWhhbGYgT2YgPC9iPkFpc3Nh
b3VpLCBNdXN0YXBoYSAoTm9raWEgLSBDQSk8YnI+DQo8Yj5TZW50OjwvYj4gVGh1cnNkYXksIERl
Y2VtYmVyIDIyLCAyMDE2IDg6MTAgQU08YnI+DQo8c3BhbiBjbGFzcz0iZ21haWwtIj48Yj5Ubzo8
L2I+IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpOyA8YSBocmVmPSJtYWlsdG86c3ByaW5nQGlldGYu
b3JnIiB0YXJnZXQ9Il9ibGFuayI+DQpzcHJpbmdAaWV0Zi5vcmc8L2E+PC9zcGFuPjxicj4NCjxi
PlN1YmplY3Q6PC9iPiBSZTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2lt
cGxlciBQcm9wb3NhbDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5IaSBMZXMsPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEw
LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ij5JIHJlYWQgc2xpZGVzIDE3LTIxIG9mIHRoZSBkb2N1bWVudCB5b3UgcmVmZXJlbmNlZCBiZWxv
dyBhbmQgSSBoYXZlIHRoZSBmb2xsb3dpbmcgY29tbWVudHM6PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+MS48L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+UGFnZSAxNywg4oCcT3JkZXIgTWF0
dGVycyAtIFByZWZpeCB2cyBTSUQgQ29uZmxpY3TigJ0uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPldoZW4geW91IHBlcmZvcm0gcmVzb2x1dGlvbiBvbiZu
YnNwOyBhIHBlciBwcmVmaXggYmFzaXMsIHByZWZpeCBjb25mbGljdHMgYXJlIG5hdHVyYWxseSBw
cm9jZXNzZWQgZmlyc3QgZm9sbG93ZWQgYnkgU0lEIGNvbmZsaWN0cyBhY3Jvc3MgZGlmZmVyZW50
DQogcHJlZml4ZXMuIFNvIHRoZSBvcmRlcmluZyBpc3N1ZSBkZXNjcmliZWQgaXMgb25seSBzcGVj
aWZpYyBpZiB5b3UgZGVjaWRlZCB0byByZXNvbHZlIGNvbmZsaWN0aW5nIFNJRCBlbnRyaWVzIG91
dHNpZGUgb2YgdGhlIG5hdHVyYWwgcHJlZml4IHJlc29sdXRpb24gYnkgYSByb3V0ZXIuDQo8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMx
RjQ5N0QiPltMZXM6XSBXaGF0IG1heSBzZWVtIOKAnG5hdHVyYWzigJ0gdG8geW91IG1pZ2h0IG5v
dCB0byBzb21lb25lIGVsc2UuIEkgZG9u4oCZdCBjYXJlIHRvIGRlYmF0ZSB0aGF0IHBvaW50LiBX
aGF0IGlzIGJlaW5nIGlsbHVzdHJhdGVkIGhlcmUgaXMgdGhhdCBpbiBvcmRlciB0byBwcm92aWRl
IGEgbm9ybWF0aXZlDQogc3BlY2lmaWNhdGlvbiB0aGF0IOKAkyBpZiBmb2xsb3dlZCDigJMgZ3Vh
cmFudGVlcyBpbnRlcm9wZXJhYmlsaXR5IHdlIGhhdmUgdG8gc3BlY2lmeSB0aGUgb3JkZXIgaW4g
d2hpY2ggY29uZmxpY3RzIGFyZSBwcm9jZXNzZWQgb3RoZXJ3aXNlIGRpZmZlcmVudCByZXN1bHRz
IG1heSBiZSBvYnRhaW5lZC48L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90OyI+Mi48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+
UGFnZSAxOCwg4oCcT3JkZXIgTWF0dGVyczogRGVyaXZlZCB2cyBub24tZGVyaXZlZOKAkyBwcmVm
aXggY29uZmxpY3TigJ0uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDsiPkl0IHNlZW1zIHRvIG1lIHRoaXMgaXNzdWUgaXMgYW4gYXJ0aWZhY3Qgb2YgdGhlIHNw
ZWNpZmljIGFsZ29yaXRobSB1c2VkIHRvIHJlc29sdmUgY29uZmxpY3RzLiBCZWNhdXNlIHRoZSBh
bGdvcml0aG0gdXNlcyBwYXJhbWV0ZXJzIHN1Y2ggYXMNCiDigJxSYW5nZSAoc3RhcnQgdyBzbWFs
bGVzdCnigJ0gdGhlbiBvYnZpb3VzbHkgZGVyaXZlZCBTUk1TIGVudHJpZXMgd2lsbCBsZW5kIGEg
ZGlmZmVyZW50IHJlc3VsdCB0aGFuIG9yaWdpbmFsIFNSTVMgZW50cmllcy4NCjwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0
cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5XaXRoIHRoZSBwcmUtcHJlZml4
IHJlc29sdXRpb24sIHRoZSBvbmx5IGluZm9ybWF0aW9uIGtlcHQgZnJvbSB0aGUgb3JpZ2luYWwg
U1JNUyBlbnRyeSBpcyB0aGUgcHJlZmVyZW5jZSBhbmQgdGhlIGFkdmVydGlzaW5nIG9yIG93bmVy
IHJvdXRlci4NCiBBbnl0aGluZyBlbHNlIGlzIG5vdCB1c2VkLiBJdCBzZWVtcyB0byBtZSBhIHNp
bXBsZSBhbGdvcml0aG0gYmFzZWQgb24gcHJlZmVyZW5jZSBmaXJzdCB0aGVuIGZvbGxvd2VkIGJ5
IHNvbWUgcnVsZSBvbiBzZWxlY3RpbmcgdGhlIGFkdmVydGlzaW5nIHJvdXRlciBpZiBjb25mbGlj
dHMgZXhpc3Qgd2l0aGluIHRoZSBzYW1lIHByZWZlcmVuY2Ugd291bGQgd29yay48L3NwYW4+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlz
dHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0Qi
PltMZXM6XSBZb3UgaGF2ZSBpbXBsZW1lbnRlZCB0aGluZ3MgaW4gYSBjZXJ0YWluIHdheS4gU29t
ZW9uZSBlbHNlIG1pZ2h0IGNob29zZSB0byBpbXBsZW1lbnQgaW4gYSBkaWZmZXJlbnQgd2F5LiBB
IG5vcm1hdGl2ZSBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IChhbmQgc2hvdWxkIG5vdCkgY29uc3Ry
YWluDQogYW4gaW1wbGVtZW50YXRpb24uIFdoYXQgaXMgYmVpbmcgaWxsdXN0cmF0ZWQgaGVyZSBp
cyB0aGF0IGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCByZXRhaW4gdGhlIHVuZGVyaXZl
ZCBlbnRyeSAoaW4gd2hhdGV2ZXIgaW50ZXJuYWwgZm9ybSBpdCBjaG9vc2VzKSBkaWZmZXJlbnQg
cmVzdWx0cyB3aWxsIGJlIG9idGFpbmVkIGJlY2F1c2UgdGhlIHByZWZlcmVuY2UgYWxnb3JpdGht
IGRlcGVuZHMgb24gY29tcGFyaW5nIHRoZSB1bmRlcml2ZWQNCiByYW5nZXMuPC9zcGFuPjwvaT48
L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4zLjwvc3Bhbj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bh
bj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5GaW5hbGx5LCB0aGVyZSBpcyBzb21ldGhpbmcg
d2hpY2ggaGFzIG5vdCBiZWVuIGFkZHJlc3NlZCBpbiB0aGUgc2xpZGVzLiBUaGVyZSBpcyBzdGls
bCBhIHBvc3NpYmlsaXR5IG9mIGNvbmZsaWN0aW5nIGVudHJpZXMgYW1vbmcgU0lEcyBhZHZlcnRp
c2VkIHVzaW5nIHRoZSBwcmVmaXggU0lEIHN1Yi1UTFYgd2l0aGluIGEgUHJlZml4DQogVExWIChJ
Uy1JUyBJUCBSZWFjaCBUTFYgb3IgT1NQRiBFeHRlbmRlZCBQcmVmaXggVExWKS4gQSBzaW1wbGUg
cnVsZSBzZWxlY3RpbmcgdGhlIGFkdmVydGlzaW5nIHJvdXRlciBzaG91bGQgYWxzbyB3b3JrIGZp
bmUgaGVyZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48aT48c3BhbiBzdHlsZT0iY29s
b3I6IzFGNDk3RCI+W0xlczpdIE5vIOKAkyBzb3VyY2Ugb2YgYW4gYWR2ZXJ0aXNlbWVudCBoYXMg
YmVlbiBxdWl0ZQ0KPC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGI+PGk+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFs
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPuKAi+KAizwvc3Bhbj48L2k+PC9iPjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxiPjxpPmRlbGliZXJhdGVseSBleGNsdWRlZCBmcm9tIHRoZSBwcmVmZXJlbmNlIGFsZ29yaXRo
bS4gV2l0aCByZWRpc3RyaWJ1dGlvbi9yb3V0ZSBsZWFraW5nIHRoZSBzb3VyY2Ugb2YgYW4gYWR2
ZXJ0aXNlbWVudCBtYXkgYXBwZWFyIHRvIGJlIGRpZmZlcmVudCBvbiBkaWZmZXJlbnQgcm91dGVy
cy0gdGhpcyB3b3VsZCByZXN1bHQgaW4gZGlmZmVyZW50IHJlc3VsdHMgb24gZGlmZmVyZW50IHJv
dXRlcnMuPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+
PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48L2k+PC9iPjxzcGFu
IHN0eWxlPSJjb2xvcjojODg4ODg4Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJz
cDsgTGVzPC9zcGFuPjwvaT48L2I+PHNwYW4gc3R5bGU9ImNvbG9yOiM4ODg4ODgiPjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3Bh
biBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5SZWdhcmRzLDwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90OyI+TXVzdGFwaGEuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBi
bHVlIDEuNXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9
ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0
IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+RnJvbTo8L2I+IExlcyBH
aW5zYmVyZyAoZ2luc2JlcmcpIFs8YSBocmVmPSJtYWlsdG86Z2luc2JlcmdAY2lzY28uY29tIiB0
YXJnZXQ9Il9ibGFuayI+bWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNvbTwvYT5dDQo8YnI+DQo8Yj5T
ZW50OjwvYj4gRnJpZGF5LCBEZWNlbWJlciAwOSwgMjAxNiAxOjQ5IFBNPGJyPg0KPGI+VG86PC9i
PiBBaXNzYW91aSwgTXVzdGFwaGEgKE5va2lhIC0gQ0EpICZsdDs8YSBocmVmPSJtYWlsdG86bXVz
dGFwaGEuYWlzc2FvdWlAbm9raWEuY29tIiB0YXJnZXQ9Il9ibGFuayI+bXVzdGFwaGEuYWlzc2Fv
dWlAbm9raWEuY29tPC9hPiZndDs7DQo8YSBocmVmPSJtYWlsdG86c3ByaW5nQGlldGYub3JnIiB0
YXJnZXQ9Il9ibGFuayI+c3ByaW5nQGlldGYub3JnPC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPiBS
RTogU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbDxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0
OTdEIj5NdXN0YXBoYSAtPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVw
dDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6
bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGlu
IDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiBBaXNzYW91
aSwgTXVzdGFwaGEgKE5va2lhIC0NCiBDQSkgWzxhIGhyZWY9Im1haWx0bzptdXN0YXBoYS5haXNz
YW91aUBub2tpYS5jb20iIHRhcmdldD0iX2JsYW5rIj5tYWlsdG86bXVzdGFwaGEuYWlzc2FvdWlA
bm9raWEuY29tPC9hPl0NCjxicj4NCjxiPlNlbnQ6PC9iPiBGcmlkYXksIERlY2VtYmVyIDA5LCAy
MDE2IDc6NDQgQU08YnI+DQo8Yj5Ubzo8L2I+IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpOyA8YSBo
cmVmPSJtYWlsdG86c3ByaW5nQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+DQpzcHJpbmdAaWV0
Zi5vcmc8L2E+PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJFOiBTSUQgQ29uZmxpY3QgUmVzb2x1dGlv
bjogQSBTaW1wbGVyIFByb3Bvc2FsPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkkgaGF2ZSBhIGNvdXBs
ZSBvZiBjb21tZW50cyBvbiB0aGUgYmVsb3cgcHJvcG9zYWwuPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+MS48L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+UmVnYXJkaW5nIHRoZSBTUk1TIFBy
ZWZlcmVuY2UgU3ViLVRMViBpbiBzZWN0aW9uIDMuMSBvZiB0aGUgZHJhZnQuIEluIG1hbnkgY2Fz
ZXMsIGEgY29uZmlndXJhdGlvbiBvbiB0aGUgcmVzb2x2aW5nIHJvdXRlciBjYW4gYXNzaWduIGEg
cHJlZmVyZW5jZSB0byBlYWNoIFNSTVMgaW4gY2FzZSB0aGVyZSBpcyBubyBhZHZlcnRpc2VtZW50
DQogb2YgdGhpcyBzdWItVExWIG9yIHRvIG92ZXJyaWRlIGFuIGFkdmVydGlzZWQgdmFsdWUuIEkg
cHJvcG9zZSB0aGF0IHRoaXMgb3B0aW9uIGJlIGFsbG93ZWQuIEhlcmUgaXMgYSBwcm9wb3NlZCB1
cGRhdGUgdG8gdGhlIHJlbGV2YW50IHBhcmFncmFwaDo8L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+4oCcPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWls
eTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyBBZHZlcnRpc2VtZW50IG9mIGEgcHJlZmVyZW5jZSB2
YWx1ZSBpcyBvcHRpb25hbC4mbmJzcDsgTm9kZXMgd2hpY2ggZG8gbm90PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEw
LjBwdDtmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwO2FkdmVydGlzZSBhIHByZWZl
cmVuY2UgdmFsdWUgYXJlIGFzc2lnbmVkIGEgcHJlZmVyZW5jZSB2YWx1ZSBvZiAxMjguICZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOw0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtDb3Vy
aWVyIE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
ICZuYnNwOyZuYnNwOyZuYnNwOzxzcGFuIHN0eWxlPSJjb2xvcjpyZWQiPkEgcmVzb2x2aW5nIHJv
dXRlciBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3IgdGhlIGFkdmVydGlzZWQgdmFsdWUgYnkg
bG9jYWwgcG9saWN5Ljwvc3Bhbj48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90OyI+4oCcPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxiPjxpPjxzcGFuIHN0eWxlPSJj
b2xvcjojMUY0OTdEIj5bTGVzOl0gSW4gb3JkZXIgdG8gZ2V0IGNvbnNpc3RlbnQgY29uZmxpY3Qg
cmVzb2x1dGlvbiBvbiBhbGwgbm9kZXMgaW4gdGhlIG5ldHdvcmssIGl0IGlzIG5lY2Vzc2FyeSB0
aGF0IHRoZXkgYWxsIGhhdmUgdGhlIHNhbWUgZGF0YWJhc2Ug4oCTIHdoaWNoIGluY2x1ZGVzIHRo
ZSBwcmVmZXJlbmNlDQogdmFsdWUuIElmIHlvdSBhbGxvdyBsb2NhbCBwb2xpY3kgdG8gbW9kaWZ5
IHRoZSBwcmVmZXJlbmNlIHlvdSBubyBsb25nZXIgaGF2ZSBjb25zaXN0ZW50IGRhdGFiYXNlcyBv
biBhbGwgbm9kZXMgYW5kIHdlIGNhbiBubyBsb25nZXIgZ3VhcmFudGVlIGNvbnNpc3RlbnQgY29u
ZmxpY3QgcmVzb2x1dGlvbi4gU28geW91ciBwcm9wb3NhbCBpcyBub3QgdmlhYmxlIElNTy48L3Nw
YW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAy
NTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Mi48L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+SSBhbSB0cnlpbmcgdG8gdW5kZXJz
dGFuZCB0aGUgY29uY2VwdCBvZiBzb3J0aW5nIFNSTVMgZW50cmllcyB3aGljaCBoYXZlIGRpZmZl
cmVudCBwcmVmaXhlcyBhbmQgZGlmZmVyZW50IHJhbmdlIHNpemVzLiAmbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlz
dHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+U2luY2UgYSBTSUQgYWR2ZXJ0
aXNlZCBpbiBhIHByZWZpeCBTSUQgc3ViLVRMViB3aXRoaW4gYSBQcmVmaXggVExWIChJUy1JUyBJ
UCBSZWFjaCBUTFYgb3IgT1NQRiBFeHRlbmRlZCBQcmVmaXggVExWKSBoYXMgaGlnaGVyIHByaW9y
aXR5IG92ZXINCiBhIFNJRCBmb3IgdGhlIHNhbWUgcHJlZml4IGFkdmVydGlzZWQgZnJvbSBhIFNS
TVMsIHRoZW4geW91IGhhdmUgdG8gYWRkIHRvIHRoZSBiZWxvdyBzb3J0aW5nIGFuIGVudHJ5IGZv
ciBlYWNoIGluZGl2aWR1YWwgcHJlZml4IHdoaWNoIGFkdmVydGlzZWQgYSBwcmVmaXggU0lEIHN1
Yi1UTFYgd2l0aGluIGEgcHJlZml4IFRMVi4NCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7Ij5BdCB0aGlzIHBvaW50LCB0aGUgY29uY2VwdCBvZiBhbiBlbnRy
eSB3aXRoIG11bHRpcGxlIHByZWZpeGVzIGlzIG1vb3QgYW5kIHlvdSBtYXkgYXMgd2VsbCBqdXN0
IHNvcnQgb24gYSBwZXIgcHJlZml4IGJhc2lzIHdoaWNoIGlzIHRoZSBtb3N0DQogbmF0dXJhbCB0
aGluZyB0byBkbyBnaXZlbiB0aGF0IHRoZSBwcmVmaXggcmVzb2x1dGlvbiBhbmQgdGhlbiB0aGUg
U0lEIHJlc29sdXRpb24gYXJlIHBlcmZvcm1lZCBvbiBhIHBlciBwcmVmaXggYmFzaXMuIFNJRCBj
b25mbGljdHMgY2FuIGJlIHJlc29sdmVkIG9uIGEgcGVyIHByZWZpeCBiYXNpcyB1c2luZyB0aGUg
YmVsb3cgcHJvcG9zZWQgcHJlZmVyZW5jZSBhbGdvcml0aG0gd2l0aG91dCBoYXZpbmcgdG8gaWdu
b3JlIFNJRCB2YWx1ZXMgZm9yDQogdW5yZWxhdGVkIHByZWZpeGVzIGp1c3QgYmVjYXVzZSBpdCBo
YXBwZW5zIHRoYXQgdGhleSB3ZXJlIGFkdmVydGlzZWQgaW4gdGhlIHNhbWUgU1JNUyBlbnRyeS48
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvbGlzdHBhcmFncmFwaCI+PGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZu
YnNwOzwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xv
cjojMUY0OTdEIj5bTGVzOl0gVGhlIHNpbXBsZXIgcHJvcG9zYWwgZG9lcyBub3QgcmVxdWlyZSBz
b3J0aW5nIG9uIGFueXRoaW5nIG90aGVyIHRoYW4gcHJlZmVyZW5jZS4gQWZ0ZXIgdGhhdCwgeW91
IGNhbiBwcm9jZXNzIGVudHJpZXMgaW4gYW55IG9yZGVyIHlvdSB3YW50IGFuZCB5b3Ugd2lsbCBn
ZXQgdGhlIHNhbWUNCiBhbnN3ZXIuPC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PGI+PGk+
PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPldpdGgg4oCcSWdub3JlIE92ZXJsYXAgT25seeKA
nSBvbmUgb2YgdGhlIGlzc3VlcyB3aXRoIHRyeWluZyB0byB1c2UgdGhlIG5vbi1jb25mbGljdGlu
ZyBwb3J0aW9ucyBvZiBhIG1hcHBpbmcgZW50cnkgd2hpY2ggaGFzIGEgcmFuZ2UgJmd0OyAxIGlz
IHRoYXQgdGhlIG9yZGVyIGluIHdoaWNoIHlvdSBwcm9jZXNzDQogZW50cmllcyBpbmZsdWVuY2Vz
IHRoZSByZXN1bHQuIFBsZWFzZSBzZWUgc2xpZGVzIDE3IOKAkyAyMCBmcm9tIHRoZSBJRVRGOTcg
cHJlc2VudGF0aW9uOg0KPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcHJvY2VlZGluZ3Mv
OTcvc2xpZGVzL3NsaWRlcy05Ny1zcHJpbmctMV9pZXRmOTdfZHJhZnQtaWV0Zi1zcHJpbmctY29u
ZmxpY3QtcmVzb2x1dGlvbi0wMi0wMC5wcHR4IiB0YXJnZXQ9Il9ibGFuayI+DQpodHRwczovL3d3
dy5pZXRmLm9yZy9wcm9jZWVkaW5ncy85Ny9zbGlkZXMvc2xpZGVzLTk3LXNwcmluZy0xX2lldGY5
N19kcmFmdC1pZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uLTAyLTAwLnBwdHg8L2E+IGZv
ciBzb21lIHNpbXBsZSBleGFtcGxlcyBvZiB0aGlzLjwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3Jh
cGgiPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9pPjwv
Yj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29saXN0cGFyYWdyYXBoIj48Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7
Jm5ic3A7IExlczwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWls
LW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJjb2xv
cjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+
UmVnYXJkcyw8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPk11c3RhcGhhLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxl
ZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8
ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFk
ZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPkZyb206
PC9iPiBzcHJpbmcgWzxhIGhyZWY9Im1haWx0bzpzcHJpbmctYm91bmNlc0BpZXRmLm9yZyIgdGFy
Z2V0PSJfYmxhbmsiPm1haWx0bzpzcHJpbmctYm91bmNlc0BpZXRmLm9yZzwvYT5dDQo8Yj5PbiBC
ZWhhbGYgT2YgPC9iPkxlcyBHaW5zYmVyZyAoZ2luc2JlcmcpPGJyPg0KPGI+U2VudDo8L2I+IFN1
bmRheSwgRGVjZW1iZXIgMDQsIDIwMTYgNzowNCBQTTxicj4NCjxiPlRvOjwvYj4gPGEgaHJlZj0i
bWFpbHRvOnNwcmluZ0BpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnNwcmluZ0BpZXRmLm9yZzwv
YT48YnI+DQo8Yj5TdWJqZWN0OjwvYj4gW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246
IEEgU2ltcGxlciBQcm9wb3NhbDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5XaGVuIHRoZSBwcm9ibGVtIGFkZHJl
c3NlZCBieSBkcmFmdC1pZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uIHdhcyBmaXJzdA0K
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNv
cGxhaW50ZXh0Ij5wcmVzZW50ZWQgYXQgSUVURiA5NCwgdGhlIGF1dGhvcnMgZGVmaW5lZCB0aGUg
Zm9sbG93aW5nIHByaW9yaXRpZXM6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05
MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjEpRGV0ZWN0
IHRoZSBwcm9ibGVtPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4yKVJlcG9ydCB0aGUgcHJvYmxlbTxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+VGhp
cyBhbGVydHMgdGhlIG5ldHdvcmsgb3BlcmF0b3IgdG8gdGhlIGV4aXN0ZW5jZSBvZiBhIGNvbmZs
aWN0IHNvIHRoYXQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAy
NTM2MjI4ODZtc29wbGFpbnRleHQiPnRoZSBjb25maWd1cmF0aW9uIGVycm9yIGNhbiBiZSBjb3Jy
ZWN0ZWQuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvcGxhaW50ZXh0Ij4zKURlZmluZSBjb25zaXN0ZW50IGJlaGF2aW9yPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5U
aGlzIGF2b2lkcyBtaXMtZm9yd2FyZGluZyB3aGlsZSB0aGUgY29uZmxpY3QgZXhpc3RzLjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWlu
dGV4dCI+NClEb27igJl0IG92ZXJlbmdpbmVlciB0aGUgc29sdXRpb248bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkdpdmVu
IHRoYXQgaXQgaXMgaW1wb3NzaWJsZSB0byBrbm93IHdoaWNoIG9mIHRoZSBjb25mbGljdGluZyBl
bnRyaWVzPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvcGxhaW50ZXh0Ij5pcyB0aGUgY29ycmVjdCBvbmUsIHdlIHNob3VsZCBhcHBseSBhIHNp
bXBsZSBhbGdvcml0aG0gdG8gcmVzb2x2ZSB0aGUgY29uZmxpY3QuPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij41KUFncmVl
IG9uIHRoZSByZXNvbHV0aW9uIGJlaGF2aW9yPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPlRo
ZSByZXNvbHV0aW9uIGJlaGF2aW9yIHdhcyBkZWxpYmVyYXRlbHkgdGhlIGxhc3QgcG9pbnQgYmVj
YXVzZSBpdCB3YXMNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Y29uc2lkZXJlZCB0aGUgbGVhc3QgaW1wb3J0YW50Ljxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3Bs
YWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5JbnB1dCB3YXMgcmVjZWl2ZWQgb3ZlciB0aGUgcGFz
dCB5ZWFyIHdoaWNoIGVtcGhhc2l6ZWQgdGhlIGltcG9ydGFuY2Ugb2Y8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPnRyeWlu
ZyB0byAmcXVvdDttYXhpbWl6ZSBmb3J3YXJkaW5nJnF1b3Q7IGluIHRoZSBwcmVzZW5jZSBvZiBj
b25mbGljdHMuIFN1YnNlcXVlbnQ8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPnJldmlzaW9ucyBvZiB0aGUgZHJhZnQgaGF2
ZSB0cmllZCB0byBhZGRyZXNzIHRoaXMgY29uY2Vybi4gSG93ZXZlciB0aGUgYXV0aG9ycw0KPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij5oYXZlIHJlcGVhdGVkbHkgc3RyZXNzZWQgdGhhdCB0aGUgc29sdXRpb24gYmVpbmcg
cHJvcG9zZWQNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb3BsYWludGV4dCI+KCZxdW90O2lnbm9yZSBvdmVybGFwIG9ubHkmcXVvdDspIHdh
cyBtb3JlIGNvbXBsZXggdGhhbiBvdGhlciBvZmZlcmVkIGFsdGVybmF0aXZlcyBhbmQNCjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWlu
dGV4dCI+d291bGQgYmUgbW9yZSBkaWZmaWN1bHQgdG8gZ3VhcmFudGVlIGludGVyb3BlcmFiaWxp
dHkgYmVjYXVzZSBzdWJ0bGUNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+ZGlmZmVyZW5jZXMgaW4gYW4gaW1wbGVtZW50
YXRpb24gY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgcmVzdWx0cy48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3Bs
YWludGV4dCI+QXQgSUVURjk3IHNpZ25pZmljYW50IGZlZWRiYWNrIHdhcyByZWNlaXZlZCBwcmVm
ZXJyaW5nIGEgc2ltcGxlciBzb2x1dGlvbiB0bw0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij50aGUgcHJvYmxlbS4gVGhl
IGF1dGhvcnMgYXJlIHZlcnkgc3ltcGF0aGV0aWMgdG8gdGhpcyBmZWVkYmFjayBhbmQgdGhlcmVm
b3JlDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPmFyZSBwcm9wb3NpbmcgYSBzb2x1dGlvbiBiYXNlZCBvbiB3aGF0IHRo
ZSBkcmFmdCBkZWZpbmVzIGFzIHRoZSAmcXVvdDtJZ25vcmUmcXVvdDsNCjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+cG9s
aWN5IC0gd2hlcmUgYWxsIGVudHJpZXMgd2hpY2ggYXJlIGluIGNvbmZsaWN0IGFyZSBpZ25vcmVk
LiBXZSBiZWxpZXZlIHRoaXMNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+aXMgZmFyIG1vcmUgZGVzaXJhYmxlIGFuZCBh
bGlnbnMgd2l0aCB0aGUgcHJpb3JpdGllcyBsaXN0ZWQgYWJvdmUuPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPldlIG91dGxpbmUgdGhlIHByb3Bvc2VkIHNvbHV0aW9uIGJlbG93IGFuZCB3b3Vs
ZCBsaWtlIHRvIHJlY2VpdmUgZmVlZGJhY2sgZnJvbQ0KPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij50aGUgV0cgYmVmb3Jl
IHB1Ymxpc2hpbmcgdGhlIG5leHQgcmV2aXNpb24gb2YgdGhlIGRyYWZ0LjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5i
c3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvcGxhaW50ZXh0Ij4mbmJzcDsmbmJzcDsgTGVzIChvbiBiZWhhbGYgb2YgdGhlIGF1dGhvcnMp
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNv
cGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxpPk5ldyBQcm9wb3NhbDwvaT48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQi
PjxpPiZuYnNwOzwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxpPkluIHRoZSBsYXRlc3QgcmV2aXNpb24gb2YgdGhl
IGRyYWZ0ICZxdW90O1NSTVMgUHJlZmVyZW5jZSZxdW90OyB3YXMgaW50cm9kdWNlZC4gVGhpcw0K
PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4
Nm1zb3BsYWludGV4dCI+PGk+cHJvdmlkZXMgYSB3YXkgZm9yIGEgbnVtZXJpY2FsIHByZWZlcmVu
Y2UgdG8gYmUgZXhwbGljaXRseSBhc3NvY2lhdGVkIHdpdGggYW4NCjwvaT48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxp
PlNSTVMgYWR2ZXJ0aXNlbWVudC4gVXNpbmcgdGhpcyBhbiBvcGVyYXRvciBjYW4gaW5kaWNhdGUg
d2hpY2ggYWR2ZXJ0aXNlbWVudCBpcw0KPC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Imdt
YWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+dG8gYmUgcHJlZmVycmVk
IHdoZW4gYSBjb25mbGljdCBpcyBwcmVzZW50LiBUaGUgYXV0aG9ycyB0aGluayB0aGlzIGlzIGEg
dXNlZnVsDQo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48aT5hZGRpdGlvbiBhbmQgd2UgdGhlcmVmb3JlIHdhbnQg
dG8gaW5jbHVkZSB0aGlzIGluIHRoZSBuZXcgc29sdXRpb24uPC9pPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+Jm5i
c3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb3BsYWludGV4dCI+PGk+VGhlIG5ldyBwcmVmZXJlbmNlIHJ1bGUgdXNlZCB0byByZXNv
bHZlIGNvbmZsaWN0cyBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6PC9pPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+Jm5i
c3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+QSBnaXZlbiBtYXBwaW5nIGVudHJ5IGlzIGNvbXBhcmVk
IGFnYWluc3QgYWxsIG1hcHBpbmcgZW50cmllcyBpbiB0aGUgZGF0YWJhc2UNCjwvaT48L2I+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij48Yj48aT53aXRoIGEgcHJlZmVyZW5jZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8g
aXRzIG93bi4gSWYgdGhlcmUgaXMgYSBjb25mbGljdCwNCjwvaT48L2I+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48Yj48
aT50aGUgbWFwcGluZyBlbnRyeSB3aXRoIGxvd2VyIHByZWZlcmVuY2UgaXMgaWdub3JlZC4gSWYg
dHdvIG1hcHBpbmcgZW50cmllcyBhcmU8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+aW4gY29uZmxp
Y3QgYW5kIGhhdmUgZXF1YWwgcHJlZmVyZW5jZSB0aGVuIGJvdGggZW50cmllcyBhcmUgaWdub3Jl
ZC48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+Jm5ic3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+SW1wbGVtZW50
YXRpb24gb2YgdGhpcyBwb2xpY3kgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvaT48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQi
PjxpPiZuYnNwOzwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxiPjxpPlN0ZXAgMTogV2l0aGluIGEgc2luZ2xlIGFk
ZHJlc3MtZmFtaWx5L2FsZ29yaXRobS90b3BvbG9neSBzb3J0IGVudHJpZXMNCjwvaT48L2I+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij48Yj48aT5iYXNlZCBvbiBwcmVmZXJlbmNlIDwvaT4NCjwvYj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxi
PjxpPlN0ZXAgMjogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHByZWZlcmVuY2UgZW50cmllcywg
cmVzb2x2ZSBwcmVmaXggY29uZmxpY3RzDQo8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+dXNpbmcg
dGhlIGFib3ZlIHByZWZlcmVuY2UgcnVsZS4gVGhlIG91dHB1dCBpcyBhbiBhY3RpdmUgcG9saWN5
IHBlciB0b3BvbG9neS48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+U3RlcCAzOiBUYWtlIHRoZSBv
dXRwdXRzIGZyb20gU3RlcCAyIGFuZCBhZ2FpbiBzb3J0IHRoZW0gYnkgcHJlZmVyZW5jZQ0KPC9p
PjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPjxiPjxpPlN0ZXAgNDogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHBy
ZWZlcmVuY2UgZW50cmllcywgcmVzb2x2ZSBTSUQgY29uZmxpY3RzDQo8L2k+PC9iPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4
dCI+PGI+PGk+dXNpbmcgdGhlIGFib3ZlIHByZWZlcmVuY2UgcnVsZTwvaT48L2I+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0
Ij48Yj48aT4mbmJzcDs8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+VGhlIG91dHB1dCBmcm9tIFN0
ZXAgNCBpcyB0aGVuIHRoZSBjdXJyZW50IEFjdGl2ZSBQb2xpY3kuPC9pPjwvYj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQi
PiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb3BsYWludGV4dCI+SGVyZSBhcmUgYSBmZXcgZXhhbXBsZXMuIEVhY2ggbWFwcGluZyBl
bnRyeSBpcyByZXByZXNlbnRlZCBieSB0aGUgdHVwbGU6PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4oUHJlZmVyZW5jZSwg
UHJlZml4L21hc2sgSW5kZXggcmFuZ2UgJmx0OyMmZ3Q7KTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50
ZXh0Ij5FeGFtcGxlIDE6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjEuICgxNTAsIDxhIGhy
ZWY9Imh0dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4xLzMyPC9hPiAx
MDAgcmFuZ2UgMTAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Mi4gKDE0OSwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEw
LzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4xMC8zMjwvYT4gMjAwIHJhbmdlIDIwMCk8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFp
bnRleHQiPjMuICgxNDgsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMDEvMzIiIHRhcmdldD0iX2Js
YW5rIj4NCjEuMS4xLjEwMS8zMjwvYT4gNTAwIHJhbmdlIDEwKTxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij5FbnRyeSAzIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIsIGl0IGlzIGlnbm9yZWQuPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij5FbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDEsIGl0IGlzIGlnbm9yZWQuPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij5BY3RpdmUgcG9saWN5OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4oMTUwLCA8
YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMS8zMjwv
YT4gMTAwIHJhbmdlIDEwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+RXhhbXBsZSAyOjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3Bs
YWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4xLiAoMTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEu
MS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMS8zMjwvYT4gMTAwIHJhbmdlIDEwMCk8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFp
bnRleHQiPjIuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMC8zMiIgdGFyZ2V0PSJfYmxh
bmsiPg0KMS4xLjEuMTAvMzI8L2E+IDIwMCByYW5nZSAyMDApPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4zLiAoMTUwLCA8
YSBocmVmPSJodHRwOi8vMS4xLjEuMTAxLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4xMDEv
MzI8L2E+IDUwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjQuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8y
LjIuMi4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoyLjIuMi4xLzMyPC9hPiAxMDAwIHJhbmdlIDEp
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNv
cGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVudHJ5IDEgY29uZmxpY3RzIHdpdGggZW50cnkg
MiwgYm90aCBhcmUgbWFya2VkIGFzIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVudHJ5IDMgY29uZmxpY3Rz
IHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGFzIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVudHJ5IDQg
aGFzIG5vIGNvbmZsaWN0cyB3aXRoIGFueSBlbnRyaWVzPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRl
eHQiPkFjdGl2ZSBwb2xpY3k6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4oMTUwLCA8YSBocmVmPSJodHRwOi8vMi4yLjIu
MS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMi4yLjIuMS8zMjwvYT4gMTAwMCByYW5nZSAxKTxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWlu
dGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5FeGFtcGxlIDM6PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRl
eHQiPjEuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+
DQoxLjEuMS4xLzMyPC9hPiAxMDAgcmFuZ2UgNTAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Mi4gKDE1MCwgPGEgaHJl
Zj0iaHR0cDovLzEuMS4xLjEwLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4xMC8zMjwvYT4g
MjAwIHJhbmdlIDIwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjMuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4x
MDEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEwMS8zMjwvYT4gNTAwIHJhbmdlIDEwKTxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3Bs
YWludGV4dCI+NC4gKDE1MCwgPGEgaHJlZj0iaHR0cDovLzIuMi4yLjEvMzIiIHRhcmdldD0iX2Js
YW5rIj4NCjIuMi4yLjEvMzI8L2E+IDEwMDAgcmFuZ2UgMSk8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWlu
dGV4dCI+RW50cnkgMSBjb25mbGljdHMgd2l0aCBlbnRyaWVzIDIsIDMsIGFuZCZuYnNwOyA0LiBB
bGwgZW50cmllcyBhcmUgbWFya2VkIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+
QWN0aXZlIHBvbGljeTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVtcHR5PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQi
PkV4YW1wbGUgNDo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAy
NTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Imdt
YWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+MS4gKDE1MCwgPGEgaHJlZj0i
aHR0cDovLzEuMS4xLjEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEvMzI8L2E+IDEwMCBy
YW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQiPjIuICgxNDksIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMC8zMiIg
dGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMTAvMzI8L2E+IDIwMCByYW5nZSAzMDApPG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0
Ij4zLiAoMTQ5LCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMTAxLzMyIiB0YXJnZXQ9Il9ibGFuayI+
DQoxLjEuMS4xMDEvMzI8L2E+IDUwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjQuICgxNDgsIDxhIGhy
ZWY9Imh0dHA6Ly8yLjIuMi4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoyLjIuMi4xLzMyPC9hPiAx
MDAwIHJhbmdlIDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVudHJ5IDQgY29uZmxpY3Rz
IHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVudHJ5IDIgY29u
ZmxpY3RzIHdpdGggZW50cnkgMy4gRW50cmllcyAyIGFuZCAzIGFyZSBtYXJrZWQgaWdub3JlLjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3Bs
YWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5BY3RpdmUgcG9saWN5OjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+KDE1MCwg
PGEgaHJlZj0iaHR0cDovLzEuMS4xLjEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEvMzI8
L2E+IDEwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9ImdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50
ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tLTkwNzIxODkxMzAy
NTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PGJyPg0KX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+DQpzcHJpbmcgbWFp
bGluZyBsaXN0PGJyPg0KPGEgaHJlZj0ibWFpbHRvOnNwcmluZ0BpZXRmLm9yZyI+c3ByaW5nQGll
dGYub3JnPC9hPjxicj4NCjxhIGhyZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlz
dGluZm8vc3ByaW5nIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1h
bi9saXN0aW5mby9zcHJpbmc8L2E+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_ae35b4f22e7744f9a424a8ad02c12a2bXCHALN001ciscocom_--


From nobody Thu Dec 22 14:29:29 2016
Return-Path: <rraszuk@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 462521298A4 for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 14:29:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.596
X-Spam-Level: 
X-Spam-Status: No, score=-2.596 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zLVp4n7AGeoB for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 14:29:24 -0800 (PST)
Received: from mail-qt0-x236.google.com (mail-qt0-x236.google.com [IPv6:2607:f8b0:400d:c0d::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DA6F01298B2 for <spring@ietf.org>; Thu, 22 Dec 2016 14:29:17 -0800 (PST)
Received: by mail-qt0-x236.google.com with SMTP id k15so7805412qtg.3 for <spring@ietf.org>; Thu, 22 Dec 2016 14:29:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=byIVdFGWklfwnzng4hXkpQBhFY59O5/cF/OzEj2tcjY=; b=pZ7yfAEfelQ/oA5QT450UuqxooQn8hat3/iCQCEYk/OMbqA9uBKOJTP7wPL0RTWmG9 2XBosySXdoZTSSAZBR1mKam470D5xsUS3F386OmecN2uBYzT9V3rOCodgR6MuZQfn+tH 1N8cyAF9KSRSmjhmRM3Xt8VusNt9VdFgrICZj5krRTRyvyRDzJgWoOfFedE+xobAqRAJ v6G/5/e0qjJbWcp7pZiXsgSJadRaDHasIxvOVx6jH/OkVWlqQCgAzFiRXSG387J6q4B0 qhlGxwYnh9t0blbnt3Cm3jLwU59PoRCbcCJ27PbJsyI3DsiU5i4i1wXUKS93H0IYFtXL GcDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=byIVdFGWklfwnzng4hXkpQBhFY59O5/cF/OzEj2tcjY=; b=HyL00fUXYuaJcw/l7lITxkimi0n97qmB290Rnb4EFoDe3jht12MfvBl7OjnLIWh1TT pz+adI/10u8/OmH3GZZZIt4zCcov4bu1nwIbs0JqnKoyIAzTMoXm+ZXjz4ZwOTv8TRJK Z87IKGAe3YyMe3m/M+9CY/LfWEu4Z/ajD4XaYMzUanOtTw0EbQm0tY3QO2N+z2s/eQc1 msUfwOvuGJWK+c9X5IpZPpR3mKkiGbLBJ9KkudCY3RlubbDRc9me7oqfVeEI0rEyhWRx /MQ1UgqjdlQrGScrBeW0UDJf4s0V5BxL8+EM/u3nZebJvVUM8q++W6YrQuroZ2RolVOp YtRA==
X-Gm-Message-State: AIkVDXLrIagEiglcHNUJajmwi0KKVJvr/9W/lqnpzSPuwHVOGd/sntZY3ldyH1oYzdPtytX4NsNq5C/tMNy+Yw==
X-Received: by 10.200.40.27 with SMTP id 27mr11733710qtq.281.1482445756845; Thu, 22 Dec 2016 14:29:16 -0800 (PST)
MIME-Version: 1.0
Sender: rraszuk@gmail.com
Received: by 10.140.16.50 with HTTP; Thu, 22 Dec 2016 14:29:15 -0800 (PST)
In-Reply-To: <ae35b4f22e7744f9a424a8ad02c12a2b@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com> <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com> <CA+b+ERnhaUTJ45FwMvMf3V8xhqRKfpGE_9h8MgmOqBejvscAaA@mail.gmail.com> <ae35b4f22e7744f9a424a8ad02c12a2b@XCH-ALN-001.cisco.com>
From: Robert Raszuk <robert@raszuk.net>
Date: Thu, 22 Dec 2016 23:29:15 +0100
X-Google-Sender-Auth: 8euQnworgdU71rTcwUjXY5q4sO0
Message-ID: <CA+b+ERke08DVHyrZ_=tMpiOgedzydsR8VktHAKfzzQDYkAOArQ@mail.gmail.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Content-Type: multipart/alternative; boundary=001a11407210bc550d054446cc5a
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/f8Si5HsJr5LARuDjJug-ZbgLCPI>
Cc: "spring@ietf.org" <spring@ietf.org>, "Aissaoui, Mustapha \(Nokia - CA\)" <mustapha.aissaoui@nokia.com>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 22:29:27 -0000

--001a11407210bc550d054446cc5a
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Les,

After mental reset I conclude that perhaps even the introduction of the
draft is questionable as in real life it applies to be quite an unrealistic
scenario to have a situation where more then one protocol is used *in the
same time* as active in forwarding for an exact same IP prefix.

Last time I checked SIDs are meaningless without a prefix they are attached
to and it is a prefix they accompany to indicate which SID should be used
on a given node.

Therefor if you consider that today most implementations pretty well can
handle overlapping prefixes from multiple sources what real problem is this
draft solving ?

Are you trying to create a forwarding graph by SIDs only detaching them
from IP prefixes all together ?

Cheers,
R.


On Thu, Dec 22, 2016 at 10:32 PM, Les Ginsberg (ginsberg) <
ginsberg@cisco.com> wrote:

> Robert =E2=80=93
>
>
>
> You have a complete misunderstanding of roles here.
>
>
>
> How the owner of a route may be represented in the RIB isn=E2=80=99t impa=
cted by
> SRMS or conflict resolution. Nor is the determination of which route is t=
he
> best route. We are only determining whether to use or not use a SID which
> was associated with the prefix by some advertisement.
>
>
>
> The Introduction to the draft states:
>
>
>
> =E2=80=9CThe problem to be addressed is protocol independent i.e., segmen=
t
>
>    related advertisements may be originated by multiple nodes using
>
>    different protocols and yet the conflict resolution MUST be the same
>
>    on all nodes regardless of the protocol used to transport the
>
>    advertisements.=E2=80=9D
>
>
>
> Please do a mental reset. J
>
>
>
>    Les
>
>
>
>
>
> *From:* rraszuk@gmail.com [mailto:rraszuk@gmail.com] *On Behalf Of *Rober=
t
> Raszuk
> *Sent:* Thursday, December 22, 2016 11:52 AM
> *To:* Les Ginsberg (ginsberg)
> *Cc:* Aissaoui, Mustapha (Nokia - CA); spring@ietf.org
>
> *Subject:* Re: [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> Hi Les,
>
>
>
> On #1 I am also with Mustapha here. For clarity of this discussion can yo=
u
> enumerate when from RIB to FIB/LFIB you are installing the exact same
> active prefix from more then one producer ? Is SRMS sort of zombie here a=
nd
> not treated as real route producer hence we have an issue ? And the issue
> is only with conflicts of SRMS + real route producer ?
>
>
>
> On #3 you said that *"with redistribution/route leaking the source of an
> advertisement may appear to be different on different routers"* that is
> very true. In fact with simple static route or static label configured on=
 a
> router the RIB and FIB on that router will be different then RIB and FIB =
on
> the other routers without such static route. And the point is that such
> static route or label is there for a reason you may not know about. So
> struggling for data plane consistency =E2=80=8Bdeliberately excluding sou=
rce when
> operational needs require otherwise is not really that much helpful I am
> afraid.
>
>
>
> Greetings,
>
> Robert.
>
>
>
>
>
> On Thu, Dec 22, 2016 at 8:37 PM, Les Ginsberg (ginsberg) <
> ginsberg@cisco.com> wrote:
>
> Mustapha -
>
>
>
> *From:* spring [mailto:spring-bounces@ietf.org] *On Behalf Of *Aissaoui,
> Mustapha (Nokia - CA)
> *Sent:* Thursday, December 22, 2016 8:10 AM
> *To:* Les Ginsberg (ginsberg); spring@ietf.org
> *Subject:* Re: [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> Hi Les,
>
> I read slides 17-21 of the document you referenced below and I have the
> following comments:
>
>
>
> 1.     Page 17, =E2=80=9COrder Matters - Prefix vs SID Conflict=E2=80=9D.
>
> When you perform resolution on  a per prefix basis, prefix conflicts are
> naturally processed first followed by SID conflicts across different
> prefixes. So the ordering issue described is only specific if you decided
> to resolve conflicting SID entries outside of the natural prefix resoluti=
on
> by a router.
>
>
>
> *[Les:] What may seem =E2=80=9Cnatural=E2=80=9D to you might not to someo=
ne else. I don=E2=80=99t
> care to debate that point. What is being illustrated here is that in orde=
r
> to provide a normative specification that =E2=80=93 if followed =E2=80=93=
 guarantees
> interoperability we have to specify the order in which conflicts are
> processed otherwise different results may be obtained.*
>
>
>
> 2.     Page 18, =E2=80=9COrder Matters: Derived vs non-derived=E2=80=93 p=
refix conflict=E2=80=9D.
>
> It seems to me this issue is an artifact of the specific algorithm used t=
o
> resolve conflicts. Because the algorithm uses parameters such as =E2=80=
=9CRange
> (start w smallest)=E2=80=9D then obviously derived SRMS entries will lend=
 a
> different result than original SRMS entries.
>
> With the pre-prefix resolution, the only information kept from the
> original SRMS entry is the preference and the advertising or owner router=
.
> Anything else is not used. It seems to me a simple algorithm based on
> preference first then followed by some rule on selecting the advertising
> router if conflicts exist within the same preference would work.
>
>
>
> *[Les:] You have implemented things in a certain way. Someone else might
> choose to implement in a different way. A normative specification does no=
t
> (and should not) constrain an implementation. What is being illustrated
> here is that if the implementation does not retain the underived entry (i=
n
> whatever internal form it chooses) different results will be obtained
> because the preference algorithm depends on comparing the underived range=
s.*
>
>
>
> 3.     Finally, there is something which has not been addressed in the
> slides. There is still a possibility of conflicting entries among SIDs
> advertised using the prefix SID sub-TLV within a Prefix TLV (IS-IS IP Rea=
ch
> TLV or OSPF Extended Prefix TLV). A simple rule selecting the advertising
> router should also work fine here.
>
>
>
> *[Les:] No =E2=80=93 source of an advertisement has been quite *
>
> *=E2=80=8B=E2=80=8B*
>
> *deliberately excluded from the preference algorithm. With
> redistribution/route leaking the source of an advertisement may appear to
> be different on different routers- this would result in different results
> on different routers.*
>
>
>
> *   Les*
>
>
>
> Regards,
>
> Mustapha.
>
>
>
> *From:* Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com
> <ginsberg@cisco.com>]
> *Sent:* Friday, December 09, 2016 1:49 PM
> *To:* Aissaoui, Mustapha (Nokia - CA) <mustapha.aissaoui@nokia.com>;
> spring@ietf.org
> *Subject:* RE: SID Conflict Resolution: A Simpler Proposal
>
>
>
> Mustapha -
>
>
>
> *From:* Aissaoui, Mustapha (Nokia - CA) [mailto:mustapha.aissaoui@
> nokia.com <mustapha.aissaoui@nokia.com>]
> *Sent:* Friday, December 09, 2016 7:44 AM
> *To:* Les Ginsberg (ginsberg); spring@ietf.org
> *Subject:* RE: SID Conflict Resolution: A Simpler Proposal
>
>
>
> I have a couple of comments on the below proposal.
>
>
>
> 1.     Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft.
> In many cases, a configuration on the resolving router can assign a
> preference to each SRMS in case there is no advertisement of this sub-TLV
> or to override an advertised value. I propose that this option be allowed=
.
> Here is a proposed update to the relevant paragraph:
>
> =E2=80=9C
>
>            Advertisement of a preference value is optional.  Nodes which
> do not
>
>           advertise a preference value are assigned a preference value of
> 128.
>
>            A resolving router can override the default or the advertised
> value by local policy.
>
> =E2=80=9C
>
> *[Les:] In order to get consistent conflict resolution on all nodes in th=
e
> network, it is necessary that they all have the same database =E2=80=93 w=
hich
> includes the preference value. If you allow local policy to modify the
> preference you no longer have consistent databases on all nodes and we ca=
n
> no longer guarantee consistent conflict resolution. So your proposal is n=
ot
> viable IMO.*
>
>
>
> 2.     I am trying to understand the concept of sorting SRMS entries
> which have different prefixes and different range sizes.
>
> Since a SID advertised in a prefix SID sub-TLV within a Prefix TLV (IS-IS
> IP Reach TLV or OSPF Extended Prefix TLV) has higher priority over a SID
> for the same prefix advertised from a SRMS, then you have to add to the
> below sorting an entry for each individual prefix which advertised a pref=
ix
> SID sub-TLV within a prefix TLV.
>
> At this point, the concept of an entry with multiple prefixes is moot and
> you may as well just sort on a per prefix basis which is the most natural
> thing to do given that the prefix resolution and then the SID resolution
> are performed on a per prefix basis. SID conflicts can be resolved on a p=
er
> prefix basis using the below proposed preference algorithm without having
> to ignore SID values for unrelated prefixes just because it happens that
> they were advertised in the same SRMS entry.
>
>
>
> *[Les:] The simpler proposal does not require sorting on anything other
> than preference. After that, you can process entries in any order you wan=
t
> and you will get the same answer.*
>
> *With =E2=80=9CIgnore Overlap Only=E2=80=9D one of the issues with trying=
 to use the
> non-conflicting portions of a mapping entry which has a range > 1 is that
> the order in which you process entries influences the result. Please see
> slides 17 =E2=80=93 20 from the IETF97 presentation:
> https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_draf=
t-ietf-spring-conflict-resolution-02-00.pptx
> <https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_dra=
ft-ietf-spring-conflict-resolution-02-00.pptx>
> for some simple examples of this.*
>
>
>
> *   Les*
>
>
>
>
>
> Regards,
>
> Mustapha.
>
>
>
> *From:* spring [mailto:spring-bounces@ietf.org <spring-bounces@ietf.org>]=
 *On
> Behalf Of *Les Ginsberg (ginsberg)
> *Sent:* Sunday, December 04, 2016 7:04 PM
> *To:* spring@ietf.org
> *Subject:* [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> When the problem addressed by draft-ietf-spring-conflict-resolution was
> first
>
> presented at IETF 94, the authors defined the following priorities:
>
>
>
> 1)Detect the problem
>
> 2)Report the problem
>
> This alerts the network operator to the existence of a conflict so that
>
> the configuration error can be corrected.
>
> 3)Define consistent behavior
>
> This avoids mis-forwarding while the conflict exists.
>
> 4)Don=E2=80=99t overengineer the solution
>
> Given that it is impossible to know which of the conflicting entries
>
> is the correct one, we should apply a simple algorithm to resolve the
> conflict.
>
> 5)Agree on the resolution behavior
>
>
>
> The resolution behavior was deliberately the last point because it was
>
> considered the least important.
>
>
>
> Input was received over the past year which emphasized the importance of
>
> trying to "maximize forwarding" in the presence of conflicts. Subsequent
>
> revisions of the draft have tried to address this concern. However the
> authors
>
> have repeatedly stressed that the solution being proposed
>
> ("ignore overlap only") was more complex than other offered alternatives
> and
>
> would be more difficult to guarantee interoperability because subtle
>
> differences in an implementation could produce different results.
>
>
>
> At IETF97 significant feedback was received preferring a simpler solution
> to
>
> the problem. The authors are very sympathetic to this feedback and
> therefore
>
> are proposing a solution based on what the draft defines as the "Ignore"
>
> policy - where all entries which are in conflict are ignored. We believe
> this
>
> is far more desirable and aligns with the priorities listed above.
>
>
>
> We outline the proposed solution below and would like to receive feedback
> from
>
> the WG before publishing the next revision of the draft.
>
>
>
>    Les (on behalf of the authors)
>
>
>
> *New Proposal*
>
>
>
> *In the latest revision of the draft "SRMS Preference" was introduced.
> This *
>
> *provides a way for a numerical preference to be explicitly associated
> with an *
>
> *SRMS advertisement. Using this an operator can indicate which
> advertisement is *
>
> *to be preferred when a conflict is present. The authors think this is a
> useful *
>
> *addition and we therefore want to include this in the new solution.*
>
>
>
> *The new preference rule used to resolve conflicts is defined as follows:=
*
>
>
>
> *A given mapping entry is compared against all mapping entries in the
> database *
>
> *with a preference greater than or equal to its own. If there is a
> conflict, *
>
> *the mapping entry with lower preference is ignored. If two mapping
> entries are*
>
> *in conflict and have equal preference then both entries are ignored.*
>
>
>
> *Implementation of this policy is defined as follows:*
>
>
>
> *Step 1: Within a single address-family/algorithm/topology sort entries *
>
> *based on preference *
>
> *Step 2: Starting with the lowest preference entries, resolve prefix
> conflicts *
>
> *using the above preference rule. The output is an active policy per
> topology.*
>
> *Step 3: Take the outputs from Step 2 and again sort them by preference *
>
> *Step 4: Starting with the lowest preference entries, resolve SID
> conflicts *
>
> *using the above preference rule*
>
>
>
> *The output from Step 4 is then the current Active Policy.*
>
>
>
> Here are a few examples. Each mapping entry is represented by the tuple:
>
> (Preference, Prefix/mask Index range <#>)
>
>
>
> Example 1:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 100)
>
> 2. (149, 1.1.1.10/32 200 range 200)
>
> 3. (148, 1.1.1.101/32 500 range 10)
>
>
>
> Entry 3 conflicts with entry 2, it is ignored.
>
> Entry 2 conflicts with entry 1, it is ignored.
>
> Active policy:
>
>
>
> (150, 1.1.1.1/32 100 range 100)
>
>
>
> Example 2:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 100)
>
> 2. (150, 1.1.1.10/32 200 range 200)
>
> 3. (150, 1.1.1.101/32 500 range 10)
>
> 4. (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 1 conflicts with entry 2, both are marked as ignore.
>
> Entry 3 conflicts with entry 2. It is marked as ignore.
>
> Entry 4 has no conflicts with any entries
>
>
>
> Active policy:
>
> (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Example 3:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 500)
>
> 2. (150, 1.1.1.10/32 200 range 200)
>
> 3. (150, 1.1.1.101/32 500 range 10)
>
> 4. (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignor=
e.
>
>
>
> Active policy:
>
> Empty
>
>
>
> Example 4:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 10)
>
> 2. (149, 1.1.1.10/32 200 range 300)
>
> 3. (149, 1.1.1.101/32 500 range 10)
>
> 4. (148, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 4 conflicts with entry 2. It is marked ignore.
>
> Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.
>
>
>
> Active policy:
>
> (150, 1.1.1.1/32 100 range 10)
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring
>
>
>

--001a11407210bc550d054446cc5a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small">Les,</div><div class=3D"gmail_default" =
style=3D"font-family:arial,helvetica,sans-serif;font-size:small"><br></div>=
<div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-seri=
f;font-size:small">After mental reset I conclude that perhaps even the intr=
oduction of the draft is questionable as in real life it applies to be quit=
e an unrealistic scenario to have a situation where more then one protocol =
is used *in the same time* as active in forwarding for an exact same IP pre=
fix.=C2=A0</div><div class=3D"gmail_default" style=3D"font-family:arial,hel=
vetica,sans-serif;font-size:small"><br></div><div class=3D"gmail_default" s=
tyle=3D"font-family:arial,helvetica,sans-serif;font-size:small">Last time I=
 checked SIDs are meaningless without a prefix they are attached to and it =
is a prefix they accompany to indicate which SID should be used on a given =
node.=C2=A0</div><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small"><br></div><div class=3D"gmail_default" =
style=3D"font-family:arial,helvetica,sans-serif;font-size:small">Therefor i=
f you consider that today most implementations pretty well can handle overl=
apping prefixes from multiple sources what real problem is this draft solvi=
ng ?=C2=A0</div><div class=3D"gmail_default" style=3D"font-family:arial,hel=
vetica,sans-serif;font-size:small"><br></div><div class=3D"gmail_default" s=
tyle=3D"font-family:arial,helvetica,sans-serif;font-size:small">Are you try=
ing to create a forwarding graph by SIDs only detaching them from IP prefix=
es all together ?</div><div class=3D"gmail_default" style=3D"font-family:ar=
ial,helvetica,sans-serif;font-size:small"><br></div><div class=3D"gmail_def=
ault" style=3D"font-family:arial,helvetica,sans-serif;font-size:small">Chee=
rs,<br>R.</div><div class=3D"gmail_default" style=3D"font-family:arial,helv=
etica,sans-serif;font-size:small"><br></div></div><div class=3D"gmail_extra=
"><br><div class=3D"gmail_quote">On Thu, Dec 22, 2016 at 10:32 PM, Les Gins=
berg (ginsberg) <span dir=3D"ltr">&lt;<a href=3D"mailto:ginsberg@cisco.com"=
 target=3D"_blank">ginsberg@cisco.com</a>&gt;</span> wrote:<br><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid=
;padding-left:1ex">





<div lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"m_6901297352370746265WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">Robert =E2=80=93<u></u><u=
></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">You have a complete misun=
derstanding of roles here.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">How the owner of a route =
may be represented in the RIB isn=E2=80=99t impacted by SRMS or conflict re=
solution. Nor is the determination of which route is the best route.
 We are only determining whether to use or not use a SID which was associat=
ed with the prefix by some advertisement.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">The Introduction to the d=
raft states:<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=E2=80=9CThe problem to b=
e addressed is protocol independent i.e., segment<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0=C2=A0 related adve=
rtisements may be originated by multiple nodes using<u></u><u></u></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0=C2=A0 different pr=
otocols and yet the conflict resolution MUST be the same<u></u><u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0=C2=A0 on all nodes=
 regardless of the protocol used to transport the<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0=C2=A0 advertisemen=
ts.=E2=80=9D<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">Please do a mental reset.
</span><span style=3D"font-size:11.0pt;font-family:Wingdings;color:#1f497d"=
>J</span><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,&q=
uot;sans-serif&quot;;color:#1f497d"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0=C2=A0 Les<u></u><u=
></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1f497d"><u></u>=C2=A0<u></u></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> <a href=
=3D"mailto:rraszuk@gmail.com" target=3D"_blank">rraszuk@gmail.com</a> [mail=
to:<a href=3D"mailto:rraszuk@gmail.com" target=3D"_blank">rraszuk@gmail.com=
</a>]
<b>On Behalf Of </b>Robert Raszuk<br>
<b>Sent:</b> Thursday, December 22, 2016 11:52 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> Aissaoui, Mustapha (Nokia - CA); <a href=3D"mailto:spring@ietf.o=
rg" target=3D"_blank">spring@ietf.org</a></span></p><div><div class=3D"h5">=
<br>
<b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Proposal<u>=
</u><u></u></div></div><p></p>
</div>
</div><div><div class=3D"h5">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Arial&quot;,&quot;s=
ans-serif&quot;">Hi Les,<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Arial&quot;,&quot;s=
ans-serif&quot;"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Arial&quot;,&quot;s=
ans-serif&quot;">On #1 I am also with Mustapha here. For clarity of this di=
scussion can you enumerate when from RIB to FIB/LFIB you are installing the=
 exact same active prefix from more then one producer ?
 Is SRMS sort of zombie here and not treated as real route producer hence w=
e have an issue ? And the issue is only with conflicts of SRMS + real route=
 producer ?=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Arial&quot;,&quot;s=
ans-serif&quot;"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Arial&quot;,&quot;s=
ans-serif&quot;">On #3 you said that
<i>&quot;with redistribution/route leaking the source of an advertisement m=
ay appear to be different on different routers&quot;</i> that is very true.=
 In fact with simple static route or static label configured on a router th=
e RIB and FIB on that router will be different
 then RIB and FIB on the other routers without such static route. And the p=
oint is that such static route or label is there for a reason you may not k=
now about. So struggling for data plane consistency =E2=80=8Bdeliberately e=
xcluding source=C2=A0when operational needs require
 otherwise is not really that much helpful I am afraid.<u></u><u></u></span=
></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Arial&quot;,&quot;s=
ans-serif&quot;"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Arial&quot;,&quot;s=
ans-serif&quot;">Greetings,<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Arial&quot;,&quot;s=
ans-serif&quot;">Robert.=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Arial&quot;,&quot;s=
ans-serif&quot;"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Thu, Dec 22, 2016 at 8:37 PM, Les Ginsberg (ginsb=
erg) &lt;<a href=3D"mailto:ginsberg@cisco.com" target=3D"_blank">ginsberg@c=
isco.com</a>&gt; wrote:<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">Mustapha -</span><u></=
u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u=
></u></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> spring [=
mailto:<a href=3D"mailto:spring-bounces@ietf.org" target=3D"_blank">spring-=
bounces@ietf.<wbr>org</a>]
<b>On Behalf Of </b>Aissaoui, Mustapha (Nokia - CA)<br>
<b>Sent:</b> Thursday, December 22, 2016 8:10 AM<br>
<span class=3D"m_6901297352370746265gmail-"><b>To:</b> Les Ginsberg (ginsbe=
rg); <a href=3D"mailto:spring@ietf.org" target=3D"_blank">
spring@ietf.org</a></span><br>
<b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Proposal</s=
pan><u></u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Hi Les,</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">I read slides 17-21 of the document you r=
eferenced below and I have the following comments:</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">=C2=A0</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">1.</span><span style=3D"font-size:7.0pt">=C2=A0=C2=A0=C2=A0=
=C2=A0
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">Page 17, =E2=80=9COrder Matters - Prefix vs SID Conflict=
=E2=80=9D.</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">When you perform resolution on=C2=A0 a per prefix basis, pref=
ix conflicts are naturally processed first followed by SID conflicts across=
 different
 prefixes. So the ordering issue described is only specific if you decided =
to resolve conflicting SID entries outside of the natural prefix resolution=
 by a router.
</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;;color:#1f497d">=C2=A0</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><b><i><span style=3D"color:#1f497d">[Les:] What may seem =E2=80=9Cnatura=
l=E2=80=9D to you might not to someone else. I don=E2=80=99t care to debate=
 that point. What is being illustrated here is that in order to provide a n=
ormative
 specification that =E2=80=93 if followed =E2=80=93 guarantees interoperabi=
lity we have to specify the order in which conflicts are processed otherwis=
e different results may be obtained.</span></i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">=C2=A0</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">2.</span><span style=3D"font-size:7.0pt">=C2=A0=C2=A0=C2=A0=
=C2=A0
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">Page 18, =E2=80=9COrder Matters: Derived vs non-derived=
=E2=80=93 prefix conflict=E2=80=9D.</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">It seems to me this issue is an artifact of the specific algo=
rithm used to resolve conflicts. Because the algorithm uses parameters such=
 as
 =E2=80=9CRange (start w smallest)=E2=80=9D then obviously derived SRMS ent=
ries will lend a different result than original SRMS entries.
</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">With the pre-prefix resolution, the only information kept fro=
m the original SRMS entry is the preference and the advertising or owner ro=
uter.
 Anything else is not used. It seems to me a simple algorithm based on pref=
erence first then followed by some rule on selecting the advertising router=
 if conflicts exist within the same preference would work.</span><u></u><u>=
</u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;;color:#1f497d">=C2=A0</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><b><i><span style=3D"color:#1f497d">[Les:] You have implemented things i=
n a certain way. Someone else might choose to implement in a different way.=
 A normative specification does not (and should not) constrain
 an implementation. What is being illustrated here is that if the implement=
ation does not retain the underived entry (in whatever internal form it cho=
oses) different results will be obtained because the preference algorithm d=
epends on comparing the underived
 ranges.</span></i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">3.</span><span style=3D"font-size:7.0pt">=C2=A0=C2=A0=C2=A0=
=C2=A0
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">Finally, there is something which has not been addressed =
in the slides. There is still a possibility of conflicting entries among SI=
Ds advertised using the prefix SID sub-TLV within a Prefix
 TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV). A simple rule select=
ing the advertising router should also work fine here.</span><u></u><u></u>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;;color:#1f497d">=C2=A0</span><u></u><u></u>=
</p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1f497d">[Les:] No =E2=80=
=93 source of an advertisement has been quite
</span></i></b><u></u><u></u></p>
<div>
<p class=3D"MsoNormal"><b><i><span style=3D"font-family:&quot;Arial&quot;,&=
quot;sans-serif&quot;">=E2=80=8B=E2=80=8B</span></i></b><span style=3D"font=
-family:&quot;Arial&quot;,&quot;sans-serif&quot;"><u></u><u></u></span></p>
</div>
<p class=3D"MsoNormal"><b><i>deliberately excluded from the preference algo=
rithm. With redistribution/route leaking the source of an advertisement may=
 appear to be different on different routers- this would result in differen=
t results on different routers.</i></b><u></u><u></u></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1f497d">=C2=A0</span></i=
></b><span style=3D"color:#888888"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1f497d">=C2=A0=C2=A0 Les=
</span></i></b><span style=3D"color:#888888"><u></u><u></u></span></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u=
></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Regards,</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Mustapha.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">=C2=A0</span><u></u><u></u></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Les Ginsberg (ginsberg) [<a href=3D"mai=
lto:ginsberg@cisco.com" target=3D"_blank">mailto:ginsberg@cisco.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 1:49 PM<br>
<b>To:</b> Aissaoui, Mustapha (Nokia - CA) &lt;<a href=3D"mailto:mustapha.a=
issaoui@nokia.com" target=3D"_blank">mustapha.aissaoui@nokia.com</a>&gt;;
<a href=3D"mailto:spring@ietf.org" target=3D"_blank">spring@ietf.org</a><br=
>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<u></u><u></=
u></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">Mustapha -</span><u></=
u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u=
></u></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Aissaoui=
, Mustapha (Nokia -
 CA) [<a href=3D"mailto:mustapha.aissaoui@nokia.com" target=3D"_blank">mail=
to:mustapha.aissaoui@<wbr>nokia.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:44 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org" targ=
et=3D"_blank">
spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal</span><u></=
u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">I have a couple of comments on the below =
proposal.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">=C2=A0</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">1.</span><span style=3D"font-size:7.0pt">=C2=A0=C2=A0=C2=A0=
=C2=A0
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">Regarding the SRMS Preference Sub-TLV in section 3.1 of t=
he draft. In many cases, a configuration on the resolving router can assign=
 a preference to each SRMS in case there is no advertisement
 of this sub-TLV or to override an advertised value. I propose that this op=
tion be allowed. Here is a proposed update to the relevant paragraph:</span=
><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">=E2=80=9C</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0 Ad=
vertisement of a preference value is optional.=C2=A0 Nodes which do not</sp=
an><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0adv=
ertise a preference value are assigned a preference value of 128. =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=
=A0<span style=3D"color:red">A resolving router can override the default or=
 the advertised value by local policy.</span></span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">=E2=80=9C</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><b><i><span style=3D"color:#1f497d">[Les:] In order to get consistent co=
nflict resolution on all nodes in the network, it is necessary that they al=
l have the same database =E2=80=93 which includes the preference
 value. If you allow local policy to modify the preference you no longer ha=
ve consistent databases on all nodes and we can no longer guarantee consist=
ent conflict resolution. So your proposal is not viable IMO.</span></i></b>=
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">=C2=A0</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">2.</span><span style=3D"font-size:7.0pt">=C2=A0=C2=A0=C2=A0=
=C2=A0
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;=
sans-serif&quot;">I am trying to understand the concept of sorting SRMS ent=
ries which have different prefixes and different range sizes. =C2=A0</span>=
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">Since a SID advertised in a prefix SID sub-TLV within a Prefi=
x TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV) has higher priority =
over
 a SID for the same prefix advertised from a SRMS, then you have to add to =
the below sorting an entry for each individual prefix which advertised a pr=
efix SID sub-TLV within a prefix TLV.
</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,&quot;sans=
-serif&quot;">At this point, the concept of an entry with multiple prefixes=
 is moot and you may as well just sort on a per prefix basis which is the m=
ost
 natural thing to do given that the prefix resolution and then the SID reso=
lution are performed on a per prefix basis. SID conflicts can be resolved o=
n a per prefix basis using the below proposed preference algorithm without =
having to ignore SID values for
 unrelated prefixes just because it happens that they were advertised in th=
e same SRMS entry.</span><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><b><i><span style=3D"color:#1f497d">=C2=A0</span></i></b><u></u><u></u><=
/p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><b><i><span style=3D"color:#1f497d">[Les:] The simpler proposal does not=
 require sorting on anything other than preference. After that, you can pro=
cess entries in any order you want and you will get the same
 answer.</span></i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><b><i><span style=3D"color:#1f497d">With =E2=80=9CIgnore Overlap Only=E2=
=80=9D one of the issues with trying to use the non-conflicting portions of=
 a mapping entry which has a range &gt; 1 is that the order in which you pr=
ocess
 entries influences the result. Please see slides 17 =E2=80=93 20 from the =
IETF97 presentation:
<a href=3D"https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ie=
tf97_draft-ietf-spring-conflict-resolution-02-00.pptx" target=3D"_blank">
https://www.ietf.org/<wbr>proceedings/97/slides/slides-<wbr>97-spring-1_iet=
f97_draft-ietf-<wbr>spring-conflict-resolution-02-<wbr>00.pptx</a> for some=
 simple examples of this.</span></i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><b><i><span style=3D"color:#1f497d">=C2=A0</span></i></b><u></u><u></u><=
/p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><b><i><span style=3D"color:#1f497d">=C2=A0=C2=A0 Les</span></i></b><u></=
u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msolistparagrap=
h"><span style=3D"color:#1f497d">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Regards,</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">Mustapha.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,&quot;sans-serif&quot;">=C2=A0</span><u></u><u></u></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> spring [<a href=3D"mailto:spring-bounce=
s@ietf.org" target=3D"_blank">mailto:spring-bounces@ietf.<wbr>org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Sunday, December 04, 2016 7:04 PM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org" target=3D"_blank">spring@ietf=
.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<u></u>=
<u></u></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">W=
hen the problem addressed by draft-ietf-spring-conflict-<wbr>resolution was=
 first
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">p=
resented at IETF 94, the authors defined the following priorities:<u></u><u=
></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">1=
)Detect the problem<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">2=
)Report the problem<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">T=
his alerts the network operator to the existence of a conflict so that<u></=
u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">t=
he configuration error can be corrected.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">3=
)Define consistent behavior<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">T=
his avoids mis-forwarding while the conflict exists.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">4=
)Don=E2=80=99t overengineer the solution<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">G=
iven that it is impossible to know which of the conflicting entries<u></u><=
u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">i=
s the correct one, we should apply a simple algorithm to resolve the confli=
ct.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">5=
)Agree on the resolution behavior<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">T=
he resolution behavior was deliberately the last point because it was
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">c=
onsidered the least important.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">I=
nput was received over the past year which emphasized the importance of<u><=
/u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">t=
rying to &quot;maximize forwarding&quot; in the presence of conflicts. Subs=
equent<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">r=
evisions of the draft have tried to address this concern. However the autho=
rs
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">h=
ave repeatedly stressed that the solution being proposed
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">(=
&quot;ignore overlap only&quot;) was more complex than other offered altern=
atives and
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">w=
ould be more difficult to guarantee interoperability because subtle
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">d=
ifferences in an implementation could produce different results.<u></u><u><=
/u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">A=
t IETF97 significant feedback was received preferring a simpler solution to
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">t=
he problem. The authors are very sympathetic to this feedback and therefore
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">a=
re proposing a solution based on what the draft defines as the &quot;Ignore=
&quot;
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">p=
olicy - where all entries which are in conflict are ignored. We believe thi=
s
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">i=
s far more desirable and aligns with the priorities listed above.<u></u><u>=
</u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">W=
e outline the proposed solution below and would like to receive feedback fr=
om
<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">t=
he WG before publishing the next revision of the draft.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0=C2=A0 Les (on behalf of the authors)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>New Proposal</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>=C2=A0</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>In the latest revision of the draft &quot;SRMS Preference&quot; was intro=
duced. This
</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>provides a way for a numerical preference to be explicitly associated wit=
h an
</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>SRMS advertisement. Using this an operator can indicate which advertiseme=
nt is
</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>to be preferred when a conflict is present. The authors think this is a u=
seful
</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>addition and we therefore want to include this in the new solution.</i><u=
></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>=C2=A0</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>The new preference rule used to resolve conflicts is defined as follows:<=
/i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>=C2=A0</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>A given mapping entry is compared against all mapping entries in the d=
atabase
</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>with a preference greater than or equal to its own. If there is a conf=
lict,
</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>the mapping entry with lower preference is ignored. If two mapping ent=
ries are</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>in conflict and have equal preference then both entries are ignored.</=
i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>=C2=A0</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>Implementation of this policy is defined as follows:</i><u></u><u></u></p=
>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
i>=C2=A0</i><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>Step 1: Within a single address-family/algorithm/<wbr>topology sort en=
tries
</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>based on preference </i>
</b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>Step 2: Starting with the lowest preference entries, resolve prefix co=
nflicts
</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>using the above preference rule. The output is an active policy per to=
pology.</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>Step 3: Take the outputs from Step 2 and again sort them by preference
</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>Step 4: Starting with the lowest preference entries, resolve SID confl=
icts
</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>using the above preference rule</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>=C2=A0</i></b><u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext"><=
b><i>The output from Step 4 is then the current Active Policy.</i></b><u></=
u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">H=
ere are a few examples. Each mapping entry is represented by the tuple:<u><=
/u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">(=
Preference, Prefix/mask Index range &lt;#&gt;)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
xample 1:<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">1=
. (150, <a href=3D"http://1.1.1.1/32" target=3D"_blank">
1.1.1.1/32</a> 100 range 100)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">2=
. (149, <a href=3D"http://1.1.1.10/32" target=3D"_blank">
1.1.1.10/32</a> 200 range 200)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">3=
. (148, <a href=3D"http://1.1.1.101/32" target=3D"_blank">
1.1.1.101/32</a> 500 range 10)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
ntry 3 conflicts with entry 2, it is ignored.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
ntry 2 conflicts with entry 1, it is ignored.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">A=
ctive policy:<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">(=
150, <a href=3D"http://1.1.1.1/32" target=3D"_blank">
1.1.1.1/32</a> 100 range 100)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
xample 2:<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">1=
. (150, <a href=3D"http://1.1.1.1/32" target=3D"_blank">
1.1.1.1/32</a> 100 range 100)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">2=
. (150, <a href=3D"http://1.1.1.10/32" target=3D"_blank">
1.1.1.10/32</a> 200 range 200)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">3=
. (150, <a href=3D"http://1.1.1.101/32" target=3D"_blank">
1.1.1.101/32</a> 500 range 10)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">4=
. (150, <a href=3D"http://2.2.2.1/32" target=3D"_blank">
2.2.2.1/32</a> 1000 range 1)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
ntry 1 conflicts with entry 2, both are marked as ignore.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
ntry 3 conflicts with entry 2. It is marked as ignore.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
ntry 4 has no conflicts with any entries<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">A=
ctive policy:<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">(=
150, <a href=3D"http://2.2.2.1/32" target=3D"_blank">
2.2.2.1/32</a> 1000 range 1)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
xample 3:<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">1=
. (150, <a href=3D"http://1.1.1.1/32" target=3D"_blank">
1.1.1.1/32</a> 100 range 500)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">2=
. (150, <a href=3D"http://1.1.1.10/32" target=3D"_blank">
1.1.1.10/32</a> 200 range 200)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">3=
. (150, <a href=3D"http://1.1.1.101/32" target=3D"_blank">
1.1.1.101/32</a> 500 range 10)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">4=
. (150, <a href=3D"http://2.2.2.1/32" target=3D"_blank">
2.2.2.1/32</a> 1000 range 1)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
ntry 1 conflicts with entries 2, 3, and=C2=A0 4. All entries are marked ign=
ore.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">A=
ctive policy:<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
mpty<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
xample 4:<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">1=
. (150, <a href=3D"http://1.1.1.1/32" target=3D"_blank">
1.1.1.1/32</a> 100 range 10)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">2=
. (149, <a href=3D"http://1.1.1.10/32" target=3D"_blank">
1.1.1.10/32</a> 200 range 300)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">3=
. (149, <a href=3D"http://1.1.1.101/32" target=3D"_blank">
1.1.1.101/32</a> 500 range 10)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">4=
. (148, <a href=3D"http://2.2.2.1/32" target=3D"_blank">
2.2.2.1/32</a> 1000 range 1)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
ntry 4 conflicts with entry 2. It is marked ignore.<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">E=
ntry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.<u></u><u>=
</u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">A=
ctive policy:<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">(=
150, <a href=3D"http://1.1.1.1/32" target=3D"_blank">
1.1.1.1/32</a> 100 range 10)<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
<p class=3D"m_6901297352370746265gmail-m-9072189130253622886msoplaintext">=
=C2=A0<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><br>
______________________________<wbr>_________________<br>
spring mailing list<br>
<a href=3D"mailto:spring@ietf.org" target=3D"_blank">spring@ietf.org</a><br=
>
<a href=3D"https://www.ietf.org/mailman/listinfo/spring" target=3D"_blank">=
https://www.ietf.org/mailman/<wbr>listinfo/spring</a><u></u><u></u></p>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div>

--001a11407210bc550d054446cc5a--


From nobody Thu Dec 22 14:46:32 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0ACC91279EB for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 14:46:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.62
X-Spam-Level: 
X-Spam-Status: No, score=-17.62 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FRzmpEUyaMaJ for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 14:46:28 -0800 (PST)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D75B51294B6 for <spring@ietf.org>; Thu, 22 Dec 2016 14:46:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=99732; q=dns/txt; s=iport; t=1482446787; x=1483656387; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=XDwu4KjNH95IylvoxFP6rcoQh4uj+MdjUiR062wleVo=; b=cCTcAuIaGlLY6xJEUgJZi4Ii+0YdRVeZwu8bKcrKwvekqvFp++lhw7Aq E1qp/sI3df+/26MIGxmZuOcbbHjqqKW9qILSQ1x7oIq7cVTv42jjs58wY T1s55rUmt2BI7g6YQXk20NxmL1KWar6BQBx3Aqo0Q+0La/7Uv6fBWHf1J 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AyBACHVlxY/4YNJK1eGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnE5CwEBAQEBH11POAIHjUqWUYJUhSSFNIUCgmeCBgMfAQ6FKko?= =?us-ascii?q?CGimBKT8UAQIBAQEBAQEBYiiEaAEBAQQBARgJCh4BIgsQAgEGAhECAgEBIQEGA?= =?us-ascii?q?wICAh8EAgsUCQgCBA4FCBECiDcDGA6NNJ1MgieEEQGDKA2DOQEBAQEBAQEBAQE?= =?us-ascii?q?BAQEBAQEBAQEBAR2GSIRiglKBdBsVCoJOgl0FlQWFPjUBiWOCIIE+g2+BfoUHg?= =?us-ascii?q?0qGDId6gXMghBmEDgEPEDcBSmAug2gcgV1yAYdbAYEMAQEB?=
X-IronPort-AV: E=Sophos;i="5.33,390,1477958400";  d="scan'208,217";a="364322535"
Received: from alln-core-12.cisco.com ([173.36.13.134]) by alln-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 22 Dec 2016 22:46:26 +0000
Received: from XCH-ALN-004.cisco.com (xch-aln-004.cisco.com [173.36.7.14]) by alln-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id uBMMkQU2019437 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 22 Dec 2016 22:46:26 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-ALN-004.cisco.com (173.36.7.14) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 22 Dec 2016 16:46:25 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Thu, 22 Dec 2016 16:46:25 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: Robert Raszuk <robert@raszuk.net>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAodWgAC/MMoAChMj6cAAKwMEwAA1jLAAACT8g0P//4f2AgABji1A=
Date: Thu, 22 Dec 2016 22:46:25 +0000
Message-ID: <8c9c337f5176477eb680ebbcee776c44@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com> <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com> <CA+b+ERnhaUTJ45FwMvMf3V8xhqRKfpGE_9h8MgmOqBejvscAaA@mail.gmail.com> <ae35b4f22e7744f9a424a8ad02c12a2b@XCH-ALN-001.cisco.com> <CA+b+ERke08DVHyrZ_=tMpiOgedzydsR8VktHAKfzzQDYkAOArQ@mail.gmail.com>
In-Reply-To: <CA+b+ERke08DVHyrZ_=tMpiOgedzydsR8VktHAKfzzQDYkAOArQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [128.107.151.19]
Content-Type: multipart/alternative; boundary="_000_8c9c337f5176477eb680ebbcee776c44XCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/h7D1uoRhRBdEscYTwkCx4xYdPW8>
Cc: "spring@ietf.org" <spring@ietf.org>, "Aissaoui, Mustapha \(Nokia - CA\)" <mustapha.aissaoui@nokia.com>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 22:46:31 -0000

--_000_8c9c337f5176477eb680ebbcee776c44XCHALN001ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

Um9iZXJ0IOKAkw0KDQpZb3UgYXJlIG1ha2luZyBwcm9ncmVzcyDigJMgYnV0IHN0aWxsIGEgd2F5
cyB0byBnby4g4pi6DQoNCkNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgc2ltcGxlIGNhc2U6DQoNCk9T
UEYgb24gUm91dGVyICMxIGFkdmVydGlzZXMgMS4xLjEuMS8zMiB3IFNJRCAxMDANCk9TUEYgb24g
Um91dGVyICMyIGFkdmVydGlzZXMgMi4yLjIuMi8zMiB3IFNJRCAxMDANCg0KQm90aCByb3V0ZXMg
d2lsbCBnZXQgaW5zdGFsbGVkIGluIHRoZSBSSUIvRklCIG9uIGFsbCByb3V0ZXJzIOKAkyBidXQg
d2UgY2Fubm90IGluc3RhbGwgdGhlIHNhbWUgbGFiZWwgaW4gdGhlIGZvcndhcmRpbmcgZm9yIGJv
dGggZGVzdGluYXRpb25zIOKAkyBzbyB3ZSBoYXZlIHRvIGRlY2lkZSB3aGF0IHRvIGRvLg0KDQox
KVdlIGNvdWxkIHNpbXBseSBub3QgaW5zdGFsbCBhIGxhYmVsIGZvciBlaXRoZXIgcHJlZml4IOKA
kyB0aGF0IGlzIHRoZSDigJxzaW1wbGUvSWdub3Jl4oCdIGFwcHJvYWNoIHRoYXQgaXMgYmVpbmcg
ZGlzY3Vzc2VkLiBJUCBmb3J3YXJkaW5nIHdpbGwgdGhlbiBiZSB1c2VkLg0KDQoyKVdlIGNvdWxk
IHVzZSBhIHByZWZlcmVuY2UgcnVsZSB0byBkZXRlcm1pbmUgd2hpY2ggZW50cnkgaXMgdGhlIHdp
bm5lciBhcyBmYXIgYXMgdXNlIG9mIHRoZSBsYWJlbCBpcyBjb25jZXJuZWQg4oCTIHRoYXQgaXMg
dGhlIOKAnElnbm9yZSBPdmVybGFwIE9ubHnigJ0gYXBwcm9hY2ggaXMgb25lIHdheSBvZiBkb2lu
ZyB0aGlzLiBUaGUgd2lubmVyIHdvdWxkIGhhdmUgbGFiZWxzIGluc3RhbGxlZCDigJMgdGhlIGxv
c2VyIHdvdWxkIG5vdC4NCg0KUmVnYXJkbGVzcyBvZiBjb25mbGljdCByZXNvbHV0aW9uIHN0cmF0
ZWd5IGJvdGggcm91dGVzIHdpbGwgc3RpbGwgZXhpc3QgaW4gZm9yd2FyZGluZy4NCg0KVGhlIGRl
YmF0ZSB3ZSBhcmUgaGF2aW5nIGlzIHdoZXRoZXIgdG8gdXNlICMxIG9yICMyLg0KQnV0IG5vbmUg
b2YgdGhpcyByZWxhdGVzIHRvIOKAnG92ZXJsYXBwaW5nIHByZWZpeGVz4oCdIG9yIHNhbWUgcm91
dGUgZnJvbSBtdWx0aXBsZSBzb3VyY2VzIG9yIGFueSBvdGhlciBwcm9ibGVtIHdoaWNoIHJvdXRp
bmcgYWxyZWFkeSBoYW5kbGVzLg0KDQpIVEgNCg0KICAgIExlcw0KDQoNCkZyb206IHJyYXN6dWtA
Z21haWwuY29tIFttYWlsdG86cnJhc3p1a0BnbWFpbC5jb21dIE9uIEJlaGFsZiBPZiBSb2JlcnQg
UmFzenVrDQpTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMjIsIDIwMTYgMjoyOSBQTQ0KVG86IExl
cyBHaW5zYmVyZyAoZ2luc2JlcmcpDQpDYzogQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENB
KTsgc3ByaW5nQGlldGYub3JnDQpTdWJqZWN0OiBSZTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJl
c29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KDQpMZXMsDQoNCkFmdGVyIG1lbnRhbCByZXNl
dCBJIGNvbmNsdWRlIHRoYXQgcGVyaGFwcyBldmVuIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIGRy
YWZ0IGlzIHF1ZXN0aW9uYWJsZSBhcyBpbiByZWFsIGxpZmUgaXQgYXBwbGllcyB0byBiZSBxdWl0
ZSBhbiB1bnJlYWxpc3RpYyBzY2VuYXJpbyB0byBoYXZlIGEgc2l0dWF0aW9uIHdoZXJlIG1vcmUg
dGhlbiBvbmUgcHJvdG9jb2wgaXMgdXNlZCAqaW4gdGhlIHNhbWUgdGltZSogYXMgYWN0aXZlIGlu
IGZvcndhcmRpbmcgZm9yIGFuIGV4YWN0IHNhbWUgSVAgcHJlZml4Lg0KDQpMYXN0IHRpbWUgSSBj
aGVja2VkIFNJRHMgYXJlIG1lYW5pbmdsZXNzIHdpdGhvdXQgYSBwcmVmaXggdGhleSBhcmUgYXR0
YWNoZWQgdG8gYW5kIGl0IGlzIGEgcHJlZml4IHRoZXkgYWNjb21wYW55IHRvIGluZGljYXRlIHdo
aWNoIFNJRCBzaG91bGQgYmUgdXNlZCBvbiBhIGdpdmVuIG5vZGUuDQoNClRoZXJlZm9yIGlmIHlv
dSBjb25zaWRlciB0aGF0IHRvZGF5IG1vc3QgaW1wbGVtZW50YXRpb25zIHByZXR0eSB3ZWxsIGNh
biBoYW5kbGUgb3ZlcmxhcHBpbmcgcHJlZml4ZXMgZnJvbSBtdWx0aXBsZSBzb3VyY2VzIHdoYXQg
cmVhbCBwcm9ibGVtIGlzIHRoaXMgZHJhZnQgc29sdmluZyA/DQoNCkFyZSB5b3UgdHJ5aW5nIHRv
IGNyZWF0ZSBhIGZvcndhcmRpbmcgZ3JhcGggYnkgU0lEcyBvbmx5IGRldGFjaGluZyB0aGVtIGZy
b20gSVAgcHJlZml4ZXMgYWxsIHRvZ2V0aGVyID8NCg0KQ2hlZXJzLA0KUi4NCg0KDQpPbiBUaHUs
IERlYyAyMiwgMjAxNiBhdCAxMDozMiBQTSwgTGVzIEdpbnNiZXJnIChnaW5zYmVyZykgPGdpbnNi
ZXJnQGNpc2NvLmNvbTxtYWlsdG86Z2luc2JlcmdAY2lzY28uY29tPj4gd3JvdGU6DQpSb2JlcnQg
4oCTDQoNCllvdSBoYXZlIGEgY29tcGxldGUgbWlzdW5kZXJzdGFuZGluZyBvZiByb2xlcyBoZXJl
Lg0KDQpIb3cgdGhlIG93bmVyIG9mIGEgcm91dGUgbWF5IGJlIHJlcHJlc2VudGVkIGluIHRoZSBS
SUIgaXNu4oCZdCBpbXBhY3RlZCBieSBTUk1TIG9yIGNvbmZsaWN0IHJlc29sdXRpb24uIE5vciBp
cyB0aGUgZGV0ZXJtaW5hdGlvbiBvZiB3aGljaCByb3V0ZSBpcyB0aGUgYmVzdCByb3V0ZS4gV2Ug
YXJlIG9ubHkgZGV0ZXJtaW5pbmcgd2hldGhlciB0byB1c2Ugb3Igbm90IHVzZSBhIFNJRCB3aGlj
aCB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcmVmaXggYnkgc29tZSBhZHZlcnRpc2VtZW50Lg0K
DQpUaGUgSW50cm9kdWN0aW9uIHRvIHRoZSBkcmFmdCBzdGF0ZXM6DQoNCuKAnFRoZSBwcm9ibGVt
IHRvIGJlIGFkZHJlc3NlZCBpcyBwcm90b2NvbCBpbmRlcGVuZGVudCBpLmUuLCBzZWdtZW50DQog
ICByZWxhdGVkIGFkdmVydGlzZW1lbnRzIG1heSBiZSBvcmlnaW5hdGVkIGJ5IG11bHRpcGxlIG5v
ZGVzIHVzaW5nDQogICBkaWZmZXJlbnQgcHJvdG9jb2xzIGFuZCB5ZXQgdGhlIGNvbmZsaWN0IHJl
c29sdXRpb24gTVVTVCBiZSB0aGUgc2FtZQ0KICAgb24gYWxsIG5vZGVzIHJlZ2FyZGxlc3Mgb2Yg
dGhlIHByb3RvY29sIHVzZWQgdG8gdHJhbnNwb3J0IHRoZQ0KICAgYWR2ZXJ0aXNlbWVudHMu4oCd
DQoNClBsZWFzZSBkbyBhIG1lbnRhbCByZXNldC4g4pi6DQoNCiAgIExlcw0KDQoNCkZyb206IHJy
YXN6dWtAZ21haWwuY29tPG1haWx0bzpycmFzenVrQGdtYWlsLmNvbT4gW21haWx0bzpycmFzenVr
QGdtYWlsLmNvbTxtYWlsdG86cnJhc3p1a0BnbWFpbC5jb20+XSBPbiBCZWhhbGYgT2YgUm9iZXJ0
IFJhc3p1aw0KU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDIyLCAyMDE2IDExOjUyIEFNDQpUbzog
TGVzIEdpbnNiZXJnIChnaW5zYmVyZykNCkNjOiBBaXNzYW91aSwgTXVzdGFwaGEgKE5va2lhIC0g
Q0EpOyBzcHJpbmdAaWV0Zi5vcmc8bWFpbHRvOnNwcmluZ0BpZXRmLm9yZz4NCg0KU3ViamVjdDog
UmU6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWwN
Cg0KSGkgTGVzLA0KDQpPbiAjMSBJIGFtIGFsc28gd2l0aCBNdXN0YXBoYSBoZXJlLiBGb3IgY2xh
cml0eSBvZiB0aGlzIGRpc2N1c3Npb24gY2FuIHlvdSBlbnVtZXJhdGUgd2hlbiBmcm9tIFJJQiB0
byBGSUIvTEZJQiB5b3UgYXJlIGluc3RhbGxpbmcgdGhlIGV4YWN0IHNhbWUgYWN0aXZlIHByZWZp
eCBmcm9tIG1vcmUgdGhlbiBvbmUgcHJvZHVjZXIgPyBJcyBTUk1TIHNvcnQgb2Ygem9tYmllIGhl
cmUgYW5kIG5vdCB0cmVhdGVkIGFzIHJlYWwgcm91dGUgcHJvZHVjZXIgaGVuY2Ugd2UgaGF2ZSBh
biBpc3N1ZSA/IEFuZCB0aGUgaXNzdWUgaXMgb25seSB3aXRoIGNvbmZsaWN0cyBvZiBTUk1TICsg
cmVhbCByb3V0ZSBwcm9kdWNlciA/DQoNCk9uICMzIHlvdSBzYWlkIHRoYXQgIndpdGggcmVkaXN0
cmlidXRpb24vcm91dGUgbGVha2luZyB0aGUgc291cmNlIG9mIGFuIGFkdmVydGlzZW1lbnQgbWF5
IGFwcGVhciB0byBiZSBkaWZmZXJlbnQgb24gZGlmZmVyZW50IHJvdXRlcnMiIHRoYXQgaXMgdmVy
eSB0cnVlLiBJbiBmYWN0IHdpdGggc2ltcGxlIHN0YXRpYyByb3V0ZSBvciBzdGF0aWMgbGFiZWwg
Y29uZmlndXJlZCBvbiBhIHJvdXRlciB0aGUgUklCIGFuZCBGSUIgb24gdGhhdCByb3V0ZXIgd2ls
bCBiZSBkaWZmZXJlbnQgdGhlbiBSSUIgYW5kIEZJQiBvbiB0aGUgb3RoZXIgcm91dGVycyB3aXRo
b3V0IHN1Y2ggc3RhdGljIHJvdXRlLiBBbmQgdGhlIHBvaW50IGlzIHRoYXQgc3VjaCBzdGF0aWMg
cm91dGUgb3IgbGFiZWwgaXMgdGhlcmUgZm9yIGEgcmVhc29uIHlvdSBtYXkgbm90IGtub3cgYWJv
dXQuIFNvIHN0cnVnZ2xpbmcgZm9yIGRhdGEgcGxhbmUgY29uc2lzdGVuY3kg4oCLZGVsaWJlcmF0
ZWx5IGV4Y2x1ZGluZyBzb3VyY2Ugd2hlbiBvcGVyYXRpb25hbCBuZWVkcyByZXF1aXJlIG90aGVy
d2lzZSBpcyBub3QgcmVhbGx5IHRoYXQgbXVjaCBoZWxwZnVsIEkgYW0gYWZyYWlkLg0KDQpHcmVl
dGluZ3MsDQpSb2JlcnQuDQoNCg0KT24gVGh1LCBEZWMgMjIsIDIwMTYgYXQgODozNyBQTSwgTGVz
IEdpbnNiZXJnIChnaW5zYmVyZykgPGdpbnNiZXJnQGNpc2NvLmNvbTxtYWlsdG86Z2luc2JlcmdA
Y2lzY28uY29tPj4gd3JvdGU6DQpNdXN0YXBoYSAtDQoNCkZyb206IHNwcmluZyBbbWFpbHRvOnNw
cmluZy1ib3VuY2VzQGlldGYub3JnPG1haWx0bzpzcHJpbmctYm91bmNlc0BpZXRmLm9yZz5dIE9u
IEJlaGFsZiBPZiBBaXNzYW91aSwgTXVzdGFwaGEgKE5va2lhIC0gQ0EpDQpTZW50OiBUaHVyc2Rh
eSwgRGVjZW1iZXIgMjIsIDIwMTYgODoxMCBBTQ0KVG86IExlcyBHaW5zYmVyZyAoZ2luc2Jlcmcp
OyBzcHJpbmdAaWV0Zi5vcmc8bWFpbHRvOnNwcmluZ0BpZXRmLm9yZz4NClN1YmplY3Q6IFJlOiBb
c3ByaW5nXSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQoNCkhp
IExlcywNCkkgcmVhZCBzbGlkZXMgMTctMjEgb2YgdGhlIGRvY3VtZW50IHlvdSByZWZlcmVuY2Vk
IGJlbG93IGFuZCBJIGhhdmUgdGhlIGZvbGxvd2luZyBjb21tZW50czoNCg0KDQoxLiAgICAgUGFn
ZSAxNywg4oCcT3JkZXIgTWF0dGVycyAtIFByZWZpeCB2cyBTSUQgQ29uZmxpY3TigJ0uDQoNCldo
ZW4geW91IHBlcmZvcm0gcmVzb2x1dGlvbiBvbiAgYSBwZXIgcHJlZml4IGJhc2lzLCBwcmVmaXgg
Y29uZmxpY3RzIGFyZSBuYXR1cmFsbHkgcHJvY2Vzc2VkIGZpcnN0IGZvbGxvd2VkIGJ5IFNJRCBj
b25mbGljdHMgYWNyb3NzIGRpZmZlcmVudCBwcmVmaXhlcy4gU28gdGhlIG9yZGVyaW5nIGlzc3Vl
IGRlc2NyaWJlZCBpcyBvbmx5IHNwZWNpZmljIGlmIHlvdSBkZWNpZGVkIHRvIHJlc29sdmUgY29u
ZmxpY3RpbmcgU0lEIGVudHJpZXMgb3V0c2lkZSBvZiB0aGUgbmF0dXJhbCBwcmVmaXggcmVzb2x1
dGlvbiBieSBhIHJvdXRlci4NCg0KDQoNCltMZXM6XSBXaGF0IG1heSBzZWVtIOKAnG5hdHVyYWzi
gJ0gdG8geW91IG1pZ2h0IG5vdCB0byBzb21lb25lIGVsc2UuIEkgZG9u4oCZdCBjYXJlIHRvIGRl
YmF0ZSB0aGF0IHBvaW50LiBXaGF0IGlzIGJlaW5nIGlsbHVzdHJhdGVkIGhlcmUgaXMgdGhhdCBp
biBvcmRlciB0byBwcm92aWRlIGEgbm9ybWF0aXZlIHNwZWNpZmljYXRpb24gdGhhdCDigJMgaWYg
Zm9sbG93ZWQg4oCTIGd1YXJhbnRlZXMgaW50ZXJvcGVyYWJpbGl0eSB3ZSBoYXZlIHRvIHNwZWNp
ZnkgdGhlIG9yZGVyIGluIHdoaWNoIGNvbmZsaWN0cyBhcmUgcHJvY2Vzc2VkIG90aGVyd2lzZSBk
aWZmZXJlbnQgcmVzdWx0cyBtYXkgYmUgb2J0YWluZWQuDQoNCg0KDQoyLiAgICAgUGFnZSAxOCwg
4oCcT3JkZXIgTWF0dGVyczogRGVyaXZlZCB2cyBub24tZGVyaXZlZOKAkyBwcmVmaXggY29uZmxp
Y3TigJ0uDQoNCkl0IHNlZW1zIHRvIG1lIHRoaXMgaXNzdWUgaXMgYW4gYXJ0aWZhY3Qgb2YgdGhl
IHNwZWNpZmljIGFsZ29yaXRobSB1c2VkIHRvIHJlc29sdmUgY29uZmxpY3RzLiBCZWNhdXNlIHRo
ZSBhbGdvcml0aG0gdXNlcyBwYXJhbWV0ZXJzIHN1Y2ggYXMg4oCcUmFuZ2UgKHN0YXJ0IHcgc21h
bGxlc3Qp4oCdIHRoZW4gb2J2aW91c2x5IGRlcml2ZWQgU1JNUyBlbnRyaWVzIHdpbGwgbGVuZCBh
IGRpZmZlcmVudCByZXN1bHQgdGhhbiBvcmlnaW5hbCBTUk1TIGVudHJpZXMuDQoNCldpdGggdGhl
IHByZS1wcmVmaXggcmVzb2x1dGlvbiwgdGhlIG9ubHkgaW5mb3JtYXRpb24ga2VwdCBmcm9tIHRo
ZSBvcmlnaW5hbCBTUk1TIGVudHJ5IGlzIHRoZSBwcmVmZXJlbmNlIGFuZCB0aGUgYWR2ZXJ0aXNp
bmcgb3Igb3duZXIgcm91dGVyLiBBbnl0aGluZyBlbHNlIGlzIG5vdCB1c2VkLiBJdCBzZWVtcyB0
byBtZSBhIHNpbXBsZSBhbGdvcml0aG0gYmFzZWQgb24gcHJlZmVyZW5jZSBmaXJzdCB0aGVuIGZv
bGxvd2VkIGJ5IHNvbWUgcnVsZSBvbiBzZWxlY3RpbmcgdGhlIGFkdmVydGlzaW5nIHJvdXRlciBp
ZiBjb25mbGljdHMgZXhpc3Qgd2l0aGluIHRoZSBzYW1lIHByZWZlcmVuY2Ugd291bGQgd29yay4N
Cg0KDQoNCltMZXM6XSBZb3UgaGF2ZSBpbXBsZW1lbnRlZCB0aGluZ3MgaW4gYSBjZXJ0YWluIHdh
eS4gU29tZW9uZSBlbHNlIG1pZ2h0IGNob29zZSB0byBpbXBsZW1lbnQgaW4gYSBkaWZmZXJlbnQg
d2F5LiBBIG5vcm1hdGl2ZSBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IChhbmQgc2hvdWxkIG5vdCkg
Y29uc3RyYWluIGFuIGltcGxlbWVudGF0aW9uLiBXaGF0IGlzIGJlaW5nIGlsbHVzdHJhdGVkIGhl
cmUgaXMgdGhhdCBpZiB0aGUgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgcmV0YWluIHRoZSB1bmRl
cml2ZWQgZW50cnkgKGluIHdoYXRldmVyIGludGVybmFsIGZvcm0gaXQgY2hvb3NlcykgZGlmZmVy
ZW50IHJlc3VsdHMgd2lsbCBiZSBvYnRhaW5lZCBiZWNhdXNlIHRoZSBwcmVmZXJlbmNlIGFsZ29y
aXRobSBkZXBlbmRzIG9uIGNvbXBhcmluZyB0aGUgdW5kZXJpdmVkIHJhbmdlcy4NCg0KDQoNCjMu
ICAgICBGaW5hbGx5LCB0aGVyZSBpcyBzb21ldGhpbmcgd2hpY2ggaGFzIG5vdCBiZWVuIGFkZHJl
c3NlZCBpbiB0aGUgc2xpZGVzLiBUaGVyZSBpcyBzdGlsbCBhIHBvc3NpYmlsaXR5IG9mIGNvbmZs
aWN0aW5nIGVudHJpZXMgYW1vbmcgU0lEcyBhZHZlcnRpc2VkIHVzaW5nIHRoZSBwcmVmaXggU0lE
IHN1Yi1UTFYgd2l0aGluIGEgUHJlZml4IFRMViAoSVMtSVMgSVAgUmVhY2ggVExWIG9yIE9TUEYg
RXh0ZW5kZWQgUHJlZml4IFRMVikuIEEgc2ltcGxlIHJ1bGUgc2VsZWN0aW5nIHRoZSBhZHZlcnRp
c2luZyByb3V0ZXIgc2hvdWxkIGFsc28gd29yayBmaW5lIGhlcmUuDQoNCltMZXM6XSBObyDigJMg
c291cmNlIG9mIGFuIGFkdmVydGlzZW1lbnQgaGFzIGJlZW4gcXVpdGUNCuKAi+KAiw0KZGVsaWJl
cmF0ZWx5IGV4Y2x1ZGVkIGZyb20gdGhlIHByZWZlcmVuY2UgYWxnb3JpdGhtLiBXaXRoIHJlZGlz
dHJpYnV0aW9uL3JvdXRlIGxlYWtpbmcgdGhlIHNvdXJjZSBvZiBhbiBhZHZlcnRpc2VtZW50IG1h
eSBhcHBlYXIgdG8gYmUgZGlmZmVyZW50IG9uIGRpZmZlcmVudCByb3V0ZXJzLSB0aGlzIHdvdWxk
IHJlc3VsdCBpbiBkaWZmZXJlbnQgcmVzdWx0cyBvbiBkaWZmZXJlbnQgcm91dGVycy4NCg0KICAg
TGVzDQoNClJlZ2FyZHMsDQpNdXN0YXBoYS4NCg0KRnJvbTogTGVzIEdpbnNiZXJnIChnaW5zYmVy
ZykgW21haWx0bzpnaW5zYmVyZ0BjaXNjby5jb21dDQpTZW50OiBGcmlkYXksIERlY2VtYmVyIDA5
LCAyMDE2IDE6NDkgUE0NClRvOiBBaXNzYW91aSwgTXVzdGFwaGEgKE5va2lhIC0gQ0EpIDxtdXN0
YXBoYS5haXNzYW91aUBub2tpYS5jb208bWFpbHRvOm11c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNv
bT4+OyBzcHJpbmdAaWV0Zi5vcmc8bWFpbHRvOnNwcmluZ0BpZXRmLm9yZz4NClN1YmplY3Q6IFJF
OiBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQoNCk11c3RhcGhh
IC0NCg0KRnJvbTogQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKSBbbWFpbHRvOm11c3Rh
cGhhLmFpc3Nhb3VpQG5va2lhLmNvbV0NClNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMDksIDIwMTYg
Nzo0NCBBTQ0KVG86IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpOyBzcHJpbmdAaWV0Zi5vcmc8bWFp
bHRvOnNwcmluZ0BpZXRmLm9yZz4NClN1YmplY3Q6IFJFOiBTSUQgQ29uZmxpY3QgUmVzb2x1dGlv
bjogQSBTaW1wbGVyIFByb3Bvc2FsDQoNCkkgaGF2ZSBhIGNvdXBsZSBvZiBjb21tZW50cyBvbiB0
aGUgYmVsb3cgcHJvcG9zYWwuDQoNCg0KMS4gICAgIFJlZ2FyZGluZyB0aGUgU1JNUyBQcmVmZXJl
bmNlIFN1Yi1UTFYgaW4gc2VjdGlvbiAzLjEgb2YgdGhlIGRyYWZ0LiBJbiBtYW55IGNhc2VzLCBh
IGNvbmZpZ3VyYXRpb24gb24gdGhlIHJlc29sdmluZyByb3V0ZXIgY2FuIGFzc2lnbiBhIHByZWZl
cmVuY2UgdG8gZWFjaCBTUk1TIGluIGNhc2UgdGhlcmUgaXMgbm8gYWR2ZXJ0aXNlbWVudCBvZiB0
aGlzIHN1Yi1UTFYgb3IgdG8gb3ZlcnJpZGUgYW4gYWR2ZXJ0aXNlZCB2YWx1ZS4gSSBwcm9wb3Nl
IHRoYXQgdGhpcyBvcHRpb24gYmUgYWxsb3dlZC4gSGVyZSBpcyBhIHByb3Bvc2VkIHVwZGF0ZSB0
byB0aGUgcmVsZXZhbnQgcGFyYWdyYXBoOg0KDQrigJwNCiAgICAgICAgICAgQWR2ZXJ0aXNlbWVu
dCBvZiBhIHByZWZlcmVuY2UgdmFsdWUgaXMgb3B0aW9uYWwuICBOb2RlcyB3aGljaCBkbyBub3QN
CiAgICAgICAgICBhZHZlcnRpc2UgYSBwcmVmZXJlbmNlIHZhbHVlIGFyZSBhc3NpZ25lZCBhIHBy
ZWZlcmVuY2UgdmFsdWUgb2YgMTI4Lg0KICAgICAgICAgICBBIHJlc29sdmluZyByb3V0ZXIgY2Fu
IG92ZXJyaWRlIHRoZSBkZWZhdWx0IG9yIHRoZSBhZHZlcnRpc2VkIHZhbHVlIGJ5IGxvY2FsIHBv
bGljeS4NCg0K4oCcDQoNCltMZXM6XSBJbiBvcmRlciB0byBnZXQgY29uc2lzdGVudCBjb25mbGlj
dCByZXNvbHV0aW9uIG9uIGFsbCBub2RlcyBpbiB0aGUgbmV0d29yaywgaXQgaXMgbmVjZXNzYXJ5
IHRoYXQgdGhleSBhbGwgaGF2ZSB0aGUgc2FtZSBkYXRhYmFzZSDigJMgd2hpY2ggaW5jbHVkZXMg
dGhlIHByZWZlcmVuY2UgdmFsdWUuIElmIHlvdSBhbGxvdyBsb2NhbCBwb2xpY3kgdG8gbW9kaWZ5
IHRoZSBwcmVmZXJlbmNlIHlvdSBubyBsb25nZXIgaGF2ZSBjb25zaXN0ZW50IGRhdGFiYXNlcyBv
biBhbGwgbm9kZXMgYW5kIHdlIGNhbiBubyBsb25nZXIgZ3VhcmFudGVlIGNvbnNpc3RlbnQgY29u
ZmxpY3QgcmVzb2x1dGlvbi4gU28geW91ciBwcm9wb3NhbCBpcyBub3QgdmlhYmxlIElNTy4NCg0K
DQoNCjIuICAgICBJIGFtIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSBjb25jZXB0IG9mIHNvcnRp
bmcgU1JNUyBlbnRyaWVzIHdoaWNoIGhhdmUgZGlmZmVyZW50IHByZWZpeGVzIGFuZCBkaWZmZXJl
bnQgcmFuZ2Ugc2l6ZXMuDQoNClNpbmNlIGEgU0lEIGFkdmVydGlzZWQgaW4gYSBwcmVmaXggU0lE
IHN1Yi1UTFYgd2l0aGluIGEgUHJlZml4IFRMViAoSVMtSVMgSVAgUmVhY2ggVExWIG9yIE9TUEYg
RXh0ZW5kZWQgUHJlZml4IFRMVikgaGFzIGhpZ2hlciBwcmlvcml0eSBvdmVyIGEgU0lEIGZvciB0
aGUgc2FtZSBwcmVmaXggYWR2ZXJ0aXNlZCBmcm9tIGEgU1JNUywgdGhlbiB5b3UgaGF2ZSB0byBh
ZGQgdG8gdGhlIGJlbG93IHNvcnRpbmcgYW4gZW50cnkgZm9yIGVhY2ggaW5kaXZpZHVhbCBwcmVm
aXggd2hpY2ggYWR2ZXJ0aXNlZCBhIHByZWZpeCBTSUQgc3ViLVRMViB3aXRoaW4gYSBwcmVmaXgg
VExWLg0KDQpBdCB0aGlzIHBvaW50LCB0aGUgY29uY2VwdCBvZiBhbiBlbnRyeSB3aXRoIG11bHRp
cGxlIHByZWZpeGVzIGlzIG1vb3QgYW5kIHlvdSBtYXkgYXMgd2VsbCBqdXN0IHNvcnQgb24gYSBw
ZXIgcHJlZml4IGJhc2lzIHdoaWNoIGlzIHRoZSBtb3N0IG5hdHVyYWwgdGhpbmcgdG8gZG8gZ2l2
ZW4gdGhhdCB0aGUgcHJlZml4IHJlc29sdXRpb24gYW5kIHRoZW4gdGhlIFNJRCByZXNvbHV0aW9u
IGFyZSBwZXJmb3JtZWQgb24gYSBwZXIgcHJlZml4IGJhc2lzLiBTSUQgY29uZmxpY3RzIGNhbiBi
ZSByZXNvbHZlZCBvbiBhIHBlciBwcmVmaXggYmFzaXMgdXNpbmcgdGhlIGJlbG93IHByb3Bvc2Vk
IHByZWZlcmVuY2UgYWxnb3JpdGhtIHdpdGhvdXQgaGF2aW5nIHRvIGlnbm9yZSBTSUQgdmFsdWVz
IGZvciB1bnJlbGF0ZWQgcHJlZml4ZXMganVzdCBiZWNhdXNlIGl0IGhhcHBlbnMgdGhhdCB0aGV5
IHdlcmUgYWR2ZXJ0aXNlZCBpbiB0aGUgc2FtZSBTUk1TIGVudHJ5Lg0KDQoNCg0KW0xlczpdIFRo
ZSBzaW1wbGVyIHByb3Bvc2FsIGRvZXMgbm90IHJlcXVpcmUgc29ydGluZyBvbiBhbnl0aGluZyBv
dGhlciB0aGFuIHByZWZlcmVuY2UuIEFmdGVyIHRoYXQsIHlvdSBjYW4gcHJvY2VzcyBlbnRyaWVz
IGluIGFueSBvcmRlciB5b3Ugd2FudCBhbmQgeW91IHdpbGwgZ2V0IHRoZSBzYW1lIGFuc3dlci4N
Cg0KV2l0aCDigJxJZ25vcmUgT3ZlcmxhcCBPbmx54oCdIG9uZSBvZiB0aGUgaXNzdWVzIHdpdGgg
dHJ5aW5nIHRvIHVzZSB0aGUgbm9uLWNvbmZsaWN0aW5nIHBvcnRpb25zIG9mIGEgbWFwcGluZyBl
bnRyeSB3aGljaCBoYXMgYSByYW5nZSA+IDEgaXMgdGhhdCB0aGUgb3JkZXIgaW4gd2hpY2ggeW91
IHByb2Nlc3MgZW50cmllcyBpbmZsdWVuY2VzIHRoZSByZXN1bHQuIFBsZWFzZSBzZWUgc2xpZGVz
IDE3IOKAkyAyMCBmcm9tIHRoZSBJRVRGOTcgcHJlc2VudGF0aW9uOiBodHRwczovL3d3dy5pZXRm
Lm9yZy9wcm9jZWVkaW5ncy85Ny9zbGlkZXMvc2xpZGVzLTk3LXNwcmluZy0xX2lldGY5N19kcmFm
dC1pZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uLTAyLTAwLnBwdHggZm9yIHNvbWUgc2lt
cGxlIGV4YW1wbGVzIG9mIHRoaXMuDQoNCg0KDQogICBMZXMNCg0KDQoNClJlZ2FyZHMsDQpNdXN0
YXBoYS4NCg0KRnJvbTogc3ByaW5nIFttYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmddIE9u
IEJlaGFsZiBPZiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKQ0KU2VudDogU3VuZGF5LCBEZWNlbWJl
ciAwNCwgMjAxNiA3OjA0IFBNDQpUbzogc3ByaW5nQGlldGYub3JnPG1haWx0bzpzcHJpbmdAaWV0
Zi5vcmc+DQpTdWJqZWN0OiBbc3ByaW5nXSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1w
bGVyIFByb3Bvc2FsDQoNCg0KV2hlbiB0aGUgcHJvYmxlbSBhZGRyZXNzZWQgYnkgZHJhZnQtaWV0
Zi1zcHJpbmctY29uZmxpY3QtcmVzb2x1dGlvbiB3YXMgZmlyc3QNCg0KcHJlc2VudGVkIGF0IElF
VEYgOTQsIHRoZSBhdXRob3JzIGRlZmluZWQgdGhlIGZvbGxvd2luZyBwcmlvcml0aWVzOg0KDQoN
Cg0KMSlEZXRlY3QgdGhlIHByb2JsZW0NCg0KMilSZXBvcnQgdGhlIHByb2JsZW0NCg0KVGhpcyBh
bGVydHMgdGhlIG5ldHdvcmsgb3BlcmF0b3IgdG8gdGhlIGV4aXN0ZW5jZSBvZiBhIGNvbmZsaWN0
IHNvIHRoYXQNCg0KdGhlIGNvbmZpZ3VyYXRpb24gZXJyb3IgY2FuIGJlIGNvcnJlY3RlZC4NCg0K
MylEZWZpbmUgY29uc2lzdGVudCBiZWhhdmlvcg0KDQpUaGlzIGF2b2lkcyBtaXMtZm9yd2FyZGlu
ZyB3aGlsZSB0aGUgY29uZmxpY3QgZXhpc3RzLg0KDQo0KURvbuKAmXQgb3ZlcmVuZ2luZWVyIHRo
ZSBzb2x1dGlvbg0KDQpHaXZlbiB0aGF0IGl0IGlzIGltcG9zc2libGUgdG8ga25vdyB3aGljaCBv
ZiB0aGUgY29uZmxpY3RpbmcgZW50cmllcw0KDQppcyB0aGUgY29ycmVjdCBvbmUsIHdlIHNob3Vs
ZCBhcHBseSBhIHNpbXBsZSBhbGdvcml0aG0gdG8gcmVzb2x2ZSB0aGUgY29uZmxpY3QuDQoNCjUp
QWdyZWUgb24gdGhlIHJlc29sdXRpb24gYmVoYXZpb3INCg0KDQoNClRoZSByZXNvbHV0aW9uIGJl
aGF2aW9yIHdhcyBkZWxpYmVyYXRlbHkgdGhlIGxhc3QgcG9pbnQgYmVjYXVzZSBpdCB3YXMNCg0K
Y29uc2lkZXJlZCB0aGUgbGVhc3QgaW1wb3J0YW50Lg0KDQoNCg0KSW5wdXQgd2FzIHJlY2VpdmVk
IG92ZXIgdGhlIHBhc3QgeWVhciB3aGljaCBlbXBoYXNpemVkIHRoZSBpbXBvcnRhbmNlIG9mDQoN
CnRyeWluZyB0byAibWF4aW1pemUgZm9yd2FyZGluZyIgaW4gdGhlIHByZXNlbmNlIG9mIGNvbmZs
aWN0cy4gU3Vic2VxdWVudA0KDQpyZXZpc2lvbnMgb2YgdGhlIGRyYWZ0IGhhdmUgdHJpZWQgdG8g
YWRkcmVzcyB0aGlzIGNvbmNlcm4uIEhvd2V2ZXIgdGhlIGF1dGhvcnMNCg0KaGF2ZSByZXBlYXRl
ZGx5IHN0cmVzc2VkIHRoYXQgdGhlIHNvbHV0aW9uIGJlaW5nIHByb3Bvc2VkDQoNCigiaWdub3Jl
IG92ZXJsYXAgb25seSIpIHdhcyBtb3JlIGNvbXBsZXggdGhhbiBvdGhlciBvZmZlcmVkIGFsdGVy
bmF0aXZlcyBhbmQNCg0Kd291bGQgYmUgbW9yZSBkaWZmaWN1bHQgdG8gZ3VhcmFudGVlIGludGVy
b3BlcmFiaWxpdHkgYmVjYXVzZSBzdWJ0bGUNCg0KZGlmZmVyZW5jZXMgaW4gYW4gaW1wbGVtZW50
YXRpb24gY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgcmVzdWx0cy4NCg0KDQoNCkF0IElFVEY5NyBz
aWduaWZpY2FudCBmZWVkYmFjayB3YXMgcmVjZWl2ZWQgcHJlZmVycmluZyBhIHNpbXBsZXIgc29s
dXRpb24gdG8NCg0KdGhlIHByb2JsZW0uIFRoZSBhdXRob3JzIGFyZSB2ZXJ5IHN5bXBhdGhldGlj
IHRvIHRoaXMgZmVlZGJhY2sgYW5kIHRoZXJlZm9yZQ0KDQphcmUgcHJvcG9zaW5nIGEgc29sdXRp
b24gYmFzZWQgb24gd2hhdCB0aGUgZHJhZnQgZGVmaW5lcyBhcyB0aGUgIklnbm9yZSINCg0KcG9s
aWN5IC0gd2hlcmUgYWxsIGVudHJpZXMgd2hpY2ggYXJlIGluIGNvbmZsaWN0IGFyZSBpZ25vcmVk
LiBXZSBiZWxpZXZlIHRoaXMNCg0KaXMgZmFyIG1vcmUgZGVzaXJhYmxlIGFuZCBhbGlnbnMgd2l0
aCB0aGUgcHJpb3JpdGllcyBsaXN0ZWQgYWJvdmUuDQoNCg0KDQpXZSBvdXRsaW5lIHRoZSBwcm9w
b3NlZCBzb2x1dGlvbiBiZWxvdyBhbmQgd291bGQgbGlrZSB0byByZWNlaXZlIGZlZWRiYWNrIGZy
b20NCg0KdGhlIFdHIGJlZm9yZSBwdWJsaXNoaW5nIHRoZSBuZXh0IHJldmlzaW9uIG9mIHRoZSBk
cmFmdC4NCg0KDQoNCiAgIExlcyAob24gYmVoYWxmIG9mIHRoZSBhdXRob3JzKQ0KDQoNCg0KTmV3
IFByb3Bvc2FsDQoNCg0KDQpJbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mIHRoZSBkcmFmdCAiU1JN
UyBQcmVmZXJlbmNlIiB3YXMgaW50cm9kdWNlZC4gVGhpcw0KDQpwcm92aWRlcyBhIHdheSBmb3Ig
YSBudW1lcmljYWwgcHJlZmVyZW5jZSB0byBiZSBleHBsaWNpdGx5IGFzc29jaWF0ZWQgd2l0aCBh
bg0KDQpTUk1TIGFkdmVydGlzZW1lbnQuIFVzaW5nIHRoaXMgYW4gb3BlcmF0b3IgY2FuIGluZGlj
YXRlIHdoaWNoIGFkdmVydGlzZW1lbnQgaXMNCg0KdG8gYmUgcHJlZmVycmVkIHdoZW4gYSBjb25m
bGljdCBpcyBwcmVzZW50LiBUaGUgYXV0aG9ycyB0aGluayB0aGlzIGlzIGEgdXNlZnVsDQoNCmFk
ZGl0aW9uIGFuZCB3ZSB0aGVyZWZvcmUgd2FudCB0byBpbmNsdWRlIHRoaXMgaW4gdGhlIG5ldyBz
b2x1dGlvbi4NCg0KDQoNClRoZSBuZXcgcHJlZmVyZW5jZSBydWxlIHVzZWQgdG8gcmVzb2x2ZSBj
b25mbGljdHMgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCg0KQSBnaXZlbiBtYXBwaW5nIGVu
dHJ5IGlzIGNvbXBhcmVkIGFnYWluc3QgYWxsIG1hcHBpbmcgZW50cmllcyBpbiB0aGUgZGF0YWJh
c2UNCg0Kd2l0aCBhIHByZWZlcmVuY2UgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGl0cyBvd24u
IElmIHRoZXJlIGlzIGEgY29uZmxpY3QsDQoNCnRoZSBtYXBwaW5nIGVudHJ5IHdpdGggbG93ZXIg
cHJlZmVyZW5jZSBpcyBpZ25vcmVkLiBJZiB0d28gbWFwcGluZyBlbnRyaWVzIGFyZQ0KDQppbiBj
b25mbGljdCBhbmQgaGF2ZSBlcXVhbCBwcmVmZXJlbmNlIHRoZW4gYm90aCBlbnRyaWVzIGFyZSBp
Z25vcmVkLg0KDQoNCg0KSW1wbGVtZW50YXRpb24gb2YgdGhpcyBwb2xpY3kgaXMgZGVmaW5lZCBh
cyBmb2xsb3dzOg0KDQoNCg0KU3RlcCAxOiBXaXRoaW4gYSBzaW5nbGUgYWRkcmVzcy1mYW1pbHkv
YWxnb3JpdGhtL3RvcG9sb2d5IHNvcnQgZW50cmllcw0KDQpiYXNlZCBvbiBwcmVmZXJlbmNlDQoN
ClN0ZXAgMjogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHByZWZlcmVuY2UgZW50cmllcywgcmVz
b2x2ZSBwcmVmaXggY29uZmxpY3RzDQoNCnVzaW5nIHRoZSBhYm92ZSBwcmVmZXJlbmNlIHJ1bGUu
IFRoZSBvdXRwdXQgaXMgYW4gYWN0aXZlIHBvbGljeSBwZXIgdG9wb2xvZ3kuDQoNClN0ZXAgMzog
VGFrZSB0aGUgb3V0cHV0cyBmcm9tIFN0ZXAgMiBhbmQgYWdhaW4gc29ydCB0aGVtIGJ5IHByZWZl
cmVuY2UNCg0KU3RlcCA0OiBTdGFydGluZyB3aXRoIHRoZSBsb3dlc3QgcHJlZmVyZW5jZSBlbnRy
aWVzLCByZXNvbHZlIFNJRCBjb25mbGljdHMNCg0KdXNpbmcgdGhlIGFib3ZlIHByZWZlcmVuY2Ug
cnVsZQ0KDQoNCg0KVGhlIG91dHB1dCBmcm9tIFN0ZXAgNCBpcyB0aGVuIHRoZSBjdXJyZW50IEFj
dGl2ZSBQb2xpY3kuDQoNCg0KDQpIZXJlIGFyZSBhIGZldyBleGFtcGxlcy4gRWFjaCBtYXBwaW5n
IGVudHJ5IGlzIHJlcHJlc2VudGVkIGJ5IHRoZSB0dXBsZToNCg0KKFByZWZlcmVuY2UsIFByZWZp
eC9tYXNrIEluZGV4IHJhbmdlIDwjPikNCg0KDQoNCkV4YW1wbGUgMToNCg0KDQoNCjEuICgxNTAs
IDEuMS4xLjEvMzI8aHR0cDovLzEuMS4xLjEvMzI+IDEwMCByYW5nZSAxMDApDQoNCjIuICgxNDks
IDEuMS4xLjEwLzMyPGh0dHA6Ly8xLjEuMS4xMC8zMj4gMjAwIHJhbmdlIDIwMCkNCg0KMy4gKDE0
OCwgMS4xLjEuMTAxLzMyPGh0dHA6Ly8xLjEuMS4xMDEvMzI+IDUwMCByYW5nZSAxMCkNCg0KDQoN
CkVudHJ5IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMiwgaXQgaXMgaWdub3JlZC4NCg0KRW50cnkg
MiBjb25mbGljdHMgd2l0aCBlbnRyeSAxLCBpdCBpcyBpZ25vcmVkLg0KDQpBY3RpdmUgcG9saWN5
Og0KDQoNCg0KKDE1MCwgMS4xLjEuMS8zMjxodHRwOi8vMS4xLjEuMS8zMj4gMTAwIHJhbmdlIDEw
MCkNCg0KDQoNCkV4YW1wbGUgMjoNCg0KDQoNCjEuICgxNTAsIDEuMS4xLjEvMzI8aHR0cDovLzEu
MS4xLjEvMzI+IDEwMCByYW5nZSAxMDApDQoNCjIuICgxNTAsIDEuMS4xLjEwLzMyPGh0dHA6Ly8x
LjEuMS4xMC8zMj4gMjAwIHJhbmdlIDIwMCkNCg0KMy4gKDE1MCwgMS4xLjEuMTAxLzMyPGh0dHA6
Ly8xLjEuMS4xMDEvMzI+IDUwMCByYW5nZSAxMCkNCg0KNC4gKDE1MCwgMi4yLjIuMS8zMjxodHRw
Oi8vMi4yLjIuMS8zMj4gMTAwMCByYW5nZSAxKQ0KDQoNCg0KRW50cnkgMSBjb25mbGljdHMgd2l0
aCBlbnRyeSAyLCBib3RoIGFyZSBtYXJrZWQgYXMgaWdub3JlLg0KDQpFbnRyeSAzIGNvbmZsaWN0
cyB3aXRoIGVudHJ5IDIuIEl0IGlzIG1hcmtlZCBhcyBpZ25vcmUuDQoNCkVudHJ5IDQgaGFzIG5v
IGNvbmZsaWN0cyB3aXRoIGFueSBlbnRyaWVzDQoNCg0KDQpBY3RpdmUgcG9saWN5Og0KDQooMTUw
LCAyLjIuMi4xLzMyPGh0dHA6Ly8yLjIuMi4xLzMyPiAxMDAwIHJhbmdlIDEpDQoNCg0KDQpFeGFt
cGxlIDM6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyPGh0dHA6Ly8xLjEuMS4xLzMyPiAxMDAg
cmFuZ2UgNTAwKQ0KDQoyLiAoMTUwLCAxLjEuMS4xMC8zMjxodHRwOi8vMS4xLjEuMTAvMzI+IDIw
MCByYW5nZSAyMDApDQoNCjMuICgxNTAsIDEuMS4xLjEwMS8zMjxodHRwOi8vMS4xLjEuMTAxLzMy
PiA1MDAgcmFuZ2UgMTApDQoNCjQuICgxNTAsIDIuMi4yLjEvMzI8aHR0cDovLzIuMi4yLjEvMzI+
IDEwMDAgcmFuZ2UgMSkNCg0KDQoNCkVudHJ5IDEgY29uZmxpY3RzIHdpdGggZW50cmllcyAyLCAz
LCBhbmQgIDQuIEFsbCBlbnRyaWVzIGFyZSBtYXJrZWQgaWdub3JlLg0KDQoNCg0KQWN0aXZlIHBv
bGljeToNCg0KRW1wdHkNCg0KDQoNCkV4YW1wbGUgNDoNCg0KDQoNCjEuICgxNTAsIDEuMS4xLjEv
MzI8aHR0cDovLzEuMS4xLjEvMzI+IDEwMCByYW5nZSAxMCkNCg0KMi4gKDE0OSwgMS4xLjEuMTAv
MzI8aHR0cDovLzEuMS4xLjEwLzMyPiAyMDAgcmFuZ2UgMzAwKQ0KDQozLiAoMTQ5LCAxLjEuMS4x
MDEvMzI8aHR0cDovLzEuMS4xLjEwMS8zMj4gNTAwIHJhbmdlIDEwKQ0KDQo0LiAoMTQ4LCAyLjIu
Mi4xLzMyPGh0dHA6Ly8yLjIuMi4xLzMyPiAxMDAwIHJhbmdlIDEpDQoNCg0KDQpFbnRyeSA0IGNv
bmZsaWN0cyB3aXRoIGVudHJ5IDIuIEl0IGlzIG1hcmtlZCBpZ25vcmUuDQoNCkVudHJ5IDIgY29u
ZmxpY3RzIHdpdGggZW50cnkgMy4gRW50cmllcyAyIGFuZCAzIGFyZSBtYXJrZWQgaWdub3JlLg0K
DQoNCg0KQWN0aXZlIHBvbGljeToNCg0KKDE1MCwgMS4xLjEuMS8zMjxodHRwOi8vMS4xLjEuMS8z
Mj4gMTAwIHJhbmdlIDEwKQ0KDQoNCg0KDQoNCg0KDQoNCg0KX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18NCnNwcmluZyBtYWlsaW5nIGxpc3QNCnNwcmluZ0Bp
ZXRmLm9yZzxtYWlsdG86c3ByaW5nQGlldGYub3JnPg0KaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFp
bG1hbi9saXN0aW5mby9zcHJpbmcNCg0KDQo=

--_000_8c9c337f5176477eb680ebbcee776c44XCHALN001ciscocom_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K
CXtmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJcGFub3NlLTE6NSAwIDAgMCAwIDAgMCAwIDAgMDt9
DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIg
MiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3Nl
LTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNv
Tm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJn
aW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGlt
ZXMgTmV3IFJvbWFuIiwic2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNv
LXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVy
bGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxl
LXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l
O30NCnANCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRv
Ow0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFy
Z2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5l
dyBSb21hbiIsInNlcmlmIjt9DQpwLk1zb0FjZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29B
Y2V0YXRlDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9v
biBUZXh0IENoYXIiOw0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZv
bnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7fQ0Kc3Bh
bi5tNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLQ0KCXttc28tc3R5bGUtbmFtZTptXzY5MDEyOTcz
NTIzNzA3NDYyNjVnbWFpbC07fQ0KcC5tNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4
OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgsIGxpLm02OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCwgZGl2Lm02OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaA0KCXtt
c28tc3R5bGUtbmFtZTptXzY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29saXN0cGFyYWdyYXBoOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdp
bi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6
MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIs
InNlcmlmIjt9DQpwLm02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvcGxhaW50ZXh0LCBsaS5tNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dCwgZGl2Lm02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05
MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0DQoJe21zby1zdHlsZS1uYW1lOm1fNjkwMTI5
NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dDsNCglt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsNCgltYXJnaW4tcmlnaHQ6MGluOw0KCW1zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvOw0KCW1hcmdpbi1sZWZ0OjBpbjsNCglmb250LXNpemU6MTIuMHB0Ow0K
CWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7fQ0Kc3Bhbi5FbWFpbFN0eWxl
MjENCgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWwtcmVwbHk7DQoJZm9udC1mYW1pbHk6IkNhbGli
cmkiLCJzYW5zLXNlcmlmIjsNCgljb2xvcjojMUY0OTdEO30NCnNwYW4uQmFsbG9vblRleHRDaGFy
DQoJe21zby1zdHlsZS1uYW1lOiJCYWxsb29uIFRleHQgQ2hhciI7DQoJbXNvLXN0eWxlLXByaW9y
aXR5Ojk5Ow0KCW1zby1zdHlsZS1saW5rOiJCYWxsb29uIFRleHQiOw0KCWZvbnQtZmFtaWx5OiJU
YWhvbWEiLCJzYW5zLXNlcmlmIjt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpl
eHBvcnQtb25seTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO30NCkBwYWdl
IFdvcmRTZWN0aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4g
MS4waW4gMS4waW47fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQot
LT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4
dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3Rl
IG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpl
eHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+
DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1VUyIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+
DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlJvYmVydCDigJM8bzpwPjwvbzpw
Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0Qi
PllvdSBhcmUgbWFraW5nIHByb2dyZXNzIOKAkyBidXQgc3RpbGwgYSB3YXlzIHRvIGdvLg0KPC9z
cGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OldpbmdkaW5ncztj
b2xvcjojMUY0OTdEIj5KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj
MUY0OTdEIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPkNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgc2ltcGxlIGNhc2U6PG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj
MUY0OTdEIj5PU1BGIG9uIFJvdXRlciAjMSBhZHZlcnRpc2VzIDEuMS4xLjEvMzIgdyBTSUQgMTAw
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPk9TUEYgb24gUm91dGVyICMyIGFkdmVydGlz
ZXMgMi4yLjIuMi8zMiB3IFNJRCAxMDA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkJvdGggcm91dGVzIHdpbGwgZ2V0IGlu
c3RhbGxlZCBpbiB0aGUgUklCL0ZJQiBvbiBhbGwgcm91dGVycyDigJMgYnV0IHdlIGNhbm5vdCBp
bnN0YWxsIHRoZSBzYW1lIGxhYmVsIGluIHRoZSBmb3J3YXJkaW5nIGZvciBib3RoIGRlc3RpbmF0
aW9ucyDigJMgc28gd2UgaGF2ZSB0bw0KIGRlY2lkZSB3aGF0IHRvIGRvLjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+MSlX
ZSBjb3VsZCBzaW1wbHkgbm90IGluc3RhbGwgYSBsYWJlbCBmb3IgZWl0aGVyIHByZWZpeCDigJMg
dGhhdCBpcyB0aGUg4oCcc2ltcGxlL0lnbm9yZeKAnSBhcHByb2FjaCB0aGF0IGlzIGJlaW5nIGRp
c2N1c3NlZC4gSVAgZm9yd2FyZGluZyB3aWxsIHRoZW4gYmUgdXNlZC48bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjIpV2Ug
Y291bGQgdXNlIGEgcHJlZmVyZW5jZSBydWxlIHRvIGRldGVybWluZSB3aGljaCBlbnRyeSBpcyB0
aGUgd2lubmVyIGFzIGZhciBhcyB1c2Ugb2YgdGhlIGxhYmVsIGlzIGNvbmNlcm5lZCDigJMgdGhh
dCBpcyB0aGUg4oCcSWdub3JlIE92ZXJsYXAgT25seeKAnSBhcHByb2FjaA0KIGlzIG9uZSB3YXkg
b2YgZG9pbmcgdGhpcy4gVGhlIHdpbm5lciB3b3VsZCBoYXZlIGxhYmVscyBpbnN0YWxsZWQg4oCT
IHRoZSBsb3NlciB3b3VsZCBub3QuDQo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86
cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlJlZ2FyZGxlc3Mgb2YgY29uZmxpY3Qg
cmVzb2x1dGlvbiBzdHJhdGVneSBib3RoIHJvdXRlcyB3aWxsIHN0aWxsIGV4aXN0IGluIGZvcndh
cmRpbmcuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj5UaGUgZGViYXRlIHdlIGFyZSBoYXZpbmcgaXMgd2hldGhlciB0byB1
c2UgIzEgb3IgIzIuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkJ1dCBub25lIG9mIHRo
aXMgcmVsYXRlcyB0byDigJxvdmVybGFwcGluZyBwcmVmaXhlc+KAnSBvciBzYW1lIHJvdXRlIGZy
b20gbXVsdGlwbGUgc291cmNlcyBvciBhbnkgb3RoZXIgcHJvYmxlbSB3aGljaCByb3V0aW5nIGFs
cmVhZHkgaGFuZGxlcy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkhUSDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7
IExlczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0i
Ym9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4g
MGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNv
bGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTom
cXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4gcnJhc3p1a0BnbWFpbC5jb20gW21haWx0bzpy
cmFzenVrQGdtYWlsLmNvbV0NCjxiPk9uIEJlaGFsZiBPZiA8L2I+Um9iZXJ0IFJhc3p1azxicj4N
CjxiPlNlbnQ6PC9iPiBUaHVyc2RheSwgRGVjZW1iZXIgMjIsIDIwMTYgMjoyOSBQTTxicj4NCjxi
PlRvOjwvYj4gTGVzIEdpbnNiZXJnIChnaW5zYmVyZyk8YnI+DQo8Yj5DYzo8L2I+IEFpc3Nhb3Vp
LCBNdXN0YXBoYSAoTm9raWEgLSBDQSk7IHNwcmluZ0BpZXRmLm9yZzxicj4NCjxiPlN1YmplY3Q6
PC9iPiBSZTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9w
b3NhbDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDsiPkxlcyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7
QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PG86cD4mbmJzcDs8L286cD48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkFm
dGVyIG1lbnRhbCByZXNldCBJIGNvbmNsdWRlIHRoYXQgcGVyaGFwcyBldmVuIHRoZSBpbnRyb2R1
Y3Rpb24gb2YgdGhlIGRyYWZ0IGlzIHF1ZXN0aW9uYWJsZSBhcyBpbiByZWFsIGxpZmUgaXQgYXBw
bGllcyB0byBiZSBxdWl0ZSBhbiB1bnJlYWxpc3RpYyBzY2VuYXJpbyB0byBoYXZlIGEgc2l0dWF0
aW9uIHdoZXJlIG1vcmUgdGhlbg0KIG9uZSBwcm90b2NvbCBpcyB1c2VkICppbiB0aGUgc2FtZSB0
aW1lKiBhcyBhY3RpdmUgaW4gZm9yd2FyZGluZyBmb3IgYW4gZXhhY3Qgc2FtZSBJUCBwcmVmaXgu
Jm5ic3A7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDsiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5MYXN0IHRpbWUgSSBjaGVja2Vk
IFNJRHMgYXJlIG1lYW5pbmdsZXNzIHdpdGhvdXQgYSBwcmVmaXggdGhleSBhcmUgYXR0YWNoZWQg
dG8gYW5kIGl0IGlzIGEgcHJlZml4IHRoZXkgYWNjb21wYW55IHRvIGluZGljYXRlIHdoaWNoIFNJ
RCBzaG91bGQgYmUgdXNlZCBvbiBhIGdpdmVuIG5vZGUuJm5ic3A7PG86cD48L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjxvOnA+
Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7Ij5UaGVyZWZvciBpZiB5b3UgY29uc2lkZXIgdGhhdCB0b2RheSBtb3N0IGlt
cGxlbWVudGF0aW9ucyBwcmV0dHkgd2VsbCBjYW4gaGFuZGxlIG92ZXJsYXBwaW5nIHByZWZpeGVz
IGZyb20gbXVsdGlwbGUgc291cmNlcyB3aGF0IHJlYWwgcHJvYmxlbSBpcyB0aGlzIGRyYWZ0IHNv
bHZpbmcgPyZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+QXJlIHlvdSB0cnlp
bmcgdG8gY3JlYXRlIGEgZm9yd2FyZGluZyBncmFwaCBieSBTSURzIG9ubHkgZGV0YWNoaW5nIHRo
ZW0gZnJvbSBJUCBwcmVmaXhlcyBhbGwgdG9nZXRoZXIgPzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90OyI+Q2hlZXJzLDxicj4NClIuPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86
cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gVGh1LCBE
ZWMgMjIsIDIwMTYgYXQgMTA6MzIgUE0sIExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpICZsdDs8YSBo
cmVmPSJtYWlsdG86Z2luc2JlcmdAY2lzY28uY29tIiB0YXJnZXQ9Il9ibGFuayI+Z2luc2JlcmdA
Y2lzY28uY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx
RjQ5N0QiPlJvYmVydCDigJM8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Nh
bGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5Zb3UgaGF2ZSBhIGNvbXBsZXRlIG1pc3Vu
ZGVyc3RhbmRpbmcgb2Ygcm9sZXMgaGVyZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5Ib3cgdGhlIG93bmVyIG9m
IGEgcm91dGUgbWF5IGJlIHJlcHJlc2VudGVkIGluIHRoZSBSSUIgaXNu4oCZdCBpbXBhY3RlZCBi
eSBTUk1TIG9yIGNvbmZsaWN0IHJlc29sdXRpb24uDQogTm9yIGlzIHRoZSBkZXRlcm1pbmF0aW9u
IG9mIHdoaWNoIHJvdXRlIGlzIHRoZSBiZXN0IHJvdXRlLiBXZSBhcmUgb25seSBkZXRlcm1pbmlu
ZyB3aGV0aGVyIHRvIHVzZSBvciBub3QgdXNlIGEgU0lEIHdoaWNoIHdhcyBhc3NvY2lhdGVkIHdp
dGggdGhlIHByZWZpeCBieSBzb21lIGFkdmVydGlzZW1lbnQuPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtD
YWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+VGhlIElu
dHJvZHVjdGlvbiB0byB0aGUgZHJhZnQgc3RhdGVzOjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx
RjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPuKAnFRoZSBwcm9i
bGVtIHRvIGJlIGFkZHJlc3NlZCBpcyBwcm90b2NvbCBpbmRlcGVuZGVudCBpLmUuLCBzZWdtZW50
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7IHJlbGF0ZWQgYWR2
ZXJ0aXNlbWVudHMgbWF5IGJlIG9yaWdpbmF0ZWQgYnkgbXVsdGlwbGUgbm9kZXMgdXNpbmc8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsgZGlmZmVyZW50IHByb3Rv
Y29scyBhbmQgeWV0IHRoZSBjb25mbGljdCByZXNvbHV0aW9uIE1VU1QgYmUgdGhlIHNhbWU8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsgb24gYWxsIG5vZGVzIHJl
Z2FyZGxlc3Mgb2YgdGhlIHByb3RvY29sIHVzZWQgdG8gdHJhbnNwb3J0IHRoZTwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyBhZHZlcnRpc2VtZW50cy7igJ08L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xv
cjojMUY0OTdEIj5QbGVhc2UgZG8gYSBtZW50YWwgcmVzZXQuDQo8L3NwYW4+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6V2luZ2RpbmdzO2NvbG9yOiMxRjQ5N0QiPko8
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj
b2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsgTGVzPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFG
NDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29s
aWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0
eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzoz
LjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDsiPg0KPGEgaHJlZj0ibWFpbHRvOnJyYXN6dWtAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+
cnJhc3p1a0BnbWFpbC5jb208L2E+IFttYWlsdG86PGEgaHJlZj0ibWFpbHRvOnJyYXN6dWtAZ21h
aWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+cnJhc3p1a0BnbWFpbC5jb208L2E+XQ0KPGI+T24gQmVo
YWxmIE9mIDwvYj5Sb2JlcnQgUmFzenVrPGJyPg0KPGI+U2VudDo8L2I+IFRodXJzZGF5LCBEZWNl
bWJlciAyMiwgMjAxNiAxMTo1MiBBTTxicj4NCjxiPlRvOjwvYj4gTGVzIEdpbnNiZXJnIChnaW5z
YmVyZyk8YnI+DQo8Yj5DYzo8L2I+IEFpc3Nhb3VpLCBNdXN0YXBoYSAoTm9raWEgLSBDQSk7IDxh
IGhyZWY9Im1haWx0bzpzcHJpbmdAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj4NCnNwcmluZ0Bp
ZXRmLm9yZzwvYT48L3NwYW4+PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW3NwcmluZ10gU0lEIENvbmZs
aWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDsiPkhpIExlcyw8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7Ij5PbiAjMSBJIGFtIGFsc28gd2l0aCBNdXN0YXBoYSBoZXJlLiBGb3IgY2xhcml0eSBvZiB0
aGlzIGRpc2N1c3Npb24gY2FuIHlvdSBlbnVtZXJhdGUgd2hlbiBmcm9tIFJJQiB0byBGSUIvTEZJ
QiB5b3UgYXJlIGluc3RhbGxpbmcNCiB0aGUgZXhhY3Qgc2FtZSBhY3RpdmUgcHJlZml4IGZyb20g
bW9yZSB0aGVuIG9uZSBwcm9kdWNlciA/IElzIFNSTVMgc29ydCBvZiB6b21iaWUgaGVyZSBhbmQg
bm90IHRyZWF0ZWQgYXMgcmVhbCByb3V0ZSBwcm9kdWNlciBoZW5jZSB3ZSBoYXZlIGFuIGlzc3Vl
ID8gQW5kIHRoZSBpc3N1ZSBpcyBvbmx5IHdpdGggY29uZmxpY3RzIG9mIFNSTVMgJiM0MzsgcmVh
bCByb3V0ZSBwcm9kdWNlciA/Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1
b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+
PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBz
dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
OyI+T24gIzMgeW91IHNhaWQgdGhhdA0KPGk+JnF1b3Q7d2l0aCByZWRpc3RyaWJ1dGlvbi9yb3V0
ZSBsZWFraW5nIHRoZSBzb3VyY2Ugb2YgYW4gYWR2ZXJ0aXNlbWVudCBtYXkgYXBwZWFyIHRvIGJl
IGRpZmZlcmVudCBvbiBkaWZmZXJlbnQgcm91dGVycyZxdW90OzwvaT4gdGhhdCBpcyB2ZXJ5IHRy
dWUuIEluIGZhY3Qgd2l0aCBzaW1wbGUgc3RhdGljIHJvdXRlIG9yIHN0YXRpYyBsYWJlbCBjb25m
aWd1cmVkIG9uIGEgcm91dGVyIHRoZSBSSUIgYW5kIEZJQiBvbiB0aGF0IHJvdXRlciB3aWxsIGJl
IGRpZmZlcmVudA0KIHRoZW4gUklCIGFuZCBGSUIgb24gdGhlIG90aGVyIHJvdXRlcnMgd2l0aG91
dCBzdWNoIHN0YXRpYyByb3V0ZS4gQW5kIHRoZSBwb2ludCBpcyB0aGF0IHN1Y2ggc3RhdGljIHJv
dXRlIG9yIGxhYmVsIGlzIHRoZXJlIGZvciBhIHJlYXNvbiB5b3UgbWF5IG5vdCBrbm93IGFib3V0
LiBTbyBzdHJ1Z2dsaW5nIGZvciBkYXRhIHBsYW5lIGNvbnNpc3RlbmN5IOKAi2RlbGliZXJhdGVs
eSBleGNsdWRpbmcgc291cmNlJm5ic3A7d2hlbiBvcGVyYXRpb25hbCBuZWVkcyByZXF1aXJlDQog
b3RoZXJ3aXNlIGlzIG5vdCByZWFsbHkgdGhhdCBtdWNoIGhlbHBmdWwgSSBhbSBhZnJhaWQuPC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJp
YWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+R3JlZXRpbmdzLDwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5
bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsi
PlJvYmVydC4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+T24gVGh1LCBEZWMgMjIsIDIwMTYg
YXQgODozNyBQTSwgTGVzIEdpbnNiZXJnIChnaW5zYmVyZykgJmx0OzxhIGhyZWY9Im1haWx0bzpn
aW5zYmVyZ0BjaXNjby5jb20iIHRhcmdldD0iX2JsYW5rIj5naW5zYmVyZ0BjaXNjby5jb208L2E+
Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+TXVzdGFwaGEgLTwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImNvbG9yOiMx
RjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpu
b25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBw
dCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVD
NERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtU
YWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4gc3ByaW5nIFttYWlsdG86PGEgaHJlZj0ibWFpbHRvOnNw
cmluZy1ib3VuY2VzQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+c3ByaW5nLWJvdW5jZXNAaWV0
Zi5vcmc8L2E+XQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5BaXNzYW91aSwgTXVzdGFwaGEgKE5va2lh
IC0gQ0EpPGJyPg0KPGI+U2VudDo8L2I+IFRodXJzZGF5LCBEZWNlbWJlciAyMiwgMjAxNiA4OjEw
IEFNPGJyPg0KPHNwYW4gY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtIj48Yj5Ubzo8
L2I+IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpOyA8YSBocmVmPSJtYWlsdG86c3ByaW5nQGlldGYu
b3JnIiB0YXJnZXQ9Il9ibGFuayI+DQpzcHJpbmdAaWV0Zi5vcmc8L2E+PC9zcGFuPjxicj4NCjxi
PlN1YmplY3Q6PC9iPiBSZTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2lt
cGxlciBQcm9wb3NhbDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5IaSBMZXMsPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEw
LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ij5JIHJlYWQgc2xpZGVzIDE3LTIxIG9mIHRoZSBkb2N1bWVudCB5b3UgcmVmZXJlbmNlZCBiZWxv
dyBhbmQgSSBoYXZlIHRoZSBmb2xsb3dpbmcgY29tbWVudHM6PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJz
cDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7Ij4xLjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0Ij4mbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBw
dDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Q
YWdlIDE3LCDigJxPcmRlciBNYXR0ZXJzIC0gUHJlZml4IHZzIFNJRCBDb25mbGljdOKAnS48L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1t
LTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7Ij5XaGVuIHlvdSBwZXJmb3JtIHJlc29sdXRpb24gb24mbmJzcDsgYSBwZXIgcHJlZml4
IGJhc2lzLCBwcmVmaXggY29uZmxpY3RzIGFyZSBuYXR1cmFsbHkgcHJvY2Vzc2VkIGZpcnN0IGZv
bGxvd2VkIGJ5IFNJRCBjb25mbGljdHMNCiBhY3Jvc3MgZGlmZmVyZW50IHByZWZpeGVzLiBTbyB0
aGUgb3JkZXJpbmcgaXNzdWUgZGVzY3JpYmVkIGlzIG9ubHkgc3BlY2lmaWMgaWYgeW91IGRlY2lk
ZWQgdG8gcmVzb2x2ZSBjb25mbGljdGluZyBTSUQgZW50cmllcyBvdXRzaWRlIG9mIHRoZSBuYXR1
cmFsIHByZWZpeCByZXNvbHV0aW9uIGJ5IGEgcm91dGVyLg0KPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0
OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48Yj48
aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+W0xlczpdIFdoYXQgbWF5IHNlZW0g4oCcbmF0
dXJhbOKAnSB0byB5b3UgbWlnaHQgbm90IHRvIHNvbWVvbmUgZWxzZS4gSSBkb27igJl0IGNhcmUg
dG8gZGViYXRlIHRoYXQgcG9pbnQuIFdoYXQgaXMgYmVpbmcgaWxsdXN0cmF0ZWQgaGVyZSBpcyB0
aGF0IGluIG9yZGVyDQogdG8gcHJvdmlkZSBhIG5vcm1hdGl2ZSBzcGVjaWZpY2F0aW9uIHRoYXQg
4oCTIGlmIGZvbGxvd2VkIOKAkyBndWFyYW50ZWVzIGludGVyb3BlcmFiaWxpdHkgd2UgaGF2ZSB0
byBzcGVjaWZ5IHRoZSBvcmRlciBpbiB3aGljaCBjb25mbGljdHMgYXJlIHByb2Nlc3NlZCBvdGhl
cndpc2UgZGlmZmVyZW50IHJlc3VsdHMgbWF5IGJlIG9idGFpbmVkLjwvc3Bhbj48L2k+PC9iPjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90OyI+Mi48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBw
dCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90OyI+UGFnZSAxOCwg4oCcT3JkZXIgTWF0dGVyczogRGVyaXZlZCB2cyBub24tZGVyaXZlZOKA
kyBwcmVmaXggY29uZmxpY3TigJ0uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02
OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFn
cmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJp
YWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+SXQgc2VlbXMgdG8gbWUgdGhpcyBpc3N1
ZSBpcyBhbiBhcnRpZmFjdCBvZiB0aGUgc3BlY2lmaWMgYWxnb3JpdGhtIHVzZWQgdG8gcmVzb2x2
ZSBjb25mbGljdHMuIEJlY2F1c2UgdGhlIGFsZ29yaXRobSB1c2VzDQogcGFyYW1ldGVycyBzdWNo
IGFzIOKAnFJhbmdlIChzdGFydCB3IHNtYWxsZXN0KeKAnSB0aGVuIG9idmlvdXNseSBkZXJpdmVk
IFNSTVMgZW50cmllcyB3aWxsIGxlbmQgYSBkaWZmZXJlbnQgcmVzdWx0IHRoYW4gb3JpZ2luYWwg
U1JNUyBlbnRyaWVzLg0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+V2l0aCB0aGUgcHJlLXByZWZpeCByZXNvbHV0aW9u
LCB0aGUgb25seSBpbmZvcm1hdGlvbiBrZXB0IGZyb20gdGhlIG9yaWdpbmFsIFNSTVMgZW50cnkg
aXMgdGhlIHByZWZlcmVuY2UgYW5kIHRoZSBhZHZlcnRpc2luZw0KIG9yIG93bmVyIHJvdXRlci4g
QW55dGhpbmcgZWxzZSBpcyBub3QgdXNlZC4gSXQgc2VlbXMgdG8gbWUgYSBzaW1wbGUgYWxnb3Jp
dGhtIGJhc2VkIG9uIHByZWZlcmVuY2UgZmlyc3QgdGhlbiBmb2xsb3dlZCBieSBzb21lIHJ1bGUg
b24gc2VsZWN0aW5nIHRoZSBhZHZlcnRpc2luZyByb3V0ZXIgaWYgY29uZmxpY3RzIGV4aXN0IHdp
dGhpbiB0aGUgc2FtZSBwcmVmZXJlbmNlIHdvdWxkIHdvcmsuPC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0
OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48Yj48
aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+W0xlczpdIFlvdSBoYXZlIGltcGxlbWVudGVk
IHRoaW5ncyBpbiBhIGNlcnRhaW4gd2F5LiBTb21lb25lIGVsc2UgbWlnaHQgY2hvb3NlIHRvIGlt
cGxlbWVudCBpbiBhIGRpZmZlcmVudCB3YXkuIEEgbm9ybWF0aXZlIHNwZWNpZmljYXRpb24gZG9l
cyBub3QgKGFuZA0KIHNob3VsZCBub3QpIGNvbnN0cmFpbiBhbiBpbXBsZW1lbnRhdGlvbi4gV2hh
dCBpcyBiZWluZyBpbGx1c3RyYXRlZCBoZXJlIGlzIHRoYXQgaWYgdGhlIGltcGxlbWVudGF0aW9u
IGRvZXMgbm90IHJldGFpbiB0aGUgdW5kZXJpdmVkIGVudHJ5IChpbiB3aGF0ZXZlciBpbnRlcm5h
bCBmb3JtIGl0IGNob29zZXMpIGRpZmZlcmVudCByZXN1bHRzIHdpbGwgYmUgb2J0YWluZWQgYmVj
YXVzZSB0aGUgcHJlZmVyZW5jZSBhbGdvcml0aG0gZGVwZW5kcyBvbg0KIGNvbXBhcmluZyB0aGUg
dW5kZXJpdmVkIHJhbmdlcy48L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3Rw
YXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBw
dDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4z
Ljwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsNCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5GaW5hbGx5LCB0aGVyZSBp
cyBzb21ldGhpbmcgd2hpY2ggaGFzIG5vdCBiZWVuIGFkZHJlc3NlZCBpbiB0aGUgc2xpZGVzLiBU
aGVyZSBpcyBzdGlsbCBhIHBvc3NpYmlsaXR5IG9mIGNvbmZsaWN0aW5nIGVudHJpZXMgYW1vbmcg
U0lEcyBhZHZlcnRpc2VkIHVzaW5nIHRoZSBwcmVmaXggU0lEIHN1Yi1UTFYgd2l0aGluIGEgUHJl
Zml4DQogVExWIChJUy1JUyBJUCBSZWFjaCBUTFYgb3IgT1NQRiBFeHRlbmRlZCBQcmVmaXggVExW
KS4gQSBzaW1wbGUgcnVsZSBzZWxlY3RpbmcgdGhlIGFkdmVydGlzaW5nIHJvdXRlciBzaG91bGQg
YWxzbyB3b3JrIGZpbmUgaGVyZS48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48aT48c3Bh
biBzdHlsZT0iY29sb3I6IzFGNDk3RCI+W0xlczpdIE5vIOKAkyBzb3VyY2Ugb2YgYW4gYWR2ZXJ0
aXNlbWVudCBoYXMgYmVlbiBxdWl0ZQ0KPC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48aT48c3BhbiBzdHlsZT0iZm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+4oCL4oCLPC9zcGFu
PjwvaT48L2I+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PGI+PGk+ZGVsaWJlcmF0ZWx5IGV4Y2x1ZGVkIGZyb20gdGhlIHByZWZlcmVuY2UgYWxnb3JpdGht
LiBXaXRoIHJlZGlzdHJpYnV0aW9uL3JvdXRlIGxlYWtpbmcgdGhlIHNvdXJjZSBvZiBhbiBhZHZl
cnRpc2VtZW50IG1heSBhcHBlYXIgdG8gYmUgZGlmZmVyZW50IG9uIGRpZmZlcmVudCByb3V0ZXJz
LSB0aGlzDQogd291bGQgcmVzdWx0IGluIGRpZmZlcmVudCByZXN1bHRzIG9uIGRpZmZlcmVudCBy
b3V0ZXJzLjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxi
PjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9pPjwvYj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PGk+PHNwYW4gc3R5bGU9ImNv
bG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyBMZXM8L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwv
cD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iY29s
b3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5SZWdhcmRzLDwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
OyI+TXVzdGFwaGEuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3Bh
ZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25l
O2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGlu
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+RnJvbTo8L2I+IExlcyBHaW5zYmVyZyAoZ2lu
c2JlcmcpIFs8YSBocmVmPSJtYWlsdG86Z2luc2JlcmdAY2lzY28uY29tIiB0YXJnZXQ9Il9ibGFu
ayI+bWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNvbTwvYT5dDQo8YnI+DQo8Yj5TZW50OjwvYj4gRnJp
ZGF5LCBEZWNlbWJlciAwOSwgMjAxNiAxOjQ5IFBNPGJyPg0KPGI+VG86PC9iPiBBaXNzYW91aSwg
TXVzdGFwaGEgKE5va2lhIC0gQ0EpICZsdDs8YSBocmVmPSJtYWlsdG86bXVzdGFwaGEuYWlzc2Fv
dWlAbm9raWEuY29tIiB0YXJnZXQ9Il9ibGFuayI+bXVzdGFwaGEuYWlzc2FvdWlAbm9raWEuY29t
PC9hPiZndDs7DQo8YSBocmVmPSJtYWlsdG86c3ByaW5nQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFu
ayI+c3ByaW5nQGlldGYub3JnPC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPiBSRTogU0lEIENvbmZs
aWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbDxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5NdXN0YXBo
YSAtPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBz
dHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPGRpdiBz
dHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBp
biAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXIt
dG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Gcm9tOjwv
c3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiBBaXNzYW91aSwgTXVzdGFwaGEg
KE5va2lhIC0NCiBDQSkgWzxhIGhyZWY9Im1haWx0bzptdXN0YXBoYS5haXNzYW91aUBub2tpYS5j
b20iIHRhcmdldD0iX2JsYW5rIj5tYWlsdG86bXVzdGFwaGEuYWlzc2FvdWlAbm9raWEuY29tPC9h
Pl0NCjxicj4NCjxiPlNlbnQ6PC9iPiBGcmlkYXksIERlY2VtYmVyIDA5LCAyMDE2IDc6NDQgQU08
YnI+DQo8Yj5Ubzo8L2I+IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpOyA8YSBocmVmPSJtYWlsdG86
c3ByaW5nQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+DQpzcHJpbmdAaWV0Zi5vcmc8L2E+PGJy
Pg0KPGI+U3ViamVjdDo8L2I+IFJFOiBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVy
IFByb3Bvc2FsPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFs
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkkgaGF2ZSBhIGNvdXBsZSBvZiBjb21tZW50
cyBvbiB0aGUgYmVsb3cgcHJvcG9zYWwuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90
dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEw
LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ij4xLjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuMHB0Ij4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsNCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5SZWdhcmRpbmcgdGhl
IFNSTVMgUHJlZmVyZW5jZSBTdWItVExWIGluIHNlY3Rpb24gMy4xIG9mIHRoZSBkcmFmdC4gSW4g
bWFueSBjYXNlcywgYSBjb25maWd1cmF0aW9uIG9uIHRoZSByZXNvbHZpbmcgcm91dGVyIGNhbiBh
c3NpZ24gYSBwcmVmZXJlbmNlIHRvIGVhY2ggU1JNUyBpbiBjYXNlIHRoZXJlIGlzIG5vIGFkdmVy
dGlzZW1lbnQNCiBvZiB0aGlzIHN1Yi1UTFYgb3IgdG8gb3ZlcnJpZGUgYW4gYWR2ZXJ0aXNlZCB2
YWx1ZS4gSSBwcm9wb3NlIHRoYXQgdGhpcyBvcHRpb24gYmUgYWxsb3dlZC4gSGVyZSBpcyBhIHBy
b3Bvc2VkIHVwZGF0ZSB0byB0aGUgcmVsZXZhbnQgcGFyYWdyYXBoOjwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPuKAnDwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsgQWR2
ZXJ0aXNlbWVudCBvZiBhIHByZWZlcmVuY2UgdmFsdWUgaXMgb3B0aW9uYWwuJm5ic3A7IE5vZGVz
IHdoaWNoIGRvIG5vdDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmll
ciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsmbmJzcDthZHZlcnRpc2UgYSBwcmVmZXJlbmNlIHZhbHVlIGFyZSBhc3NpZ25lZCBhIHBy
ZWZlcmVuY2UgdmFsdWUgb2YgMTI4LiAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHls
ZT0iY29sb3I6cmVkIj5BIHJlc29sdmluZyByb3V0ZXIgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0
IG9yIHRoZSBhZHZlcnRpc2VkIHZhbHVlIGJ5IGxvY2FsIHBvbGljeS48L3NwYW4+PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
OyI+4oCcPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2
MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PGI+PGk+PHNw
YW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPltMZXM6XSBJbiBvcmRlciB0byBnZXQgY29uc2lzdGVu
dCBjb25mbGljdCByZXNvbHV0aW9uIG9uIGFsbCBub2RlcyBpbiB0aGUgbmV0d29yaywgaXQgaXMg
bmVjZXNzYXJ5IHRoYXQgdGhleSBhbGwgaGF2ZSB0aGUgc2FtZSBkYXRhYmFzZSDigJMgd2hpY2gg
aW5jbHVkZXMNCiB0aGUgcHJlZmVyZW5jZSB2YWx1ZS4gSWYgeW91IGFsbG93IGxvY2FsIHBvbGlj
eSB0byBtb2RpZnkgdGhlIHByZWZlcmVuY2UgeW91IG5vIGxvbmdlciBoYXZlIGNvbnNpc3RlbnQg
ZGF0YWJhc2VzIG9uIGFsbCBub2RlcyBhbmQgd2UgY2FuIG5vIGxvbmdlciBndWFyYW50ZWUgY29u
c2lzdGVudCBjb25mbGljdCByZXNvbHV0aW9uLiBTbyB5b3VyIHByb3Bvc2FsIGlzIG5vdCB2aWFi
bGUgSU1PLjwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Mi48L3NwYW4+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3Nw
YW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+SSBhbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0
aGUgY29uY2VwdCBvZiBzb3J0aW5nIFNSTVMgZW50cmllcyB3aGljaCBoYXZlIGRpZmZlcmVudCBw
cmVmaXhlcyBhbmQgZGlmZmVyZW50IHJhbmdlIHNpemVzLiAmbmJzcDs8L3NwYW4+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAy
NTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtm
b250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5TaW5j
ZSBhIFNJRCBhZHZlcnRpc2VkIGluIGEgcHJlZml4IFNJRCBzdWItVExWIHdpdGhpbiBhIFByZWZp
eCBUTFYgKElTLUlTIElQIFJlYWNoIFRMViBvciBPU1BGIEV4dGVuZGVkIFByZWZpeCBUTFYpIGhh
cw0KIGhpZ2hlciBwcmlvcml0eSBvdmVyIGEgU0lEIGZvciB0aGUgc2FtZSBwcmVmaXggYWR2ZXJ0
aXNlZCBmcm9tIGEgU1JNUywgdGhlbiB5b3UgaGF2ZSB0byBhZGQgdG8gdGhlIGJlbG93IHNvcnRp
bmcgYW4gZW50cnkgZm9yIGVhY2ggaW5kaXZpZHVhbCBwcmVmaXggd2hpY2ggYWR2ZXJ0aXNlZCBh
IHByZWZpeCBTSUQgc3ViLVRMViB3aXRoaW4gYSBwcmVmaXggVExWLg0KPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+QXQg
dGhpcyBwb2ludCwgdGhlIGNvbmNlcHQgb2YgYW4gZW50cnkgd2l0aCBtdWx0aXBsZSBwcmVmaXhl
cyBpcyBtb290IGFuZCB5b3UgbWF5IGFzIHdlbGwganVzdCBzb3J0IG9uIGEgcGVyIHByZWZpeCBi
YXNpcw0KIHdoaWNoIGlzIHRoZSBtb3N0IG5hdHVyYWwgdGhpbmcgdG8gZG8gZ2l2ZW4gdGhhdCB0
aGUgcHJlZml4IHJlc29sdXRpb24gYW5kIHRoZW4gdGhlIFNJRCByZXNvbHV0aW9uIGFyZSBwZXJm
b3JtZWQgb24gYSBwZXIgcHJlZml4IGJhc2lzLiBTSUQgY29uZmxpY3RzIGNhbiBiZSByZXNvbHZl
ZCBvbiBhIHBlciBwcmVmaXggYmFzaXMgdXNpbmcgdGhlIGJlbG93IHByb3Bvc2VkIHByZWZlcmVu
Y2UgYWxnb3JpdGhtIHdpdGhvdXQgaGF2aW5nIHRvIGlnbm9yZQ0KIFNJRCB2YWx1ZXMgZm9yIHVu
cmVsYXRlZCBwcmVmaXhlcyBqdXN0IGJlY2F1c2UgaXQgaGFwcGVucyB0aGF0IHRoZXkgd2VyZSBh
ZHZlcnRpc2VkIGluIHRoZSBzYW1lIFNSTVMgZW50cnkuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvbGlzdHBhcmFncmFwaCI+PGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNw
Ozwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PGI+PGk+
PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPltMZXM6XSBUaGUgc2ltcGxlciBwcm9wb3NhbCBk
b2VzIG5vdCByZXF1aXJlIHNvcnRpbmcgb24gYW55dGhpbmcgb3RoZXIgdGhhbiBwcmVmZXJlbmNl
LiBBZnRlciB0aGF0LCB5b3UgY2FuIHByb2Nlc3MgZW50cmllcyBpbiBhbnkgb3JkZXIgeW91IHdh
bnQgYW5kDQogeW91IHdpbGwgZ2V0IHRoZSBzYW1lIGFuc3dlci48L3NwYW4+PC9pPjwvYj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4
OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjoj
MUY0OTdEIj5XaXRoIOKAnElnbm9yZSBPdmVybGFwIE9ubHnigJ0gb25lIG9mIHRoZSBpc3N1ZXMg
d2l0aCB0cnlpbmcgdG8gdXNlIHRoZSBub24tY29uZmxpY3RpbmcgcG9ydGlvbnMgb2YgYSBtYXBw
aW5nIGVudHJ5IHdoaWNoIGhhcyBhIHJhbmdlICZndDsgMSBpcyB0aGF0IHRoZSBvcmRlcg0KIGlu
IHdoaWNoIHlvdSBwcm9jZXNzIGVudHJpZXMgaW5mbHVlbmNlcyB0aGUgcmVzdWx0LiBQbGVhc2Ug
c2VlIHNsaWRlcyAxNyDigJMgMjAgZnJvbSB0aGUgSUVURjk3IHByZXNlbnRhdGlvbjoNCjxhIGhy
ZWY9Imh0dHBzOi8vd3d3LmlldGYub3JnL3Byb2NlZWRpbmdzLzk3L3NsaWRlcy9zbGlkZXMtOTct
c3ByaW5nLTFfaWV0Zjk3X2RyYWZ0LWlldGYtc3ByaW5nLWNvbmZsaWN0LXJlc29sdXRpb24tMDIt
MDAucHB0eCIgdGFyZ2V0PSJfYmxhbmsiPg0KaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcHJvY2VlZGlu
Z3MvOTcvc2xpZGVzL3NsaWRlcy05Ny1zcHJpbmctMV9pZXRmOTdfZHJhZnQtaWV0Zi1zcHJpbmct
Y29uZmxpY3QtcmVzb2x1dGlvbi0wMi0wMC5wcHR4PC9hPiBmb3Igc29tZSBzaW1wbGUgZXhhbXBs
ZXMgb2YgdGhpcy48L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkw
MTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3Jh
cGgiPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9pPjwv
Yj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxiPjxpPjxzcGFuIHN0eWxlPSJj
b2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsgTGVzPC9zcGFuPjwvaT48L2I+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPlJlZ2FyZHMsPC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7Ij5NdXN0YXBoYS48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41
cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVy
Om5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBp
biAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj5Gcm9tOjwvYj4gc3ByaW5nIFs8YSBo
cmVmPSJtYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj5tYWls
dG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmc8L2E+XQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5MZXMg
R2luc2JlcmcgKGdpbnNiZXJnKTxicj4NCjxiPlNlbnQ6PC9iPiBTdW5kYXksIERlY2VtYmVyIDA0
LCAyMDE2IDc6MDQgUE08YnI+DQo8Yj5Ubzo8L2I+IDxhIGhyZWY9Im1haWx0bzpzcHJpbmdAaWV0
Zi5vcmciIHRhcmdldD0iX2JsYW5rIj5zcHJpbmdAaWV0Zi5vcmc8L2E+PGJyPg0KPGI+U3ViamVj
dDo8L2I+IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9z
YWw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5XaGVuIHRoZSBwcm9ibGVtIGFk
ZHJlc3NlZCBieSBkcmFmdC1pZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uIHdhcyBmaXJz
dA0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1t
LTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPnByZXNlbnRlZCBhdCBJRVRGIDk0LCB0
aGUgYXV0aG9ycyBkZWZpbmVkIHRoZSBmb2xsb3dpbmcgcHJpb3JpdGllczo8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEy
OTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjEp
RGV0ZWN0IHRoZSBwcm9ibGVtPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjIpUmVwb3J0
IHRoZSBwcm9ibGVtPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYy
NjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPlRoaXMgYWxlcnRzIHRo
ZSBuZXR3b3JrIG9wZXJhdG9yIHRvIHRoZSBleGlzdGVuY2Ugb2YgYSBjb25mbGljdCBzbyB0aGF0
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPnRoZSBjb25maWd1cmF0aW9uIGVycm9yIGNh
biBiZSBjb3JyZWN0ZWQuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjMpRGVmaW5lIGNv
bnNpc3RlbnQgYmVoYXZpb3I8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3
MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+VGhpcyBhdm9p
ZHMgbWlzLWZvcndhcmRpbmcgd2hpbGUgdGhlIGNvbmZsaWN0IGV4aXN0cy48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb3BsYWludGV4dCI+NClEb27igJl0IG92ZXJlbmdpbmVlciB0aGUgc29sdXRpb248bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4
OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+R2l2ZW4gdGhhdCBpdCBpcyBpbXBvc3NpYmxlIHRv
IGtub3cgd2hpY2ggb2YgdGhlIGNvbmZsaWN0aW5nIGVudHJpZXM8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1z
b3BsYWludGV4dCI+aXMgdGhlIGNvcnJlY3Qgb25lLCB3ZSBzaG91bGQgYXBwbHkgYSBzaW1wbGUg
YWxnb3JpdGhtIHRvIHJlc29sdmUgdGhlIGNvbmZsaWN0LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij41KUFncmVlIG9uIHRoZSByZXNvbHV0aW9uIGJlaGF2aW9yPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5UaGUg
cmVzb2x1dGlvbiBiZWhhdmlvciB3YXMgZGVsaWJlcmF0ZWx5IHRoZSBsYXN0IHBvaW50IGJlY2F1
c2UgaXQgd2FzDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2
NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Y29uc2lkZXJlZCB0aGUg
bGVhc3QgaW1wb3J0YW50LjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4
OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+SW5wdXQgd2FzIHJlY2VpdmVkIG92ZXIgdGhlIHBh
c3QgeWVhciB3aGljaCBlbXBoYXNpemVkIHRoZSBpbXBvcnRhbmNlIG9mPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPnRyeWluZyB0byAmcXVvdDttYXhpbWl6ZSBmb3J3YXJkaW5nJnF1b3Q7
IGluIHRoZSBwcmVzZW5jZSBvZiBjb25mbGljdHMuIFN1YnNlcXVlbnQ8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4
Nm1zb3BsYWludGV4dCI+cmV2aXNpb25zIG9mIHRoZSBkcmFmdCBoYXZlIHRyaWVkIHRvIGFkZHJl
c3MgdGhpcyBjb25jZXJuLiBIb3dldmVyIHRoZSBhdXRob3JzDQo8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1z
b3BsYWludGV4dCI+aGF2ZSByZXBlYXRlZGx5IHN0cmVzc2VkIHRoYXQgdGhlIHNvbHV0aW9uIGJl
aW5nIHByb3Bvc2VkDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0
NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+KCZxdW90O2lnbm9y
ZSBvdmVybGFwIG9ubHkmcXVvdDspIHdhcyBtb3JlIGNvbXBsZXggdGhhbiBvdGhlciBvZmZlcmVk
IGFsdGVybmF0aXZlcyBhbmQNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij53b3VsZCBi
ZSBtb3JlIGRpZmZpY3VsdCB0byBndWFyYW50ZWUgaW50ZXJvcGVyYWJpbGl0eSBiZWNhdXNlIHN1
YnRsZQ0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFp
bC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPmRpZmZlcmVuY2VzIGluIGFuIGlt
cGxlbWVudGF0aW9uIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50IHJlc3VsdHMuPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAx
Mjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5B
dCBJRVRGOTcgc2lnbmlmaWNhbnQgZmVlZGJhY2sgd2FzIHJlY2VpdmVkIHByZWZlcnJpbmcgYSBz
aW1wbGVyIHNvbHV0aW9uIHRvDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1
MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+dGhlIHBy
b2JsZW0uIFRoZSBhdXRob3JzIGFyZSB2ZXJ5IHN5bXBhdGhldGljIHRvIHRoaXMgZmVlZGJhY2sg
YW5kIHRoZXJlZm9yZQ0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPmFyZSBwcm9wb3Np
bmcgYSBzb2x1dGlvbiBiYXNlZCBvbiB3aGF0IHRoZSBkcmFmdCBkZWZpbmVzIGFzIHRoZSAmcXVv
dDtJZ25vcmUmcXVvdDsNCjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5wb2xpY3kgLSB3
aGVyZSBhbGwgZW50cmllcyB3aGljaCBhcmUgaW4gY29uZmxpY3QgYXJlIGlnbm9yZWQuIFdlIGJl
bGlldmUgdGhpcw0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYy
NjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPmlzIGZhciBtb3JlIGRl
c2lyYWJsZSBhbmQgYWxpZ25zIHdpdGggdGhlIHByaW9yaXRpZXMgbGlzdGVkIGFib3ZlLjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWlu
dGV4dCI+V2Ugb3V0bGluZSB0aGUgcHJvcG9zZWQgc29sdXRpb24gYmVsb3cgYW5kIHdvdWxkIGxp
a2UgdG8gcmVjZWl2ZSBmZWVkYmFjayBmcm9tDQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJt
NjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4
dCI+dGhlIFdHIGJlZm9yZSBwdWJsaXNoaW5nIHRoZSBuZXh0IHJldmlzaW9uIG9mIHRoZSBkcmFm
dC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29wbGFpbnRleHQiPiZuYnNwOyZuYnNwOyBMZXMgKG9uIGJlaGFsZiBvZiB0aGUgYXV0aG9ycyk8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPjxpPk5ldyBQcm9wb3NhbDwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJt
NjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4
dCI+PGk+Jm5ic3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48aT5JbiB0aGUg
bGF0ZXN0IHJldmlzaW9uIG9mIHRoZSBkcmFmdCAmcXVvdDtTUk1TIFByZWZlcmVuY2UmcXVvdDsg
d2FzIGludHJvZHVjZWQuIFRoaXMNCjwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkw
MTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+
PGk+cHJvdmlkZXMgYSB3YXkgZm9yIGEgbnVtZXJpY2FsIHByZWZlcmVuY2UgdG8gYmUgZXhwbGlj
aXRseSBhc3NvY2lhdGVkIHdpdGggYW4NCjwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJt
NjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4
dCI+PGk+U1JNUyBhZHZlcnRpc2VtZW50LiBVc2luZyB0aGlzIGFuIG9wZXJhdG9yIGNhbiBpbmRp
Y2F0ZSB3aGljaCBhZHZlcnRpc2VtZW50IGlzDQo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFp
bnRleHQiPjxpPnRvIGJlIHByZWZlcnJlZCB3aGVuIGEgY29uZmxpY3QgaXMgcHJlc2VudC4gVGhl
IGF1dGhvcnMgdGhpbmsgdGhpcyBpcyBhIHVzZWZ1bA0KPC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNv
cGxhaW50ZXh0Ij48aT5hZGRpdGlvbiBhbmQgd2UgdGhlcmVmb3JlIHdhbnQgdG8gaW5jbHVkZSB0
aGlzIGluIHRoZSBuZXcgc29sdXRpb24uPC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02
OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0
Ij48aT4mbmJzcDs8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxpPlRoZSBuZXcg
cHJlZmVyZW5jZSBydWxlIHVzZWQgdG8gcmVzb2x2ZSBjb25mbGljdHMgaXMgZGVmaW5lZCBhcyBm
b2xsb3dzOjwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2
NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+Jm5ic3A7PC9pPjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48Yj48aT5BIGdpdmVuIG1hcHBpbmcgZW50cnkg
aXMgY29tcGFyZWQgYWdhaW5zdCBhbGwgbWFwcGluZyBlbnRyaWVzIGluIHRoZSBkYXRhYmFzZQ0K
PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdt
YWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+d2l0aCBhIHByZWZl
cmVuY2UgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGl0cyBvd24uIElmIHRoZXJlIGlzIGEgY29u
ZmxpY3QsDQo8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48Yj48aT50aGUg
bWFwcGluZyBlbnRyeSB3aXRoIGxvd2VyIHByZWZlcmVuY2UgaXMgaWdub3JlZC4gSWYgdHdvIG1h
cHBpbmcgZW50cmllcyBhcmU8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAx
Mjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48
Yj48aT5pbiBjb25mbGljdCBhbmQgaGF2ZSBlcXVhbCBwcmVmZXJlbmNlIHRoZW4gYm90aCBlbnRy
aWVzIGFyZSBpZ25vcmVkLjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEy
OTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxp
PiZuYnNwOzwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2
NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+SW1wbGVtZW50YXRp
b24gb2YgdGhpcyBwb2xpY3kgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvaT48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb3BsYWludGV4dCI+PGk+Jm5ic3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50
ZXh0Ij48Yj48aT5TdGVwIDE6IFdpdGhpbiBhIHNpbmdsZSBhZGRyZXNzLWZhbWlseS9hbGdvcml0
aG0vdG9wb2xvZ3kgc29ydCBlbnRyaWVzDQo8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij48Yj48aT5iYXNlZCBvbiBwcmVmZXJlbmNlDQo8L2k+PC9iPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvcGxhaW50ZXh0Ij48Yj48aT5TdGVwIDI6IFN0YXJ0aW5nIHdpdGggdGhlIGxvd2VzdCBw
cmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgcHJlZml4IGNvbmZsaWN0cw0KPC9pPjwvYj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4
OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+dXNpbmcgdGhlIGFib3ZlIHByZWZlcmVu
Y2UgcnVsZS4gVGhlIG91dHB1dCBpcyBhbiBhY3RpdmUgcG9saWN5IHBlciB0b3BvbG9neS48L2k+
PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48Yj48aT5TdGVwIDM6IFRha2UgdGhl
IG91dHB1dHMgZnJvbSBTdGVwIDIgYW5kIGFnYWluIHNvcnQgdGhlbSBieSBwcmVmZXJlbmNlDQo8
L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48Yj48aT5TdGVwIDQ6IFN0YXJ0
aW5nIHdpdGggdGhlIGxvd2VzdCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgU0lEIGNvbmZs
aWN0cw0KPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0
NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+dXNpbmcg
dGhlIGFib3ZlIHByZWZlcmVuY2UgcnVsZTwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFp
bnRleHQiPjxiPjxpPiZuYnNwOzwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5
MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQi
PjxiPjxpPlRoZSBvdXRwdXQgZnJvbSBTdGVwIDQgaXMgdGhlbiB0aGUgY3VycmVudCBBY3RpdmUg
UG9saWN5LjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5IZXJlIGFyZSBhIGZldyBleGFtcGxlcy4gRWFjaCBt
YXBwaW5nIGVudHJ5IGlzIHJlcHJlc2VudGVkIGJ5IHRoZSB0dXBsZTo8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4
Nm1zb3BsYWludGV4dCI+KFByZWZlcmVuY2UsIFByZWZpeC9tYXNrIEluZGV4IHJhbmdlICZsdDsj
Jmd0Oyk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWls
LW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPkV4YW1wbGUgMTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkw
MTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+
Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFp
bC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjEuICgxNTAsIDxhIGhyZWY9Imh0
dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4xLzMyPC9hPiAxMDAgcmFu
Z2UgMTAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4yLiAoMTQ5LCA8YSBocmVmPSJo
dHRwOi8vMS4xLjEuMTAvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEwLzMyPC9hPiAyMDAg
cmFuZ2UgMjAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1
Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4zLiAoMTQ4LCA8YSBocmVm
PSJodHRwOi8vMS4xLjEuMTAxLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4xMDEvMzI8L2E+
IDUwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0
NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVudHJ5IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMiwg
aXQgaXMgaWdub3JlZC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0
NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+RW50cnkgMiBjb25m
bGljdHMgd2l0aCBlbnRyeSAxLCBpdCBpcyBpZ25vcmVkLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij5BY3RpdmUgcG9saWN5OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+KDE1MCwgPGEgaHJlZj0iaHR0cDovLzEu
MS4xLjEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEvMzI8L2E+IDEwMCByYW5nZSAxMDAp
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNv
cGxhaW50ZXh0Ij5FeGFtcGxlIDI6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTcz
NTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNw
OzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05
MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4xLiAoMTUwLCA8YSBocmVmPSJodHRwOi8v
MS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMS8zMjwvYT4gMTAwIHJhbmdlIDEw
MCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Mi4gKDE1MCwgPGEgaHJlZj0iaHR0cDov
LzEuMS4xLjEwLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4xMC8zMjwvYT4gMjAwIHJhbmdl
IDIwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWls
LW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+My4gKDE1MCwgPGEgaHJlZj0iaHR0
cDovLzEuMS4xLjEwMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMTAxLzMyPC9hPiA1MDAg
cmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjQuICgxNTAsIDxhIGhyZWY9
Imh0dHA6Ly8yLjIuMi4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoyLjIuMi4xLzMyPC9hPiAxMDAw
IHJhbmdlIDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvcGxhaW50ZXh0Ij5FbnRyeSAxIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIsIGJvdGgg
YXJlIG1hcmtlZCBhcyBpZ25vcmUuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTcz
NTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVudHJ5
IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGFzIGlnbm9yZS48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+RW50cnkgNCBoYXMgbm8gY29uZmxpY3RzIHdpdGggYW55
IGVudHJpZXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdt
YWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQiPkFjdGl2ZSBwb2xpY3k6PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFp
bnRleHQiPigxNTAsIDxhIGhyZWY9Imh0dHA6Ly8yLjIuMi4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+
DQoyLjIuMi4xLzMyPC9hPiAxMDAwIHJhbmdlIDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
bTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRl
eHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1
Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5FeGFtcGxlIDM6PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50
ZXh0Ij4xLiAoMTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsi
Pg0KMS4xLjEuMS8zMjwvYT4gMTAwIHJhbmdlIDUwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWlu
dGV4dCI+Mi4gKDE1MCwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEwLzMyIiB0YXJnZXQ9Il9ibGFu
ayI+DQoxLjEuMS4xMC8zMjwvYT4gMjAwIHJhbmdlIDIwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3Bs
YWludGV4dCI+My4gKDE1MCwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEwMS8zMiIgdGFyZ2V0PSJf
YmxhbmsiPg0KMS4xLjEuMTAxLzMyPC9hPiA1MDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29wbGFpbnRleHQiPjQuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8yLjIuMi4xLzMyIiB0YXJnZXQ9
Il9ibGFuayI+DQoyLjIuMi4xLzMyPC9hPiAxMDAwIHJhbmdlIDEpPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5FbnRyeSAx
IGNvbmZsaWN0cyB3aXRoIGVudHJpZXMgMiwgMywgYW5kJm5ic3A7IDQuIEFsbCBlbnRyaWVzIGFy
ZSBtYXJrZWQgaWdub3JlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4
OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+QWN0aXZlIHBvbGljeTo8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4
Nm1zb3BsYWludGV4dCI+RW1wdHk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1
MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkV4YW1wbGUgNDo8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4
Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTcz
NTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjEuICgx
NTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4x
LzMyPC9hPiAxMDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTcz
NTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjIuICgx
NDksIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMC8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEu
MTAvMzI8L2E+IDIwMCByYW5nZSAzMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEy
OTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjMu
ICgxNDksIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMDEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEu
MS4xLjEwMS8zMjwvYT4gNTAwIHJhbmdlIDEwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02
OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0
Ij40LiAoMTQ4LCA8YSBocmVmPSJodHRwOi8vMi4yLjIuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0K
Mi4yLjIuMS8zMjwvYT4gMTAwMCByYW5nZSAxKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02
OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdt
YWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+RW50cnkgNCBjb25mbGljdHMg
d2l0aCBlbnRyeSAyLiBJdCBpcyBtYXJrZWQgaWdub3JlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij5FbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDMuIEVudHJpZXMgMiBhbmQgMyBh
cmUgbWFya2VkIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3
MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkFjdGl2ZSBwb2xpY3k6PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPigxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9
Il9ibGFuayI+DQoxLjEuMS4xLzMyPC9hPiAxMDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttYXJnaW4tYm90dG9tOjEyLjBwdCI+
PGJyPg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+
DQpzcHJpbmcgbWFpbGluZyBsaXN0PGJyPg0KPGEgaHJlZj0ibWFpbHRvOnNwcmluZ0BpZXRmLm9y
ZyIgdGFyZ2V0PSJfYmxhbmsiPnNwcmluZ0BpZXRmLm9yZzwvYT48YnI+DQo8YSBocmVmPSJodHRw
czovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwcmluZyIgdGFyZ2V0PSJfYmxhbmsi
Pmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vc3ByaW5nPC9hPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_8c9c337f5176477eb680ebbcee776c44XCHALN001ciscocom_--


From nobody Thu Dec 22 14:54:53 2016
Return-Path: <rraszuk@gmail.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 900001279EB for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 14:54:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.596
X-Spam-Level: 
X-Spam-Status: No, score=-2.596 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yDYORRa6gQMp for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 14:54:47 -0800 (PST)
Received: from mail-qt0-x243.google.com (mail-qt0-x243.google.com [IPv6:2607:f8b0:400d:c0d::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 85BB2127078 for <spring@ietf.org>; Thu, 22 Dec 2016 14:54:47 -0800 (PST)
Received: by mail-qt0-x243.google.com with SMTP id 41so3514285qtn.0 for <spring@ietf.org>; Thu, 22 Dec 2016 14:54:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=Szw66D0QKQgqKI24tj+fsg9d+96UO+fL4cIy7EcmfGk=; b=r/KoOyWpT5sk/Ln31GYMS8f+XfMKG4Cqp1r3dpDjuJvq3T0qrJn1l1SQ+4qXjhcy+j eTgXr/3pMeI8UbXtTZfhL9GGPebiqP6a011QJ0kiaI4owTIU0Y4L3CLKeumJhxyRy3VY kmk3pW7lApONp6tuzd9p5ExqvxHm6ZzggefPbPPXBMV3oi8ZblhSy5Gg/teX7FesqKnt fITkgWIgdptJF+1Cnkus1X50u8QdaKihsYFeWrXS4tdcuSDZy2/ks6nW2SmMTyANLPfd BpoJL9bGIR0rUAhLiHm+U36zOIWETH+tcFhuJBbuUPQQH6P8TyjfsfHVuvmsnWtrPUap hLMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=Szw66D0QKQgqKI24tj+fsg9d+96UO+fL4cIy7EcmfGk=; b=qU5+DvTuT7mFRLK87X3ctgApkN3DinCT6ptaWNDMv7stUxVniq7FL+E2UVI49f28VC ontI5puPV/s21LBJDXJ3DbPYbecbLP8MZKzoDUz+kQwgMlFDFvsrKujSmD2QlkWFXYAi qRfmzOfj7GJjmelkVCSlAqMRieg/VoBg+jXLGCjqk4n3Q+SGe3tWjFuCISPtGO47WrAJ RHwb8O5Xht/ZXR82r/hxdKEYTVeXa0ukEebYSARW8PPHaha4xUWKF6oerN+kc5j/NX8E X4lkF7iXyE+do+Ual2cXdzppgBZ0azQuuYvUr1gNy4m9b974vKz0TMdwMj0Dt1QB3Xk0 FF8w==
X-Gm-Message-State: AIkVDXIIYZUGqisyftUVUGfcOH8NxXhZwBYoEohHsbUHyIOif1l0n2MUuIe0yHh58vaHk8Zpi+N3UMtUsT+CGg==
X-Received: by 10.237.37.77 with SMTP id w13mr13233063qtc.197.1482447286431; Thu, 22 Dec 2016 14:54:46 -0800 (PST)
MIME-Version: 1.0
Sender: rraszuk@gmail.com
Received: by 10.140.16.50 with HTTP; Thu, 22 Dec 2016 14:54:45 -0800 (PST)
In-Reply-To: <8c9c337f5176477eb680ebbcee776c44@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com> <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com> <CA+b+ERnhaUTJ45FwMvMf3V8xhqRKfpGE_9h8MgmOqBejvscAaA@mail.gmail.com> <ae35b4f22e7744f9a424a8ad02c12a2b@XCH-ALN-001.cisco.com> <CA+b+ERke08DVHyrZ_=tMpiOgedzydsR8VktHAKfzzQDYkAOArQ@mail.gmail.com> <8c9c337f5176477eb680ebbcee776c44@XCH-ALN-001.cisco.com>
From: Robert Raszuk <robert@raszuk.net>
Date: Thu, 22 Dec 2016 23:54:45 +0100
X-Google-Sender-Auth: 4vaVvpsuddSICYt0UxyIl0T27go
Message-ID: <CA+b+ERkisECT+KpFK=O4zix3n+Wfk6=0846RApGxhxOaHySaPg@mail.gmail.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Content-Type: multipart/alternative; boundary=001a114108eae7f97f0544472761
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/hZO7IXBVSBjD1lwT80bUZPylHYQ>
Cc: "spring@ietf.org" <spring@ietf.org>, "Aissaoui, Mustapha \(Nokia - CA\)" <mustapha.aissaoui@nokia.com>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 22:54:51 -0000

--001a114108eae7f97f0544472761
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi Les,


> =E2=80=8B
OSPF on Router #1 advertises 1.1.1.1/32 w SID 100

> OSPF on Router #2 advertises 2.2.2.2/32 w SID 100



 > Both routes will get installed in the RIB/FIB on all routers =E2=80=93 b=
ut we

> cannot install the same label in the forwarding for both destinations =E2=
=80=93

> so we have to decide what to do.


Why not ? To me this looks like form of basic pure SR anycast ! In fact if
you detach requirement and dependency on IP anycast from SR anycast there
is potential for nice applications with that making SR even more
attractive.


> we  cannot install the same label in the forwarding for both destinations


Really ? Same label can point to N outgoing paths .. this is normal for
ages for ECMP.


With MPLS in fact  - as very few may recall - there is special knob
allowing *unequal cost load balancing UCMP*.  Very nice feature if one
knows what he/she is doing :).


Cheers,
R.




On Thu, Dec 22, 2016 at 11:46 PM, Les Ginsberg (ginsberg) <
ginsberg@cisco.com> wrote:

> Robert =E2=80=93
>
>
>
> You are making progress =E2=80=93 but still a ways to go. J
>
>
>
> Consider the following simple case:
>
>
>
> =E2=80=8B=E2=80=8B
> OSPF on Router #1 advertises 1.1.1.1/32 w SID 100
>
> OSPF on Router #2 advertises 2.2.2.2/32 w SID 100
>
>
>
> Both routes will get installed in the RIB/FIB on all routers =E2=80=93 bu=
t we
> cannot install the same label in the forwarding for both destinations =E2=
=80=93 so
> we have to decide what to do.
>
>
>
> 1)We could simply not install a label for either prefix =E2=80=93 that is=
 the
> =E2=80=9Csimple/Ignore=E2=80=9D approach that is being discussed. IP forw=
arding will then
> be used.
>
>
>
> 2)We could use a preference rule to determine which entry is the winner a=
s
> far as use of the label is concerned =E2=80=93 that is the =E2=80=9CIgnor=
e Overlap Only=E2=80=9D
> approach is one way of doing this. The winner would have labels installed=
 =E2=80=93
> the loser would not.
>
>
>
> Regardless of conflict resolution strategy both routes will still exist i=
n
> forwarding.
>
>
>
> The debate we are having is whether to use #1 or #2.
>
> But none of this relates to =E2=80=9Coverlapping prefixes=E2=80=9D or sam=
e route from
> multiple sources or any other problem which routing already handles.
>
>
>
> HTH
>
>
>
>     Les
>
>
>
>
>
> *From:* rraszuk@gmail.com [mailto:rraszuk@gmail.com] *On Behalf Of *Rober=
t
> Raszuk
> *Sent:* Thursday, December 22, 2016 2:29 PM
>
> *To:* Les Ginsberg (ginsberg)
> *Cc:* Aissaoui, Mustapha (Nokia - CA); spring@ietf.org
> *Subject:* Re: [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> Les,
>
>
>
> After mental reset I conclude that perhaps even the introduction of the
> draft is questionable as in real life it applies to be quite an unrealist=
ic
> scenario to have a situation where more then one protocol is used *in the
> same time* as active in forwarding for an exact same IP prefix.
>
>
>
> Last time I checked SIDs are meaningless without a prefix they are
> attached to and it is a prefix they accompany to indicate which SID shoul=
d
> be used on a given node.
>
>
>
> Therefor if you consider that today most implementations pretty well can
> handle overlapping prefixes from multiple sources what real problem is th=
is
> draft solving ?
>
>
>
> Are you trying to create a forwarding graph by SIDs only detaching them
> from IP prefixes all together ?
>
>
>
> Cheers,
> R.
>
>
>
>
>
> On Thu, Dec 22, 2016 at 10:32 PM, Les Ginsberg (ginsberg) <
> ginsberg@cisco.com> wrote:
>
> Robert =E2=80=93
>
>
>
> You have a complete misunderstanding of roles here.
>
>
>
> How the owner of a route may be represented in the RIB isn=E2=80=99t impa=
cted by
> SRMS or conflict resolution. Nor is the determination of which route is t=
he
> best route. We are only determining whether to use or not use a SID which
> was associated with the prefix by some advertisement.
>
>
>
> The Introduction to the draft states:
>
>
>
> =E2=80=9CThe problem to be addressed is protocol independent i.e., segmen=
t
>
>    related advertisements may be originated by multiple nodes using
>
>    different protocols and yet the conflict resolution MUST be the same
>
>    on all nodes regardless of the protocol used to transport the
>
>    advertisements.=E2=80=9D
>
>
>
> Please do a mental reset. J
>
>
>
>    Les
>
>
>
>
>
> *From:* rraszuk@gmail.com [mailto:rraszuk@gmail.com] *On Behalf Of *Rober=
t
> Raszuk
> *Sent:* Thursday, December 22, 2016 11:52 AM
> *To:* Les Ginsberg (ginsberg)
> *Cc:* Aissaoui, Mustapha (Nokia - CA); spring@ietf.org
>
>
> *Subject:* Re: [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> Hi Les,
>
>
>
> On #1 I am also with Mustapha here. For clarity of this discussion can yo=
u
> enumerate when from RIB to FIB/LFIB you are installing the exact same
> active prefix from more then one producer ? Is SRMS sort of zombie here a=
nd
> not treated as real route producer hence we have an issue ? And the issue
> is only with conflicts of SRMS + real route producer ?
>
>
>
> On #3 you said that *"with redistribution/route leaking the source of an
> advertisement may appear to be different on different routers"* that is
> very true. In fact with simple static route or static label configured on=
 a
> router the RIB and FIB on that router will be different then RIB and FIB =
on
> the other routers without such static route. And the point is that such
> static route or label is there for a reason you may not know about. So
> struggling for data plane consistency =E2=80=8Bdeliberately excluding sou=
rce when
> operational needs require otherwise is not really that much helpful I am
> afraid.
>
>
>
> Greetings,
>
> Robert.
>
>
>
>
>
> On Thu, Dec 22, 2016 at 8:37 PM, Les Ginsberg (ginsberg) <
> ginsberg@cisco.com> wrote:
>
> Mustapha -
>
>
>
> *From:* spring [mailto:spring-bounces@ietf.org] *On Behalf Of *Aissaoui,
> Mustapha (Nokia - CA)
> *Sent:* Thursday, December 22, 2016 8:10 AM
> *To:* Les Ginsberg (ginsberg); spring@ietf.org
> *Subject:* Re: [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> Hi Les,
>
> I read slides 17-21 of the document you referenced below and I have the
> following comments:
>
>
>
> 1.     Page 17, =E2=80=9COrder Matters - Prefix vs SID Conflict=E2=80=9D.
>
> When you perform resolution on  a per prefix basis, prefix conflicts are
> naturally processed first followed by SID conflicts across different
> prefixes. So the ordering issue described is only specific if you decided
> to resolve conflicting SID entries outside of the natural prefix resoluti=
on
> by a router.
>
>
>
> *[Les:] What may seem =E2=80=9Cnatural=E2=80=9D to you might not to someo=
ne else. I don=E2=80=99t
> care to debate that point. What is being illustrated here is that in orde=
r
> to provide a normative specification that =E2=80=93 if followed =E2=80=93=
 guarantees
> interoperability we have to specify the order in which conflicts are
> processed otherwise different results may be obtained.*
>
>
>
> 2.     Page 18, =E2=80=9COrder Matters: Derived vs non-derived=E2=80=93 p=
refix conflict=E2=80=9D.
>
> It seems to me this issue is an artifact of the specific algorithm used t=
o
> resolve conflicts. Because the algorithm uses parameters such as =E2=80=
=9CRange
> (start w smallest)=E2=80=9D then obviously derived SRMS entries will lend=
 a
> different result than original SRMS entries.
>
> With the pre-prefix resolution, the only information kept from the
> original SRMS entry is the preference and the advertising or owner router=
.
> Anything else is not used. It seems to me a simple algorithm based on
> preference first then followed by some rule on selecting the advertising
> router if conflicts exist within the same preference would work.
>
>
>
> *[Les:] You have implemented things in a certain way. Someone else might
> choose to implement in a different way. A normative specification does no=
t
> (and should not) constrain an implementation. What is being illustrated
> here is that if the implementation does not retain the underived entry (i=
n
> whatever internal form it chooses) different results will be obtained
> because the preference algorithm depends on comparing the underived range=
s.*
>
>
>
> 3.     Finally, there is something which has not been addressed in the
> slides. There is still a possibility of conflicting entries among SIDs
> advertised using the prefix SID sub-TLV within a Prefix TLV (IS-IS IP Rea=
ch
> TLV or OSPF Extended Prefix TLV). A simple rule selecting the advertising
> router should also work fine here.
>
>
>
> *[Les:] No =E2=80=93 source of an advertisement has been quite *
>
> *=E2=80=8B=E2=80=8B*
>
> *deliberately excluded from the preference algorithm. With
> redistribution/route leaking the source of an advertisement may appear to
> be different on different routers- this would result in different results
> on different routers.*
>
>
>
> *   Les*
>
>
>
> Regards,
>
> Mustapha.
>
>
>
> *From:* Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com
> <ginsberg@cisco.com>]
> *Sent:* Friday, December 09, 2016 1:49 PM
> *To:* Aissaoui, Mustapha (Nokia - CA) <mustapha.aissaoui@nokia.com>;
> spring@ietf.org
> *Subject:* RE: SID Conflict Resolution: A Simpler Proposal
>
>
>
> Mustapha -
>
>
>
> *From:* Aissaoui, Mustapha (Nokia - CA) [mailto:mustapha.aissaoui@
> nokia.com <mustapha.aissaoui@nokia.com>]
> *Sent:* Friday, December 09, 2016 7:44 AM
> *To:* Les Ginsberg (ginsberg); spring@ietf.org
> *Subject:* RE: SID Conflict Resolution: A Simpler Proposal
>
>
>
> I have a couple of comments on the below proposal.
>
>
>
> 1.     Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft.
> In many cases, a configuration on the resolving router can assign a
> preference to each SRMS in case there is no advertisement of this sub-TLV
> or to override an advertised value. I propose that this option be allowed=
.
> Here is a proposed update to the relevant paragraph:
>
> =E2=80=9C
>
>            Advertisement of a preference value is optional.  Nodes which
> do not
>
>           advertise a preference value are assigned a preference value of
> 128.
>
>            A resolving router can override the default or the advertised
> value by local policy.
>
> =E2=80=9C
>
> *[Les:] In order to get consistent conflict resolution on all nodes in th=
e
> network, it is necessary that they all have the same database =E2=80=93 w=
hich
> includes the preference value. If you allow local policy to modify the
> preference you no longer have consistent databases on all nodes and we ca=
n
> no longer guarantee consistent conflict resolution. So your proposal is n=
ot
> viable IMO.*
>
>
>
> 2.     I am trying to understand the concept of sorting SRMS entries
> which have different prefixes and different range sizes.
>
> Since a SID advertised in a prefix SID sub-TLV within a Prefix TLV (IS-IS
> IP Reach TLV or OSPF Extended Prefix TLV) has higher priority over a SID
> for the same prefix advertised from a SRMS, then you have to add to the
> below sorting an entry for each individual prefix which advertised a pref=
ix
> SID sub-TLV within a prefix TLV.
>
> At this point, the concept of an entry with multiple prefixes is moot and
> you may as well just sort on a per prefix basis which is the most natural
> thing to do given that the prefix resolution and then the SID resolution
> are performed on a per prefix basis. SID conflicts can be resolved on a p=
er
> prefix basis using the below proposed preference algorithm without having
> to ignore SID values for unrelated prefixes just because it happens that
> they were advertised in the same SRMS entry.
>
>
>
> *[Les:] The simpler proposal does not require sorting on anything other
> than preference. After that, you can process entries in any order you wan=
t
> and you will get the same answer.*
>
> *With =E2=80=9CIgnore Overlap Only=E2=80=9D one of the issues with trying=
 to use the
> non-conflicting portions of a mapping entry which has a range > 1 is that
> the order in which you process entries influences the result. Please see
> slides 17 =E2=80=93 20 from the IETF97 presentation:
> https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_draf=
t-ietf-spring-conflict-resolution-02-00.pptx
> <https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_dra=
ft-ietf-spring-conflict-resolution-02-00.pptx>
> for some simple examples of this.*
>
>
>
> *   Les*
>
>
>
>
>
> Regards,
>
> Mustapha.
>
>
>
> *From:* spring [mailto:spring-bounces@ietf.org <spring-bounces@ietf.org>]=
 *On
> Behalf Of *Les Ginsberg (ginsberg)
> *Sent:* Sunday, December 04, 2016 7:04 PM
> *To:* spring@ietf.org
> *Subject:* [spring] SID Conflict Resolution: A Simpler Proposal
>
>
>
> When the problem addressed by draft-ietf-spring-conflict-resolution was
> first
>
> presented at IETF 94, the authors defined the following priorities:
>
>
>
> 1)Detect the problem
>
> 2)Report the problem
>
> This alerts the network operator to the existence of a conflict so that
>
> the configuration error can be corrected.
>
> 3)Define consistent behavior
>
> This avoids mis-forwarding while the conflict exists.
>
> 4)Don=E2=80=99t overengineer the solution
>
> Given that it is impossible to know which of the conflicting entries
>
> is the correct one, we should apply a simple algorithm to resolve the
> conflict.
>
> 5)Agree on the resolution behavior
>
>
>
> The resolution behavior was deliberately the last point because it was
>
> considered the least important.
>
>
>
> Input was received over the past year which emphasized the importance of
>
> trying to "maximize forwarding" in the presence of conflicts. Subsequent
>
> revisions of the draft have tried to address this concern. However the
> authors
>
> have repeatedly stressed that the solution being proposed
>
> ("ignore overlap only") was more complex than other offered alternatives
> and
>
> would be more difficult to guarantee interoperability because subtle
>
> differences in an implementation could produce different results.
>
>
>
> At IETF97 significant feedback was received preferring a simpler solution
> to
>
> the problem. The authors are very sympathetic to this feedback and
> therefore
>
> are proposing a solution based on what the draft defines as the "Ignore"
>
> policy - where all entries which are in conflict are ignored. We believe
> this
>
> is far more desirable and aligns with the priorities listed above.
>
>
>
> We outline the proposed solution below and would like to receive feedback
> from
>
> the WG before publishing the next revision of the draft.
>
>
>
>    Les (on behalf of the authors)
>
>
>
> *New Proposal*
>
>
>
> *In the latest revision of the draft "SRMS Preference" was introduced.
> This *
>
> *provides a way for a numerical preference to be explicitly associated
> with an *
>
> *SRMS advertisement. Using this an operator can indicate which
> advertisement is *
>
> *to be preferred when a conflict is present. The authors think this is a
> useful *
>
> *addition and we therefore want to include this in the new solution.*
>
>
>
> *The new preference rule used to resolve conflicts is defined as follows:=
*
>
>
>
> *A given mapping entry is compared against all mapping entries in the
> database *
>
> *with a preference greater than or equal to its own. If there is a
> conflict, *
>
> *the mapping entry with lower preference is ignored. If two mapping
> entries are*
>
> *in conflict and have equal preference then both entries are ignored.*
>
>
>
> *Implementation of this policy is defined as follows:*
>
>
>
> *Step 1: Within a single address-family/algorithm/topology sort entries *
>
> *based on preference *
>
> *Step 2: Starting with the lowest preference entries, resolve prefix
> conflicts *
>
> *using the above preference rule. The output is an active policy per
> topology.*
>
> *Step 3: Take the outputs from Step 2 and again sort them by preference *
>
> *Step 4: Starting with the lowest preference entries, resolve SID
> conflicts *
>
> *using the above preference rule*
>
>
>
> *The output from Step 4 is then the current Active Policy.*
>
>
>
> Here are a few examples. Each mapping entry is represented by the tuple:
>
> (Preference, Prefix/mask Index range <#>)
>
>
>
> Example 1:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 100)
>
> 2. (149, 1.1.1.10/32 200 range 200)
>
> 3. (148, 1.1.1.101/32 500 range 10)
>
>
>
> Entry 3 conflicts with entry 2, it is ignored.
>
> Entry 2 conflicts with entry 1, it is ignored.
>
> Active policy:
>
>
>
> (150, 1.1.1.1/32 100 range 100)
>
>
>
> Example 2:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 100)
>
> 2. (150, 1.1.1.10/32 200 range 200)
>
> 3. (150, 1.1.1.101/32 500 range 10)
>
> 4. (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 1 conflicts with entry 2, both are marked as ignore.
>
> Entry 3 conflicts with entry 2. It is marked as ignore.
>
> Entry 4 has no conflicts with any entries
>
>
>
> Active policy:
>
> (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Example 3:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 500)
>
> 2. (150, 1.1.1.10/32 200 range 200)
>
> 3. (150, 1.1.1.101/32 500 range 10)
>
> 4. (150, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignor=
e.
>
>
>
> Active policy:
>
> Empty
>
>
>
> Example 4:
>
>
>
> 1. (150, 1.1.1.1/32 100 range 10)
>
> 2. (149, 1.1.1.10/32 200 range 300)
>
> 3. (149, 1.1.1.101/32 500 range 10)
>
> 4. (148, 2.2.2.1/32 1000 range 1)
>
>
>
> Entry 4 conflicts with entry 2. It is marked ignore.
>
> Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.
>
>
>
> Active policy:
>
> (150, 1.1.1.1/32 100 range 10)
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring
>
>
>
>
>
> _______________________________________________
> spring mailing list
> spring@ietf.org
> https://www.ietf.org/mailman/listinfo/spring
>
>

--001a114108eae7f97f0544472761
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small">Hi Les,</div><div class=3D"gmail_defaul=
t" style=3D"font-family:arial,helvetica,sans-serif;font-size:small"><br></d=
iv><div class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-s=
erif;font-size:small"><div class=3D"gmail_default" style=3D"display:inline"=
><br></div></div><div class=3D"gmail_default" style=3D"font-family:arial,he=
lvetica,sans-serif;font-size:small"><p class=3D"MsoNormal" style=3D"font-fa=
mily:arial,sans-serif"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"></span></p><div class=3D"gmail_default" styl=
e=3D"display:inline">&gt; =E2=80=8B</div>OSPF on Router #1 advertises=C2=A0=
<a href=3D"http://1.1.1.1/32" target=3D"_blank">1.1.1.1/32</a>=C2=A0w SID 1=
00=C2=A0<u></u><u></u><p></p><p class=3D"MsoNormal" style=3D"font-family:ar=
ial,sans-serif"><span style=3D"font-size:11pt;font-family:calibri,sans-seri=
f;color:rgb(31,73,125)">&gt; OSPF on Router #2 advertises=C2=A0<a href=3D"h=
ttp://2.2.2.2/32" target=3D"_blank">2.2.2.2/32</a>=C2=A0w SID 100<u></u><u>=
</u></span></p><p class=3D"MsoNormal" style=3D"font-family:arial,sans-serif=
"><span style=3D"font-size:11pt;font-family:calibri,sans-serif;color:rgb(31=
,73,125)"><u></u>=C2=A0<u></u></span></p><p class=3D"MsoNormal" style=3D"fo=
nt-family:arial,sans-serif"><span style=3D"font-size:11pt;font-family:calib=
ri,sans-serif;color:rgb(31,73,125)">=C2=A0&gt; Both routes will get install=
ed in the RIB/FIB on all routers =E2=80=93 but we=C2=A0</span></p><p class=
=3D"MsoNormal" style=3D"font-family:arial,sans-serif"><span style=3D"font-s=
ize:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">&gt; cannot i=
nstall the same label in the forwarding for both destinations =E2=80=93=C2=
=A0</span></p><p class=3D"MsoNormal" style=3D"font-family:arial,sans-serif"=
><span style=3D"font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,=
73,125)">&gt; so we have to decide what to do.</span></p><p class=3D"MsoNor=
mal" style=3D"font-family:arial,sans-serif"><br></p><p class=3D"MsoNormal" =
style=3D"font-family:arial,sans-serif"><span style=3D"font-size:11pt;font-f=
amily:calibri,sans-serif;color:rgb(31,73,125)">Why not ? To me this looks l=
ike form of basic pure SR anycast ! In fact if you detach requirement and d=
ependency on IP anycast from SR anycast there is potential for nice applica=
tions with that making SR even more attractive.=C2=A0</span></p><p class=3D=
"MsoNormal" style=3D"font-family:arial,sans-serif"><span style=3D"font-size=
:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)"><br></span></p><=
p class=3D"MsoNormal" style=3D"font-family:arial,sans-serif"><span style=3D=
"font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">&gt; w=
e=C2=A0</span><span style=3D"color:rgb(31,73,125);font-family:calibri,sans-=
serif;font-size:11pt">=C2=A0cannot install the same label in the forwarding=
 for both destinations</span></p><p class=3D"MsoNormal" style=3D"font-famil=
y:arial,sans-serif"><span style=3D"font-size:11pt;font-family:calibri,sans-=
serif;color:rgb(31,73,125)"><br></span></p><p class=3D"MsoNormal" style=3D"=
font-family:arial,sans-serif"><span style=3D"font-size:11pt;font-family:cal=
ibri,sans-serif;color:rgb(31,73,125)">Really ? Same label can point to N ou=
tgoing paths .. this is normal for ages for ECMP.=C2=A0</span></p><p class=
=3D"MsoNormal" style=3D"font-family:arial,sans-serif"><span style=3D"font-s=
ize:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)"><br></span></=
p><p class=3D"MsoNormal" style=3D"font-family:arial,sans-serif"><span style=
=3D"font-size:11pt;font-family:calibri,sans-serif;color:rgb(31,73,125)">Wit=
h MPLS in fact =C2=A0- as very few may recall - there is special knob allow=
ing <b>unequal cost load balancing UCMP</b>.=C2=A0 Very nice feature if one=
 knows what he/she is doing :).</span></p><p class=3D"MsoNormal" style=3D"f=
ont-family:arial,sans-serif"><span style=3D"font-size:11pt;font-family:cali=
bri,sans-serif;color:rgb(31,73,125)"><br></span></p><p class=3D"MsoNormal" =
style=3D"font-family:arial,sans-serif"><span style=3D"font-size:11pt;font-f=
amily:calibri,sans-serif;color:rgb(31,73,125)">Cheers,<br>R.</span></p><p c=
lass=3D"MsoNormal" style=3D"font-family:arial,sans-serif"><br></p></div><di=
v class=3D"gmail_default" style=3D"font-family:arial,helvetica,sans-serif;f=
ont-size:small"><br></div><div class=3D"gmail_extra"><br><div class=3D"gmai=
l_quote">On Thu, Dec 22, 2016 at 11:46 PM, Les Ginsberg (ginsberg) <span di=
r=3D"ltr">&lt;<a href=3D"mailto:ginsberg@cisco.com" target=3D"_blank">ginsb=
erg@cisco.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padd=
ing-left:1ex">





<div lang=3D"EN-US">
<div class=3D"gmail-m_2282822078659433333WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">Robert =E2=80=93<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">You are making progress =E2=80=93 but still =
a ways to go.
</span><span style=3D"font-size:11pt;font-family:wingdings;color:rgb(31,73,=
125)">J</span><span style=3D"font-size:11pt;font-family:calibri,sans-serif;=
color:rgb(31,73,125)"><u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">Consider the following simple case:<u></u><u=
></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"></span></p><div class=3D"gmail_default" styl=
e=3D"font-family:arial,helvetica,sans-serif;font-size:small;display:inline"=
>=E2=80=8B=E2=80=8B</div>OSPF on Router #1 advertises <a href=3D"http://1.1=
.1.1/32" target=3D"_blank">1.1.1.1/32</a> w SID 100<u></u><u></u><p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">OSPF on Router #2 advertises <a href=3D"http=
://2.2.2.2/32" target=3D"_blank">2.2.2.2/32</a> w SID 100<u></u><u></u></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">Both routes will get installed in the RIB/FI=
B on all routers =E2=80=93 but we cannot install the same label in the forw=
arding for both destinations =E2=80=93 so we have to
 decide what to do.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">1)We could simply not install a label for ei=
ther prefix =E2=80=93 that is the =E2=80=9Csimple/Ignore=E2=80=9D approach =
that is being discussed. IP forwarding will then be used.<u></u><u></u></sp=
an></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">2)We could use a preference rule to determin=
e which entry is the winner as far as use of the label is concerned =E2=80=
=93 that is the =E2=80=9CIgnore Overlap Only=E2=80=9D approach
 is one way of doing this. The winner would have labels installed =E2=80=93=
 the loser would not.
<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">Regardless of conflict resolution strategy b=
oth routes will still exist in forwarding.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">The debate we are having is whether to use #=
1 or #2.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">But none of this relates to =E2=80=9Coverlap=
ping prefixes=E2=80=9D or same route from multiple sources or any other pro=
blem which routing already handles.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">HTH<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0=C2=A0=C2=A0 Les<u></u><u></u></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)"><u></u>=C2=A0<u></u></span></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10pt;font-family:tahoma,=
sans-serif">From:</span></b><span style=3D"font-size:10pt;font-family:tahom=
a,sans-serif"> <a href=3D"mailto:rraszuk@gmail.com" target=3D"_blank">rrasz=
uk@gmail.com</a> [mailto:<a href=3D"mailto:rraszuk@gmail.com" target=3D"_bl=
ank">rraszuk@gmail.com</a>]
<b>On Behalf Of </b>Robert Raszuk<br>
<b>Sent:</b> Thursday, December 22, 2016 2:29 PM</span></p><div><div class=
=3D"gmail-h5"><br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> Aissaoui, Mustapha (Nokia - CA); <a href=3D"mailto:spring@ietf.o=
rg" target=3D"_blank">spring@ietf.org</a><br>
<b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Proposal<u>=
</u><u></u></div></div><p></p>
</div>
</div><div><div class=3D"gmail-h5">
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">Les,<u>=
</u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif"><u></u>=
=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">After m=
ental reset I conclude that perhaps even the introduction of the draft is q=
uestionable as in real life it applies to be quite an unrealistic scenario =
to have a situation where more then
 one protocol is used *in the same time* as active in forwarding for an exa=
ct same IP prefix.=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif"><u></u>=
=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">Last ti=
me I checked SIDs are meaningless without a prefix they are attached to and=
 it is a prefix they accompany to indicate which SID should be used on a gi=
ven node.=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif"><u></u>=
=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">Therefo=
r if you consider that today most implementations pretty well can handle ov=
erlapping prefixes from multiple sources what real problem is this draft so=
lving ?=C2=A0<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif"><u></u>=
=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">Are you=
 trying to create a forwarding graph by SIDs only detaching them from IP pr=
efixes all together ?<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif"><u></u>=
=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">Cheers,=
<br>
R.<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif"><u></u>=
=C2=A0<u></u></span></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">On Thu, Dec 22, 2016 at 10:32 PM, Les Ginsberg (gins=
berg) &lt;<a href=3D"mailto:ginsberg@cisco.com" target=3D"_blank">ginsberg@=
cisco.com</a>&gt; wrote:<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">Robert =E2=80=93</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">You have a complete misunderstanding of role=
s here.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">How the owner of a route may be represented =
in the RIB isn=E2=80=99t impacted by SRMS or conflict resolution.
 Nor is the determination of which route is the best route. We are only det=
ermining whether to use or not use a SID which was associated with the pref=
ix by some advertisement.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">The Introduction to the draft states:</span>=
<u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=E2=80=9CThe problem to be addressed is prot=
ocol independent i.e., segment</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0=C2=A0 related advertisements may be o=
riginated by multiple nodes using</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0=C2=A0 different protocols and yet the=
 conflict resolution MUST be the same</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0=C2=A0 on all nodes regardless of the =
protocol used to transport the</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0=C2=A0 advertisements.=E2=80=9D</span>=
<u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">Please do a mental reset.
</span><span style=3D"font-size:11pt;font-family:wingdings;color:rgb(31,73,=
125)">J</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0=C2=A0 Les</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11pt;font-family:calibri,sa=
ns-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10pt;font-family:tahoma,=
sans-serif">From:</span></b><span style=3D"font-size:10pt;font-family:tahom=
a,sans-serif">
<a href=3D"mailto:rraszuk@gmail.com" target=3D"_blank">rraszuk@gmail.com</a=
> [mailto:<a href=3D"mailto:rraszuk@gmail.com" target=3D"_blank">rraszuk@gm=
ail.com</a>]
<b>On Behalf Of </b>Robert Raszuk<br>
<b>Sent:</b> Thursday, December 22, 2016 11:52 AM<br>
<b>To:</b> Les Ginsberg (ginsberg)<br>
<b>Cc:</b> Aissaoui, Mustapha (Nokia - CA); <a href=3D"mailto:spring@ietf.o=
rg" target=3D"_blank">
spring@ietf.org</a></span><u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><br>
<b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Proposal<u>=
</u><u></u></p>
</div>
</div>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">Hi Les,=
</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">=C2=A0<=
/span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">On #1 I=
 am also with Mustapha here. For clarity of this discussion can you enumera=
te when from RIB to FIB/LFIB you are installing
 the exact same active prefix from more then one producer ? Is SRMS sort of=
 zombie here and not treated as real route producer hence we have an issue =
? And the issue is only with conflicts of SRMS + real route producer ?=C2=
=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">=C2=A0<=
/span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">On #3 y=
ou said that
<i>&quot;with redistribution/route leaking the source of an advertisement m=
ay appear to be different on different routers&quot;</i> that is very true.=
 In fact with simple static route or static label configured on a router th=
e RIB and FIB on that router will be different
 then RIB and FIB on the other routers without such static route. And the p=
oint is that such static route or label is there for a reason you may not k=
now about. So struggling for data plane consistency =E2=80=8Bdeliberately e=
xcluding source=C2=A0when operational needs require
 otherwise is not really that much helpful I am afraid.</span><u></u><u></u=
></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">=C2=A0<=
/span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">Greetin=
gs,</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">Robert.=
=C2=A0</span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:arial,sans-serif">=C2=A0<=
/span><u></u><u></u></p>
</div>
<div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<div>
<p class=3D"MsoNormal">On Thu, Dec 22, 2016 at 8:37 PM, Les Ginsberg (ginsb=
erg) &lt;<a href=3D"mailto:ginsberg@cisco.com" target=3D"_blank">ginsberg@c=
isco.com</a>&gt; wrote:<u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)">Mustapha -</spa=
n><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)">=C2=A0</span><u=
></u><u></u></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10pt;font-family:tahoma,=
sans-serif">From:</span></b><span style=3D"font-size:10pt;font-family:tahom=
a,sans-serif"> spring [mailto:<a href=3D"mailto:spring-bounces@ietf.org" ta=
rget=3D"_blank">spring-bounces@ietf.<wbr>org</a>]
<b>On Behalf Of </b>Aissaoui, Mustapha (Nokia - CA)<br>
<b>Sent:</b> Thursday, December 22, 2016 8:10 AM<br>
<span class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-"><b>To=
:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org" target=3D=
"_blank">
spring@ietf.org</a></span><br>
<b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Proposal</s=
pan><u></u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Hi Les,</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">I read slides 17-21 of the document you referenced below and I have=
 the following comments:</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">=C2=A0</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">1.</span><span style=3D"font-size:7pt">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">Page 17,=
 =E2=80=9COrder Matters - Prefix vs SID Conflict=E2=80=9D.</span><u></u><u>=
</u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">When you perform resolution on=C2=A0 a per prefix basis, pref=
ix conflicts are naturally processed first followed by SID conflicts
 across different prefixes. So the ordering issue described is only specifi=
c if you decided to resolve conflicting SID entries outside of the natural =
prefix resolution by a router.
</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><b><i><span style=3D"color:rgb(31,73,125)">[Le=
s:] What may seem =E2=80=9Cnatural=E2=80=9D to you might not to someone els=
e. I don=E2=80=99t care to debate that point. What is being illustrated her=
e is that in order
 to provide a normative specification that =E2=80=93 if followed =E2=80=93 =
guarantees interoperability we have to specify the order in which conflicts=
 are processed otherwise different results may be obtained.</span></i></b><=
u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">=C2=A0</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">2.</span><span style=3D"font-size:7pt">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">Page 18,=
 =E2=80=9COrder Matters: Derived vs non-derived=E2=80=93 prefix conflict=E2=
=80=9D.</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">It seems to me this issue is an artifact of the specific algo=
rithm used to resolve conflicts. Because the algorithm uses
 parameters such as =E2=80=9CRange (start w smallest)=E2=80=9D then obvious=
ly derived SRMS entries will lend a different result than original SRMS ent=
ries.
</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">With the pre-prefix resolution, the only information kept fro=
m the original SRMS entry is the preference and the advertising
 or owner router. Anything else is not used. It seems to me a simple algori=
thm based on preference first then followed by some rule on selecting the a=
dvertising router if conflicts exist within the same preference would work.=
</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><b><i><span style=3D"color:rgb(31,73,125)">[Le=
s:] You have implemented things in a certain way. Someone else might choose=
 to implement in a different way. A normative specification does not (and
 should not) constrain an implementation. What is being illustrated here is=
 that if the implementation does not retain the underived entry (in whateve=
r internal form it chooses) different results will be obtained because the =
preference algorithm depends on
 comparing the underived ranges.</span></i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"color:rgb(31,73,125)">=C2=A0</s=
pan><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">3.</span><span style=3D"font-size:7pt">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">Finally,=
 there is something which has not been addressed in the slides. There is st=
ill a possibility of conflicting entries among SIDs advertised using the pr=
efix SID sub-TLV within a Prefix
 TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV). A simple rule select=
ing the advertising router should also work fine here.</span><u></u><u></u>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif;color:rgb(31,73,125)">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:rgb(31,73,125)">[Les:] No=
 =E2=80=93 source of an advertisement has been quite
</span></i></b><u></u><u></u></p>
<div>
<p class=3D"MsoNormal"><b><i><span style=3D"font-family:arial,sans-serif">=
=E2=80=8B=E2=80=8B</span></i></b><u></u><u></u></p>
</div>
<p class=3D"MsoNormal"><b><i>deliberately excluded from the preference algo=
rithm. With redistribution/route leaking the source of an advertisement may=
 appear to be different on different routers- this
 would result in different results on different routers.</i></b><u></u><u><=
/u></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:rgb(31,73,125)">=C2=A0</s=
pan></i></b><u></u><u></u></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:rgb(31,73,125)">=C2=A0=C2=
=A0 Les</span></i></b><u></u><u></u></p>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)">=C2=A0</span><u=
></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Regards,</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Mustapha.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">=C2=A0</span><u></u><u></u></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(225,225,225);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Les Ginsberg (ginsberg) [<a href=3D"mai=
lto:ginsberg@cisco.com" target=3D"_blank">mailto:ginsberg@cisco.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 1:49 PM<br>
<b>To:</b> Aissaoui, Mustapha (Nokia - CA) &lt;<a href=3D"mailto:mustapha.a=
issaoui@nokia.com" target=3D"_blank">mustapha.aissaoui@nokia.com</a>&gt;;
<a href=3D"mailto:spring@ietf.org" target=3D"_blank">spring@ietf.org</a><br=
>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<u></u><u></=
u></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)">Mustapha -</spa=
n><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"color:rgb(31,73,125)">=C2=A0</span><u=
></u><u></u></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10pt;font-family:tahoma,=
sans-serif">From:</span></b><span style=3D"font-size:10pt;font-family:tahom=
a,sans-serif"> Aissaoui, Mustapha (Nokia -
 CA) [<a href=3D"mailto:mustapha.aissaoui@nokia.com" target=3D"_blank">mail=
to:mustapha.aissaoui@<wbr>nokia.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:44 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org" targ=
et=3D"_blank">
spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal</span><u></=
u><u></u></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">I have a couple of comments on the below proposal.</span><u></u><u>=
</u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">=C2=A0</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">1.</span><span style=3D"font-size:7pt">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">Regardin=
g the SRMS Preference Sub-TLV in section 3.1 of the draft. In many cases, a=
 configuration on the resolving router can assign a preference to each SRMS=
 in case there is no advertisement
 of this sub-TLV or to override an advertised value. I propose that this op=
tion be allowed. Here is a proposed update to the relevant paragraph:</span=
><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">=E2=80=9C</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:&quot;cour=
ier new&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0 Adve=
rtisement of a preference value is optional.=C2=A0 Nodes which do not</span=
><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:&quot;cour=
ier new&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0adver=
tise a preference value are assigned a preference value of 128. =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:&quot;cour=
ier new&quot;">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=
=A0<span style=3D"color:red">A resolving router can override the default or=
 the advertised value by local policy.</span></span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">=E2=80=9C</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><b><i><span style=3D"color:rgb(31,73,125)">[Le=
s:] In order to get consistent conflict resolution on all nodes in the netw=
ork, it is necessary that they all have the same database =E2=80=93 which i=
ncludes
 the preference value. If you allow local policy to modify the preference y=
ou no longer have consistent databases on all nodes and we can no longer gu=
arantee consistent conflict resolution. So your proposal is not viable IMO.=
</span></i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">=C2=A0</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">2.</span><span style=3D"font-size:7pt">=C2=A0=C2=A0=C2=A0=C2=
=A0
</span><span style=3D"font-size:10pt;font-family:arial,sans-serif">I am try=
ing to understand the concept of sorting SRMS entries which have different =
prefixes and different range sizes. =C2=A0</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">Since a SID advertised in a prefix SID sub-TLV within a Prefi=
x TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV) has
 higher priority over a SID for the same prefix advertised from a SRMS, the=
n you have to add to the below sorting an entry for each individual prefix =
which advertised a prefix SID sub-TLV within a prefix TLV.
</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"font-size:10pt;font-family:aria=
l,sans-serif">At this point, the concept of an entry with multiple prefixes=
 is moot and you may as well just sort on a per prefix basis
 which is the most natural thing to do given that the prefix resolution and=
 then the SID resolution are performed on a per prefix basis. SID conflicts=
 can be resolved on a per prefix basis using the below proposed preference =
algorithm without having to ignore
 SID values for unrelated prefixes just because it happens that they were a=
dvertised in the same SRMS entry.</span><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><b><i><span style=3D"color:rgb(31,73,125)">=C2=
=A0</span></i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><b><i><span style=3D"color:rgb(31,73,125)">[Le=
s:] The simpler proposal does not require sorting on anything other than pr=
eference. After that, you can process entries in any order you want and
 you will get the same answer.</span></i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><b><i><span style=3D"color:rgb(31,73,125)">Wit=
h =E2=80=9CIgnore Overlap Only=E2=80=9D one of the issues with trying to us=
e the non-conflicting portions of a mapping entry which has a range &gt; 1 =
is that the order
 in which you process entries influences the result. Please see slides 17 =
=E2=80=93 20 from the IETF97 presentation:
<a href=3D"https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ie=
tf97_draft-ietf-spring-conflict-resolution-02-00.pptx" target=3D"_blank">
https://www.ietf.org/<wbr>proceedings/97/slides/slides-<wbr>97-spring-1_iet=
f97_draft-ietf-<wbr>spring-conflict-resolution-02-<wbr>00.pptx</a> for some=
 simple examples of this.</span></i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><b><i><span style=3D"color:rgb(31,73,125)">=C2=
=A0</span></i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><b><i><span style=3D"color:rgb(31,73,125)">=C2=
=A0=C2=A0 Les</span></i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msolistparagraph"><span style=3D"color:rgb(31,73,125)">=C2=A0</s=
pan><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">=C2=A0</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Regards,</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">Mustapha.</span><u></u><u></u></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10pt;font-family:arial,sans=
-serif">=C2=A0</span><u></u><u></u></p>
<div style=3D"border-top:none;border-right:none;border-bottom:none;border-l=
eft:1.5pt solid blue;padding:0in 0in 0in 4pt">
<div>
<div style=3D"border-right:none;border-bottom:none;border-left:none;border-=
top:1pt solid rgb(225,225,225);padding:3pt 0in 0in">
<p class=3D"MsoNormal"><b>From:</b> spring [<a href=3D"mailto:spring-bounce=
s@ietf.org" target=3D"_blank">mailto:spring-bounces@ietf.<wbr>org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Sunday, December 04, 2016 7:04 PM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org" target=3D"_blank">spring@ietf=
.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<u></u>=
<u></u></p>
</div>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">When the problem addressed by draft-ietf-spring-co=
nflict-<wbr>resolution was first
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">presented at IETF 94, the authors defined the foll=
owing priorities:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">1)Detect the problem<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">2)Report the problem<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">This alerts the network operator to the existence =
of a conflict so that<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">the configuration error can be corrected.<u></u><u=
></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">3)Define consistent behavior<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">This avoids mis-forwarding while the conflict exis=
ts.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">4)Don=E2=80=99t overengineer the solution<u></u><u=
></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Given that it is impossible to know which of the c=
onflicting entries<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">is the correct one, we should apply a simple algor=
ithm to resolve the conflict.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">5)Agree on the resolution behavior<u></u><u></u></=
p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">The resolution behavior was deliberately the last =
point because it was
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">considered the least important.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Input was received over the past year which emphas=
ized the importance of<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">trying to &quot;maximize forwarding&quot; in the p=
resence of conflicts. Subsequent<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">revisions of the draft have tried to address this =
concern. However the authors
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">have repeatedly stressed that the solution being p=
roposed
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">(&quot;ignore overlap only&quot;) was more complex=
 than other offered alternatives and
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">would be more difficult to guarantee interoperabil=
ity because subtle
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">differences in an implementation could produce dif=
ferent results.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">At IETF97 significant feedback was received prefer=
ring a simpler solution to
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">the problem. The authors are very sympathetic to t=
his feedback and therefore
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">are proposing a solution based on what the draft d=
efines as the &quot;Ignore&quot;
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">policy - where all entries which are in conflict a=
re ignored. We believe this
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">is far more desirable and aligns with the prioriti=
es listed above.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">We outline the proposed solution below and would l=
ike to receive feedback from
<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">the WG before publishing the next revision of the =
draft.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0=C2=A0 Les (on behalf of the authors)<u></u>=
<u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>New Proposal</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>=C2=A0</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>In the latest revision of the draft &quot;SRMS =
Preference&quot; was introduced. This
</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>provides a way for a numerical preference to be=
 explicitly associated with an
</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>SRMS advertisement. Using this an operator can =
indicate which advertisement is
</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>to be preferred when a conflict is present. The=
 authors think this is a useful
</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>addition and we therefore want to include this =
in the new solution.</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>=C2=A0</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>The new preference rule used to resolve conflic=
ts is defined as follows:</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>=C2=A0</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>A given mapping entry is compared against al=
l mapping entries in the database
</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>with a preference greater than or equal to i=
ts own. If there is a conflict,
</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>the mapping entry with lower preference is i=
gnored. If two mapping entries are</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>in conflict and have equal preference then b=
oth entries are ignored.</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>=C2=A0</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>Implementation of this policy is defined as fol=
lows:</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><i>=C2=A0</i><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>Step 1: Within a single address-family/algor=
ithm/<wbr>topology sort entries
</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>based on preference
</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>Step 2: Starting with the lowest preference =
entries, resolve prefix conflicts
</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>using the above preference rule. The output =
is an active policy per topology.</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>Step 3: Take the outputs from Step 2 and aga=
in sort them by preference
</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>Step 4: Starting with the lowest preference =
entries, resolve SID conflicts
</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>using the above preference rule</i></b><u></=
u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>=C2=A0</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext"><b><i>The output from Step 4 is then the current A=
ctive Policy.</i></b><u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Here are a few examples. Each mapping entry is rep=
resented by the tuple:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">(Preference, Prefix/mask Index range &lt;#&gt;)<u>=
</u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Example 1:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">1. (150, <a href=3D"http://1.1.1.1/32" target=3D"_=
blank">
1.1.1.1/32</a> 100 range 100)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">2. (149, <a href=3D"http://1.1.1.10/32" target=3D"=
_blank">
1.1.1.10/32</a> 200 range 200)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">3. (148, <a href=3D"http://1.1.1.101/32" target=3D=
"_blank">
1.1.1.101/32</a> 500 range 10)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Entry 3 conflicts with entry 2, it is ignored.<u><=
/u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Entry 2 conflicts with entry 1, it is ignored.<u><=
/u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Active policy:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">(150, <a href=3D"http://1.1.1.1/32" target=3D"_bla=
nk">
1.1.1.1/32</a> 100 range 100)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Example 2:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">1. (150, <a href=3D"http://1.1.1.1/32" target=3D"_=
blank">
1.1.1.1/32</a> 100 range 100)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">2. (150, <a href=3D"http://1.1.1.10/32" target=3D"=
_blank">
1.1.1.10/32</a> 200 range 200)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">3. (150, <a href=3D"http://1.1.1.101/32" target=3D=
"_blank">
1.1.1.101/32</a> 500 range 10)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">4. (150, <a href=3D"http://2.2.2.1/32" target=3D"_=
blank">
2.2.2.1/32</a> 1000 range 1)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Entry 1 conflicts with entry 2, both are marked as=
 ignore.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Entry 3 conflicts with entry 2. It is marked as ig=
nore.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Entry 4 has no conflicts with any entries<u></u><u=
></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Active policy:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">(150, <a href=3D"http://2.2.2.1/32" target=3D"_bla=
nk">
2.2.2.1/32</a> 1000 range 1)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Example 3:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">1. (150, <a href=3D"http://1.1.1.1/32" target=3D"_=
blank">
1.1.1.1/32</a> 100 range 500)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">2. (150, <a href=3D"http://1.1.1.10/32" target=3D"=
_blank">
1.1.1.10/32</a> 200 range 200)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">3. (150, <a href=3D"http://1.1.1.101/32" target=3D=
"_blank">
1.1.1.101/32</a> 500 range 10)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">4. (150, <a href=3D"http://2.2.2.1/32" target=3D"_=
blank">
2.2.2.1/32</a> 1000 range 1)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Entry 1 conflicts with entries 2, 3, and=C2=A0 4. =
All entries are marked ignore.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Active policy:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Empty<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Example 4:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">1. (150, <a href=3D"http://1.1.1.1/32" target=3D"_=
blank">
1.1.1.1/32</a> 100 range 10)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">2. (149, <a href=3D"http://1.1.1.10/32" target=3D"=
_blank">
1.1.1.10/32</a> 200 range 300)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">3. (149, <a href=3D"http://1.1.1.101/32" target=3D=
"_blank">
1.1.1.101/32</a> 500 range 10)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">4. (148, <a href=3D"http://2.2.2.1/32" target=3D"_=
blank">
2.2.2.1/32</a> 1000 range 1)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Entry 4 conflicts with entry 2. It is marked ignor=
e.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Entry 2 conflicts with entry 3. Entries 2 and 3 ar=
e marked ignore.<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">Active policy:<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">(150, <a href=3D"http://1.1.1.1/32" target=3D"_bla=
nk">
1.1.1.1/32</a> 100 range 10)<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
<p class=3D"gmail-m_2282822078659433333m6901297352370746265gmail-m-90721891=
30253622886msoplaintext">=C2=A0<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12pt"><br>
______________________________<wbr>_________________<br>
spring mailing list<br>
<a href=3D"mailto:spring@ietf.org" target=3D"_blank">spring@ietf.org</a><br=
>
<a href=3D"https://www.ietf.org/mailman/listinfo/spring" target=3D"_blank">=
https://www.ietf.org/mailman/<wbr>listinfo/spring</a><u></u><u></u></p>
</div>
<p class=3D"MsoNormal">=C2=A0<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
</div>
</div></div></div>
</div>
</div>

<br>______________________________<wbr>_________________<br>
spring mailing list<br>
<a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/spring" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/<wbr>listinfo/spring</a><br=
>
<br></blockquote></div><br></div></div>

--001a114108eae7f97f0544472761--


From nobody Thu Dec 22 15:16:31 2016
Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 511BB1295B4 for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 15:16:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.62
X-Spam-Level: 
X-Spam-Status: No, score=-17.62 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XwqNWh42Ge0Y for <spring@ietfa.amsl.com>; Thu, 22 Dec 2016 15:16:25 -0800 (PST)
Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 59D0D129457 for <spring@ietf.org>; Thu, 22 Dec 2016 15:16:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=124788; q=dns/txt; s=iport; t=1482448585; x=1483658185; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=13cGAtwedDJhsoEj5zPz4ExAH9X095/zmpCN9oZ5d4M=; b=EauI+NTVSIABIUl+GaaknBuDy5Btpim7iSSuiKND7Hy5XR1JjveeINw1 6cFjhAjR76Xpiv+kQmLyMnanmQjjSUcXkIS7VUzSKabvPYD2BOZUG+QuC 9sUDYyeivGH9jHaQmAihdMv60JuG8cKlTkdtfdxsgEu70DvKYd260UjE5 s=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AyBADUXVxY/4wNJK1eGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgnE5CwEBAQEBH11POAIHjUqWUYJUhSSFNIUCgmeCBgMfAQ6FKko?= =?us-ascii?q?CGimBKT8UAQIBAQEBAQEBYiiEaAEBAQMBAQEYAQgKHgEiCwULAgEGAhECAgEBI?= =?us-ascii?q?QEGAwICAh8EAgsUCQgCBA4FCBECiDcDEAgOjTKdTIInhBEBgygNgzkBAQEBAQE?= =?us-ascii?q?BAQEBAQEBAQEBAQEBAQEdhkiEYoJSgXQbFQqCToJdBZUFhT41AYljgiCBPoNvg?= =?us-ascii?q?X6FB4NKhgyHeoFzIIQZhA4BDxA3AUpgLoNoHIFdcgGHWwGBDAEBAQ?=
X-IronPort-AV: E=Sophos;i="5.33,390,1477958400";  d="scan'208,217";a="362966958"
Received: from alln-core-7.cisco.com ([173.36.13.140]) by alln-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 22 Dec 2016 23:16:23 +0000
Received: from XCH-ALN-001.cisco.com (xch-aln-001.cisco.com [173.36.7.11]) by alln-core-7.cisco.com (8.14.5/8.14.5) with ESMTP id uBMNGN1j026301 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 22 Dec 2016 23:16:23 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-ALN-001.cisco.com (173.36.7.11) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 22 Dec 2016 17:16:22 -0600
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Thu, 22 Dec 2016 17:16:22 -0600
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: Robert Raszuk <robert@raszuk.net>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAodWgAC/MMoAChMj6cAAKwMEwAA1jLAAACT8g0P//4f2AgABji1D//6OVgIAAYjBw
Date: Thu, 22 Dec 2016 23:16:22 +0000
Message-ID: <0b77633b3f1245e19f30c98d40af9755@XCH-ALN-001.cisco.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com> <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com> <CA+b+ERnhaUTJ45FwMvMf3V8xhqRKfpGE_9h8MgmOqBejvscAaA@mail.gmail.com> <ae35b4f22e7744f9a424a8ad02c12a2b@XCH-ALN-001.cisco.com> <CA+b+ERke08DVHyrZ_=tMpiOgedzydsR8VktHAKfzzQDYkAOArQ@mail.gmail.com> <8c9c337f5176477eb680ebbcee776c44@XCH-ALN-001.cisco.com> <CA+b+ERkisECT+KpFK=O4zix3n+Wfk6=0846RApGxhxOaHySaPg@mail.gmail.com>
In-Reply-To: <CA+b+ERkisECT+KpFK=O4zix3n+Wfk6=0846RApGxhxOaHySaPg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [128.107.151.19]
Content-Type: multipart/alternative; boundary="_000_0b77633b3f1245e19f30c98d40af9755XCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/68Nx4NAz4LfeppjUazCdybpGo6s>
Cc: "spring@ietf.org" <spring@ietf.org>, "Aissaoui, Mustapha \(Nokia - CA\)" <mustapha.aissaoui@nokia.com>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Dec 2016 23:16:29 -0000

--_000_0b77633b3f1245e19f30c98d40af9755XCHALN001ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

Um9iZXJ0IOKAkw0KDQpQZXJoYXBzIHdlIHNob3VsZCB0YWtlIHRoaXMgb2ZmbGluZSBhcyB3ZSBh
cmUgc3RhcnRpbmcgdG8gZ28gb3ZlciBzb21lIGJhc2ljcyBvZiBTUiDigJMgd2hpY2ggZG9lc27i
gJl0IGFkdmFuY2UgdGhpcyB0aHJlYWQuDQoNClNvbWUgYW5zd2VycyBpbmxpbmUuDQoNCkZyb206
IHJyYXN6dWtAZ21haWwuY29tIFttYWlsdG86cnJhc3p1a0BnbWFpbC5jb21dIE9uIEJlaGFsZiBP
ZiBSb2JlcnQgUmFzenVrDQpTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMjIsIDIwMTYgMjo1NSBQ
TQ0KVG86IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpDQpDYzogc3ByaW5nQGlldGYub3JnOyBBaXNz
YW91aSwgTXVzdGFwaGEgKE5va2lhIC0gQ0EpDQpTdWJqZWN0OiBSZTogW3NwcmluZ10gU0lEIENv
bmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KDQpIaSBMZXMsDQoNCg0KPiDi
gIsNCk9TUEYgb24gUm91dGVyICMxIGFkdmVydGlzZXMgMS4xLjEuMS8zMjxodHRwOi8vMS4xLjEu
MS8zMj4gdyBTSUQgMTAwDQo+IE9TUEYgb24gUm91dGVyICMyIGFkdmVydGlzZXMgMi4yLjIuMi8z
MjxodHRwOi8vMi4yLjIuMi8zMj4gdyBTSUQgMTAwDQoNCiA+IEJvdGggcm91dGVzIHdpbGwgZ2V0
IGluc3RhbGxlZCBpbiB0aGUgUklCL0ZJQiBvbiBhbGwgcm91dGVycyDigJMgYnV0IHdlDQo+IGNh
bm5vdCBpbnN0YWxsIHRoZSBzYW1lIGxhYmVsIGluIHRoZSBmb3J3YXJkaW5nIGZvciBib3RoIGRl
c3RpbmF0aW9ucyDigJMNCj4gc28gd2UgaGF2ZSB0byBkZWNpZGUgd2hhdCB0byBkby4NCg0KV2h5
IG5vdCA/IFRvIG1lIHRoaXMgbG9va3MgbGlrZSBmb3JtIG9mIGJhc2ljIHB1cmUgU1IgYW55Y2Fz
dCAhIEluIGZhY3QgaWYgeW91IGRldGFjaCByZXF1aXJlbWVudCBhbmQgZGVwZW5kZW5jeSBvbiBJ
UCBhbnljYXN0IGZyb20gU1IgYW55Y2FzdCB0aGVyZSBpcyBwb3RlbnRpYWwgZm9yIG5pY2UgYXBw
bGljYXRpb25zIHdpdGggdGhhdCBtYWtpbmcgU1IgZXZlbiBtb3JlIGF0dHJhY3RpdmUuDQoNCltM
ZXM6XSBXRSBhcmUgbG9va2luZyBhdCB0d28gZGlmZmVyZW50IHByZWZpeGVzIGhlcmUg4oCTIG5v
dCB0aGUgc2FtZSBwcmVmaXggc291cmNlZCBieSBtdWx0aXBsZSBub2Rlcy4NCj4gd2UgIGNhbm5v
dCBpbnN0YWxsIHRoZSBzYW1lIGxhYmVsIGluIHRoZSBmb3J3YXJkaW5nIGZvciBib3RoIGRlc3Rp
bmF0aW9ucw0KDQpSZWFsbHkgPyBTYW1lIGxhYmVsIGNhbiBwb2ludCB0byBOIG91dGdvaW5nIHBh
dGhzIC4uIHRoaXMgaXMgbm9ybWFsIGZvciBhZ2VzIGZvciBFQ01QLg0KW0xlczpdIEFnYWluLCB0
d28gZGlmZmVyZW50IHByZWZpeGVzIOKAkyBub3QgbXVsdGlwbGUgcGF0aHMgZm9yIHRoZSBzYW1l
IHByZWZpeC4NCiAgIExlcw0KDQpXaXRoIE1QTFMgaW4gZmFjdCAgLSBhcyB2ZXJ5IGZldyBtYXkg
cmVjYWxsIC0gdGhlcmUgaXMgc3BlY2lhbCBrbm9iIGFsbG93aW5nIHVuZXF1YWwgY29zdCBsb2Fk
IGJhbGFuY2luZyBVQ01QLiAgVmVyeSBuaWNlIGZlYXR1cmUgaWYgb25lIGtub3dzIHdoYXQgaGUv
c2hlIGlzIGRvaW5nIDopLg0KDQpDaGVlcnMsDQpSLg0KDQoNCg0KT24gVGh1LCBEZWMgMjIsIDIw
MTYgYXQgMTE6NDYgUE0sIExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpIDxnaW5zYmVyZ0BjaXNjby5j
b208bWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNvbT4+IHdyb3RlOg0KUm9iZXJ0IOKAkw0KDQpZb3Ug
YXJlIG1ha2luZyBwcm9ncmVzcyDigJMgYnV0IHN0aWxsIGEgd2F5cyB0byBnby4g4pi6DQoNCkNv
bnNpZGVyIHRoZSBmb2xsb3dpbmcgc2ltcGxlIGNhc2U6DQoNCuKAi+KAiw0KT1NQRiBvbiBSb3V0
ZXIgIzEgYWR2ZXJ0aXNlcyAxLjEuMS4xLzMyPGh0dHA6Ly8xLjEuMS4xLzMyPiB3IFNJRCAxMDAN
Ck9TUEYgb24gUm91dGVyICMyIGFkdmVydGlzZXMgMi4yLjIuMi8zMjxodHRwOi8vMi4yLjIuMi8z
Mj4gdyBTSUQgMTAwDQoNCkJvdGggcm91dGVzIHdpbGwgZ2V0IGluc3RhbGxlZCBpbiB0aGUgUklC
L0ZJQiBvbiBhbGwgcm91dGVycyDigJMgYnV0IHdlIGNhbm5vdCBpbnN0YWxsIHRoZSBzYW1lIGxh
YmVsIGluIHRoZSBmb3J3YXJkaW5nIGZvciBib3RoIGRlc3RpbmF0aW9ucyDigJMgc28gd2UgaGF2
ZSB0byBkZWNpZGUgd2hhdCB0byBkby4NCg0KMSlXZSBjb3VsZCBzaW1wbHkgbm90IGluc3RhbGwg
YSBsYWJlbCBmb3IgZWl0aGVyIHByZWZpeCDigJMgdGhhdCBpcyB0aGUg4oCcc2ltcGxlL0lnbm9y
ZeKAnSBhcHByb2FjaCB0aGF0IGlzIGJlaW5nIGRpc2N1c3NlZC4gSVAgZm9yd2FyZGluZyB3aWxs
IHRoZW4gYmUgdXNlZC4NCg0KMilXZSBjb3VsZCB1c2UgYSBwcmVmZXJlbmNlIHJ1bGUgdG8gZGV0
ZXJtaW5lIHdoaWNoIGVudHJ5IGlzIHRoZSB3aW5uZXIgYXMgZmFyIGFzIHVzZSBvZiB0aGUgbGFi
ZWwgaXMgY29uY2VybmVkIOKAkyB0aGF0IGlzIHRoZSDigJxJZ25vcmUgT3ZlcmxhcCBPbmx54oCd
IGFwcHJvYWNoIGlzIG9uZSB3YXkgb2YgZG9pbmcgdGhpcy4gVGhlIHdpbm5lciB3b3VsZCBoYXZl
IGxhYmVscyBpbnN0YWxsZWQg4oCTIHRoZSBsb3NlciB3b3VsZCBub3QuDQoNClJlZ2FyZGxlc3Mg
b2YgY29uZmxpY3QgcmVzb2x1dGlvbiBzdHJhdGVneSBib3RoIHJvdXRlcyB3aWxsIHN0aWxsIGV4
aXN0IGluIGZvcndhcmRpbmcuDQoNClRoZSBkZWJhdGUgd2UgYXJlIGhhdmluZyBpcyB3aGV0aGVy
IHRvIHVzZSAjMSBvciAjMi4NCkJ1dCBub25lIG9mIHRoaXMgcmVsYXRlcyB0byDigJxvdmVybGFw
cGluZyBwcmVmaXhlc+KAnSBvciBzYW1lIHJvdXRlIGZyb20gbXVsdGlwbGUgc291cmNlcyBvciBh
bnkgb3RoZXIgcHJvYmxlbSB3aGljaCByb3V0aW5nIGFscmVhZHkgaGFuZGxlcy4NCg0KSFRIDQoN
CiAgICBMZXMNCg0KDQpGcm9tOiBycmFzenVrQGdtYWlsLmNvbTxtYWlsdG86cnJhc3p1a0BnbWFp
bC5jb20+IFttYWlsdG86cnJhc3p1a0BnbWFpbC5jb208bWFpbHRvOnJyYXN6dWtAZ21haWwuY29t
Pl0gT24gQmVoYWxmIE9mIFJvYmVydCBSYXN6dWsNClNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAy
MiwgMjAxNiAyOjI5IFBNDQoNClRvOiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKQ0KQ2M6IEFpc3Nh
b3VpLCBNdXN0YXBoYSAoTm9raWEgLSBDQSk7IHNwcmluZ0BpZXRmLm9yZzxtYWlsdG86c3ByaW5n
QGlldGYub3JnPg0KU3ViamVjdDogUmU6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9u
OiBBIFNpbXBsZXIgUHJvcG9zYWwNCg0KTGVzLA0KDQpBZnRlciBtZW50YWwgcmVzZXQgSSBjb25j
bHVkZSB0aGF0IHBlcmhhcHMgZXZlbiB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSBkcmFmdCBpcyBx
dWVzdGlvbmFibGUgYXMgaW4gcmVhbCBsaWZlIGl0IGFwcGxpZXMgdG8gYmUgcXVpdGUgYW4gdW5y
ZWFsaXN0aWMgc2NlbmFyaW8gdG8gaGF2ZSBhIHNpdHVhdGlvbiB3aGVyZSBtb3JlIHRoZW4gb25l
IHByb3RvY29sIGlzIHVzZWQgKmluIHRoZSBzYW1lIHRpbWUqIGFzIGFjdGl2ZSBpbiBmb3J3YXJk
aW5nIGZvciBhbiBleGFjdCBzYW1lIElQIHByZWZpeC4NCg0KTGFzdCB0aW1lIEkgY2hlY2tlZCBT
SURzIGFyZSBtZWFuaW5nbGVzcyB3aXRob3V0IGEgcHJlZml4IHRoZXkgYXJlIGF0dGFjaGVkIHRv
IGFuZCBpdCBpcyBhIHByZWZpeCB0aGV5IGFjY29tcGFueSB0byBpbmRpY2F0ZSB3aGljaCBTSUQg
c2hvdWxkIGJlIHVzZWQgb24gYSBnaXZlbiBub2RlLg0KDQpUaGVyZWZvciBpZiB5b3UgY29uc2lk
ZXIgdGhhdCB0b2RheSBtb3N0IGltcGxlbWVudGF0aW9ucyBwcmV0dHkgd2VsbCBjYW4gaGFuZGxl
IG92ZXJsYXBwaW5nIHByZWZpeGVzIGZyb20gbXVsdGlwbGUgc291cmNlcyB3aGF0IHJlYWwgcHJv
YmxlbSBpcyB0aGlzIGRyYWZ0IHNvbHZpbmcgPw0KDQpBcmUgeW91IHRyeWluZyB0byBjcmVhdGUg
YSBmb3J3YXJkaW5nIGdyYXBoIGJ5IFNJRHMgb25seSBkZXRhY2hpbmcgdGhlbSBmcm9tIElQIHBy
ZWZpeGVzIGFsbCB0b2dldGhlciA/DQoNCkNoZWVycywNClIuDQoNCg0KT24gVGh1LCBEZWMgMjIs
IDIwMTYgYXQgMTA6MzIgUE0sIExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpIDxnaW5zYmVyZ0BjaXNj
by5jb208bWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNvbT4+IHdyb3RlOg0KUm9iZXJ0IOKAkw0KDQpZ
b3UgaGF2ZSBhIGNvbXBsZXRlIG1pc3VuZGVyc3RhbmRpbmcgb2Ygcm9sZXMgaGVyZS4NCg0KSG93
IHRoZSBvd25lciBvZiBhIHJvdXRlIG1heSBiZSByZXByZXNlbnRlZCBpbiB0aGUgUklCIGlzbuKA
mXQgaW1wYWN0ZWQgYnkgU1JNUyBvciBjb25mbGljdCByZXNvbHV0aW9uLiBOb3IgaXMgdGhlIGRl
dGVybWluYXRpb24gb2Ygd2hpY2ggcm91dGUgaXMgdGhlIGJlc3Qgcm91dGUuIFdlIGFyZSBvbmx5
IGRldGVybWluaW5nIHdoZXRoZXIgdG8gdXNlIG9yIG5vdCB1c2UgYSBTSUQgd2hpY2ggd2FzIGFz
c29jaWF0ZWQgd2l0aCB0aGUgcHJlZml4IGJ5IHNvbWUgYWR2ZXJ0aXNlbWVudC4NCg0KVGhlIElu
dHJvZHVjdGlvbiB0byB0aGUgZHJhZnQgc3RhdGVzOg0KDQrigJxUaGUgcHJvYmxlbSB0byBiZSBh
ZGRyZXNzZWQgaXMgcHJvdG9jb2wgaW5kZXBlbmRlbnQgaS5lLiwgc2VnbWVudA0KICAgcmVsYXRl
ZCBhZHZlcnRpc2VtZW50cyBtYXkgYmUgb3JpZ2luYXRlZCBieSBtdWx0aXBsZSBub2RlcyB1c2lu
Zw0KICAgZGlmZmVyZW50IHByb3RvY29scyBhbmQgeWV0IHRoZSBjb25mbGljdCByZXNvbHV0aW9u
IE1VU1QgYmUgdGhlIHNhbWUNCiAgIG9uIGFsbCBub2RlcyByZWdhcmRsZXNzIG9mIHRoZSBwcm90
b2NvbCB1c2VkIHRvIHRyYW5zcG9ydCB0aGUNCiAgIGFkdmVydGlzZW1lbnRzLuKAnQ0KDQpQbGVh
c2UgZG8gYSBtZW50YWwgcmVzZXQuIOKYug0KDQogICBMZXMNCg0KDQpGcm9tOiBycmFzenVrQGdt
YWlsLmNvbTxtYWlsdG86cnJhc3p1a0BnbWFpbC5jb20+IFttYWlsdG86cnJhc3p1a0BnbWFpbC5j
b208bWFpbHRvOnJyYXN6dWtAZ21haWwuY29tPl0gT24gQmVoYWxmIE9mIFJvYmVydCBSYXN6dWsN
ClNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAyMiwgMjAxNiAxMTo1MiBBTQ0KVG86IExlcyBHaW5z
YmVyZyAoZ2luc2JlcmcpDQpDYzogQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKTsgc3By
aW5nQGlldGYub3JnPG1haWx0bzpzcHJpbmdAaWV0Zi5vcmc+DQoNClN1YmplY3Q6IFJlOiBbc3By
aW5nXSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQoNCkhpIExl
cywNCg0KT24gIzEgSSBhbSBhbHNvIHdpdGggTXVzdGFwaGEgaGVyZS4gRm9yIGNsYXJpdHkgb2Yg
dGhpcyBkaXNjdXNzaW9uIGNhbiB5b3UgZW51bWVyYXRlIHdoZW4gZnJvbSBSSUIgdG8gRklCL0xG
SUIgeW91IGFyZSBpbnN0YWxsaW5nIHRoZSBleGFjdCBzYW1lIGFjdGl2ZSBwcmVmaXggZnJvbSBt
b3JlIHRoZW4gb25lIHByb2R1Y2VyID8gSXMgU1JNUyBzb3J0IG9mIHpvbWJpZSBoZXJlIGFuZCBu
b3QgdHJlYXRlZCBhcyByZWFsIHJvdXRlIHByb2R1Y2VyIGhlbmNlIHdlIGhhdmUgYW4gaXNzdWUg
PyBBbmQgdGhlIGlzc3VlIGlzIG9ubHkgd2l0aCBjb25mbGljdHMgb2YgU1JNUyArIHJlYWwgcm91
dGUgcHJvZHVjZXIgPw0KDQpPbiAjMyB5b3Ugc2FpZCB0aGF0ICJ3aXRoIHJlZGlzdHJpYnV0aW9u
L3JvdXRlIGxlYWtpbmcgdGhlIHNvdXJjZSBvZiBhbiBhZHZlcnRpc2VtZW50IG1heSBhcHBlYXIg
dG8gYmUgZGlmZmVyZW50IG9uIGRpZmZlcmVudCByb3V0ZXJzIiB0aGF0IGlzIHZlcnkgdHJ1ZS4g
SW4gZmFjdCB3aXRoIHNpbXBsZSBzdGF0aWMgcm91dGUgb3Igc3RhdGljIGxhYmVsIGNvbmZpZ3Vy
ZWQgb24gYSByb3V0ZXIgdGhlIFJJQiBhbmQgRklCIG9uIHRoYXQgcm91dGVyIHdpbGwgYmUgZGlm
ZmVyZW50IHRoZW4gUklCIGFuZCBGSUIgb24gdGhlIG90aGVyIHJvdXRlcnMgd2l0aG91dCBzdWNo
IHN0YXRpYyByb3V0ZS4gQW5kIHRoZSBwb2ludCBpcyB0aGF0IHN1Y2ggc3RhdGljIHJvdXRlIG9y
IGxhYmVsIGlzIHRoZXJlIGZvciBhIHJlYXNvbiB5b3UgbWF5IG5vdCBrbm93IGFib3V0LiBTbyBz
dHJ1Z2dsaW5nIGZvciBkYXRhIHBsYW5lIGNvbnNpc3RlbmN5IOKAi2RlbGliZXJhdGVseSBleGNs
dWRpbmcgc291cmNlIHdoZW4gb3BlcmF0aW9uYWwgbmVlZHMgcmVxdWlyZSBvdGhlcndpc2UgaXMg
bm90IHJlYWxseSB0aGF0IG11Y2ggaGVscGZ1bCBJIGFtIGFmcmFpZC4NCg0KR3JlZXRpbmdzLA0K
Um9iZXJ0Lg0KDQoNCk9uIFRodSwgRGVjIDIyLCAyMDE2IGF0IDg6MzcgUE0sIExlcyBHaW5zYmVy
ZyAoZ2luc2JlcmcpIDxnaW5zYmVyZ0BjaXNjby5jb208bWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNv
bT4+IHdyb3RlOg0KTXVzdGFwaGEgLQ0KDQpGcm9tOiBzcHJpbmcgW21haWx0bzpzcHJpbmctYm91
bmNlc0BpZXRmLm9yZzxtYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmc+XSBPbiBCZWhhbGYg
T2YgQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKQ0KU2VudDogVGh1cnNkYXksIERlY2Vt
YmVyIDIyLCAyMDE2IDg6MTAgQU0NClRvOiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKTsgc3ByaW5n
QGlldGYub3JnPG1haWx0bzpzcHJpbmdAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSZTogW3NwcmluZ10g
U0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KDQpIaSBMZXMsDQpJ
IHJlYWQgc2xpZGVzIDE3LTIxIG9mIHRoZSBkb2N1bWVudCB5b3UgcmVmZXJlbmNlZCBiZWxvdyBh
bmQgSSBoYXZlIHRoZSBmb2xsb3dpbmcgY29tbWVudHM6DQoNCg0KMS4gICAgIFBhZ2UgMTcsIOKA
nE9yZGVyIE1hdHRlcnMgLSBQcmVmaXggdnMgU0lEIENvbmZsaWN04oCdLg0KDQpXaGVuIHlvdSBw
ZXJmb3JtIHJlc29sdXRpb24gb24gIGEgcGVyIHByZWZpeCBiYXNpcywgcHJlZml4IGNvbmZsaWN0
cyBhcmUgbmF0dXJhbGx5IHByb2Nlc3NlZCBmaXJzdCBmb2xsb3dlZCBieSBTSUQgY29uZmxpY3Rz
IGFjcm9zcyBkaWZmZXJlbnQgcHJlZml4ZXMuIFNvIHRoZSBvcmRlcmluZyBpc3N1ZSBkZXNjcmli
ZWQgaXMgb25seSBzcGVjaWZpYyBpZiB5b3UgZGVjaWRlZCB0byByZXNvbHZlIGNvbmZsaWN0aW5n
IFNJRCBlbnRyaWVzIG91dHNpZGUgb2YgdGhlIG5hdHVyYWwgcHJlZml4IHJlc29sdXRpb24gYnkg
YSByb3V0ZXIuDQoNCg0KDQpbTGVzOl0gV2hhdCBtYXkgc2VlbSDigJxuYXR1cmFs4oCdIHRvIHlv
dSBtaWdodCBub3QgdG8gc29tZW9uZSBlbHNlLiBJIGRvbuKAmXQgY2FyZSB0byBkZWJhdGUgdGhh
dCBwb2ludC4gV2hhdCBpcyBiZWluZyBpbGx1c3RyYXRlZCBoZXJlIGlzIHRoYXQgaW4gb3JkZXIg
dG8gcHJvdmlkZSBhIG5vcm1hdGl2ZSBzcGVjaWZpY2F0aW9uIHRoYXQg4oCTIGlmIGZvbGxvd2Vk
IOKAkyBndWFyYW50ZWVzIGludGVyb3BlcmFiaWxpdHkgd2UgaGF2ZSB0byBzcGVjaWZ5IHRoZSBv
cmRlciBpbiB3aGljaCBjb25mbGljdHMgYXJlIHByb2Nlc3NlZCBvdGhlcndpc2UgZGlmZmVyZW50
IHJlc3VsdHMgbWF5IGJlIG9idGFpbmVkLg0KDQoNCg0KMi4gICAgIFBhZ2UgMTgsIOKAnE9yZGVy
IE1hdHRlcnM6IERlcml2ZWQgdnMgbm9uLWRlcml2ZWTigJMgcHJlZml4IGNvbmZsaWN04oCdLg0K
DQpJdCBzZWVtcyB0byBtZSB0aGlzIGlzc3VlIGlzIGFuIGFydGlmYWN0IG9mIHRoZSBzcGVjaWZp
YyBhbGdvcml0aG0gdXNlZCB0byByZXNvbHZlIGNvbmZsaWN0cy4gQmVjYXVzZSB0aGUgYWxnb3Jp
dGhtIHVzZXMgcGFyYW1ldGVycyBzdWNoIGFzIOKAnFJhbmdlIChzdGFydCB3IHNtYWxsZXN0KeKA
nSB0aGVuIG9idmlvdXNseSBkZXJpdmVkIFNSTVMgZW50cmllcyB3aWxsIGxlbmQgYSBkaWZmZXJl
bnQgcmVzdWx0IHRoYW4gb3JpZ2luYWwgU1JNUyBlbnRyaWVzLg0KDQpXaXRoIHRoZSBwcmUtcHJl
Zml4IHJlc29sdXRpb24sIHRoZSBvbmx5IGluZm9ybWF0aW9uIGtlcHQgZnJvbSB0aGUgb3JpZ2lu
YWwgU1JNUyBlbnRyeSBpcyB0aGUgcHJlZmVyZW5jZSBhbmQgdGhlIGFkdmVydGlzaW5nIG9yIG93
bmVyIHJvdXRlci4gQW55dGhpbmcgZWxzZSBpcyBub3QgdXNlZC4gSXQgc2VlbXMgdG8gbWUgYSBz
aW1wbGUgYWxnb3JpdGhtIGJhc2VkIG9uIHByZWZlcmVuY2UgZmlyc3QgdGhlbiBmb2xsb3dlZCBi
eSBzb21lIHJ1bGUgb24gc2VsZWN0aW5nIHRoZSBhZHZlcnRpc2luZyByb3V0ZXIgaWYgY29uZmxp
Y3RzIGV4aXN0IHdpdGhpbiB0aGUgc2FtZSBwcmVmZXJlbmNlIHdvdWxkIHdvcmsuDQoNCg0KDQpb
TGVzOl0gWW91IGhhdmUgaW1wbGVtZW50ZWQgdGhpbmdzIGluIGEgY2VydGFpbiB3YXkuIFNvbWVv
bmUgZWxzZSBtaWdodCBjaG9vc2UgdG8gaW1wbGVtZW50IGluIGEgZGlmZmVyZW50IHdheS4gQSBu
b3JtYXRpdmUgc3BlY2lmaWNhdGlvbiBkb2VzIG5vdCAoYW5kIHNob3VsZCBub3QpIGNvbnN0cmFp
biBhbiBpbXBsZW1lbnRhdGlvbi4gV2hhdCBpcyBiZWluZyBpbGx1c3RyYXRlZCBoZXJlIGlzIHRo
YXQgaWYgdGhlIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHJldGFpbiB0aGUgdW5kZXJpdmVkIGVu
dHJ5IChpbiB3aGF0ZXZlciBpbnRlcm5hbCBmb3JtIGl0IGNob29zZXMpIGRpZmZlcmVudCByZXN1
bHRzIHdpbGwgYmUgb2J0YWluZWQgYmVjYXVzZSB0aGUgcHJlZmVyZW5jZSBhbGdvcml0aG0gZGVw
ZW5kcyBvbiBjb21wYXJpbmcgdGhlIHVuZGVyaXZlZCByYW5nZXMuDQoNCg0KDQozLiAgICAgRmlu
YWxseSwgdGhlcmUgaXMgc29tZXRoaW5nIHdoaWNoIGhhcyBub3QgYmVlbiBhZGRyZXNzZWQgaW4g
dGhlIHNsaWRlcy4gVGhlcmUgaXMgc3RpbGwgYSBwb3NzaWJpbGl0eSBvZiBjb25mbGljdGluZyBl
bnRyaWVzIGFtb25nIFNJRHMgYWR2ZXJ0aXNlZCB1c2luZyB0aGUgcHJlZml4IFNJRCBzdWItVExW
IHdpdGhpbiBhIFByZWZpeCBUTFYgKElTLUlTIElQIFJlYWNoIFRMViBvciBPU1BGIEV4dGVuZGVk
IFByZWZpeCBUTFYpLiBBIHNpbXBsZSBydWxlIHNlbGVjdGluZyB0aGUgYWR2ZXJ0aXNpbmcgcm91
dGVyIHNob3VsZCBhbHNvIHdvcmsgZmluZSBoZXJlLg0KDQpbTGVzOl0gTm8g4oCTIHNvdXJjZSBv
ZiBhbiBhZHZlcnRpc2VtZW50IGhhcyBiZWVuIHF1aXRlDQrigIvigIsNCmRlbGliZXJhdGVseSBl
eGNsdWRlZCBmcm9tIHRoZSBwcmVmZXJlbmNlIGFsZ29yaXRobS4gV2l0aCByZWRpc3RyaWJ1dGlv
bi9yb3V0ZSBsZWFraW5nIHRoZSBzb3VyY2Ugb2YgYW4gYWR2ZXJ0aXNlbWVudCBtYXkgYXBwZWFy
IHRvIGJlIGRpZmZlcmVudCBvbiBkaWZmZXJlbnQgcm91dGVycy0gdGhpcyB3b3VsZCByZXN1bHQg
aW4gZGlmZmVyZW50IHJlc3VsdHMgb24gZGlmZmVyZW50IHJvdXRlcnMuDQoNCiAgIExlcw0KDQpS
ZWdhcmRzLA0KTXVzdGFwaGEuDQoNCkZyb206IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpIFttYWls
dG86Z2luc2JlcmdAY2lzY28uY29tXQ0KU2VudDogRnJpZGF5LCBEZWNlbWJlciAwOSwgMjAxNiAx
OjQ5IFBNDQpUbzogQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKSA8bXVzdGFwaGEuYWlz
c2FvdWlAbm9raWEuY29tPG1haWx0bzptdXN0YXBoYS5haXNzYW91aUBub2tpYS5jb20+Pjsgc3By
aW5nQGlldGYub3JnPG1haWx0bzpzcHJpbmdAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSRTogU0lEIENv
bmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KDQpNdXN0YXBoYSAtDQoNCkZy
b206IEFpc3Nhb3VpLCBNdXN0YXBoYSAoTm9raWEgLSBDQSkgW21haWx0bzptdXN0YXBoYS5haXNz
YW91aUBub2tpYS5jb21dDQpTZW50OiBGcmlkYXksIERlY2VtYmVyIDA5LCAyMDE2IDc6NDQgQU0N
ClRvOiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKTsgc3ByaW5nQGlldGYub3JnPG1haWx0bzpzcHJp
bmdAaWV0Zi5vcmc+DQpTdWJqZWN0OiBSRTogU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2lt
cGxlciBQcm9wb3NhbA0KDQpJIGhhdmUgYSBjb3VwbGUgb2YgY29tbWVudHMgb24gdGhlIGJlbG93
IHByb3Bvc2FsLg0KDQoNCjEuICAgICBSZWdhcmRpbmcgdGhlIFNSTVMgUHJlZmVyZW5jZSBTdWIt
VExWIGluIHNlY3Rpb24gMy4xIG9mIHRoZSBkcmFmdC4gSW4gbWFueSBjYXNlcywgYSBjb25maWd1
cmF0aW9uIG9uIHRoZSByZXNvbHZpbmcgcm91dGVyIGNhbiBhc3NpZ24gYSBwcmVmZXJlbmNlIHRv
IGVhY2ggU1JNUyBpbiBjYXNlIHRoZXJlIGlzIG5vIGFkdmVydGlzZW1lbnQgb2YgdGhpcyBzdWIt
VExWIG9yIHRvIG92ZXJyaWRlIGFuIGFkdmVydGlzZWQgdmFsdWUuIEkgcHJvcG9zZSB0aGF0IHRo
aXMgb3B0aW9uIGJlIGFsbG93ZWQuIEhlcmUgaXMgYSBwcm9wb3NlZCB1cGRhdGUgdG8gdGhlIHJl
bGV2YW50IHBhcmFncmFwaDoNCg0K4oCcDQogICAgICAgICAgIEFkdmVydGlzZW1lbnQgb2YgYSBw
cmVmZXJlbmNlIHZhbHVlIGlzIG9wdGlvbmFsLiAgTm9kZXMgd2hpY2ggZG8gbm90DQogICAgICAg
ICAgYWR2ZXJ0aXNlIGEgcHJlZmVyZW5jZSB2YWx1ZSBhcmUgYXNzaWduZWQgYSBwcmVmZXJlbmNl
IHZhbHVlIG9mIDEyOC4NCiAgICAgICAgICAgQSByZXNvbHZpbmcgcm91dGVyIGNhbiBvdmVycmlk
ZSB0aGUgZGVmYXVsdCBvciB0aGUgYWR2ZXJ0aXNlZCB2YWx1ZSBieSBsb2NhbCBwb2xpY3kuDQoN
CuKAnA0KDQpbTGVzOl0gSW4gb3JkZXIgdG8gZ2V0IGNvbnNpc3RlbnQgY29uZmxpY3QgcmVzb2x1
dGlvbiBvbiBhbGwgbm9kZXMgaW4gdGhlIG5ldHdvcmssIGl0IGlzIG5lY2Vzc2FyeSB0aGF0IHRo
ZXkgYWxsIGhhdmUgdGhlIHNhbWUgZGF0YWJhc2Ug4oCTIHdoaWNoIGluY2x1ZGVzIHRoZSBwcmVm
ZXJlbmNlIHZhbHVlLiBJZiB5b3UgYWxsb3cgbG9jYWwgcG9saWN5IHRvIG1vZGlmeSB0aGUgcHJl
ZmVyZW5jZSB5b3Ugbm8gbG9uZ2VyIGhhdmUgY29uc2lzdGVudCBkYXRhYmFzZXMgb24gYWxsIG5v
ZGVzIGFuZCB3ZSBjYW4gbm8gbG9uZ2VyIGd1YXJhbnRlZSBjb25zaXN0ZW50IGNvbmZsaWN0IHJl
c29sdXRpb24uIFNvIHlvdXIgcHJvcG9zYWwgaXMgbm90IHZpYWJsZSBJTU8uDQoNCg0KDQoyLiAg
ICAgSSBhbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgY29uY2VwdCBvZiBzb3J0aW5nIFNSTVMg
ZW50cmllcyB3aGljaCBoYXZlIGRpZmZlcmVudCBwcmVmaXhlcyBhbmQgZGlmZmVyZW50IHJhbmdl
IHNpemVzLg0KDQpTaW5jZSBhIFNJRCBhZHZlcnRpc2VkIGluIGEgcHJlZml4IFNJRCBzdWItVExW
IHdpdGhpbiBhIFByZWZpeCBUTFYgKElTLUlTIElQIFJlYWNoIFRMViBvciBPU1BGIEV4dGVuZGVk
IFByZWZpeCBUTFYpIGhhcyBoaWdoZXIgcHJpb3JpdHkgb3ZlciBhIFNJRCBmb3IgdGhlIHNhbWUg
cHJlZml4IGFkdmVydGlzZWQgZnJvbSBhIFNSTVMsIHRoZW4geW91IGhhdmUgdG8gYWRkIHRvIHRo
ZSBiZWxvdyBzb3J0aW5nIGFuIGVudHJ5IGZvciBlYWNoIGluZGl2aWR1YWwgcHJlZml4IHdoaWNo
IGFkdmVydGlzZWQgYSBwcmVmaXggU0lEIHN1Yi1UTFYgd2l0aGluIGEgcHJlZml4IFRMVi4NCg0K
QXQgdGhpcyBwb2ludCwgdGhlIGNvbmNlcHQgb2YgYW4gZW50cnkgd2l0aCBtdWx0aXBsZSBwcmVm
aXhlcyBpcyBtb290IGFuZCB5b3UgbWF5IGFzIHdlbGwganVzdCBzb3J0IG9uIGEgcGVyIHByZWZp
eCBiYXNpcyB3aGljaCBpcyB0aGUgbW9zdCBuYXR1cmFsIHRoaW5nIHRvIGRvIGdpdmVuIHRoYXQg
dGhlIHByZWZpeCByZXNvbHV0aW9uIGFuZCB0aGVuIHRoZSBTSUQgcmVzb2x1dGlvbiBhcmUgcGVy
Zm9ybWVkIG9uIGEgcGVyIHByZWZpeCBiYXNpcy4gU0lEIGNvbmZsaWN0cyBjYW4gYmUgcmVzb2x2
ZWQgb24gYSBwZXIgcHJlZml4IGJhc2lzIHVzaW5nIHRoZSBiZWxvdyBwcm9wb3NlZCBwcmVmZXJl
bmNlIGFsZ29yaXRobSB3aXRob3V0IGhhdmluZyB0byBpZ25vcmUgU0lEIHZhbHVlcyBmb3IgdW5y
ZWxhdGVkIHByZWZpeGVzIGp1c3QgYmVjYXVzZSBpdCBoYXBwZW5zIHRoYXQgdGhleSB3ZXJlIGFk
dmVydGlzZWQgaW4gdGhlIHNhbWUgU1JNUyBlbnRyeS4NCg0KDQoNCltMZXM6XSBUaGUgc2ltcGxl
ciBwcm9wb3NhbCBkb2VzIG5vdCByZXF1aXJlIHNvcnRpbmcgb24gYW55dGhpbmcgb3RoZXIgdGhh
biBwcmVmZXJlbmNlLiBBZnRlciB0aGF0LCB5b3UgY2FuIHByb2Nlc3MgZW50cmllcyBpbiBhbnkg
b3JkZXIgeW91IHdhbnQgYW5kIHlvdSB3aWxsIGdldCB0aGUgc2FtZSBhbnN3ZXIuDQoNCldpdGgg
4oCcSWdub3JlIE92ZXJsYXAgT25seeKAnSBvbmUgb2YgdGhlIGlzc3VlcyB3aXRoIHRyeWluZyB0
byB1c2UgdGhlIG5vbi1jb25mbGljdGluZyBwb3J0aW9ucyBvZiBhIG1hcHBpbmcgZW50cnkgd2hp
Y2ggaGFzIGEgcmFuZ2UgPiAxIGlzIHRoYXQgdGhlIG9yZGVyIGluIHdoaWNoIHlvdSBwcm9jZXNz
IGVudHJpZXMgaW5mbHVlbmNlcyB0aGUgcmVzdWx0LiBQbGVhc2Ugc2VlIHNsaWRlcyAxNyDigJMg
MjAgZnJvbSB0aGUgSUVURjk3IHByZXNlbnRhdGlvbjogaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcHJv
Y2VlZGluZ3MvOTcvc2xpZGVzL3NsaWRlcy05Ny1zcHJpbmctMV9pZXRmOTdfZHJhZnQtaWV0Zi1z
cHJpbmctY29uZmxpY3QtcmVzb2x1dGlvbi0wMi0wMC5wcHR4IGZvciBzb21lIHNpbXBsZSBleGFt
cGxlcyBvZiB0aGlzLg0KDQoNCg0KICAgTGVzDQoNCg0KDQpSZWdhcmRzLA0KTXVzdGFwaGEuDQoN
CkZyb206IHNwcmluZyBbbWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYub3JnXSBPbiBCZWhhbGYg
T2YgTGVzIEdpbnNiZXJnIChnaW5zYmVyZykNClNlbnQ6IFN1bmRheSwgRGVjZW1iZXIgMDQsIDIw
MTYgNzowNCBQTQ0KVG86IHNwcmluZ0BpZXRmLm9yZzxtYWlsdG86c3ByaW5nQGlldGYub3JnPg0K
U3ViamVjdDogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9w
b3NhbA0KDQoNCldoZW4gdGhlIHByb2JsZW0gYWRkcmVzc2VkIGJ5IGRyYWZ0LWlldGYtc3ByaW5n
LWNvbmZsaWN0LXJlc29sdXRpb24gd2FzIGZpcnN0DQoNCnByZXNlbnRlZCBhdCBJRVRGIDk0LCB0
aGUgYXV0aG9ycyBkZWZpbmVkIHRoZSBmb2xsb3dpbmcgcHJpb3JpdGllczoNCg0KDQoNCjEpRGV0
ZWN0IHRoZSBwcm9ibGVtDQoNCjIpUmVwb3J0IHRoZSBwcm9ibGVtDQoNClRoaXMgYWxlcnRzIHRo
ZSBuZXR3b3JrIG9wZXJhdG9yIHRvIHRoZSBleGlzdGVuY2Ugb2YgYSBjb25mbGljdCBzbyB0aGF0
DQoNCnRoZSBjb25maWd1cmF0aW9uIGVycm9yIGNhbiBiZSBjb3JyZWN0ZWQuDQoNCjMpRGVmaW5l
IGNvbnNpc3RlbnQgYmVoYXZpb3INCg0KVGhpcyBhdm9pZHMgbWlzLWZvcndhcmRpbmcgd2hpbGUg
dGhlIGNvbmZsaWN0IGV4aXN0cy4NCg0KNClEb27igJl0IG92ZXJlbmdpbmVlciB0aGUgc29sdXRp
b24NCg0KR2l2ZW4gdGhhdCBpdCBpcyBpbXBvc3NpYmxlIHRvIGtub3cgd2hpY2ggb2YgdGhlIGNv
bmZsaWN0aW5nIGVudHJpZXMNCg0KaXMgdGhlIGNvcnJlY3Qgb25lLCB3ZSBzaG91bGQgYXBwbHkg
YSBzaW1wbGUgYWxnb3JpdGhtIHRvIHJlc29sdmUgdGhlIGNvbmZsaWN0Lg0KDQo1KUFncmVlIG9u
IHRoZSByZXNvbHV0aW9uIGJlaGF2aW9yDQoNCg0KDQpUaGUgcmVzb2x1dGlvbiBiZWhhdmlvciB3
YXMgZGVsaWJlcmF0ZWx5IHRoZSBsYXN0IHBvaW50IGJlY2F1c2UgaXQgd2FzDQoNCmNvbnNpZGVy
ZWQgdGhlIGxlYXN0IGltcG9ydGFudC4NCg0KDQoNCklucHV0IHdhcyByZWNlaXZlZCBvdmVyIHRo
ZSBwYXN0IHllYXIgd2hpY2ggZW1waGFzaXplZCB0aGUgaW1wb3J0YW5jZSBvZg0KDQp0cnlpbmcg
dG8gIm1heGltaXplIGZvcndhcmRpbmciIGluIHRoZSBwcmVzZW5jZSBvZiBjb25mbGljdHMuIFN1
YnNlcXVlbnQNCg0KcmV2aXNpb25zIG9mIHRoZSBkcmFmdCBoYXZlIHRyaWVkIHRvIGFkZHJlc3Mg
dGhpcyBjb25jZXJuLiBIb3dldmVyIHRoZSBhdXRob3JzDQoNCmhhdmUgcmVwZWF0ZWRseSBzdHJl
c3NlZCB0aGF0IHRoZSBzb2x1dGlvbiBiZWluZyBwcm9wb3NlZA0KDQooImlnbm9yZSBvdmVybGFw
IG9ubHkiKSB3YXMgbW9yZSBjb21wbGV4IHRoYW4gb3RoZXIgb2ZmZXJlZCBhbHRlcm5hdGl2ZXMg
YW5kDQoNCndvdWxkIGJlIG1vcmUgZGlmZmljdWx0IHRvIGd1YXJhbnRlZSBpbnRlcm9wZXJhYmls
aXR5IGJlY2F1c2Ugc3VidGxlDQoNCmRpZmZlcmVuY2VzIGluIGFuIGltcGxlbWVudGF0aW9uIGNv
dWxkIHByb2R1Y2UgZGlmZmVyZW50IHJlc3VsdHMuDQoNCg0KDQpBdCBJRVRGOTcgc2lnbmlmaWNh
bnQgZmVlZGJhY2sgd2FzIHJlY2VpdmVkIHByZWZlcnJpbmcgYSBzaW1wbGVyIHNvbHV0aW9uIHRv
DQoNCnRoZSBwcm9ibGVtLiBUaGUgYXV0aG9ycyBhcmUgdmVyeSBzeW1wYXRoZXRpYyB0byB0aGlz
IGZlZWRiYWNrIGFuZCB0aGVyZWZvcmUNCg0KYXJlIHByb3Bvc2luZyBhIHNvbHV0aW9uIGJhc2Vk
IG9uIHdoYXQgdGhlIGRyYWZ0IGRlZmluZXMgYXMgdGhlICJJZ25vcmUiDQoNCnBvbGljeSAtIHdo
ZXJlIGFsbCBlbnRyaWVzIHdoaWNoIGFyZSBpbiBjb25mbGljdCBhcmUgaWdub3JlZC4gV2UgYmVs
aWV2ZSB0aGlzDQoNCmlzIGZhciBtb3JlIGRlc2lyYWJsZSBhbmQgYWxpZ25zIHdpdGggdGhlIHBy
aW9yaXRpZXMgbGlzdGVkIGFib3ZlLg0KDQoNCg0KV2Ugb3V0bGluZSB0aGUgcHJvcG9zZWQgc29s
dXRpb24gYmVsb3cgYW5kIHdvdWxkIGxpa2UgdG8gcmVjZWl2ZSBmZWVkYmFjayBmcm9tDQoNCnRo
ZSBXRyBiZWZvcmUgcHVibGlzaGluZyB0aGUgbmV4dCByZXZpc2lvbiBvZiB0aGUgZHJhZnQuDQoN
Cg0KDQogICBMZXMgKG9uIGJlaGFsZiBvZiB0aGUgYXV0aG9ycykNCg0KDQoNCk5ldyBQcm9wb3Nh
bA0KDQoNCg0KSW4gdGhlIGxhdGVzdCByZXZpc2lvbiBvZiB0aGUgZHJhZnQgIlNSTVMgUHJlZmVy
ZW5jZSIgd2FzIGludHJvZHVjZWQuIFRoaXMNCg0KcHJvdmlkZXMgYSB3YXkgZm9yIGEgbnVtZXJp
Y2FsIHByZWZlcmVuY2UgdG8gYmUgZXhwbGljaXRseSBhc3NvY2lhdGVkIHdpdGggYW4NCg0KU1JN
UyBhZHZlcnRpc2VtZW50LiBVc2luZyB0aGlzIGFuIG9wZXJhdG9yIGNhbiBpbmRpY2F0ZSB3aGlj
aCBhZHZlcnRpc2VtZW50IGlzDQoNCnRvIGJlIHByZWZlcnJlZCB3aGVuIGEgY29uZmxpY3QgaXMg
cHJlc2VudC4gVGhlIGF1dGhvcnMgdGhpbmsgdGhpcyBpcyBhIHVzZWZ1bA0KDQphZGRpdGlvbiBh
bmQgd2UgdGhlcmVmb3JlIHdhbnQgdG8gaW5jbHVkZSB0aGlzIGluIHRoZSBuZXcgc29sdXRpb24u
DQoNCg0KDQpUaGUgbmV3IHByZWZlcmVuY2UgcnVsZSB1c2VkIHRvIHJlc29sdmUgY29uZmxpY3Rz
IGlzIGRlZmluZWQgYXMgZm9sbG93czoNCg0KDQoNCkEgZ2l2ZW4gbWFwcGluZyBlbnRyeSBpcyBj
b21wYXJlZCBhZ2FpbnN0IGFsbCBtYXBwaW5nIGVudHJpZXMgaW4gdGhlIGRhdGFiYXNlDQoNCndp
dGggYSBwcmVmZXJlbmNlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBpdHMgb3duLiBJZiB0aGVy
ZSBpcyBhIGNvbmZsaWN0LA0KDQp0aGUgbWFwcGluZyBlbnRyeSB3aXRoIGxvd2VyIHByZWZlcmVu
Y2UgaXMgaWdub3JlZC4gSWYgdHdvIG1hcHBpbmcgZW50cmllcyBhcmUNCg0KaW4gY29uZmxpY3Qg
YW5kIGhhdmUgZXF1YWwgcHJlZmVyZW5jZSB0aGVuIGJvdGggZW50cmllcyBhcmUgaWdub3JlZC4N
Cg0KDQoNCkltcGxlbWVudGF0aW9uIG9mIHRoaXMgcG9saWN5IGlzIGRlZmluZWQgYXMgZm9sbG93
czoNCg0KDQoNClN0ZXAgMTogV2l0aGluIGEgc2luZ2xlIGFkZHJlc3MtZmFtaWx5L2FsZ29yaXRo
bS90b3BvbG9neSBzb3J0IGVudHJpZXMNCg0KYmFzZWQgb24gcHJlZmVyZW5jZQ0KDQpTdGVwIDI6
IFN0YXJ0aW5nIHdpdGggdGhlIGxvd2VzdCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgcHJl
Zml4IGNvbmZsaWN0cw0KDQp1c2luZyB0aGUgYWJvdmUgcHJlZmVyZW5jZSBydWxlLiBUaGUgb3V0
cHV0IGlzIGFuIGFjdGl2ZSBwb2xpY3kgcGVyIHRvcG9sb2d5Lg0KDQpTdGVwIDM6IFRha2UgdGhl
IG91dHB1dHMgZnJvbSBTdGVwIDIgYW5kIGFnYWluIHNvcnQgdGhlbSBieSBwcmVmZXJlbmNlDQoN
ClN0ZXAgNDogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHByZWZlcmVuY2UgZW50cmllcywgcmVz
b2x2ZSBTSUQgY29uZmxpY3RzDQoNCnVzaW5nIHRoZSBhYm92ZSBwcmVmZXJlbmNlIHJ1bGUNCg0K
DQoNClRoZSBvdXRwdXQgZnJvbSBTdGVwIDQgaXMgdGhlbiB0aGUgY3VycmVudCBBY3RpdmUgUG9s
aWN5Lg0KDQoNCg0KSGVyZSBhcmUgYSBmZXcgZXhhbXBsZXMuIEVhY2ggbWFwcGluZyBlbnRyeSBp
cyByZXByZXNlbnRlZCBieSB0aGUgdHVwbGU6DQoNCihQcmVmZXJlbmNlLCBQcmVmaXgvbWFzayBJ
bmRleCByYW5nZSA8Iz4pDQoNCg0KDQpFeGFtcGxlIDE6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4x
LzMyPGh0dHA6Ly8xLjEuMS4xLzMyPiAxMDAgcmFuZ2UgMTAwKQ0KDQoyLiAoMTQ5LCAxLjEuMS4x
MC8zMjxodHRwOi8vMS4xLjEuMTAvMzI+IDIwMCByYW5nZSAyMDApDQoNCjMuICgxNDgsIDEuMS4x
LjEwMS8zMjxodHRwOi8vMS4xLjEuMTAxLzMyPiA1MDAgcmFuZ2UgMTApDQoNCg0KDQpFbnRyeSAz
IGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIsIGl0IGlzIGlnbm9yZWQuDQoNCkVudHJ5IDIgY29uZmxp
Y3RzIHdpdGggZW50cnkgMSwgaXQgaXMgaWdub3JlZC4NCg0KQWN0aXZlIHBvbGljeToNCg0KDQoN
CigxNTAsIDEuMS4xLjEvMzI8aHR0cDovLzEuMS4xLjEvMzI+IDEwMCByYW5nZSAxMDApDQoNCg0K
DQpFeGFtcGxlIDI6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyPGh0dHA6Ly8xLjEuMS4xLzMy
PiAxMDAgcmFuZ2UgMTAwKQ0KDQoyLiAoMTUwLCAxLjEuMS4xMC8zMjxodHRwOi8vMS4xLjEuMTAv
MzI+IDIwMCByYW5nZSAyMDApDQoNCjMuICgxNTAsIDEuMS4xLjEwMS8zMjxodHRwOi8vMS4xLjEu
MTAxLzMyPiA1MDAgcmFuZ2UgMTApDQoNCjQuICgxNTAsIDIuMi4yLjEvMzI8aHR0cDovLzIuMi4y
LjEvMzI+IDEwMDAgcmFuZ2UgMSkNCg0KDQoNCkVudHJ5IDEgY29uZmxpY3RzIHdpdGggZW50cnkg
MiwgYm90aCBhcmUgbWFya2VkIGFzIGlnbm9yZS4NCg0KRW50cnkgMyBjb25mbGljdHMgd2l0aCBl
bnRyeSAyLiBJdCBpcyBtYXJrZWQgYXMgaWdub3JlLg0KDQpFbnRyeSA0IGhhcyBubyBjb25mbGlj
dHMgd2l0aCBhbnkgZW50cmllcw0KDQoNCg0KQWN0aXZlIHBvbGljeToNCg0KKDE1MCwgMi4yLjIu
MS8zMjxodHRwOi8vMi4yLjIuMS8zMj4gMTAwMCByYW5nZSAxKQ0KDQoNCg0KRXhhbXBsZSAzOg0K
DQoNCg0KMS4gKDE1MCwgMS4xLjEuMS8zMjxodHRwOi8vMS4xLjEuMS8zMj4gMTAwIHJhbmdlIDUw
MCkNCg0KMi4gKDE1MCwgMS4xLjEuMTAvMzI8aHR0cDovLzEuMS4xLjEwLzMyPiAyMDAgcmFuZ2Ug
MjAwKQ0KDQozLiAoMTUwLCAxLjEuMS4xMDEvMzI8aHR0cDovLzEuMS4xLjEwMS8zMj4gNTAwIHJh
bmdlIDEwKQ0KDQo0LiAoMTUwLCAyLjIuMi4xLzMyPGh0dHA6Ly8yLjIuMi4xLzMyPiAxMDAwIHJh
bmdlIDEpDQoNCg0KDQpFbnRyeSAxIGNvbmZsaWN0cyB3aXRoIGVudHJpZXMgMiwgMywgYW5kICA0
LiBBbGwgZW50cmllcyBhcmUgbWFya2VkIGlnbm9yZS4NCg0KDQoNCkFjdGl2ZSBwb2xpY3k6DQoN
CkVtcHR5DQoNCg0KDQpFeGFtcGxlIDQ6DQoNCg0KDQoxLiAoMTUwLCAxLjEuMS4xLzMyPGh0dHA6
Ly8xLjEuMS4xLzMyPiAxMDAgcmFuZ2UgMTApDQoNCjIuICgxNDksIDEuMS4xLjEwLzMyPGh0dHA6
Ly8xLjEuMS4xMC8zMj4gMjAwIHJhbmdlIDMwMCkNCg0KMy4gKDE0OSwgMS4xLjEuMTAxLzMyPGh0
dHA6Ly8xLjEuMS4xMDEvMzI+IDUwMCByYW5nZSAxMCkNCg0KNC4gKDE0OCwgMi4yLjIuMS8zMjxo
dHRwOi8vMi4yLjIuMS8zMj4gMTAwMCByYW5nZSAxKQ0KDQoNCg0KRW50cnkgNCBjb25mbGljdHMg
d2l0aCBlbnRyeSAyLiBJdCBpcyBtYXJrZWQgaWdub3JlLg0KDQpFbnRyeSAyIGNvbmZsaWN0cyB3
aXRoIGVudHJ5IDMuIEVudHJpZXMgMiBhbmQgMyBhcmUgbWFya2VkIGlnbm9yZS4NCg0KDQoNCkFj
dGl2ZSBwb2xpY3k6DQoNCigxNTAsIDEuMS4xLjEvMzI8aHR0cDovLzEuMS4xLjEvMzI+IDEwMCBy
YW5nZSAxMCkNCg0KDQoNCg0KDQoNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fDQpzcHJpbmcgbWFpbGluZyBsaXN0DQpzcHJpbmdAaWV0Zi5vcmc8
bWFpbHRvOnNwcmluZ0BpZXRmLm9yZz4NCmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlz
dGluZm8vc3ByaW5nDQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXw0Kc3ByaW5nIG1haWxpbmcgbGlzdA0Kc3ByaW5nQGlldGYub3JnPG1haWx0bzpz
cHJpbmdAaWV0Zi5vcmc+DQpodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3Nw
cmluZw0KDQo=

--_000_0b77633b3f1245e19f30c98d40af9755XCHALN001ciscocom_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K
CXtmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJcGFub3NlLTE6NSAwIDAgMCAwIDAgMCAwIDAgMDt9
DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIg
MiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3Nl
LTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNv
Tm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJn
aW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGlt
ZXMgTmV3IFJvbWFuIiwic2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNv
LXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVy
bGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxl
LXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l
O30NCnANCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRv
Ow0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFy
Z2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5l
dyBSb21hbiIsInNlcmlmIjt9DQpwLk1zb0FjZXRhdGUsIGxpLk1zb0FjZXRhdGUsIGRpdi5Nc29B
Y2V0YXRlDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgltc28tc3R5bGUtbGluazoiQmFsbG9v
biBUZXh0IENoYXIiOw0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZv
bnQtc2l6ZTo4LjBwdDsNCglmb250LWZhbWlseToiVGFob21hIiwic2Fucy1zZXJpZiI7fQ0Kc3Bh
bi5nbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtDQoJ
e21zby1zdHlsZS1uYW1lOmdtYWlsLW1fMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtO30NCnAuZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3
MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgsIGxpLmdt
YWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoLCBkaXYuZ21haWwtbTIyODI4MjIwNzg2NTk0
MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xp
c3RwYXJhZ3JhcGgNCgl7bXNvLXN0eWxlLW5hbWU6Z21haWwtbV8yMjgyODIyMDc4NjU5NDMzMzMz
bTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFy
YWdyYXBoOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdodDowaW47DQoJ
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6
ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlmIjt9DQpwLmdt
YWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQsIGxpLmdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMz
bTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRl
eHQsIGRpdi5nbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0DQoJe21zby1zdHlsZS1uYW1lOmdt
YWlsLW1fMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0K
CW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2lu
LWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBS
b21hbiIsInNlcmlmIjt9DQpzcGFuLkVtYWlsU3R5bGUyMQ0KCXttc28tc3R5bGUtdHlwZTpwZXJz
b25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCWNvbG9y
OiMxRjQ5N0Q7fQ0Kc3Bhbi5CYWxsb29uVGV4dENoYXINCgl7bXNvLXN0eWxlLW5hbWU6IkJhbGxv
b24gVGV4dCBDaGFyIjsNCgltc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLXN0eWxlLWxpbms6
IkJhbGxvb24gVGV4dCI7DQoJZm9udC1mYW1pbHk6IlRhaG9tYSIsInNhbnMtc2VyaWYiO30NCi5N
c29DaHBEZWZhdWx0DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtZmFtaWx5
OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41
aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjBpbiAxLjBpbiAxLjBpbjt9DQpkaXYuV29yZFNl
Y3Rpb24xDQoJe3BhZ2U6V29yZFNlY3Rpb24xO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNv
IDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAv
Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxh
eW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwv
bzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVO
LVVTIiBsaW5rPSJibHVlIiB2bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9u
MSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+Um9iZXJ0IOKAkzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+UGVyaGFwcyB3ZSBzaG91bGQgdGFrZSB0
aGlzIG9mZmxpbmUgYXMgd2UgYXJlIHN0YXJ0aW5nIHRvIGdvIG92ZXIgc29tZSBiYXNpY3Mgb2Yg
U1Ig4oCTIHdoaWNoIGRvZXNu4oCZdCBhZHZhbmNlIHRoaXMgdGhyZWFkLjxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+U29t
ZSBhbnN3ZXJzIGlubGluZS48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJz
cDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6
c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2
IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGlu
ZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Yj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7Ij4gcnJhc3p1a0BnbWFpbC5jb20gW21haWx0bzpycmFzenVrQGdtYWlsLmNvbV0NCjxiPk9u
IEJlaGFsZiBPZiA8L2I+Um9iZXJ0IFJhc3p1azxicj4NCjxiPlNlbnQ6PC9iPiBUaHVyc2RheSwg
RGVjZW1iZXIgMjIsIDIwMTYgMjo1NSBQTTxicj4NCjxiPlRvOjwvYj4gTGVzIEdpbnNiZXJnIChn
aW5zYmVyZyk8YnI+DQo8Yj5DYzo8L2I+IHNwcmluZ0BpZXRmLm9yZzsgQWlzc2FvdWksIE11c3Rh
cGhhIChOb2tpYSAtIENBKTxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW3NwcmluZ10gU0lEIENv
bmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbDxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpw
PjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkhpIExl
cyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90OyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90OyI+Jmd0OyDigIs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlh
bCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5PU1BGIG9uIFJvdXRlciAjMSBhZHZlcnRp
c2VzJm5ic3A7PGEgaHJlZj0iaHR0cDovLzEuMS4xLjEvMzIiIHRhcmdldD0iX2JsYW5rIj4xLjEu
MS4xLzMyPC9hPiZuYnNwO3cgU0lEIDEwMCZuYnNwOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx
RjQ5N0QiPiZndDsgT1NQRiBvbiBSb3V0ZXIgIzIgYWR2ZXJ0aXNlcyZuYnNwOzxhIGhyZWY9Imh0
dHA6Ly8yLjIuMi4yLzMyIiB0YXJnZXQ9Il9ibGFuayI+Mi4yLjIuMi8zMjwvYT4mbmJzcDt3IFNJ
RCAxMDA8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDsiPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZu
YnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90OyI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5i
c3A7Jmd0OyBCb3RoIHJvdXRlcyB3aWxsIGdldCBpbnN0YWxsZWQgaW4gdGhlIFJJQi9GSUIgb24g
YWxsIHJvdXRlcnMg4oCTIGJ1dCB3ZSZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm
cXVvdDs7Y29sb3I6IzFGNDk3RCI+Jmd0OyBjYW5ub3QgaW5zdGFsbCB0aGUgc2FtZSBsYWJlbCBp
biB0aGUgZm9yd2FyZGluZyBmb3IgYm90aCBkZXN0aW5hdGlvbnMg4oCTJm5ic3A7PC9zcGFuPjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mZ3Q7IHNvIHdlIGhhdmUg
dG8gZGVjaWRlIHdoYXQgdG8gZG8uPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPjwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Oztjb2xvcjojMUY0OTdEIj5XaHkgbm90ID8gVG8gbWUgdGhpcyBsb29rcyBsaWtlIGZvcm0g
b2YgYmFzaWMgcHVyZSBTUiBhbnljYXN0ICEgSW4gZmFjdCBpZiB5b3UgZGV0YWNoIHJlcXVpcmVt
ZW50DQogYW5kIGRlcGVuZGVuY3kgb24gSVAgYW55Y2FzdCBmcm9tIFNSIGFueWNhc3QgdGhlcmUg
aXMgcG90ZW50aWFsIGZvciBuaWNlIGFwcGxpY2F0aW9ucyB3aXRoIHRoYXQgbWFraW5nIFNSIGV2
ZW4gbW9yZSBhdHRyYWN0aXZlLiZuYnNwOzwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxp
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5bTGVzOl0gV0UgYXJl
IGxvb2tpbmcgYXQgdHdvIGRpZmZlcmVudCBwcmVmaXhlcyBoZXJlIOKAkyBub3QgdGhlIHNhbWUg
cHJlZml4IHNvdXJjZWQgYnkgbXVsdGlwbGUNCiBub2Rlcy48L3NwYW4+PC9pPjwvYj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21z
by1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+Jmd0OyB3ZSZuYnNwOyZuYnNwO2Nhbm5vdCBpbnN0YWxsIHRoZSBzYW1lIGxh
YmVsIGluIHRoZSBmb3J3YXJkaW5nIGZvciBib3RoIGRlc3RpbmF0aW9uczwvc3Bhbj48c3BhbiBz
dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
OyI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBz
dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
OyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+UmVhbGx5ID8gU2FtZSBs
YWJlbCBjYW4gcG9pbnQgdG8gTiBvdXRnb2luZyBwYXRocyAuLiB0aGlzIGlzIG5vcm1hbCBmb3Ig
YWdlcyBmb3IgRUNNUC4mbmJzcDs8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PGk+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPltMZXM6XSBBZ2FpbiwgdHdvIGRpZmZlcmVudCBwcmVmaXhlcyDi
gJMgbm90IG11bHRpcGxlIHBhdGhzIGZvciB0aGUgc2FtZSBwcmVmaXguPG86cD48L286cD48L3Nw
YW4+PC9pPjwvYj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxpPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsgTGVzPG86cD48L286
cD48L3NwYW4+PC9pPjwvYj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj
b2xvcjojMUY0OTdEIj5XaXRoIE1QTFMgaW4gZmFjdCAmbmJzcDstIGFzIHZlcnkgZmV3IG1heSBy
ZWNhbGwgLSB0aGVyZSBpcyBzcGVjaWFsIGtub2IgYWxsb3dpbmcNCjxiPnVuZXF1YWwgY29zdCBs
b2FkIGJhbGFuY2luZyBVQ01QPC9iPi4mbmJzcDsgVmVyeSBuaWNlIGZlYXR1cmUgaWYgb25lIGtu
b3dzIHdoYXQgaGUvc2hlIGlzIGRvaW5nIDopLjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMt
c2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Q2hlZXJzLDxicj4NClIuPC9zcGFuPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ij48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90OyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gVGh1LCBEZWMgMjIsIDIwMTYgYXQgMTE6NDYgUE0s
IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpICZsdDs8YSBocmVmPSJtYWlsdG86Z2luc2JlcmdAY2lz
Y28uY29tIiB0YXJnZXQ9Il9ibGFuayI+Z2luc2JlcmdAY2lzY28uY29tPC9hPiZndDsgd3JvdGU6
PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl
PSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90
OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlJvYmVydCDigJM8L3NwYW4+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10
b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj
MUY0OTdEIj5Zb3UgYXJlIG1ha2luZyBwcm9ncmVzcyDigJMgYnV0IHN0aWxsIGEgd2F5cyB0byBn
by4NCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTpXaW5n
ZGluZ3M7Y29sb3I6IzFGNDk3RCI+Sjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZu
YnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm
cXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkNvbnNpZGVyIHRoZSBmb2xsb3dp
bmcgc2ltcGxlIGNhc2U6PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDph
dXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ij7igIvigIs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPk9TUEYgb24gUm91dGVyICMxIGFkdmVydGlzZXMgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEv
MzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEvMzI8L2E+IHcgU0lEIDEwMDxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+T1NQRiBvbiBSb3V0ZXIgIzIgYWR2ZXJ0aXNlcw0KPGEgaHJlZj0iaHR0
cDovLzIuMi4yLjIvMzIiIHRhcmdldD0iX2JsYW5rIj4yLjIuMi4yLzMyPC9hPiB3IFNJRCAxMDA8
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj
b2xvcjojMUY0OTdEIj5Cb3RoIHJvdXRlcyB3aWxsIGdldCBpbnN0YWxsZWQgaW4gdGhlIFJJQi9G
SUIgb24gYWxsIHJvdXRlcnMg4oCTIGJ1dCB3ZSBjYW5ub3QgaW5zdGFsbCB0aGUgc2FtZSBsYWJl
bA0KIGluIHRoZSBmb3J3YXJkaW5nIGZvciBib3RoIGRlc3RpbmF0aW9ucyDigJMgc28gd2UgaGF2
ZSB0byBkZWNpZGUgd2hhdCB0byBkby48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4m
bmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4xKVdlIGNvdWxkIHNpbXBseSBu
b3QgaW5zdGFsbCBhIGxhYmVsIGZvciBlaXRoZXIgcHJlZml4IOKAkyB0aGF0IGlzIHRoZSDigJxz
aW1wbGUvSWdub3Jl4oCdIGFwcHJvYWNoIHRoYXQNCiBpcyBiZWluZyBkaXNjdXNzZWQuIElQIGZv
cndhcmRpbmcgd2lsbCB0aGVuIGJlIHVzZWQuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3
RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+MilXZSBjb3VsZCB1c2Ug
YSBwcmVmZXJlbmNlIHJ1bGUgdG8gZGV0ZXJtaW5lIHdoaWNoIGVudHJ5IGlzIHRoZSB3aW5uZXIg
YXMgZmFyIGFzIHVzZSBvZiB0aGUgbGFiZWwNCiBpcyBjb25jZXJuZWQg4oCTIHRoYXQgaXMgdGhl
IOKAnElnbm9yZSBPdmVybGFwIE9ubHnigJ0gYXBwcm9hY2ggaXMgb25lIHdheSBvZiBkb2luZyB0
aGlzLiBUaGUgd2lubmVyIHdvdWxkIGhhdmUgbGFiZWxzIGluc3RhbGxlZCDigJMgdGhlIGxvc2Vy
IHdvdWxkIG5vdC4NCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlJlZ2FyZGxlc3Mgb2YgY29uZmxpY3QgcmVzb2x1
dGlvbiBzdHJhdGVneSBib3RoIHJvdXRlcyB3aWxsIHN0aWxsIGV4aXN0IGluIGZvcndhcmRpbmcu
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+VGhlIGRlYmF0ZSB3ZSBhcmUgaGF2aW5nIGlzIHdoZXRoZXIgdG8gdXNl
ICMxIG9yICMyLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0
eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkJ1dCBub25lIG9mIHRo
aXMgcmVsYXRlcyB0byDigJxvdmVybGFwcGluZyBwcmVmaXhlc+KAnSBvciBzYW1lIHJvdXRlIGZy
b20gbXVsdGlwbGUgc291cmNlcyBvciBhbnkgb3RoZXINCiBwcm9ibGVtIHdoaWNoIHJvdXRpbmcg
YWxyZWFkeSBoYW5kbGVzLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkhUSDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZu
YnNwOyZuYnNwOyBMZXM8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGli
cmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+
DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3Bh
ZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25l
O2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGlu
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsi
PkZyb206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWls
eTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+DQo8YSBocmVmPSJt
YWlsdG86cnJhc3p1a0BnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5ycmFzenVrQGdtYWlsLmNv
bTwvYT4gW21haWx0bzo8YSBocmVmPSJtYWlsdG86cnJhc3p1a0BnbWFpbC5jb20iIHRhcmdldD0i
X2JsYW5rIj5ycmFzenVrQGdtYWlsLmNvbTwvYT5dDQo8Yj5PbiBCZWhhbGYgT2YgPC9iPlJvYmVy
dCBSYXN6dWs8YnI+DQo8Yj5TZW50OjwvYj4gVGh1cnNkYXksIERlY2VtYmVyIDIyLCAyMDE2IDI6
MjkgUE08L3NwYW4+PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxicj4NCjxiPlRvOjwvYj4gTGVzIEdpbnNiZXJnIChnaW5zYmVyZyk8YnI+DQo8Yj5D
Yzo8L2I+IEFpc3Nhb3VpLCBNdXN0YXBoYSAoTm9raWEgLSBDQSk7IDxhIGhyZWY9Im1haWx0bzpz
cHJpbmdAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj4NCnNwcmluZ0BpZXRmLm9yZzwvYT48YnI+
DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBB
IFNpbXBsZXIgUHJvcG9zYWw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4N
CjwvZGl2Pg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
Ij5MZXMsPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+QWZ0ZXIgbWVudGFsIHJl
c2V0IEkgY29uY2x1ZGUgdGhhdCBwZXJoYXBzIGV2ZW4gdGhlIGludHJvZHVjdGlvbiBvZiB0aGUg
ZHJhZnQgaXMgcXVlc3Rpb25hYmxlIGFzIGluIHJlYWwgbGlmZSBpdCBhcHBsaWVzIHRvIGJlIHF1
aXRlDQogYW4gdW5yZWFsaXN0aWMgc2NlbmFyaW8gdG8gaGF2ZSBhIHNpdHVhdGlvbiB3aGVyZSBt
b3JlIHRoZW4gb25lIHByb3RvY29sIGlzIHVzZWQgKmluIHRoZSBzYW1lIHRpbWUqIGFzIGFjdGl2
ZSBpbiBmb3J3YXJkaW5nIGZvciBhbiBleGFjdCBzYW1lIElQIHByZWZpeC4mbmJzcDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlm
JnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5MYXN0IHRpbWUgSSBjaGVja2VkIFNJRHMgYXJl
IG1lYW5pbmdsZXNzIHdpdGhvdXQgYSBwcmVmaXggdGhleSBhcmUgYXR0YWNoZWQgdG8gYW5kIGl0
IGlzIGEgcHJlZml4IHRoZXkgYWNjb21wYW55IHRvIGluZGljYXRlIHdoaWNoDQogU0lEIHNob3Vs
ZCBiZSB1c2VkIG9uIGEgZ2l2ZW4gbm9kZS4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8
L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7Ij5UaGVyZWZvciBpZiB5b3UgY29uc2lkZXIgdGhhdCB0b2RheSBtb3N0IGltcGxl
bWVudGF0aW9ucyBwcmV0dHkgd2VsbCBjYW4gaGFuZGxlIG92ZXJsYXBwaW5nIHByZWZpeGVzIGZy
b20gbXVsdGlwbGUgc291cmNlcyB3aGF0IHJlYWwNCiBwcm9ibGVtIGlzIHRoaXMgZHJhZnQgc29s
dmluZyA/Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+QXJlIHlvdSB0
cnlpbmcgdG8gY3JlYXRlIGEgZm9yd2FyZGluZyBncmFwaCBieSBTSURzIG9ubHkgZGV0YWNoaW5n
IHRoZW0gZnJvbSBJUCBwcmVmaXhlcyBhbGwgdG9nZXRoZXIgPzwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDsiPkNoZWVycyw8YnI+DQpSLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
IiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1
dG8iPk9uIFRodSwgRGVjIDIyLCAyMDE2IGF0IDEwOjMyIFBNLCBMZXMgR2luc2JlcmcgKGdpbnNi
ZXJnKSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNvbSIgdGFyZ2V0PSJfYmxh
bmsiPmdpbnNiZXJnQGNpc2NvLmNvbTwvYT4mZ3Q7IHdyb3RlOjxvOnA+PC9vOnA+PC9wPg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Oztjb2xvcjojMUY0OTdEIj5Sb2JlcnQg4oCTPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFG
NDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+WW91IGhhdmUgYSBj
b21wbGV0ZSBtaXN1bmRlcnN0YW5kaW5nIG9mIHJvbGVzIGhlcmUuPC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVv
dDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+SG93
IHRoZSBvd25lciBvZiBhIHJvdXRlIG1heSBiZSByZXByZXNlbnRlZCBpbiB0aGUgUklCIGlzbuKA
mXQgaW1wYWN0ZWQgYnkgU1JNUyBvciBjb25mbGljdCByZXNvbHV0aW9uLg0KIE5vciBpcyB0aGUg
ZGV0ZXJtaW5hdGlvbiBvZiB3aGljaCByb3V0ZSBpcyB0aGUgYmVzdCByb3V0ZS4gV2UgYXJlIG9u
bHkgZGV0ZXJtaW5pbmcgd2hldGhlciB0byB1c2Ugb3Igbm90IHVzZSBhIFNJRCB3aGljaCB3YXMg
YXNzb2NpYXRlZCB3aXRoIHRoZSBwcmVmaXggYnkgc29tZSBhZHZlcnRpc2VtZW50Ljwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMx
RjQ5N0QiPlRoZSBJbnRyb2R1Y3Rpb24gdG8gdGhlIGRyYWZ0IHN0YXRlczo8L3NwYW4+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij7igJxUaGUgcHJvYmxlbSB0byBiZSBhZGRyZXNzZWQgaXMgcHJvdG9jb2wgaW5kZXBlbmRlbnQg
aS5lLiwgc2VnbWVudDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNw
OyByZWxhdGVkIGFkdmVydGlzZW1lbnRzIG1heSBiZSBvcmlnaW5hdGVkIGJ5IG11bHRpcGxlIG5v
ZGVzIHVzaW5nPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7IGRp
ZmZlcmVudCBwcm90b2NvbHMgYW5kIHlldCB0aGUgY29uZmxpY3QgcmVzb2x1dGlvbiBNVVNUIGJl
IHRoZSBzYW1lPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7IG9u
IGFsbCBub2RlcyByZWdhcmRsZXNzIG9mIHRoZSBwcm90b2NvbCB1c2VkIHRvIHRyYW5zcG9ydCB0
aGU8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsgYWR2ZXJ0aXNl
bWVudHMu4oCdPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+UGxlYXNlIGRvIGEgbWVudGFsIHJlc2V0Lg0KPC9zcGFu
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OldpbmdkaW5ncztjb2xv
cjojMUY0OTdEIj5KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMt
c2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7IExlczwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0Qi
PiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2Jv
cmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8
ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEu
MHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7Ij4NCjxhIGhyZWY9Im1haWx0bzpycmFzenVrQGdtYWlsLmNvbSIgdGFy
Z2V0PSJfYmxhbmsiPnJyYXN6dWtAZ21haWwuY29tPC9hPiBbbWFpbHRvOjxhIGhyZWY9Im1haWx0
bzpycmFzenVrQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnJyYXN6dWtAZ21haWwuY29tPC9h
Pl0NCjxiPk9uIEJlaGFsZiBPZiA8L2I+Um9iZXJ0IFJhc3p1azxicj4NCjxiPlNlbnQ6PC9iPiBU
aHVyc2RheSwgRGVjZW1iZXIgMjIsIDIwMTYgMTE6NTIgQU08YnI+DQo8Yj5Ubzo8L2I+IExlcyBH
aW5zYmVyZyAoZ2luc2JlcmcpPGJyPg0KPGI+Q2M6PC9iPiBBaXNzYW91aSwgTXVzdGFwaGEgKE5v
a2lhIC0gQ0EpOyA8YSBocmVmPSJtYWlsdG86c3ByaW5nQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFu
ayI+DQpzcHJpbmdAaWV0Zi5vcmc8L2E+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW3Nw
cmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbDxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkhpIExlcyw8L3NwYW4+PG86cD48L286
cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl
PSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4m
bmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7Ij5PbiAjMSBJIGFtIGFsc28gd2l0aCBNdXN0YXBoYSBoZXJlLiBG
b3IgY2xhcml0eSBvZiB0aGlzIGRpc2N1c3Npb24gY2FuIHlvdSBlbnVtZXJhdGUgd2hlbiBmcm9t
IFJJQiB0byBGSUIvTEZJQiB5b3UgYXJlIGluc3RhbGxpbmcNCiB0aGUgZXhhY3Qgc2FtZSBhY3Rp
dmUgcHJlZml4IGZyb20gbW9yZSB0aGVuIG9uZSBwcm9kdWNlciA/IElzIFNSTVMgc29ydCBvZiB6
b21iaWUgaGVyZSBhbmQgbm90IHRyZWF0ZWQgYXMgcmVhbCByb3V0ZSBwcm9kdWNlciBoZW5jZSB3
ZSBoYXZlIGFuIGlzc3VlID8gQW5kIHRoZSBpc3N1ZSBpcyBvbmx5IHdpdGggY29uZmxpY3RzIG9m
IFNSTVMgJiM0MzsgcmVhbCByb3V0ZSBwcm9kdWNlciA/Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJn
aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0i
Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90OyI+T24gIzMgeW91IHNhaWQgdGhhdA0KPGk+JnF1b3Q7d2l0aCByZWRp
c3RyaWJ1dGlvbi9yb3V0ZSBsZWFraW5nIHRoZSBzb3VyY2Ugb2YgYW4gYWR2ZXJ0aXNlbWVudCBt
YXkgYXBwZWFyIHRvIGJlIGRpZmZlcmVudCBvbiBkaWZmZXJlbnQgcm91dGVycyZxdW90OzwvaT4g
dGhhdCBpcyB2ZXJ5IHRydWUuIEluIGZhY3Qgd2l0aCBzaW1wbGUgc3RhdGljIHJvdXRlIG9yIHN0
YXRpYyBsYWJlbCBjb25maWd1cmVkIG9uIGEgcm91dGVyIHRoZSBSSUIgYW5kIEZJQiBvbiB0aGF0
IHJvdXRlciB3aWxsIGJlIGRpZmZlcmVudA0KIHRoZW4gUklCIGFuZCBGSUIgb24gdGhlIG90aGVy
IHJvdXRlcnMgd2l0aG91dCBzdWNoIHN0YXRpYyByb3V0ZS4gQW5kIHRoZSBwb2ludCBpcyB0aGF0
IHN1Y2ggc3RhdGljIHJvdXRlIG9yIGxhYmVsIGlzIHRoZXJlIGZvciBhIHJlYXNvbiB5b3UgbWF5
IG5vdCBrbm93IGFib3V0LiBTbyBzdHJ1Z2dsaW5nIGZvciBkYXRhIHBsYW5lIGNvbnNpc3RlbmN5
IOKAi2RlbGliZXJhdGVseSBleGNsdWRpbmcgc291cmNlJm5ic3A7d2hlbiBvcGVyYXRpb25hbCBu
ZWVkcyByZXF1aXJlDQogb3RoZXJ3aXNlIGlzIG5vdCByZWFsbHkgdGhhdCBtdWNoIGhlbHBmdWwg
SSBhbSBhZnJhaWQuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+R3JlZXRpbmdz
LDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDsiPlJvYmVydC4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LWZhbWls
eTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+
PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+T24gVGh1
LCBEZWMgMjIsIDIwMTYgYXQgODozNyBQTSwgTGVzIEdpbnNiZXJnIChnaW5zYmVyZykgJmx0Ozxh
IGhyZWY9Im1haWx0bzpnaW5zYmVyZ0BjaXNjby5jb20iIHRhcmdldD0iX2JsYW5rIj5naW5zYmVy
Z0BjaXNjby5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+TXVzdGFw
aGEgLTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJt
c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4g
c3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxkaXYg
c3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzow
aW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVy
LXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250
LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8
L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4gc3ByaW5nIFttYWlsdG86PGEg
aHJlZj0ibWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+c3By
aW5nLWJvdW5jZXNAaWV0Zi5vcmc8L2E+XQ0KPGI+T24gQmVoYWxmIE9mIDwvYj5BaXNzYW91aSwg
TXVzdGFwaGEgKE5va2lhIC0gQ0EpPGJyPg0KPGI+U2VudDo8L2I+IFRodXJzZGF5LCBEZWNlbWJl
ciAyMiwgMjAxNiA4OjEwIEFNPGJyPg0KPHNwYW4gY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5
NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC0iPjxiPlRvOjwvYj4gTGVzIEdpbnNiZXJn
IChnaW5zYmVyZyk7DQo8YSBocmVmPSJtYWlsdG86c3ByaW5nQGlldGYub3JnIiB0YXJnZXQ9Il9i
bGFuayI+c3ByaW5nQGlldGYub3JnPC9hPjwvc3Bhbj48YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6
IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWw8L3Nw
YW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7
c2Fucy1zZXJpZiZxdW90OyI+SGkgTGVzLDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+SSByZWFkIHNsaWRlcyAx
Ny0yMSBvZiB0aGUgZG9jdW1lbnQgeW91IHJlZmVyZW5jZWQgYmVsb3cgYW5kIEkgaGF2ZSB0aGUg
Zm9sbG93aW5nIGNvbW1lbnRzOjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj4NCjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjEuPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDsiPlBhZ2UgMTcsIOKAnE9yZGVyIE1hdHRlcnMgLSBQcmVmaXggdnMgU0lEIENvbmZs
aWN04oCdLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3
ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvbGlzdHBhcmFncmFwaCI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5XaGVuIHlvdSBw
ZXJmb3JtIHJlc29sdXRpb24gb24mbmJzcDsgYSBwZXIgcHJlZml4IGJhc2lzLCBwcmVmaXggY29u
ZmxpY3RzIGFyZSBuYXR1cmFsbHkgcHJvY2Vzc2VkIGZpcnN0IGZvbGxvd2VkIGJ5IFNJRCBjb25m
bGljdHMgYWNyb3NzIGRpZmZlcmVudCBwcmVmaXhlcy4gU28gdGhlIG9yZGVyaW5nIGlzc3VlIGRl
c2NyaWJlZCBpcyBvbmx5IHNwZWNpZmljDQogaWYgeW91IGRlY2lkZWQgdG8gcmVzb2x2ZSBjb25m
bGljdGluZyBTSUQgZW50cmllcyBvdXRzaWRlIG9mIHRoZSBuYXR1cmFsIHByZWZpeCByZXNvbHV0
aW9uIGJ5IGEgcm91dGVyLg0KPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWls
LW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Imdt
YWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj4NCjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xv
cjojMUY0OTdEIj5bTGVzOl0gV2hhdCBtYXkgc2VlbSDigJxuYXR1cmFs4oCdIHRvIHlvdSBtaWdo
dCBub3QgdG8gc29tZW9uZSBlbHNlLiBJIGRvbuKAmXQgY2FyZSB0byBkZWJhdGUgdGhhdCBwb2lu
dC4gV2hhdCBpcyBiZWluZyBpbGx1c3RyYXRlZCBoZXJlIGlzIHRoYXQgaW4gb3JkZXIgdG8gcHJv
dmlkZSBhIG5vcm1hdGl2ZSBzcGVjaWZpY2F0aW9uIHRoYXQg4oCTIGlmIGZvbGxvd2VkIOKAkyBn
dWFyYW50ZWVzIGludGVyb3BlcmFiaWxpdHkNCiB3ZSBoYXZlIHRvIHNwZWNpZnkgdGhlIG9yZGVy
IGluIHdoaWNoIGNvbmZsaWN0cyBhcmUgcHJvY2Vzc2VkIG90aGVyd2lzZSBkaWZmZXJlbnQgcmVz
dWx0cyBtYXkgYmUgb2J0YWluZWQuPC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWls
LW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPg0KPHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWls
LW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsi
PjIuPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPlBhZ2UgMTgsIOKAnE9y
ZGVyIE1hdHRlcnM6IERlcml2ZWQgdnMgbm9uLWRlcml2ZWTigJMgcHJlZml4IGNvbmZsaWN04oCd
Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQz
MzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlz
dHBhcmFncmFwaCI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5JdCBzZWVtcyB0byBtZSB0
aGlzIGlzc3VlIGlzIGFuIGFydGlmYWN0IG9mIHRoZSBzcGVjaWZpYyBhbGdvcml0aG0gdXNlZCB0
byByZXNvbHZlIGNvbmZsaWN0cy4gQmVjYXVzZSB0aGUgYWxnb3JpdGhtIHVzZXMgcGFyYW1ldGVy
cyBzdWNoIGFzIOKAnFJhbmdlIChzdGFydCB3IHNtYWxsZXN0KeKAnSB0aGVuIG9idmlvdXNseSBk
ZXJpdmVkIFNSTVMNCiBlbnRyaWVzIHdpbGwgbGVuZCBhIGRpZmZlcmVudCByZXN1bHQgdGhhbiBv
cmlnaW5hbCBTUk1TIGVudHJpZXMuIDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7Ij5XaXRoIHRoZSBwcmUtcHJlZml4IHJlc29sdXRpb24sIHRoZSBvbmx5IGluZm9ybWF0aW9u
IGtlcHQgZnJvbSB0aGUgb3JpZ2luYWwgU1JNUyBlbnRyeSBpcyB0aGUgcHJlZmVyZW5jZSBhbmQg
dGhlIGFkdmVydGlzaW5nIG9yIG93bmVyIHJvdXRlci4gQW55dGhpbmcgZWxzZSBpcyBub3QgdXNl
ZC4gSXQgc2VlbXMgdG8gbWUgYSBzaW1wbGUNCiBhbGdvcml0aG0gYmFzZWQgb24gcHJlZmVyZW5j
ZSBmaXJzdCB0aGVuIGZvbGxvd2VkIGJ5IHNvbWUgcnVsZSBvbiBzZWxlY3RpbmcgdGhlIGFkdmVy
dGlzaW5nIHJvdXRlciBpZiBjb25mbGljdHMgZXhpc3Qgd2l0aGluIHRoZSBzYW1lIHByZWZlcmVu
Y2Ugd291bGQgd29yay48L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIy
ODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xv
cjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwt
bTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPg0KPGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMx
RjQ5N0QiPltMZXM6XSBZb3UgaGF2ZSBpbXBsZW1lbnRlZCB0aGluZ3MgaW4gYSBjZXJ0YWluIHdh
eS4gU29tZW9uZSBlbHNlIG1pZ2h0IGNob29zZSB0byBpbXBsZW1lbnQgaW4gYSBkaWZmZXJlbnQg
d2F5LiBBIG5vcm1hdGl2ZSBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IChhbmQgc2hvdWxkIG5vdCkg
Y29uc3RyYWluIGFuIGltcGxlbWVudGF0aW9uLiBXaGF0IGlzIGJlaW5nIGlsbHVzdHJhdGVkIGhl
cmUNCiBpcyB0aGF0IGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCByZXRhaW4gdGhlIHVu
ZGVyaXZlZCBlbnRyeSAoaW4gd2hhdGV2ZXIgaW50ZXJuYWwgZm9ybSBpdCBjaG9vc2VzKSBkaWZm
ZXJlbnQgcmVzdWx0cyB3aWxsIGJlIG9idGFpbmVkIGJlY2F1c2UgdGhlIHByZWZlcmVuY2UgYWxn
b3JpdGhtIGRlcGVuZHMgb24gY29tcGFyaW5nIHRoZSB1bmRlcml2ZWQgcmFuZ2VzLjwvc3Bhbj48
L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMz
MzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0
cGFyYWdyYXBoIj4NCjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5
NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgi
Pg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+My48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90OyI+RmluYWxseSwgdGhlcmUgaXMgc29tZXRoaW5nIHdoaWNoIGhhcyBub3Qg
YmVlbiBhZGRyZXNzZWQgaW4gdGhlIHNsaWRlcy4gVGhlcmUgaXMgc3RpbGwgYSBwb3NzaWJpbGl0
eSBvZiBjb25mbGljdGluZyBlbnRyaWVzIGFtb25nIFNJRHMgYWR2ZXJ0aXNlZCB1c2luZyB0aGUg
cHJlZml4IFNJRCBzdWItVExWIHdpdGhpbiBhIFByZWZpeA0KIFRMViAoSVMtSVMgSVAgUmVhY2gg
VExWIG9yIE9TUEYgRXh0ZW5kZWQgUHJlZml4IFRMVikuIEEgc2ltcGxlIHJ1bGUgc2VsZWN0aW5n
IHRoZSBhZHZlcnRpc2luZyByb3V0ZXIgc2hvdWxkIGFsc28gd29yayBmaW5lIGhlcmUuPC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPltM
ZXM6XSBObyDigJMgc291cmNlIG9mIGFuIGFkdmVydGlzZW1lbnQgaGFzIGJlZW4gcXVpdGUNCjwv
c3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0
byI+PGI+PGk+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDsiPuKAi+KAizwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0K
PC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxpPmRlbGliZXJhdGVseSBleGNsdWRl
ZCBmcm9tIHRoZSBwcmVmZXJlbmNlIGFsZ29yaXRobS4gV2l0aCByZWRpc3RyaWJ1dGlvbi9yb3V0
ZSBsZWFraW5nIHRoZSBzb3VyY2Ugb2YgYW4gYWR2ZXJ0aXNlbWVudCBtYXkgYXBwZWFyIHRvIGJl
IGRpZmZlcmVudCBvbiBkaWZmZXJlbnQgcm91dGVycy0gdGhpcw0KIHdvdWxkIHJlc3VsdCBpbiBk
aWZmZXJlbnQgcmVzdWx0cyBvbiBkaWZmZXJlbnQgcm91dGVycy48L2k+PC9iPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFG
NDk3RCI+Jm5ic3A7PC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t
YWx0OmF1dG8iPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsg
TGVzPC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJp
ZiZxdW90OyI+UmVnYXJkcyw8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPk11c3RhcGhhLjwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90
OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7
Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4N
CjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNFMUUxRTEg
MS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PjxiPkZyb206PC9iPiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKSBbPGEgaHJlZj0ibWFpbHRvOmdp
bnNiZXJnQGNpc2NvLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPm1haWx0bzpnaW5zYmVyZ0BjaXNjby5j
b208L2E+XQ0KPGJyPg0KPGI+U2VudDo8L2I+IEZyaWRheSwgRGVjZW1iZXIgMDksIDIwMTYgMTo0
OSBQTTxicj4NCjxiPlRvOjwvYj4gQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKSAmbHQ7
PGEgaHJlZj0ibWFpbHRvOm11c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNvbSIgdGFyZ2V0PSJfYmxh
bmsiPm11c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNvbTwvYT4mZ3Q7Ow0KPGEgaHJlZj0ibWFpbHRv
OnNwcmluZ0BpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnNwcmluZ0BpZXRmLm9yZzwvYT48YnI+
DQo8Yj5TdWJqZWN0OjwvYj4gUkU6IFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIg
UHJvcG9zYWw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0
OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3Bh
biBzdHlsZT0iY29sb3I6IzFGNDk3RCI+TXVzdGFwaGEgLTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t
bWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNw
Ozwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1s
ZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0K
PGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3Bh
ZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1z
by1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7Ij4gQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtDQogQ0EpIFs8YSBocmVmPSJt
YWlsdG86bXVzdGFwaGEuYWlzc2FvdWlAbm9raWEuY29tIiB0YXJnZXQ9Il9ibGFuayI+bWFpbHRv
Om11c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNvbTwvYT5dDQo8YnI+DQo8Yj5TZW50OjwvYj4gRnJp
ZGF5LCBEZWNlbWJlciAwOSwgMjAxNiA3OjQ0IEFNPGJyPg0KPGI+VG86PC9iPiBMZXMgR2luc2Jl
cmcgKGdpbnNiZXJnKTsgPGEgaHJlZj0ibWFpbHRvOnNwcmluZ0BpZXRmLm9yZyIgdGFyZ2V0PSJf
YmxhbmsiPg0Kc3ByaW5nQGlldGYub3JnPC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPiBSRTogU0lE
IENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbDwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7Ij5JIGhhdmUgYSBjb3VwbGUgb2YgY29tbWVudHMgb24gdGhlIGJlbG93IHByb3Bvc2FsLjwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Imdt
YWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDsiPjEuPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPlJlZ2FyZGluZyB0
aGUgU1JNUyBQcmVmZXJlbmNlIFN1Yi1UTFYgaW4gc2VjdGlvbiAzLjEgb2YgdGhlIGRyYWZ0LiBJ
biBtYW55IGNhc2VzLCBhIGNvbmZpZ3VyYXRpb24gb24gdGhlIHJlc29sdmluZyByb3V0ZXIgY2Fu
IGFzc2lnbiBhIHByZWZlcmVuY2UgdG8gZWFjaCBTUk1TIGluIGNhc2UgdGhlcmUgaXMgbm8gYWR2
ZXJ0aXNlbWVudA0KIG9mIHRoaXMgc3ViLVRMViBvciB0byBvdmVycmlkZSBhbiBhZHZlcnRpc2Vk
IHZhbHVlLiBJIHByb3Bvc2UgdGhhdCB0aGlzIG9wdGlvbiBiZSBhbGxvd2VkLiBIZXJlIGlzIGEg
cHJvcG9zZWQgdXBkYXRlIHRvIHRoZSByZWxldmFudCBwYXJhZ3JhcGg6PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj4NCjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPuKAnDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsgQWR2ZXJ0aXNlbWVudCBvZiBhIHByZWZlcmVuY2Ug
dmFsdWUgaXMgb3B0aW9uYWwuJm5ic3A7IE5vZGVzIHdoaWNoIGRvIG5vdDwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDthZHZlcnRpc2UgYSBwcmVm
ZXJlbmNlIHZhbHVlIGFyZSBhc3NpZ25lZCBhIHByZWZlcmVuY2UgdmFsdWUgb2YgMTI4LiAmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6
YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q291
cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyAmbmJzcDsmbmJzcDsmbmJzcDs8c3BhbiBzdHlsZT0iY29sb3I6cmVkIj5BIHJlc29sdmluZyBy
b3V0ZXIgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IG9yIHRoZSBhZHZlcnRpc2VkIHZhbHVlIGJ5
IGxvY2FsIHBvbGljeS48L3NwYW4+PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Imdt
YWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDsiPuKAnDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3
ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvbGlzdHBhcmFncmFwaCI+DQo8Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+W0xl
czpdIEluIG9yZGVyIHRvIGdldCBjb25zaXN0ZW50IGNvbmZsaWN0IHJlc29sdXRpb24gb24gYWxs
IG5vZGVzIGluIHRoZSBuZXR3b3JrLCBpdCBpcyBuZWNlc3NhcnkgdGhhdCB0aGV5IGFsbCBoYXZl
IHRoZSBzYW1lIGRhdGFiYXNlIOKAkyB3aGljaCBpbmNsdWRlcyB0aGUgcHJlZmVyZW5jZSB2YWx1
ZS4gSWYgeW91IGFsbG93IGxvY2FsIHBvbGljeSB0byBtb2RpZnkgdGhlIHByZWZlcmVuY2UNCiB5
b3Ugbm8gbG9uZ2VyIGhhdmUgY29uc2lzdGVudCBkYXRhYmFzZXMgb24gYWxsIG5vZGVzIGFuZCB3
ZSBjYW4gbm8gbG9uZ2VyIGd1YXJhbnRlZSBjb25zaXN0ZW50IGNvbmZsaWN0IHJlc29sdXRpb24u
IFNvIHlvdXIgcHJvcG9zYWwgaXMgbm90IHZpYWJsZSBJTU8uPC9zcGFuPjwvaT48L2I+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1
MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPg0K
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj4NCjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDsiPjIuPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAu
MHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsi
PkkgYW0gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmNlcHQgb2Ygc29ydGluZyBTUk1TIGVu
dHJpZXMgd2hpY2ggaGF2ZSBkaWZmZXJlbnQgcHJlZml4ZXMgYW5kIGRpZmZlcmVudCByYW5nZSBz
aXplcy4gJm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgy
ODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29saXN0cGFyYWdyYXBoIj4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPlNpbmNl
IGEgU0lEIGFkdmVydGlzZWQgaW4gYSBwcmVmaXggU0lEIHN1Yi1UTFYgd2l0aGluIGEgUHJlZml4
IFRMViAoSVMtSVMgSVAgUmVhY2ggVExWIG9yIE9TUEYgRXh0ZW5kZWQgUHJlZml4IFRMVikgaGFz
IGhpZ2hlciBwcmlvcml0eSBvdmVyIGEgU0lEIGZvciB0aGUgc2FtZSBwcmVmaXggYWR2ZXJ0aXNl
ZCBmcm9tIGEgU1JNUywgdGhlbg0KIHlvdSBoYXZlIHRvIGFkZCB0byB0aGUgYmVsb3cgc29ydGlu
ZyBhbiBlbnRyeSBmb3IgZWFjaCBpbmRpdmlkdWFsIHByZWZpeCB3aGljaCBhZHZlcnRpc2VkIGEg
cHJlZml4IFNJRCBzdWItVExWIHdpdGhpbiBhIHByZWZpeCBUTFYuDQo8L3NwYW4+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3
MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPg0KPHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDss
JnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+QXQgdGhpcyBwb2ludCwgdGhlIGNvbmNlcHQgb2YgYW4g
ZW50cnkgd2l0aCBtdWx0aXBsZSBwcmVmaXhlcyBpcyBtb290IGFuZCB5b3UgbWF5IGFzIHdlbGwg
anVzdCBzb3J0IG9uIGEgcGVyIHByZWZpeCBiYXNpcyB3aGljaCBpcyB0aGUgbW9zdCBuYXR1cmFs
IHRoaW5nIHRvIGRvIGdpdmVuIHRoYXQgdGhlIHByZWZpeCByZXNvbHV0aW9uDQogYW5kIHRoZW4g
dGhlIFNJRCByZXNvbHV0aW9uIGFyZSBwZXJmb3JtZWQgb24gYSBwZXIgcHJlZml4IGJhc2lzLiBT
SUQgY29uZmxpY3RzIGNhbiBiZSByZXNvbHZlZCBvbiBhIHBlciBwcmVmaXggYmFzaXMgdXNpbmcg
dGhlIGJlbG93IHByb3Bvc2VkIHByZWZlcmVuY2UgYWxnb3JpdGhtIHdpdGhvdXQgaGF2aW5nIHRv
IGlnbm9yZSBTSUQgdmFsdWVzIGZvciB1bnJlbGF0ZWQgcHJlZml4ZXMganVzdCBiZWNhdXNlIGl0
IGhhcHBlbnMgdGhhdCB0aGV5DQogd2VyZSBhZHZlcnRpc2VkIGluIHRoZSBzYW1lIFNSTVMgZW50
cnkuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5
NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29s
aXN0cGFyYWdyYXBoIj4NCjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8
L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3
ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvbGlzdHBhcmFncmFwaCI+DQo8Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+W0xl
czpdIFRoZSBzaW1wbGVyIHByb3Bvc2FsIGRvZXMgbm90IHJlcXVpcmUgc29ydGluZyBvbiBhbnl0
aGluZyBvdGhlciB0aGFuIHByZWZlcmVuY2UuIEFmdGVyIHRoYXQsIHlvdSBjYW4gcHJvY2VzcyBl
bnRyaWVzIGluIGFueSBvcmRlciB5b3Ugd2FudCBhbmQgeW91IHdpbGwgZ2V0IHRoZSBzYW1lIGFu
c3dlci48L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4
MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvbGlzdHBhcmFncmFwaCI+DQo8Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3
RCI+V2l0aCDigJxJZ25vcmUgT3ZlcmxhcCBPbmx54oCdIG9uZSBvZiB0aGUgaXNzdWVzIHdpdGgg
dHJ5aW5nIHRvIHVzZSB0aGUgbm9uLWNvbmZsaWN0aW5nIHBvcnRpb25zIG9mIGEgbWFwcGluZyBl
bnRyeSB3aGljaCBoYXMgYSByYW5nZSAmZ3Q7IDEgaXMgdGhhdCB0aGUgb3JkZXIgaW4gd2hpY2gg
eW91IHByb2Nlc3MgZW50cmllcyBpbmZsdWVuY2VzIHRoZSByZXN1bHQuIFBsZWFzZSBzZWUgc2xp
ZGVzIDE3DQog4oCTIDIwIGZyb20gdGhlIElFVEY5NyBwcmVzZW50YXRpb246IDxhIGhyZWY9Imh0
dHBzOi8vd3d3LmlldGYub3JnL3Byb2NlZWRpbmdzLzk3L3NsaWRlcy9zbGlkZXMtOTctc3ByaW5n
LTFfaWV0Zjk3X2RyYWZ0LWlldGYtc3ByaW5nLWNvbmZsaWN0LXJlc29sdXRpb24tMDItMDAucHB0
eCIgdGFyZ2V0PSJfYmxhbmsiPg0KaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcHJvY2VlZGluZ3MvOTcv
c2xpZGVzL3NsaWRlcy05Ny1zcHJpbmctMV9pZXRmOTdfZHJhZnQtaWV0Zi1zcHJpbmctY29uZmxp
Y3QtcmVzb2x1dGlvbi0wMi0wMC5wcHR4PC9hPiBmb3Igc29tZSBzaW1wbGUgZXhhbXBsZXMgb2Yg
dGhpcy48L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4
MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvbGlzdHBhcmFncmFwaCI+DQo8Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3
RCI+Jm5ic3A7PC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwt
bTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPg0KPGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMx
RjQ5N0QiPiZuYnNwOyZuYnNwOyBMZXM8L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+DQo8c3BhbiBzdHlsZT0i
Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij4mbmJzcDs8L3NwYW4+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDsiPlJlZ2FyZHMsPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5NdXN0YXBoYS48L3NwYW4+PG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87
bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPiZu
YnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRl
ci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2
Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0
O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj5G
cm9tOjwvYj4gc3ByaW5nIFs8YSBocmVmPSJtYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmci
IHRhcmdldD0iX2JsYW5rIj5tYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmc8L2E+XQ0KPGI+
T24gQmVoYWxmIE9mIDwvYj5MZXMgR2luc2JlcmcgKGdpbnNiZXJnKTxicj4NCjxiPlNlbnQ6PC9i
PiBTdW5kYXksIERlY2VtYmVyIDA0LCAyMDE2IDc6MDQgUE08YnI+DQo8Yj5Ubzo8L2I+IDxhIGhy
ZWY9Im1haWx0bzpzcHJpbmdAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5rIj5zcHJpbmdAaWV0Zi5v
cmc8L2E+PGJyPg0KPGI+U3ViamVjdDo8L2I+IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0
aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h
cmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Imdt
YWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KV2hlbiB0aGUgcHJvYmxlbSBhZGRyZXNzZWQg
YnkgZHJhZnQtaWV0Zi1zcHJpbmctY29uZmxpY3QtcmVzb2x1dGlvbiB3YXMgZmlyc3QgPG86cD4N
CjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCnBy
ZXNlbnRlZCBhdCBJRVRGIDk0LCB0aGUgYXV0aG9ycyBkZWZpbmVkIHRoZSBmb2xsb3dpbmcgcHJp
b3JpdGllczo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQz
MzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIy
MDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPg0KMSlEZXRlY3QgdGhlIHByb2JsZW08bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjIpUmVwb3J0IHRoZSBwcm9i
bGVtPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNt
NjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4
dCI+DQpUaGlzIGFsZXJ0cyB0aGUgbmV0d29yayBvcGVyYXRvciB0byB0aGUgZXhpc3RlbmNlIG9m
IGEgY29uZmxpY3Qgc28gdGhhdDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgy
ODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQiPg0KdGhlIGNvbmZpZ3VyYXRpb24gZXJyb3IgY2FuIGJlIGNvcnJl
Y3RlZC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMz
M202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50
ZXh0Ij4NCjMpRGVmaW5lIGNvbnNpc3RlbnQgYmVoYXZpb3I8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NClRoaXMgYXZvaWRzIG1pcy1mb3J3
YXJkaW5nIHdoaWxlIHRoZSBjb25mbGljdCBleGlzdHMuPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQo0KURvbuKAmXQgb3ZlcmVuZ2luZWVy
IHRoZSBzb2x1dGlvbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4
NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29wbGFpbnRleHQiPg0KR2l2ZW4gdGhhdCBpdCBpcyBpbXBvc3NpYmxlIHRvIGtub3cgd2hpY2gg
b2YgdGhlIGNvbmZsaWN0aW5nIGVudHJpZXM8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFp
bC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCmlzIHRoZSBjb3JyZWN0IG9uZSwgd2Ugc2hvdWxk
IGFwcGx5IGEgc2ltcGxlIGFsZ29yaXRobSB0byByZXNvbHZlIHRoZSBjb25mbGljdC48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjUpQWdy
ZWUgb24gdGhlIHJlc29sdXRpb24gYmVoYXZpb3I8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFp
bC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KVGhlIHJlc29sdXRpb24gYmVo
YXZpb3Igd2FzIGRlbGliZXJhdGVseSB0aGUgbGFzdCBwb2ludCBiZWNhdXNlIGl0IHdhcyA8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCmNv
bnNpZGVyZWQgdGhlIGxlYXN0IGltcG9ydGFudC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFp
bC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KSW5wdXQgd2FzIHJlY2VpdmVk
IG92ZXIgdGhlIHBhc3QgeWVhciB3aGljaCBlbXBoYXNpemVkIHRoZSBpbXBvcnRhbmNlIG9mPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5
NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQp0
cnlpbmcgdG8gJnF1b3Q7bWF4aW1pemUgZm9yd2FyZGluZyZxdW90OyBpbiB0aGUgcHJlc2VuY2Ug
b2YgY29uZmxpY3RzLiBTdWJzZXF1ZW50PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwt
bTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQpyZXZpc2lvbnMgb2YgdGhlIGRyYWZ0IGhhdmUgdHJp
ZWQgdG8gYWRkcmVzcyB0aGlzIGNvbmNlcm4uIEhvd2V2ZXIgdGhlIGF1dGhvcnMgPG86cD4NCjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCmhhdmUg
cmVwZWF0ZWRseSBzdHJlc3NlZCB0aGF0IHRoZSBzb2x1dGlvbiBiZWluZyBwcm9wb3NlZCA8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCigm
cXVvdDtpZ25vcmUgb3ZlcmxhcCBvbmx5JnF1b3Q7KSB3YXMgbW9yZSBjb21wbGV4IHRoYW4gb3Ro
ZXIgb2ZmZXJlZCBhbHRlcm5hdGl2ZXMgYW5kIDxvOnA+DQo8L286cD48L3A+DQo8cCBjbGFzcz0i
Z21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQp3b3VsZCBiZSBtb3JlIGRpZmZpY3VsdCB0
byBndWFyYW50ZWUgaW50ZXJvcGVyYWJpbGl0eSBiZWNhdXNlIHN1YnRsZSA8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2
MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCmRpZmZlcmVuY2Vz
IGluIGFuIGltcGxlbWVudGF0aW9uIGNvdWxkIHByb2R1Y2UgZGlmZmVyZW50IHJlc3VsdHMuPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5
NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQom
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMz
M202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50
ZXh0Ij4NCkF0IElFVEY5NyBzaWduaWZpY2FudCBmZWVkYmFjayB3YXMgcmVjZWl2ZWQgcHJlZmVy
cmluZyBhIHNpbXBsZXIgc29sdXRpb24gdG8gPG86cD4NCjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCnRoZSBwcm9ibGVtLiBUaGUgYXV0aG9ycyBh
cmUgdmVyeSBzeW1wYXRoZXRpYyB0byB0aGlzIGZlZWRiYWNrIGFuZCB0aGVyZWZvcmUgPG86cD4N
CjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCmFy
ZSBwcm9wb3NpbmcgYSBzb2x1dGlvbiBiYXNlZCBvbiB3aGF0IHRoZSBkcmFmdCBkZWZpbmVzIGFz
IHRoZSAmcXVvdDtJZ25vcmUmcXVvdDsgPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwt
bTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQpwb2xpY3kgLSB3aGVyZSBhbGwgZW50cmllcyB3aGlj
aCBhcmUgaW4gY29uZmxpY3QgYXJlIGlnbm9yZWQuIFdlIGJlbGlldmUgdGhpcyA8bzpwPg0KPC9v
OnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KaXMgZmFy
IG1vcmUgZGVzaXJhYmxlIGFuZCBhbGlnbnMgd2l0aCB0aGUgcHJpb3JpdGllcyBsaXN0ZWQgYWJv
dmUuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNt
NjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4
dCI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1
OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNv
cGxhaW50ZXh0Ij4NCldlIG91dGxpbmUgdGhlIHByb3Bvc2VkIHNvbHV0aW9uIGJlbG93IGFuZCB3
b3VsZCBsaWtlIHRvIHJlY2VpdmUgZmVlZGJhY2sgZnJvbSA8bzpwPg0KPC9vOnA+PC9wPg0KPHAg
Y2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFp
bC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KdGhlIFdHIGJlZm9yZSBwdWJs
aXNoaW5nIHRoZSBuZXh0IHJldmlzaW9uIG9mIHRoZSBkcmFmdC48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KJm5ic3A7Jm5i
c3A7IExlcyAob24gYmVoYWxmIG9mIHRoZSBhdXRob3JzKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1t
LTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KJm5ic3A7PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2
NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQo8aT5OZXcgUHJvcG9z
YWw8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMz
MzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWlu
dGV4dCI+DQo8aT4mbmJzcDs8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIy
ODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb3BsYWludGV4dCI+DQo8aT5JbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mIHRoZSBk
cmFmdCAmcXVvdDtTUk1TIFByZWZlcmVuY2UmcXVvdDsgd2FzIGludHJvZHVjZWQuIFRoaXMgPC9p
Pg0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNt
NjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4
dCI+DQo8aT5wcm92aWRlcyBhIHdheSBmb3IgYSBudW1lcmljYWwgcHJlZmVyZW5jZSB0byBiZSBl
eHBsaWNpdGx5IGFzc29jaWF0ZWQgd2l0aCBhbiA8L2k+DQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjxpPlNSTVMgYWR2ZXJ0aXNlbWVu
dC4gVXNpbmcgdGhpcyBhbiBvcGVyYXRvciBjYW4gaW5kaWNhdGUgd2hpY2ggYWR2ZXJ0aXNlbWVu
dCBpcw0KPC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5
NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPg0KPGk+dG8gYmUgcHJlZmVycmVkIHdoZW4gYSBjb25mbGljdCBpcyBwcmVzZW50
LiBUaGUgYXV0aG9ycyB0aGluayB0aGlzIGlzIGEgdXNlZnVsDQo8L2k+PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2
NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQo8aT5hZGRpdGlvbiBh
bmQgd2UgdGhlcmVmb3JlIHdhbnQgdG8gaW5jbHVkZSB0aGlzIGluIHRoZSBuZXcgc29sdXRpb24u
PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMz
bTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRl
eHQiPg0KPGk+Jm5ic3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgy
ODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQiPg0KPGk+VGhlIG5ldyBwcmVmZXJlbmNlIHJ1bGUgdXNlZCB0byBy
ZXNvbHZlIGNvbmZsaWN0cyBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6PC9pPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYy
NjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KPGk+Jm5ic3A7PC9p
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5
MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQi
Pg0KPGI+PGk+QSBnaXZlbiBtYXBwaW5nIGVudHJ5IGlzIGNvbXBhcmVkIGFnYWluc3QgYWxsIG1h
cHBpbmcgZW50cmllcyBpbiB0aGUgZGF0YWJhc2UNCjwvaT48L2I+PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdt
YWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQo8Yj48aT53aXRoIGEgcHJl
ZmVyZW5jZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gaXRzIG93bi4gSWYgdGhlcmUgaXMgYSBj
b25mbGljdCwNCjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4
MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb3BsYWludGV4dCI+DQo8Yj48aT50aGUgbWFwcGluZyBlbnRyeSB3aXRoIGxvd2VyIHBy
ZWZlcmVuY2UgaXMgaWdub3JlZC4gSWYgdHdvIG1hcHBpbmcgZW50cmllcyBhcmU8L2k+PC9iPjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEy
OTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0K
PGI+PGk+aW4gY29uZmxpY3QgYW5kIGhhdmUgZXF1YWwgcHJlZmVyZW5jZSB0aGVuIGJvdGggZW50
cmllcyBhcmUgaWdub3JlZC48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWls
LW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KPGk+Jm5ic3A7PC9pPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KPGk+SW1wbGVtZW50YXRp
b24gb2YgdGhpcyBwb2xpY3kgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvaT48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2
MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjxpPiZuYnNwOzwv
aT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202
OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0
Ij4NCjxiPjxpPlN0ZXAgMTogV2l0aGluIGEgc2luZ2xlIGFkZHJlc3MtZmFtaWx5L2FsZ29yaXRo
bS90b3BvbG9neSBzb3J0IGVudHJpZXMgPC9pPg0KPC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1t
LTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KPGI+PGk+YmFzZWQgb24gcHJlZmVy
ZW5jZSA8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4
NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29wbGFpbnRleHQiPg0KPGI+PGk+U3RlcCAyOiBTdGFydGluZyB3aXRoIHRoZSBsb3dlc3QgcHJl
ZmVyZW5jZSBlbnRyaWVzLCByZXNvbHZlIHByZWZpeCBjb25mbGljdHMNCjwvaT48L2I+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1
MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQo8Yj48
aT51c2luZyB0aGUgYWJvdmUgcHJlZmVyZW5jZSBydWxlLiBUaGUgb3V0cHV0IGlzIGFuIGFjdGl2
ZSBwb2xpY3kgcGVyIHRvcG9sb2d5LjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
Z21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQo8Yj48aT5TdGVwIDM6IFRha2UgdGhlIG91
dHB1dHMgZnJvbSBTdGVwIDIgYW5kIGFnYWluIHNvcnQgdGhlbSBieSBwcmVmZXJlbmNlIDwvaT4N
CjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMz
M202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50
ZXh0Ij4NCjxiPjxpPlN0ZXAgNDogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHByZWZlcmVuY2Ug
ZW50cmllcywgcmVzb2x2ZSBTSUQgY29uZmxpY3RzIDwvaT4NCjwvYj48bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1
Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjxiPjxpPnVzaW5nIHRo
ZSBhYm92ZSBwcmVmZXJlbmNlIHJ1bGU8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KPGI+PGk+Jm5ic3A7PC9pPjwvYj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjxi
PjxpPlRoZSBvdXRwdXQgZnJvbSBTdGVwIDQgaXMgdGhlbiB0aGUgY3VycmVudCBBY3RpdmUgUG9s
aWN5LjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2
NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1z
b3BsYWludGV4dCI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4
MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvcGxhaW50ZXh0Ij4NCkhlcmUgYXJlIGEgZmV3IGV4YW1wbGVzLiBFYWNoIG1hcHBp
bmcgZW50cnkgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIHR1cGxlOjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFp
bC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KKFByZWZlcmVuY2UsIFByZWZp
eC9tYXNrIEluZGV4IHJhbmdlICZsdDsjJmd0Oyk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFp
bC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KRXhhbXBsZSAxOjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KJm5ic3A7
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkw
MTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+
DQoxLiAoMTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPjEu
MS4xLjEvMzI8L2E+IDEwMCByYW5nZSAxMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21h
aWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4
OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQoyLiAoMTQ5LCA8YSBocmVmPSJodHRwOi8vMS4x
LjEuMTAvMzIiIHRhcmdldD0iX2JsYW5rIj4xLjEuMS4xMC8zMjwvYT4gMjAwIHJhbmdlIDIwMCk8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAx
Mjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4N
CjMuICgxNDgsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMDEvMzIiIHRhcmdldD0iX2JsYW5rIj4x
LjEuMS4xMDEvMzI8L2E+IDUwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFp
bC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KRW50cnkgMyBjb25mbGljdHMg
d2l0aCBlbnRyeSAyLCBpdCBpcyBpZ25vcmVkLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Imdt
YWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KRW50cnkgMiBjb25mbGljdHMgd2l0aCBlbnRy
eSAxLCBpdCBpcyBpZ25vcmVkLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgy
ODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQiPg0KQWN0aXZlIHBvbGljeTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYy
NjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KKDE1MCwgPGEgaHJl
Zj0iaHR0cDovLzEuMS4xLjEvMzIiIHRhcmdldD0iX2JsYW5rIj4xLjEuMS4xLzMyPC9hPiAxMDAg
cmFuZ2UgMTAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5
NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPg0KJm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4
MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb3BsYWludGV4dCI+DQpFeGFtcGxlIDI6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
Z21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjEuICgxNTAsIDxhIGhyZWY9
Imh0dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9Il9ibGFuayI+MS4xLjEuMS8zMjwvYT4gMTAwIHJh
bmdlIDEwMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQz
MzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij4NCjIuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMC8zMiIgdGFyZ2V0PSJf
YmxhbmsiPjEuMS4xLjEwLzMyPC9hPiAyMDAgcmFuZ2UgMjAwKTxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFp
bC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KMy4gKDE1MCwgPGEgaHJlZj0i
aHR0cDovLzEuMS4xLjEwMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPjEuMS4xLjEwMS8zMjwvYT4gNTAw
IHJhbmdlIDEwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5
NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPg0KNC4gKDE1MCwgPGEgaHJlZj0iaHR0cDovLzIuMi4yLjEvMzIiIHRhcmdldD0i
X2JsYW5rIj4yLjIuMi4xLzMyPC9hPiAxMDAwIHJhbmdlIDEpPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWls
LW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQombmJzcDs8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2
MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCkVudHJ5IDEgY29u
ZmxpY3RzIHdpdGggZW50cnkgMiwgYm90aCBhcmUgbWFya2VkIGFzIGlnbm9yZS48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCkVudHJ5IDMg
Y29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGFzIGlnbm9yZS48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCkVudHJ5IDQg
aGFzIG5vIGNvbmZsaWN0cyB3aXRoIGFueSBlbnRyaWVzPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1
Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCkFjdGl2ZSBwb2xpY3k6
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkw
MTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+
DQooMTUwLCA8YSBocmVmPSJodHRwOi8vMi4yLjIuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPjIuMi4y
LjEvMzI8L2E+IDEwMDAgcmFuZ2UgMSk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1t
MjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KRXhhbXBsZSAzOjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYy
NjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KJm5ic3A7PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1
MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQoxLiAo
MTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPjEuMS4xLjEv
MzI8L2E+IDEwMCByYW5nZSA1MDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIy
ODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb3BsYWludGV4dCI+DQoyLiAoMTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMTAv
MzIiIHRhcmdldD0iX2JsYW5rIj4xLjEuMS4xMC8zMjwvYT4gMjAwIHJhbmdlIDIwMCk8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjMuICgx
NTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMDEvMzIiIHRhcmdldD0iX2JsYW5rIj4xLjEuMS4x
MDEvMzI8L2E+IDUwMCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1t
MjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjQuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8yLjIuMi4x
LzMyIiB0YXJnZXQ9Il9ibGFuayI+Mi4yLjIuMS8zMjwvYT4gMTAwMCByYW5nZSAxKTxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KJm5ic3A7
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkw
MTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+
DQpFbnRyeSAxIGNvbmZsaWN0cyB3aXRoIGVudHJpZXMgMiwgMywgYW5kJm5ic3A7IDQuIEFsbCBl
bnRyaWVzIGFyZSBtYXJrZWQgaWdub3JlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWls
LW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KJm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQpBY3RpdmUgcG9saWN5OjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KRW1wdHk8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAx
Mjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4N
CiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMz
MzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFp
bnRleHQiPg0KRXhhbXBsZSA0OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgy
ODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQiPg0KJm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21h
aWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4
OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQoxLiAoMTUwLCA8YSBocmVmPSJodHRwOi8vMS4x
LjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPjEuMS4xLjEvMzI8L2E+IDEwMCByYW5nZSAxMCk8bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCjIu
ICgxNDksIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMC8zMiIgdGFyZ2V0PSJfYmxhbmsiPjEuMS4x
LjEwLzMyPC9hPiAyMDAgcmFuZ2UgMzAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWls
LW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KMy4gKDE0OSwgPGEgaHJlZj0iaHR0cDovLzEuMS4x
LjEwMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPjEuMS4xLjEwMS8zMjwvYT4gNTAwIHJhbmdlIDEwKTxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEy
OTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0K
NC4gKDE0OCwgPGEgaHJlZj0iaHR0cDovLzIuMi4yLjEvMzIiIHRhcmdldD0iX2JsYW5rIj4yLjIu
Mi4xLzMyPC9hPiAxMDAwIHJhbmdlIDEpPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwt
bTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05
MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCkVudHJ5IDQgY29uZmxpY3RzIHdpdGgg
ZW50cnkgMi4gSXQgaXMgbWFya2VkIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJn
bWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCkVudHJ5IDIgY29uZmxpY3RzIHdpdGggZW50
cnkgMy4gRW50cmllcyAyIGFuZCAzIGFyZSBtYXJrZWQgaWdub3JlLjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3NDYyNjVn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KJm5ic3A7PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3
MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQpBY3RpdmUg
cG9saWN5OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMz
MzMzbTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFp
bnRleHQiPg0KKDE1MCwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEvMzIiIHRhcmdldD0iX2JsYW5r
Ij4xLjEuMS4xLzMyPC9hPiAxMDAgcmFuZ2UgMTApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
Z21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQombmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJnbWFpbC1tMjI4MjgyMjA3ODY1OTQzMzMzM202OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4NCiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9ImdtYWlsLW0yMjgyODIyMDc4NjU5NDMzMzMzbTY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPg0KJm5ic3A7PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iZ21haWwtbTIyODI4MjIwNzg2NTk0MzMzMzNtNjkwMTI5
NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+DQom
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i
bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bWFyZ2luLWJvdHRvbToxMi4wcHQiPjxicj4NCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPg0Kc3ByaW5nIG1h
aWxpbmcgbGlzdDxicj4NCjxhIGhyZWY9Im1haWx0bzpzcHJpbmdAaWV0Zi5vcmciIHRhcmdldD0i
X2JsYW5rIj5zcHJpbmdAaWV0Zi5vcmc8L2E+PGJyPg0KPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0
Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9zcHJpbmciIHRhcmdldD0iX2JsYW5rIj5odHRwczovL3d3
dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwcmluZzwvYT48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTIuMHB0Ij48YnI+DQpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXzxicj4NCnNwcmluZyBtYWlsaW5nIGxpc3Q8YnI+
DQo8YSBocmVmPSJtYWlsdG86c3ByaW5nQGlldGYub3JnIj5zcHJpbmdAaWV0Zi5vcmc8L2E+PGJy
Pg0KPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9zcHJpbmci
IHRhcmdldD0iX2JsYW5rIj5odHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3Nw
cmluZzwvYT48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86
cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9k
eT4NCjwvaHRtbD4NCg==

--_000_0b77633b3f1245e19f30c98d40af9755XCHALN001ciscocom_--


From nobody Fri Dec 23 01:37:07 2016
Return-Path: <robmgl@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 79FDD12961D; Fri, 23 Dec 2016 01:37:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.622
X-Spam-Level: 
X-Spam-Status: No, score=-17.622 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xLqQRm7rLJ9Z; Fri, 23 Dec 2016 01:37:04 -0800 (PST)
Received: from rcdn-iport-3.cisco.com (rcdn-iport-3.cisco.com [173.37.86.74]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4A8EE1295F4; Fri, 23 Dec 2016 01:37:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=9229; q=dns/txt; s=iport; t=1482485824; x=1483695424; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=M+XgfiJeDx5v/iPmGxMjch/bqs6ce39tjcWZu9QPCzc=; b=BWpV6V3SNcjzON0HWdp7WhsW8Zucc0hNx8kHRuhvRsF5lgVQV6ukPdYf rJm80t9PmL2uAiUFMcu1g9YbseSWfXBf7pxi5saDPlkLyH8S1PXLgyLft Sb9jbQg6b3sr32YrtkJU3MzR1QzppOdM6/gdKgScgWPszY78ugYYzXGGC A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BhBADe71xY/4YNJK1eGQEBAQEBAQEBA?= =?us-ascii?q?QEBBwEBAQEBgzcBAQEBAR9dTzoHjUyWUZUXggkqhS5KAoFyPxQBAgEBAQEBAQF?= =?us-ascii?q?iKIRoAQEBBG4LDAQCAQgRAQMBASgHMhQDBggBAQQBDQUIE4hUDq4siwABAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEYBYsqhBwQAgFNhS8FiF6CBYQiPoEDijMBiWSHToF?= =?us-ascii?q?+hQmJVod7hi+EDgEfNwFoQhYYg20XgV1yAYd6gQ0BAQE?=
X-IronPort-AV: E=Sophos;i="5.33,392,1477958400"; d="scan'208";a="188822374"
Received: from alln-core-12.cisco.com ([173.36.13.134]) by rcdn-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 23 Dec 2016 09:37:02 +0000
Received: from XCH-RCD-008.cisco.com (xch-rcd-008.cisco.com [173.37.102.18]) by alln-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id uBN9b2Co020524 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 23 Dec 2016 09:37:02 GMT
Received: from xch-rcd-009.cisco.com (173.37.102.19) by XCH-RCD-008.cisco.com (173.37.102.18) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Fri, 23 Dec 2016 03:37:02 -0600
Received: from xch-rcd-009.cisco.com ([173.37.102.19]) by XCH-RCD-009.cisco.com ([173.37.102.19]) with mapi id 15.00.1210.000; Fri, 23 Dec 2016 03:37:02 -0600
From: "Roberta Maglione (robmgl)" <robmgl@cisco.com>
To: "bruno.decraene@orange.com" <bruno.decraene@orange.com>, "draft-ietf-spring-ipv6-use-cases@ietf.org" <draft-ietf-spring-ipv6-use-cases@ietf.org>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: draft-ietf-spring-ipv6-use-cases - shepherd review
Thread-Index: AdJXqlEYjoPjwSyiQZm/+o0EBVlxZgFUu9GA
Date: Fri, 23 Dec 2016 09:37:01 +0000
Message-ID: <ba6958cb55454eafb52b9712b1e7828a@XCH-RCD-009.cisco.com>
References: <17317_1481899619_5853FE63_17317_744_1_53C29892C857584299CBF5D05346208A1ECC6721@OPEXCLILM21.corporate.adroot.infra.ftgroup>
In-Reply-To: <17317_1481899619_5853FE63_17317_744_1_53C29892C857584299CBF5D05346208A1ECC6721@OPEXCLILM21.corporate.adroot.infra.ftgroup>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.60.123.211]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/dh84s1qCJosDcMUbZngUIiyIMYw>
Cc: "Christian Martin \(martincj\)" <martincj@cisco.com>, "spring-chairs@ietf.org" <spring-chairs@ietf.org>, "Stefano Previdi \(sprevidi\)" <sprevidi@cisco.com>
Subject: Re: [spring] draft-ietf-spring-ipv6-use-cases - shepherd review
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 23 Dec 2016 09:37:06 -0000

Hello Bruno,
Thanks for your comments, we are going to address them and post an updated =
version of the document after the Holidays.
Please see  initial answers inline.
Regards
Roberta

-----Original Message-----
From: bruno.decraene@orange.com [mailto:bruno.decraene@orange.com]=20
Sent: Friday, December 16, 2016 3:47 PM
To: draft-ietf-spring-ipv6-use-cases@ietf.org; spring@ietf.org
Cc: spring-chairs@ietf.org
Subject: draft-ietf-spring-ipv6-use-cases - shepherd review

Hi authors,

As the document shepherd, I have reviewed draft-ietf-spring-ipv6-use-cases.
I'm generally fine with the document, but do have some comments. Please fin=
d them below.

Best regards,
Bruno

=3D=3D=3D=3D=3D Major comments
Section 2.3.0 (intro of 2.3) and 2.3.1 are related to Service Function Chai=
ning and Data Center Network Overlay use cases.
Hence they have an adherence with the SFC and NVO3 WG.
Have those WG been presented this document, kept up to date, and are aligne=
d with the requirements as written?
Besides, those texts are unchanged since early 2014, while the situation ma=
y have change since then, especially since both SFC and NVO3 WG are "recent=
". Especially SFC which has been formed at the same period (23/12/2013). A =
priori, their work is likely to have progressed since then, which does not =
seem reflected in this draft.

[RM] we are going the re-work theses sections to update the text in there.

=3D=3D=3D=3D=3D Minor comments

=A72 IPv6 SPRING use cases
There are a few paragraphs ("In addition....in the above use case.") which =
describes that the lack of MPLS support for IPv6 only networks is a use cas=
e for the IPv6 SR dataplane. However it seems to me that MPLS SR support IP=
v6 FEC/segment hence would have been a solution for such use case. So it do=
es not seem to me a use case mandating a new dataplane (IPv6 SR).

[RM] Agree with you that  when MPLS is present MPLS SR with IPv6 FEC/segmen=
t is a viable solution. However it was pointed out in the mailing list by W=
es George (https://www.ietf.org/mail-archive/web/spring/current/msg00832.ht=
ml ) that MPLS in IPv6 only environment still has some gaps as described in=
 RFC 7439. Specific text was added to address that comment.
We can definitely re-word the text in this section, to clarify the meaning.

On a related point, the term "IPv6-only" does not seem well defined as it c=
ould sometime means "non-IPv4" and sometimes "non-MPLS", which is different=
.
[RM] will clarify this point thanks

---
  "In addition it is worth to note that in today's MPLS dual-stack
   networks IPv4 traffic is labeled while IPv6 traffic is usually
   natively routed, not label-switched.  Therefore in order to be able
   to provide Traffic Engineering "like" capabilities for IPv6 traffic
   additional/alternative encapsulation mechanisms would be required."
  =20
The first observation does not seem enough to require the new of a new data=
-plane. As discussed above, this may be caused by a lack of support for IPv=
6 in existing MPLS signaling protocols. MPLS SR seems to be a valid option.=
 So it does not seem to be a use case mandating a new dataplane (IPv6 SR).


[RM] agree with you, the intention here was to capture current common deplo=
yments for dual-stack networks where most of the times IPv4 is labeled swit=
ched while IPv6 is natively routed, given the current gaps for MPLS on IPv6=
 only networks.


---
"   2.  There is a strict lack of an MPLS dataplane"
May be adding "in a portion of the end to end path". (as some may have MPLS=
 in the core, yet not in the access/DC/home network...)

[RM] okay

---
   "This section will describe some scenarios where MPLS may not be
   present and it will highlight how the SPRING architecture could be
   used to address such use cases, particularly, when an MPLS data plane
   is neither present nor desired."

May be rephrasing to avoid saying twice in the same sentence that MPLS is n=
ot present.=20

[RM] will do

---
"   In any environment with requirements such as those listed above, an
   IPv6 data plane provides a powerful combination of capabilities for a
   network operator to realize benefits in explicit routing, protection
   and restoration, high routing scalability, traffic engineering,
   service chaining, service differentiation and application flexibility
   via programmability."

[...]
  =20
"   In addition to the use cases described in this document the SPRING
   architecture can be applied to all the use cases described in
   [RFC7855] for the SPRING MPLS data plane, when an IPv6 data plane is
   present.  Here there is a summary of those use cases:

   1.  Traffic Engineering

   2.  Disjoint paths in dual-plane networks

   3.  Fast Reroute: Protecting node and adjacency segments

   4.  OAM/monitoring

   5.  Egress Peering Engineering"


I feel that there is redundancy with those 2 paragraphs. In particular the =
catalog of usages/benefits is duplicated.

[RM] will simplify the text and remove redundant text

---
=A72.2
It's not clear to me what "egress vectoring" is. (May be because this Acces=
s Network section seems to refer to a specific access techno (DOCSIS) which=
 I'm not familiar with.) Could you add a reference? =20

[RM] will add a reference

---
=A72.3

   "A service provider may choose to have these service functions
   performed external to the routing infrastructure, specifically on
   either dedicated physical servers or within VMs running on a
   virtualization platform."
  =20
It's not clear to me what is meant by "routing infrastructure", especially =
when opposed to servers/VM. Indeed, routers can now run in servers/VM. So m=
ay be rephrasing the whole point would help.

[RM] will re-phrase the sentence

---
Introduction part (2.3.0) is mostly related to service chaining, although t=
his is not reflected by the title. It is referencing two WG documents from =
the SFC WG. Does this mean that the SFC WG is presenting those requirements=
 in the SPRING WG?  This may require involving the SFC WG in this last call=
. And some elaboration why the SFC WG solutions are not adequate/enough. (e=
.g. is this a need to combine both routing instructions and service instruc=
tion in order to both choose the route and the sequence of services functio=
n? In particular when NHS meta data is not needed?)

This service chaining text seems to originate from draft-martin-spring-segm=
ent-routing-ipv6-use-cases-00 i.e .from march 2014. And the text is unchang=
ed since draft-martin-spring-segment-routing-ipv6-use-cases-01 i.e from Apr=
il 4, 2014.This seems like a long time in this domain: mostly the whole dur=
ation of the SFC WG. Is this still aligned with the work that the SFC WG ha=
s done in that 2.5 years period?

[RM] will re-work the section and update the text

---
2.3.1 is mostly related to VPN overlay. In the IETF, this seem in scope to =
the NVO3 WG. Does this mean that the NVO3 WG is presenting those requiremen=
ts in the SPRING WG? This may require involving the NVO3 WG in this last ca=
ll. Especially since NVO3 seems to have enough encapsulation techniques to =
deal with, and it's not clear to me that NVO3 needs one more.

Besides, this section seems to come from 2014 and draft-baker-openstack-ipv=
6-model which has expired 18 month ago. 2014 may be a long time ago in the =
DC environment. Is this approach still up to date/relevant?

[RM] will re-work the section and update the text

----
"The 128-bit PE Ingress ID in the Segment Router Header (SRH) policy list"
Name of the field and structure seems to have changed in the 6MAN draft. po=
ssibly:
:s/PE Ingress ID/Ingress Node TLV
:s/policy list/Optional TLV objects

[RM] will fix this

=3D=3D=3D=3D=3D Nits:
=20
Reference:
Some references are outdated (cf idnits), in particular [I-D.previdi-6man-s=
egment-routing-header].

=A72.3
"The term "Service Function Chain", as defined in [RFC7498], it is used"
:s/it is/is

[RM] ok will fix both of them

Thanks again for the comments.
Regards
Roberta
___________________________________________________________________________=
______________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confiden=
tielles ou privilegiees et ne doivent donc pas etre diffuses, exploites ou =
copies sans autorisation. Si vous avez recu ce message par erreur, veuillez=
 le signaler a l'expediteur et le detruire ainsi que les pieces jointes. Le=
s messages electroniques etant susceptibles d'alteration, Orange decline to=
ute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged inf=
ormation that may be protected by law; they should not be distributed, used=
 or copied without authorisation.
If you have received this email in error, please notify the sender and dele=
te this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been =
modified, changed or falsified.
Thank you.


From nobody Fri Dec 23 06:59:22 2016
Return-Path: <mustapha.aissaoui@nokia.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 16D10129417 for <spring@ietfa.amsl.com>; Fri, 23 Dec 2016 06:59:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.9
X-Spam-Level: 
X-Spam-Status: No, score=-6.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y6IX1IVWDJNu for <spring@ietfa.amsl.com>; Fri, 23 Dec 2016 06:59:18 -0800 (PST)
Received: from smtp-us.alcatel-lucent.com (us-hpatc-esg-01.alcatel-lucent.com [135.245.18.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 21B161200A0 for <spring@ietf.org>; Fri, 23 Dec 2016 06:59:17 -0800 (PST)
Received: from us70tumx1.dmz.alcatel-lucent.com (unknown [135.245.18.13]) by Websense Email Security Gateway with ESMTPS id 072628A4B62C5; Fri, 23 Dec 2016 14:59:13 +0000 (GMT)
Received: from us70tusmtp1.zam.alcatel-lucent.com (us70tusmtp1.zam.alcatel-lucent.com [135.5.2.63]) by us70tumx1.dmz.alcatel-lucent.com (GMO) with ESMTP id uBNExF9P030868 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 23 Dec 2016 14:59:16 GMT
Received: from US70UWXCHHUB01.zam.alcatel-lucent.com (us70uwxchhub01.zam.alcatel-lucent.com [135.5.2.48]) by us70tusmtp1.zam.alcatel-lucent.com (GMO) with ESMTP id uBNExF7n012709 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 23 Dec 2016 14:59:15 GMT
Received: from US70UWXCHMBA01.zam.alcatel-lucent.com ([169.254.7.176]) by US70UWXCHHUB01.zam.alcatel-lucent.com ([135.5.2.48]) with mapi id 14.03.0301.000; Fri, 23 Dec 2016 09:59:15 -0500
From: "Aissaoui, Mustapha (Nokia - CA)" <mustapha.aissaoui@nokia.com>
To: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>, "spring@ietf.org" <spring@ietf.org>
Thread-Topic: SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAodWgAC/MMoAChMj6cAAKwMEwACcyuzA=
Date: Fri, 23 Dec 2016 14:59:15 +0000
Message-ID: <4A79394211F1AF4EB57D998426C9340DD4B115EF@US70UWXCHMBA01.zam.alcatel-lucent.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com> <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com>
In-Reply-To: <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: multipart/alternative; boundary="_000_4A79394211F1AF4EB57D998426C9340DD4B115EFUS70UWXCHMBA01z_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/VJ-jBKtsDy5GMVF6vObYWdF8BE8>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 23 Dec 2016 14:59:21 -0000

--_000_4A79394211F1AF4EB57D998426C9340DD4B115EFUS70UWXCHMBA01z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi Les,
I made some follow-up inline.

Regards,
Mustapha.

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Thursday, December 22, 2016 2:37 PM
To: Aissaoui, Mustapha (Nokia - CA) <mustapha.aissaoui@nokia.com>; spring@i=
etf.org
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Mustapha -

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Aissaoui, Mustap=
ha (Nokia - CA)
Sent: Thursday, December 22, 2016 8:10 AM
To: Les Ginsberg (ginsberg); spring@ietf.org<mailto:spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal

Hi Les,
I read slides 17-21 of the document you referenced below and I have the fol=
lowing comments:


1.     Page 17, "Order Matters - Prefix vs SID Conflict".

When you perform resolution on  a per prefix basis, prefix conflicts are na=
turally processed first followed by SID conflicts across different prefixes=
. So the ordering issue described is only specific if you decided to resolv=
e conflicting SID entries outside of the natural prefix resolution by a rou=
ter.



[Les:] What may seem "natural" to you might not to someone else. I don't ca=
re to debate that point. What is being illustrated here is that in order to=
 provide a normative specification that - if followed - guarantees interope=
rability we have to specify the order in which conflicts are processed othe=
rwise different results may be obtained.

MA> I agree on the intent of specifying a procedure which achieves interope=
rability. However, it seems to me this draft is ignoring the fact that rout=
ers do per-prefix resolution and is trying to perform the SID resolution ou=
tside of it.


2.     Page 18, "Order Matters: Derived vs non-derived- prefix conflict".

It seems to me this issue is an artifact of the specific algorithm used to =
resolve conflicts. Because the algorithm uses parameters such as "Range (st=
art w smallest)" then obviously derived SRMS entries will lend a different =
result than original SRMS entries.

With the pre-prefix resolution, the only information kept from the original=
 SRMS entry is the preference and the advertising or owner router. Anything=
 else is not used. It seems to me a simple algorithm based on preference fi=
rst then followed by some rule on selecting the advertising router if confl=
icts exist within the same preference would work.



[Les:] You have implemented things in a certain way. Someone else might cho=
ose to implement in a different way. A normative specification does not (an=
d should not) constrain an implementation. What is being illustrated here i=
s that if the implementation does not retain the underived entry (in whatev=
er internal form it chooses) different results will be obtained because the=
 preference algorithm depends on comparing the underived ranges.



MA> I do not believe this is about implementation. It is about what routers=
 do and that is resolution per prefix. It does not matter how the prefix SI=
D information is advertised, individually or part of an SRMS entry, at the =
end it is associated with a prefix.



3.     Finally, there is something which has not been addressed in the slid=
es. There is still a possibility of conflicting entries among SIDs advertis=
ed using the prefix SID sub-TLV within a Prefix TLV (IS-IS IP Reach TLV or =
OSPF Extended Prefix TLV). A simple rule selecting the advertising router s=
hould also work fine here.

[Les:] No - source of an advertisement has been quite deliberately excluded=
 from the preference algorithm. With redistribution/route leaking the sourc=
e of an advertisement may appear to be different on different routers- this=
 would result in different results on different routers.

MA> The following RFC is specifying an optional attribute (the IPv4/IPv6 So=
urce Router ID TLV) to encode the original advertising router of a prefix. =
This can be used to perform a simple selection algorithm:
https://tools.ietf.org/html/rfc7794#section-2.2

Otherwise, what is your proposal for this point (3)? I could not find it ad=
dressed in the current version of the draft.

   Les

Regards,
Mustapha.

From: Les Ginsberg (ginsberg) [mailto:ginsberg@cisco.com]
Sent: Friday, December 09, 2016 1:49 PM
To: Aissaoui, Mustapha (Nokia - CA) <mustapha.aissaoui@nokia.com<mailto:mus=
tapha.aissaoui@nokia.com>>; spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

Mustapha -

From: Aissaoui, Mustapha (Nokia - CA) [mailto:mustapha.aissaoui@nokia.com]
Sent: Friday, December 09, 2016 7:44 AM
To: Les Ginsberg (ginsberg); spring@ietf.org<mailto:spring@ietf.org>
Subject: RE: SID Conflict Resolution: A Simpler Proposal

I have a couple of comments on the below proposal.


1.     Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft. I=
n many cases, a configuration on the resolving router can assign a preferen=
ce to each SRMS in case there is no advertisement of this sub-TLV or to ove=
rride an advertised value. I propose that this option be allowed. Here is a=
 proposed update to the relevant paragraph:

"
           Advertisement of a preference value is optional.  Nodes which do=
 not
          advertise a preference value are assigned a preference value of 1=
28.
           A resolving router can override the default or the advertised va=
lue by local policy.

"

[Les:] In order to get consistent conflict resolution on all nodes in the n=
etwork, it is necessary that they all have the same database - which includ=
es the preference value. If you allow local policy to modify the preference=
 you no longer have consistent databases on all nodes and we can no longer =
guarantee consistent conflict resolution. So your proposal is not viable IM=
O.



2.     I am trying to understand the concept of sorting SRMS entries which =
have different prefixes and different range sizes.

Since a SID advertised in a prefix SID sub-TLV within a Prefix TLV (IS-IS I=
P Reach TLV or OSPF Extended Prefix TLV) has higher priority over a SID for=
 the same prefix advertised from a SRMS, then you have to add to the below =
sorting an entry for each individual prefix which advertised a prefix SID s=
ub-TLV within a prefix TLV.

At this point, the concept of an entry with multiple prefixes is moot and y=
ou may as well just sort on a per prefix basis which is the most natural th=
ing to do given that the prefix resolution and then the SID resolution are =
performed on a per prefix basis. SID conflicts can be resolved on a per pre=
fix basis using the below proposed preference algorithm without having to i=
gnore SID values for unrelated prefixes just because it happens that they w=
ere advertised in the same SRMS entry.



[Les:] The simpler proposal does not require sorting on anything other than=
 preference. After that, you can process entries in any order you want and =
you will get the same answer.

With "Ignore Overlap Only" one of the issues with trying to use the non-con=
flicting portions of a mapping entry which has a range > 1 is that the orde=
r in which you process entries influences the result. Please see slides 17 =
- 20 from the IETF97 presentation: https://www.ietf.org/proceedings/97/slid=
es/slides-97-spring-1_ietf97_draft-ietf-spring-conflict-resolution-02-00.pp=
tx for some simple examples of this.



   Les



Regards,
Mustapha.

From: spring [mailto:spring-bounces@ietf.org] On Behalf Of Les Ginsberg (gi=
nsberg)
Sent: Sunday, December 04, 2016 7:04 PM
To: spring@ietf.org<mailto:spring@ietf.org>
Subject: [spring] SID Conflict Resolution: A Simpler Proposal


When the problem addressed by draft-ietf-spring-conflict-resolution was fir=
st

presented at IETF 94, the authors defined the following priorities:



1)Detect the problem

2)Report the problem

This alerts the network operator to the existence of a conflict so that

the configuration error can be corrected.

3)Define consistent behavior

This avoids mis-forwarding while the conflict exists.

4)Don't overengineer the solution

Given that it is impossible to know which of the conflicting entries

is the correct one, we should apply a simple algorithm to resolve the confl=
ict.

5)Agree on the resolution behavior



The resolution behavior was deliberately the last point because it was

considered the least important.



Input was received over the past year which emphasized the importance of

trying to "maximize forwarding" in the presence of conflicts. Subsequent

revisions of the draft have tried to address this concern. However the auth=
ors

have repeatedly stressed that the solution being proposed

("ignore overlap only") was more complex than other offered alternatives an=
d

would be more difficult to guarantee interoperability because subtle

differences in an implementation could produce different results.



At IETF97 significant feedback was received preferring a simpler solution t=
o

the problem. The authors are very sympathetic to this feedback and therefor=
e

are proposing a solution based on what the draft defines as the "Ignore"

policy - where all entries which are in conflict are ignored. We believe th=
is

is far more desirable and aligns with the priorities listed above.



We outline the proposed solution below and would like to receive feedback f=
rom

the WG before publishing the next revision of the draft.



   Les (on behalf of the authors)



New Proposal



In the latest revision of the draft "SRMS Preference" was introduced. This

provides a way for a numerical preference to be explicitly associated with =
an

SRMS advertisement. Using this an operator can indicate which advertisement=
 is

to be preferred when a conflict is present. The authors think this is a use=
ful

addition and we therefore want to include this in the new solution.



The new preference rule used to resolve conflicts is defined as follows:



A given mapping entry is compared against all mapping entries in the databa=
se

with a preference greater than or equal to its own. If there is a conflict,

the mapping entry with lower preference is ignored. If two mapping entries =
are

in conflict and have equal preference then both entries are ignored.



Implementation of this policy is defined as follows:



Step 1: Within a single address-family/algorithm/topology sort entries

based on preference

Step 2: Starting with the lowest preference entries, resolve prefix conflic=
ts

using the above preference rule. The output is an active policy per topolog=
y.

Step 3: Take the outputs from Step 2 and again sort them by preference

Step 4: Starting with the lowest preference entries, resolve SID conflicts

using the above preference rule



The output from Step 4 is then the current Active Policy.



Here are a few examples. Each mapping entry is represented by the tuple:

(Preference, Prefix/mask Index range <#>)



Example 1:



1. (150, 1.1.1.1/32 100 range 100)

2. (149, 1.1.1.10/32 200 range 200)

3. (148, 1.1.1.101/32 500 range 10)



Entry 3 conflicts with entry 2, it is ignored.

Entry 2 conflicts with entry 1, it is ignored.

Active policy:



(150, 1.1.1.1/32 100 range 100)



Example 2:



1. (150, 1.1.1.1/32 100 range 100)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entry 2, both are marked as ignore.

Entry 3 conflicts with entry 2. It is marked as ignore.

Entry 4 has no conflicts with any entries



Active policy:

(150, 2.2.2.1/32 1000 range 1)



Example 3:



1. (150, 1.1.1.1/32 100 range 500)

2. (150, 1.1.1.10/32 200 range 200)

3. (150, 1.1.1.101/32 500 range 10)

4. (150, 2.2.2.1/32 1000 range 1)



Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.



Active policy:

Empty



Example 4:



1. (150, 1.1.1.1/32 100 range 10)

2. (149, 1.1.1.10/32 200 range 300)

3. (149, 1.1.1.101/32 500 range 10)

4. (148, 2.2.2.1/32 1000 range 1)



Entry 4 conflicts with entry 2. It is marked ignore.

Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.



Active policy:

(150, 1.1.1.1/32 100 range 10)









--_000_4A79394211F1AF4EB57D998426C9340DD4B115EFUS70UWXCHMBA01z_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New",serif;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma",sans-serif;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New",serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:12.0pt;
	font-family:"Times New Roman",serif;}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:"Calibri",sans-serif;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma",sans-serif;}
span.EmailStyle25
	{mso-style-type:personal;
	font-family:"Arial",sans-serif;
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
span.EmailStyle26
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle27
	{mso-style-type:personal;
	font-family:"Arial",sans-serif;
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
span.EmailStyle28
	{mso-style-type:personal;
	font-family:"Calibri",sans-serif;
	color:#1F497D;}
span.EmailStyle29
	{mso-style-type:personal-reply;
	font-family:"Arial",sans-serif;
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Hi Les,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">I made some follow-up inline.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Mustapha.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Les Ginsberg (ginsberg) [mailto:ginsber=
g@cisco.com]
<br>
<b>Sent:</b> Thursday, December 22, 2016 2:37 PM<br>
<b>To:</b> Aissaoui, Mustapha (Nokia - CA) &lt;mustapha.aissaoui@nokia.com&=
gt;; spring@ietf.org<br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Mustapha -<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,sans-serif">From:</span></b><span style=3D"font-size:10.0pt;f=
ont-family:&quot;Tahoma&quot;,sans-serif"> spring [<a href=3D"mailto:spring=
-bounces@ietf.org">mailto:spring-bounces@ietf.org</a>]
<b>On Behalf Of </b>Aissaoui, Mustapha (Nokia - CA)<br>
<b>Sent:</b> Thursday, December 22, 2016 8:10 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org">spri=
ng@ietf.org</a><br>
<b>Subject:</b> Re: [spring] SID Conflict Resolution: A Simpler Proposal<o:=
p></o:p></span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Hi Les,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">I read slides 17-21 of the document you referenced be=
low and I have the following comments:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif">1.</span><span st=
yle=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,serif">&nbsp=
;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,sans-s=
erif">Page 17, &#8220;Order Matters - Prefix vs SID Conflict&#8221;.<o:p></=
o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">When you perform resolution on&nbsp; a per pre=
fix basis, prefix conflicts are naturally processed first followed by SID c=
onflicts across different prefixes. So the ordering
 issue described is only specific if you decided to resolve conflicting SID=
 entries outside of the natural prefix resolution by a router.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] What may seem &#8220;natural&#8221; to you might =
not to someone else. I don&#8217;t care to debate that point. What is being=
 illustrated here is that in order to provide a normative
 specification that &#8211; if followed &#8211; guarantees interoperability=
 we have to specify the order in which conflicts are processed otherwise di=
fferent results may be obtained.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">MA&gt; I agree on the intent of specifying a procedur=
e which achieves interoperability. However, it seems to me this draft is ig=
noring the fact that routers do per-prefix resolution
 and is trying to perform the SID resolution outside of it.<o:p></o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">&nbsp;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif">2.</span><span st=
yle=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,serif">&nbsp=
;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,sans-s=
erif">Page 18, &#8220;Order Matters: Derived vs non-derived&#8211; prefix c=
onflict&#8221;.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">It seems to me this issue is an artifact of th=
e specific algorithm used to resolve conflicts. Because the algorithm uses =
parameters such as &#8220;Range (start w smallest)&#8221;
 then obviously derived SRMS entries will lend a different result than orig=
inal SRMS entries.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">With the pre-prefix resolution, the only infor=
mation kept from the original SRMS entry is the preference and the advertis=
ing or owner router. Anything else is not used.
 It seems to me a simple algorithm based on preference first then followed =
by some rule on selecting the advertising router if conflicts exist within =
the same preference would work.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] You have implemented things in a certain way. Som=
eone else might choose to implement in a different way. A normative specifi=
cation does not (and should not) constrain
 an implementation. What is being illustrated here is that if the implement=
ation does not retain the underived entry (in whatever internal form it cho=
oses) different results will be obtained because the preference algorithm d=
epends on comparing the underived
 ranges.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><o:p>&nbsp;</o:p></=
p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><span style=3D"font=
-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif">MA&gt; I do not beli=
eve this is about implementation. It is about what routers do and that is r=
esolution per prefix. It does not matter how the prefix
 SID information is advertised, individually or part of an SRMS entry, at t=
he end it is associated with a prefix.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><span style=3D"font=
-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif"><o:p>&nbsp;</o:p></s=
pan></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif">3.</span><span st=
yle=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,serif">&nbsp=
;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,sans-s=
erif">Finally, there is something which has not been addressed in the slide=
s. There is still a possibility of conflicting entries among SIDs advertise=
d using the prefix SID sub-TLV within a Prefix
 TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV). A simple rule select=
ing the advertising router should also work fine here.<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">[Les:] No &#8211=
; source of an advertisement has been quite deliberately excluded from the =
preference algorithm. With redistribution/route leaking the source of an ad=
vertisement may appear to be different on
 different routers- this would result in different results on different rou=
ters.<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">MA&gt; The following RFC is specifying an optional at=
tribute (the IPv4/IPv6 Source Router ID TLV) to encode the original adverti=
sing router of a prefix. This can be used to perform
 a simple selection algorithm:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><a href=3D"https://tools.ietf.org/html/rfc7794#sectio=
n-2.2">https://tools.ietf.org/html/rfc7794#section-2.2</a>
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Otherwise, what is your proposal for this point (3)? =
I could not find it addressed in the current version of the draft.<o:p></o:=
p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><b><i><span style=3D"color:#1F497D">&nbsp;&nbsp; Les=
<o:p></o:p></span></i></b></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Mustapha.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> Les Ginsberg (ginsberg) [<a href=3D"mai=
lto:ginsberg@cisco.com">mailto:ginsberg@cisco.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 1:49 PM<br>
<b>To:</b> Aissaoui, Mustapha (Nokia - CA) &lt;<a href=3D"mailto:mustapha.a=
issaoui@nokia.com">mustapha.aissaoui@nokia.com</a>&gt;;
<a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Mustapha -<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,sans-serif">From:</span></b><span style=3D"font-size:10.0pt;f=
ont-family:&quot;Tahoma&quot;,sans-serif"> Aissaoui, Mustapha (Nokia - CA) =
[<a href=3D"mailto:mustapha.aissaoui@nokia.com">mailto:mustapha.aissaoui@no=
kia.com</a>]
<br>
<b>Sent:</b> Friday, December 09, 2016 7:44 AM<br>
<b>To:</b> Les Ginsberg (ginsberg); <a href=3D"mailto:spring@ietf.org">spri=
ng@ietf.org</a><br>
<b>Subject:</b> RE: SID Conflict Resolution: A Simpler Proposal<o:p></o:p><=
/span></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">I have a couple of comments on the below proposal.<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif">1.</span><span st=
yle=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,serif">&nbsp=
;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,sans-s=
erif">Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft. In=
 many cases, a configuration on the resolving router can assign a preferenc=
e to each SRMS in case there is no advertisement
 of this sub-TLV or to override an advertised value. I propose that this op=
tion be allowed. Here is a proposed update to the relevant paragraph:<o:p><=
/o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp; Advertisement of a preference value is optional.&nbsp; Nodes which do n=
ot<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp;advertise a preference value are assigned a preference value of 128. &nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nb=
sp;&nbsp;<span style=3D"color:red">A resolving router can override the defa=
ult or the advertised value by local policy.</span><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">&#8220;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] In order to get consistent conflict resolution on=
 all nodes in the network, it is necessary that they all have the same data=
base &#8211; which includes the preference value.
 If you allow local policy to modify the preference you no longer have cons=
istent databases on all nodes and we can no longer guarantee consistent con=
flict resolution. So your proposal is not viable IMO.</span></i></b><span s=
tyle=3D"color:#1F497D"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in"><span style=3D"f=
ont-size:10.0pt;font-family:&quot;Arial&quot;,sans-serif">2.</span><span st=
yle=3D"font-size:7.0pt;font-family:&quot;Times New Roman&quot;,serif">&nbsp=
;&nbsp;&nbsp;&nbsp;
</span><span style=3D"font-size:10.0pt;font-family:&quot;Arial&quot;,sans-s=
erif">I am trying to understand the concept of sorting SRMS entries which h=
ave different prefixes and different range sizes. &nbsp;<o:p></o:p></span><=
/p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">Since a SID advertised in a prefix SID sub-TLV=
 within a Prefix TLV (IS-IS IP Reach TLV or OSPF Extended Prefix TLV) has h=
igher priority over a SID for the same prefix
 advertised from a SRMS, then you have to add to the below sorting an entry=
 for each individual prefix which advertised a prefix SID sub-TLV within a =
prefix TLV.
<o:p></o:p></span></p>
<p class=3D"MsoListParagraph"><span style=3D"font-size:10.0pt;font-family:&=
quot;Arial&quot;,sans-serif">At this point, the concept of an entry with mu=
ltiple prefixes is moot and you may as well just sort on a per prefix basis=
 which is the most natural thing to do given that
 the prefix resolution and then the SID resolution are performed on a per p=
refix basis. SID conflicts can be resolved on a per prefix basis using the =
below proposed preference algorithm without having to ignore SID values for=
 unrelated prefixes just because
 it happens that they were advertised in the same SRMS entry.<o:p></o:p></s=
pan></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">[Les:] The simpler proposal does not require sorting on =
anything other than preference. After that, you can process entries in any =
order you want and you will get the same
 answer.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">With &#8220;Ignore Overlap Only&#8221; one of the issues=
 with trying to use the non-conflicting portions of a mapping entry which h=
as a range &gt; 1 is that the order in which you process
 entries influences the result. Please see slides 17 &#8211; 20 from the IE=
TF97 presentation:
<a href=3D"https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ie=
tf97_draft-ietf-spring-conflict-resolution-02-00.pptx">
https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_draft-=
ietf-spring-conflict-resolution-02-00.pptx</a> for some simple examples of =
this.<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D"><o:p>&nbsp;</o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><b><i><span style=
=3D"color:#1F497D">&nbsp;&nbsp; Les<o:p></o:p></span></i></b></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:0in"><span style=3D"colo=
r:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Regards,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif">Mustapha.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ar=
ial&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b>From:</b> spring [<a href=3D"mailto:spring-bounce=
s@ietf.org">mailto:spring-bounces@ietf.org</a>]
<b>On Behalf Of </b>Les Ginsberg (ginsberg)<br>
<b>Sent:</b> Sunday, December 04, 2016 7:04 PM<br>
<b>To:</b> <a href=3D"mailto:spring@ietf.org">spring@ietf.org</a><br>
<b>Subject:</b> [spring] SID Conflict Resolution: A Simpler Proposal<o:p></=
o:p></p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">When the problem addressed by draft-ietf-spring-c=
onflict-resolution was first
<o:p></o:p></p>
<p class=3D"MsoPlainText">presented at IETF 94, the authors defined the fol=
lowing priorities:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1)Detect the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">2)Report the problem<o:p></o:p></p>
<p class=3D"MsoPlainText">This alerts the network operator to the existence=
 of a conflict so that<o:p></o:p></p>
<p class=3D"MsoPlainText">the configuration error can be corrected.<o:p></o=
:p></p>
<p class=3D"MsoPlainText">3)Define consistent behavior<o:p></o:p></p>
<p class=3D"MsoPlainText">This avoids mis-forwarding while the conflict exi=
sts.<o:p></o:p></p>
<p class=3D"MsoPlainText">4)Don&#8217;t overengineer the solution<o:p></o:p=
></p>
<p class=3D"MsoPlainText">Given that it is impossible to know which of the =
conflicting entries<o:p></o:p></p>
<p class=3D"MsoPlainText">is the correct one, we should apply a simple algo=
rithm to resolve the conflict.<o:p></o:p></p>
<p class=3D"MsoPlainText">5)Agree on the resolution behavior<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">The resolution behavior was deliberately the last=
 point because it was
<o:p></o:p></p>
<p class=3D"MsoPlainText">considered the least important.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Input was received over the past year which empha=
sized the importance of<o:p></o:p></p>
<p class=3D"MsoPlainText">trying to &quot;maximize forwarding&quot; in the =
presence of conflicts. Subsequent<o:p></o:p></p>
<p class=3D"MsoPlainText">revisions of the draft have tried to address this=
 concern. However the authors
<o:p></o:p></p>
<p class=3D"MsoPlainText">have repeatedly stressed that the solution being =
proposed
<o:p></o:p></p>
<p class=3D"MsoPlainText">(&quot;ignore overlap only&quot;) was more comple=
x than other offered alternatives and
<o:p></o:p></p>
<p class=3D"MsoPlainText">would be more difficult to guarantee interoperabi=
lity because subtle
<o:p></o:p></p>
<p class=3D"MsoPlainText">differences in an implementation could produce di=
fferent results.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">At IETF97 significant feedback was received prefe=
rring a simpler solution to
<o:p></o:p></p>
<p class=3D"MsoPlainText">the problem. The authors are very sympathetic to =
this feedback and therefore
<o:p></o:p></p>
<p class=3D"MsoPlainText">are proposing a solution based on what the draft =
defines as the &quot;Ignore&quot;
<o:p></o:p></p>
<p class=3D"MsoPlainText">policy - where all entries which are in conflict =
are ignored. We believe this
<o:p></o:p></p>
<p class=3D"MsoPlainText">is far more desirable and aligns with the priorit=
ies listed above.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">We outline the proposed solution below and would =
like to receive feedback from
<o:p></o:p></p>
<p class=3D"MsoPlainText">the WG before publishing the next revision of the=
 draft.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">&nbsp;&nbsp; Les (on behalf of the authors)<o:p><=
/o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><i>New Proposal<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>In the latest revision of the draft &quot;SRMS=
 Preference&quot; was introduced. This
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>provides a way for a numerical preference to b=
e explicitly associated with an
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>SRMS advertisement. Using this an operator can=
 indicate which advertisement is
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>to be preferred when a conflict is present. Th=
e authors think this is a useful
<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i>addition and we therefore want to include this=
 in the new solution.<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>The new preference rule used to resolve confli=
cts is defined as follows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>A given mapping entry is compared against a=
ll mapping entries in the database
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>with a preference greater than or equal to =
its own. If there is a conflict,
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>the mapping entry with lower preference is =
ignored. If two mapping entries are<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>in conflict and have equal preference then =
both entries are ignored.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><i>Implementation of this policy is defined as fo=
llows:<o:p></o:p></i></p>
<p class=3D"MsoPlainText"><i><o:p>&nbsp;</o:p></i></p>
<p class=3D"MsoPlainText"><b><i>Step 1: Within a single address-family/algo=
rithm/topology sort entries
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>based on preference <o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 2: Starting with the lowest preference=
 entries, resolve prefix conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule. The output=
 is an active policy per topology.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 3: Take the outputs from Step 2 and ag=
ain sort them by preference
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>Step 4: Starting with the lowest preference=
 entries, resolve SID conflicts
<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>using the above preference rule<o:p></o:p><=
/i></b></p>
<p class=3D"MsoPlainText"><b><i><o:p>&nbsp;</o:p></i></b></p>
<p class=3D"MsoPlainText"><b><i>The output from Step 4 is then the current =
Active Policy.<o:p></o:p></i></b></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Here are a few examples. Each mapping entry is re=
presented by the tuple:<o:p></o:p></p>
<p class=3D"MsoPlainText">(Preference, Prefix/mask Index range &lt;#&gt;)<o=
:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 1:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (148, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 1, it is ignored.<o:=
p></o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 2:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 100)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entry 2, both are marked a=
s ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 3 conflicts with entry 2. It is marked as i=
gnore.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 4 has no conflicts with any entries<o:p></o=
:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 3:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 500)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (150, 1.1.1.10/32 200 range 200)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (150, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (150, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 1 conflicts with entries 2, 3, and&nbsp; 4.=
 All entries are marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">Empty<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Example 4:<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">1. (150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText">2. (149, 1.1.1.10/32 200 range 300)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">3. (149, 1.1.1.101/32 500 range 10)<o:p></o:p></p=
>
<p class=3D"MsoPlainText">4. (148, 2.2.2.1/32 1000 range 1)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Entry 4 conflicts with entry 2. It is marked igno=
re.<o:p></o:p></p>
<p class=3D"MsoPlainText">Entry 2 conflicts with entry 3. Entries 2 and 3 a=
re marked ignore.<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText">Active policy:<o:p></o:p></p>
<p class=3D"MsoPlainText">(150, 1.1.1.1/32 100 range 10)<o:p></o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_4A79394211F1AF4EB57D998426C9340DD4B115EFUS70UWXCHMBA01z_--


From nobody Fri Dec 23 07:25:30 2016
Return-Path: <mustapha.aissaoui@nokia.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CFF2412969E for <spring@ietfa.amsl.com>; Fri, 23 Dec 2016 07:25:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.899
X-Spam-Level: 
X-Spam-Status: No, score=-6.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xbAwBjPkyRSf for <spring@ietfa.amsl.com>; Fri, 23 Dec 2016 07:25:24 -0800 (PST)
Received: from smtp-us.alcatel-lucent.com (us-hpatc-esg-01.alcatel-lucent.com [135.245.18.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F0961129679 for <spring@ietf.org>; Fri, 23 Dec 2016 07:25:23 -0800 (PST)
Received: from us70tumx1.dmz.alcatel-lucent.com (unknown [135.245.18.13]) by Websense Email Security Gateway with ESMTPS id 0E6BDCC39A452; Fri, 23 Dec 2016 15:25:19 +0000 (GMT)
Received: from us70tusmtp1.zam.alcatel-lucent.com (us70tusmtp1.zam.alcatel-lucent.com [135.5.2.63]) by us70tumx1.dmz.alcatel-lucent.com (GMO) with ESMTP id uBNFPLdh022713 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 23 Dec 2016 15:25:22 GMT
Received: from US70TWXCHHUB04.zam.alcatel-lucent.com (us70twxchhub04.zam.alcatel-lucent.com [135.5.2.36]) by us70tusmtp1.zam.alcatel-lucent.com (GMO) with ESMTP id uBNFO8OC004735 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 23 Dec 2016 15:25:21 GMT
Received: from US70UWXCHMBA01.zam.alcatel-lucent.com ([169.254.7.176]) by US70TWXCHHUB04.zam.alcatel-lucent.com ([135.5.2.36]) with mapi id 14.03.0301.000; Fri, 23 Dec 2016 10:24:55 -0500
From: "Aissaoui, Mustapha (Nokia - CA)" <mustapha.aissaoui@nokia.com>
To: Robert Raszuk <robert@raszuk.net>, "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
Thread-Topic: [spring] SID Conflict Resolution: A Simpler Proposal
Thread-Index: AdJOibcaOvA8JiDrT2eiOTpEk40qzwDAodWgAC/MMoAChMj6cAAKwMEwAAtKuwAAA4UTgAAB+b6AABaZlvA=
Date: Fri, 23 Dec 2016 15:24:55 +0000
Message-ID: <4A79394211F1AF4EB57D998426C9340DD4B11684@US70UWXCHMBA01.zam.alcatel-lucent.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com> <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com> <CA+b+ERnhaUTJ45FwMvMf3V8xhqRKfpGE_9h8MgmOqBejvscAaA@mail.gmail.com> <ae35b4f22e7744f9a424a8ad02c12a2b@XCH-ALN-001.cisco.com> <CA+b+ERke08DVHyrZ_=tMpiOgedzydsR8VktHAKfzzQDYkAOArQ@mail.gmail.com>
In-Reply-To: <CA+b+ERke08DVHyrZ_=tMpiOgedzydsR8VktHAKfzzQDYkAOArQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: multipart/alternative; boundary="_000_4A79394211F1AF4EB57D998426C9340DD4B11684US70UWXCHMBA01z_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/hmar1VSYPLAEqGmu_NCmdlEMEBI>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 23 Dec 2016 15:25:29 -0000

--_000_4A79394211F1AF4EB57D998426C9340DD4B11684US70UWXCHMBA01z_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgUm9iZXJ0LA0KSW4gZmFjdCB5b3UgYXJlIHRvdWNoaW5nIG9uIHRoZSBwb2ludCBJIGFtIHRy
eWluZyB0byBtYWtlIGluIG15IGNvbW1lbnQgKDEpIG9uIHRoZSBzbGlkZXMuIFJlYWRpbmcgdGhp
cyBkcmFmdCwgSSBoYXZlIHRoZSBpbXByZXNzaW9uIHRoZSBhdXRob3JzIGFyZSB0cnlpbmcgdG8g
YWRkcmVzcyBTSUQgY29uZmxpY3QgcmVzb2x1dGlvbiBvdXRzaWRlIG9mIHRoZSBuYXR1cmFsIHBl
ciBwcmVmaXggcmVzb2x1dGlvbiBvbiB0aGUgcm91dGVyLiBXaGlsZSBpbiB0aGVvcnkgdGhpcyBj
YW4gYmUgZG9uZSBidXQgaXQgbWFrZXMgdGhlIGFsZ29yaXRobSBtdWNoIG1vcmUgY29tcGxleCB0
cnlpbmcgdG8gY29tcGFyZSBvdmVybGFwcGluZyBTUk1TIFNJRCBlbnRyaWVzIHdpdGggZGlmZmVy
ZW50IHJhbmdlIHNpemVzLg0KDQpUaGVyZSBhcmUgdHdvIHNvdXJjZXMgb2YgYWR2ZXJ0aXNlbWVu
dCBvZiB0aGUgU0lEIGluZm9ybWF0aW9uOg0KDQphLiAgICAgUGVyLXByZWZpeCBTSUQgZW50cmll
cyByZWNlaXZlZCBpbiB0aGUgIHByZWZpeCBTSUQgc3ViLVRMViB3aXRoaW4gYSBQcmVmaXggVExW
IChJUy1JUyBJUCBSZWFjaCBUTFYgb3IgT1NQRiBFeHRlbmRlZCBQcmVmaXggVExWKS4NCg0KYi4g
ICAgIFNSTVMgZW50cmllcyB3aGljaCBhZHZlcnRpc2UgU0lEIGluZm9ybWF0aW9uIGZvciBhIHJh
bmdlIG9mIHByZWZpeGVzLg0KDQpUaGUgcmFuZ2Ugc2l6ZSBvZiB0aGUgU1JNUyBlbnRyeSBlbnRp
cmVseSBkZXBlbmRzIG9uIGhvdyB0aGUgdXNlciB3YW50cyB0byBhZHZlcnRpc2UgdGhlIGluZm9y
bWF0aW9uIGFuZCBoYXMgbm8gbWVhbmluZyBmb3IgdGhlIHJlc29sdXRpb24uIEZyb20gYSByb3V0
ZXLigJlzIHBlcnNwZWN0aXZlLCB0aGUgU0lEIGluZm9ybWF0aW9uIGlzIGFzc29jaWF0ZWQgd2l0
aCBhIHByZWZpeCByZWdhcmRsZXNzIGhvdyBpdCBpcyBhZHZlcnRpc2VkLg0KDQpUaGUgcGVyLXBy
ZWZpeCBTSUQgaW5mb3JtYXRpb24gaXMgcHJlZmVycmVkIHRvIHRoZSBTUk1TIFNJRCBpbmZvcm1h
dGlvbi4gQW5kIHRodXMgYSBzaW1wbGUgYWxnb3JpdGhtIHdoaWNoIGF0IHRoZSB0b3AgbGV2ZWwg
c2VsZWN0cyB0aGUgU0lEIGFtb25nIHNldCAoYSkgYmFzZWQgb24gdGhlIHNvdXJjZSBhZHZlcnRp
c2luZyByb3V0ZXIgYW5kIGlmIGVtcHR5IHNlbGVjdHMgdGhlIFNJRCBhbW9uZyBzZXQgKGIpIGJh
c2VkIG9uIHRoZSBTUk1TIHByZWZlcmVuY2UgYW5kIHRoZW4gYmFzZWQgb24gdGhlIFNSTVMgcm91
dGVyLWlkIGlmIHNhbWUgcHJlZmVyZW5jZSB3aWxsIHdvcmsuDQoNClJlZ2FyZHMsDQpNdXN0YXBo
YS4NCg0KRnJvbTogcnJhc3p1a0BnbWFpbC5jb20gW21haWx0bzpycmFzenVrQGdtYWlsLmNvbV0g
T24gQmVoYWxmIE9mIFJvYmVydCBSYXN6dWsNClNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAyMiwg
MjAxNiA1OjI5IFBNDQpUbzogTGVzIEdpbnNiZXJnIChnaW5zYmVyZykgPGdpbnNiZXJnQGNpc2Nv
LmNvbT4NCkNjOiBBaXNzYW91aSwgTXVzdGFwaGEgKE5va2lhIC0gQ0EpIDxtdXN0YXBoYS5haXNz
YW91aUBub2tpYS5jb20+OyBzcHJpbmdAaWV0Zi5vcmcNClN1YmplY3Q6IFJlOiBbc3ByaW5nXSBT
SUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQoNCkxlcywNCg0KQWZ0
ZXIgbWVudGFsIHJlc2V0IEkgY29uY2x1ZGUgdGhhdCBwZXJoYXBzIGV2ZW4gdGhlIGludHJvZHVj
dGlvbiBvZiB0aGUgZHJhZnQgaXMgcXVlc3Rpb25hYmxlIGFzIGluIHJlYWwgbGlmZSBpdCBhcHBs
aWVzIHRvIGJlIHF1aXRlIGFuIHVucmVhbGlzdGljIHNjZW5hcmlvIHRvIGhhdmUgYSBzaXR1YXRp
b24gd2hlcmUgbW9yZSB0aGVuIG9uZSBwcm90b2NvbCBpcyB1c2VkICppbiB0aGUgc2FtZSB0aW1l
KiBhcyBhY3RpdmUgaW4gZm9yd2FyZGluZyBmb3IgYW4gZXhhY3Qgc2FtZSBJUCBwcmVmaXguDQoN
Ckxhc3QgdGltZSBJIGNoZWNrZWQgU0lEcyBhcmUgbWVhbmluZ2xlc3Mgd2l0aG91dCBhIHByZWZp
eCB0aGV5IGFyZSBhdHRhY2hlZCB0byBhbmQgaXQgaXMgYSBwcmVmaXggdGhleSBhY2NvbXBhbnkg
dG8gaW5kaWNhdGUgd2hpY2ggU0lEIHNob3VsZCBiZSB1c2VkIG9uIGEgZ2l2ZW4gbm9kZS4NCg0K
VGhlcmVmb3IgaWYgeW91IGNvbnNpZGVyIHRoYXQgdG9kYXkgbW9zdCBpbXBsZW1lbnRhdGlvbnMg
cHJldHR5IHdlbGwgY2FuIGhhbmRsZSBvdmVybGFwcGluZyBwcmVmaXhlcyBmcm9tIG11bHRpcGxl
IHNvdXJjZXMgd2hhdCByZWFsIHByb2JsZW0gaXMgdGhpcyBkcmFmdCBzb2x2aW5nID8NCg0KQXJl
IHlvdSB0cnlpbmcgdG8gY3JlYXRlIGEgZm9yd2FyZGluZyBncmFwaCBieSBTSURzIG9ubHkgZGV0
YWNoaW5nIHRoZW0gZnJvbSBJUCBwcmVmaXhlcyBhbGwgdG9nZXRoZXIgPw0KDQpDaGVlcnMsDQpS
Lg0KDQoNCk9uIFRodSwgRGVjIDIyLCAyMDE2IGF0IDEwOjMyIFBNLCBMZXMgR2luc2JlcmcgKGdp
bnNiZXJnKSA8Z2luc2JlcmdAY2lzY28uY29tPG1haWx0bzpnaW5zYmVyZ0BjaXNjby5jb20+PiB3
cm90ZToNClJvYmVydCDigJMNCg0KWW91IGhhdmUgYSBjb21wbGV0ZSBtaXN1bmRlcnN0YW5kaW5n
IG9mIHJvbGVzIGhlcmUuDQoNCkhvdyB0aGUgb3duZXIgb2YgYSByb3V0ZSBtYXkgYmUgcmVwcmVz
ZW50ZWQgaW4gdGhlIFJJQiBpc27igJl0IGltcGFjdGVkIGJ5IFNSTVMgb3IgY29uZmxpY3QgcmVz
b2x1dGlvbi4gTm9yIGlzIHRoZSBkZXRlcm1pbmF0aW9uIG9mIHdoaWNoIHJvdXRlIGlzIHRoZSBi
ZXN0IHJvdXRlLiBXZSBhcmUgb25seSBkZXRlcm1pbmluZyB3aGV0aGVyIHRvIHVzZSBvciBub3Qg
dXNlIGEgU0lEIHdoaWNoIHdhcyBhc3NvY2lhdGVkIHdpdGggdGhlIHByZWZpeCBieSBzb21lIGFk
dmVydGlzZW1lbnQuDQoNClRoZSBJbnRyb2R1Y3Rpb24gdG8gdGhlIGRyYWZ0IHN0YXRlczoNCg0K
4oCcVGhlIHByb2JsZW0gdG8gYmUgYWRkcmVzc2VkIGlzIHByb3RvY29sIGluZGVwZW5kZW50IGku
ZS4sIHNlZ21lbnQNCiAgIHJlbGF0ZWQgYWR2ZXJ0aXNlbWVudHMgbWF5IGJlIG9yaWdpbmF0ZWQg
YnkgbXVsdGlwbGUgbm9kZXMgdXNpbmcNCiAgIGRpZmZlcmVudCBwcm90b2NvbHMgYW5kIHlldCB0
aGUgY29uZmxpY3QgcmVzb2x1dGlvbiBNVVNUIGJlIHRoZSBzYW1lDQogICBvbiBhbGwgbm9kZXMg
cmVnYXJkbGVzcyBvZiB0aGUgcHJvdG9jb2wgdXNlZCB0byB0cmFuc3BvcnQgdGhlDQogICBhZHZl
cnRpc2VtZW50cy7igJ0NCg0KUGxlYXNlIGRvIGEgbWVudGFsIHJlc2V0LiDimLoNCg0KICAgTGVz
DQoNCg0KRnJvbTogcnJhc3p1a0BnbWFpbC5jb208bWFpbHRvOnJyYXN6dWtAZ21haWwuY29tPiBb
bWFpbHRvOnJyYXN6dWtAZ21haWwuY29tPG1haWx0bzpycmFzenVrQGdtYWlsLmNvbT5dIE9uIEJl
aGFsZiBPZiBSb2JlcnQgUmFzenVrDQpTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMjIsIDIwMTYg
MTE6NTIgQU0NClRvOiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKQ0KQ2M6IEFpc3Nhb3VpLCBNdXN0
YXBoYSAoTm9raWEgLSBDQSk7IHNwcmluZ0BpZXRmLm9yZzxtYWlsdG86c3ByaW5nQGlldGYub3Jn
Pg0KDQpTdWJqZWN0OiBSZTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2lt
cGxlciBQcm9wb3NhbA0KDQpIaSBMZXMsDQoNCk9uICMxIEkgYW0gYWxzbyB3aXRoIE11c3RhcGhh
IGhlcmUuIEZvciBjbGFyaXR5IG9mIHRoaXMgZGlzY3Vzc2lvbiBjYW4geW91IGVudW1lcmF0ZSB3
aGVuIGZyb20gUklCIHRvIEZJQi9MRklCIHlvdSBhcmUgaW5zdGFsbGluZyB0aGUgZXhhY3Qgc2Ft
ZSBhY3RpdmUgcHJlZml4IGZyb20gbW9yZSB0aGVuIG9uZSBwcm9kdWNlciA/IElzIFNSTVMgc29y
dCBvZiB6b21iaWUgaGVyZSBhbmQgbm90IHRyZWF0ZWQgYXMgcmVhbCByb3V0ZSBwcm9kdWNlciBo
ZW5jZSB3ZSBoYXZlIGFuIGlzc3VlID8gQW5kIHRoZSBpc3N1ZSBpcyBvbmx5IHdpdGggY29uZmxp
Y3RzIG9mIFNSTVMgKyByZWFsIHJvdXRlIHByb2R1Y2VyID8NCg0KT24gIzMgeW91IHNhaWQgdGhh
dCAid2l0aCByZWRpc3RyaWJ1dGlvbi9yb3V0ZSBsZWFraW5nIHRoZSBzb3VyY2Ugb2YgYW4gYWR2
ZXJ0aXNlbWVudCBtYXkgYXBwZWFyIHRvIGJlIGRpZmZlcmVudCBvbiBkaWZmZXJlbnQgcm91dGVy
cyIgdGhhdCBpcyB2ZXJ5IHRydWUuIEluIGZhY3Qgd2l0aCBzaW1wbGUgc3RhdGljIHJvdXRlIG9y
IHN0YXRpYyBsYWJlbCBjb25maWd1cmVkIG9uIGEgcm91dGVyIHRoZSBSSUIgYW5kIEZJQiBvbiB0
aGF0IHJvdXRlciB3aWxsIGJlIGRpZmZlcmVudCB0aGVuIFJJQiBhbmQgRklCIG9uIHRoZSBvdGhl
ciByb3V0ZXJzIHdpdGhvdXQgc3VjaCBzdGF0aWMgcm91dGUuIEFuZCB0aGUgcG9pbnQgaXMgdGhh
dCBzdWNoIHN0YXRpYyByb3V0ZSBvciBsYWJlbCBpcyB0aGVyZSBmb3IgYSByZWFzb24geW91IG1h
eSBub3Qga25vdyBhYm91dC4gU28gc3RydWdnbGluZyBmb3IgZGF0YSBwbGFuZSBjb25zaXN0ZW5j
eSDigItkZWxpYmVyYXRlbHkgZXhjbHVkaW5nIHNvdXJjZSB3aGVuIG9wZXJhdGlvbmFsIG5lZWRz
IHJlcXVpcmUgb3RoZXJ3aXNlIGlzIG5vdCByZWFsbHkgdGhhdCBtdWNoIGhlbHBmdWwgSSBhbSBh
ZnJhaWQuDQoNCkdyZWV0aW5ncywNClJvYmVydC4NCg0KDQpPbiBUaHUsIERlYyAyMiwgMjAxNiBh
dCA4OjM3IFBNLCBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKSA8Z2luc2JlcmdAY2lzY28uY29tPG1h
aWx0bzpnaW5zYmVyZ0BjaXNjby5jb20+PiB3cm90ZToNCk11c3RhcGhhIC0NCg0KRnJvbTogc3By
aW5nIFttYWlsdG86c3ByaW5nLWJvdW5jZXNAaWV0Zi5vcmc8bWFpbHRvOnNwcmluZy1ib3VuY2Vz
QGlldGYub3JnPl0gT24gQmVoYWxmIE9mIEFpc3Nhb3VpLCBNdXN0YXBoYSAoTm9raWEgLSBDQSkN
ClNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAyMiwgMjAxNiA4OjEwIEFNDQpUbzogTGVzIEdpbnNi
ZXJnIChnaW5zYmVyZyk7IHNwcmluZ0BpZXRmLm9yZzxtYWlsdG86c3ByaW5nQGlldGYub3JnPg0K
U3ViamVjdDogUmU6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIg
UHJvcG9zYWwNCg0KSGkgTGVzLA0KSSByZWFkIHNsaWRlcyAxNy0yMSBvZiB0aGUgZG9jdW1lbnQg
eW91IHJlZmVyZW5jZWQgYmVsb3cgYW5kIEkgaGF2ZSB0aGUgZm9sbG93aW5nIGNvbW1lbnRzOg0K
DQoNCjEuICAgICBQYWdlIDE3LCDigJxPcmRlciBNYXR0ZXJzIC0gUHJlZml4IHZzIFNJRCBDb25m
bGljdOKAnS4NCg0KV2hlbiB5b3UgcGVyZm9ybSByZXNvbHV0aW9uIG9uICBhIHBlciBwcmVmaXgg
YmFzaXMsIHByZWZpeCBjb25mbGljdHMgYXJlIG5hdHVyYWxseSBwcm9jZXNzZWQgZmlyc3QgZm9s
bG93ZWQgYnkgU0lEIGNvbmZsaWN0cyBhY3Jvc3MgZGlmZmVyZW50IHByZWZpeGVzLiBTbyB0aGUg
b3JkZXJpbmcgaXNzdWUgZGVzY3JpYmVkIGlzIG9ubHkgc3BlY2lmaWMgaWYgeW91IGRlY2lkZWQg
dG8gcmVzb2x2ZSBjb25mbGljdGluZyBTSUQgZW50cmllcyBvdXRzaWRlIG9mIHRoZSBuYXR1cmFs
IHByZWZpeCByZXNvbHV0aW9uIGJ5IGEgcm91dGVyLg0KDQoNCg0KW0xlczpdIFdoYXQgbWF5IHNl
ZW0g4oCcbmF0dXJhbOKAnSB0byB5b3UgbWlnaHQgbm90IHRvIHNvbWVvbmUgZWxzZS4gSSBkb27i
gJl0IGNhcmUgdG8gZGViYXRlIHRoYXQgcG9pbnQuIFdoYXQgaXMgYmVpbmcgaWxsdXN0cmF0ZWQg
aGVyZSBpcyB0aGF0IGluIG9yZGVyIHRvIHByb3ZpZGUgYSBub3JtYXRpdmUgc3BlY2lmaWNhdGlv
biB0aGF0IOKAkyBpZiBmb2xsb3dlZCDigJMgZ3VhcmFudGVlcyBpbnRlcm9wZXJhYmlsaXR5IHdl
IGhhdmUgdG8gc3BlY2lmeSB0aGUgb3JkZXIgaW4gd2hpY2ggY29uZmxpY3RzIGFyZSBwcm9jZXNz
ZWQgb3RoZXJ3aXNlIGRpZmZlcmVudCByZXN1bHRzIG1heSBiZSBvYnRhaW5lZC4NCg0KDQoNCjIu
ICAgICBQYWdlIDE4LCDigJxPcmRlciBNYXR0ZXJzOiBEZXJpdmVkIHZzIG5vbi1kZXJpdmVk4oCT
IHByZWZpeCBjb25mbGljdOKAnS4NCg0KSXQgc2VlbXMgdG8gbWUgdGhpcyBpc3N1ZSBpcyBhbiBh
cnRpZmFjdCBvZiB0aGUgc3BlY2lmaWMgYWxnb3JpdGhtIHVzZWQgdG8gcmVzb2x2ZSBjb25mbGlj
dHMuIEJlY2F1c2UgdGhlIGFsZ29yaXRobSB1c2VzIHBhcmFtZXRlcnMgc3VjaCBhcyDigJxSYW5n
ZSAoc3RhcnQgdyBzbWFsbGVzdCnigJ0gdGhlbiBvYnZpb3VzbHkgZGVyaXZlZCBTUk1TIGVudHJp
ZXMgd2lsbCBsZW5kIGEgZGlmZmVyZW50IHJlc3VsdCB0aGFuIG9yaWdpbmFsIFNSTVMgZW50cmll
cy4NCg0KV2l0aCB0aGUgcHJlLXByZWZpeCByZXNvbHV0aW9uLCB0aGUgb25seSBpbmZvcm1hdGlv
biBrZXB0IGZyb20gdGhlIG9yaWdpbmFsIFNSTVMgZW50cnkgaXMgdGhlIHByZWZlcmVuY2UgYW5k
IHRoZSBhZHZlcnRpc2luZyBvciBvd25lciByb3V0ZXIuIEFueXRoaW5nIGVsc2UgaXMgbm90IHVz
ZWQuIEl0IHNlZW1zIHRvIG1lIGEgc2ltcGxlIGFsZ29yaXRobSBiYXNlZCBvbiBwcmVmZXJlbmNl
IGZpcnN0IHRoZW4gZm9sbG93ZWQgYnkgc29tZSBydWxlIG9uIHNlbGVjdGluZyB0aGUgYWR2ZXJ0
aXNpbmcgcm91dGVyIGlmIGNvbmZsaWN0cyBleGlzdCB3aXRoaW4gdGhlIHNhbWUgcHJlZmVyZW5j
ZSB3b3VsZCB3b3JrLg0KDQoNCg0KW0xlczpdIFlvdSBoYXZlIGltcGxlbWVudGVkIHRoaW5ncyBp
biBhIGNlcnRhaW4gd2F5LiBTb21lb25lIGVsc2UgbWlnaHQgY2hvb3NlIHRvIGltcGxlbWVudCBp
biBhIGRpZmZlcmVudCB3YXkuIEEgbm9ybWF0aXZlIHNwZWNpZmljYXRpb24gZG9lcyBub3QgKGFu
ZCBzaG91bGQgbm90KSBjb25zdHJhaW4gYW4gaW1wbGVtZW50YXRpb24uIFdoYXQgaXMgYmVpbmcg
aWxsdXN0cmF0ZWQgaGVyZSBpcyB0aGF0IGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBy
ZXRhaW4gdGhlIHVuZGVyaXZlZCBlbnRyeSAoaW4gd2hhdGV2ZXIgaW50ZXJuYWwgZm9ybSBpdCBj
aG9vc2VzKSBkaWZmZXJlbnQgcmVzdWx0cyB3aWxsIGJlIG9idGFpbmVkIGJlY2F1c2UgdGhlIHBy
ZWZlcmVuY2UgYWxnb3JpdGhtIGRlcGVuZHMgb24gY29tcGFyaW5nIHRoZSB1bmRlcml2ZWQgcmFu
Z2VzLg0KDQoNCg0KMy4gICAgIEZpbmFsbHksIHRoZXJlIGlzIHNvbWV0aGluZyB3aGljaCBoYXMg
bm90IGJlZW4gYWRkcmVzc2VkIGluIHRoZSBzbGlkZXMuIFRoZXJlIGlzIHN0aWxsIGEgcG9zc2li
aWxpdHkgb2YgY29uZmxpY3RpbmcgZW50cmllcyBhbW9uZyBTSURzIGFkdmVydGlzZWQgdXNpbmcg
dGhlIHByZWZpeCBTSUQgc3ViLVRMViB3aXRoaW4gYSBQcmVmaXggVExWIChJUy1JUyBJUCBSZWFj
aCBUTFYgb3IgT1NQRiBFeHRlbmRlZCBQcmVmaXggVExWKS4gQSBzaW1wbGUgcnVsZSBzZWxlY3Rp
bmcgdGhlIGFkdmVydGlzaW5nIHJvdXRlciBzaG91bGQgYWxzbyB3b3JrIGZpbmUgaGVyZS4NCg0K
W0xlczpdIE5vIOKAkyBzb3VyY2Ugb2YgYW4gYWR2ZXJ0aXNlbWVudCBoYXMgYmVlbiBxdWl0ZQ0K
4oCL4oCLDQpkZWxpYmVyYXRlbHkgZXhjbHVkZWQgZnJvbSB0aGUgcHJlZmVyZW5jZSBhbGdvcml0
aG0uIFdpdGggcmVkaXN0cmlidXRpb24vcm91dGUgbGVha2luZyB0aGUgc291cmNlIG9mIGFuIGFk
dmVydGlzZW1lbnQgbWF5IGFwcGVhciB0byBiZSBkaWZmZXJlbnQgb24gZGlmZmVyZW50IHJvdXRl
cnMtIHRoaXMgd291bGQgcmVzdWx0IGluIGRpZmZlcmVudCByZXN1bHRzIG9uIGRpZmZlcmVudCBy
b3V0ZXJzLg0KDQogICBMZXMNCg0KUmVnYXJkcywNCk11c3RhcGhhLg0KDQpGcm9tOiBMZXMgR2lu
c2JlcmcgKGdpbnNiZXJnKSBbbWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNvbV0NClNlbnQ6IEZyaWRh
eSwgRGVjZW1iZXIgMDksIDIwMTYgMTo0OSBQTQ0KVG86IEFpc3Nhb3VpLCBNdXN0YXBoYSAoTm9r
aWEgLSBDQSkgPG11c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNvbTxtYWlsdG86bXVzdGFwaGEuYWlz
c2FvdWlAbm9raWEuY29tPj47IHNwcmluZ0BpZXRmLm9yZzxtYWlsdG86c3ByaW5nQGlldGYub3Jn
Pg0KU3ViamVjdDogUkU6IFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9z
YWwNCg0KTXVzdGFwaGEgLQ0KDQpGcm9tOiBBaXNzYW91aSwgTXVzdGFwaGEgKE5va2lhIC0gQ0Ep
IFttYWlsdG86bXVzdGFwaGEuYWlzc2FvdWlAbm9raWEuY29tXQ0KU2VudDogRnJpZGF5LCBEZWNl
bWJlciAwOSwgMjAxNiA3OjQ0IEFNDQpUbzogTGVzIEdpbnNiZXJnIChnaW5zYmVyZyk7IHNwcmlu
Z0BpZXRmLm9yZzxtYWlsdG86c3ByaW5nQGlldGYub3JnPg0KU3ViamVjdDogUkU6IFNJRCBDb25m
bGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWwNCg0KSSBoYXZlIGEgY291cGxlIG9m
IGNvbW1lbnRzIG9uIHRoZSBiZWxvdyBwcm9wb3NhbC4NCg0KDQoxLiAgICAgUmVnYXJkaW5nIHRo
ZSBTUk1TIFByZWZlcmVuY2UgU3ViLVRMViBpbiBzZWN0aW9uIDMuMSBvZiB0aGUgZHJhZnQuIElu
IG1hbnkgY2FzZXMsIGEgY29uZmlndXJhdGlvbiBvbiB0aGUgcmVzb2x2aW5nIHJvdXRlciBjYW4g
YXNzaWduIGEgcHJlZmVyZW5jZSB0byBlYWNoIFNSTVMgaW4gY2FzZSB0aGVyZSBpcyBubyBhZHZl
cnRpc2VtZW50IG9mIHRoaXMgc3ViLVRMViBvciB0byBvdmVycmlkZSBhbiBhZHZlcnRpc2VkIHZh
bHVlLiBJIHByb3Bvc2UgdGhhdCB0aGlzIG9wdGlvbiBiZSBhbGxvd2VkLiBIZXJlIGlzIGEgcHJv
cG9zZWQgdXBkYXRlIHRvIHRoZSByZWxldmFudCBwYXJhZ3JhcGg6DQoNCuKAnA0KICAgICAgICAg
ICBBZHZlcnRpc2VtZW50IG9mIGEgcHJlZmVyZW5jZSB2YWx1ZSBpcyBvcHRpb25hbC4gIE5vZGVz
IHdoaWNoIGRvIG5vdA0KICAgICAgICAgIGFkdmVydGlzZSBhIHByZWZlcmVuY2UgdmFsdWUgYXJl
IGFzc2lnbmVkIGEgcHJlZmVyZW5jZSB2YWx1ZSBvZiAxMjguDQogICAgICAgICAgIEEgcmVzb2x2
aW5nIHJvdXRlciBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgb3IgdGhlIGFkdmVydGlzZWQgdmFs
dWUgYnkgbG9jYWwgcG9saWN5Lg0KDQrigJwNCg0KW0xlczpdIEluIG9yZGVyIHRvIGdldCBjb25z
aXN0ZW50IGNvbmZsaWN0IHJlc29sdXRpb24gb24gYWxsIG5vZGVzIGluIHRoZSBuZXR3b3JrLCBp
dCBpcyBuZWNlc3NhcnkgdGhhdCB0aGV5IGFsbCBoYXZlIHRoZSBzYW1lIGRhdGFiYXNlIOKAkyB3
aGljaCBpbmNsdWRlcyB0aGUgcHJlZmVyZW5jZSB2YWx1ZS4gSWYgeW91IGFsbG93IGxvY2FsIHBv
bGljeSB0byBtb2RpZnkgdGhlIHByZWZlcmVuY2UgeW91IG5vIGxvbmdlciBoYXZlIGNvbnNpc3Rl
bnQgZGF0YWJhc2VzIG9uIGFsbCBub2RlcyBhbmQgd2UgY2FuIG5vIGxvbmdlciBndWFyYW50ZWUg
Y29uc2lzdGVudCBjb25mbGljdCByZXNvbHV0aW9uLiBTbyB5b3VyIHByb3Bvc2FsIGlzIG5vdCB2
aWFibGUgSU1PLg0KDQoNCg0KMi4gICAgIEkgYW0gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIGNv
bmNlcHQgb2Ygc29ydGluZyBTUk1TIGVudHJpZXMgd2hpY2ggaGF2ZSBkaWZmZXJlbnQgcHJlZml4
ZXMgYW5kIGRpZmZlcmVudCByYW5nZSBzaXplcy4NCg0KU2luY2UgYSBTSUQgYWR2ZXJ0aXNlZCBp
biBhIHByZWZpeCBTSUQgc3ViLVRMViB3aXRoaW4gYSBQcmVmaXggVExWIChJUy1JUyBJUCBSZWFj
aCBUTFYgb3IgT1NQRiBFeHRlbmRlZCBQcmVmaXggVExWKSBoYXMgaGlnaGVyIHByaW9yaXR5IG92
ZXIgYSBTSUQgZm9yIHRoZSBzYW1lIHByZWZpeCBhZHZlcnRpc2VkIGZyb20gYSBTUk1TLCB0aGVu
IHlvdSBoYXZlIHRvIGFkZCB0byB0aGUgYmVsb3cgc29ydGluZyBhbiBlbnRyeSBmb3IgZWFjaCBp
bmRpdmlkdWFsIHByZWZpeCB3aGljaCBhZHZlcnRpc2VkIGEgcHJlZml4IFNJRCBzdWItVExWIHdp
dGhpbiBhIHByZWZpeCBUTFYuDQoNCkF0IHRoaXMgcG9pbnQsIHRoZSBjb25jZXB0IG9mIGFuIGVu
dHJ5IHdpdGggbXVsdGlwbGUgcHJlZml4ZXMgaXMgbW9vdCBhbmQgeW91IG1heSBhcyB3ZWxsIGp1
c3Qgc29ydCBvbiBhIHBlciBwcmVmaXggYmFzaXMgd2hpY2ggaXMgdGhlIG1vc3QgbmF0dXJhbCB0
aGluZyB0byBkbyBnaXZlbiB0aGF0IHRoZSBwcmVmaXggcmVzb2x1dGlvbiBhbmQgdGhlbiB0aGUg
U0lEIHJlc29sdXRpb24gYXJlIHBlcmZvcm1lZCBvbiBhIHBlciBwcmVmaXggYmFzaXMuIFNJRCBj
b25mbGljdHMgY2FuIGJlIHJlc29sdmVkIG9uIGEgcGVyIHByZWZpeCBiYXNpcyB1c2luZyB0aGUg
YmVsb3cgcHJvcG9zZWQgcHJlZmVyZW5jZSBhbGdvcml0aG0gd2l0aG91dCBoYXZpbmcgdG8gaWdu
b3JlIFNJRCB2YWx1ZXMgZm9yIHVucmVsYXRlZCBwcmVmaXhlcyBqdXN0IGJlY2F1c2UgaXQgaGFw
cGVucyB0aGF0IHRoZXkgd2VyZSBhZHZlcnRpc2VkIGluIHRoZSBzYW1lIFNSTVMgZW50cnkuDQoN
Cg0KDQpbTGVzOl0gVGhlIHNpbXBsZXIgcHJvcG9zYWwgZG9lcyBub3QgcmVxdWlyZSBzb3J0aW5n
IG9uIGFueXRoaW5nIG90aGVyIHRoYW4gcHJlZmVyZW5jZS4gQWZ0ZXIgdGhhdCwgeW91IGNhbiBw
cm9jZXNzIGVudHJpZXMgaW4gYW55IG9yZGVyIHlvdSB3YW50IGFuZCB5b3Ugd2lsbCBnZXQgdGhl
IHNhbWUgYW5zd2VyLg0KDQpXaXRoIOKAnElnbm9yZSBPdmVybGFwIE9ubHnigJ0gb25lIG9mIHRo
ZSBpc3N1ZXMgd2l0aCB0cnlpbmcgdG8gdXNlIHRoZSBub24tY29uZmxpY3RpbmcgcG9ydGlvbnMg
b2YgYSBtYXBwaW5nIGVudHJ5IHdoaWNoIGhhcyBhIHJhbmdlID4gMSBpcyB0aGF0IHRoZSBvcmRl
ciBpbiB3aGljaCB5b3UgcHJvY2VzcyBlbnRyaWVzIGluZmx1ZW5jZXMgdGhlIHJlc3VsdC4gUGxl
YXNlIHNlZSBzbGlkZXMgMTcg4oCTIDIwIGZyb20gdGhlIElFVEY5NyBwcmVzZW50YXRpb246IGh0
dHBzOi8vd3d3LmlldGYub3JnL3Byb2NlZWRpbmdzLzk3L3NsaWRlcy9zbGlkZXMtOTctc3ByaW5n
LTFfaWV0Zjk3X2RyYWZ0LWlldGYtc3ByaW5nLWNvbmZsaWN0LXJlc29sdXRpb24tMDItMDAucHB0
eCBmb3Igc29tZSBzaW1wbGUgZXhhbXBsZXMgb2YgdGhpcy4NCg0KDQoNCiAgIExlcw0KDQoNCg0K
UmVnYXJkcywNCk11c3RhcGhhLg0KDQpGcm9tOiBzcHJpbmcgW21haWx0bzpzcHJpbmctYm91bmNl
c0BpZXRmLm9yZ10gT24gQmVoYWxmIE9mIExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpDQpTZW50OiBT
dW5kYXksIERlY2VtYmVyIDA0LCAyMDE2IDc6MDQgUE0NClRvOiBzcHJpbmdAaWV0Zi5vcmc8bWFp
bHRvOnNwcmluZ0BpZXRmLm9yZz4NClN1YmplY3Q6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNv
bHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWwNCg0KDQpXaGVuIHRoZSBwcm9ibGVtIGFkZHJlc3Nl
ZCBieSBkcmFmdC1pZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uIHdhcyBmaXJzdA0KDQpw
cmVzZW50ZWQgYXQgSUVURiA5NCwgdGhlIGF1dGhvcnMgZGVmaW5lZCB0aGUgZm9sbG93aW5nIHBy
aW9yaXRpZXM6DQoNCg0KDQoxKURldGVjdCB0aGUgcHJvYmxlbQ0KDQoyKVJlcG9ydCB0aGUgcHJv
YmxlbQ0KDQpUaGlzIGFsZXJ0cyB0aGUgbmV0d29yayBvcGVyYXRvciB0byB0aGUgZXhpc3RlbmNl
IG9mIGEgY29uZmxpY3Qgc28gdGhhdA0KDQp0aGUgY29uZmlndXJhdGlvbiBlcnJvciBjYW4gYmUg
Y29ycmVjdGVkLg0KDQozKURlZmluZSBjb25zaXN0ZW50IGJlaGF2aW9yDQoNClRoaXMgYXZvaWRz
IG1pcy1mb3J3YXJkaW5nIHdoaWxlIHRoZSBjb25mbGljdCBleGlzdHMuDQoNCjQpRG9u4oCZdCBv
dmVyZW5naW5lZXIgdGhlIHNvbHV0aW9uDQoNCkdpdmVuIHRoYXQgaXQgaXMgaW1wb3NzaWJsZSB0
byBrbm93IHdoaWNoIG9mIHRoZSBjb25mbGljdGluZyBlbnRyaWVzDQoNCmlzIHRoZSBjb3JyZWN0
IG9uZSwgd2Ugc2hvdWxkIGFwcGx5IGEgc2ltcGxlIGFsZ29yaXRobSB0byByZXNvbHZlIHRoZSBj
b25mbGljdC4NCg0KNSlBZ3JlZSBvbiB0aGUgcmVzb2x1dGlvbiBiZWhhdmlvcg0KDQoNCg0KVGhl
IHJlc29sdXRpb24gYmVoYXZpb3Igd2FzIGRlbGliZXJhdGVseSB0aGUgbGFzdCBwb2ludCBiZWNh
dXNlIGl0IHdhcw0KDQpjb25zaWRlcmVkIHRoZSBsZWFzdCBpbXBvcnRhbnQuDQoNCg0KDQpJbnB1
dCB3YXMgcmVjZWl2ZWQgb3ZlciB0aGUgcGFzdCB5ZWFyIHdoaWNoIGVtcGhhc2l6ZWQgdGhlIGlt
cG9ydGFuY2Ugb2YNCg0KdHJ5aW5nIHRvICJtYXhpbWl6ZSBmb3J3YXJkaW5nIiBpbiB0aGUgcHJl
c2VuY2Ugb2YgY29uZmxpY3RzLiBTdWJzZXF1ZW50DQoNCnJldmlzaW9ucyBvZiB0aGUgZHJhZnQg
aGF2ZSB0cmllZCB0byBhZGRyZXNzIHRoaXMgY29uY2Vybi4gSG93ZXZlciB0aGUgYXV0aG9ycw0K
DQpoYXZlIHJlcGVhdGVkbHkgc3RyZXNzZWQgdGhhdCB0aGUgc29sdXRpb24gYmVpbmcgcHJvcG9z
ZWQNCg0KKCJpZ25vcmUgb3ZlcmxhcCBvbmx5Iikgd2FzIG1vcmUgY29tcGxleCB0aGFuIG90aGVy
IG9mZmVyZWQgYWx0ZXJuYXRpdmVzIGFuZA0KDQp3b3VsZCBiZSBtb3JlIGRpZmZpY3VsdCB0byBn
dWFyYW50ZWUgaW50ZXJvcGVyYWJpbGl0eSBiZWNhdXNlIHN1YnRsZQ0KDQpkaWZmZXJlbmNlcyBp
biBhbiBpbXBsZW1lbnRhdGlvbiBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHRzLg0KDQoN
Cg0KQXQgSUVURjk3IHNpZ25pZmljYW50IGZlZWRiYWNrIHdhcyByZWNlaXZlZCBwcmVmZXJyaW5n
IGEgc2ltcGxlciBzb2x1dGlvbiB0bw0KDQp0aGUgcHJvYmxlbS4gVGhlIGF1dGhvcnMgYXJlIHZl
cnkgc3ltcGF0aGV0aWMgdG8gdGhpcyBmZWVkYmFjayBhbmQgdGhlcmVmb3JlDQoNCmFyZSBwcm9w
b3NpbmcgYSBzb2x1dGlvbiBiYXNlZCBvbiB3aGF0IHRoZSBkcmFmdCBkZWZpbmVzIGFzIHRoZSAi
SWdub3JlIg0KDQpwb2xpY3kgLSB3aGVyZSBhbGwgZW50cmllcyB3aGljaCBhcmUgaW4gY29uZmxp
Y3QgYXJlIGlnbm9yZWQuIFdlIGJlbGlldmUgdGhpcw0KDQppcyBmYXIgbW9yZSBkZXNpcmFibGUg
YW5kIGFsaWducyB3aXRoIHRoZSBwcmlvcml0aWVzIGxpc3RlZCBhYm92ZS4NCg0KDQoNCldlIG91
dGxpbmUgdGhlIHByb3Bvc2VkIHNvbHV0aW9uIGJlbG93IGFuZCB3b3VsZCBsaWtlIHRvIHJlY2Vp
dmUgZmVlZGJhY2sgZnJvbQ0KDQp0aGUgV0cgYmVmb3JlIHB1Ymxpc2hpbmcgdGhlIG5leHQgcmV2
aXNpb24gb2YgdGhlIGRyYWZ0Lg0KDQoNCg0KICAgTGVzIChvbiBiZWhhbGYgb2YgdGhlIGF1dGhv
cnMpDQoNCg0KDQpOZXcgUHJvcG9zYWwNCg0KDQoNCkluIHRoZSBsYXRlc3QgcmV2aXNpb24gb2Yg
dGhlIGRyYWZ0ICJTUk1TIFByZWZlcmVuY2UiIHdhcyBpbnRyb2R1Y2VkLiBUaGlzDQoNCnByb3Zp
ZGVzIGEgd2F5IGZvciBhIG51bWVyaWNhbCBwcmVmZXJlbmNlIHRvIGJlIGV4cGxpY2l0bHkgYXNz
b2NpYXRlZCB3aXRoIGFuDQoNClNSTVMgYWR2ZXJ0aXNlbWVudC4gVXNpbmcgdGhpcyBhbiBvcGVy
YXRvciBjYW4gaW5kaWNhdGUgd2hpY2ggYWR2ZXJ0aXNlbWVudCBpcw0KDQp0byBiZSBwcmVmZXJy
ZWQgd2hlbiBhIGNvbmZsaWN0IGlzIHByZXNlbnQuIFRoZSBhdXRob3JzIHRoaW5rIHRoaXMgaXMg
YSB1c2VmdWwNCg0KYWRkaXRpb24gYW5kIHdlIHRoZXJlZm9yZSB3YW50IHRvIGluY2x1ZGUgdGhp
cyBpbiB0aGUgbmV3IHNvbHV0aW9uLg0KDQoNCg0KVGhlIG5ldyBwcmVmZXJlbmNlIHJ1bGUgdXNl
ZCB0byByZXNvbHZlIGNvbmZsaWN0cyBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0KDQpBIGdp
dmVuIG1hcHBpbmcgZW50cnkgaXMgY29tcGFyZWQgYWdhaW5zdCBhbGwgbWFwcGluZyBlbnRyaWVz
IGluIHRoZSBkYXRhYmFzZQ0KDQp3aXRoIGEgcHJlZmVyZW5jZSBncmVhdGVyIHRoYW4gb3IgZXF1
YWwgdG8gaXRzIG93bi4gSWYgdGhlcmUgaXMgYSBjb25mbGljdCwNCg0KdGhlIG1hcHBpbmcgZW50
cnkgd2l0aCBsb3dlciBwcmVmZXJlbmNlIGlzIGlnbm9yZWQuIElmIHR3byBtYXBwaW5nIGVudHJp
ZXMgYXJlDQoNCmluIGNvbmZsaWN0IGFuZCBoYXZlIGVxdWFsIHByZWZlcmVuY2UgdGhlbiBib3Ro
IGVudHJpZXMgYXJlIGlnbm9yZWQuDQoNCg0KDQpJbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHBvbGlj
eSBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0KDQpTdGVwIDE6IFdpdGhpbiBhIHNpbmdsZSBh
ZGRyZXNzLWZhbWlseS9hbGdvcml0aG0vdG9wb2xvZ3kgc29ydCBlbnRyaWVzDQoNCmJhc2VkIG9u
IHByZWZlcmVuY2UNCg0KU3RlcCAyOiBTdGFydGluZyB3aXRoIHRoZSBsb3dlc3QgcHJlZmVyZW5j
ZSBlbnRyaWVzLCByZXNvbHZlIHByZWZpeCBjb25mbGljdHMNCg0KdXNpbmcgdGhlIGFib3ZlIHBy
ZWZlcmVuY2UgcnVsZS4gVGhlIG91dHB1dCBpcyBhbiBhY3RpdmUgcG9saWN5IHBlciB0b3BvbG9n
eS4NCg0KU3RlcCAzOiBUYWtlIHRoZSBvdXRwdXRzIGZyb20gU3RlcCAyIGFuZCBhZ2FpbiBzb3J0
IHRoZW0gYnkgcHJlZmVyZW5jZQ0KDQpTdGVwIDQ6IFN0YXJ0aW5nIHdpdGggdGhlIGxvd2VzdCBw
cmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgU0lEIGNvbmZsaWN0cw0KDQp1c2luZyB0aGUgYWJv
dmUgcHJlZmVyZW5jZSBydWxlDQoNCg0KDQpUaGUgb3V0cHV0IGZyb20gU3RlcCA0IGlzIHRoZW4g
dGhlIGN1cnJlbnQgQWN0aXZlIFBvbGljeS4NCg0KDQoNCkhlcmUgYXJlIGEgZmV3IGV4YW1wbGVz
LiBFYWNoIG1hcHBpbmcgZW50cnkgaXMgcmVwcmVzZW50ZWQgYnkgdGhlIHR1cGxlOg0KDQooUHJl
ZmVyZW5jZSwgUHJlZml4L21hc2sgSW5kZXggcmFuZ2UgPCM+KQ0KDQoNCg0KRXhhbXBsZSAxOg0K
DQoNCg0KMS4gKDE1MCwgMS4xLjEuMS8zMjxodHRwOi8vMS4xLjEuMS8zMj4gMTAwIHJhbmdlIDEw
MCkNCg0KMi4gKDE0OSwgMS4xLjEuMTAvMzI8aHR0cDovLzEuMS4xLjEwLzMyPiAyMDAgcmFuZ2Ug
MjAwKQ0KDQozLiAoMTQ4LCAxLjEuMS4xMDEvMzI8aHR0cDovLzEuMS4xLjEwMS8zMj4gNTAwIHJh
bmdlIDEwKQ0KDQoNCg0KRW50cnkgMyBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBpdCBpcyBpZ25v
cmVkLg0KDQpFbnRyeSAyIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDEsIGl0IGlzIGlnbm9yZWQuDQoN
CkFjdGl2ZSBwb2xpY3k6DQoNCg0KDQooMTUwLCAxLjEuMS4xLzMyPGh0dHA6Ly8xLjEuMS4xLzMy
PiAxMDAgcmFuZ2UgMTAwKQ0KDQoNCg0KRXhhbXBsZSAyOg0KDQoNCg0KMS4gKDE1MCwgMS4xLjEu
MS8zMjxodHRwOi8vMS4xLjEuMS8zMj4gMTAwIHJhbmdlIDEwMCkNCg0KMi4gKDE1MCwgMS4xLjEu
MTAvMzI8aHR0cDovLzEuMS4xLjEwLzMyPiAyMDAgcmFuZ2UgMjAwKQ0KDQozLiAoMTUwLCAxLjEu
MS4xMDEvMzI8aHR0cDovLzEuMS4xLjEwMS8zMj4gNTAwIHJhbmdlIDEwKQ0KDQo0LiAoMTUwLCAy
LjIuMi4xLzMyPGh0dHA6Ly8yLjIuMi4xLzMyPiAxMDAwIHJhbmdlIDEpDQoNCg0KDQpFbnRyeSAx
IGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIsIGJvdGggYXJlIG1hcmtlZCBhcyBpZ25vcmUuDQoNCkVu
dHJ5IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGFzIGlnbm9yZS4NCg0K
RW50cnkgNCBoYXMgbm8gY29uZmxpY3RzIHdpdGggYW55IGVudHJpZXMNCg0KDQoNCkFjdGl2ZSBw
b2xpY3k6DQoNCigxNTAsIDIuMi4yLjEvMzI8aHR0cDovLzIuMi4yLjEvMzI+IDEwMDAgcmFuZ2Ug
MSkNCg0KDQoNCkV4YW1wbGUgMzoNCg0KDQoNCjEuICgxNTAsIDEuMS4xLjEvMzI8aHR0cDovLzEu
MS4xLjEvMzI+IDEwMCByYW5nZSA1MDApDQoNCjIuICgxNTAsIDEuMS4xLjEwLzMyPGh0dHA6Ly8x
LjEuMS4xMC8zMj4gMjAwIHJhbmdlIDIwMCkNCg0KMy4gKDE1MCwgMS4xLjEuMTAxLzMyPGh0dHA6
Ly8xLjEuMS4xMDEvMzI+IDUwMCByYW5nZSAxMCkNCg0KNC4gKDE1MCwgMi4yLjIuMS8zMjxodHRw
Oi8vMi4yLjIuMS8zMj4gMTAwMCByYW5nZSAxKQ0KDQoNCg0KRW50cnkgMSBjb25mbGljdHMgd2l0
aCBlbnRyaWVzIDIsIDMsIGFuZCAgNC4gQWxsIGVudHJpZXMgYXJlIG1hcmtlZCBpZ25vcmUuDQoN
Cg0KDQpBY3RpdmUgcG9saWN5Og0KDQpFbXB0eQ0KDQoNCg0KRXhhbXBsZSA0Og0KDQoNCg0KMS4g
KDE1MCwgMS4xLjEuMS8zMjxodHRwOi8vMS4xLjEuMS8zMj4gMTAwIHJhbmdlIDEwKQ0KDQoyLiAo
MTQ5LCAxLjEuMS4xMC8zMjxodHRwOi8vMS4xLjEuMTAvMzI+IDIwMCByYW5nZSAzMDApDQoNCjMu
ICgxNDksIDEuMS4xLjEwMS8zMjxodHRwOi8vMS4xLjEuMTAxLzMyPiA1MDAgcmFuZ2UgMTApDQoN
CjQuICgxNDgsIDIuMi4yLjEvMzI8aHR0cDovLzIuMi4yLjEvMzI+IDEwMDAgcmFuZ2UgMSkNCg0K
DQoNCkVudHJ5IDQgY29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQgaXMgbWFya2VkIGlnbm9yZS4N
Cg0KRW50cnkgMiBjb25mbGljdHMgd2l0aCBlbnRyeSAzLiBFbnRyaWVzIDIgYW5kIDMgYXJlIG1h
cmtlZCBpZ25vcmUuDQoNCg0KDQpBY3RpdmUgcG9saWN5Og0KDQooMTUwLCAxLjEuMS4xLzMyPGh0
dHA6Ly8xLjEuMS4xLzMyPiAxMDAgcmFuZ2UgMTApDQoNCg0KDQoNCg0KDQoNCg0KDQpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0Kc3ByaW5nIG1haWxpbmcg
bGlzdA0Kc3ByaW5nQGlldGYub3JnPG1haWx0bzpzcHJpbmdAaWV0Zi5vcmc+DQpodHRwczovL3d3
dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwcmluZw0KDQoNCg==

--_000_4A79394211F1AF4EB57D998426C9340DD4B11684US70UWXCHMBA01z_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K
CXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMg
MiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1
IDUgMiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglw
YW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0K
cC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0K
CW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5
OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVu
ZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0
eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJs
aW5lO30NCnANCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDph
dXRvOw0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJ
bWFyZ2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVz
IE5ldyBSb21hbiIsc2VyaWY7fQ0KcC5Nc29MaXN0UGFyYWdyYXBoLCBsaS5Nc29MaXN0UGFyYWdy
YXBoLCBkaXYuTXNvTGlzdFBhcmFncmFwaA0KCXttc28tc3R5bGUtcHJpb3JpdHk6MzQ7DQoJbWFy
Z2luLXRvcDowaW47DQoJbWFyZ2luLXJpZ2h0OjBpbjsNCgltYXJnaW4tYm90dG9tOjBpbjsNCglt
YXJnaW4tbGVmdDouNWluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIu
MHB0Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCnAubXNvbm9ybWFs
MCwgbGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7bXNvLXN0eWxlLW5hbWU6bXNvbm9y
bWFsOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZTox
Mi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7fQ0Kc3Bhbi5tNjkw
MTI5NzM1MjM3MDc0NjI2NWdtYWlsLQ0KCXttc28tc3R5bGUtbmFtZTptXzY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC07fQ0KcC5tNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgsIGxpLm02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05
MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCwgZGl2Lm02OTAxMjk3MzUyMzcwNzQ2
MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaA0KCXttc28tc3R5
bGUtbmFtZTptXzY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29saXN0cGFyYWdyYXBoOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdo
dDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0K
CWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7
fQ0KcC5tNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3Bs
YWludGV4dCwgbGkubTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQsIGRpdi5tNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dA0KCXttc28tc3R5bGUtbmFtZTptXzY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQ7DQoJbXNvLW1hcmdp
bi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0OjBpbjsNCgltc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowaW47DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZh
bWlseToiVGltZXMgTmV3IFJvbWFuIixzZXJpZjt9DQpzcGFuLkVtYWlsU3R5bGUyMg0KCXttc28t
c3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQXJpYWwiLHNhbnMtc2Vy
aWY7DQoJY29sb3I6d2luZG93dGV4dDsNCglmb250LXdlaWdodDpub3JtYWw7DQoJZm9udC1zdHls
ZTpub3JtYWw7DQoJdGV4dC1kZWNvcmF0aW9uOm5vbmUgbm9uZTt9DQouTXNvQ2hwRGVmYXVsdA0K
CXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fu
cy1zZXJpZjt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4waW47DQoJbWFy
Z2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpX
b3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZpbml0aW9ucyAqLw0KQGxpc3QgbDANCgl7bXNvLWxp
c3QtaWQ6MTQ0MDIyMjgxNjsNCgltc28tbGlzdC10eXBlOmh5YnJpZDsNCgltc28tbGlzdC10ZW1w
bGF0ZS1pZHM6LTExNzI3ODAwMTAgLTIzNTYwODAwNiA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5ODY4
OSA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5Mzt9DQpAbGlzdCBs
MDpsZXZlbDENCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YWxwaGEtbG93ZXI7DQoJbXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0uMjVpbjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6QXJpYWw7DQoJbXNvLWZh
cmVhc3QtZm9udC1mYW1pbHk6Q2FsaWJyaTsNCgltc28taGFuc2ktZm9udC1mYW1pbHk6QXJpYWw7
DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6QXJpYWw7fQ0KQGxpc3QgbDA6bGV2ZWwyDQoJe21zby1s
ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZl
bC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0
LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3IixzZXJpZjt9DQpAbGlz
dCBsMDpsZXZlbDMNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZl
bC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVy
LXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5Oldpbmdk
aW5nczt9DQpAbGlzdCBsMDpsZXZlbDQNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0
Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28t
bGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQt
ZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3Jt
YXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7
DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsN
Cglmb250LWZhbWlseToiQ291cmllciBOZXciLHNlcmlmO30NCkBsaXN0IGwwOmxldmVsNg0KCXtt
c28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1z
by1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsN
Cgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGww
OmxldmVsNw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRl
eHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9z
aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6U3ltYm9sO30N
CkBsaXN0IGwwOmxldmVsOA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNv
LWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVt
YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OiJD
b3VyaWVyIE5ldyIsc2VyaWY7fQ0KQGxpc3QgbDA6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXIt
Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9w
Om5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0u
MjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0Kb2wNCgl7bWFyZ2luLWJvdHRvbTowaW47
fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTowaW47fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28g
OV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+
DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5
b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9v
OnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4t
VVMiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24x
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPkhpIFJvYmVydCw8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5JbiBm
YWN0IHlvdSBhcmUgdG91Y2hpbmcgb24gdGhlIHBvaW50IEkgYW0gdHJ5aW5nIHRvIG1ha2UgaW4g
bXkgY29tbWVudCAoMSkgb24gdGhlIHNsaWRlcy4gUmVhZGluZyB0aGlzIGRyYWZ0LCBJIGhhdmUg
dGhlIGltcHJlc3Npb24gdGhlIGF1dGhvcnMgYXJlIHRyeWluZyB0byBhZGRyZXNzIFNJRCBjb25m
bGljdA0KIHJlc29sdXRpb24gb3V0c2lkZSBvZiB0aGUgbmF0dXJhbCBwZXIgcHJlZml4IHJlc29s
dXRpb24gb24gdGhlIHJvdXRlci4gV2hpbGUgaW4gdGhlb3J5IHRoaXMgY2FuIGJlIGRvbmUgYnV0
IGl0IG1ha2VzIHRoZSBhbGdvcml0aG0gbXVjaCBtb3JlIGNvbXBsZXggdHJ5aW5nIHRvIGNvbXBh
cmUgb3ZlcmxhcHBpbmcgU1JNUyBTSUQgZW50cmllcyB3aXRoIGRpZmZlcmVudCByYW5nZSBzaXpl
cy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNl
cmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90
OyxzYW5zLXNlcmlmIj5UaGVyZSBhcmUgdHdvIHNvdXJjZXMgb2YgYWR2ZXJ0aXNlbWVudCBvZiB0
aGUgU0lEIGluZm9ybWF0aW9uOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29M
aXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRlbnQ6LS4yNWluO21zby1saXN0OmwwIGxldmVs
MSBsZm8xIj48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBw
dDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj48c3BhbiBzdHlsZT0i
bXNvLWxpc3Q6SWdub3JlIj5hLjxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5l
dyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwv
c3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6
JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+UGVyLXByZWZpeCBTSUQgZW50cmllcyByZWNl
aXZlZCBpbiB0aGUgJm5ic3A7cHJlZml4IFNJRCBzdWItVExWIHdpdGhpbiBhIFByZWZpeCBUTFYg
KElTLUlTIElQIFJlYWNoIFRMViBvciBPU1BGIEV4dGVuZGVkIFByZWZpeCBUTFYpLg0KPG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0
LWluZGVudDotLjI1aW47bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0TGlz
dHNdPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFs
JnF1b3Q7LHNhbnMtc2VyaWYiPjxzcGFuIHN0eWxlPSJtc28tbGlzdDpJZ25vcmUiPmIuPHNwYW4g
c3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsNCjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNl
cmlmIj5TUk1TIGVudHJpZXMgd2hpY2ggYWR2ZXJ0aXNlIFNJRCBpbmZvcm1hdGlvbiBmb3IgYSBy
YW5nZSBvZiBwcmVmaXhlcy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlh
bCZxdW90OyxzYW5zLXNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTom
cXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5UaGUgcmFuZ2Ugc2l6ZSBvZiB0aGUgU1JNUyBl
bnRyeSBlbnRpcmVseSBkZXBlbmRzIG9uIGhvdyB0aGUgdXNlciB3YW50cyB0byBhZHZlcnRpc2Ug
dGhlIGluZm9ybWF0aW9uIGFuZCBoYXMgbm8gbWVhbmluZyBmb3IgdGhlIHJlc29sdXRpb24uIEZy
b20gYSByb3V0ZXLigJlzIHBlcnNwZWN0aXZlLCB0aGUgU0lEDQogaW5mb3JtYXRpb24gaXMgYXNz
b2NpYXRlZCB3aXRoIGEgcHJlZml4IHJlZ2FyZGxlc3MgaG93IGl0IGlzIGFkdmVydGlzZWQuIDxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNh
bnMtc2VyaWYiPlRoZSBwZXItcHJlZml4IFNJRCBpbmZvcm1hdGlvbiBpcyBwcmVmZXJyZWQgdG8g
dGhlIFNSTVMgU0lEIGluZm9ybWF0aW9uLiBBbmQgdGh1cyBhIHNpbXBsZSBhbGdvcml0aG0gd2hp
Y2ggYXQgdGhlIHRvcCBsZXZlbCBzZWxlY3RzIHRoZSBTSUQgYW1vbmcgc2V0IChhKSBiYXNlZCBv
biB0aGUgc291cmNlDQogYWR2ZXJ0aXNpbmcgcm91dGVyIGFuZCBpZiBlbXB0eSBzZWxlY3RzIHRo
ZSBTSUQgYW1vbmcgc2V0IChiKSBiYXNlZCBvbiB0aGUgU1JNUyBwcmVmZXJlbmNlIGFuZCB0aGVu
IGJhc2VkIG9uIHRoZSBTUk1TIHJvdXRlci1pZCBpZiBzYW1lIHByZWZlcmVuY2Ugd2lsbCB3b3Jr
LiAmbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90Oyxz
YW5zLXNlcmlmIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlh
bCZxdW90OyxzYW5zLXNlcmlmIj5SZWdhcmRzLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPk11c3RhcGhhLjxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0
O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlk
IGJsdWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHls
ZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxIDEuMHB0O3BhZGRpbmc6My4w
cHQgMGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlm
Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmIj4gcnJhc3p1a0BnbWFpbC5jb20gW21h
aWx0bzpycmFzenVrQGdtYWlsLmNvbV0NCjxiPk9uIEJlaGFsZiBPZiA8L2I+Um9iZXJ0IFJhc3p1
azxicj4NCjxiPlNlbnQ6PC9iPiBUaHVyc2RheSwgRGVjZW1iZXIgMjIsIDIwMTYgNToyOSBQTTxi
cj4NCjxiPlRvOjwvYj4gTGVzIEdpbnNiZXJnIChnaW5zYmVyZykgJmx0O2dpbnNiZXJnQGNpc2Nv
LmNvbSZndDs8YnI+DQo8Yj5DYzo8L2I+IEFpc3Nhb3VpLCBNdXN0YXBoYSAoTm9raWEgLSBDQSkg
Jmx0O211c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNvbSZndDs7IHNwcmluZ0BpZXRmLm9yZzxicj4N
CjxiPlN1YmplY3Q6PC9iPiBSZTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEg
U2ltcGxlciBQcm9wb3NhbDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFs
JnF1b3Q7LHNhbnMtc2VyaWYiPkxlcyw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7
QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPkFmdGVyIG1lbnRhbCByZXNldCBJIGNvbmNs
dWRlIHRoYXQgcGVyaGFwcyBldmVuIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIGRyYWZ0IGlzIHF1
ZXN0aW9uYWJsZSBhcyBpbiByZWFsIGxpZmUgaXQgYXBwbGllcyB0byBiZSBxdWl0ZSBhbiB1bnJl
YWxpc3RpYyBzY2VuYXJpbyB0byBoYXZlIGEgc2l0dWF0aW9uIHdoZXJlIG1vcmUgdGhlbg0KIG9u
ZSBwcm90b2NvbCBpcyB1c2VkICppbiB0aGUgc2FtZSB0aW1lKiBhcyBhY3RpdmUgaW4gZm9yd2Fy
ZGluZyBmb3IgYW4gZXhhY3Qgc2FtZSBJUCBwcmVmaXguJm5ic3A7PG86cD48L286cD48L3NwYW4+
PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZv
bnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5ic3A7PC9vOnA+
PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5MYXN0IHRpbWUg
SSBjaGVja2VkIFNJRHMgYXJlIG1lYW5pbmdsZXNzIHdpdGhvdXQgYSBwcmVmaXggdGhleSBhcmUg
YXR0YWNoZWQgdG8gYW5kIGl0IGlzIGEgcHJlZml4IHRoZXkgYWNjb21wYW55IHRvIGluZGljYXRl
IHdoaWNoIFNJRCBzaG91bGQgYmUgdXNlZCBvbiBhIGdpdmVuIG5vZGUuJm5ic3A7PG86cD48L286
cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5U
aGVyZWZvciBpZiB5b3UgY29uc2lkZXIgdGhhdCB0b2RheSBtb3N0IGltcGxlbWVudGF0aW9ucyBw
cmV0dHkgd2VsbCBjYW4gaGFuZGxlIG92ZXJsYXBwaW5nIHByZWZpeGVzIGZyb20gbXVsdGlwbGUg
c291cmNlcyB3aGF0IHJlYWwgcHJvYmxlbSBpcyB0aGlzIGRyYWZ0IHNvbHZpbmcgPyZuYnNwOzxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj48
bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z
ZXJpZiI+QXJlIHlvdSB0cnlpbmcgdG8gY3JlYXRlIGEgZm9yd2FyZGluZyBncmFwaCBieSBTSURz
IG9ubHkgZGV0YWNoaW5nIHRoZW0gZnJvbSBJUCBwcmVmaXhlcyBhbGwgdG9nZXRoZXIgPzxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz
cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJp
ZiI+Q2hlZXJzLDxicj4NClIuPG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFs
JnF1b3Q7LHNhbnMtc2VyaWYiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+T24gVGh1LCBEZWMgMjIsIDIwMTYgYXQgMTA6
MzIgUE0sIExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpICZsdDs8YSBocmVmPSJtYWlsdG86Z2luc2Jl
cmdAY2lzY28uY29tIiB0YXJnZXQ9Il9ibGFuayI+Z2luc2JlcmdAY2lzY28uY29tPC9hPiZndDsg
d3JvdGU6PG86cD48L286cD48L3A+DQo8YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9y
ZGVyLWxlZnQ6c29saWQgI0NDQ0NDQyAxLjBwdDtwYWRkaW5nOjBpbiAwaW4gMGluIDYuMHB0O21h
cmdpbi1sZWZ0OjQuOHB0O21hcmdpbi1yaWdodDowaW4iPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj5Sb2JlcnQg4oCT
PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMt
c2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+WW91IGhhdmUg
YSBjb21wbGV0ZSBtaXN1bmRlcnN0YW5kaW5nIG9mIHJvbGVzIGhlcmUuPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+SG93IHRoZSBvd25lciBvZiBhIHJvdXRl
IG1heSBiZSByZXByZXNlbnRlZCBpbiB0aGUgUklCIGlzbuKAmXQgaW1wYWN0ZWQgYnkgU1JNUyBv
ciBjb25mbGljdCByZXNvbHV0aW9uLg0KIE5vciBpcyB0aGUgZGV0ZXJtaW5hdGlvbiBvZiB3aGlj
aCByb3V0ZSBpcyB0aGUgYmVzdCByb3V0ZS4gV2UgYXJlIG9ubHkgZGV0ZXJtaW5pbmcgd2hldGhl
ciB0byB1c2Ugb3Igbm90IHVzZSBhIFNJRCB3aGljaCB3YXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBw
cmVmaXggYnkgc29tZSBhZHZlcnRpc2VtZW50Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNl
cmlmO2NvbG9yOiMxRjQ5N0QiPlRoZSBJbnRyb2R1Y3Rpb24gdG8gdGhlIGRyYWZ0IHN0YXRlczo8
L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1z
ZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj7igJxUaGUgcHJv
YmxlbSB0byBiZSBhZGRyZXNzZWQgaXMgcHJvdG9jb2wgaW5kZXBlbmRlbnQgaS5lLiwgc2VnbWVu
dDwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5z
LXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyByZWxhdGVkIGFkdmVydGlzZW1lbnRz
IG1heSBiZSBvcmlnaW5hdGVkIGJ5IG11bHRpcGxlIG5vZGVzIHVzaW5nPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+Jm5ic3A7Jm5ic3A7IGRpZmZlcmVudCBwcm90b2NvbHMgYW5kIHlldCB0aGUgY29uZmxp
Y3QgcmVzb2x1dGlvbiBNVVNUIGJlIHRoZSBzYW1lPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7
Jm5ic3A7IG9uIGFsbCBub2RlcyByZWdhcmRsZXNzIG9mIHRoZSBwcm90b2NvbCB1c2VkIHRvIHRy
YW5zcG9ydCB0aGU8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8i
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssc2Fucy1zZXJpZjtjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsgYWR2ZXJ0aXNlbWVu
dHMu4oCdPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9
Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+UGxl
YXNlIGRvIGEgbWVudGFsIHJlc2V0Lg0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEu
MHB0O2ZvbnQtZmFtaWx5OldpbmdkaW5ncztjb2xvcjojMUY0OTdEIj5KPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFG
NDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7IExlczwvc3Bhbj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2Nv
bG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h
bHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJs
dWUgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0i
Ym9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQg
MGluIDBpbiAwaW4iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w
LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhvbWEmcXVvdDssc2Fucy1zZXJpZiI+
RnJvbTo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O1RhaG9tYSZxdW90OyxzYW5zLXNlcmlmIj4NCjxhIGhyZWY9Im1haWx0bzpycmFzenVr
QGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnJyYXN6dWtAZ21haWwuY29tPC9hPiBbbWFpbHRv
OjxhIGhyZWY9Im1haWx0bzpycmFzenVrQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnJyYXN6
dWtAZ21haWwuY29tPC9hPl0NCjxiPk9uIEJlaGFsZiBPZiA8L2I+Um9iZXJ0IFJhc3p1azxicj4N
CjxiPlNlbnQ6PC9iPiBUaHVyc2RheSwgRGVjZW1iZXIgMjIsIDIwMTYgMTE6NTIgQU08YnI+DQo8
Yj5Ubzo8L2I+IExlcyBHaW5zYmVyZyAoZ2luc2JlcmcpPGJyPg0KPGI+Q2M6PC9iPiBBaXNzYW91
aSwgTXVzdGFwaGEgKE5va2lhIC0gQ0EpOyA8YSBocmVmPSJtYWlsdG86c3ByaW5nQGlldGYub3Jn
IiB0YXJnZXQ9Il9ibGFuayI+DQpzcHJpbmdAaWV0Zi5vcmc8L2E+PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48YnI+DQo8Yj5TdWJqZWN0
OjwvYj4gUmU6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJv
cG9zYWw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRp
dj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PGRpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LWZh
bWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5IaSBMZXMsPC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1t
YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHls
ZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5
bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48
c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+T24g
IzEgSSBhbSBhbHNvIHdpdGggTXVzdGFwaGEgaGVyZS4gRm9yIGNsYXJpdHkgb2YgdGhpcyBkaXNj
dXNzaW9uIGNhbiB5b3UgZW51bWVyYXRlIHdoZW4gZnJvbSBSSUIgdG8gRklCL0xGSUIgeW91IGFy
ZSBpbnN0YWxsaW5nIHRoZQ0KIGV4YWN0IHNhbWUgYWN0aXZlIHByZWZpeCBmcm9tIG1vcmUgdGhl
biBvbmUgcHJvZHVjZXIgPyBJcyBTUk1TIHNvcnQgb2Ygem9tYmllIGhlcmUgYW5kIG5vdCB0cmVh
dGVkIGFzIHJlYWwgcm91dGUgcHJvZHVjZXIgaGVuY2Ugd2UgaGF2ZSBhbiBpc3N1ZSA/IEFuZCB0
aGUgaXNzdWUgaXMgb25seSB3aXRoIGNvbmZsaWN0cyBvZiBTUk1TICYjNDM7IHJlYWwgcm91dGUg
cHJvZHVjZXIgPyZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0FyaWFs
JnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPk9uICMzIHlvdSBzYWlkIHRoYXQNCjxpPiZxdW90
O3dpdGggcmVkaXN0cmlidXRpb24vcm91dGUgbGVha2luZyB0aGUgc291cmNlIG9mIGFuIGFkdmVy
dGlzZW1lbnQgbWF5IGFwcGVhciB0byBiZSBkaWZmZXJlbnQgb24gZGlmZmVyZW50IHJvdXRlcnMm
cXVvdDs8L2k+IHRoYXQgaXMgdmVyeSB0cnVlLiBJbiBmYWN0IHdpdGggc2ltcGxlIHN0YXRpYyBy
b3V0ZSBvciBzdGF0aWMgbGFiZWwgY29uZmlndXJlZCBvbiBhIHJvdXRlciB0aGUgUklCIGFuZCBG
SUIgb24gdGhhdCByb3V0ZXIgd2lsbCBiZSBkaWZmZXJlbnQNCiB0aGVuIFJJQiBhbmQgRklCIG9u
IHRoZSBvdGhlciByb3V0ZXJzIHdpdGhvdXQgc3VjaCBzdGF0aWMgcm91dGUuIEFuZCB0aGUgcG9p
bnQgaXMgdGhhdCBzdWNoIHN0YXRpYyByb3V0ZSBvciBsYWJlbCBpcyB0aGVyZSBmb3IgYSByZWFz
b24geW91IG1heSBub3Qga25vdyBhYm91dC4gU28gc3RydWdnbGluZyBmb3IgZGF0YSBwbGFuZSBj
b25zaXN0ZW5jeSDigItkZWxpYmVyYXRlbHkgZXhjbHVkaW5nIHNvdXJjZSZuYnNwO3doZW4gb3Bl
cmF0aW9uYWwgbmVlZHMgcmVxdWlyZQ0KIG90aGVyd2lzZSBpcyBub3QgcmVhbGx5IHRoYXQgbXVj
aCBoZWxwZnVsIEkgYW0gYWZyYWlkLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRp
dj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt
c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtZmFt
aWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPkdyZWV0aW5ncyw8L3NwYW4+PG86cD48
L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNv
LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0
eWxlPSJmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5Sb2JlcnQuJm5i
c3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs
dDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z
ZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPk9uIFRodSwgRGVjIDIyLCAyMDE2IGF0IDg6MzcgUE0sIExlcyBHaW5zYmVy
ZyAoZ2luc2JlcmcpICZsdDs8YSBocmVmPSJtYWlsdG86Z2luc2JlcmdAY2lzY28uY29tIiB0YXJn
ZXQ9Il9ibGFuayI+Z2luc2JlcmdAY2lzY28uY29tPC9hPiZndDsgd3JvdGU6PG86cD48L286cD48
L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImNv
bG9yOiMxRjQ5N0QiPk11c3RhcGhhIC08L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PG86
cD48L286cD48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBi
bHVlIDEuNXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9
ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0I1QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0
IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv
cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LHNhbnMtc2VyaWYi
PkZyb206PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWls
eTomcXVvdDtUYWhvbWEmcXVvdDssc2Fucy1zZXJpZiI+IHNwcmluZyBbbWFpbHRvOjxhIGhyZWY9
Im1haWx0bzpzcHJpbmctYm91bmNlc0BpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnNwcmluZy1i
b3VuY2VzQGlldGYub3JnPC9hPl0NCjxiPk9uIEJlaGFsZiBPZiA8L2I+QWlzc2FvdWksIE11c3Rh
cGhhIChOb2tpYSAtIENBKTxicj4NCjxiPlNlbnQ6PC9iPiBUaHVyc2RheSwgRGVjZW1iZXIgMjIs
IDIwMTYgODoxMCBBTTxicj4NCjxzcGFuIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWls
LSI+PGI+VG86PC9iPiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKTsgPGEgaHJlZj0ibWFpbHRvOnNw
cmluZ0BpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPg0Kc3ByaW5nQGlldGYub3JnPC9hPjwvc3Bh
bj48YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUmU6IFtzcHJpbmddIFNJRCBDb25mbGljdCBSZXNvbHV0
aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWw8L3NwYW4+PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjwv
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRv
O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+SGkgTGVzLDwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0
bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+SSByZWFkIHNsaWRl
cyAxNy0yMSBvZiB0aGUgZG9jdW1lbnQgeW91IHJlZmVyZW5jZWQgYmVsb3cgYW5kIEkgaGF2ZSB0
aGUgZm9sbG93aW5nIGNvbW1lbnRzOjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+MS48L3NwYW4+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1z
ZXJpZiI+UGFnZSAxNywg4oCcT3JkZXIgTWF0dGVycyAtIFByZWZpeCB2cyBTSUQgQ29uZmxpY3Ti
gJ0uPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1
Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJp
ZiI+V2hlbiB5b3UgcGVyZm9ybSByZXNvbHV0aW9uIG9uJm5ic3A7IGEgcGVyIHByZWZpeCBiYXNp
cywgcHJlZml4IGNvbmZsaWN0cyBhcmUgbmF0dXJhbGx5IHByb2Nlc3NlZCBmaXJzdCBmb2xsb3dl
ZCBieSBTSUQgY29uZmxpY3RzDQogYWNyb3NzIGRpZmZlcmVudCBwcmVmaXhlcy4gU28gdGhlIG9y
ZGVyaW5nIGlzc3VlIGRlc2NyaWJlZCBpcyBvbmx5IHNwZWNpZmljIGlmIHlvdSBkZWNpZGVkIHRv
IHJlc29sdmUgY29uZmxpY3RpbmcgU0lEIGVudHJpZXMgb3V0c2lkZSBvZiB0aGUgbmF0dXJhbCBw
cmVmaXggcmVzb2x1dGlvbiBieSBhIHJvdXRlci4NCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1z
b2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFu
PjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05
MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PGI+PGk+PHNwYW4gc3R5bGU9ImNv
bG9yOiMxRjQ5N0QiPltMZXM6XSBXaGF0IG1heSBzZWVtIOKAnG5hdHVyYWzigJ0gdG8geW91IG1p
Z2h0IG5vdCB0byBzb21lb25lIGVsc2UuIEkgZG9u4oCZdCBjYXJlIHRvIGRlYmF0ZSB0aGF0IHBv
aW50LiBXaGF0IGlzIGJlaW5nIGlsbHVzdHJhdGVkIGhlcmUgaXMgdGhhdCBpbiBvcmRlcg0KIHRv
IHByb3ZpZGUgYSBub3JtYXRpdmUgc3BlY2lmaWNhdGlvbiB0aGF0IOKAkyBpZiBmb2xsb3dlZCDi
gJMgZ3VhcmFudGVlcyBpbnRlcm9wZXJhYmlsaXR5IHdlIGhhdmUgdG8gc3BlY2lmeSB0aGUgb3Jk
ZXIgaW4gd2hpY2ggY29uZmxpY3RzIGFyZSBwcm9jZXNzZWQgb3RoZXJ3aXNlIGRpZmZlcmVudCBy
ZXN1bHRzIG1heSBiZSBvYnRhaW5lZC48L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1z
b2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPjIuPC9zcGFuPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOw0KPC9zcGFuPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNh
bnMtc2VyaWYiPlBhZ2UgMTgsIOKAnE9yZGVyIE1hdHRlcnM6IERlcml2ZWQgdnMgbm9uLWRlcml2
ZWTigJMgcHJlZml4IGNvbmZsaWN04oCdLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNz
PSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3Rw
YXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPkl0IHNlZW1zIHRvIG1lIHRoaXMgaXNzdWUgaXMgYW4g
YXJ0aWZhY3Qgb2YgdGhlIHNwZWNpZmljIGFsZ29yaXRobSB1c2VkIHRvIHJlc29sdmUgY29uZmxp
Y3RzLiBCZWNhdXNlIHRoZSBhbGdvcml0aG0gdXNlcw0KIHBhcmFtZXRlcnMgc3VjaCBhcyDigJxS
YW5nZSAoc3RhcnQgdyBzbWFsbGVzdCnigJ0gdGhlbiBvYnZpb3VzbHkgZGVyaXZlZCBTUk1TIGVu
dHJpZXMgd2lsbCBsZW5kIGEgZGlmZmVyZW50IHJlc3VsdCB0aGFuIG9yaWdpbmFsIFNSTVMgZW50
cmllcy4NCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0
NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMt
c2VyaWYiPldpdGggdGhlIHByZS1wcmVmaXggcmVzb2x1dGlvbiwgdGhlIG9ubHkgaW5mb3JtYXRp
b24ga2VwdCBmcm9tIHRoZSBvcmlnaW5hbCBTUk1TIGVudHJ5IGlzIHRoZSBwcmVmZXJlbmNlIGFu
ZCB0aGUgYWR2ZXJ0aXNpbmcNCiBvciBvd25lciByb3V0ZXIuIEFueXRoaW5nIGVsc2UgaXMgbm90
IHVzZWQuIEl0IHNlZW1zIHRvIG1lIGEgc2ltcGxlIGFsZ29yaXRobSBiYXNlZCBvbiBwcmVmZXJl
bmNlIGZpcnN0IHRoZW4gZm9sbG93ZWQgYnkgc29tZSBydWxlIG9uIHNlbGVjdGluZyB0aGUgYWR2
ZXJ0aXNpbmcgcm91dGVyIGlmIGNvbmZsaWN0cyBleGlzdCB3aXRoaW4gdGhlIHNhbWUgcHJlZmVy
ZW5jZSB3b3VsZCB3b3JrLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5
NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1
b3Q7LHNhbnMtc2VyaWY7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvbGlzdHBhcmFncmFwaCI+PGI+PGk+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPltM
ZXM6XSBZb3UgaGF2ZSBpbXBsZW1lbnRlZCB0aGluZ3MgaW4gYSBjZXJ0YWluIHdheS4gU29tZW9u
ZSBlbHNlIG1pZ2h0IGNob29zZSB0byBpbXBsZW1lbnQgaW4gYSBkaWZmZXJlbnQgd2F5LiBBIG5v
cm1hdGl2ZSBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IChhbmQNCiBzaG91bGQgbm90KSBjb25zdHJh
aW4gYW4gaW1wbGVtZW50YXRpb24uIFdoYXQgaXMgYmVpbmcgaWxsdXN0cmF0ZWQgaGVyZSBpcyB0
aGF0IGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCByZXRhaW4gdGhlIHVuZGVyaXZlZCBl
bnRyeSAoaW4gd2hhdGV2ZXIgaW50ZXJuYWwgZm9ybSBpdCBjaG9vc2VzKSBkaWZmZXJlbnQgcmVz
dWx0cyB3aWxsIGJlIG9idGFpbmVkIGJlY2F1c2UgdGhlIHByZWZlcmVuY2UgYWxnb3JpdGhtIGRl
cGVuZHMgb24NCiBjb21wYXJpbmcgdGhlIHVuZGVyaXZlZCByYW5nZXMuPC9zcGFuPjwvaT48L2I+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48c3BhbiBzdHlsZT0iY29sb3I6IzFG
NDk3RCI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDss
c2Fucy1zZXJpZiI+My48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7
Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+RmluYWxseSwgdGhlcmUg
aXMgc29tZXRoaW5nIHdoaWNoIGhhcyBub3QgYmVlbiBhZGRyZXNzZWQgaW4gdGhlIHNsaWRlcy4g
VGhlcmUgaXMgc3RpbGwgYSBwb3NzaWJpbGl0eSBvZiBjb25mbGljdGluZyBlbnRyaWVzIGFtb25n
IFNJRHMgYWR2ZXJ0aXNlZCB1c2luZyB0aGUgcHJlZml4IFNJRCBzdWItVExWIHdpdGhpbiBhIFBy
ZWZpeA0KIFRMViAoSVMtSVMgSVAgUmVhY2ggVExWIG9yIE9TUEYgRXh0ZW5kZWQgUHJlZml4IFRM
VikuIEEgc2ltcGxlIHJ1bGUgc2VsZWN0aW5nIHRoZSBhZHZlcnRpc2luZyByb3V0ZXIgc2hvdWxk
IGFsc28gd29yayBmaW5lIGhlcmUuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t
LWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVv
dDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmO2NvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpw
PjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1h
bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PGI+PGk+PHNwYW4gc3R5bGU9ImNv
bG9yOiMxRjQ5N0QiPltMZXM6XSBObyDigJMgc291cmNlIG9mIGFuIGFkdmVydGlzZW1lbnQgaGFz
IGJlZW4gcXVpdGUNCjwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PGI+PGk+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O0Fy
aWFsJnF1b3Q7LHNhbnMtc2VyaWYiPuKAi+KAizwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9w
Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0
OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPjxpPmRlbGliZXJhdGVseSBleGNs
dWRlZCBmcm9tIHRoZSBwcmVmZXJlbmNlIGFsZ29yaXRobS4gV2l0aCByZWRpc3RyaWJ1dGlvbi9y
b3V0ZSBsZWFraW5nIHRoZSBzb3VyY2Ugb2YgYW4gYWR2ZXJ0aXNlbWVudCBtYXkgYXBwZWFyIHRv
IGJlIGRpZmZlcmVudCBvbiBkaWZmZXJlbnQgcm91dGVycy0gdGhpcw0KIHdvdWxkIHJlc3VsdCBp
biBkaWZmZXJlbnQgcmVzdWx0cyBvbiBkaWZmZXJlbnQgcm91dGVycy48L2k+PC9iPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6
IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0
b20tYWx0OmF1dG8iPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJz
cDsgTGVzPC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8ZGl2Pg0KPGRpdj4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2lu
LWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bh
bj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2lu
LXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZv
bnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+
UmVnYXJkcyw8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHls
ZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7
LHNhbnMtc2VyaWYiPk11c3RhcGhhLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv
bS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0K
PGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRk
aW5nOjBpbiAwaW4gMGluIDQuMHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTti
b3JkZXItdG9wOnNvbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv
LW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxiPkZyb206PC9iPiBMZXMgR2luc2JlcmcgKGdpbnNi
ZXJnKSBbPGEgaHJlZj0ibWFpbHRvOmdpbnNiZXJnQGNpc2NvLmNvbSIgdGFyZ2V0PSJfYmxhbmsi
Pm1haWx0bzpnaW5zYmVyZ0BjaXNjby5jb208L2E+XQ0KPGJyPg0KPGI+U2VudDo8L2I+IEZyaWRh
eSwgRGVjZW1iZXIgMDksIDIwMTYgMTo0OSBQTTxicj4NCjxiPlRvOjwvYj4gQWlzc2FvdWksIE11
c3RhcGhhIChOb2tpYSAtIENBKSAmbHQ7PGEgaHJlZj0ibWFpbHRvOm11c3RhcGhhLmFpc3Nhb3Vp
QG5va2lhLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPm11c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNvbTwv
YT4mZ3Q7Ow0KPGEgaHJlZj0ibWFpbHRvOnNwcmluZ0BpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsi
PnNwcmluZ0BpZXRmLm9yZzwvYT48YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUkU6IFNJRCBDb25mbGlj
dCBSZXNvbHV0aW9uOiBBIFNpbXBsZXIgUHJvcG9zYWw8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1
dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJn
aW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+TXVzdGFwaGEg
LTwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t
bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5
bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxkaXYgc3R5
bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowaW4g
MGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRv
cDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGluIDBpbiAwaW4iPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4t
Ym90dG9tLWFsdDphdXRvIj48Yj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZh
bWlseTomcXVvdDtUYWhvbWEmcXVvdDssc2Fucy1zZXJpZiI+RnJvbTo8L3NwYW4+PC9iPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1RhaG9tYSZxdW90Oyxz
YW5zLXNlcmlmIj4gQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKQ0KIFs8YSBocmVmPSJt
YWlsdG86bXVzdGFwaGEuYWlzc2FvdWlAbm9raWEuY29tIiB0YXJnZXQ9Il9ibGFuayI+bWFpbHRv
Om11c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNvbTwvYT5dDQo8YnI+DQo8Yj5TZW50OjwvYj4gRnJp
ZGF5LCBEZWNlbWJlciAwOSwgMjAxNiA3OjQ0IEFNPGJyPg0KPGI+VG86PC9iPiBMZXMgR2luc2Jl
cmcgKGdpbnNiZXJnKTsgPGEgaHJlZj0ibWFpbHRvOnNwcmluZ0BpZXRmLm9yZyIgdGFyZ2V0PSJf
YmxhbmsiPg0Kc3ByaW5nQGlldGYub3JnPC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPiBSRTogU0lE
IENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbDwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPiZuYnNwOzxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFs
dDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXpl
OjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5JIGhhdmUg
YSBjb3VwbGUgb2YgY29tbWVudHMgb24gdGhlIGJlbG93IHByb3Bvc2FsLjwvc3Bhbj48bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6
YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9z
cGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+MS48
L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo3LjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1
b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+UmVnYXJkaW5nIHRoZSBTUk1TIFByZWZlcmVuY2Ug
U3ViLVRMViBpbiBzZWN0aW9uIDMuMSBvZiB0aGUgZHJhZnQuIEluIG1hbnkgY2FzZXMsIGEgY29u
ZmlndXJhdGlvbiBvbiB0aGUgcmVzb2x2aW5nIHJvdXRlciBjYW4gYXNzaWduIGEgcHJlZmVyZW5j
ZSB0byBlYWNoIFNSTVMgaW4gY2FzZSB0aGVyZSBpcyBubyBhZHZlcnRpc2VtZW50DQogb2YgdGhp
cyBzdWItVExWIG9yIHRvIG92ZXJyaWRlIGFuIGFkdmVydGlzZWQgdmFsdWUuIEkgcHJvcG9zZSB0
aGF0IHRoaXMgb3B0aW9uIGJlIGFsbG93ZWQuIEhlcmUgaXMgYSBwcm9wb3NlZCB1cGRhdGUgdG8g
dGhlIHJlbGV2YW50IHBhcmFncmFwaDo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0i
bTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFy
YWdyYXBoIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtB
cmlhbCZxdW90OyxzYW5zLXNlcmlmIj7igJw8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LHNlcmlmIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7IEFkdmVydGlzZW1lbnQgb2YgYSBwcmVmZXJl
bmNlIHZhbHVlIGlzIG9wdGlvbmFsLiZuYnNwOyBOb2RlcyB3aGljaCBkbyBub3Q8L3NwYW4+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3At
YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LHNlcmlmIj4mbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7YWR2ZXJ0
aXNlIGEgcHJlZmVyZW5jZSB2YWx1ZSBhcmUgYXNzaWduZWQgYSBwcmVmZXJlbmNlIHZhbHVlIG9m
IDEyOC4gJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i
b3R0b20tYWx0OmF1dG8iPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7LHNlcmlmIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7PHNwYW4gc3R5bGU9ImNvbG9yOnJl
ZCI+QSByZXNvbHZpbmcgcm91dGVyIGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCBvciB0aGUgYWR2
ZXJ0aXNlZCB2YWx1ZSBieSBsb2NhbCBwb2xpY3kuPC9zcGFuPjwvc3Bhbj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPuKAnDwvc3Bhbj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdE
Ij5bTGVzOl0gSW4gb3JkZXIgdG8gZ2V0IGNvbnNpc3RlbnQgY29uZmxpY3QgcmVzb2x1dGlvbiBv
biBhbGwgbm9kZXMgaW4gdGhlIG5ldHdvcmssIGl0IGlzIG5lY2Vzc2FyeSB0aGF0IHRoZXkgYWxs
IGhhdmUgdGhlIHNhbWUgZGF0YWJhc2Ug4oCTIHdoaWNoIGluY2x1ZGVzDQogdGhlIHByZWZlcmVu
Y2UgdmFsdWUuIElmIHlvdSBhbGxvdyBsb2NhbCBwb2xpY3kgdG8gbW9kaWZ5IHRoZSBwcmVmZXJl
bmNlIHlvdSBubyBsb25nZXIgaGF2ZSBjb25zaXN0ZW50IGRhdGFiYXNlcyBvbiBhbGwgbm9kZXMg
YW5kIHdlIGNhbiBubyBsb25nZXIgZ3VhcmFudGVlIGNvbnNpc3RlbnQgY29uZmxpY3QgcmVzb2x1
dGlvbi4gU28geW91ciBwcm9wb3NhbCBpcyBub3QgdmlhYmxlIElNTy48L3NwYW4+PC9pPjwvYj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPiZuYnNwOzwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWls
LW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPjIu
PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6Ny4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPkkgYW0gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhl
IGNvbmNlcHQgb2Ygc29ydGluZyBTUk1TIGVudHJpZXMgd2hpY2ggaGF2ZSBkaWZmZXJlbnQgcHJl
Zml4ZXMgYW5kIGRpZmZlcmVudCByYW5nZSBzaXplcy4gJm5ic3A7PC9zcGFuPjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+U2luY2UgYSBTSUQgYWR2ZXJ0
aXNlZCBpbiBhIHByZWZpeCBTSUQgc3ViLVRMViB3aXRoaW4gYSBQcmVmaXggVExWIChJUy1JUyBJ
UCBSZWFjaCBUTFYgb3IgT1NQRiBFeHRlbmRlZCBQcmVmaXggVExWKSBoYXMNCiBoaWdoZXIgcHJp
b3JpdHkgb3ZlciBhIFNJRCBmb3IgdGhlIHNhbWUgcHJlZml4IGFkdmVydGlzZWQgZnJvbSBhIFNS
TVMsIHRoZW4geW91IGhhdmUgdG8gYWRkIHRvIHRoZSBiZWxvdyBzb3J0aW5nIGFuIGVudHJ5IGZv
ciBlYWNoIGluZGl2aWR1YWwgcHJlZml4IHdoaWNoIGFkdmVydGlzZWQgYSBwcmVmaXggU0lEIHN1
Yi1UTFYgd2l0aGluIGEgcHJlZml4IFRMVi4NCjwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xp
c3RwYXJhZ3JhcGgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0FyaWFsJnF1b3Q7LHNhbnMtc2VyaWYiPkF0IHRoaXMgcG9pbnQsIHRoZSBjb25jZXB0IG9m
IGFuIGVudHJ5IHdpdGggbXVsdGlwbGUgcHJlZml4ZXMgaXMgbW9vdCBhbmQgeW91IG1heSBhcyB3
ZWxsIGp1c3Qgc29ydCBvbiBhIHBlciBwcmVmaXggYmFzaXMNCiB3aGljaCBpcyB0aGUgbW9zdCBu
YXR1cmFsIHRoaW5nIHRvIGRvIGdpdmVuIHRoYXQgdGhlIHByZWZpeCByZXNvbHV0aW9uIGFuZCB0
aGVuIHRoZSBTSUQgcmVzb2x1dGlvbiBhcmUgcGVyZm9ybWVkIG9uIGEgcGVyIHByZWZpeCBiYXNp
cy4gU0lEIGNvbmZsaWN0cyBjYW4gYmUgcmVzb2x2ZWQgb24gYSBwZXIgcHJlZml4IGJhc2lzIHVz
aW5nIHRoZSBiZWxvdyBwcm9wb3NlZCBwcmVmZXJlbmNlIGFsZ29yaXRobSB3aXRob3V0IGhhdmlu
ZyB0byBpZ25vcmUNCiBTSUQgdmFsdWVzIGZvciB1bnJlbGF0ZWQgcHJlZml4ZXMganVzdCBiZWNh
dXNlIGl0IGhhcHBlbnMgdGhhdCB0aGV5IHdlcmUgYWR2ZXJ0aXNlZCBpbiB0aGUgc2FtZSBTUk1T
IGVudHJ5Ljwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0
NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxiPjxpPjxz
cGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4mbmJzcDs8L3NwYW4+PC9pPjwvYj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb2xpc3RwYXJhZ3JhcGgiPjxiPjxpPjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdE
Ij5bTGVzOl0gVGhlIHNpbXBsZXIgcHJvcG9zYWwgZG9lcyBub3QgcmVxdWlyZSBzb3J0aW5nIG9u
IGFueXRoaW5nIG90aGVyIHRoYW4gcHJlZmVyZW5jZS4gQWZ0ZXIgdGhhdCwgeW91IGNhbiBwcm9j
ZXNzIGVudHJpZXMgaW4gYW55IG9yZGVyIHlvdSB3YW50IGFuZA0KIHlvdSB3aWxsIGdldCB0aGUg
c2FtZSBhbnN3ZXIuPC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5
MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdy
YXBoIj48Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+V2l0aCDigJxJZ25vcmUgT3Zl
cmxhcCBPbmx54oCdIG9uZSBvZiB0aGUgaXNzdWVzIHdpdGggdHJ5aW5nIHRvIHVzZSB0aGUgbm9u
LWNvbmZsaWN0aW5nIHBvcnRpb25zIG9mIGEgbWFwcGluZyBlbnRyeSB3aGljaCBoYXMgYSByYW5n
ZSAmZ3Q7IDEgaXMgdGhhdCB0aGUgb3JkZXINCiBpbiB3aGljaCB5b3UgcHJvY2VzcyBlbnRyaWVz
IGluZmx1ZW5jZXMgdGhlIHJlc3VsdC4gUGxlYXNlIHNlZSBzbGlkZXMgMTcg4oCTIDIwIGZyb20g
dGhlIElFVEY5NyBwcmVzZW50YXRpb246DQo8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9w
cm9jZWVkaW5ncy85Ny9zbGlkZXMvc2xpZGVzLTk3LXNwcmluZy0xX2lldGY5N19kcmFmdC1pZXRm
LXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uLTAyLTAwLnBwdHgiIHRhcmdldD0iX2JsYW5rIj4N
Cmh0dHBzOi8vd3d3LmlldGYub3JnL3Byb2NlZWRpbmdzLzk3L3NsaWRlcy9zbGlkZXMtOTctc3By
aW5nLTFfaWV0Zjk3X2RyYWZ0LWlldGYtc3ByaW5nLWNvbmZsaWN0LXJlc29sdXRpb24tMDItMDAu
cHB0eDwvYT4gZm9yIHNvbWUgc2ltcGxlIGV4YW1wbGVzIG9mIHRoaXMuPC9zcGFuPjwvaT48L2I+
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29saXN0cGFyYWdyYXBoIj48Yj48aT48c3BhbiBzdHlsZT0iY29s
b3I6IzFGNDk3RCI+Jm5ic3A7PC9zcGFuPjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29saXN0
cGFyYWdyYXBoIj48Yj48aT48c3BhbiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7
IExlczwvc3Bhbj48L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvbGlzdHBhcmFncmFwaCI+PHNw
YW4gc3R5bGU9ImNvbG9yOiMxRjQ5N0QiPiZuYnNwOzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy
Z2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1m
YW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJpZiI+Jm5ic3A7PC9zcGFuPjxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDph
dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEw
LjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZxdW90OyxzYW5zLXNlcmlmIj5SZWdhcmRzLDwv
c3Bhbj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy
Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0byI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssc2Fucy1zZXJp
ZiI+TXVzdGFwaGEuPC9zcGFuPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRv
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtBcmlhbCZx
dW90OyxzYW5zLXNlcmlmIj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+DQo8ZGl2IHN0eWxl
PSJib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGluIDBp
biAwaW4gNC4wcHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6
c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJv
dHRvbS1hbHQ6YXV0byI+PGI+RnJvbTo8L2I+IHNwcmluZyBbPGEgaHJlZj0ibWFpbHRvOnNwcmlu
Zy1ib3VuY2VzQGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+bWFpbHRvOnNwcmluZy1ib3VuY2Vz
QGlldGYub3JnPC9hPl0NCjxiPk9uIEJlaGFsZiBPZiA8L2I+TGVzIEdpbnNiZXJnIChnaW5zYmVy
Zyk8YnI+DQo8Yj5TZW50OjwvYj4gU3VuZGF5LCBEZWNlbWJlciAwNCwgMjAxNiA3OjA0IFBNPGJy
Pg0KPGI+VG86PC9iPiA8YSBocmVmPSJtYWlsdG86c3ByaW5nQGlldGYub3JnIiB0YXJnZXQ9Il9i
bGFuayI+c3ByaW5nQGlldGYub3JnPC9hPjxicj4NCjxiPlN1YmplY3Q6PC9iPiBbc3ByaW5nXSBT
SUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsPG86cD48L286cD48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4t
dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb3BsYWludGV4dCI+V2hlbiB0aGUgcHJvYmxlbSBhZGRyZXNzZWQgYnkgZHJhZnQt
aWV0Zi1zcHJpbmctY29uZmxpY3QtcmVzb2x1dGlvbiB3YXMgZmlyc3QNCjxvOnA+PC9vOnA+PC9w
Pg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIy
ODg2bXNvcGxhaW50ZXh0Ij5wcmVzZW50ZWQgYXQgSUVURiA5NCwgdGhlIGF1dGhvcnMgZGVmaW5l
ZCB0aGUgZm9sbG93aW5nIHByaW9yaXRpZXM6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5
MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQi
PiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4xKURldGVjdCB0aGUgcHJvYmxl
bTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05
MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4yKVJlcG9ydCB0aGUgcHJvYmxlbTxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5UaGlzIGFsZXJ0cyB0aGUgbmV0d29yayBvcGVyYXRv
ciB0byB0aGUgZXhpc3RlbmNlIG9mIGEgY29uZmxpY3Qgc28gdGhhdDxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvcGxhaW50ZXh0Ij50aGUgY29uZmlndXJhdGlvbiBlcnJvciBjYW4gYmUgY29ycmVjdGVkLjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4zKURlZmluZSBjb25zaXN0ZW50IGJlaGF2aW9y
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPlRoaXMgYXZvaWRzIG1pcy1mb3J3YXJkaW5n
IHdoaWxlIHRoZSBjb25mbGljdCBleGlzdHMuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5
MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQi
PjQpRG9u4oCZdCBvdmVyZW5naW5lZXIgdGhlIHNvbHV0aW9uPG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPkdpdmVuIHRoYXQgaXQgaXMgaW1wb3NzaWJsZSB0byBrbm93IHdoaWNoIG9mIHRo
ZSBjb25mbGljdGluZyBlbnRyaWVzPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTcz
NTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPmlzIHRo
ZSBjb3JyZWN0IG9uZSwgd2Ugc2hvdWxkIGFwcGx5IGEgc2ltcGxlIGFsZ29yaXRobSB0byByZXNv
bHZlIHRoZSBjb25mbGljdC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3
MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+NSlBZ3JlZSBv
biB0aGUgcmVzb2x1dGlvbiBiZWhhdmlvcjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAx
Mjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4m
bmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWls
LW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+VGhlIHJlc29sdXRpb24gYmVoYXZp
b3Igd2FzIGRlbGliZXJhdGVseSB0aGUgbGFzdCBwb2ludCBiZWNhdXNlIGl0IHdhcw0KPG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPmNvbnNpZGVyZWQgdGhlIGxlYXN0IGltcG9ydGFudC48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPklucHV0IHdhcyByZWNlaXZlZCBvdmVyIHRoZSBwYXN0IHllYXIgd2hpY2ggZW1w
aGFzaXplZCB0aGUgaW1wb3J0YW5jZSBvZjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAx
Mjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij50
cnlpbmcgdG8gJnF1b3Q7bWF4aW1pemUgZm9yd2FyZGluZyZxdW90OyBpbiB0aGUgcHJlc2VuY2Ug
b2YgY29uZmxpY3RzLiBTdWJzZXF1ZW50PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEy
OTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPnJl
dmlzaW9ucyBvZiB0aGUgZHJhZnQgaGF2ZSB0cmllZCB0byBhZGRyZXNzIHRoaXMgY29uY2Vybi4g
SG93ZXZlciB0aGUgYXV0aG9ycw0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTcz
NTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPmhhdmUg
cmVwZWF0ZWRseSBzdHJlc3NlZCB0aGF0IHRoZSBzb2x1dGlvbiBiZWluZyBwcm9wb3NlZA0KPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPigmcXVvdDtpZ25vcmUgb3ZlcmxhcCBvbmx5JnF1
b3Q7KSB3YXMgbW9yZSBjb21wbGV4IHRoYW4gb3RoZXIgb2ZmZXJlZCBhbHRlcm5hdGl2ZXMgYW5k
DQo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+d291bGQgYmUgbW9yZSBkaWZmaWN1bHQg
dG8gZ3VhcmFudGVlIGludGVyb3BlcmFiaWxpdHkgYmVjYXVzZSBzdWJ0bGUNCjxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvcGxhaW50ZXh0Ij5kaWZmZXJlbmNlcyBpbiBhbiBpbXBsZW1lbnRhdGlvbiBjb3Vs
ZCBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHRzLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02
OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0
Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdt
YWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+QXQgSUVURjk3IHNpZ25pZmlj
YW50IGZlZWRiYWNrIHdhcyByZWNlaXZlZCBwcmVmZXJyaW5nIGEgc2ltcGxlciBzb2x1dGlvbiB0
bw0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1t
LTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPnRoZSBwcm9ibGVtLiBUaGUgYXV0aG9y
cyBhcmUgdmVyeSBzeW1wYXRoZXRpYyB0byB0aGlzIGZlZWRiYWNrIGFuZCB0aGVyZWZvcmUNCjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5hcmUgcHJvcG9zaW5nIGEgc29sdXRpb24gYmFz
ZWQgb24gd2hhdCB0aGUgZHJhZnQgZGVmaW5lcyBhcyB0aGUgJnF1b3Q7SWdub3JlJnF1b3Q7DQo8
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+cG9saWN5IC0gd2hlcmUgYWxsIGVudHJpZXMg
d2hpY2ggYXJlIGluIGNvbmZsaWN0IGFyZSBpZ25vcmVkLiBXZSBiZWxpZXZlIHRoaXMNCjxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5
MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5pcyBmYXIgbW9yZSBkZXNpcmFibGUgYW5kIGFsaWdu
cyB3aXRoIHRoZSBwcmlvcml0aWVzIGxpc3RlZCBhYm92ZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3Bs
YWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPldlIG91dGxpbmUg
dGhlIHByb3Bvc2VkIHNvbHV0aW9uIGJlbG93IGFuZCB3b3VsZCBsaWtlIHRvIHJlY2VpdmUgZmVl
ZGJhY2sgZnJvbQ0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYy
NjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPnRoZSBXRyBiZWZvcmUg
cHVibGlzaGluZyB0aGUgbmV4dCByZXZpc2lvbiBvZiB0aGUgZHJhZnQuPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJz
cDsmbmJzcDsgTGVzIChvbiBiZWhhbGYgb2YgdGhlIGF1dGhvcnMpPG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48aT5OZXcg
UHJvcG9zYWw8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYy
NjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxpPiZuYnNwOzwvaT48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+SW4gdGhlIGxhdGVzdCByZXZpc2lvbiBv
ZiB0aGUgZHJhZnQgJnF1b3Q7U1JNUyBQcmVmZXJlbmNlJnF1b3Q7IHdhcyBpbnRyb2R1Y2VkLiBU
aGlzDQo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxpPnByb3ZpZGVzIGEgd2F5
IGZvciBhIG51bWVyaWNhbCBwcmVmZXJlbmNlIHRvIGJlIGV4cGxpY2l0bHkgYXNzb2NpYXRlZCB3
aXRoIGFuDQo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYy
NjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxpPlNSTVMgYWR2ZXJ0
aXNlbWVudC4gVXNpbmcgdGhpcyBhbiBvcGVyYXRvciBjYW4gaW5kaWNhdGUgd2hpY2ggYWR2ZXJ0
aXNlbWVudCBpcw0KPC9pPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48aT50byBiZSBw
cmVmZXJyZWQgd2hlbiBhIGNvbmZsaWN0IGlzIHByZXNlbnQuIFRoZSBhdXRob3JzIHRoaW5rIHRo
aXMgaXMgYSB1c2VmdWwNCjwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1
MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+YWRk
aXRpb24gYW5kIHdlIHRoZXJlZm9yZSB3YW50IHRvIGluY2x1ZGUgdGhpcyBpbiB0aGUgbmV3IHNv
bHV0aW9uLjwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2
NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGk+Jm5ic3A7PC9pPjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48aT5UaGUgbmV3IHByZWZlcmVuY2UgcnVsZSB1
c2VkIHRvIHJlc29sdmUgY29uZmxpY3RzIGlzIGRlZmluZWQgYXMgZm9sbG93czo8L2k+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxpPiZuYnNwOzwvaT48bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1z
b3BsYWludGV4dCI+PGI+PGk+QSBnaXZlbiBtYXBwaW5nIGVudHJ5IGlzIGNvbXBhcmVkIGFnYWlu
c3QgYWxsIG1hcHBpbmcgZW50cmllcyBpbiB0aGUgZGF0YWJhc2UNCjwvaT48L2I+PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAy
NTM2MjI4ODZtc29wbGFpbnRleHQiPjxiPjxpPndpdGggYSBwcmVmZXJlbmNlIGdyZWF0ZXIgdGhh
biBvciBlcXVhbCB0byBpdHMgb3duLiBJZiB0aGVyZSBpcyBhIGNvbmZsaWN0LA0KPC9pPjwvYj48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+dGhlIG1hcHBpbmcgZW50cnkgd2l0
aCBsb3dlciBwcmVmZXJlbmNlIGlzIGlnbm9yZWQuIElmIHR3byBtYXBwaW5nIGVudHJpZXMgYXJl
PC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdt
YWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+aW4gY29uZmxpY3Qg
YW5kIGhhdmUgZXF1YWwgcHJlZmVyZW5jZSB0aGVuIGJvdGggZW50cmllcyBhcmUgaWdub3JlZC48
L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48aT4mbmJzcDs8L2k+PG86cD48
L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkx
MzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxpPkltcGxlbWVudGF0aW9uIG9mIHRoaXMgcG9saWN5
IGlzIGRlZmluZWQgYXMgZm9sbG93czo8L2k+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5
MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQi
PjxpPiZuYnNwOzwvaT48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0
NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+U3RlcCAx
OiBXaXRoaW4gYSBzaW5nbGUgYWRkcmVzcy1mYW1pbHkvYWxnb3JpdGhtL3RvcG9sb2d5IHNvcnQg
ZW50cmllcw0KPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3
MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+YmFz
ZWQgb24gcHJlZmVyZW5jZQ0KPC9pPjwvYj48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkw
MTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+
PGI+PGk+U3RlcCAyOiBTdGFydGluZyB3aXRoIHRoZSBsb3dlc3QgcHJlZmVyZW5jZSBlbnRyaWVz
LCByZXNvbHZlIHByZWZpeCBjb25mbGljdHMNCjwvaT48L2I+PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPjxiPjxpPnVzaW5nIHRoZSBhYm92ZSBwcmVmZXJlbmNlIHJ1bGUuIFRoZSBvdXRw
dXQgaXMgYW4gYWN0aXZlIHBvbGljeSBwZXIgdG9wb2xvZ3kuPC9pPjwvYj48bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYy
Mjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+U3RlcCAzOiBUYWtlIHRoZSBvdXRwdXRzIGZyb20gU3Rl
cCAyIGFuZCBhZ2FpbiBzb3J0IHRoZW0gYnkgcHJlZmVyZW5jZQ0KPC9pPjwvYj48bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb3BsYWludGV4dCI+PGI+PGk+U3RlcCA0OiBTdGFydGluZyB3aXRoIHRoZSBsb3dl
c3QgcHJlZmVyZW5jZSBlbnRyaWVzLCByZXNvbHZlIFNJRCBjb25mbGljdHMNCjwvaT48L2I+PG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjxiPjxpPnVzaW5nIHRoZSBhYm92ZSBwcmVmZXJl
bmNlIHJ1bGU8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48Yj48aT4mbmJz
cDs8L2k+PC9iPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1
Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij48Yj48aT5UaGUgb3V0cHV0
IGZyb20gU3RlcCA0IGlzIHRoZW4gdGhlIGN1cnJlbnQgQWN0aXZlIFBvbGljeS48L2k+PC9iPjxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcy
MTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNs
YXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3Bs
YWludGV4dCI+SGVyZSBhcmUgYSBmZXcgZXhhbXBsZXMuIEVhY2ggbWFwcGluZyBlbnRyeSBpcyBy
ZXByZXNlbnRlZCBieSB0aGUgdHVwbGU6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEy
OTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPihQ
cmVmZXJlbmNlLCBQcmVmaXgvbWFzayBJbmRleCByYW5nZSAmbHQ7IyZndDspPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAx
Mjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5F
eGFtcGxlIDE6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVn
bWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUz
NjIyODg2bXNvcGxhaW50ZXh0Ij4xLiAoMTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIg
dGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMS8zMjwvYT4gMTAwIHJhbmdlIDEwMCk8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1
MzYyMjg4Nm1zb3BsYWludGV4dCI+Mi4gKDE0OSwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEwLzMy
IiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4xMC8zMjwvYT4gMjAwIHJhbmdlIDIwMCk8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+My4gKDE0OCwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEw
MS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMTAxLzMyPC9hPiA1MDAgcmFuZ2UgMTApPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij5FbnRyeSAzIGNvbmZsaWN0cyB3aXRoIGVudHJ5IDIsIGl0IGlzIGlnbm9yZWQuPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIx
ODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVudHJ5IDIgY29uZmxpY3RzIHdpdGggZW50cnkg
MSwgaXQgaXMgaWdub3JlZC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3
MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+QWN0aXZlIHBv
bGljeTo8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWls
LW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPigxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xLzMyIiB0YXJnZXQ9
Il9ibGFuayI+DQoxLjEuMS4xLzMyPC9hPiAxMDAgcmFuZ2UgMTAwKTxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1
MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+RXhhbXBs
ZSAyOjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4
Nm1zb3BsYWludGV4dCI+MS4gKDE1MCwgPGEgaHJlZj0iaHR0cDovLzEuMS4xLjEvMzIiIHRhcmdl
dD0iX2JsYW5rIj4NCjEuMS4xLjEvMzI8L2E+IDEwMCByYW5nZSAxMDApPG86cD48L286cD48L3A+
DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4
ODZtc29wbGFpbnRleHQiPjIuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMC8zMiIgdGFy
Z2V0PSJfYmxhbmsiPg0KMS4xLjEuMTAvMzI8L2E+IDIwMCByYW5nZSAyMDApPG86cD48L286cD48
L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2
MjI4ODZtc29wbGFpbnRleHQiPjMuICgxNTAsIDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMDEvMzIi
IHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEwMS8zMjwvYT4gNTAwIHJhbmdlIDEwKTxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvcGxhaW50ZXh0Ij40LiAoMTUwLCA8YSBocmVmPSJodHRwOi8vMi4yLjIuMS8z
MiIgdGFyZ2V0PSJfYmxhbmsiPg0KMi4yLjIuMS8zMjwvYT4gMTAwMCByYW5nZSAxKTxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMw
MjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJt
NjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4
dCI+RW50cnkgMSBjb25mbGljdHMgd2l0aCBlbnRyeSAyLCBib3RoIGFyZSBtYXJrZWQgYXMgaWdu
b3JlLjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij5FbnRyeSAzIGNvbmZsaWN0cyB3aXRo
IGVudHJ5IDIuIEl0IGlzIG1hcmtlZCBhcyBpZ25vcmUuPG86cD48L286cD48L3A+DQo8cCBjbGFz
cz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFp
bnRleHQiPkVudHJ5IDQgaGFzIG5vIGNvbmZsaWN0cyB3aXRoIGFueSBlbnRyaWVzPG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAy
NTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02
OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0
Ij5BY3RpdmUgcG9saWN5OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcw
NzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4oMTUwLCA8YSBo
cmVmPSJodHRwOi8vMi4yLjIuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMi4yLjIuMS8zMjwvYT4g
MTAwMCByYW5nZSAxKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2
MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8bzpwPjwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEz
MDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+RXhhbXBsZSAzOjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xh
c3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxh
aW50ZXh0Ij4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0
NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+MS4gKDE1MCwgPGEg
aHJlZj0iaHR0cDovLzEuMS4xLjEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEvMzI8L2E+
IDEwMCByYW5nZSA1MDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3
NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjIuICgxNTAsIDxh
IGhyZWY9Imh0dHA6Ly8xLjEuMS4xMC8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMTAvMzI8
L2E+IDIwMCByYW5nZSAyMDApPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIz
NzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPjMuICgxNTAs
IDxhIGhyZWY9Imh0dHA6Ly8xLjEuMS4xMDEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEw
MS8zMjwvYT4gNTAwIHJhbmdlIDEwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij40LiAo
MTUwLCA8YSBocmVmPSJodHRwOi8vMi4yLjIuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMi4yLjIu
MS8zMjwvYT4gMTAwMCByYW5nZSAxKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+RW50cnkgMSBjb25mbGljdHMgd2l0aCBl
bnRyaWVzIDIsIDMsIGFuZCZuYnNwOyA0LiBBbGwgZW50cmllcyBhcmUgbWFya2VkIGlnbm9yZS48
bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0tOTA3
MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8cCBj
bGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29w
bGFpbnRleHQiPkFjdGl2ZSBwb2xpY3k6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEy
OTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPkVt
cHR5PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1t
LTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2
bXNvcGxhaW50ZXh0Ij5FeGFtcGxlIDQ6PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEy
OTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZu
YnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4xLiAoMTUwLCA8YSBocmVmPSJodHRw
Oi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEuMS8zMjwvYT4gMTAwIHJhbmdl
IDEwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwt
bS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4yLiAoMTQ5LCA8YSBocmVmPSJodHRw
Oi8vMS4xLjEuMTAvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjEuMS4xLjEwLzMyPC9hPiAyMDAgcmFu
Z2UgMzAwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21h
aWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4zLiAoMTQ5LCA8YSBocmVmPSJo
dHRwOi8vMS4xLjEuMTAxLzMyIiB0YXJnZXQ9Il9ibGFuayI+DQoxLjEuMS4xMDEvMzI8L2E+IDUw
MCByYW5nZSAxMCk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2
NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+NC4gKDE0OCwgPGEgaHJl
Zj0iaHR0cDovLzIuMi4yLjEvMzIiIHRhcmdldD0iX2JsYW5rIj4NCjIuMi4yLjEvMzI8L2E+IDEw
MDAgcmFuZ2UgMSk8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2
NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286
cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAy
NTM2MjI4ODZtc29wbGFpbnRleHQiPkVudHJ5IDQgY29uZmxpY3RzIHdpdGggZW50cnkgMi4gSXQg
aXMgbWFya2VkIGlnbm9yZS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3
MDc0NjI2NWdtYWlsLW0tOTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+RW50cnkgMiBj
b25mbGljdHMgd2l0aCBlbnRyeSAzLiBFbnRyaWVzIDIgYW5kIDMgYXJlIG1hcmtlZCBpZ25vcmUu
PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkw
NzIxODkxMzAyNTM2MjI4ODZtc29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAg
Y2xhc3M9Im02OTAxMjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNv
cGxhaW50ZXh0Ij5BY3RpdmUgcG9saWN5OjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAx
Mjk3MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4o
MTUwLCA8YSBocmVmPSJodHRwOi8vMS4xLjEuMS8zMiIgdGFyZ2V0PSJfYmxhbmsiPg0KMS4xLjEu
MS8zMjwvYT4gMTAwIHJhbmdlIDEwKTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3
MzUyMzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJz
cDs8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJtNjkwMTI5NzM1MjM3MDc0NjI2NWdtYWlsLW0t
OTA3MjE4OTEzMDI1MzYyMjg4Nm1zb3BsYWludGV4dCI+Jm5ic3A7PG86cD48L286cD48L3A+DQo8
cCBjbGFzcz0ibTY5MDEyOTczNTIzNzA3NDYyNjVnbWFpbC1tLTkwNzIxODkxMzAyNTM2MjI4ODZt
c29wbGFpbnRleHQiPiZuYnNwOzxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Im02OTAxMjk3MzUy
MzcwNzQ2MjY1Z21haWwtbS05MDcyMTg5MTMwMjUzNjIyODg2bXNvcGxhaW50ZXh0Ij4mbmJzcDs8
bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8
L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1h
cmdpbi10b3AtYWx0OmF1dG87bWFyZ2luLWJvdHRvbToxMi4wcHQiPjxicj4NCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPg0Kc3ByaW5nIG1haWxpbmcg
bGlzdDxicj4NCjxhIGhyZWY9Im1haWx0bzpzcHJpbmdAaWV0Zi5vcmciIHRhcmdldD0iX2JsYW5r
Ij5zcHJpbmdAaWV0Zi5vcmc8L2E+PGJyPg0KPGEgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcv
bWFpbG1hbi9saXN0aW5mby9zcHJpbmciIHRhcmdldD0iX2JsYW5rIj5odHRwczovL3d3dy5pZXRm
Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwcmluZzwvYT48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1t
YXJnaW4tYm90dG9tLWFsdDphdXRvIj4mbmJzcDs8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9k
aXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ibG9ja3F1b3Rl
Pg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjwv
ZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_4A79394211F1AF4EB57D998426C9340DD4B11684US70UWXCHMBA01z_--


From nobody Fri Dec 30 23:53:38 2016
Return-Path: <marc@sniff.de>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C73881294F1 for <spring@ietfa.amsl.com>; Fri, 30 Dec 2016 23:53:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5
X-Spam-Level: 
X-Spam-Status: No, score=-5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  RP_MATCHES_RCVD=-3.1] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PtECRgWTIOcK for <spring@ietfa.amsl.com>; Fri, 30 Dec 2016 23:53:34 -0800 (PST)
Received: from door.sniff.de (door.sniff.de [82.212.219.2]) by ietfa.amsl.com (Postfix) with ESMTP id 0D5B21293EC for <spring@ietf.org>; Fri, 30 Dec 2016 23:53:34 -0800 (PST)
Received: from [IPv6:::1] (localhost.sniff.de [127.0.0.1]) by door.sniff.de (Postfix) with ESMTP id 70BE54BCFE6; Sat, 31 Dec 2016 07:53:30 +0000 (UTC)
Date: Fri, 30 Dec 2016 23:53:29 -0800
From: Marc Binderberger <marc@sniff.de>
To: "Aissaoui, Mustapha (Nokia - CA)" <mustapha.aissaoui@nokia.com>, Robert Raszuk <robert@raszuk.net>, Les Ginsberg (ginsberg) <ginsberg@cisco.com>
Message-ID: <20161230235329792752.772c609e@sniff.de>
In-Reply-To: <4A79394211F1AF4EB57D998426C9340DD4B11684@US70UWXCHMBA01.zam.alcatel-lucent.com>
References: <84fe7b43d5054712abf09b274bc3c471@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4AFFBBF@US70UWXCHMBA01.zam.alcatel-lucent.com> <cea34d39cf904665b4859b74d28a4237@XCH-ALN-001.cisco.com> <4A79394211F1AF4EB57D998426C9340DD4B100A7@US70UWXCHMBA01.zam.alcatel-lucent.com> <63a79609cc964132a1f67cb75da98cf7@XCH-ALN-001.cisco.com> <CA+b+ERnhaUTJ45FwMvMf3V8xhqRKfpGE_9h8MgmOqBejvscAaA@mail.gmail.com> <ae35b4f22e7744f9a424a8ad02c12a2b@XCH-ALN-001.cisco.com> <CA+b+ERke08DVHyrZ_=tMpiOgedzydsR8VktHAKfzzQDYkAOArQ@mail.gmail.com> <4A79394211F1AF4EB57D998426C9340DD4B11684@US70UWXCHMBA01.zam.alcatel-lucent.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=big5
Content-Transfer-Encoding: base64
X-Mailer: GyazMail version 1.5.17
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/JFlzGC_S2G45Dib-_lh5skzC-Wc>
Cc: "spring@ietf.org" <spring@ietf.org>
Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 31 Dec 2016 07:53:38 -0000

DQptaW5kLWJvZ2dsaW5nIGRpc2N1c3Npb24gOi0pDQoNCkhlbGxvIFNSIGV4cGVydHMuDQoN
Cg0KTXVzdGFwaGEgd3JvdGUNCg0KPiBJIGhhdmUgdGhlIGltcHJlc3Npb24gdGhlIGF1dGhv
cnMgYXJlIA0KPiB0cnlpbmcgdG8gYWRkcmVzcyBTSUQgY29uZmxpY3QgcmVzb2x1dGlvbiBv
dXRzaWRlIG9mIHRoZSBuYXR1cmFsIHBlciBwcmVmaXggDQo+IHJlc29sdXRpb24gb24gdGhl
IHJvdXRlci4NCg0KdGhhdCB3YXMgbXkgdGhvdWdodCB0b28uIEZyb20gdGhlIHJvdXRpbmcg
cHJvdG9jb2wgSSBkZWFsIHdpdGggYSBwcmVmaXguIFRoZW4gDQpJIG5lZWQgdG8gZmluZCB0
aGUgU0lEIGZvciB0aGUgcHJlZml4IHRvIHByb2dyYW0gbXkgaW5ncmVzcy9lZ3Jlc3MgbGFi
ZWxzLiBJZiANCnRoZSBtYXBwaW5nIHByZWZpeCAtPiBTSUQgaGFzIGNvbmZsaWN0aW5nIHJl
c3VsdHMgX3RoZW5fIEkgaGF2ZSBhIHByb2JsZW0uDQoNCg0KT3IgaW4gb3RoZXIgd29yZHM6
DQoNCjEuICgxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdlIDEwMCkNCjIuICgxNTAsIDEuMS4x
LjEvMzIgNTAwIHJhbmdlIDIpDQoNCndvdWxkIHJlc3VsdCBpbiBubyBtYXBwaW5nLCBmb2xs
b3dpbmcgdGhlIG5ldyBwcm9wb3NhbC4gQWxsIGR1ZSB0byBhIHR5cG8gb2YgDQoxLjEuMS4x
IGluc3RlYWQgb2YgMS4xLjIuMSBpbiB0aGUgMm5kIG1hcHBpbmc/ICBXaGlsZSBJIHVuZGVy
c3RhbmQgdGhlIA0KYWxnb3JpdGhtIEkgZG9uJ3Qgd2FudCB0byBiZSB0aGUgcG9vciBvcGVy
YXRvciBoYXZpbmcgbXkgT1NTIHNjcmVlbiBmdWxsIHdpdGggDQphbGFybXMgZm9yIDEuMS4x
LjMuLjEwMCAuDQoNCg0KQnR3LCB0aGUgInByZWZlcmVuY2UiIGZpZWxkLCB3aGF0IHB1cnBv
c2UgZG9lcyBpcyBzZXJ2ZT8gIEhhcyB0aGlzIGJlZW4gDQppbnRyb2R1Y2VkIHNvbGVseSB0
byB0aWUtYnJlYWsgY29uZmxpY3RzPyAgU28gd2UgaGF2ZSBvbmUgbW9yZSBwYXJhbWV0ZXIg
dGhhdCANCmNhbiBiZSB0eXBvLWQgOi0pDQpPciBpcyB0aGVyZSBhY3R1YWxseSBhbiBhcHBs
aWNhdGlvbiBmb3IgaXQ/DQoNCg0KUm9iZXJ0IHdyb3RlDQoNCj4gQWZ0ZXIgbWVudGFsIHJl
c2V0IEkgY29uY2x1ZGUgdGhhdCBwZXJoYXBzIGV2ZW4gdGhlIGludHJvZHVjdGlvbiBvZiB0
aGUgDQo+IGRyYWZ0IGlzIHF1ZXN0aW9uYWJsZQ0KDQpUaGF0IGdvZXMgbXVjaCBmdXJ0aGVy
IHRoYW4gd2hhdCBJIGhhZCBpbiBtaW5kIDstKSBidXQgSSB3b25kZXIgaWYgd2UgZ28gdG9v
IA0KZmFyLiBJIHN0aWxsIHRoaW5rIGl0IGlzIHVzZWZ1bCB0byBkZXNjcmliZSB3aGF0IGlz
IGEgY29uZmxpY3QgLSBhbmQgdGhpcyB3YXkgDQphbHNvIHNheWluZyB3aGF0IHNob3VsZCBu
b3QgYmUgbWlzdGFrZW4gZm9yIGEgY29uZmxpY3QuIFRoZSBkaXNjdXNzaW9uIGFib3V0IA0K
Y29uZmxpY3Qtd2l0aC1yYW5nZSB2cy4gY29uZmxpY3Qtd2l0aC1wcmVmaXggc2VlbXMgdXNl
ZnVsIHRvIG1lLg0KDQpNeSBwcm9ibGVtIHdpdGggdGhlIGVhcmxpZXIgZHJhZnRzIHdhcyBt
b3JlIGFib3V0IHRoZSBjb25mbGljdCANCnJlc29sdXRpb24vcmVhY3Rpb24sIEkgZm91bmQg
aXQgY29tcGxleCBhbmQgdG9vIHNwZWNpZmljIHRvIGdlbmVyYWxseSBhZ3JlZSANCm9uLiBN
eSBwZXJzb25hbCBvcGluaW9uIGlzIHdoZW4geW91IGhhdmUgYSBjb25mbGljdCB0aGVuIF9k
cm9wXyB0aGUgcHJlZml4IA0KdHJhZmZpYy4gQnV0IHF1aXRlIGZyYW5rbHkgImRyb3BwaW5n
IiwgIm5vdCBwcm9ncmFtbWluZyIsICJzdHJpcCB0byBJUCIgb3IgDQp3aGF0ZXZlciBlbHNl
LCB0aGV5IGFyZSBhbGwgc2ltcGxlIG9wZXJhdGlvbnMuIE9yIHNpbXBsZSBjb2RlIHBhdGgs
IGFzIA0KU3Rld2FydCBwdXQgaXQsIGFzIGxvbmcgYXMgd2Ugc3RpY2sgdG8gX29uZV8gb2Yg
dGhlbS4gVGhlIGRyYWZ0IHNob3VsZCBkZW1hbmQgDQpvbmUgcGFydGljdWxhciBvcGVyYXRp
b24gdG8gYmUgYSBNVVNUIGZvciBpbnRlcm9wZXJhYmlsaXR5Lg0KDQoNCg0KUmVnYXJkcywg
TWFyYw0KDQoNCg0KDQoNCg0KDQoNCg0KT24gRnJpLCAyMyBEZWMgMjAxNiAxNToyNDo1NSAr
MDAwMCwgQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKSB3cm90ZToNCj4gSGkgUm9i
ZXJ0LA0KPiBJbiBmYWN0IHlvdSBhcmUgdG91Y2hpbmcgb24gdGhlIHBvaW50IEkgYW0gdHJ5
aW5nIHRvIG1ha2UgaW4gbXkgY29tbWVudCAoMSkgDQo+IG9uIHRoZSBzbGlkZXMuIFJlYWRp
bmcgdGhpcyBkcmFmdCwgSSBoYXZlIHRoZSBpbXByZXNzaW9uIHRoZSBhdXRob3JzIGFyZSAN
Cj4gdHJ5aW5nIHRvIGFkZHJlc3MgU0lEIGNvbmZsaWN0IHJlc29sdXRpb24gb3V0c2lkZSBv
ZiB0aGUgbmF0dXJhbCBwZXIgcHJlZml4IA0KPiByZXNvbHV0aW9uIG9uIHRoZSByb3V0ZXIu
IFdoaWxlIGluIHRoZW9yeSB0aGlzIGNhbiBiZSBkb25lIGJ1dCBpdCBtYWtlcyB0aGUgDQo+
IGFsZ29yaXRobSBtdWNoIG1vcmUgY29tcGxleCB0cnlpbmcgdG8gY29tcGFyZSBvdmVybGFw
cGluZyBTUk1TIFNJRCBlbnRyaWVzIA0KPiB3aXRoIGRpZmZlcmVudCByYW5nZSBzaXplcy4N
Cj4gIA0KPiBUaGVyZSBhcmUgdHdvIHNvdXJjZXMgb2YgYWR2ZXJ0aXNlbWVudCBvZiB0aGUg
U0lEIGluZm9ybWF0aW9uOg0KPiBhLiAgICAgUGVyLXByZWZpeCBTSUQgZW50cmllcyByZWNl
aXZlZCBpbiB0aGUgIHByZWZpeCBTSUQgc3ViLVRMViB3aXRoaW4gYSANCj4gUHJlZml4IFRM
ViAoSVMtSVMgSVAgUmVhY2ggVExWIG9yIE9TUEYgRXh0ZW5kZWQgUHJlZml4IFRMVikuIA0K
PiBiLiAgICAgU1JNUyBlbnRyaWVzIHdoaWNoIGFkdmVydGlzZSBTSUQgaW5mb3JtYXRpb24g
Zm9yIGEgcmFuZ2Ugb2YgcHJlZml4ZXMuDQo+ICANCj4gVGhlIHJhbmdlIHNpemUgb2YgdGhl
IFNSTVMgZW50cnkgZW50aXJlbHkgZGVwZW5kcyBvbiBob3cgdGhlIHVzZXIgd2FudHMgdG8g
DQo+IGFkdmVydGlzZSB0aGUgaW5mb3JtYXRpb24gYW5kIGhhcyBubyBtZWFuaW5nIGZvciB0
aGUgcmVzb2x1dGlvbi4gRnJvbSBhIA0KPiByb3V0ZXKhpnMgcGVyc3BlY3RpdmUsIHRoZSBT
SUQgaW5mb3JtYXRpb24gaXMgYXNzb2NpYXRlZCB3aXRoIGEgcHJlZml4IA0KPiByZWdhcmRs
ZXNzIGhvdyBpdCBpcyBhZHZlcnRpc2VkLiANCj4gIA0KPiBUaGUgcGVyLXByZWZpeCBTSUQg
aW5mb3JtYXRpb24gaXMgcHJlZmVycmVkIHRvIHRoZSBTUk1TIFNJRCBpbmZvcm1hdGlvbi4g
DQo+IEFuZCB0aHVzIGEgc2ltcGxlIGFsZ29yaXRobSB3aGljaCBhdCB0aGUgdG9wIGxldmVs
IHNlbGVjdHMgdGhlIFNJRCBhbW9uZyANCj4gc2V0IChhKSBiYXNlZCBvbiB0aGUgc291cmNl
IGFkdmVydGlzaW5nIHJvdXRlciBhbmQgaWYgZW1wdHkgc2VsZWN0cyB0aGUgU0lEIA0KPiBh
bW9uZyBzZXQgKGIpIGJhc2VkIG9uIHRoZSBTUk1TIHByZWZlcmVuY2UgYW5kIHRoZW4gYmFz
ZWQgb24gdGhlIFNSTVMgDQo+IHJvdXRlci1pZCBpZiBzYW1lIHByZWZlcmVuY2Ugd2lsbCB3
b3JrLiAgDQo+ICANCj4gUmVnYXJkcywNCj4gTXVzdGFwaGEuDQo+ICANCj4gRnJvbTogcnJh
c3p1a0BnbWFpbC5jb20gW21haWx0bzpycmFzenVrQGdtYWlsLmNvbV0gT24gQmVoYWxmIE9m
IFJvYmVydCANCj4gUmFzenVrDQo+IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAyMiwgMjAx
NiA1OjI5IFBNDQo+IFRvOiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKSA8Z2luc2JlcmdAY2lz
Y28uY29tPg0KPiBDYzogQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKSA8bXVzdGFw
aGEuYWlzc2FvdWlAbm9raWEuY29tPjsgDQo+IHNwcmluZ0BpZXRmLm9yZw0KPiBTdWJqZWN0
OiBSZTogW3NwcmluZ10gU0lEIENvbmZsaWN0IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9w
b3NhbA0KPiAgDQo+IExlcywNCj4gIA0KPiBBZnRlciBtZW50YWwgcmVzZXQgSSBjb25jbHVk
ZSB0aGF0IHBlcmhhcHMgZXZlbiB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSANCj4gZHJhZnQg
aXMgcXVlc3Rpb25hYmxlIGFzIGluIHJlYWwgbGlmZSBpdCBhcHBsaWVzIHRvIGJlIHF1aXRl
IGFuIHVucmVhbGlzdGljIA0KPiBzY2VuYXJpbyB0byBoYXZlIGEgc2l0dWF0aW9uIHdoZXJl
IG1vcmUgdGhlbiBvbmUgcHJvdG9jb2wgaXMgdXNlZCAqaW4gdGhlIA0KPiBzYW1lIHRpbWUq
IGFzIGFjdGl2ZSBpbiBmb3J3YXJkaW5nIGZvciBhbiBleGFjdCBzYW1lIElQIHByZWZpeC4g
DQo+ICANCj4gTGFzdCB0aW1lIEkgY2hlY2tlZCBTSURzIGFyZSBtZWFuaW5nbGVzcyB3aXRo
b3V0IGEgcHJlZml4IHRoZXkgYXJlIGF0dGFjaGVkIA0KPiB0byBhbmQgaXQgaXMgYSBwcmVm
aXggdGhleSBhY2NvbXBhbnkgdG8gaW5kaWNhdGUgd2hpY2ggU0lEIHNob3VsZCBiZSB1c2Vk
IA0KPiBvbiBhIGdpdmVuIG5vZGUuIA0KPiAgDQo+IFRoZXJlZm9yIGlmIHlvdSBjb25zaWRl
ciB0aGF0IHRvZGF5IG1vc3QgaW1wbGVtZW50YXRpb25zIHByZXR0eSB3ZWxsIGNhbiANCj4g
aGFuZGxlIG92ZXJsYXBwaW5nIHByZWZpeGVzIGZyb20gbXVsdGlwbGUgc291cmNlcyB3aGF0
IHJlYWwgcHJvYmxlbSBpcyB0aGlzIA0KPiBkcmFmdCBzb2x2aW5nID8gDQo+ICANCj4gQXJl
IHlvdSB0cnlpbmcgdG8gY3JlYXRlIGEgZm9yd2FyZGluZyBncmFwaCBieSBTSURzIG9ubHkg
ZGV0YWNoaW5nIHRoZW0gDQo+IGZyb20gSVAgcHJlZml4ZXMgYWxsIHRvZ2V0aGVyID8NCj4g
IA0KPiBDaGVlcnMsDQo+IFIuDQo+ICANCj4gIA0KPiBPbiBUaHUsIERlYyAyMiwgMjAxNiBh
dCAxMDozMiBQTSwgTGVzIEdpbnNiZXJnIChnaW5zYmVyZykgDQo+IDxnaW5zYmVyZ0BjaXNj
by5jb20+IHdyb3RlOg0KPj4gUm9iZXJ0IKFWDQo+PiAgDQo+PiBZb3UgaGF2ZSBhIGNvbXBs
ZXRlIG1pc3VuZGVyc3RhbmRpbmcgb2Ygcm9sZXMgaGVyZS4NCj4+ICANCj4+IEhvdyB0aGUg
b3duZXIgb2YgYSByb3V0ZSBtYXkgYmUgcmVwcmVzZW50ZWQgaW4gdGhlIFJJQiBpc26hpnQg
aW1wYWN0ZWQgYnkgDQo+PiBTUk1TIG9yIGNvbmZsaWN0IHJlc29sdXRpb24uIE5vciBpcyB0
aGUgZGV0ZXJtaW5hdGlvbiBvZiB3aGljaCByb3V0ZSBpcyANCj4+IHRoZSBiZXN0IHJvdXRl
LiBXZSBhcmUgb25seSBkZXRlcm1pbmluZyB3aGV0aGVyIHRvIHVzZSBvciBub3QgdXNlIGEg
U0lEIA0KPj4gd2hpY2ggd2FzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJlZml4IGJ5IHNvbWUg
YWR2ZXJ0aXNlbWVudC4NCj4+ICANCj4+IFRoZSBJbnRyb2R1Y3Rpb24gdG8gdGhlIGRyYWZ0
IHN0YXRlczoNCj4+ICANCj4+IKGnVGhlIHByb2JsZW0gdG8gYmUgYWRkcmVzc2VkIGlzIHBy
b3RvY29sIGluZGVwZW5kZW50IGkuZS4sIHNlZ21lbnQNCj4+ICAgIHJlbGF0ZWQgYWR2ZXJ0
aXNlbWVudHMgbWF5IGJlIG9yaWdpbmF0ZWQgYnkgbXVsdGlwbGUgbm9kZXMgdXNpbmcNCj4+
ICAgIGRpZmZlcmVudCBwcm90b2NvbHMgYW5kIHlldCB0aGUgY29uZmxpY3QgcmVzb2x1dGlv
biBNVVNUIGJlIHRoZSBzYW1lDQo+PiAgICBvbiBhbGwgbm9kZXMgcmVnYXJkbGVzcyBvZiB0
aGUgcHJvdG9jb2wgdXNlZCB0byB0cmFuc3BvcnQgdGhlDQo+PiAgICBhZHZlcnRpc2VtZW50
cy6hqA0KPj4gIA0KPj4gUGxlYXNlIGRvIGEgbWVudGFsIHJlc2V0LiBKDQo+PiAgDQo+PiAg
ICBMZXMNCj4+ICANCj4+ICANCj4+IEZyb206IHJyYXN6dWtAZ21haWwuY29tIFttYWlsdG86
cnJhc3p1a0BnbWFpbC5jb21dIE9uIEJlaGFsZiBPZiBSb2JlcnQgDQo+PiBSYXN6dWsNCj4+
IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAyMiwgMjAxNiAxMTo1MiBBTQ0KPj4gVG86IExl
cyBHaW5zYmVyZyAoZ2luc2JlcmcpDQo+PiBDYzogQWlzc2FvdWksIE11c3RhcGhhIChOb2tp
YSAtIENBKTsgc3ByaW5nQGlldGYub3JnDQo+PiANCj4+IFN1YmplY3Q6IFJlOiBbc3ByaW5n
XSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2FsDQo+PiAgDQo+
PiBIaSBMZXMsDQo+PiAgDQo+PiBPbiAjMSBJIGFtIGFsc28gd2l0aCBNdXN0YXBoYSBoZXJl
LiBGb3IgY2xhcml0eSBvZiB0aGlzIGRpc2N1c3Npb24gY2FuIHlvdSANCj4+IGVudW1lcmF0
ZSB3aGVuIGZyb20gUklCIHRvIEZJQi9MRklCIHlvdSBhcmUgaW5zdGFsbGluZyB0aGUgZXhh
Y3Qgc2FtZSANCj4+IGFjdGl2ZSBwcmVmaXggZnJvbSBtb3JlIHRoZW4gb25lIHByb2R1Y2Vy
ID8gSXMgU1JNUyBzb3J0IG9mIHpvbWJpZSBoZXJlIA0KPj4gYW5kIG5vdCB0cmVhdGVkIGFz
IHJlYWwgcm91dGUgcHJvZHVjZXIgaGVuY2Ugd2UgaGF2ZSBhbiBpc3N1ZSA/IEFuZCB0aGUg
DQo+PiBpc3N1ZSBpcyBvbmx5IHdpdGggY29uZmxpY3RzIG9mIFNSTVMgKyByZWFsIHJvdXRl
IHByb2R1Y2VyID8gDQo+PiAgDQo+PiBPbiAjMyB5b3Ugc2FpZCB0aGF0ICJ3aXRoIHJlZGlz
dHJpYnV0aW9uL3JvdXRlIGxlYWtpbmcgdGhlIHNvdXJjZSBvZiBhbiANCj4+IGFkdmVydGlz
ZW1lbnQgbWF5IGFwcGVhciB0byBiZSBkaWZmZXJlbnQgb24gZGlmZmVyZW50IHJvdXRlcnMi
IHRoYXQgaXMgDQo+PiB2ZXJ5IHRydWUuIEluIGZhY3Qgd2l0aCBzaW1wbGUgc3RhdGljIHJv
dXRlIG9yIHN0YXRpYyBsYWJlbCBjb25maWd1cmVkIG9uIA0KPj4gYSByb3V0ZXIgdGhlIFJJ
QiBhbmQgRklCIG9uIHRoYXQgcm91dGVyIHdpbGwgYmUgZGlmZmVyZW50IHRoZW4gUklCIGFu
ZCBGSUIgDQo+PiBvbiB0aGUgb3RoZXIgcm91dGVycyB3aXRob3V0IHN1Y2ggc3RhdGljIHJv
dXRlLiBBbmQgdGhlIHBvaW50IGlzIHRoYXQgc3VjaCANCj4+IHN0YXRpYyByb3V0ZSBvciBs
YWJlbCBpcyB0aGVyZSBmb3IgYSByZWFzb24geW91IG1heSBub3Qga25vdyBhYm91dC4gU28g
DQo+PiBzdHJ1Z2dsaW5nIGZvciBkYXRhIHBsYW5lIGNvbnNpc3RlbmN5IGRlbGliZXJhdGVs
eSBleGNsdWRpbmcgc291cmNlIHdoZW4gDQo+PiBvcGVyYXRpb25hbCBuZWVkcyByZXF1aXJl
IG90aGVyd2lzZSBpcyBub3QgcmVhbGx5IHRoYXQgbXVjaCBoZWxwZnVsIEkgYW0gDQo+PiBh
ZnJhaWQuDQo+PiAgDQo+PiBHcmVldGluZ3MsDQo+PiBSb2JlcnQuIA0KPj4gIA0KPj4gIA0K
Pj4gT24gVGh1LCBEZWMgMjIsIDIwMTYgYXQgODozNyBQTSwgTGVzIEdpbnNiZXJnIChnaW5z
YmVyZykgDQo+PiA8Z2luc2JlcmdAY2lzY28uY29tPiB3cm90ZToNCj4+IE11c3RhcGhhIC0N
Cj4+ICANCj4+IEZyb206IHNwcmluZyBbbWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYub3Jn
XSBPbiBCZWhhbGYgT2YgQWlzc2FvdWksIA0KPj4gTXVzdGFwaGEgKE5va2lhIC0gQ0EpDQo+
PiBTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgMjIsIDIwMTYgODoxMCBBTQ0KPj4gVG86IExl
cyBHaW5zYmVyZyAoZ2luc2JlcmcpOyBzcHJpbmdAaWV0Zi5vcmcNCj4+IFN1YmplY3Q6IFJl
OiBbc3ByaW5nXSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFByb3Bvc2Fs
DQo+PiAgDQo+PiBIaSBMZXMsDQo+PiBJIHJlYWQgc2xpZGVzIDE3LTIxIG9mIHRoZSBkb2N1
bWVudCB5b3UgcmVmZXJlbmNlZCBiZWxvdyBhbmQgSSBoYXZlIHRoZSANCj4+IGZvbGxvd2lu
ZyBjb21tZW50czoNCj4+ICANCj4+IDEuICAgICBQYWdlIDE3LCChp09yZGVyIE1hdHRlcnMg
LSBQcmVmaXggdnMgU0lEIENvbmZsaWN0oaguDQo+PiBXaGVuIHlvdSBwZXJmb3JtIHJlc29s
dXRpb24gb24gIGEgcGVyIHByZWZpeCBiYXNpcywgcHJlZml4IGNvbmZsaWN0cyBhcmUgDQo+
PiBuYXR1cmFsbHkgcHJvY2Vzc2VkIGZpcnN0IGZvbGxvd2VkIGJ5IFNJRCBjb25mbGljdHMg
YWNyb3NzIGRpZmZlcmVudCANCj4+IHByZWZpeGVzLiBTbyB0aGUgb3JkZXJpbmcgaXNzdWUg
ZGVzY3JpYmVkIGlzIG9ubHkgc3BlY2lmaWMgaWYgeW91IGRlY2lkZWQgDQo+PiB0byByZXNv
bHZlIGNvbmZsaWN0aW5nIFNJRCBlbnRyaWVzIG91dHNpZGUgb2YgdGhlIG5hdHVyYWwgcHJl
Zml4IA0KPj4gcmVzb2x1dGlvbiBieSBhIHJvdXRlci4gDQo+PiAgDQo+PiBbTGVzOl0gV2hh
dCBtYXkgc2VlbSChp25hdHVyYWyhqCB0byB5b3UgbWlnaHQgbm90IHRvIHNvbWVvbmUgZWxz
ZS4gSSBkb26hpg0KPj4gdCBjYXJlIHRvIGRlYmF0ZSB0aGF0IHBvaW50LiBXaGF0IGlzIGJl
aW5nIGlsbHVzdHJhdGVkIGhlcmUgaXMgdGhhdCBpbiANCj4+IG9yZGVyIHRvIHByb3ZpZGUg
YSBub3JtYXRpdmUgc3BlY2lmaWNhdGlvbiB0aGF0IKFWIGlmIGZvbGxvd2VkIKFWIA0KPj4g
Z3VhcmFudGVlcyBpbnRlcm9wZXJhYmlsaXR5IHdlIGhhdmUgdG8gc3BlY2lmeSB0aGUgb3Jk
ZXIgaW4gd2hpY2ggDQo+PiBjb25mbGljdHMgYXJlIHByb2Nlc3NlZCBvdGhlcndpc2UgZGlm
ZmVyZW50IHJlc3VsdHMgbWF5IGJlIG9idGFpbmVkLg0KPj4gIA0KPj4gMi4gICAgIFBhZ2Ug
MTgsIKGnT3JkZXIgTWF0dGVyczogRGVyaXZlZCB2cyBub24tZGVyaXZlZKFWIHByZWZpeCBj
b25mbGljdKGoDQo+PiAuDQo+PiBJdCBzZWVtcyB0byBtZSB0aGlzIGlzc3VlIGlzIGFuIGFy
dGlmYWN0IG9mIHRoZSBzcGVjaWZpYyBhbGdvcml0aG0gdXNlZCB0byANCj4+IHJlc29sdmUg
Y29uZmxpY3RzLiBCZWNhdXNlIHRoZSBhbGdvcml0aG0gdXNlcyBwYXJhbWV0ZXJzIHN1Y2gg
YXMgoadSYW5nZSANCj4+IChzdGFydCB3IHNtYWxsZXN0KaGoIHRoZW4gb2J2aW91c2x5IGRl
cml2ZWQgU1JNUyBlbnRyaWVzIHdpbGwgbGVuZCBhIA0KPj4gZGlmZmVyZW50IHJlc3VsdCB0
aGFuIG9yaWdpbmFsIFNSTVMgZW50cmllcy4gDQo+PiBXaXRoIHRoZSBwcmUtcHJlZml4IHJl
c29sdXRpb24sIHRoZSBvbmx5IGluZm9ybWF0aW9uIGtlcHQgZnJvbSB0aGUgDQo+PiBvcmln
aW5hbCBTUk1TIGVudHJ5IGlzIHRoZSBwcmVmZXJlbmNlIGFuZCB0aGUgYWR2ZXJ0aXNpbmcg
b3Igb3duZXIgcm91dGVyLiANCj4+IEFueXRoaW5nIGVsc2UgaXMgbm90IHVzZWQuIEl0IHNl
ZW1zIHRvIG1lIGEgc2ltcGxlIGFsZ29yaXRobSBiYXNlZCBvbiANCj4+IHByZWZlcmVuY2Ug
Zmlyc3QgdGhlbiBmb2xsb3dlZCBieSBzb21lIHJ1bGUgb24gc2VsZWN0aW5nIHRoZSBhZHZl
cnRpc2luZyANCj4+IHJvdXRlciBpZiBjb25mbGljdHMgZXhpc3Qgd2l0aGluIHRoZSBzYW1l
IHByZWZlcmVuY2Ugd291bGQgd29yay4NCj4+ICANCj4+IFtMZXM6XSBZb3UgaGF2ZSBpbXBs
ZW1lbnRlZCB0aGluZ3MgaW4gYSBjZXJ0YWluIHdheS4gU29tZW9uZSBlbHNlIG1pZ2h0IA0K
Pj4gY2hvb3NlIHRvIGltcGxlbWVudCBpbiBhIGRpZmZlcmVudCB3YXkuIEEgbm9ybWF0aXZl
IHNwZWNpZmljYXRpb24gZG9lcyBub3QgDQo+PiAoYW5kIHNob3VsZCBub3QpIGNvbnN0cmFp
biBhbiBpbXBsZW1lbnRhdGlvbi4gV2hhdCBpcyBiZWluZyBpbGx1c3RyYXRlZCANCj4+IGhl
cmUgaXMgdGhhdCBpZiB0aGUgaW1wbGVtZW50YXRpb24gZG9lcyBub3QgcmV0YWluIHRoZSB1
bmRlcml2ZWQgZW50cnkgKGluIA0KPj4gd2hhdGV2ZXIgaW50ZXJuYWwgZm9ybSBpdCBjaG9v
c2VzKSBkaWZmZXJlbnQgcmVzdWx0cyB3aWxsIGJlIG9idGFpbmVkIA0KPj4gYmVjYXVzZSB0
aGUgcHJlZmVyZW5jZSBhbGdvcml0aG0gZGVwZW5kcyBvbiBjb21wYXJpbmcgdGhlIHVuZGVy
aXZlZCByYW5nZXMuDQo+PiAgDQo+PiAzLiAgICAgRmluYWxseSwgdGhlcmUgaXMgc29tZXRo
aW5nIHdoaWNoIGhhcyBub3QgYmVlbiBhZGRyZXNzZWQgaW4gdGhlIA0KPj4gc2xpZGVzLiBU
aGVyZSBpcyBzdGlsbCBhIHBvc3NpYmlsaXR5IG9mIGNvbmZsaWN0aW5nIGVudHJpZXMgYW1v
bmcgU0lEcyANCj4+IGFkdmVydGlzZWQgdXNpbmcgdGhlIHByZWZpeCBTSUQgc3ViLVRMViB3
aXRoaW4gYSBQcmVmaXggVExWIChJUy1JUyBJUCANCj4+IFJlYWNoIFRMViBvciBPU1BGIEV4
dGVuZGVkIFByZWZpeCBUTFYpLiBBIHNpbXBsZSBydWxlIHNlbGVjdGluZyB0aGUgDQo+PiBh
ZHZlcnRpc2luZyByb3V0ZXIgc2hvdWxkIGFsc28gd29yayBmaW5lIGhlcmUuDQo+PiAgDQo+
PiBbTGVzOl0gTm8goVYgc291cmNlIG9mIGFuIGFkdmVydGlzZW1lbnQgaGFzIGJlZW4gcXVp
dGUgDQo+PiANCj4+IGRlbGliZXJhdGVseSBleGNsdWRlZCBmcm9tIHRoZSBwcmVmZXJlbmNl
IGFsZ29yaXRobS4gV2l0aCANCj4+IHJlZGlzdHJpYnV0aW9uL3JvdXRlIGxlYWtpbmcgdGhl
IHNvdXJjZSBvZiBhbiBhZHZlcnRpc2VtZW50IG1heSBhcHBlYXIgdG8gDQo+PiBiZSBkaWZm
ZXJlbnQgb24gZGlmZmVyZW50IHJvdXRlcnMtIHRoaXMgd291bGQgcmVzdWx0IGluIGRpZmZl
cmVudCByZXN1bHRzIA0KPj4gb24gZGlmZmVyZW50IHJvdXRlcnMuDQo+PiAgDQo+PiAgICBM
ZXMNCj4+ICANCj4+IFJlZ2FyZHMsDQo+PiBNdXN0YXBoYS4NCj4+ICANCj4+IEZyb206IExl
cyBHaW5zYmVyZyAoZ2luc2JlcmcpIFttYWlsdG86Z2luc2JlcmdAY2lzY28uY29tXSANCj4+
IFNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMDksIDIwMTYgMTo0OSBQTQ0KPj4gVG86IEFpc3Nh
b3VpLCBNdXN0YXBoYSAoTm9raWEgLSBDQSkgPG11c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNv
bT47IA0KPj4gc3ByaW5nQGlldGYub3JnDQo+PiBTdWJqZWN0OiBSRTogU0lEIENvbmZsaWN0
IFJlc29sdXRpb246IEEgU2ltcGxlciBQcm9wb3NhbA0KPj4gIA0KPj4gTXVzdGFwaGEgLQ0K
Pj4gIA0KPj4gRnJvbTogQWlzc2FvdWksIE11c3RhcGhhIChOb2tpYSAtIENBKSBbbWFpbHRv
Om11c3RhcGhhLmFpc3Nhb3VpQG5va2lhLmNvbV0gDQo+PiBTZW50OiBGcmlkYXksIERlY2Vt
YmVyIDA5LCAyMDE2IDc6NDQgQU0NCj4+IFRvOiBMZXMgR2luc2JlcmcgKGdpbnNiZXJnKTsg
c3ByaW5nQGlldGYub3JnDQo+PiBTdWJqZWN0OiBSRTogU0lEIENvbmZsaWN0IFJlc29sdXRp
b246IEEgU2ltcGxlciBQcm9wb3NhbA0KPj4gIA0KPj4gSSBoYXZlIGEgY291cGxlIG9mIGNv
bW1lbnRzIG9uIHRoZSBiZWxvdyBwcm9wb3NhbC4NCj4+ICANCj4+IDEuICAgICBSZWdhcmRp
bmcgdGhlIFNSTVMgUHJlZmVyZW5jZSBTdWItVExWIGluIHNlY3Rpb24gMy4xIG9mIHRoZSBk
cmFmdC4gDQo+PiBJbiBtYW55IGNhc2VzLCBhIGNvbmZpZ3VyYXRpb24gb24gdGhlIHJlc29s
dmluZyByb3V0ZXIgY2FuIGFzc2lnbiBhIA0KPj4gcHJlZmVyZW5jZSB0byBlYWNoIFNSTVMg
aW4gY2FzZSB0aGVyZSBpcyBubyBhZHZlcnRpc2VtZW50IG9mIHRoaXMgc3ViLVRMViANCj4+
IG9yIHRvIG92ZXJyaWRlIGFuIGFkdmVydGlzZWQgdmFsdWUuIEkgcHJvcG9zZSB0aGF0IHRo
aXMgb3B0aW9uIGJlIGFsbG93ZWQuIA0KPj4gSGVyZSBpcyBhIHByb3Bvc2VkIHVwZGF0ZSB0
byB0aGUgcmVsZXZhbnQgcGFyYWdyYXBoOg0KPj4goacNCj4+ICAgICAgICAgICAgQWR2ZXJ0
aXNlbWVudCBvZiBhIHByZWZlcmVuY2UgdmFsdWUgaXMgb3B0aW9uYWwuICBOb2RlcyB3aGlj
aCANCj4+IGRvIG5vdA0KPj4gICAgICAgICAgIGFkdmVydGlzZSBhIHByZWZlcmVuY2UgdmFs
dWUgYXJlIGFzc2lnbmVkIGEgcHJlZmVyZW5jZSB2YWx1ZSBvZiANCj4+IDEyOC4gICAgICAg
ICAgICAgICAgICAgICAgICANCj4+ICAgICAgICAgICAgQSByZXNvbHZpbmcgcm91dGVyIGNh
biBvdmVycmlkZSB0aGUgZGVmYXVsdCBvciB0aGUgYWR2ZXJ0aXNlZCANCj4+IHZhbHVlIGJ5
IGxvY2FsIHBvbGljeS4NCj4+IKGnDQo+PiBbTGVzOl0gSW4gb3JkZXIgdG8gZ2V0IGNvbnNp
c3RlbnQgY29uZmxpY3QgcmVzb2x1dGlvbiBvbiBhbGwgbm9kZXMgaW4gdGhlIA0KPj4gbmV0
d29yaywgaXQgaXMgbmVjZXNzYXJ5IHRoYXQgdGhleSBhbGwgaGF2ZSB0aGUgc2FtZSBkYXRh
YmFzZSChViB3aGljaCANCj4+IGluY2x1ZGVzIHRoZSBwcmVmZXJlbmNlIHZhbHVlLiBJZiB5
b3UgYWxsb3cgbG9jYWwgcG9saWN5IHRvIG1vZGlmeSB0aGUgDQo+PiBwcmVmZXJlbmNlIHlv
dSBubyBsb25nZXIgaGF2ZSBjb25zaXN0ZW50IGRhdGFiYXNlcyBvbiBhbGwgbm9kZXMgYW5k
IHdlIGNhbiANCj4+IG5vIGxvbmdlciBndWFyYW50ZWUgY29uc2lzdGVudCBjb25mbGljdCBy
ZXNvbHV0aW9uLiBTbyB5b3VyIHByb3Bvc2FsIGlzIA0KPj4gbm90IHZpYWJsZSBJTU8uDQo+
PiAgDQo+PiAyLiAgICAgSSBhbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgY29uY2VwdCBv
ZiBzb3J0aW5nIFNSTVMgZW50cmllcyB3aGljaCANCj4+IGhhdmUgZGlmZmVyZW50IHByZWZp
eGVzIGFuZCBkaWZmZXJlbnQgcmFuZ2Ugc2l6ZXMuICANCj4+IFNpbmNlIGEgU0lEIGFkdmVy
dGlzZWQgaW4gYSBwcmVmaXggU0lEIHN1Yi1UTFYgd2l0aGluIGEgUHJlZml4IFRMViAoSVMt
SVMgDQo+PiBJUCBSZWFjaCBUTFYgb3IgT1NQRiBFeHRlbmRlZCBQcmVmaXggVExWKSBoYXMg
aGlnaGVyIHByaW9yaXR5IG92ZXIgYSBTSUQgDQo+PiBmb3IgdGhlIHNhbWUgcHJlZml4IGFk
dmVydGlzZWQgZnJvbSBhIFNSTVMsIHRoZW4geW91IGhhdmUgdG8gYWRkIHRvIHRoZSANCj4+
IGJlbG93IHNvcnRpbmcgYW4gZW50cnkgZm9yIGVhY2ggaW5kaXZpZHVhbCBwcmVmaXggd2hp
Y2ggYWR2ZXJ0aXNlZCBhIA0KPj4gcHJlZml4IFNJRCBzdWItVExWIHdpdGhpbiBhIHByZWZp
eCBUTFYuIA0KPj4gQXQgdGhpcyBwb2ludCwgdGhlIGNvbmNlcHQgb2YgYW4gZW50cnkgd2l0
aCBtdWx0aXBsZSBwcmVmaXhlcyBpcyBtb290IGFuZCANCj4+IHlvdSBtYXkgYXMgd2VsbCBq
dXN0IHNvcnQgb24gYSBwZXIgcHJlZml4IGJhc2lzIHdoaWNoIGlzIHRoZSBtb3N0IG5hdHVy
YWwgDQo+PiB0aGluZyB0byBkbyBnaXZlbiB0aGF0IHRoZSBwcmVmaXggcmVzb2x1dGlvbiBh
bmQgdGhlbiB0aGUgU0lEIHJlc29sdXRpb24gDQo+PiBhcmUgcGVyZm9ybWVkIG9uIGEgcGVy
IHByZWZpeCBiYXNpcy4gU0lEIGNvbmZsaWN0cyBjYW4gYmUgcmVzb2x2ZWQgb24gYSANCj4+
IHBlciBwcmVmaXggYmFzaXMgdXNpbmcgdGhlIGJlbG93IHByb3Bvc2VkIHByZWZlcmVuY2Ug
YWxnb3JpdGhtIHdpdGhvdXQgDQo+PiBoYXZpbmcgdG8gaWdub3JlIFNJRCB2YWx1ZXMgZm9y
IHVucmVsYXRlZCBwcmVmaXhlcyBqdXN0IGJlY2F1c2UgaXQgaGFwcGVucyANCj4+IHRoYXQg
dGhleSB3ZXJlIGFkdmVydGlzZWQgaW4gdGhlIHNhbWUgU1JNUyBlbnRyeS4NCj4+ICANCj4+
IFtMZXM6XSBUaGUgc2ltcGxlciBwcm9wb3NhbCBkb2VzIG5vdCByZXF1aXJlIHNvcnRpbmcg
b24gYW55dGhpbmcgb3RoZXIgDQo+PiB0aGFuIHByZWZlcmVuY2UuIEFmdGVyIHRoYXQsIHlv
dSBjYW4gcHJvY2VzcyBlbnRyaWVzIGluIGFueSBvcmRlciB5b3Ugd2FudCANCj4+IGFuZCB5
b3Ugd2lsbCBnZXQgdGhlIHNhbWUgYW5zd2VyLg0KPj4gV2l0aCChp0lnbm9yZSBPdmVybGFw
IE9ubHmhqCBvbmUgb2YgdGhlIGlzc3VlcyB3aXRoIHRyeWluZyB0byB1c2UgdGhlIA0KPj4g
bm9uLWNvbmZsaWN0aW5nIHBvcnRpb25zIG9mIGEgbWFwcGluZyBlbnRyeSB3aGljaCBoYXMg
YSByYW5nZSA+IDEgaXMgdGhhdCANCj4+IHRoZSBvcmRlciBpbiB3aGljaCB5b3UgcHJvY2Vz
cyBlbnRyaWVzIGluZmx1ZW5jZXMgdGhlIHJlc3VsdC4gUGxlYXNlIHNlZSANCj4+IHNsaWRl
cyAxNyChViAyMCBmcm9tIHRoZSBJRVRGOTcgcHJlc2VudGF0aW9uOiANCj4+IA0KaHR0cHM6
Ly93d3cuaWV0Zi5vcmcvcHJvY2VlZGluZ3MvOTcvc2xpZGVzL3NsaWRlcy05Ny1zcHJpbmct
MV9pZXRmOTdfZHJhZnQtaWV0Zi1zcHJpbmctY29uZmxpY3QtcmVzb2x1dGlvbi0wMi0wMC5w
cHR4IA0KPj4gZm9yIHNvbWUgc2ltcGxlIGV4YW1wbGVzIG9mIHRoaXMuDQo+PiAgDQo+PiAg
ICBMZXMNCj4+ICANCj4+ICANCj4+IFJlZ2FyZHMsDQo+PiBNdXN0YXBoYS4NCj4+ICANCj4+
IEZyb206IHNwcmluZyBbbWFpbHRvOnNwcmluZy1ib3VuY2VzQGlldGYub3JnXSBPbiBCZWhh
bGYgT2YgTGVzIEdpbnNiZXJnIA0KPj4gKGdpbnNiZXJnKQ0KPj4gU2VudDogU3VuZGF5LCBE
ZWNlbWJlciAwNCwgMjAxNiA3OjA0IFBNDQo+PiBUbzogc3ByaW5nQGlldGYub3JnDQo+PiBT
dWJqZWN0OiBbc3ByaW5nXSBTSUQgQ29uZmxpY3QgUmVzb2x1dGlvbjogQSBTaW1wbGVyIFBy
b3Bvc2FsDQo+PiAgDQo+PiBXaGVuIHRoZSBwcm9ibGVtIGFkZHJlc3NlZCBieSBkcmFmdC1p
ZXRmLXNwcmluZy1jb25mbGljdC1yZXNvbHV0aW9uIHdhcyANCj4+IGZpcnN0IA0KPj4gcHJl
c2VudGVkIGF0IElFVEYgOTQsIHRoZSBhdXRob3JzIGRlZmluZWQgdGhlIGZvbGxvd2luZyBw
cmlvcml0aWVzOg0KPj4gIA0KPj4gMSlEZXRlY3QgdGhlIHByb2JsZW0NCj4+IDIpUmVwb3J0
IHRoZSBwcm9ibGVtDQo+PiBUaGlzIGFsZXJ0cyB0aGUgbmV0d29yayBvcGVyYXRvciB0byB0
aGUgZXhpc3RlbmNlIG9mIGEgY29uZmxpY3Qgc28gdGhhdA0KPj4gdGhlIGNvbmZpZ3VyYXRp
b24gZXJyb3IgY2FuIGJlIGNvcnJlY3RlZC4NCj4+IDMpRGVmaW5lIGNvbnNpc3RlbnQgYmVo
YXZpb3INCj4+IFRoaXMgYXZvaWRzIG1pcy1mb3J3YXJkaW5nIHdoaWxlIHRoZSBjb25mbGlj
dCBleGlzdHMuDQo+PiA0KURvbqGmdCBvdmVyZW5naW5lZXIgdGhlIHNvbHV0aW9uDQo+PiBH
aXZlbiB0aGF0IGl0IGlzIGltcG9zc2libGUgdG8ga25vdyB3aGljaCBvZiB0aGUgY29uZmxp
Y3RpbmcgZW50cmllcw0KPj4gaXMgdGhlIGNvcnJlY3Qgb25lLCB3ZSBzaG91bGQgYXBwbHkg
YSBzaW1wbGUgYWxnb3JpdGhtIHRvIHJlc29sdmUgdGhlIA0KPj4gY29uZmxpY3QuDQo+PiA1
KUFncmVlIG9uIHRoZSByZXNvbHV0aW9uIGJlaGF2aW9yDQo+PiAgDQo+PiBUaGUgcmVzb2x1
dGlvbiBiZWhhdmlvciB3YXMgZGVsaWJlcmF0ZWx5IHRoZSBsYXN0IHBvaW50IGJlY2F1c2Ug
aXQgd2FzIA0KPj4gY29uc2lkZXJlZCB0aGUgbGVhc3QgaW1wb3J0YW50Lg0KPj4gIA0KPj4g
SW5wdXQgd2FzIHJlY2VpdmVkIG92ZXIgdGhlIHBhc3QgeWVhciB3aGljaCBlbXBoYXNpemVk
IHRoZSBpbXBvcnRhbmNlIG9mDQo+PiB0cnlpbmcgdG8gIm1heGltaXplIGZvcndhcmRpbmci
IGluIHRoZSBwcmVzZW5jZSBvZiBjb25mbGljdHMuIFN1YnNlcXVlbnQNCj4+IHJldmlzaW9u
cyBvZiB0aGUgZHJhZnQgaGF2ZSB0cmllZCB0byBhZGRyZXNzIHRoaXMgY29uY2Vybi4gSG93
ZXZlciB0aGUgDQo+PiBhdXRob3JzIA0KPj4gaGF2ZSByZXBlYXRlZGx5IHN0cmVzc2VkIHRo
YXQgdGhlIHNvbHV0aW9uIGJlaW5nIHByb3Bvc2VkIA0KPj4gKCJpZ25vcmUgb3ZlcmxhcCBv
bmx5Iikgd2FzIG1vcmUgY29tcGxleCB0aGFuIG90aGVyIG9mZmVyZWQgYWx0ZXJuYXRpdmVz
IA0KPj4gYW5kIA0KPj4gd291bGQgYmUgbW9yZSBkaWZmaWN1bHQgdG8gZ3VhcmFudGVlIGlu
dGVyb3BlcmFiaWxpdHkgYmVjYXVzZSBzdWJ0bGUgDQo+PiBkaWZmZXJlbmNlcyBpbiBhbiBp
bXBsZW1lbnRhdGlvbiBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCByZXN1bHRzLg0KPj4gIA0K
Pj4gQXQgSUVURjk3IHNpZ25pZmljYW50IGZlZWRiYWNrIHdhcyByZWNlaXZlZCBwcmVmZXJy
aW5nIGEgc2ltcGxlciBzb2x1dGlvbiANCj4+IHRvIA0KPj4gdGhlIHByb2JsZW0uIFRoZSBh
dXRob3JzIGFyZSB2ZXJ5IHN5bXBhdGhldGljIHRvIHRoaXMgZmVlZGJhY2sgYW5kIA0KPj4g
dGhlcmVmb3JlIA0KPj4gYXJlIHByb3Bvc2luZyBhIHNvbHV0aW9uIGJhc2VkIG9uIHdoYXQg
dGhlIGRyYWZ0IGRlZmluZXMgYXMgdGhlICJJZ25vcmUiIA0KPj4gcG9saWN5IC0gd2hlcmUg
YWxsIGVudHJpZXMgd2hpY2ggYXJlIGluIGNvbmZsaWN0IGFyZSBpZ25vcmVkLiBXZSBiZWxp
ZXZlIA0KPj4gdGhpcyANCj4+IGlzIGZhciBtb3JlIGRlc2lyYWJsZSBhbmQgYWxpZ25zIHdp
dGggdGhlIHByaW9yaXRpZXMgbGlzdGVkIGFib3ZlLg0KPj4gIA0KPj4gV2Ugb3V0bGluZSB0
aGUgcHJvcG9zZWQgc29sdXRpb24gYmVsb3cgYW5kIHdvdWxkIGxpa2UgdG8gcmVjZWl2ZSBm
ZWVkYmFjayANCj4+IGZyb20gDQo+PiB0aGUgV0cgYmVmb3JlIHB1Ymxpc2hpbmcgdGhlIG5l
eHQgcmV2aXNpb24gb2YgdGhlIGRyYWZ0Lg0KPj4gIA0KPj4gICAgTGVzIChvbiBiZWhhbGYg
b2YgdGhlIGF1dGhvcnMpDQo+PiAgDQo+PiBOZXcgUHJvcG9zYWwNCj4+ICANCj4+IEluIHRo
ZSBsYXRlc3QgcmV2aXNpb24gb2YgdGhlIGRyYWZ0ICJTUk1TIFByZWZlcmVuY2UiIHdhcyBp
bnRyb2R1Y2VkLiBUaGlzIA0KPj4gcHJvdmlkZXMgYSB3YXkgZm9yIGEgbnVtZXJpY2FsIHBy
ZWZlcmVuY2UgdG8gYmUgZXhwbGljaXRseSBhc3NvY2lhdGVkIHdpdGggDQo+PiBhbiANCj4+
IFNSTVMgYWR2ZXJ0aXNlbWVudC4gVXNpbmcgdGhpcyBhbiBvcGVyYXRvciBjYW4gaW5kaWNh
dGUgd2hpY2ggDQo+PiBhZHZlcnRpc2VtZW50IGlzIA0KPj4gdG8gYmUgcHJlZmVycmVkIHdo
ZW4gYSBjb25mbGljdCBpcyBwcmVzZW50LiBUaGUgYXV0aG9ycyB0aGluayB0aGlzIGlzIGEg
DQo+PiB1c2VmdWwgDQo+PiBhZGRpdGlvbiBhbmQgd2UgdGhlcmVmb3JlIHdhbnQgdG8gaW5j
bHVkZSB0aGlzIGluIHRoZSBuZXcgc29sdXRpb24uDQo+PiAgDQo+PiBUaGUgbmV3IHByZWZl
cmVuY2UgcnVsZSB1c2VkIHRvIHJlc29sdmUgY29uZmxpY3RzIGlzIGRlZmluZWQgYXMgZm9s
bG93czoNCj4+ICANCj4+IEEgZ2l2ZW4gbWFwcGluZyBlbnRyeSBpcyBjb21wYXJlZCBhZ2Fp
bnN0IGFsbCBtYXBwaW5nIGVudHJpZXMgaW4gdGhlIA0KPj4gZGF0YWJhc2UgDQo+PiB3aXRo
IGEgcHJlZmVyZW5jZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gaXRzIG93bi4gSWYgdGhl
cmUgaXMgYSANCj4+IGNvbmZsaWN0LCANCj4+IHRoZSBtYXBwaW5nIGVudHJ5IHdpdGggbG93
ZXIgcHJlZmVyZW5jZSBpcyBpZ25vcmVkLiBJZiB0d28gbWFwcGluZyBlbnRyaWVzIA0KPj4g
YXJlDQo+PiBpbiBjb25mbGljdCBhbmQgaGF2ZSBlcXVhbCBwcmVmZXJlbmNlIHRoZW4gYm90
aCBlbnRyaWVzIGFyZSBpZ25vcmVkLg0KPj4gIA0KPj4gSW1wbGVtZW50YXRpb24gb2YgdGhp
cyBwb2xpY3kgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KPj4gIA0KPj4gU3RlcCAxOiBXaXRo
aW4gYSBzaW5nbGUgYWRkcmVzcy1mYW1pbHkvYWxnb3JpdGhtL3RvcG9sb2d5IHNvcnQgZW50
cmllcyANCj4+IGJhc2VkIG9uIHByZWZlcmVuY2UgDQo+PiBTdGVwIDI6IFN0YXJ0aW5nIHdp
dGggdGhlIGxvd2VzdCBwcmVmZXJlbmNlIGVudHJpZXMsIHJlc29sdmUgcHJlZml4IA0KPj4g
Y29uZmxpY3RzIA0KPj4gdXNpbmcgdGhlIGFib3ZlIHByZWZlcmVuY2UgcnVsZS4gVGhlIG91
dHB1dCBpcyBhbiBhY3RpdmUgcG9saWN5IHBlciANCj4+IHRvcG9sb2d5Lg0KPj4gU3RlcCAz
OiBUYWtlIHRoZSBvdXRwdXRzIGZyb20gU3RlcCAyIGFuZCBhZ2FpbiBzb3J0IHRoZW0gYnkg
cHJlZmVyZW5jZSANCj4+IFN0ZXAgNDogU3RhcnRpbmcgd2l0aCB0aGUgbG93ZXN0IHByZWZl
cmVuY2UgZW50cmllcywgcmVzb2x2ZSBTSUQgY29uZmxpY3RzIA0KPj4gdXNpbmcgdGhlIGFi
b3ZlIHByZWZlcmVuY2UgcnVsZQ0KPj4gIA0KPj4gVGhlIG91dHB1dCBmcm9tIFN0ZXAgNCBp
cyB0aGVuIHRoZSBjdXJyZW50IEFjdGl2ZSBQb2xpY3kuDQo+PiAgDQo+PiBIZXJlIGFyZSBh
IGZldyBleGFtcGxlcy4gRWFjaCBtYXBwaW5nIGVudHJ5IGlzIHJlcHJlc2VudGVkIGJ5IHRo
ZSB0dXBsZToNCj4+IChQcmVmZXJlbmNlLCBQcmVmaXgvbWFzayBJbmRleCByYW5nZSA8Iz4p
DQo+PiAgDQo+PiBFeGFtcGxlIDE6DQo+PiAgDQo+PiAxLiAoMTUwLCAxLjEuMS4xLzMyIDEw
MCByYW5nZSAxMDApDQo+PiAyLiAoMTQ5LCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMjAwKQ0K
Pj4gMy4gKDE0OCwgMS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCkNCj4+ICANCj4+IEVudHJ5
IDMgY29uZmxpY3RzIHdpdGggZW50cnkgMiwgaXQgaXMgaWdub3JlZC4NCj4+IEVudHJ5IDIg
Y29uZmxpY3RzIHdpdGggZW50cnkgMSwgaXQgaXMgaWdub3JlZC4NCj4+IEFjdGl2ZSBwb2xp
Y3k6DQo+PiAgDQo+PiAoMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSAxMDApDQo+PiAgDQo+
PiBFeGFtcGxlIDI6DQo+PiAgDQo+PiAxLiAoMTUwLCAxLjEuMS4xLzMyIDEwMCByYW5nZSAx
MDApDQo+PiAyLiAoMTUwLCAxLjEuMS4xMC8zMiAyMDAgcmFuZ2UgMjAwKQ0KPj4gMy4gKDE1
MCwgMS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCkNCj4+IDQuICgxNTAsIDIuMi4yLjEvMzIg
MTAwMCByYW5nZSAxKQ0KPj4gIA0KPj4gRW50cnkgMSBjb25mbGljdHMgd2l0aCBlbnRyeSAy
LCBib3RoIGFyZSBtYXJrZWQgYXMgaWdub3JlLg0KPj4gRW50cnkgMyBjb25mbGljdHMgd2l0
aCBlbnRyeSAyLiBJdCBpcyBtYXJrZWQgYXMgaWdub3JlLg0KPj4gRW50cnkgNCBoYXMgbm8g
Y29uZmxpY3RzIHdpdGggYW55IGVudHJpZXMNCj4+ICANCj4+IEFjdGl2ZSBwb2xpY3k6DQo+
PiAoMTUwLCAyLjIuMi4xLzMyIDEwMDAgcmFuZ2UgMSkNCj4+ICANCj4+IEV4YW1wbGUgMzoN
Cj4+ICANCj4+IDEuICgxNTAsIDEuMS4xLjEvMzIgMTAwIHJhbmdlIDUwMCkNCj4+IDIuICgx
NTAsIDEuMS4xLjEwLzMyIDIwMCByYW5nZSAyMDApDQo+PiAzLiAoMTUwLCAxLjEuMS4xMDEv
MzIgNTAwIHJhbmdlIDEwKQ0KPj4gNC4gKDE1MCwgMi4yLjIuMS8zMiAxMDAwIHJhbmdlIDEp
DQo+PiAgDQo+PiBFbnRyeSAxIGNvbmZsaWN0cyB3aXRoIGVudHJpZXMgMiwgMywgYW5kICA0
LiBBbGwgZW50cmllcyBhcmUgbWFya2VkIGlnbm9yZS4NCj4+ICANCj4+IEFjdGl2ZSBwb2xp
Y3k6DQo+PiBFbXB0eQ0KPj4gIA0KPj4gRXhhbXBsZSA0Og0KPj4gIA0KPj4gMS4gKDE1MCwg
MS4xLjEuMS8zMiAxMDAgcmFuZ2UgMTApDQo+PiAyLiAoMTQ5LCAxLjEuMS4xMC8zMiAyMDAg
cmFuZ2UgMzAwKQ0KPj4gMy4gKDE0OSwgMS4xLjEuMTAxLzMyIDUwMCByYW5nZSAxMCkNCj4+
IDQuICgxNDgsIDIuMi4yLjEvMzIgMTAwMCByYW5nZSAxKQ0KPj4gIA0KPj4gRW50cnkgNCBj
b25mbGljdHMgd2l0aCBlbnRyeSAyLiBJdCBpcyBtYXJrZWQgaWdub3JlLg0KPj4gRW50cnkg
MiBjb25mbGljdHMgd2l0aCBlbnRyeSAzLiBFbnRyaWVzIDIgYW5kIDMgYXJlIG1hcmtlZCBp
Z25vcmUuDQo+PiAgDQo+PiBBY3RpdmUgcG9saWN5Og0KPj4gKDE1MCwgMS4xLjEuMS8zMiAx
MDAgcmFuZ2UgMTApDQo+PiAgDQo+PiAgDQo+PiAgDQo+PiAgDQo+PiANCj4+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+PiBzcHJpbmcgbWFp
bGluZyBsaXN0DQo+PiBzcHJpbmdAaWV0Zi5vcmcNCj4+IGh0dHBzOi8vd3d3LmlldGYub3Jn
L21haWxtYW4vbGlzdGluZm8vc3ByaW5nDQo+PiAgDQo+IA0KPiAgDQo+IA0KPiBfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBzcHJpbmcgbWFp
bGluZyBsaXN0DQo+IHNwcmluZ0BpZXRmLm9yZw0KPiBodHRwczovL3d3dy5pZXRmLm9yZy9t
YWlsbWFuL2xpc3RpbmZvL3NwcmluZw==

