
From nobody Tue Jul  2 10:14:55 2019
Return-Path: <zzhang@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 721371206CC for <rift@ietfa.amsl.com>; Tue,  2 Jul 2019 10:14:50 -0700 (PDT)
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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 DBsoCQ1PtKOx for <rift@ietfa.amsl.com>; Tue,  2 Jul 2019 10:14:48 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 413F1120141 for <rift@ietf.org>; Tue,  2 Jul 2019 10:14:48 -0700 (PDT)
Received: from pps.filterd (m0108163.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x62HEOej030828; Tue, 2 Jul 2019 10:14:45 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : content-type : mime-version; s=PPS1017; bh=1axvpZz9+Qt4G+QHTB2B1pN/3C0xwxwcfDmTvVCcX1g=; b=p1anHdLuiU52+DCLphqjjuhKougQLoJVGHt1q0EliHpX5HAG8YKI9ywiZkLayhlBJb1W fFj7HvGjH+reMaW2DXMZpnDGhwOcIrk5LiERY0+naZ/yjX+OHcSBa1yhZRfjC60Drf6V vUr6lap0PXr7Rv9EOe89EaERWQl3aj2KrTJfkU4cYU3+A0WzVleVSgQlZgnlM5sLiNJV SvjNrVe9YsoY1Se1Rzdq367o10SZPQvkjD+BbqthrIvCp+NbP+Q625I3Yfaf1gm7EVKh SUGPegRQ8q0Pl9RZhyLMg9ImuZMpOIZXAkSOukeFEnF1Qil9PY+MKfRcABtpjeVMn71Y Ng== 
Received: from nam02-cy1-obe.outbound.protection.outlook.com (mail-cys01nam02lp2055.outbound.protection.outlook.com [104.47.37.55]) by mx0b-00273201.pphosted.com with ESMTP id 2tg3qwgug0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 02 Jul 2019 10:14:45 -0700
Received: from DM5PR05MB3548.namprd05.prod.outlook.com (10.174.242.153) by DM5PR05MB3083.namprd05.prod.outlook.com (10.173.223.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2052.11; Tue, 2 Jul 2019 17:14:42 +0000
Received: from DM5PR05MB3548.namprd05.prod.outlook.com ([fe80::c890:e1c9:8d87:8d5f]) by DM5PR05MB3548.namprd05.prod.outlook.com ([fe80::c890:e1c9:8d87:8d5f%6]) with mapi id 15.20.2052.010; Tue, 2 Jul 2019 17:14:42 +0000
From: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>
To: "rift@ietf.org" <rift@ietf.org>, Jeff Tantsura <jefftant.ietf@gmail.com>
Thread-Topic: Agenda slot requests for Montreal meeting
Thread-Index: AdUw+SAcfjKQgN6UQeyWcwf6kupNvQ==
Content-Class: 
Date: Tue, 2 Jul 2019 17:14:42 +0000
Message-ID: <DM5PR05MB354843C3810BEFE86BF79CECD4F80@DM5PR05MB3548.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-product: dlpe-windows
dlp-version: 11.2.0.14
dlp-reaction: no-action
msip_labels: MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=True; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Owner=zzhang@juniper.net; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SetDate=2019-07-02T17:14:40.9634480Z; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Name=Juniper Business Use Only; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Application=Microsoft Azure Information Protection; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ActionId=f1a8c1b3-443a-4713-9821-52c0a00c1c89; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Extended_MSFT_Method=Automatic
x-originating-ip: [66.129.241.14]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c2a4165f-ad19-44bb-8702-08d6ff10c610
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM5PR05MB3083; 
x-ms-traffictypediagnostic: DM5PR05MB3083:
x-ms-exchange-purlcount: 2
x-microsoft-antispam-prvs: <DM5PR05MB308332A02D6C8DD67CDB4F58D4F80@DM5PR05MB3083.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:3276;
x-forefront-prvs: 008663486A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(39860400002)(136003)(396003)(346002)(366004)(376002)(189003)(199004)(558084003)(5660300002)(478600001)(256004)(73956011)(486006)(74316002)(66476007)(52536014)(81156014)(66556008)(64756008)(66446008)(186003)(25786009)(8936002)(71190400001)(2906002)(81166006)(2501003)(71200400001)(66946007)(8676002)(790700001)(26005)(6436002)(68736007)(14454004)(6116002)(9326002)(33656002)(66066001)(99286004)(3846002)(6306002)(316002)(9686003)(110136005)(476003)(53936002)(6506007)(86362001)(55016002)(7696005)(7736002)(76116006)(102836004); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR05MB3083; H:DM5PR05MB3548.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: vSZGOW0faBLj2tduSJOxuCtHQ4v7mBuOgZd3tazWfwVL4UgVLbX3bERZJT2H9yKySI8XZyz8KsmW4ev//IuLcZLNc+jvZWq4gJ81etK2Ikt2u25ifkrXmS9QOwHLjkWrCs0g3a0BKYJtugxna34S5GodKn9YOkQS04+onG6t7/x/LQtph1vjkElh00ePcVJCYx3MZCmEvE2a2oZZIf+IzlVrFmNxGwEoXqQcDKbwW3Uc8hwu9Bh4iww7TufQPIB2yl+0DtKoJzVwagEnAReWGB8jT5yZXVY5P6G7HACdliO0LBKw0BdUAHfMqGKFn8EDBtSkl4R0dZKiroo2JZjks2pGsarxKDVDq1ypyl6CK/446z7gWbgwBnBg/7i0+1XOr+0e2KRJUBk4IVxCe4/YJ6EBslTEmt5lOCFmR2PHZBE=
Content-Type: multipart/alternative; boundary="_000_DM5PR05MB354843C3810BEFE86BF79CECD4F80DM5PR05MB3548namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: c2a4165f-ad19-44bb-8702-08d6ff10c610
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2019 17:14:42.5776 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zzhang@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR05MB3083
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-02_08:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=705 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907020189
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/SVSVyg7rAmq3A8EfBnd5O3FnE-Q>
Subject: [Rift] Agenda slot requests for Montreal meeting
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Jul 2019 17:14:53 -0000

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

Hi,

We're meeting on Thursday 7/25, 15:50-17:20.
Please send us your slot requests, with presenter name, draft name, and des=
ired time.

Thanks!
Jeff & Jeffrey


Juniper Business Use Only

--_000_DM5PR05MB354843C3810BEFE86BF79CECD4F80DM5PR05MB3548namp_
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:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.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"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">We&#8217;re meeting on Thursday 7/25, 15:50-17:20.<o=
:p></o:p></p>
<p class=3D"MsoNormal">Please send us your slot requests, with presenter na=
me, draft name, and desired time.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks!<o:p></o:p></p>
<p class=3D"MsoNormal">Jeff &amp; Jeffrey<o:p></o:p></p>
<br>
<p class=3D"msipfooter30b3d538" align=3D"Center" style=3D"margin:0"><span s=
tyle=3D"font-size:7.0pt;font-family:Calibri;color:#000000">Juniper Business=
 Use Only</span></p>
</div>
</body>
</html>

--_000_DM5PR05MB354843C3810BEFE86BF79CECD4F80DM5PR05MB3548namp_--


From nobody Wed Jul  3 00:51:01 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4D94F120735 for <rift@ietfa.amsl.com>; Wed,  3 Jul 2019 00:51:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 xCIG91X4Wbvx for <rift@ietfa.amsl.com>; Wed,  3 Jul 2019 00:50:58 -0700 (PDT)
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) (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 0401012072E for <rift@ietf.org>; Wed,  3 Jul 2019 00:50:57 -0700 (PDT)
Received: by mail-ed1-x536.google.com with SMTP id w20so1106441edd.2 for <rift@ietf.org>; Wed, 03 Jul 2019 00:50:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=CNLxNR4+4GihRumFeMl45ryd1cVvyT6wjH6QgAnxwAs=; b=rgYOWQC+i050AS/9mKyEzvXbFeUE9IdDhdTaLchIwOztcUoFkMOUpW9jqRAlhygwFy umutPTkVjd+dsKYotj3HuSnrrXxZF9bHnb6hPARKvSQK47K8fmB4UR0Mt12ZYzBn58Y+ aBRNDU/urMqhaCLHKUqJZfdDMNkQYh0sLPe10/H0EAf6KNCsFqY7D1ntiD+f0m7r6V/D BtayIueP48MnJe7oE/I9+fVzelniVRQwhGlg3589TN4qq3RMki1i9bUUbrv4n19AnBdG 22qo/VE4J3RAMKve8H8xcwCdihKMDiCCYeyapWVud1kVxPKFZHr1iCOYavRUqH2h8cvE wl1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=CNLxNR4+4GihRumFeMl45ryd1cVvyT6wjH6QgAnxwAs=; b=Df6xXhmAVsV5kVRlWCBE9ZRM922409zfaaAx1DH3Zi42id4yPBEvLmGvatz3LkrrmC YgUu3acMrxQIGWmON0p3GdTglFYakQOVvCALd+HDEMXzHnER6qBVezvTYG2ovCW/zAD3 gb3ISXOi/64TWCyIprzcxfQvpgACg7TEAaZ4tP7IZRsj5nvZJaoAlbf6vbniZtHxNoOr PClayxFqZlHFANMlg7IqH4Yx3hchcT7Mn00KNmoY5kKNDm1K9ucEFoYVry4CwWad8lRR 09pQ3YQK6lxCE55VxPX/ESbMp1cERvAI/6zaYFlz90nfEooxmY9h7EFdaIvujzJPx/C3 Ijsw==
X-Gm-Message-State: APjAAAVcKut/dv3jwUJhhyYDFB/ak9Qwr0ej1Fd0wRczbiPVS/FOyd0l bAyvd5xGwAl+cJv/a6Tkbnk=
X-Google-Smtp-Source: APXvYqwJVRAi+kkw89DU5nx7958tI2anQkmgarnZ3jqChIRVTnMmxi8/YJvFIfUsMJyWMBn7OMOdGw==
X-Received: by 2002:a17:907:2099:: with SMTP id pv25mr8489709ejb.6.1562140256423;  Wed, 03 Jul 2019 00:50:56 -0700 (PDT)
Received: from [145.94.242.178] ([145.94.242.178]) by smtp.gmail.com with ESMTPSA id c48sm452397edb.10.2019.07.03.00.50.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jul 2019 00:50:55 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <EE9BA6F5-0E72-4E8C-99A0-9D210F2A4D88@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_24DD9D35-3421-4F34-B1AE-C3EF65511AAA"
Mime-Version: 1.0 (Mac OS X Mail 12.0 \(3445.100.39\))
Date: Wed, 3 Jul 2019 09:50:54 +0200
In-Reply-To: <DM5PR05MB354843C3810BEFE86BF79CECD4F80@DM5PR05MB3548.namprd05.prod.outlook.com>
Cc: "rift@ietf.org" <rift@ietf.org>, Jeff Tantsura <jefftant.ietf@gmail.com>
To: "Jeffrey (Zhaohui) Zhang" <zzhang=40juniper.net@dmarc.ietf.org>
References: <DM5PR05MB354843C3810BEFE86BF79CECD4F80@DM5PR05MB3548.namprd05.prod.outlook.com>
X-Mailer: Apple Mail (2.3445.100.39)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/Go_nAeBJnbAj1MtIObG56gCph7k>
Subject: Re: [Rift] Agenda slot requests for Montreal meeting
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jul 2019 07:51:00 -0000

--Apple-Mail=_24DD9D35-3421-4F34-B1AE-C3EF65511AAA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Short (10 min?) slot for update on RIFT-Python implementation:
1) Security envelope
2) Flooding reduction
3) Positive disaggregation
4) Efficient TIE propagation (without decode and re-encode)
5) RIFT-Juniper - RIFT-Python interop testing

As usual, I will be attending remotely and Tony (or other volunteer) =
will present on my behalf.

=E2=80=94 Bruno

> On Jul 2, 2019, at 7:14 PM, Jeffrey (Zhaohui) Zhang =
<zzhang=3D40juniper.net@dmarc.ietf.org> wrote:
>=20
> Hi,
> =20
> We=E2=80=99re meeting on Thursday 7/25, 15:50-17:20.
> Please send us your slot requests, with presenter name, draft name, =
and desired time.
> =20
> Thanks!
> Jeff & Jeffrey
>=20
> Juniper Business Use Only
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org <mailto:RIFT@ietf.org>
> https://www.ietf.org/mailman/listinfo/rift =
<https://www.ietf.org/mailman/listinfo/rift>

--Apple-Mail=_24DD9D35-3421-4F34-B1AE-C3EF65511AAA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">Short=
 (10 min?) slot for update on RIFT-Python implementation:<div =
class=3D"">1) Security envelope</div><div class=3D"">2) Flooding =
reduction</div><div class=3D"">3) Positive disaggregation</div><div =
class=3D"">4) Efficient TIE propagation (without decode and =
re-encode)</div><div class=3D"">5) RIFT-Juniper - RIFT-Python interop =
testing<br class=3D""><div class=3D""><br class=3D""></div><div =
class=3D"">As usual, I will be attending remotely and Tony (or other =
volunteer) will present on my behalf.<div class=3D""><br =
class=3D""></div><div class=3D"">=E2=80=94 Bruno<br class=3D""><div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">On Jul =
2, 2019, at 7:14 PM, Jeffrey (Zhaohui) Zhang &lt;<a =
href=3D"mailto:zzhang=3D40juniper.net@dmarc.ietf.org" =
class=3D"">zzhang=3D40juniper.net@dmarc.ietf.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; caret-color: rgb(0, =
0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Hi,<o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">We=E2=80=99=
re meeting on Thursday 7/25, 15:50-17:20.<o:p class=3D""></o:p></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">Please send us your slot requests, with =
presenter name, draft name, and desired time.<o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Thanks!<o:p=
 class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">Jeff =
&amp; Jeffrey<o:p class=3D""></o:p></div><br class=3D""><div =
style=3D"margin: 0px;" class=3D""><span style=3D"font-size: 7pt; =
font-family: Calibri;" class=3D"">Juniper Business Use =
Only</span></div></div><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;" =
class=3D"">_______________________________________________</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">RIFT mailing list</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><a =
href=3D"mailto:RIFT@ietf.org" style=3D"color: rgb(149, 79, 114); =
text-decoration: underline; font-family: Helvetica; font-size: 12px; =
font-style: normal; font-variant-caps: normal; font-weight: normal; =
letter-spacing: normal; orphans: auto; text-align: start; text-indent: =
0px; text-transform: none; white-space: normal; widows: auto; =
word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" class=3D"">RIFT@ietf.org</a><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><a =
href=3D"https://www.ietf.org/mailman/listinfo/rift" style=3D"color: =
rgb(149, 79, 114); text-decoration: underline; font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: normal; letter-spacing: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" =
class=3D"">https://www.ietf.org/mailman/listinfo/rift</a></div></blockquot=
e></div><br class=3D""></div></div></div></body></html>=

--Apple-Mail=_24DD9D35-3421-4F34-B1AE-C3EF65511AAA--


From nobody Tue Jul  9 09:03:56 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DCA7F120743 for <rift@ietfa.amsl.com>; Tue,  9 Jul 2019 09:03:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 8time3emQbD2 for <rift@ietfa.amsl.com>; Tue,  9 Jul 2019 09:03:43 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 38B0A120762 for <rift@ietf.org>; Tue,  9 Jul 2019 09:03:39 -0700 (PDT)
Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x69Fx5FQ027901; Tue, 9 Jul 2019 09:03:38 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=QvRbgQ86GNBuXCBlgvs72ANxAhcFceLLFiYJxNVrgfY=; b=bI3Xf2vScqmr2TFIqaTP0g3HCkaE9NHy0G8r7morCpa+AeKBX2NmZX5dKkUENaGOXHVy GztmXKYtwPiFnscJFlWivs9nX3GJsEOgnLwd25jlGKNC2xT4OM82hSgPKHEX+WE67d53 gHY/Ndxy/7YTsvjjckJilp/Yubj38eK7xHPuFr/JenkQ1OUZgdsTS2qHhdAU7f4w7S5z ETsM4ZGPvCWHjLHoOrbAhCVkL5hx0/ZuRRT+hML+5chTITHBsxGMLVHLoxlD0SoCNCo/ MEllC0SPyy+rAtK4Fi1pqq+Ls2MHRMdY6VdbX4fLQVs76q5/MEXW96Q7FHQWsWYNcHUE Mw== 
Received: from nam04-co1-obe.outbound.protection.outlook.com (mail-co1nam04lp2057.outbound.protection.outlook.com [104.47.45.57]) by mx0a-00273201.pphosted.com with ESMTP id 2tmrbf8ktd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 09 Jul 2019 09:03:37 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kEWZchQU5CsWKwsfZdQ/in8ChUzinLdKwmff/FG0daL3yv15daXzjHN4Wrd1Teqg2aMa3X+jmt57xVHL/4kokoYnEKaqKyagSz1tx/O9N3ZBxV0bg7zC2KtMZ1/B0yXNpSF2AMLORvurOa744ZHfhEZsbXtRVE2z+dycsMXvBk+dnemuy1Ep0/rKkFMkzheOWkP+HKR/IOwpep6UnR4wnLYKqcnmCdYJOE3uYan5C1NpP8pbZVqiSGUCpWtCAbFT3fg5bVJQ9WOpDrht1LKSJKt0bCkW5MIEUV/JdrGlg0ZyM/i7t/5jy2DFCfSpTcbqkSdikJRltKq0kWS61nwU2g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QvRbgQ86GNBuXCBlgvs72ANxAhcFceLLFiYJxNVrgfY=; b=WXhaJMKSuTjX3P/YbF9aofDmAsxHykrAjh/NmR0qp7RgOPXHCqSuyaSrdFfJhWEGc8VSgb1ZeBabMU3zNR/0uSvh2q7QkPeGKhTglUiyyZEMIVGJRBI94Gg+ce3YoXZiedQYpEN7QT4TE8g4TYGpojVQdNbBZWxn7ZYSktS1WqrFKrS7ZJwK4nRIBTMBFbIfrSiMu3PBVkZ9oS/hBSF4T52dIzRS7wZyUBxRTRhbrHQkUWWZKWJ7gYTXtuse388PPRRVdUHz1qhkDrrh/a1zTuB5surtcOznBHevaGRVFJXazYNskhIKIDQ2ima5Dmhz2U0JgYshLuod0nuWPLbwhQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB3231.namprd05.prod.outlook.com (10.173.230.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.9; Tue, 9 Jul 2019 16:03:35 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2073.008; Tue, 9 Jul 2019 16:03:35 +0000
From: Antoni Przygienda <prz@juniper.net>
To: "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>, "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>, "EXT-zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: [Rift] Ipv4 and ipv6 cooperating in rift
Thread-Index: AQHVNlA8JouTnZSDOEiJbO/Xu4kdL6bCabZD
Date: Tue, 9 Jul 2019 16:03:35 +0000
Message-ID: <MWHPR05MB3279E72D3736A834BB036C9CACF10@MWHPR05MB3279.namprd05.prod.outlook.com>
References: <201907092008143097563@zte.com.cn>
In-Reply-To: <201907092008143097563@zte.com.cn>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [66.129.239.14]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3f3fad20-47bc-4586-982f-08d70486ffaa
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB3231; 
x-ms-traffictypediagnostic: MWHPR05MB3231:
x-ld-processed: bea78b3c-4cdb-4130-854a-1d193232e5f4,ExtAddr
x-microsoft-antispam-prvs: <MWHPR05MB323127636DD35967ADAD5C10ACF10@MWHPR05MB3231.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0093C80C01
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(346002)(39860400002)(396003)(376002)(366004)(136003)(189003)(199004)(8676002)(6246003)(81166006)(1941001)(54896002)(9686003)(2501003)(81156014)(52536014)(229853002)(53936002)(7736002)(55016002)(6436002)(476003)(66556008)(11346002)(2201001)(68736007)(19627405001)(486006)(8936002)(74316002)(2906002)(76116006)(5660300002)(66476007)(73956011)(66946007)(86362001)(446003)(66446008)(64756008)(33656002)(6116002)(256004)(25786009)(105004)(26005)(66066001)(6506007)(186003)(478600001)(14444005)(53546011)(14454004)(316002)(110136005)(76176011)(99286004)(7696005)(71190400001)(102836004)(71200400001)(3846002)(491001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB3231; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: H7as8T5sQ2fw7T751xovLt7RgHhwTvyZA3G4Fj6TiSEmB5e65zaUtEE7VLIsZFNaW1wBABCUyU+gjrGXtW2/Al8QkDFyy7kT2jLDs1Y0m5J1S4s82Xkcy2u3+z5vg4SLBJPQJjkevfMpEXtE6r48CXX9+gIldyJDCYOLKxMs9JHk5VHC/gN0xaL+OU8zRimjdfbANzH9fC9EXcLY3NMMErBagusGmmhCiJ4897czcAKKgjtyuI24oviCuEMoobqdcCkeTII4yjjkTquKQPtsIbOY9jajgR8fpW0V5GgV8R31DwoMB8dLEL0BLvUSP66Bp9uaodouyTsf2SIaLIMtT4wMZW2eLn5fkE19gYjiXfsBqKjsqmjcBy6wWnaeio8UfYRyTBvIOakf97228vGEv20zYiumj8eWYPkqFHqYiYA=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB3279E72D3736A834BB036C9CACF10MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 3f3fad20-47bc-4586-982f-08d70486ffaa
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jul 2019 16:03:35.5954 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3231
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-09_06:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907090187
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/KV_4-k6xNNn0o1305pq4EWRg4xY>
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 09 Jul 2019 16:03:55 -0000

--_000_MWHPR05MB3279E72D3736A834BB036C9CACF10MWHPR05MB3279namp_
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

Hey Benchong, cc:'ing list, good questions obviously that pop out on implem=
entation


  1.  sending LIE only with v4 will not give you a v6 address to send to (s=
ince the LIE source address gives the gateway for the AF, that's why we sen=
d LIE per AF) so you won't have a v6 GW address to send TIEs to ;-)
  2.  yes, every interface is independent. Observe that v6 support implies =
v4 as the spec says (since you can FW v4 without a v4 GW if you have a v6 g=
ateway). However, if one side sends v6 only and the other side only v4 they=
'll never go 3-way since they won't be able to receive. We just added a sen=
tence to the spec saying that if you don't send an AF LIE you MUST NOT rece=
ive the same AF LIE since we found that loose end in Bruno's implementation=
 when testing security envelopes.  It will be in -07


<t>All RIFT routers MUST support IPv4 forwarding and MAY support IPv6
    forwarding. A three way adjacency over IPv6 addresses implies support
    for IPv4 forwarding. A node that does not process received IPv6 LIEs
    MUST NOT originate IPv6 LIEs.
    </t>


  1.  IPv6/IPv4 prefix can be mixed in Prefix TIEs. Prefix TIEs do NOT care=
 which interface/AF they are sent over.
  2.  how you build forwarding table and which gateways you use is implemen=
ation dependent but yes, you got the flavor. though your assumption of "Ipv=
6 destination with ipv4 nexthop" is optimistic. every silicon does v4 so v6=
 can imply v4, implying v4 fwd'ing allows v6 forwarding fails on good amoun=
t of silicon. But again, those are all implementation knobs, spec only says=
 "v6 implies v4" which means "you better fwd. v4 over v6 nexthops if you se=
e v6 LIEs only"

Observe that node TIEs are _not_ carrying the supported AFs on each interfa=
ce since I think it would lead to undesirable attempts to deploy (some link=
s can do v6) topologies which defeat the purpose of ZTP/simplicity of RIFT.=
 v6 implies v4, if someone wants to fwd' v6 over a fabric where certain lin=
ks are v4 computations get really weird and operationally such a thing is p=
robably a nightmare anyway. And getting v6 working is trivial, just flip on=
 ND and you're in business (at least control plane wise ;-)

The spec is noit giving implementation advice, it just specifies behavior. =
In case of doubt looks @ Bruno';s open source. Bruno implemented the whole =
LIE without ever talking to me and it interop'ed day one without problems.

When you're ready with your implementation to interop, Bruno's code has nic=
e framework you can plug in against open source & Juniper implementation ea=
sily

--- tony
________________________________
From: xu.benchong@zte.com.cn <xu.benchong@zte.com.cn>
Sent: Tuesday, July 9, 2019 5:08 AM
To: Antoni Przygienda; Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn
Subject: [Rift] Ipv4 and ipv6 cooperating in rift


Hi

I have some questions about ipv4 and ipv6 cooperating in rift.

Ip head of the rift packet can be V4 or V6, and the prefix in TIE also supo=
rt V4 or v6.

Can it support the following situations:


1=1B$B!"=1B(BA rift interface which send LIE with ipv4 head receiving LIE w=
ith IPv6 head;

A rift interface which send LIE with ipv6 head receiving LIE with IPv4 head=
;

Can they build 3-Way neighbor?


2=1B$B!"=1B(BSome interfaces in a rift instance send ipv4 head packets=1B$B=
!$=1B(B and others in the same instance send ipv6 head packets=1B$B!(=1B(B


3=1B$B!"=1B(BIpv4 head TIE packet fill ipv6 prefix=1B$B!(=1B(B

   Ipv6 head TIE packet fill ipv4 prefix=1B$B!(=1B(B(RIFT-06 5.2.2: All RIF=
T routers MUST support IPv4 forwarding and MAY support IPv6

   forwarding.  A three way adjacency over IPv6 addresses implies

   support for IPv4 forwarding.)


4=1B$B!"=1B(BIn rib table of the rift:

   Ipv4 destination with ipv6 nexthop;

   Ipv6 destination with ipv4 nexthop;

   Ipv4 destination with both ipv4 nexthop and ipv6 nexthop;

   Ipv6 destination with both ipv4 nexthop and ipv6 nexthop;



5=1B$B!"=1B(BThe ip head type(v4 or v6) can be configured in rift interface=
 or instance.


It will be better if there are clear instructions in rift protocol.


Thanks=1B$B!*=1B(B

Benchong





--_000_MWHPR05MB3279E72D3736A834BB036C9CACF10MWHPR05MB3279namp_
Content-Type: text/html; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-2022-=
jp">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, cc:'ing list, good questions obviously that pop out on implem=
entation &nbsp;
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<ol>
<li>sending LIE only with v4 will not give you a v6 address to send to (sin=
ce the LIE source address gives the gateway for the AF, that's why we send =
LIE per AF) so you won't have a v6 GW address to send TIEs to ;-)</li><li>y=
es, every interface is independent. Observe that v6 support implies v4 as t=
he spec says (since you can FW v4 without a v4 GW if you have a v6 gateway)=
. However, if one side sends v6 only and the other side only v4 they'll nev=
er go 3-way since they won't
 be able to receive. We just added a sentence to the spec saying that if yo=
u don't send an AF LIE you MUST NOT receive the same AF LIE since we found =
that loose end in Bruno's implementation when testing security envelopes.&n=
bsp; It will be in -07<br>
</li></ol>
<div><br>
</div>
<div>
<pre style=3D"background-color:#ffffff; color:#000000; font-family:'Menlo';=
 font-size:7.5pt"><span style=3D"background-color:#efefef">&lt;</span><span=
 style=3D"color:#000080; background-color:#efefef; font-weight:bold">t</spa=
n><span style=3D"background-color:#efefef">&gt;</span>All RIFT routers MUST=
 support IPv4 forwarding and MAY support IPv6<br>    forwarding. A three wa=
y adjacency over IPv6 addresses implies support<br>    for IPv4 forwarding.=
 <b>A node that does not process received IPv6 LIEs<br>    MUST NOT origina=
te IPv6 LIEs.</b><br>    <span style=3D"background-color:#efefef">&lt;/</sp=
an><span style=3D"color:#000080; background-color:#efefef; font-weight:bold=
">t</span><span style=3D"background-color:#efefef">&gt;</span></pre>
<br>
</div>
<ol>
<li>IPv6/IPv4 prefix can be mixed in Prefix TIEs. Prefix TIEs do NOT care w=
hich interface/AF they are sent over.
<br>
</li><li>how you build forwarding table and which gateways you use is imple=
menation dependent but yes, you got the flavor. though your assumption of &=
quot;Ipv6 destination with ipv4 nexthop&quot; is optimistic. every silicon =
does v4 so v6 can imply v4, implying v4 fwd'ing
 allows v6 forwarding fails on good amount of silicon. But again, those are=
 all implementation knobs, spec only says &quot;v6 implies v4&quot; which m=
eans &quot;you better fwd. v4 over v6 nexthops if you see v6 LIEs only&quot=
;<br>
</li></ol>
<div>Observe that node TIEs are _not_ carrying the supported AFs on each in=
terface since I think it would lead to undesirable attempts to deploy (some=
 links can do v6) topologies which defeat the purpose of ZTP/simplicity of =
RIFT. v6 implies v4, if someone
 wants to fwd' v6 over a fabric where certain links are v4 computations get=
 really weird and operationally such a thing is probably a nightmare anyway=
. And getting v6 working is trivial, just flip on ND and you're in business=
 (at least control plane wise ;-)<br>
</div>
<div><br>
</div>
<div>The spec is noit giving implementation advice, it just specifies behav=
ior. In case of doubt looks @ Bruno';s open source. Bruno implemented the w=
hole LIE without ever talking to me and it interop'ed day one without probl=
ems.
<br>
</div>
<div><br>
</div>
<div>When you're ready with your implementation to interop, Bruno's code ha=
s nice framework you can plug in against open source &amp; Juniper implemen=
tation easily
<br>
</div>
<div><br>
</div>
<div>--- tony <br>
</div>
</div>
<div id=3D"appendonsend"></div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font style=3D"font-size:11pt" face=
=3D"Calibri, sans-serif" color=3D"#000000"><b>From:</b> xu.benchong@zte.com=
.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<b>Sent:</b> Tuesday, July 9, 2019 5:08 AM<br>
<b>To:</b> Antoni Przygienda; Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.=
com.cn<br>
<b>Subject:</b> [Rift] Ipv4 and ipv6 cooperating in rift</font>
<div>&nbsp;</div>
</div>
<div>
<div class=3D"x_zcontentRow">
<div>
<div class=3D"x_zcontentRow">
<div>
<div class=3D"x_zcontentRow">
<div>
<div class=3D"x_zcontentRow">
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-he=
ight:20px; font-family:arial; outline:0px!important; background-color:rgb(2=
55,255,255)">
Hi<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-he=
ight:20px; font-family:arial; outline:0px!important; background-color:rgb(2=
55,255,255)">
I have some questions about ipv4 and ipv6 cooperating in rift.</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
Ip head of the rift packet can be V4 or V6, and the prefix in TIE also supo=
rt V4 or v6.&nbsp;</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
Can it support the following situations:</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
1=1B$B!"=1B(BA rift interface which&nbsp;send LIE with ipv4 head receiving =
LIE with IPv6 head;</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
A rift interface which&nbsp;send LIE with ipv6 head receiving LIE with IPv4=
 head;</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
Can they build 3-Way neighbor?</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
2=1B$B!"=1B(BSome interfaces in a rift instance send ipv4 head packets=1B$B=
!$=1B(B and others in the same instance send ipv6 head packets=1B$B!(=1B(B<=
/p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
3=1B$B!"=1B(BIpv4 head TIE packet fill ipv6 prefix=1B$B!(=1B(B</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 head TIE packet fill ipv4 prefix=1B$B!(=1B(B(RIFT-06 5.2.=
2: All RIFT routers MUST support IPv4 forwarding and MAY support IPv6</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
&nbsp; &nbsp;forwarding. &nbsp;A three way adjacency over IPv6 addresses im=
plies</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
&nbsp; &nbsp;support for IPv4 forwarding.)</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
4=1B$B!"=1B(BIn rib table of the rift:</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with ipv6 nexthop;</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with ipv4 nexthop;&nbsp;</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
&nbsp; &nbsp;</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
5=1B$B!"=1B(BThe ip head type(v4 or v6) can be configured in rift interface=
 or instance.</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
<br>
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fa=
mily:Arial,=1B$BAWBN=1B(B,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,=
Helvetica,sans-serif; line-height:20px; outline:0px!important; background-c=
olor:rgb(255,255,255)">
It will be better if there are clear instructions in rift protocol.</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-he=
ight:20px; font-family:arial; outline:0px!important; background-color:rgb(2=
55,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-he=
ight:20px; font-family:arial; outline:0px!important; background-color:rgb(2=
55,255,255)">
Thanks=1B$B!*=1B(B</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;box-sizing:border-box; marg=
in-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-he=
ight:20px; font-family:arial; outline:0px!important; background-color:rgb(2=
55,255,255)">
Benchong</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;font-size:14px; font-family=
:arial">
<br>
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;font-size:14px; font-family=
:arial">
<br>
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;font-size:14px; font-family=
:arial">
<br>
</p>
<p style=3D"margin-top: 0px; margin-bottom: 0px;font-size:14px; font-family=
:arial">
<br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_MWHPR05MB3279E72D3736A834BB036C9CACF10MWHPR05MB3279namp_--


From nobody Wed Jul 10 01:58:53 2019
Return-Path: <xu.benchong@zte.com.cn>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8C263120125 for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 01:58:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.197
X-Spam-Level: 
X-Spam-Status: No, score=-4.197 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 QExk3rSEJQxL for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 01:58:49 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 B23E11200FD for <rift@ietf.org>; Wed, 10 Jul 2019 01:58:47 -0700 (PDT)
Received: from mxct.zte.com.cn (unknown [192.168.164.215]) by Forcepoint Email with ESMTPS id A1C41BFCC911BD21C6D3; Wed, 10 Jul 2019 16:58:45 +0800 (CST)
Received: from mse-fl1.zte.com.cn (unknown [10.30.14.238]) by Forcepoint Email with ESMTPS id 8B3315D6C6C8D056A6E7; Wed, 10 Jul 2019 16:58:45 +0800 (CST)
Received: from njxapp05.zte.com.cn ([10.41.132.204]) by mse-fl1.zte.com.cn with SMTP id x6A8uCrt045079; Wed, 10 Jul 2019 16:56:12 +0800 (GMT-8) (envelope-from xu.benchong@zte.com.cn)
Received: from mapi (njxapp01[null]) by mapi (Zmail) with MAPI id mid201; Wed, 10 Jul 2019 16:56:12 +0800 (CST)
Date: Wed, 10 Jul 2019 16:56:12 +0800 (CST)
X-Zmail-TransId: 2af95d25a82ce0d5a8b8
X-Mailer: Zmail v1.0
Message-ID: <201907101656125835263@zte.com.cn>
In-Reply-To: <MWHPR05MB3279E72D3736A834BB036C9CACF10@MWHPR05MB3279.namprd05.prod.outlook.com>
References: 201907092008143097563@zte.com.cn, MWHPR05MB3279E72D3736A834BB036C9CACF10@MWHPR05MB3279.namprd05.prod.outlook.com
Mime-Version: 1.0
From: <xu.benchong@zte.com.cn>
To: <prz@juniper.net>
Cc: <zzhang@juniper.net>, <zhang.zheng@zte.com.cn>, <rift@ietf.org>
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl1.zte.com.cn x6A8uCrt045079
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/Tl6ai1C7leq7mzawYaa4z69mpgU>
Subject: Re: [Rift] =?utf-8?q?Ipv4_and_ipv6_cooperating_in_rift?=
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jul 2019 08:58:52 -0000

--=====_001_next=====
Content-Type: multipart/related;
	boundary="=====_002_next====="


--=====_002_next=====
Content-Type: multipart/alternative;
	boundary="=====_003_next====="


--=====_003_next=====
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: base64

VG9ueSwgdGhhbmsgeW91IGZvciB5b3VyIHJlcGx5DQoNCkNhbiBpdCBiZSB1bmRlcnN0b29kIHRo
YXQgYWZ0ZXIgdGhlIE5EIGlzIGVuYWJsZWQsIHRoZSB2NiBhZGRyZXNzIG5lZWRzIHRvIGJlIHVz
ZWQgdG8gYnVpbGQgbmVpZ2hib3I/IEluIHRoaXMgY2FzZSwgdGhlIHJpZnQgcGFja2V0IG9mIHRo
ZSB2NCBoZWFkZXIgaXMgbm90IGFsbG93ZWQgdG8gYmUgc2VudCBhbmQgcmVjZWl2ZWQsIGFuZCBi
b3RoIHY0IGFuZCB2NiByb3V0ZXMgaGF2ZSBhIHY2IEdXLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN
CuWOn+Wni+mCruS7tg0KDQoNCg0K5Y+R5Lu25Lq677yaQW50b25pUHJ6eWdpZW5kYSA8cHJ6QGp1
bmlwZXIubmV0Pg0K5pS25Lu25Lq677ya5b6Q5pys5bSHMTAwNjUwNTM7SmVmZnJleSAoWmhhb2h1
aSlaaGFuZyA8enpoYW5nQGp1bmlwZXIubmV0PjvlvKDlvoEwMDAwNzk0MDtyaWZ0QGlldGYub3Jn
IDxyaWZ0QGlldGYub3JnPjsNCuaXpSDmnJ8g77yaMjAxOeW5tDA35pyIMTDml6UgMDA6MDkNCuS4
uyDpopgg77yaUmU6IFtSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQNCg0K
DQoNCkhleSBCZW5jaG9uZywgY2M6J2luZyBsaXN0LCBnb29kIHF1ZXN0aW9ucyBvYnZpb3VzbHkg
dGhhdCBwb3Agb3V0IG9uIGltcGxlbWVudGF0aW9uICAgDQogDQoNCiANCnNlbmRpbmcgTElFIG9u
bHkgd2l0aCB2NCB3aWxsIG5vdCBnaXZlIHlvdSBhIHY2IGFkZHJlc3MgdG8gc2VuZCB0byAoc2lu
Y2UgdGhlIExJRSBzb3VyY2UgYWRkcmVzcyBnaXZlcyB0aGUgZ2F0ZXdheSBmb3IgdGhlIEFGLCB0
aGF0J3Mgd2h5IHdlIHNlbmQgTElFIHBlciBBRikgc28geW91IHdvbid0IGhhdmUgYSB2NiBHVyBh
ZGRyZXNzIHRvIHNlbmQgVElFcyB0byA7LSkNCg0KeWVzLCBldmVyeSBpbnRlcmZhY2UgaXMgaW5k
ZXBlbmRlbnQuIE9ic2VydmUgdGhhdCB2NiBzdXBwb3J0IGltcGxpZXMgdjQgYXMgdGhlIHNwZWMg
c2F5cyAoc2luY2UgeW91IGNhbiBGVyB2NCB3aXRob3V0IGEgdjQgR1cgaWYgeW91IGhhdmUgYSB2
NiBnYXRld2F5KS4gSG93ZXZlciwgaWYgb25lIHNpZGUgc2VuZHMgdjYgb25seSBhbmQgdGhlIG90
aGVyIHNpZGUgb25seSB2NCB0aGV5J2xsIG5ldmVyIGdvIDMtd2F5IHNpbmNlIHRoZXkgd29uJ3Qg
IGJlIGFibGUgdG8gcmVjZWl2ZS4gV2UganVzdCBhZGRlZCBhIHNlbnRlbmNlIHRvIHRoZSBzcGVj
IHNheWluZyB0aGF0IGlmIHlvdSBkb24ndCBzZW5kIGFuIEFGIExJRSB5b3UgTVVTVCBOT1QgcmVj
ZWl2ZSB0aGUgc2FtZSBBRiBMSUUgc2luY2Ugd2UgZm91bmQgdGhhdCBsb29zZSBlbmQgaW4gQnJ1
bm8ncyBpbXBsZW1lbnRhdGlvbiB3aGVuIHRlc3Rpbmcgc2VjdXJpdHkgZW52ZWxvcGVzLiAgSXQg
d2lsbCBiZSBpbiAtMDcNCg0KDQoNCiA8dD5BbGwgUklGVCByb3V0ZXJzIE1VU1Qgc3VwcG9ydCBJ
UHY0IGZvcndhcmRpbmcgYW5kIE1BWSBzdXBwb3J0IElQdjYNCiBmb3J3YXJkaW5nLiBBIHRocmVl
IHdheSBhZGphY2VuY3kgb3ZlciBJUHY2IGFkZHJlc3NlcyBpbXBsaWVzIHN1cHBvcnQNCiBmb3Ig
SVB2NCBmb3J3YXJkaW5nLiBBIG5vZGUgdGhhdCBkb2VzIG5vdCBwcm9jZXNzIHJlY2VpdmVkIElQ
djYgTElFcw0KICAgIE1VU1QgTk9UIG9yaWdpbmF0ZSBJUHY2IExJRXMuDQogPC90PiANCiANCklQ
djYvSVB2NCBwcmVmaXggY2FuIGJlIG1peGVkIGluIFByZWZpeCBUSUVzLiBQcmVmaXggVElFcyBk
byBOT1QgY2FyZSB3aGljaCBpbnRlcmZhY2UvQUYgdGhleSBhcmUgc2VudCBvdmVyLiANCg0KDQpo
b3cgeW91IGJ1aWxkIGZvcndhcmRpbmcgdGFibGUgYW5kIHdoaWNoIGdhdGV3YXlzIHlvdSB1c2Ug
aXMgaW1wbGVtZW5hdGlvbiBkZXBlbmRlbnQgYnV0IHllcywgeW91IGdvdCB0aGUgZmxhdm9yLiB0
aG91Z2ggeW91ciBhc3N1bXB0aW9uIG9mICJJcHY2IGRlc3RpbmF0aW9uIHdpdGggaXB2NCBuZXh0
aG9wIiBpcyBvcHRpbWlzdGljLiBldmVyeSBzaWxpY29uIGRvZXMgdjQgc28gdjYgY2FuIGltcGx5
IHY0LCBpbXBseWluZyB2NCBmd2QnaW5nICBhbGxvd3MgdjYgZm9yd2FyZGluZyBmYWlscyBvbiBn
b29kIGFtb3VudCBvZiBzaWxpY29uLiBCdXQgYWdhaW4sIHRob3NlIGFyZSBhbGwgaW1wbGVtZW50
YXRpb24ga25vYnMsIHNwZWMgb25seSBzYXlzICJ2NiBpbXBsaWVzIHY0IiB3aGljaCBtZWFucyAi
eW91IGJldHRlciBmd2QuIHY0IG92ZXIgdjYgbmV4dGhvcHMgaWYgeW91IHNlZSB2NiBMSUVzIG9u
bHkiDQoNCg0KT2JzZXJ2ZSB0aGF0IG5vZGUgVElFcyBhcmUgX25vdF8gY2FycnlpbmcgdGhlIHN1
cHBvcnRlZCBBRnMgb24gZWFjaCBpbnRlcmZhY2Ugc2luY2UgSSB0aGluayBpdCB3b3VsZCBsZWFk
IHRvIHVuZGVzaXJhYmxlIGF0dGVtcHRzIHRvIGRlcGxveSAoc29tZSBsaW5rcyBjYW4gZG8gdjYp
IHRvcG9sb2dpZXMgd2hpY2ggZGVmZWF0IHRoZSBwdXJwb3NlIG9mIFpUUC9zaW1wbGljaXR5IG9m
IFJJRlQuIHY2IGltcGxpZXMgdjQsIGlmIHNvbWVvbmUgIHdhbnRzIHRvIGZ3ZCcgdjYgb3ZlciBh
IGZhYnJpYyB3aGVyZSBjZXJ0YWluIGxpbmtzIGFyZSB2NCBjb21wdXRhdGlvbnMgZ2V0IHJlYWxs
eSB3ZWlyZCBhbmQgb3BlcmF0aW9uYWxseSBzdWNoIGEgdGhpbmcgaXMgcHJvYmFibHkgYSBuaWdo
dG1hcmUgYW55d2F5LiBBbmQgZ2V0dGluZyB2NiB3b3JraW5nIGlzIHRyaXZpYWwsIGp1c3QgZmxp
cCBvbiBORCBhbmQgeW91J3JlIGluIGJ1c2luZXNzIChhdCBsZWFzdCBjb250cm9sIHBsYW5lIHdp
c2UgOy0pDQogDQoNCiBUaGUgc3BlYyBpcyBub2l0IGdpdmluZyBpbXBsZW1lbnRhdGlvbiBhZHZp
Y2UsIGl0IGp1c3Qgc3BlY2lmaWVzIGJlaGF2aW9yLiBJbiBjYXNlIG9mIGRvdWJ0IGxvb2tzIEAg
QnJ1bm8nO3Mgb3BlbiBzb3VyY2UuIEJydW5vIGltcGxlbWVudGVkIHRoZSB3aG9sZSBMSUUgd2l0
aG91dCBldmVyIHRhbGtpbmcgdG8gbWUgYW5kIGl0IGludGVyb3AnZWQgZGF5IG9uZSB3aXRob3V0
IHByb2JsZW1zLiANCiANCg0KIFdoZW4geW91J3JlIHJlYWR5IHdpdGggeW91ciBpbXBsZW1lbnRh
dGlvbiB0byBpbnRlcm9wLCBCcnVubydzIGNvZGUgaGFzIG5pY2UgZnJhbWV3b3JrIHlvdSBjYW4g
cGx1ZyBpbiBhZ2FpbnN0IG9wZW4gc291cmNlICYgSnVuaXBlciBpbXBsZW1lbnRhdGlvbiBlYXNp
bHkgDQogDQoNCiAtLS0gdG9ueSANCiANCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpG
cm9tOiB4dS5iZW5jaG9uZ0B6dGUuY29tLmNuIDx4dS5iZW5jaG9uZ0B6dGUuY29tLmNuPg0KIFNl
bnQ6IFR1ZXNkYXksIEp1bHkgOSwgMjAxOSA1OjA4IEFNDQogVG86IEFudG9uaSBQcnp5Z2llbmRh
OyBKZWZmcmV5IChaaGFvaHVpKSBaaGFuZzsgRVhULXpoYW5nLnpoZW5nQHp0ZS5jb20uY24NCiBT
dWJqZWN0OiBbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0ICANCg0KDQoN
Cg0KDQpIaSANCg0KDQpJIGhhdmUgc29tZSBxdWVzdGlvbnMgYWJvdXQgaXB2NCBhbmQgaXB2NiBj
b29wZXJhdGluZyBpbiByaWZ0Lg0KDQoNCklwIGhlYWQgb2YgdGhlIHJpZnQgcGFja2V0IGNhbiBi
ZSBWNCBvciBWNiwgYW5kIHRoZSBwcmVmaXggaW4gVElFIGFsc28gc3Vwb3J0IFY0IG9yIHY2LiAN
Cg0KDQpDYW4gaXQgc3VwcG9ydCB0aGUgZm9sbG93aW5nIHNpdHVhdGlvbnM6DQoNCg0KIA0KDQoN
CjHjgIFBIHJpZnQgaW50ZXJmYWNlIHdoaWNoIHNlbmQgTElFIHdpdGggaXB2NCBoZWFkIHJlY2Vp
dmluZyBMSUUgd2l0aCBJUHY2IGhlYWQ7DQoNCg0KQSByaWZ0IGludGVyZmFjZSB3aGljaCBzZW5k
IExJRSB3aXRoIGlwdjYgaGVhZCByZWNlaXZpbmcgTElFIHdpdGggSVB2NCBoZWFkOw0KDQoNCkNh
biB0aGV5IGJ1aWxkIDMtV2F5IG5laWdoYm9yPw0KDQoNCiANCg0KDQoy44CBU29tZSBpbnRlcmZh
Y2VzIGluIGEgcmlmdCBpbnN0YW5jZSBzZW5kIGlwdjQgaGVhZCBwYWNrZXRz77yMIGFuZCBvdGhl
cnMgaW4gdGhlIHNhbWUgaW5zdGFuY2Ugc2VuZCBpcHY2IGhlYWQgcGFja2V0c++8mw0KDQoNCiAN
Cg0KDQoz44CBSXB2NCBoZWFkIFRJRSBwYWNrZXQgZmlsbCBpcHY2IHByZWZpeO+8mw0KDQoNCiAg
IElwdjYgaGVhZCBUSUUgcGFja2V0IGZpbGwgaXB2NCBwcmVmaXjvvJsoUklGVC0wNiA1LjIuMjog
QWxsIFJJRlQgcm91dGVycyBNVVNUIHN1cHBvcnQgSVB2NCBmb3J3YXJkaW5nIGFuZCBNQVkgc3Vw
cG9ydCBJUHY2DQoNCg0KICAgZm9yd2FyZGluZy4gIEEgdGhyZWUgd2F5IGFkamFjZW5jeSBvdmVy
IElQdjYgYWRkcmVzc2VzIGltcGxpZXMNCg0KDQogICBzdXBwb3J0IGZvciBJUHY0IGZvcndhcmRp
bmcuKQ0KDQoNCiANCg0KDQo044CBSW4gcmliIHRhYmxlIG9mIHRoZSByaWZ0Og0KDQoNCiAgIElw
djQgZGVzdGluYXRpb24gd2l0aCBpcHY2IG5leHRob3A7DQoNCg0KICAgSXB2NiBkZXN0aW5hdGlv
biB3aXRoIGlwdjQgbmV4dGhvcDsgDQoNCg0KICAgSXB2NCBkZXN0aW5hdGlvbiB3aXRoIGJvdGgg
aXB2NCBuZXh0aG9wIGFuZCBpcHY2IG5leHRob3A7DQoNCg0KICAgSXB2NiBkZXN0aW5hdGlvbiB3
aXRoIGJvdGggaXB2NCBuZXh0aG9wIGFuZCBpcHY2IG5leHRob3A7DQoNCg0KICAgDQoNCg0KNeOA
gVRoZSBpcCBoZWFkIHR5cGUodjQgb3IgdjYpIGNhbiBiZSBjb25maWd1cmVkIGluIHJpZnQgaW50
ZXJmYWNlIG9yIGluc3RhbmNlLg0KDQoNCg0KIA0KDQoNCkl0IHdpbGwgYmUgYmV0dGVyIGlmIHRo
ZXJlIGFyZSBjbGVhciBpbnN0cnVjdGlvbnMgaW4gcmlmdCBwcm90b2NvbC4NCg0KDQogDQoNCg0K
VGhhbmtz77yBDQoNCg0KQmVuY2hvbmc=


--=====_003_next=====
Content-Type: text/html ;
	charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBjbGFzcz0iemNvbnRlbnRSb3ciPjxwPjxicj48L3A+PHA+VG9ueSwgdGhhbmsgeW91IGZv
ciB5b3VyIHJlcGx5PC9wPjxwPkNhbiBpdCBiZSB1bmRlcnN0b29kIHRoYXQgYWZ0ZXIgdGhlIE5E
IGlzIGVuYWJsZWQsIHRoZSB2NiBhZGRyZXNzIG5lZWRzIHRvIGJlIHVzZWQgdG8gYnVpbGQgbmVp
Z2hib3I/IEluIHRoaXMgY2FzZSwgdGhlIHJpZnQgcGFja2V0IG9mIHRoZSB2NCBoZWFkZXIgaXMg
bm90IGFsbG93ZWQgdG8gYmUgc2VudCBhbmQgcmVjZWl2ZWQsIGFuZCBib3RoIHY0IGFuZCB2NiBy
b3V0ZXMgaGF2ZSBhIHY2IEdXLjwvcD48cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7Zm9udC1mYW1p
bHk6YXJpYWw7Ij48YnI+PC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LWZhbWlseTph
cmlhbDsiPjxicj48L3A+PGRpdj48ZGl2IGNsYXNzPSJ6aGlzdG9yeVJvdyIgc3R5bGU9ImRpc3Bs
YXk6YmxvY2siPjxkaXYgY2xhc3M9InpoaXN0b3J5RGVzIiBzdHlsZT0id2lkdGg6IDEwMCU7IGhl
aWdodDogMjhweDsgbGluZS1oZWlnaHQ6IDI4cHg7IGJhY2tncm91bmQtY29sb3I6ICNFMEU1RTk7
IGNvbG9yOiAjMTM4OEZGOyB0ZXh0LWFsaWduOiBjZW50ZXI7IiBsYW5ndWFnZS1kYXRhPSJIaXN0
b3J5T3JnVHh0Ij7ljp/lp4vpgq7ku7Y8L2Rpdj48ZGl2IGlkPSJ6d3JpdGVIaXN0b3J5Q29udGFp
bmVyIj48ZGl2IGNsYXNzPSJjb250cm9sLWdyb3VwIHpoaXN0b3J5UGFuZWwiPjxkaXYgY2xhc3M9
InpoaXN0b3J5SGVhZGVyIiBzdHlsZT0icGFkZGluZzogOHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAj
RjVGNkY4OyI+PGRpdj48c3Ryb25nIGxhbmd1YWdlLWRhdGE9Ikhpc3RvcnlTZW5kZXJUeHQiPuWP
keS7tuS6uu+8mjwvc3Ryb25nPjxzcGFuIGNsYXNzPSJ6cmVhZFVzZXJOYW1lIj5BbnRvbmlQcnp5
Z2llbmRhICZsdDtwcnpAanVuaXBlci5uZXQmZ3Q7PC9zcGFuPjwvZGl2PjxkaXY+PHN0cm9uZyBs
YW5ndWFnZS1kYXRhPSJIaXN0b3J5VE9UeHQiPuaUtuS7tuS6uu+8mjwvc3Ryb25nPjxzcGFuIGNs
YXNzPSJ6cmVhZFVzZXJOYW1lIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyI+5b6Q5pys5bSHMTAw
NjUwNTM7PC9zcGFuPjxzcGFuIGNsYXNzPSJ6cmVhZFVzZXJOYW1lIiBzdHlsZT0iZGlzcGxheTog
aW5saW5lOyI+SmVmZnJleSAoWmhhb2h1aSlaaGFuZyAmbHQ7enpoYW5nQGp1bmlwZXIubmV0Jmd0
Ozs8L3NwYW4+PHNwYW4gY2xhc3M9InpyZWFkVXNlck5hbWUiIHN0eWxlPSJkaXNwbGF5OiBpbmxp
bmU7Ij7lvKDlvoEwMDAwNzk0MDs8L3NwYW4+PHNwYW4gY2xhc3M9InpyZWFkVXNlck5hbWUiIHN0
eWxlPSJkaXNwbGF5OiBpbmxpbmU7Ij5yaWZ0QGlldGYub3JnICZsdDtyaWZ0QGlldGYub3JnJmd0
Ozs8L3NwYW4+PC9kaXY+PGRpdj48c3Ryb25nIGxhbmd1YWdlLWRhdGE9Ikhpc3RvcnlEYXRlVHh0
Ij7ml6Ug5pyfIO+8mjwvc3Ryb25nPjxzcGFuIGNsYXNzPSIiPjIwMTnlubQwN+aciDEw5pelIDAw
OjA5PC9zcGFuPjwvZGl2PjxkaXY+PHN0cm9uZyBsYW5ndWFnZS1kYXRhPSJIaXN0b3J5U3ViamVj
dFR4dCI+5Li7IOmimCDvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ienJlYWRUaXRsZSI+PHN0cm9u
Zz5SZTogW1JpZnRdIElwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdDwvc3Ryb25nPjwv
c3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ6aGlzdG9yeUNvbnRlbnQiPjxkaXY+PG1ldGEg
aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNv
LTIwMjItanAiPjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OkNhbGlicmksQXJpYWwsSGVsdmV0aWNh
LHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMnB0OyBjb2xvcjpyZ2IoMCwwLDApIj5IZXkgQmVuY2hv
bmcsIGNjOidpbmcgbGlzdCwgZ29vZCBxdWVzdGlvbnMgb2J2aW91c2x5IHRoYXQgcG9wIG91dCBv
biBpbXBsZW1lbnRhdGlvbiAmbmJzcDsgPGJyPiA8L2Rpdj48YnI+IDxkaXYgc3R5bGU9ImZvbnQt
ZmFtaWx5OkNhbGlicmksQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMnB0
OyBjb2xvcjpyZ2IoMCwwLDApIj48b2wgY2xhc3M9IiBsaXN0LXBhZGRpbmdsZWZ0LTIiPjxsaT48
cD5zZW5kaW5nIExJRSBvbmx5IHdpdGggdjQgd2lsbCBub3QgZ2l2ZSB5b3UgYSB2NiBhZGRyZXNz
IHRvIHNlbmQgdG8gKHNpbmNlIHRoZSBMSUUgc291cmNlIGFkZHJlc3MgZ2l2ZXMgdGhlIGdhdGV3
YXkgZm9yIHRoZSBBRiwgdGhhdCdzIHdoeSB3ZSBzZW5kIExJRSBwZXIgQUYpIHNvIHlvdSB3b24n
dCBoYXZlIGEgdjYgR1cgYWRkcmVzcyB0byBzZW5kIFRJRXMgdG8gOy0pPC9wPjwvbGk+PGxpPjxw
PnllcywgZXZlcnkgaW50ZXJmYWNlIGlzIGluZGVwZW5kZW50LiBPYnNlcnZlIHRoYXQgdjYgc3Vw
cG9ydCBpbXBsaWVzIHY0IGFzIHRoZSBzcGVjIHNheXMgKHNpbmNlIHlvdSBjYW4gRlcgdjQgd2l0
aG91dCBhIHY0IEdXIGlmIHlvdSBoYXZlIGEgdjYgZ2F0ZXdheSkuIEhvd2V2ZXIsIGlmIG9uZSBz
aWRlIHNlbmRzIHY2IG9ubHkgYW5kIHRoZSBvdGhlciBzaWRlIG9ubHkgdjQgdGhleSdsbCBuZXZl
ciBnbyAzLXdheSBzaW5jZSB0aGV5IHdvbid0ICZuYnNwO2JlIGFibGUgdG8gcmVjZWl2ZS4gV2Ug
anVzdCBhZGRlZCBhIHNlbnRlbmNlIHRvIHRoZSBzcGVjIHNheWluZyB0aGF0IGlmIHlvdSBkb24n
dCBzZW5kIGFuIEFGIExJRSB5b3UgTVVTVCBOT1QgcmVjZWl2ZSB0aGUgc2FtZSBBRiBMSUUgc2lu
Y2Ugd2UgZm91bmQgdGhhdCBsb29zZSBlbmQgaW4gQnJ1bm8ncyBpbXBsZW1lbnRhdGlvbiB3aGVu
IHRlc3Rpbmcgc2VjdXJpdHkgZW52ZWxvcGVzLiZuYnNwOyBJdCB3aWxsIGJlIGluIC0wNzxicj48
L3A+PC9saT48L29sPjxicj4gPGRpdj48cHJlIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZm
ZmY7IGNvbG9yOiMwMDAwMDA7IGZvbnQtZmFtaWx5OidNZW5sbyc7IGZvbnQtc2l6ZTo3LjVwdCI+
PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2VmZWZlZiI+Jmx0Ozwvc3Bhbj48c3BhbiBz
dHlsZT0iY29sb3I6IzAwMDA4MDsgYmFja2dyb3VuZC1jb2xvcjojZWZlZmVmOyBmb250LXdlaWdo
dDpib2xkIj50PC9zcGFuPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWYiPiZn
dDs8L3NwYW4+QWxsIFJJRlQgcm91dGVycyBNVVNUIHN1cHBvcnQgSVB2NCBmb3J3YXJkaW5nIGFu
ZCBNQVkgc3VwcG9ydCBJUHY2PGJyPiAgICBmb3J3YXJkaW5nLiBBIHRocmVlIHdheSBhZGphY2Vu
Y3kgb3ZlciBJUHY2IGFkZHJlc3NlcyBpbXBsaWVzIHN1cHBvcnQ8YnI+ICAgIGZvciBJUHY0IGZv
cndhcmRpbmcuIDxzdHJvbmc+QSBub2RlIHRoYXQgZG9lcyBub3QgcHJvY2VzcyByZWNlaXZlZCBJ
UHY2IExJRXM8YnI+ICZuYnNwOyAmbmJzcDtNVVNUIE5PVCBvcmlnaW5hdGUgSVB2NiBMSUVzLjwv
c3Ryb25nPjxicj4gICAgPHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2VmZWZlZiI+Jmx0
Oy88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiMwMDAwODA7IGJhY2tncm91bmQtY29sb3I6I2Vm
ZWZlZjsgZm9udC13ZWlnaHQ6Ym9sZCI+dDwvc3Bhbj48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1j
b2xvcjojZWZlZmVmIj4mZ3Q7PC9zcGFuPjwvcHJlPiA8YnI+IDwvZGl2PjxvbCBjbGFzcz0iIGxp
c3QtcGFkZGluZ2xlZnQtMiI+PGxpPjxwPklQdjYvSVB2NCBwcmVmaXggY2FuIGJlIG1peGVkIGlu
IFByZWZpeCBUSUVzLiBQcmVmaXggVElFcyBkbyBOT1QgY2FyZSB3aGljaCBpbnRlcmZhY2UvQUYg
dGhleSBhcmUgc2VudCBvdmVyLiA8YnI+PC9wPjwvbGk+PGxpPjxwPmhvdyB5b3UgYnVpbGQgZm9y
d2FyZGluZyB0YWJsZSBhbmQgd2hpY2ggZ2F0ZXdheXMgeW91IHVzZSBpcyBpbXBsZW1lbmF0aW9u
IGRlcGVuZGVudCBidXQgeWVzLCB5b3UgZ290IHRoZSBmbGF2b3IuIHRob3VnaCB5b3VyIGFzc3Vt
cHRpb24gb2YgIklwdjYgZGVzdGluYXRpb24gd2l0aCBpcHY0IG5leHRob3AiIGlzIG9wdGltaXN0
aWMuIGV2ZXJ5IHNpbGljb24gZG9lcyB2NCBzbyB2NiBjYW4gaW1wbHkgdjQsIGltcGx5aW5nIHY0
IGZ3ZCdpbmcgJm5ic3A7YWxsb3dzIHY2IGZvcndhcmRpbmcgZmFpbHMgb24gZ29vZCBhbW91bnQg
b2Ygc2lsaWNvbi4gQnV0IGFnYWluLCB0aG9zZSBhcmUgYWxsIGltcGxlbWVudGF0aW9uIGtub2Jz
LCBzcGVjIG9ubHkgc2F5cyAidjYgaW1wbGllcyB2NCIgd2hpY2ggbWVhbnMgInlvdSBiZXR0ZXIg
ZndkLiB2NCBvdmVyIHY2IG5leHRob3BzIGlmIHlvdSBzZWUgdjYgTElFcyBvbmx5Ijxicj48L3A+
PC9saT48L29sPjxkaXY+T2JzZXJ2ZSB0aGF0IG5vZGUgVElFcyBhcmUgX25vdF8gY2Fycnlpbmcg
dGhlIHN1cHBvcnRlZCBBRnMgb24gZWFjaCBpbnRlcmZhY2Ugc2luY2UgSSB0aGluayBpdCB3b3Vs
ZCBsZWFkIHRvIHVuZGVzaXJhYmxlIGF0dGVtcHRzIHRvIGRlcGxveSAoc29tZSBsaW5rcyBjYW4g
ZG8gdjYpIHRvcG9sb2dpZXMgd2hpY2ggZGVmZWF0IHRoZSBwdXJwb3NlIG9mIFpUUC9zaW1wbGlj
aXR5IG9mIFJJRlQuIHY2IGltcGxpZXMgdjQsIGlmIHNvbWVvbmUgJm5ic3A7d2FudHMgdG8gZndk
JyB2NiBvdmVyIGEgZmFicmljIHdoZXJlIGNlcnRhaW4gbGlua3MgYXJlIHY0IGNvbXB1dGF0aW9u
cyBnZXQgcmVhbGx5IHdlaXJkIGFuZCBvcGVyYXRpb25hbGx5IHN1Y2ggYSB0aGluZyBpcyBwcm9i
YWJseSBhIG5pZ2h0bWFyZSBhbnl3YXkuIEFuZCBnZXR0aW5nIHY2IHdvcmtpbmcgaXMgdHJpdmlh
bCwganVzdCBmbGlwIG9uIE5EIGFuZCB5b3UncmUgaW4gYnVzaW5lc3MgKGF0IGxlYXN0IGNvbnRy
b2wgcGxhbmUgd2lzZSA7LSk8YnI+IDwvZGl2Pjxicj4gPGRpdj5UaGUgc3BlYyBpcyBub2l0IGdp
dmluZyBpbXBsZW1lbnRhdGlvbiBhZHZpY2UsIGl0IGp1c3Qgc3BlY2lmaWVzIGJlaGF2aW9yLiBJ
biBjYXNlIG9mIGRvdWJ0IGxvb2tzIEAgQnJ1bm8nO3Mgb3BlbiBzb3VyY2UuIEJydW5vIGltcGxl
bWVudGVkIHRoZSB3aG9sZSBMSUUgd2l0aG91dCBldmVyIHRhbGtpbmcgdG8gbWUgYW5kIGl0IGlu
dGVyb3AnZWQgZGF5IG9uZSB3aXRob3V0IHByb2JsZW1zLiA8YnI+IDwvZGl2Pjxicj4gPGRpdj5X
aGVuIHlvdSdyZSByZWFkeSB3aXRoIHlvdXIgaW1wbGVtZW50YXRpb24gdG8gaW50ZXJvcCwgQnJ1
bm8ncyBjb2RlIGhhcyBuaWNlIGZyYW1ld29yayB5b3UgY2FuIHBsdWcgaW4gYWdhaW5zdCBvcGVu
IHNvdXJjZSAmYW1wOyBKdW5pcGVyIGltcGxlbWVudGF0aW9uIGVhc2lseSA8YnI+IDwvZGl2Pjxi
cj4gPGRpdj4tLS0gdG9ueSA8YnI+IDwvZGl2PjwvZGl2PjxociB0YWJpbmRleD0iLTEiIHN0eWxl
PSJkaXNwbGF5OmlubGluZS1ibG9jazsgd2lkdGg6OTglIj48ZGl2IGlkPSJkaXZScGx5RndkTXNn
IiBkaXI9Imx0ciI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0O2ZvbnQtZmFtaWx5OkNhbGli
cmksIHNhbnMtc2VyaWY7Y29sb3I6IzAwMDAwMCI+PHN0cm9uZz5Gcm9tOjwvc3Ryb25nPiB4dS5i
ZW5jaG9uZ0B6dGUuY29tLmNuICZsdDt4dS5iZW5jaG9uZ0B6dGUuY29tLmNuJmd0Ozxicj4gPHN0
cm9uZz5TZW50Ojwvc3Ryb25nPiBUdWVzZGF5LCBKdWx5IDksIDIwMTkgNTowOCBBTTxicj4gPHN0
cm9uZz5Ubzo8L3N0cm9uZz4gQW50b25pIFByenlnaWVuZGE7IEplZmZyZXkgKFpoYW9odWkpIFpo
YW5nOyBFWFQtemhhbmcuemhlbmdAenRlLmNvbS5jbjxicj4gPHN0cm9uZz5TdWJqZWN0Ojwvc3Ry
b25nPiBbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0PC9zcGFuPiAmbmJz
cDs8L2Rpdj48ZGl2PjxkaXYgY2xhc3M9InhfemNvbnRlbnRSb3ciPjxkaXY+PGRpdiBjbGFzcz0i
eF96Y29udGVudFJvdyI+PGRpdj48ZGl2IGNsYXNzPSJ4X3pjb250ZW50Um93Ij48ZGl2PjxkaXYg
Y2xhc3M9InhfemNvbnRlbnRSb3ciPjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1i
b3R0b206IDBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4t
Ym90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGxpbmUtaGVp
Z2h0OjIwcHg7IGZvbnQtZmFtaWx5OmFyaWFsOyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tn
cm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+SGk8YnIgc3R5bGU9ImJveC1zaXppbmc6Ym9y
ZGVyLWJveDsgb3V0bGluZTowcHghaW1wb3J0YW50Ij4gPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9w
OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10
b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0
OjE0cHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtZmFtaWx5OmFyaWFsOyBvdXRsaW5lOjBweCFp
bXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+SSBoYXZlIHNvbWUg
cXVlc3Rpb25zIGFib3V0IGlwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdC48L3A+PHAg
c3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4O2JveC1zaXppbmc6Ym9y
ZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpu
b3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3Nv
ZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1z
ZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5k
LWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPklwIGhlYWQgb2YgdGhlIHJpZnQgcGFja2V0IGNhbiBi
ZSBWNCBvciBWNiwgYW5kIHRoZSBwcmVmaXggaW4gVElFIGFsc28gc3Vwb3J0IFY0IG9yIHY2LiZu
YnNwOzwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7Ym94
LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdo
aXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovk
vZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZl
dGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7
IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Q2FuIGl0IHN1cHBvcnQgdGhlIGZv
bGxvd2luZyBzaXR1YXRpb25zOjwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4t
Ym90dG9tOiAwcHg7Ym94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2lu
LWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZh
bWlseTpBcmlhbCzlrovkvZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRh
bmEsTHVjaWRhLEhlbHZldGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5l
OjBweCFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+PGJyIHN0
eWxlPSJib3gtc2l6aW5nOmJvcmRlci1ib3g7IG91dGxpbmU6MHB4IWltcG9ydGFudCI+IDwvcD48
cCBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7Ym94LXNpemluZzpi
b3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNl
Om5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01pY3Jv
c29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxzYW5z
LXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91
bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+MeOAgUEgcmlmdCBpbnRlcmZhY2Ugd2hpY2gmbmJz
cDtzZW5kIExJRSB3aXRoIGlwdjQgaGVhZCByZWNlaXZpbmcgTElFIHdpdGggSVB2NiBoZWFkOzwv
cD48cCBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7Ym94LXNpemlu
Zzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNw
YWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01p
Y3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxz
YW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tn
cm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+QSByaWZ0IGludGVyZmFjZSB3aGljaCZuYnNw
O3NlbmQgTElFIHdpdGggaXB2NiBoZWFkIHJlY2VpdmluZyBMSUUgd2l0aCBJUHY0IGhlYWQ7PC9w
PjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDtib3gtc2l6aW5n
OmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3Bh
Y2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWlj
cm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNh
bnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dy
b3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj5DYW4gdGhleSBidWlsZCAzLVdheSBuZWlnaGJv
cj88L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4O2JveC1z
aXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0
ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2T
LCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRp
Y2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBi
YWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjxiciBzdHlsZT0iYm94LXNpemluZzpi
b3JkZXItYm94OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQiPiA8L3A+PHAgc3R5bGU9Im1hcmdpbi10
b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2lu
LXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWln
aHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNp
ZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWln
aHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUs
MjU1LDI1NSkiPjLjgIFTb21lIGludGVyZmFjZXMgaW4gYSByaWZ0IGluc3RhbmNlIHNlbmQgaXB2
NCBoZWFkIHBhY2tldHPvvIwgYW5kIG90aGVycyBpbiB0aGUgc2FtZSBpbnN0YW5jZSBzZW5kIGlw
djYgaGVhZCBwYWNrZXRz77ybPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1i
b3R0b206IDBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4t
Ym90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFt
aWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFu
YSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6
MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj48YnIgc3R5
bGU9ImJveC1zaXppbmc6Ym9yZGVyLWJveDsgb3V0bGluZTowcHghaW1wb3J0YW50Ij4gPC9wPjxw
IHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDtib3gtc2l6aW5nOmJv
cmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6
bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9z
b2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMt
c2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3Vu
ZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj4z44CBSXB2NCBoZWFkIFRJRSBwYWNrZXQgZmlsbCBp
cHY2IHByZWZpeO+8mzwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9t
OiAwcHg7Ym94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRv
bTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpB
cmlhbCzlrovkvZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVj
aWRhLEhlbHZldGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFp
bXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Jm5ic3A7ICZuYnNw
O0lwdjYgaGVhZCBUSUUgcGFja2V0IGZpbGwgaXB2NCBwcmVmaXjvvJsoUklGVC0wNiA1LjIuMjog
QWxsIFJJRlQgcm91dGVycyBNVVNUIHN1cHBvcnQgSVB2NCBmb3J3YXJkaW5nIGFuZCBNQVkgc3Vw
cG9ydCBJUHY2PC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBw
eDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBw
eDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFs
LOWui+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEs
SGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9y
dGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj4mbmJzcDsgJm5ic3A7Zm9y
d2FyZGluZy4gJm5ic3A7QSB0aHJlZSB3YXkgYWRqYWNlbmN5IG92ZXIgSVB2NiBhZGRyZXNzZXMg
aW1wbGllczwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7
Ym94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7
IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzl
rovkvZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhl
bHZldGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRh
bnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Jm5ic3A7ICZuYnNwO3N1cHBv
cnQgZm9yIElQdjQgZm9yd2FyZGluZy4pPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1h
cmdpbi1ib3R0b206IDBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBt
YXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZv
bnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScs
VmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91
dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj48
YnIgc3R5bGU9ImJveC1zaXppbmc6Ym9yZGVyLWJveDsgb3V0bGluZTowcHghaW1wb3J0YW50Ij4g
PC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDtib3gtc2l6
aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUt
c3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywn
TWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNh
LHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFj
a2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj4044CBSW4gcmliIHRhYmxlIG9mIHRoZSBy
aWZ0OjwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7Ym94
LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdo
aXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovk
vZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZl
dGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7
IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Jm5ic3A7ICZuYnNwO0lwdjQgZGVz
dGluYXRpb24gd2l0aCBpcHY2IG5leHRob3A7PC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7
IG1hcmdpbi1ib3R0b206IDBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4
OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7
IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5k
ZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7
IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUp
Ij4mbmJzcDsgJm5ic3A7SXB2NiBkZXN0aW5hdGlvbiB3aXRoIGlwdjQgbmV4dGhvcDsmbmJzcDs8
L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4O2JveC1zaXpp
bmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1z
cGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdN
aWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Es
c2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNr
Z3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPiZuYnNwOyAmbmJzcDtJcHY0IGRlc3RpbmF0
aW9uIHdpdGggYm90aCBpcHY0IG5leHRob3AgYW5kIGlwdjYgbmV4dGhvcDs8L3A+PHAgc3R5bGU9
Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJv
eDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7
IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFo
ZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsg
bGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9y
OnJnYigyNTUsMjU1LDI1NSkiPiZuYnNwOyAmbmJzcDtJcHY2IGRlc3RpbmF0aW9uIHdpdGggYm90
aCBpcHY0IG5leHRob3AgYW5kIGlwdjYgbmV4dGhvcDs8L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6
IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRv
cDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6
MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEg
R3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6
MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1
LDI1NSkiPiZuYnNwOyAmbmJzcDs8L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2lu
LWJvdHRvbTogMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdp
bi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1m
YW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJk
YW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGlu
ZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjXjgIFU
aGUgaXAgaGVhZCB0eXBlKHY0IG9yIHY2KSBjYW4gYmUgY29uZmlndXJlZCBpbiByaWZ0IGludGVy
ZmFjZSBvciBpbnN0YW5jZS48L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLWJv
dHRvbTogMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1i
b3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1p
bHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5h
LEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTow
cHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjxicj4gPC9w
PjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDtib3gtc2l6aW5n
OmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3Bh
Y2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWlj
cm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNh
bnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dy
b3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj5JdCB3aWxsIGJlIGJldHRlciBpZiB0aGVyZSBh
cmUgY2xlYXIgaW5zdHJ1Y3Rpb25zIGluIHJpZnQgcHJvdG9jb2wuPC9wPjxwIHN0eWxlPSJtYXJn
aW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1h
cmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4t
aGVpZ2h0OjE0cHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtZmFtaWx5OmFyaWFsOyBvdXRsaW5l
OjBweCFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+PGJyIHN0
eWxlPSJib3gtc2l6aW5nOmJvcmRlci1ib3g7IG91dGxpbmU6MHB4IWltcG9ydGFudCI+IDwvcD48
cCBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7Ym94LXNpemluZzpi
b3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNl
Om5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LWZhbWlseTph
cmlhbDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1
LDI1NSkiPlRoYW5rc++8gTwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tYm90
dG9tOiAwcHg7Ym94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJv
dHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBsaW5lLWhlaWdo
dDoyMHB4OyBmb250LWZhbWlseTphcmlhbDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3Jv
dW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPkJlbmNob25nPC9wPjxwIHN0eWxlPSJtYXJnaW4t
dG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDtmb250LXNpemU6MTRweDsgZm9udC1mYW1pbHk6
YXJpYWwiPjxicj4gPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206
IDBweDtmb250LXNpemU6MTRweDsgZm9udC1mYW1pbHk6YXJpYWwiPjxicj4gPC9wPjxwIHN0eWxl
PSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDtmb250LXNpemU6MTRweDsgZm9u
dC1mYW1pbHk6YXJpYWwiPjxicj4gPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdp
bi1ib3R0b206IDBweDtmb250LXNpemU6MTRweDsgZm9udC1mYW1pbHk6YXJpYWwiPjxicj4gPC9w
PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pjwv
ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxwPjxicj48L3A+PC9kaXY+


--=====_003_next=====--

--=====_002_next=====--

--=====_001_next=====--


From nobody Wed Jul 10 07:13:37 2019
Return-Path: <zzhang@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F371E12002F for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 07:13:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level: 
X-Spam-Status: No, score=-2.698 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 uF9KN5IUZEfB for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 07:13:33 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 DFB47120044 for <rift@ietf.org>; Wed, 10 Jul 2019 07:13:32 -0700 (PDT)
Received: from pps.filterd (m0108160.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6AE9WFt018734 for <rift@ietf.org>; Wed, 10 Jul 2019 07:13:31 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : content-type : mime-version; s=PPS1017; bh=nqBneCxRUwIlvZFKCteqDK8QN9B2XR60vXlTc8RnieE=; b=f55ZyczpiRuMphxKnTBTy04gwub87KnqsGfZZI6ujjnplEYMPkeo5iyF/gAiDyMYTfzt bVF+YjNNuoNRtBJJ7I46sDPqnhQcIJezDjzNZRCB1Wx4X81PKsgNTSMP0yruZ4lk3AQQ ETgyq003gqwKaZF3UjUNssEAQEVNKc8tIUWBbT+ksnu4F0IazzxX07myaNzRdyIyrIr4 qcfONMWJpxmRjslioEo/2LjM5crK9UpUz3g3WhswsNtDKXcTCy9swXm9Jc46xmUfkSJZ 7VYAgVmLCfcxObkcYBv9g54VsnYXZlYIE4H6K6QIE9cIRjvEX/hmeT/y9CwjYy+xUZX+ mQ== 
Received: from nam02-bl2-obe.outbound.protection.outlook.com (mail-bl2nam02lp2054.outbound.protection.outlook.com [104.47.38.54]) by mx0b-00273201.pphosted.com with ESMTP id 2tng1er5dm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for <rift@ietf.org>; Wed, 10 Jul 2019 07:13:31 -0700
Received: from DM5PR05MB3548.namprd05.prod.outlook.com (10.174.242.153) by DM5PR05MB2907.namprd05.prod.outlook.com (10.168.179.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2052.12; Wed, 10 Jul 2019 14:13:28 +0000
Received: from DM5PR05MB3548.namprd05.prod.outlook.com ([fe80::c890:e1c9:8d87:8d5f]) by DM5PR05MB3548.namprd05.prod.outlook.com ([fe80::c890:e1c9:8d87:8d5f%6]) with mapi id 15.20.2073.008; Wed, 10 Jul 2019 14:13:28 +0000
From: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>
To: "rift@ietf.org" <rift@ietf.org>
Thread-Topic: Monthly RIFT Virtual Interim Meeting - July 11th
Thread-Index: AdU3KZJI/N0WcPPLSji+bMYDIOhWjw==
Content-Class: 
Date: Wed, 10 Jul 2019 14:13:28 +0000
Message-ID: <DM5PR05MB35483EF22F478980A8E3541CD4F00@DM5PR05MB3548.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-product: dlpe-windows
dlp-version: 11.2.0.14
dlp-reaction: no-action
msip_labels: MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=True; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Owner=zzhang@juniper.net; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SetDate=2019-07-10T14:13:25.4471943Z; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Name=Juniper Business Use Only; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Application=Microsoft Azure Information Protection; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ActionId=0f5b1e34-d907-4879-b533-f0265032b14e; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Extended_MSFT_Method=Automatic
x-originating-ip: [66.129.241.14]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d9490202-85cd-46a3-700a-08d70540c7cb
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM5PR05MB2907; 
x-ms-traffictypediagnostic: DM5PR05MB2907:
x-ms-exchange-purlcount: 5
x-microsoft-antispam-prvs: <DM5PR05MB29076AC4917AE3823008C9D7D4F00@DM5PR05MB2907.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-forefront-prvs: 0094E3478A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(136003)(396003)(39860400002)(366004)(376002)(346002)(199004)(189003)(15594002)(66476007)(14454004)(606006)(86362001)(14444005)(2906002)(256004)(486006)(476003)(6506007)(7696005)(81166006)(5660300002)(8676002)(76116006)(8936002)(53546011)(99286004)(26005)(1730700003)(81156014)(52536014)(7736002)(74316002)(53936002)(64756008)(66446008)(66946007)(478600001)(6246003)(33656002)(68736007)(6436002)(6306002)(5640700003)(55016002)(66066001)(54896002)(9686003)(2351001)(229853002)(6916009)(71200400001)(25786009)(6116002)(790700001)(102836004)(66556008)(3846002)(316002)(16799955002)(2501003)(236005)(186003)(71190400001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR05MB2907; H:DM5PR05MB3548.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: BCOKjD6nhusaRTMyXTM+OBMWaPY+oz+xgLbQu6PI6MvpWBJj9l3+izllqM9aYgFdWRoAD7/P5PW+CdK9+QA/JEeiYiNtysoyjC+RLaz3hQWPQtwGb96mw66ICTTh7DnqvfynIPd6obIXNjXLOkgSCnABRnvly+4GHG2o4WjScQk7gUUTwFBAYzGDwKSP+zn6wfB1Jyv8JnFxxiF6BxQjC2PVtwsMOJDGSN1CF0uWVWOz58gSiXlajZLGdDz+akaOu2fOyI/8eY1Ed1WtW8N8oaulFtq8EIzYRIo0Ak4lMxwJMtiffdnrBK7QcF2Hlrnj22w8tRSWjKLoIOqk8qYHvLA8c3MgCDk1x0xzwplNpqLztJzzZ/47IkuSH/xatYi41hZ/I+IlojEpZwt3nfvYIUooJS5LV8dCwQVBPYbfiFI=
Content-Type: multipart/alternative; boundary="_000_DM5PR05MB35483EF22F478980A8E3541CD4F00DM5PR05MB3548namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: d9490202-85cd-46a3-700a-08d70540c7cb
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jul 2019 14:13:28.2030 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zzhang@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR05MB2907
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-10_06:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907100166
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/1r9hkr00DNf7jU3SuMR4u9clgSo>
Subject: Re: [Rift] Monthly RIFT Virtual Interim Meeting - July 11th
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jul 2019 14:13:36 -0000

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

Reminder for our virtual interim meeting tomorrow.

-----Original Appointment-----
From: Jeffrey (Zhaohui) Zhang
Sent: Tuesday, May 21, 2019 1:47 PM
To: Jeffrey (Zhaohui) Zhang; rift@ietf.org
Cc: Suneesh Babu; Peter Psenak (ppsenak); Pascal Thubert (pthubert); Acee L=
indem (acee); Keyur Patel; Dailongfei (Larry, IP Research); Mankamana Mishr=
a (mankamis); tonysietf@gmail.com; melchior@aelmans.eu; Rafal Szmidt; Olive=
r Steudler; marco@morales.id; Phil Boulo (pboulo); wei.yuehua@zte.com.cn
Subject: Monthly RIFT Virtual Interim Meeting
When: Thursday, July 11, 2019 11:00 AM-12:00 PM (UTC-05:00) Eastern Time (U=
S & Canada).
Where:

Reschedule this one to 7/11 as 7/4 a US holiday.


Hi RIFTers,

We're going to start a series of monthly virtual interim meetings on the fi=
rst Thursday of each month, from 11am US Eastern Time to 12pm:


  1.  newest developments on RIFT main draft
  2.  discussion of other drafts like yang/applicability/sr/multicast

Official IETF interim session announcement will follow.

The webex password is tfir2019.

Thanks.
Jeffrey

-- Do not delete or change any of the following text. --

Join Webex Meeting<https://ietf.webex.com/ietf/j.php?MTID=3Dmb26e43c3067b05=
59b050ec9c39de7f95>


Meeting number (access code): 647 561 538
Meeting password: tfir2019


Join by phone
1-650-479-3208<tel:%2B1-650-479-3208,,*01*647561538%23%23*01*> Call-in toll=
 number (US/Canada)

Can't join the meeting?<https://collaborationhelp.cisco.com/article/WBX0000=
29055>

If you are a host, go here<https://ietf.webex.com/ietf/j.php?MTID=3Dm0e51f4=
b41e06ce23c8331af8d21d39ed> to view host information.

IMPORTANT NOTICE: Please note that this Webex service allows audio and othe=
r information sent during the session to be recorded, which may be discover=
able in a legal matter. By joining this session, you automatically consent =
to such recordings. If you do not consent to being recorded, discuss your c=
oncerns with the host or do not join the session.




Juniper Business Use Only

--_000_DM5PR05MB35483EF22F478980A8E3541CD4F00DM5PR05MB3548namp_
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:"Segoe UI";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
/* 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:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	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:12.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: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.xmsonormal, li.xmsonormal, div.xmsonormal
	{mso-style-name:x_msonormal;
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle21
	{mso-style-type:personal;
	font-family:"Segoe UI",sans-serif;}
span.EmailStyle22
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
p.msipfooter30b3d538, li.msipfooter30b3d538, div.msipfooter30b3d538
	{mso-style-name:msipfooter30b3d538;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",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;}
/* List Definitions */
@list l0
	{mso-list-id:1835678206;
	mso-list-template-ids:-267367452;}
@list l0:level1
	{mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1
	{mso-list-id:1908302668;
	mso-list-template-ids:1761407146;}
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"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Reminder for our virtual interim meeting tomorrow.<o=
:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class=3D"MsoNormal">-----Original Appointment-----<br>
<b>From:</b> Jeffrey (Zhaohui) Zhang <br>
<b>Sent:</b> Tuesday, May 21, 2019 1:47 PM<br>
<b>To:</b> Jeffrey (Zhaohui) Zhang; rift@ietf.org<br>
<b>Cc:</b> Suneesh Babu; Peter Psenak (ppsenak); Pascal Thubert (pthubert);=
 Acee Lindem (acee); Keyur Patel; Dailongfei (Larry, IP Research); Mankaman=
a Mishra (mankamis); tonysietf@gmail.com; melchior@aelmans.eu; Rafal Szmidt=
; Oliver Steudler; marco@morales.id;
 Phil Boulo (pboulo); wei.yuehua@zte.com.cn<br>
<b>Subject:</b> Monthly RIFT Virtual Interim Meeting<br>
<b>When:</b> Thursday, July 11, 2019 11:00 AM-12:00 PM (UTC-05:00) Eastern =
Time (US &amp; Canada).<br>
<b>Where:</b> <o:p></o:p></p>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div style=3D"border:none;border-bottom:solid windowtext 1.0pt;padding:0in =
0in 1.0pt 0in">
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Reschedule this one to 7/11 as 7/4 a US holiday.<o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Hi RIFTers,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">We&#8217;re going to start a series of monthly virtual interim meet=
ings on the first Thursday of each month, from 11am US Eastern Time to 12pm=
:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<ol style=3D"margin-top:0in" start=3D"1" type=3D"1">
<li class=3D"xmsonormal" style=3D"color:black;mso-list:l0 level1 lfo3"><spa=
n style=3D"font-size:12.0pt">newest developments on RIFT main draft
</span><o:p></o:p></li><li class=3D"xmsonormal" style=3D"color:black;mso-li=
st:l0 level1 lfo3"><span style=3D"font-size:12.0pt">discussion of other dra=
fts like yang/applicability/sr/multicast
</span><o:p></o:p></li></ol>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Official IETF interim session announcement will follow.<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">The webex password is tfir2019.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Thanks.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Jeffrey<o:p></o:p></span></p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">&nbsp; <br>
</span><span style=3D"font-size:10.0pt;font-family:&quot;Segoe UI&quot;,san=
s-serif;color:#A0A0A0">-<a name=3D"WBXBCC4A">- Do not delete or change any =
of the following text. --</a></span><span style=3D"mso-bookmark:WBXBCC4A"><=
span style=3D"font-size:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif"=
>
 &nbsp; <br>
&nbsp; <o:p></o:p></span></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"4" cellpadding=
=3D"0" width=3D"0" style=3D"width:0in;width:auto!important">
<tbody>
<tr>
<td style=3D"padding:.75pt .75pt .75pt .75pt;width:auto!important">
<table class=3D"MsoNormalTable" border=3D"1" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"0" style=3D"width:0in;background:#43A942;border:solid #43A9=
42 1.0pt;width:auto!important">
<tbody>
<tr>
<td width=3D"240" style=3D"width:2.5in;border:none;padding:7.5pt 15.0pt 7.5=
pt 15.0pt;width:auto!important">
<p class=3D"MsoNormal" align=3D"center" style=3D"text-align:center"><span s=
tyle=3D"mso-bookmark:WBXBCC4A"></span><a href=3D"https://ietf.webex.com/iet=
f/j.php?MTID=3Dmb26e43c3067b0559b050ec9c39de7f95"><span style=3D"mso-bookma=
rk:WBXBCC4A"><span style=3D"font-size:15.0pt;color:white;text-decoration:no=
ne">Join
 Webex Meeting</span></span><span style=3D"mso-bookmark:WBXBCC4A"></span></=
a><span style=3D"mso-bookmark:WBXBCC4A">
<o:p></o:p></span></p>
</td>
<span style=3D"mso-bookmark:WBXBCC4A"></span>
</tr>
</tbody>
</table>
<span style=3D"mso-bookmark:WBXBCC4A"></span></td>
<span style=3D"mso-bookmark:WBXBCC4A"></span>
<td style=3D"padding:.75pt .75pt .75pt .75pt;width:auto!important">
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"0" style=3D"width:0in;width:auto!important">
<tbody>
<tr>
<td style=3D"padding:0in 0in 0in 0in;width:auto!important">
<p class=3D"MsoNormal"><span style=3D"mso-bookmark:WBXBCC4A">&nbsp;<o:p></o=
:p></span></p>
</td>
<span style=3D"mso-bookmark:WBXBCC4A"></span>
</tr>
</tbody>
</table>
<span style=3D"mso-bookmark:WBXBCC4A"></span></td>
<span style=3D"mso-bookmark:WBXBCC4A"></span>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D=
"font-size:13.5pt;font-family:&quot;Segoe UI&quot;,sans-serif">&nbsp;
<br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#666666">Meeting=
 number (access code): 647 561 538</span></span><span style=3D"mso-bookmark=
:WBXBCC4A"><span style=3D"font-size:13.5pt;font-family:&quot;Segoe UI&quot;=
,sans-serif">
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#666666"><br>
Meeting password: tfir2019&nbsp; <br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif">&nbsp;
<br>
<br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:13.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#666666">Join by=
 phone</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"fo=
nt-size:13.5pt;font-family:&quot;Segoe UI&quot;,sans-serif">&nbsp;
<br>
</span></span><a href=3D"tel:%2B1-650-479-3208,,*01*647561538%23%23*01*"><s=
pan style=3D"mso-bookmark:WBXBCC4A"><b><span style=3D"font-size:10.0pt;font=
-family:&quot;Segoe UI&quot;,sans-serif;color:#00AFF9;text-decoration:none"=
>1-650-479-3208</span></b></span><span style=3D"mso-bookmark:WBXBCC4A"></sp=
an></a><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0p=
t;font-family:&quot;Segoe UI&quot;,sans-serif;color:#666666">&nbsp;Call-in
 toll number (US/Canada)</span></span><span style=3D"mso-bookmark:WBXBCC4A"=
><span style=3D"font-size:13.5pt;font-family:&quot;Segoe UI&quot;,sans-seri=
f">&nbsp;
<br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif">&nbsp;
<br>
</span></span><a href=3D"https://collaborationhelp.cisco.com/article/WBX000=
029055"><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0=
pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#00AFF9">Can't join th=
e meeting?</span></span><span style=3D"mso-bookmark:WBXBCC4A"></span></a><s=
pan style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0pt;font-fa=
mily:&quot;Segoe UI&quot;,sans-serif">
<br>
&nbsp; <br>
<span style=3D"color:#666666">If you are a host, </span></span></span><a hr=
ef=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dm0e51f4b41e06ce23c8331af8d21=
d39ed"><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0p=
t;font-family:&quot;Segoe UI&quot;,sans-serif;color:#00AFF9">go
 here</span></span><span style=3D"mso-bookmark:WBXBCC4A"></span></a><span s=
tyle=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0pt;font-family:=
&quot;Segoe UI&quot;,sans-serif;color:#666666"> to view host information.</=
span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:=
10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#00AFF9"><br>
<br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:7.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#A0A0A0">IMPORTAN=
T NOTICE: Please note that this Webex service allows audio and other inform=
ation sent during the session to be recorded,
 which may be discoverable in a legal matter. By joining this session, you =
automatically consent to such recordings. If you do not consent to being re=
corded, discuss your concerns with the host or do not join the session.</sp=
an></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10=
.0pt;font-family:&quot;Segoe UI&quot;,sans-serif">
</span></span><o:p></o:p></p>
</div>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"msipfooter30b3d538" align=3D"center" style=3D"margin:0in;margin=
-bottom:.0001pt;text-align:center">
<span style=3D"font-size:7.0pt;color:black">Juniper Business Use Only</span=
><o:p></o:p></p>
</div>
</body>
</html>

--_000_DM5PR05MB35483EF22F478980A8E3541CD4F00DM5PR05MB3548namp_--


From nobody Wed Jul 10 08:05:13 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 639E0120355 for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 08:05:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 RAYJ3vIvia3n for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 08:05:02 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 C241E1203BE for <rift@ietf.org>; Wed, 10 Jul 2019 08:05:01 -0700 (PDT)
Received: from pps.filterd (m0108162.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6AF508I030609; Wed, 10 Jul 2019 08:05:00 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=1oToY0VC9HEhYPUpz2CkZkxqYNBwraKVUaNwS9TpMuI=; b=MouC01wxZt7CMEHIgRmsQBXdp4hzzN7GyeUnR47uqOEzWJAnlGnUKLhUAQUCMls4O3k1 pdqF0KCTTJL+nkT+baCIG4QqI7WMe9KsMFovHMo5B3iWivCf+cm1XKy8WzvCY4WEOYZq kPOHCOSikH3/4YAqv2PfKIEJ7mVbswtrmcUmy2Inu9fjCh8NLF9Wr/whb+oDyJU7k53Y itFtQ3F1S25vxmcy0H0fE6Sgv445Kx30Uocmw7BXviTMVoIO6NrzLGMGZ28mcaTv07+X yiIVsam83/6Q7nTkaR/cOwB2jvhIk2y98TpebMg+vwNZJgl166RRVtP6viinZ+Mb4a7y hA== 
Received: from nam03-co1-obe.outbound.protection.outlook.com (mail-co1nam03lp2051.outbound.protection.outlook.com [104.47.40.51]) by mx0b-00273201.pphosted.com with ESMTP id 2tng51r83b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 10 Jul 2019 08:04:59 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VE3GJxSFfRnaajHClhiQRzbUcJVOMHOR6b+kYXCuhLsLHAjhrkMHdKznE5WPNDdK4nMh0VpY0Gz2BOGvj1a/KMnstHC/nyZzeMuwpYJ3IIqfqsmzC7QdP7rCJXOhcHTsqOeOtrYR7453+Q5/lMsadbXcsWarTKyqMEPbkKD+cfKa/XQYc29AnnxgK0EUnutSvYvHaelBK48Q8L7pFTxprLvPDIKkXhLVf0RhtL1dJfrlFcHruJtXdbhf+veNOdLgWs5XJdX0t477GM4uhxPgVR2xvdOYNz7JhaG+H9nepJmkQAYXU0fZj1s/uTEBORYp8eukOiCcbeAuxBZVLZ80wQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1oToY0VC9HEhYPUpz2CkZkxqYNBwraKVUaNwS9TpMuI=; b=aanqx4FEftonOjuDn3jljV0doXF0Niiu3eVAz+I8l4C5s6Gsj6phvgEuP2HpBDjNJZuE0i4p0DX6AVpR0kQEQFmfTJOgGusv1vfVeAcrGxQphY13GxvmNyYgCBoyBtgbysONdQDXbOTWbZubxQqkBBgF3vsPMWSmNsDg6MZTbGq6UPSrU2hxzA+8JwDlzSySr3VgGJppuWDkjwzRSaOJ13zvqLiHuqNcg4Ori+smKpijGvkR06l3amrDeyIQgcjyncn+NjgxMH6/JoNT3TIvzL31Q21AcN1bY1TBY8wJ6gJHaNUUhm5YmHBgF+dMTRb4olJiDlkuolaBbEdt+Z2uxA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB2877.namprd05.prod.outlook.com (10.168.245.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.6; Wed, 10 Jul 2019 15:04:40 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2073.008; Wed, 10 Jul 2019 15:04:40 +0000
From: Antoni Przygienda <prz@juniper.net>
To: "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>
CC: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>, "EXT-zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: Re:[Rift] Ipv4 and ipv6 cooperating in rift
Thread-Index: AQHVNlA8JouTnZSDOEiJbO/Xu4kdL6bCabZDgAEkTwCAAFAl8A==
Date: Wed, 10 Jul 2019 15:04:40 +0000
Message-ID: <MWHPR05MB3279B78E6D9AECB771D2497FACF00@MWHPR05MB3279.namprd05.prod.outlook.com>
References: 201907092008143097563@zte.com.cn, MWHPR05MB3279E72D3736A834BB036C9CACF10@MWHPR05MB3279.namprd05.prod.outlook.com, <201907101656125835263@zte.com.cn>
In-Reply-To: <201907101656125835263@zte.com.cn>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [108.228.12.76]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: bc91a3c9-811c-4b76-ff87-08d70547ef16
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB2877; 
x-ms-traffictypediagnostic: MWHPR05MB2877:
x-ld-processed: bea78b3c-4cdb-4130-854a-1d193232e5f4,ExtAddr
x-microsoft-antispam-prvs: <MWHPR05MB28772B13433C953A68F5DAE9ACF00@MWHPR05MB2877.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0094E3478A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(136003)(39860400002)(396003)(346002)(376002)(366004)(199004)(189003)(66066001)(53936002)(186003)(6916009)(105004)(7736002)(99286004)(2351001)(256004)(71190400001)(7696005)(6246003)(4326008)(25786009)(54906003)(14444005)(81156014)(8936002)(14454004)(19627405001)(102836004)(52536014)(316002)(86362001)(5660300002)(26005)(81166006)(8676002)(5640700003)(11346002)(54896002)(76116006)(6506007)(53546011)(2906002)(74316002)(2501003)(66446008)(66556008)(6436002)(9686003)(76176011)(3846002)(486006)(68736007)(71200400001)(55016002)(476003)(33656002)(446003)(229853002)(6116002)(478600001)(66476007)(64756008)(66946007); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB2877; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: Jwt+75N8it6wOxdqlt638GUmSHSeTxg6Cbkhol4v7Wu2qmkcNfK9BsJli41lBpHVQmaz2XTGWt1+/TFSd19eASW1vvrYf5PBXUYxXVH25JHkohFdwo07j9HrPgNbIJYc2heeZqsTQjAQ3SfyDdvb7kSZ1GDWT2loyx9d3y+hIVeV9ewceAIpB4E27bpxSMlIsdQbhpJTwgbhyBZ5wo6DAeGvpPijrWHkoXjjGqPVgSs4DEQxjnxlHBeRGylKMawo08BV4uhib22sSYEqI+Zhu0vKMSJozm5uXod4EKlwjGk8ptdHBWs5Bpo9lbxzPWvJa5jYf779r6ET+IHGvXw1ml1h5jsokmpWdx1DyoL5JQyWaaZZEGMbs4kQ3fYcEB6eR/bf0cx2C/jmgCyGTNtiLLZZTpf9asQX/3cHVPuLKK4=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB3279B78E6D9AECB771D2497FACF00MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: bc91a3c9-811c-4b76-ff87-08d70547ef16
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jul 2019 15:04:40.7253 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB2877
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-10_06:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907100172
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/4ZCv7w2sFySV6iKtFw1JzOmAPKU>
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jul 2019 15:05:11 -0000

--_000_MWHPR05MB3279B78E6D9AECB771D2497FACF00MWHPR05MB3279namp_
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64

SGV5IEJlbmNob25nLCB0aGF0J3MgYW4gb3Zlci1pbnRlcnByZXRhdGlvbiwgdGhlIHNwZWMgaXMg
bG9vc2VyIHRoYW4gdGhhdCBidXQgYXMgZmFyIEkgc2F3IHN1ZmZpY2llbnQuIFNlY3Rpb24gNS4y
LjIuDQoNCmEpIFNwZWNpZmljYXRpb24gZG9lcyBub3QgcHJvaGliaXQgUklGVCBmcm9tIHVzaW5n
IF9hbnlfIHZhbGlkIElQdjYgYWRkcmVzcyBvbiB0aGUgaW50ZXJmYWNlIHRvIHNlbmQgSVB2NiBM
SUVzLiBUaGUgcmVjZWl2ZXIgaXMgc3VwcG9zZWQgdG8gcGljayB1cCB0aGF0IHNvdXJjZSBhZGRy
ZXNzIGFuZCB1c2UgaXQgYXMgZGVzdGluYXRpb24gd2hlbiBzZW5kaW5nIExJRXMgb3ZlciB2NiBh
bmQvb3IgVElFcyB3aXRoIHRoZSByZWNldmluZyBpbnRlcmZhY2UgYXMgZ2F0ZXdheS4gU3BlY2lm
aWNhdGlvbiBkb2VzIE5PVCBzcGVsbCBvdXQgd2hhdCBoYXBwZW5zIGUuZy4gb24gbWlzbWF0Y2hl
ZCBJUCBzdWJuZXRzIG9uIGJvdGggc2lkZXMgYW5kIHNvIG9uLCBzaXR1YXRpb24gaGVyZSBpcyBz
aW1pbGFyIHRvIElTSVMgYW5kIGRpZmZlcmVudCBzY2VuYXJpb3Mgc3VjaCBhcyB1bm51bWJlcmVk
IGxpbmtzIGFuZCBzbyBvbg0KYikgSWYgeW91IHdhbnQgdGhlICJsYXppZXN0IiBwb3NzaWJsZSBp
bXBsZW1lbnRhdGlvbiB0aGVuIGluIGZhY3QgeWVzLCB5b3UgY2FuIGZhbGwgYmFjayBvbg0KDQoi
DQoNCiAgIEFsbCBSSUZUIHJvdXRlcnMgTVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQg
TUFZIHN1cHBvcnQgSVB2Ng0KICAgZm9yd2FyZGluZy4gIEEgdGhyZWUgd2F5IGFkamFjZW5jeSBv
dmVyIElQdjYgYWRkcmVzc2VzIGltcGxpZXMNCiAgIHN1cHBvcnQgZm9yIElQdjQgZm9yd2FyZGlu
Zy4NCg0KIg0KDQp3aGljaCBtYWtlcyB2NG92NiBmb3J3YXJkaW5nIGluaGVyZW50IHBhcnQgb2Yg
UklGVC4gVGhhdCBhc3N1bWVzIGhvd2V2ZXIgdGhhdCByZWNlaXZpbmcgbmVpZ2hib3IgZG9lcyBz
dXBwb3J0IFY2ICh3aGljaCB0aGUgc3BlYyBkb2VzIE5PVCBtYW5kYXRlKSBhbmQgbm90aGluZyB3
aWxsIGhhcHBlbiBpZiBpdCBkb2Vzbid0LiBUaGVyZWZvcmUgYWxsIFJJRlQgaW1wbGVtZW50YXRp
b24gSSBzYXcgc28gZmFyIHNlbmQgYm90aCB2NCBhbmQgdjYgd2hpY2ggYWxsb3dzIHRoZSBuZWln
aGJvciB0byBvbmx5IHJlY2VpdmUgdjQgYW5kIGZvcndhcmQgdXNpbmcgdjQgZ2F0ZXdheXMgaWYg
aXQgZG9lc24ndCBzdXBwb3J0IFY2LiBJbiBjYXNlIGJvdGggdjQgYW5kIHY2IEFGcyBhcmUgZXN0
YWJsaXNoZWQsIGl0IGlzIHVwIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiB3aGljaC9ob3cgaXQgcmVz
b2x2ZXMgdGhlIGdhdGV3YXlzIGFuZCB0aGVyZSBhcmUgbWFueSBpbnRlcmVzdGluZyBhZHZhbmNl
ZCBpc3N1ZXMgc3VjaCBhcyBtaXh0dXJlIG9mIHNwaW5lcyB3aXRoIHY0IGFuZCB2NiBuZXh0aG9w
cyBhbmQgaG93IHRvIGZvcm0gRUNNUCBhbW9uZ3N0IHRoZW0gdGhhdCB0aGUgc3BlYyBkb2VzIG9i
dmlvdXNseSBub3QgYWRkcmVzcyBzaW5jZSBpdCdzIGFsbCB2ZXJ5IGltcGxlbWVudGF0aW9uIGFu
ZCBzaWxpY29uIHNwZWNpZmljLg0KDQotLS0gdG9ueQ0KX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18NCkZyb206IHh1LmJlbmNob25nQHp0ZS5jb20uY24gPHh1LmJlbmNob25nQHp0ZS5j
b20uY24+DQpTZW50OiBXZWRuZXNkYXksIEp1bHkgMTAsIDIwMTkgMTo1NiBBTQ0KVG86IEFudG9u
aSBQcnp5Z2llbmRhDQpDYzogSmVmZnJleSAoWmhhb2h1aSkgWmhhbmc7IEVYVC16aGFuZy56aGVu
Z0B6dGUuY29tLmNuOyByaWZ0QGlldGYub3JnDQpTdWJqZWN0OiBSZTpbUmlmdF0gSXB2NCBhbmQg
aXB2NiBjb29wZXJhdGluZyBpbiByaWZ0DQoNCg0KDQpUb255LCB0aGFuayB5b3UgZm9yIHlvdXIg
cmVwbHkNCg0KQ2FuIGl0IGJlIHVuZGVyc3Rvb2QgdGhhdCBhZnRlciB0aGUgTkQgaXMgZW5hYmxl
ZCwgdGhlIHY2IGFkZHJlc3MgbmVlZHMgdG8gYmUgdXNlZCB0byBidWlsZCBuZWlnaGJvcj8gSW4g
dGhpcyBjYXNlLCB0aGUgcmlmdCBwYWNrZXQgb2YgdGhlIHY0IGhlYWRlciBpcyBub3QgYWxsb3dl
ZCB0byBiZSBzZW50IGFuZCByZWNlaXZlZCwgYW5kIGJvdGggdjQgYW5kIHY2IHJvdXRlcyBoYXZl
IGEgdjYgR1cuDQoNCg0KDQrUrcq808q8/g0Kt6K8/sjLo7pBbnRvbmlQcnp5Z2llbmRhIDxwcnpA
anVuaXBlci5uZXQ+DQrK1bz+yMujutDssb6z5zEwMDY1MDUzO0plZmZyZXkgKFpoYW9odWkpWmhh
bmcgPHp6aGFuZ0BqdW5pcGVyLm5ldD471cXV9zAwMDA3OTQwO3JpZnRAaWV0Zi5vcmcgPHJpZnRA
aWV0Zi5vcmc+Ow0KyNUgxtogo7oyMDE5xOowN9TCMTDI1SAwMDowOQ0K1vcgzOIgo7pSZTogW1Jp
ZnRdIElwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdA0KSGV5IEJlbmNob25nLCBjYzon
aW5nIGxpc3QsIGdvb2QgcXVlc3Rpb25zIG9idmlvdXNseSB0aGF0IHBvcCBvdXQgb24gaW1wbGVt
ZW50YXRpb24NCg0KDQogIDEuICBzZW5kaW5nIExJRSBvbmx5IHdpdGggdjQgd2lsbCBub3QgZ2l2
ZSB5b3UgYSB2NiBhZGRyZXNzIHRvIHNlbmQgdG8gKHNpbmNlIHRoZSBMSUUgc291cmNlIGFkZHJl
c3MgZ2l2ZXMgdGhlIGdhdGV3YXkgZm9yIHRoZSBBRiwgdGhhdCdzIHdoeSB3ZSBzZW5kIExJRSBw
ZXIgQUYpIHNvIHlvdSB3b24ndCBoYXZlIGEgdjYgR1cgYWRkcmVzcyB0byBzZW5kIFRJRXMgdG8g
Oy0pDQoNCiAgMi4gIHllcywgZXZlcnkgaW50ZXJmYWNlIGlzIGluZGVwZW5kZW50LiBPYnNlcnZl
IHRoYXQgdjYgc3VwcG9ydCBpbXBsaWVzIHY0IGFzIHRoZSBzcGVjIHNheXMgKHNpbmNlIHlvdSBj
YW4gRlcgdjQgd2l0aG91dCBhIHY0IEdXIGlmIHlvdSBoYXZlIGEgdjYgZ2F0ZXdheSkuIEhvd2V2
ZXIsIGlmIG9uZSBzaWRlIHNlbmRzIHY2IG9ubHkgYW5kIHRoZSBvdGhlciBzaWRlIG9ubHkgdjQg
dGhleSdsbCBuZXZlciBnbyAzLXdheSBzaW5jZSB0aGV5IHdvbid0ICBiZSBhYmxlIHRvIHJlY2Vp
dmUuIFdlIGp1c3QgYWRkZWQgYSBzZW50ZW5jZSB0byB0aGUgc3BlYyBzYXlpbmcgdGhhdCBpZiB5
b3UgZG9uJ3Qgc2VuZCBhbiBBRiBMSUUgeW91IE1VU1QgTk9UIHJlY2VpdmUgdGhlIHNhbWUgQUYg
TElFIHNpbmNlIHdlIGZvdW5kIHRoYXQgbG9vc2UgZW5kIGluIEJydW5vJ3MgaW1wbGVtZW50YXRp
b24gd2hlbiB0ZXN0aW5nIHNlY3VyaXR5IGVudmVsb3Blcy4gIEl0IHdpbGwgYmUgaW4gLTA3DQoN
Cg0KPHQ+QWxsIFJJRlQgcm91dGVycyBNVVNUIHN1cHBvcnQgSVB2NCBmb3J3YXJkaW5nIGFuZCBN
QVkgc3VwcG9ydCBJUHY2DQogICAgZm9yd2FyZGluZy4gQSB0aHJlZSB3YXkgYWRqYWNlbmN5IG92
ZXIgSVB2NiBhZGRyZXNzZXMgaW1wbGllcyBzdXBwb3J0DQogICAgZm9yIElQdjQgZm9yd2FyZGlu
Zy4gQSBub2RlIHRoYXQgZG9lcyBub3QgcHJvY2VzcyByZWNlaXZlZCBJUHY2IExJRXMNCiAgICBN
VVNUIE5PVCBvcmlnaW5hdGUgSVB2NiBMSUVzLg0KICAgIDwvdD4NCg0KDQogIDEuICBJUHY2L0lQ
djQgcHJlZml4IGNhbiBiZSBtaXhlZCBpbiBQcmVmaXggVElFcy4gUHJlZml4IFRJRXMgZG8gTk9U
IGNhcmUgd2hpY2ggaW50ZXJmYWNlL0FGIHRoZXkgYXJlIHNlbnQgb3Zlci4NCg0KICAyLiAgaG93
IHlvdSBidWlsZCBmb3J3YXJkaW5nIHRhYmxlIGFuZCB3aGljaCBnYXRld2F5cyB5b3UgdXNlIGlz
IGltcGxlbWVuYXRpb24gZGVwZW5kZW50IGJ1dCB5ZXMsIHlvdSBnb3QgdGhlIGZsYXZvci4gdGhv
dWdoIHlvdXIgYXNzdW1wdGlvbiBvZiAiSXB2NiBkZXN0aW5hdGlvbiB3aXRoIGlwdjQgbmV4dGhv
cCIgaXMgb3B0aW1pc3RpYy4gZXZlcnkgc2lsaWNvbiBkb2VzIHY0IHNvIHY2IGNhbiBpbXBseSB2
NCwgaW1wbHlpbmcgdjQgZndkJ2luZyAgYWxsb3dzIHY2IGZvcndhcmRpbmcgZmFpbHMgb24gZ29v
ZCBhbW91bnQgb2Ygc2lsaWNvbi4gQnV0IGFnYWluLCB0aG9zZSBhcmUgYWxsIGltcGxlbWVudGF0
aW9uIGtub2JzLCBzcGVjIG9ubHkgc2F5cyAidjYgaW1wbGllcyB2NCIgd2hpY2ggbWVhbnMgInlv
dSBiZXR0ZXIgZndkLiB2NCBvdmVyIHY2IG5leHRob3BzIGlmIHlvdSBzZWUgdjYgTElFcyBvbmx5
Ig0KDQpPYnNlcnZlIHRoYXQgbm9kZSBUSUVzIGFyZSBfbm90XyBjYXJyeWluZyB0aGUgc3VwcG9y
dGVkIEFGcyBvbiBlYWNoIGludGVyZmFjZSBzaW5jZSBJIHRoaW5rIGl0IHdvdWxkIGxlYWQgdG8g
dW5kZXNpcmFibGUgYXR0ZW1wdHMgdG8gZGVwbG95IChzb21lIGxpbmtzIGNhbiBkbyB2NikgdG9w
b2xvZ2llcyB3aGljaCBkZWZlYXQgdGhlIHB1cnBvc2Ugb2YgWlRQL3NpbXBsaWNpdHkgb2YgUklG
VC4gdjYgaW1wbGllcyB2NCwgaWYgc29tZW9uZSAgd2FudHMgdG8gZndkJyB2NiBvdmVyIGEgZmFi
cmljIHdoZXJlIGNlcnRhaW4gbGlua3MgYXJlIHY0IGNvbXB1dGF0aW9ucyBnZXQgcmVhbGx5IHdl
aXJkIGFuZCBvcGVyYXRpb25hbGx5IHN1Y2ggYSB0aGluZyBpcyBwcm9iYWJseSBhIG5pZ2h0bWFy
ZSBhbnl3YXkuIEFuZCBnZXR0aW5nIHY2IHdvcmtpbmcgaXMgdHJpdmlhbCwganVzdCBmbGlwIG9u
IE5EIGFuZCB5b3UncmUgaW4gYnVzaW5lc3MgKGF0IGxlYXN0IGNvbnRyb2wgcGxhbmUgd2lzZSA7
LSkNCg0KVGhlIHNwZWMgaXMgbm9pdCBnaXZpbmcgaW1wbGVtZW50YXRpb24gYWR2aWNlLCBpdCBq
dXN0IHNwZWNpZmllcyBiZWhhdmlvci4gSW4gY2FzZSBvZiBkb3VidCBsb29rcyBAIEJydW5vJztz
IG9wZW4gc291cmNlLiBCcnVubyBpbXBsZW1lbnRlZCB0aGUgd2hvbGUgTElFIHdpdGhvdXQgZXZl
ciB0YWxraW5nIHRvIG1lIGFuZCBpdCBpbnRlcm9wJ2VkIGRheSBvbmUgd2l0aG91dCBwcm9ibGVt
cy4NCg0KV2hlbiB5b3UncmUgcmVhZHkgd2l0aCB5b3VyIGltcGxlbWVudGF0aW9uIHRvIGludGVy
b3AsIEJydW5vJ3MgY29kZSBoYXMgbmljZSBmcmFtZXdvcmsgeW91IGNhbiBwbHVnIGluIGFnYWlu
c3Qgb3BlbiBzb3VyY2UgJiBKdW5pcGVyIGltcGxlbWVudGF0aW9uIGVhc2lseQ0KDQotLS0gdG9u
eQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IHh1LmJlbmNob25nQHp0
ZS5jb20uY24gPHh1LmJlbmNob25nQHp0ZS5jb20uY24+DQpTZW50OiBUdWVzZGF5LCBKdWx5IDks
IDIwMTkgNTowOCBBTQ0KVG86IEFudG9uaSBQcnp5Z2llbmRhOyBKZWZmcmV5IChaaGFvaHVpKSBa
aGFuZzsgRVhULXpoYW5nLnpoZW5nQHp0ZS5jb20uY24NClN1YmplY3Q6IFtSaWZ0XSBJcHY0IGFu
ZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQNCg0KSGkNCg0KSSBoYXZlIHNvbWUgcXVlc3Rpb25z
IGFib3V0IGlwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdC4NCg0KSXAgaGVhZCBvZiB0
aGUgcmlmdCBwYWNrZXQgY2FuIGJlIFY0IG9yIFY2LCBhbmQgdGhlIHByZWZpeCBpbiBUSUUgYWxz
byBzdXBvcnQgVjQgb3IgdjYuDQoNCkNhbiBpdCBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgc2l0dWF0
aW9uczoNCg0KDQoxoaJBIHJpZnQgaW50ZXJmYWNlIHdoaWNoIHNlbmQgTElFIHdpdGggaXB2NCBo
ZWFkIHJlY2VpdmluZyBMSUUgd2l0aCBJUHY2IGhlYWQ7DQoNCkEgcmlmdCBpbnRlcmZhY2Ugd2hp
Y2ggc2VuZCBMSUUgd2l0aCBpcHY2IGhlYWQgcmVjZWl2aW5nIExJRSB3aXRoIElQdjQgaGVhZDsN
Cg0KQ2FuIHRoZXkgYnVpbGQgMy1XYXkgbmVpZ2hib3I/DQoNCg0KMqGiU29tZSBpbnRlcmZhY2Vz
IGluIGEgcmlmdCBpbnN0YW5jZSBzZW5kIGlwdjQgaGVhZCBwYWNrZXRzo6wgYW5kIG90aGVycyBp
biB0aGUgc2FtZSBpbnN0YW5jZSBzZW5kIGlwdjYgaGVhZCBwYWNrZXRzo7sNCg0KDQozoaJJcHY0
IGhlYWQgVElFIHBhY2tldCBmaWxsIGlwdjYgcHJlZml4o7sNCg0KICAgSXB2NiBoZWFkIFRJRSBw
YWNrZXQgZmlsbCBpcHY0IHByZWZpeKO7KFJJRlQtMDYgNS4yLjI6IEFsbCBSSUZUIHJvdXRlcnMg
TVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQgSVB2Ng0KDQogICBm
b3J3YXJkaW5nLiAgQSB0aHJlZSB3YXkgYWRqYWNlbmN5IG92ZXIgSVB2NiBhZGRyZXNzZXMgaW1w
bGllcw0KDQogICBzdXBwb3J0IGZvciBJUHY0IGZvcndhcmRpbmcuKQ0KDQoNCjShokluIHJpYiB0
YWJsZSBvZiB0aGUgcmlmdDoNCg0KICAgSXB2NCBkZXN0aW5hdGlvbiB3aXRoIGlwdjYgbmV4dGhv
cDsNCg0KICAgSXB2NiBkZXN0aW5hdGlvbiB3aXRoIGlwdjQgbmV4dGhvcDsNCg0KICAgSXB2NCBk
ZXN0aW5hdGlvbiB3aXRoIGJvdGggaXB2NCBuZXh0aG9wIGFuZCBpcHY2IG5leHRob3A7DQoNCiAg
IElwdjYgZGVzdGluYXRpb24gd2l0aCBib3RoIGlwdjQgbmV4dGhvcCBhbmQgaXB2NiBuZXh0aG9w
Ow0KDQoNCg0KNaGiVGhlIGlwIGhlYWQgdHlwZSh2NCBvciB2NikgY2FuIGJlIGNvbmZpZ3VyZWQg
aW4gcmlmdCBpbnRlcmZhY2Ugb3IgaW5zdGFuY2UuDQoNCg0KSXQgd2lsbCBiZSBiZXR0ZXIgaWYg
dGhlcmUgYXJlIGNsZWFyIGluc3RydWN0aW9ucyBpbiByaWZ0IHByb3RvY29sLg0KDQoNClRoYW5r
c6OhDQoNCkJlbmNob25nDQoNCg0KDQoNCg0K

--_000_MWHPR05MB3279B78E6D9AECB771D2497FACF00MWHPR05MB3279namp_
Content-Type: text/html; charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dgb2312">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Hey Benchong, that's an over-interpretation, the spec is looser than that b=
ut as far I saw sufficient. Section 5.2.2.
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
a) Specification does not prohibit RIFT from using _any_ valid IPv6 address=
 on the interface to send IPv6 LIEs. The receiver is supposed to pick up th=
at source address and use it as destination when sending LIEs over v6 and/o=
r TIEs with the receving interface
 as gateway. Specification does NOT spell out what happens e.g. on mismatch=
ed IP subnets on both sides and so on, situation here is similar to ISIS an=
d different scenarios such as unnumbered links and so on<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
b) If you want the &quot;laziest&quot; possible implementation then in fact=
 yes, you can fall back on
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
&quot;
<pre>   All RIFT routers MUST support IPv4 forwarding and MAY support IPv6=
=0A=
   forwarding.  A three way adjacency over IPv6 addresses implies=0A=
   support for IPv4 forwarding.</pre>
&quot;</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
which makes v4ov6 forwarding inherent part of RIFT. That assumes however th=
at receiving neighbor does support V6 (which the spec does NOT mandate) and=
 nothing will happen if it doesn't. Therefore all RIFT implementation I saw=
 so far send both v4 and v6 which
 allows the neighbor to only receive v4 and forward using v4 gateways if it=
 doesn't support V6. In case both v4 and v6 AFs are established, it is up t=
o the implementation which/how it resolves the gateways and there are many =
interesting advanced issues such
 as mixture of spines with v4 and v6 nexthops and how to form ECMP amongst =
them that the spec does obviously not address since it's all very implement=
ation and silicon specific.
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
--- tony <br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> xu.benchong@zte.com.c=
n &lt;xu.benchong@zte.com.cn&gt;<br>
<b>Sent:</b> Wednesday, July 10, 2019 1:56 AM<br>
<b>To:</b> Antoni Przygienda<br>
<b>Cc:</b> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; rift@ietf.o=
rg<br>
<b>Subject:</b> Re:[Rift] Ipv4 and ipv6 cooperating in rift</font>
<div>&nbsp;</div>
</div>
<div>
<div class=3D"x_zcontentRow">
<p><br>
</p>
<p>Tony, thank you for your reply</p>
<p>Can it be understood that after the ND is enabled, the v6 address needs =
to be used to build neighbor? In this case, the rift packet of the v4 heade=
r is not allowed to be sent and received, and both v4 and v6 routes have a =
v6 GW.</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_zhistoryRow" style=3D"display:block">
<div class=3D"x_zhistoryDes" style=3D"width:100%; height:28px; line-height:=
28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_zwriteHistoryContainer">
<div class=3D"x_control-group x_zhistoryPanel">
<div class=3D"x_zhistoryHeader" style=3D"padding:8px; background-color:#F5F=
6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span><span class=
=3D"x_zreadUserName" style=3D"display:inline">Jeffrey (Zhaohui)Zhang &lt;zz=
hang@juniper.net&gt;;</span><span class=3D"x_zreadUserName" style=3D"displa=
y:inline">=D5=C5=D5=F700007940;</span><span class=3D"x_zreadUserName" style=
=3D"display:inline">rift@ietf.org
 &lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C210=C8=D5 00:09</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_zreadTitle"><str=
ong>Re: [Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, cc:'ing list, good questions obviously that pop out on implem=
entation &nbsp;
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<ol class=3D"x_list-paddingleft-2">
<li>
<p>sending LIE only with v4 will not give you a v6 address to send to (sinc=
e the LIE source address gives the gateway for the AF, that's why we send L=
IE per AF) so you won't have a v6 GW address to send TIEs to ;-)</p>
</li><li>
<p>yes, every interface is independent. Observe that v6 support implies v4 =
as the spec says (since you can FW v4 without a v4 GW if you have a v6 gate=
way). However, if one side sends v6 only and the other side only v4 they'll=
 never go 3-way since they won't
 &nbsp;be able to receive. We just added a sentence to the spec saying that=
 if you don't send an AF LIE you MUST NOT receive the same AF LIE since we =
found that loose end in Bruno's implementation when testing security envelo=
pes.&nbsp; It will be in -07<br>
</p>
</li></ol>
<br>
<div>
<pre style=3D"background-color:#ffffff; color:#000000; font-family:'Menlo';=
 font-size:7.5pt"><span style=3D"background-color:#efefef">&lt;</span><span=
 style=3D"color:#000080; background-color:#efefef; font-weight:bold">t</spa=
n><span style=3D"background-color:#efefef">&gt;</span>All RIFT routers MUST=
 support IPv4 forwarding and MAY support IPv6<br>    forwarding. A three wa=
y adjacency over IPv6 addresses implies support<br>    for IPv4 forwarding.=
 <strong>A node that does not process received IPv6 LIEs<br> &nbsp; &nbsp;M=
UST NOT originate IPv6 LIEs.</strong><br>    <span style=3D"background-colo=
r:#efefef">&lt;/</span><span style=3D"color:#000080; background-color:#efef=
ef; font-weight:bold">t</span><span style=3D"background-color:#efefef">&gt;=
</span></pre>
<br>
</div>
<ol class=3D"x_list-paddingleft-2">
<li>
<p>IPv6/IPv4 prefix can be mixed in Prefix TIEs. Prefix TIEs do NOT care wh=
ich interface/AF they are sent over.
<br>
</p>
</li><li>
<p>how you build forwarding table and which gateways you use is implemenati=
on dependent but yes, you got the flavor. though your assumption of &quot;I=
pv6 destination with ipv4 nexthop&quot; is optimistic. every silicon does v=
4 so v6 can imply v4, implying v4 fwd'ing
 &nbsp;allows v6 forwarding fails on good amount of silicon. But again, tho=
se are all implementation knobs, spec only says &quot;v6 implies v4&quot; w=
hich means &quot;you better fwd. v4 over v6 nexthops if you see v6 LIEs onl=
y&quot;<br>
</p>
</li></ol>
<div>Observe that node TIEs are _not_ carrying the supported AFs on each in=
terface since I think it would lead to undesirable attempts to deploy (some=
 links can do v6) topologies which defeat the purpose of ZTP/simplicity of =
RIFT. v6 implies v4, if someone
 &nbsp;wants to fwd' v6 over a fabric where certain links are v4 computatio=
ns get really weird and operationally such a thing is probably a nightmare =
anyway. And getting v6 working is trivial, just flip on ND and you're in bu=
siness (at least control plane wise ;-)<br>
</div>
<br>
<div>The spec is noit giving implementation advice, it just specifies behav=
ior. In case of doubt looks @ Bruno';s open source. Bruno implemented the w=
hole LIE without ever talking to me and it interop'ed day one without probl=
ems.
<br>
</div>
<br>
<div>When you're ready with your implementation to interop, Bruno's code ha=
s nice framework you can plug in against open source &amp; Juniper implemen=
tation easily
<br>
</div>
<br>
<div>--- tony <br>
</div>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-size:11pt; font=
-family:Calibri,sans-serif; color:#000000"><strong>From:</strong> xu.bencho=
ng@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Tuesday, July 9, 2019 5:08 AM<br>
<strong>To:</strong> Antoni Przygienda; Jeffrey (Zhaohui) Zhang; EXT-zhang.=
zheng@zte.com.cn<br>
<strong>Subject:</strong> [Rift] Ipv4 and ipv6 cooperating in rift</span> &=
nbsp;</div>
<div>
<div class=3D"x_x_zcontentRow">
<div>
<div class=3D"x_x_zcontentRow">
<div>
<div class=3D"x_x_zcontentRow">
<div>
<div class=3D"x_x_zcontentRow">
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Hi<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
I have some questions about ipv4 and ipv6 cooperating in rift.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Ip head of the rift packet can be V4 or V6, and the prefix in TIE also supo=
rt V4 or v6.&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can it support the following situations:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
1=A1=A2A rift interface which&nbsp;send LIE with ipv4 head receiving LIE wi=
th IPv6 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
A rift interface which&nbsp;send LIE with ipv6 head receiving LIE with IPv4=
 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can they build 3-Way neighbor?</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
2=A1=A2Some interfaces in a rift instance send ipv4 head packets=A3=AC and =
others in the same instance send ipv6 head packets=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
3=A1=A2Ipv4 head TIE packet fill ipv6 prefix=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 head TIE packet fill ipv4 prefix=A3=BB(RIFT-06 5.2.2: All=
 RIFT routers MUST support IPv4 forwarding and MAY support IPv6</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;forwarding. &nbsp;A three way adjacency over IPv6 addresses im=
plies</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;support for IPv4 forwarding.)</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
4=A1=A2In rib table of the rift:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with ipv4 nexthop;&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
5=A1=A2The ip head type(v4 or v6) can be configured in rift interface or in=
stance.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
It will be better if there are clear instructions in rift protocol.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Thanks=A3=A1</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Benchong</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</body>
</html>

--_000_MWHPR05MB3279B78E6D9AECB771D2497FACF00MWHPR05MB3279namp_--


From nobody Wed Jul 10 11:10:59 2019
Return-Path: <zzhang@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F09801205E5 for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 11:10:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level: 
X-Spam-Status: No, score=-2.698 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 79YCAt_xJoT7 for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 11:10:55 -0700 (PDT)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 6C28E120602 for <rift@ietf.org>; Wed, 10 Jul 2019 11:10:55 -0700 (PDT)
Received: from pps.filterd (m0108158.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6AI9SiI006875 for <rift@ietf.org>; Wed, 10 Jul 2019 11:10:54 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : content-type : mime-version; s=PPS1017; bh=Ebu0bq7dHSfCsHUmDCUK3S0gSsTkeEZ0TPbZ2CprvNU=; b=XQbkMS8dWdzGnPEczh7Rk/9Wt9au2CV462XOZeQkEKCzOignJUaXDaE9DB9AUPVyyitx OAWzJ9AR0jEPfskQaC0lcIaCj34XLSHPQb6ATaliqDPewgZK1ArmltjT1olKJOKHStMQ QXwUUHhnJIAFRRpcRDhHK7CVa5lo2L4czVU1h5PNTcy1T7QxOTjDL7Z3gTXTqFJA4WRR bxTC7g1BW12F4noNK+DrtW9MyUITUUNAHhNUg4BY9h2f1tOysYfUiVd5DFZZJPJycWpS v/YgqprSeDEG1FfWCplISjCiORxxo6fl3aQA4zNrOyv7147a2Ru3/rvmT5/2OCmzKXY6 Dw== 
Received: from nam04-bn3-obe.outbound.protection.outlook.com (mail-bn3nam04lp2052.outbound.protection.outlook.com [104.47.46.52]) by mx0a-00273201.pphosted.com with ESMTP id 2tnmv3012f-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for <rift@ietf.org>; Wed, 10 Jul 2019 11:10:54 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gwnVEPQwmJUF/hwCKzRmCJKxUsSBa+YXERFIxdV6BSQGQD7gN0Kmei5V+PJ/II82AT/duAiPCXajwEDAcu5r0E/v7Cq3BEjmAndWEHj8wLNPytma4IRpGSqbABtSsd4oGwZMABf962qZaofy4TGmSM/i1ZJZXyTCcxlURAe0clc8OEj7a1OTjyZkIIPNeMa07UnOAASFIah3qLGAGMdZCHmY13mquxyAOUEDOBYayDNXov6GmUvBJN4cHwBPkn4qkz0OLbIV8H4DL5XJyCmJAgaD3obP1mWKUFCQ5syVI91Rl+wsgIasJKohYDAE+6oSvQyBlyNnjDxr+RHbRhsnjQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ebu0bq7dHSfCsHUmDCUK3S0gSsTkeEZ0TPbZ2CprvNU=; b=S6gXXpu/XAYsZLp6d9KpG3acN9geioSkcK5RvupzNLRPeFY+1gMjVVzIj7RMoJSoUhkR+iXyQ9vwU25LMBeETlx0dyHWSmNIvXh6Nluv9M1pas896+6A6pRFxQSRmo/jrolXEJe8dhmG+B3wxDtoUUocGZcQiAQvcADZJc0vdlUd4fSNDu3dSQEToXfQl1vp8fCjDCP1V9EIakiMsS+Nt354MVk9+dTUGH/aFgdAmnC81CfmVeoZbtWEsIwzzmF7n5Z7k9hxf8nmO8LrQWUDPuQUkUm0RJyynBufFQiH4QRPSZbXC0Kw0hi96wm3164unDTnoVNZlxA6btclAx0BoA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from DM5PR05MB3548.namprd05.prod.outlook.com (10.174.242.153) by DM5PR05MB2954.namprd05.prod.outlook.com (10.168.176.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.9; Wed, 10 Jul 2019 18:10:52 +0000
Received: from DM5PR05MB3548.namprd05.prod.outlook.com ([fe80::c890:e1c9:8d87:8d5f]) by DM5PR05MB3548.namprd05.prod.outlook.com ([fe80::c890:e1c9:8d87:8d5f%6]) with mapi id 15.20.2073.008; Wed, 10 Jul 2019 18:10:52 +0000
From: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>
To: "rift@ietf.org" <rift@ietf.org>
Thread-Topic: Monthly RIFT Virtual Interim Meeting
Thread-Index: AdUP/S2eCsjvvkBUSe+nGxToszKCUwAACv/g
Date: Wed, 10 Jul 2019 18:10:52 +0000
Message-ID: <DM5PR05MB35486562085A7C96B8FDA6E3D4F00@DM5PR05MB3548.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
dlp-product: dlpe-windows
dlp-version: 11.2.0.14
dlp-reaction: no-action
x-ms-exchange-calendar-series-instance-id: BAAAAIIA4AB0xbcQGoLgCAfjBwTA1oym2w/VAQAAAAAAAAAAEAAAADyxEptNyS9HjM7Y6RDwzeo=
x-originating-ip: [66.129.241.14]
x-ms-office365-filtering-correlation-id: 6a2e55ca-89ad-473b-3b44-08d70561f1c6
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM5PR05MB2954; 
x-ms-traffictypediagnostic: DM5PR05MB2954:MeetingMessage
x-ms-exchange-purlcount: 5
x-microsoft-antispam-prvs: <DM5PR05MB29544E120204C625B658BF6CD4F00@DM5PR05MB2954.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0094E3478A
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(376002)(396003)(346002)(136003)(366004)(39860400002)(189003)(199004)(15594002)(16799955002)(8676002)(52536014)(74316002)(256004)(99286004)(14444005)(66066001)(6116002)(9686003)(236005)(2351001)(3846002)(53936002)(6306002)(790700001)(54896002)(5640700003)(7736002)(66476007)(1730700003)(8936002)(55016002)(66556008)(5660300002)(102836004)(66946007)(81166006)(81156014)(7696005)(76116006)(66446008)(316002)(6506007)(476003)(25786009)(68736007)(478600001)(2906002)(86362001)(186003)(606006)(6916009)(33656002)(71190400001)(14454004)(2501003)(486006)(6436002)(64756008)(26005)(71200400001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR05MB2954; H:DM5PR05MB3548.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: GQquyMwavE12BfMsmJTyIBj/oI7ZkUkWedqoTh9V+udsz5een7NWDBnRpKJZ6zalgTpYQVAYjib/aYcOMv2Z+QO4x9J82KBwiUZ56pLa699ZId9ntErFN4mThv0BL7dApMtzz7o/Rtl0vLzeEFdrLokuUNPhljqa9yESKvWHYnQSpZameJleMVTz26xYMXlHA8OgX66jRbM8N+7kC638yoQnHnpuzbhy7SWEavzK1kl+rA7lQb5qmwHW0tBHjHc/KDyytbAfDuWvN1SeNUxkMIc++1AvZnF6hKGeRw3KTDswZheGR2xC2E0qB6SDUX+Ku+sMQKc/j8VMkJ0gBzr1rRRh4zKofqYkHTitt3N1yWBJF1zMI/7INe6bwCnK4VZ6672zGHuP14QyoqeZ5WJWdnituE6spWGX+ZrvQbAz9TA=
Content-Type: multipart/alternative; boundary="_000_DM5PR05MB35486562085A7C96B8FDA6E3D4F00DM5PR05MB3548namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 6a2e55ca-89ad-473b-3b44-08d70561f1c6
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jul 2019 18:10:52.1162 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zzhang@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR05MB2954
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-10_07:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907100205
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/jze7RmiYn8w5E84GkquF0XKFvVU>
Subject: [Rift] Monthly RIFT Virtual Interim Meeting
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Jul 2019 18:10:58 -0000

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

Some people say they don't have this in their calendar, so I am resending i=
t.

-----

Reschedule this one to 7/11 as 7/4 a US holiday.


Hi RIFTers,

We're going to start a series of monthly virtual interim meetings on the fi=
rst Thursday of each month, from 11am US Eastern Time to 12pm:


  1.  newest developments on RIFT main draft
  2.  discussion of other drafts like yang/applicability/sr/multicast

Official IETF interim session announcement will follow.

The webex password is tfir2019.

Thanks.
Jeffrey

-- Do not delete or change any of the following text. --

Join Webex Meeting<https://ietf.webex.com/ietf/j.php?MTID=3Dmb26e43c3067b05=
59b050ec9c39de7f95>


Meeting number (access code): 647 561 538
Meeting password: tfir2019


Join by phone
1-650-479-3208<tel:%2B1-650-479-3208,,*01*647561538%23%23*01*> Call-in toll=
 number (US/Canada)

Can't join the meeting?<https://collaborationhelp.cisco.com/article/WBX0000=
29055>

If you are a host, go here<https://ietf.webex.com/ietf/j.php?MTID=3Dm0e51f4=
b41e06ce23c8331af8d21d39ed> to view host information.

IMPORTANT NOTICE: Please note that this Webex service allows audio and othe=
r information sent during the session to be recorded, which may be discover=
able in a legal matter. By joining this session, you automatically consent =
to such recordings. If you do not consent to being recorded, discuss your c=
oncerns with the host or do not join the session.



--_000_DM5PR05MB35486562085A7C96B8FDA6E3D4F00DM5PR05MB3548namp_
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:DengXian;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:"Segoe UI";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:"\@DengXian";
	panose-1:2 1 6 0 3 1 1 1 1 1;}
/* 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:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	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:12.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: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.xmsonormal, li.xmsonormal, div.xmsonormal
	{mso-style-name:x_msonormal;
	margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle21
	{mso-style-type:personal-compose;
	font-family:"Segoe UI",sans-serif;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;
	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;}
/* List Definitions */
@list l0
	{mso-list-id:1590844739;
	mso-list-template-ids:1287940150;}
@list l1
	{mso-list-id:1835678206;
	mso-list-template-ids:-267367452;}
@list l1:level1
	{mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
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"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<div style=3D"mso-element:para-border-div;border:none;border-bottom:solid w=
indowtext 1.0pt;padding:0in 0in 1.0pt 0in">
<p class=3D"MsoNormal" style=3D"border:none;padding:0in"><span style=3D"fon=
t-family:&quot;Segoe UI&quot;,sans-serif">Some people say they don&#8217;t =
have this in their calendar, so I am resending it.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"border:none;padding:0in"><span style=3D"fon=
t-family:&quot;Segoe UI&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"border:none;padding:0in"><span style=3D"fon=
t-family:&quot;Segoe UI&quot;,sans-serif">-----<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"border:none;padding:0in"><span style=3D"fon=
t-family:&quot;Segoe UI&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"border:none;padding:0in"><span style=3D"fon=
t-family:&quot;Segoe UI&quot;,sans-serif">Reschedule this one to 7/11 as 7/=
4 a US holiday.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"border:none;padding:0in"><span style=3D"fon=
t-family:&quot;Segoe UI&quot;,sans-serif"><o:p>&nbsp;</o:p></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Hi RIFTers,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">We&#8217;re going to start a series of monthly virtual interim meet=
ings on the first Thursday of each month, from 11am US Eastern Time to 12pm=
:<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<ol style=3D"margin-top:0in" start=3D"1" type=3D"1">
<li class=3D"xmsonormal" style=3D"color:black;mso-list:l1 level1 lfo3"><spa=
n style=3D"font-size:12.0pt">newest developments on RIFT main draft
</span><o:p></o:p></li><li class=3D"xmsonormal" style=3D"color:black;mso-li=
st:l1 level1 lfo3"><span style=3D"font-size:12.0pt">discussion of other dra=
fts like yang/applicability/sr/multicast
</span><o:p></o:p></li></ol>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Official IETF interim session announcement will follow.<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">The webex password is tfir2019.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Thanks.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Jeffrey<o:p></o:p></span></p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">&nbsp; <br>
</span><span style=3D"font-size:10.0pt;font-family:&quot;Segoe UI&quot;,san=
s-serif;color:#A0A0A0">-<a name=3D"WBXBCC4A">- Do not delete or change any =
of the following text. --</a></span><span style=3D"mso-bookmark:WBXBCC4A"><=
span style=3D"font-size:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif"=
>
 &nbsp; <br>
&nbsp; <o:p></o:p></span></span></p>
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"4" cellpadding=
=3D"0" width=3D"0" style=3D"width:0in;width:auto!important">
<tbody>
<tr>
<td style=3D"padding:.75pt .75pt .75pt .75pt;width:auto!important">
<table class=3D"MsoNormalTable" border=3D"1" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"0" style=3D"width:0in;background:#43A942;border:solid #43A9=
42 1.0pt;width:auto!important">
<tbody>
<tr>
<td width=3D"240" style=3D"width:2.5in;border:none;padding:7.5pt 15.0pt 7.5=
pt 15.0pt;width:auto!important">
<p class=3D"MsoNormal" align=3D"center" style=3D"text-align:center"><span s=
tyle=3D"mso-bookmark:WBXBCC4A"></span><a href=3D"https://ietf.webex.com/iet=
f/j.php?MTID=3Dmb26e43c3067b0559b050ec9c39de7f95"><span style=3D"mso-bookma=
rk:WBXBCC4A"><span style=3D"font-size:15.0pt;color:white;text-decoration:no=
ne">Join
 Webex Meeting</span></span><span style=3D"mso-bookmark:WBXBCC4A"></span></=
a><span style=3D"mso-bookmark:WBXBCC4A">
</span><span style=3D"mso-bookmark:WBXBCC4A"><o:p></o:p></span></p>
</td>
<span style=3D"mso-bookmark:WBXBCC4A"></span>
</tr>
</tbody>
</table>
<span style=3D"mso-bookmark:WBXBCC4A"></span></td>
<span style=3D"mso-bookmark:WBXBCC4A"></span>
<td style=3D"padding:.75pt .75pt .75pt .75pt;width:auto!important">
<table class=3D"MsoNormalTable" border=3D"0" cellspacing=3D"0" cellpadding=
=3D"0" width=3D"0" style=3D"width:0in;width:auto!important">
<tbody>
<tr>
<td style=3D"padding:0in 0in 0in 0in;width:auto!important">
<p class=3D"MsoNormal"><span style=3D"mso-bookmark:WBXBCC4A">&nbsp;</span><=
span style=3D"mso-bookmark:WBXBCC4A"><o:p></o:p></span></p>
</td>
<span style=3D"mso-bookmark:WBXBCC4A"></span>
</tr>
</tbody>
</table>
<span style=3D"mso-bookmark:WBXBCC4A"></span></td>
<span style=3D"mso-bookmark:WBXBCC4A"></span>
</tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D=
"font-size:13.5pt;font-family:&quot;Segoe UI&quot;,sans-serif">&nbsp;
<br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#666666">Meeting=
 number (access code): 647 561 538</span></span><span style=3D"mso-bookmark=
:WBXBCC4A"><span style=3D"font-size:13.5pt;font-family:&quot;Segoe UI&quot;=
,sans-serif">
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#666666"><br>
Meeting password: tfir2019&nbsp; <br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif">&nbsp;
<br>
<br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:13.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#666666">Join by=
 phone</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"fo=
nt-size:13.5pt;font-family:&quot;Segoe UI&quot;,sans-serif">&nbsp;
<br>
</span></span><a href=3D"tel:%2B1-650-479-3208,,*01*647561538%23%23*01*"><s=
pan style=3D"mso-bookmark:WBXBCC4A"><b><span style=3D"font-size:10.0pt;font=
-family:&quot;Segoe UI&quot;,sans-serif;color:#00AFF9;text-decoration:none"=
>1-650-479-3208</span></b></span><span style=3D"mso-bookmark:WBXBCC4A"></sp=
an></a><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0p=
t;font-family:&quot;Segoe UI&quot;,sans-serif;color:#666666">&nbsp;Call-in
 toll number (US/Canada)</span></span><span style=3D"mso-bookmark:WBXBCC4A"=
><span style=3D"font-size:13.5pt;font-family:&quot;Segoe UI&quot;,sans-seri=
f">&nbsp;
<br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif">&nbsp;
<br>
</span></span><a href=3D"https://collaborationhelp.cisco.com/article/WBX000=
029055"><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0=
pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#00AFF9">Can't join th=
e meeting?</span></span><span style=3D"mso-bookmark:WBXBCC4A"></span></a><s=
pan style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0pt;font-fa=
mily:&quot;Segoe UI&quot;,sans-serif">
<br>
&nbsp; <br>
<span style=3D"color:#666666">If you are a host, </span></span></span><a hr=
ef=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dm0e51f4b41e06ce23c8331af8d21=
d39ed"><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0p=
t;font-family:&quot;Segoe UI&quot;,sans-serif;color:#00AFF9">go
 here</span></span><span style=3D"mso-bookmark:WBXBCC4A"></span></a><span s=
tyle=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10.0pt;font-family:=
&quot;Segoe UI&quot;,sans-serif;color:#666666"> to view host information.</=
span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:=
10.0pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#00AFF9"><br>
<br>
</span></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-siz=
e:7.5pt;font-family:&quot;Segoe UI&quot;,sans-serif;color:#A0A0A0">IMPORTAN=
T NOTICE: Please note that this Webex service allows audio and other inform=
ation sent during the session to be recorded,
 which may be discoverable in a legal matter. By joining this session, you =
automatically consent to such recordings. If you do not consent to being re=
corded, discuss your concerns with the host or do not join the session.</sp=
an></span><span style=3D"mso-bookmark:WBXBCC4A"><span style=3D"font-size:10=
.0pt;font-family:&quot;Segoe UI&quot;,sans-serif">
</span></span><span style=3D"mso-bookmark:WBXBCC4A"></span><o:p></o:p></p>
</div>
<p class=3D"MsoPlainText"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_DM5PR05MB35486562085A7C96B8FDA6E3D4F00DM5PR05MB3548namp_
Content-Type: text/calendar; charset="utf-8"; method=REQUEST
Content-Transfer-Encoding: base64

QkVHSU46VkNBTEVOREFSDQpNRVRIT0Q6UkVRVUVTVA0KUFJPRElEOk1pY3Jvc29mdCBFeGNoYW5n
ZSBTZXJ2ZXIgMjAxMA0KVkVSU0lPTjoyLjANCkJFR0lOOlZUSU1FWk9ORQ0KVFpJRDpFYXN0ZXJu
IFN0YW5kYXJkIFRpbWUNCkJFR0lOOlNUQU5EQVJEDQpEVFNUQVJUOjE2MDEwMTAxVDAyMDAwMA0K
VFpPRkZTRVRGUk9NOi0wNDAwDQpUWk9GRlNFVFRPOi0wNTAwDQpSUlVMRTpGUkVRPVlFQVJMWTtJ
TlRFUlZBTD0xO0JZREFZPTFTVTtCWU1PTlRIPTExDQpFTkQ6U1RBTkRBUkQNCkJFR0lOOkRBWUxJ
R0hUDQpEVFNUQVJUOjE2MDEwMTAxVDAyMDAwMA0KVFpPRkZTRVRGUk9NOi0wNTAwDQpUWk9GRlNF
VFRPOi0wNDAwDQpSUlVMRTpGUkVRPVlFQVJMWTtJTlRFUlZBTD0xO0JZREFZPTJTVTtCWU1PTlRI
PTMNCkVORDpEQVlMSUdIVA0KRU5EOlZUSU1FWk9ORQ0KQkVHSU46VkVWRU5UDQpPUkdBTklaRVI7
Q049SmVmZnJleSAoWmhhb2h1aSkgWmhhbmc6TUFJTFRPOnp6aGFuZ0BqdW5pcGVyLm5ldA0KQVRU
RU5ERUU7Uk9MRT1SRVEtUEFSVElDSVBBTlQ7UEFSVFNUQVQ9TkVFRFMtQUNUSU9OO1JTVlA9VFJV
RTtDTj1yaWZ0QGlldGYuDQogb3JnOk1BSUxUTzpyaWZ0QGlldGYub3JnDQpERVNDUklQVElPTjtM
QU5HVUFHRT1lbi1VUzpTb21lIHBlb3BsZSBzYXkgdGhleSBkb27igJl0IGhhdmUgdGhpcyBpbiB0
aGVpciANCiBjYWxlbmRhclwsIHNvIEkgYW0gcmVzZW5kaW5nIGl0LlxuXG4tLS0tLVxuXG5SZXNj
aGVkdWxlIHRoaXMgb25lIHRvIDcvMTEgYQ0KIHMgNy80IGEgVVMgaG9saWRheS5cblxuXG5IaSBS
SUZUZXJzXCxcblxuV2XigJlyZSBnb2luZyB0byBzdGFydCBhIHNlcmllcyBvDQogZiBtb250aGx5
IHZpcnR1YWwgaW50ZXJpbSBtZWV0aW5ncyBvbiB0aGUgZmlyc3QgVGh1cnNkYXkgb2YgZWFjaCBt
b250aFwsIGYNCiByb20gMTFhbSBVUyBFYXN0ZXJuIFRpbWUgdG8gMTJwbTpcblxuXG4gIDEuICBu
ZXdlc3QgZGV2ZWxvcG1lbnRzIG9uIFJJRlQgbQ0KIGFpbiBkcmFmdFxuICAyLiAgZGlzY3Vzc2lv
biBvZiBvdGhlciBkcmFmdHMgbGlrZSB5YW5nL2FwcGxpY2FiaWxpdHkvc3IvbXVsDQogdGljYXN0
XG5cbk9mZmljaWFsIElFVEYgaW50ZXJpbSBzZXNzaW9uIGFubm91bmNlbWVudCB3aWxsIGZvbGxv
dy5cblxuVGhlIHcNCiBlYmV4IHBhc3N3b3JkIGlzIHRmaXIyMDE5LlxuXG5UaGFua3MuXG5KZWZm
cmV5XG5cbi0tIERvIG5vdCBkZWxldGUgb3IgY2hhbg0KIGdlIGFueSBvZiB0aGUgZm9sbG93aW5n
IHRleHQuIC0tXG5cbkpvaW4gV2ViZXggTWVldGluZzxodHRwczovL2lldGYud2ViZXguDQogY29t
L2lldGYvai5waHA/TVRJRD1tYjI2ZTQzYzMwNjdiMDU1OWIwNTBlYzljMzlkZTdmOTU+XG5cblxu
TWVldGluZyBudW1iZXINCiAgKGFjY2VzcyBjb2RlKTogNjQ3IDU2MSA1Mzhcbk1lZXRpbmcgcGFz
c3dvcmQ6IHRmaXIyMDE5XG5cblxuSm9pbiBieSBwaG9uZQ0KIFxuMS02NTAtNDc5LTMyMDg8dGVs
OiUyQjEtNjUwLTQ3OS0zMjA4XCxcLCowMSo2NDc1NjE1MzglMjMlMjMqMDEqPiBDYWxsLWluDQog
IHRvbGwgbnVtYmVyIChVUy9DYW5hZGEpXG5cbkNhbid0IGpvaW4gdGhlIG1lZXRpbmc/PGh0dHBz
Oi8vY29sbGFib3JhdGlvbmgNCiBlbHAuY2lzY28uY29tL2FydGljbGUvV0JYMDAwMDI5MDU1Plxu
XG5JZiB5b3UgYXJlIGEgaG9zdFwsIGdvIGhlcmU8aHR0cHM6Lw0KIC9pZXRmLndlYmV4LmNvbS9p
ZXRmL2oucGhwP01USUQ9bTBlNTFmNGI0MWUwNmNlMjNjODMzMWFmOGQyMWQzOWVkPiB0byB2aWV3
DQogIGhvc3QgaW5mb3JtYXRpb24uXG5cbklNUE9SVEFOVCBOT1RJQ0U6IFBsZWFzZSBub3RlIHRo
YXQgdGhpcyBXZWJleCBzZXJ2aWMNCiBlIGFsbG93cyBhdWRpbyBhbmQgb3RoZXIgaW5mb3JtYXRp
b24gc2VudCBkdXJpbmcgdGhlIHNlc3Npb24gdG8gYmUgcmVjb3JkZQ0KIGRcLCB3aGljaCBtYXkg
YmUgZGlzY292ZXJhYmxlIGluIGEgbGVnYWwgbWF0dGVyLiBCeSBqb2luaW5nIHRoaXMgc2Vzc2lv
blwsDQogIHlvdSBhdXRvbWF0aWNhbGx5IGNvbnNlbnQgdG8gc3VjaCByZWNvcmRpbmdzLiBJZiB5
b3UgZG8gbm90IGNvbnNlbnQgdG8gYmUNCiBpbmcgcmVjb3JkZWRcLCBkaXNjdXNzIHlvdXIgY29u
Y2VybnMgd2l0aCB0aGUgaG9zdCBvciBkbyBub3Qgam9pbiB0aGUgc2Vzcw0KIGlvbi5cblxuXG4N
ClVJRDowNDAwMDAwMDgyMDBFMDAwNzRDNUI3MTAxQTgyRTAwODAwMDAwMDAwQzBENjhDQTZEQjBG
RDUwMTAwMDAwMDAwMDAwMDAwMA0KIDAxMDAwMDAwMDNDQjExMjlCNERDOTJGNDc4Q0NFRDhFOTEw
RjBDREVBDQpSRUNVUlJFTkNFLUlEO1RaSUQ9RWFzdGVybiBTdGFuZGFyZCBUaW1lOjIwMTkwNzA0
VDExMDAwMA0KU1VNTUFSWTtMQU5HVUFHRT1lbi1VUzpNb250aGx5IFJJRlQgVmlydHVhbCBJbnRl
cmltIE1lZXRpbmcNCkRUU1RBUlQ7VFpJRD1FYXN0ZXJuIFN0YW5kYXJkIFRpbWU6MjAxOTA3MTFU
MTEwMDAwDQpEVEVORDtUWklEPUVhc3Rlcm4gU3RhbmRhcmQgVGltZToyMDE5MDcxMVQxMjAwMDAN
CkNMQVNTOlBVQkxJQw0KUFJJT1JJVFk6NQ0KRFRTVEFNUDoyMDE5MDcxMFQxODEwNDZaDQpUUkFO
U1A6T1BBUVVFDQpTVEFUVVM6Q09ORklSTUVEDQpTRVFVRU5DRTo3DQpMT0NBVElPTjtMQU5HVUFH
RT1lbi1VUzoNClgtTUlDUk9TT0ZULUNETy1BUFBULVNFUVVFTkNFOjcNClgtTUlDUk9TT0ZULUNE
Ty1PV05FUkFQUFRJRDotMTU1MDQ5MzcyNQ0KWC1NSUNST1NPRlQtQ0RPLUJVU1lTVEFUVVM6VEVO
VEFUSVZFDQpYLU1JQ1JPU09GVC1DRE8tSU5URU5ERURTVEFUVVM6QlVTWQ0KWC1NSUNST1NPRlQt
Q0RPLUFMTERBWUVWRU5UOkZBTFNFDQpYLU1JQ1JPU09GVC1DRE8tSU1QT1JUQU5DRToxDQpYLU1J
Q1JPU09GVC1DRE8tSU5TVFRZUEU6Mw0KWC1NSUNST1NPRlQtRE9OT1RGT1JXQVJETUVFVElORzpG
QUxTRQ0KWC1NSUNST1NPRlQtRElTQUxMT1ctQ09VTlRFUjpGQUxTRQ0KWC1NSUNST1NPRlQtTE9D
QVRJT05TOltdDQpCRUdJTjpWQUxBUk0NCkRFU0NSSVBUSU9OOlJFTUlOREVSDQpUUklHR0VSO1JF
TEFURUQ9U1RBUlQ6LVBUMTVNDQpBQ1RJT046RElTUExBWQ0KRU5EOlZBTEFSTQ0KRU5EOlZFVkVO
VA0KRU5EOlZDQUxFTkRBUg0K

--_000_DM5PR05MB35486562085A7C96B8FDA6E3D4F00DM5PR05MB3548namp_--


From nobody Wed Jul 10 20:40:04 2019
Return-Path: <xu.benchong@zte.com.cn>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4DA8E120098 for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 20:40:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.197
X-Spam-Level: 
X-Spam-Status: No, score=-4.197 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 pUR6hVkj3Jqg for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 20:39:57 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 25BA0120048 for <rift@ietf.org>; Wed, 10 Jul 2019 20:39:56 -0700 (PDT)
Received: from mse-fl2.zte.com.cn (unknown [10.30.14.239]) by Forcepoint Email with ESMTPS id 281783E59AAB8C9BB1B3; Thu, 11 Jul 2019 11:39:55 +0800 (CST)
Received: from njxapp05.zte.com.cn ([10.41.132.204]) by mse-fl2.zte.com.cn with SMTP id x6B3de5F040055; Thu, 11 Jul 2019 11:39:40 +0800 (GMT-8) (envelope-from xu.benchong@zte.com.cn)
Received: from mapi (njxapp01[null]) by mapi (Zmail) with MAPI id mid201; Thu, 11 Jul 2019 11:39:40 +0800 (CST)
Date: Thu, 11 Jul 2019 11:39:40 +0800 (CST)
X-Zmail-TransId: 2af95d26af7c53109b31
X-Mailer: Zmail v1.0
Message-ID: <201907111139404022772@zte.com.cn>
In-Reply-To: <MWHPR05MB3279B78E6D9AECB771D2497FACF00@MWHPR05MB3279.namprd05.prod.outlook.com>
References: 201907101656125835263@zte.com.cn, MWHPR05MB3279B78E6D9AECB771D2497FACF00@MWHPR05MB3279.namprd05.prod.outlook.com
Mime-Version: 1.0
From: <xu.benchong@zte.com.cn>
To: <prz@juniper.net>
Cc: <zzhang@juniper.net>, <zhang.zheng@zte.com.cn>, <rift@ietf.org>
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl2.zte.com.cn x6B3de5F040055
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/7c4VN9zHY65FxrjaHRV8ZehI_a4>
Subject: Re: [Rift] =?utf-8?q?Ipv4_and_ipv6_cooperating_in_rift?=
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 03:40:03 -0000

--=====_001_next=====
Content-Type: multipart/related;
	boundary="=====_002_next====="


--=====_002_next=====
Content-Type: multipart/alternative;
	boundary="=====_003_next====="


--=====_003_next=====
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: base64

SGkgdG9ueQ0KDQoNClRoYW5rcyBmb3IgeW91ciBleHBsYW5hdGlvbiwgYW5kIEkgaGF2ZSBhbHJl
YWR5IHVuZGVyc3Rvb2QgeW91ciBvcGluaW9uIG9uIHY0djYgZm9yd2FyZGluZy4NCg0KVGhlIGRp
ZmZlcmVuY2UgYmV0d2VlbiBSSUZUIGFuZCBvdGhlciByb3V0aW5nIHByb3RvY29scyBpcyB0aGUg
Y29uc2lzdGVuY3kgb2YgcGFja2V0cyBBRiBhbmQgcm91dGVzIEFGLiBJc2lzIGlzIGluIEwyIGVu
Y2Fwc3VsYXRpb24gdGhhdCBzb2x2ZXMgZGlmZmVyZW50IGFkZHJlc3MgZmFtaWxpZXMgdGhyb3Vn
aCBtdWx0aXBsZSB0b3BvbG9naWVzLiBPc3BmIGFuZCByaXAgYXJlIHN0cmljdGx5IGRpc3Rpbmd1
aXNoZWQgaW4gdjR2Ni4gUmlmdCBpcyBhY3R1YWxseSBjbG9zZXIgdG8gQkdQLg0KDQpXaGVuIHRo
ZSBpbnRlcmZhY2UgaGFzIGJvdGggdjQgYW5kIHY2IGFkZHJlc3NlcyAob3IgTkQgZW5hYmxlZCks
IHRoZSBwcm90b2NvbCB1c2VzIHY0IG9yIHY2IG9yIHY0djYgYWRkcmVzcyBlbmNhcHN1bGF0aW9u
LiBJdCB3aWxsIGJlIGJldHRlciBpZiBwcm90b2NvbCBnYXZlIHRoZSByZWNvbW1lbmRlZCBiZWhh
dmlvci4gT3RoZXJ3aXNlLCBkaWZmZXJlbnQgcGVvcGxlIHdpbGwgZ2l2ZSBkaWZmZXJlbnQgc29s
dXRpb25zLCB3aGljaCB3aWxsIGNhdXNlIHByb3RvY29sIGNvbmZvcm1hbmNlIHByb2JsZW0uIA0K
DQpUaGUgb3B0aW9ucyB3ZSBjYW4gY2hvb3NlIGFyZToNCg0KYSkgTkQgZW5hYmxlIHY2IGZpcnN0
Og0KDQpJZiB2NiBhZGRyZXNzIHZhbGlkIEFORCBORCBlbmFibGU6DQoNCiAgICAgVjYgcGFja2V0
DQoNCkVsc2UgaWYgdjQgYWRkcmVzcyB2YWxpZDoNCg0KICAgICBWNCBwYWNrZXQNCg0KYikgdjQg
Zmlyc3QNCg0KSWYgdjQgYWRkcmVzcyB2YWxpZDoNCg0KICAgICBWNCBwYWNrZXQNCg0KRWxzZSBp
ZiB2NiBhZGRyZXNzIHZhbGlkKEFORCBORCBlbmFibGUpOg0KDQogICAgIFY2IHBhY2tldA0KDQpj
KSBjb2V4aXN0ZW5jZSBvZiB2NHY2DQoNCklmIHY0IGFkZHJlc3MgdmFsaWQ6DQoNCiAgICAgVjQg
cGFja2V0DQoNCklmIHY2IGFkZHJlc3MgdmFsaWQoQU5EIE5EIGVuYWJsZSk6DQoNCiAgICAgVjYg
cGFja2V0DQoNCkNvbmZ1c2VkIG9uIGJvdGggdGhlIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBzaWRl
cy4NCg0KYykgd2lsbCBmdXJ0aGVyIGhhdmUgYSBHVyBzZWxlY3Rpb24gcHJvYmxlbSwgcHJlZmVy
cmluZyB0byBjaG9vc2UgdGhlIG5leHRob3Agb2YgdGhlIHNhbWUgYWRkcmVzcyBmYW1pbHkgd2l0
aCB0aGUgcHJlZml4LCBvciB2NCBmaXJzdC4NCg0KDQpJJ2QgbGlrZSB0aGUgcHJvdG9jb2wgcmVj
b21tZW5kcyBhIGRlZmF1bHQgYmVoYXZpb3IgYW5kIG1heSBwcm92aWRlcyBhIGNvbnRyb2wgbWV0
aG9kIGluIHlhbmcuDQoNCg0KVGhhbmtzIQ0KDQoNCkJlbmNob25nDQoNCg0KDQoNCg0KDQoNCuWO
n+Wni+mCruS7tg0KDQoNCg0K5Y+R5Lu25Lq677yaQW50b25pUHJ6eWdpZW5kYSA8cHJ6QGp1bmlw
ZXIubmV0Pg0K5pS25Lu25Lq677ya5b6Q5pys5bSHMTAwNjUwNTM7DQrmioTpgIHkurrvvJpKZWZm
cmV5IChaaGFvaHVpKSBaaGFuZyA8enpoYW5nQGp1bmlwZXIubmV0PjvlvKDlvoEwMDAwNzk0MDty
aWZ0QGlldGYub3JnIDxyaWZ0QGlldGYub3JnPjsNCuaXpSDmnJ8g77yaMjAxOeW5tDA35pyIMTDm
l6UgMjM6MTINCuS4uyDpopgg77yaUmU6IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0
aW5nIGluIHJpZnQNCg0KDQoNCkhleSBCZW5jaG9uZywgdGhhdCdzIGFuIG92ZXItaW50ZXJwcmV0
YXRpb24sIHRoZSBzcGVjIGlzIGxvb3NlciB0aGFuIHRoYXQgYnV0IGFzIGZhciBJIHNhdyBzdWZm
aWNpZW50LiBTZWN0aW9uIDUuMi4yLiANCiANCg0KIA0KYSkgU3BlY2lmaWNhdGlvbiBkb2VzIG5v
dCBwcm9oaWJpdCBSSUZUIGZyb20gdXNpbmcgX2FueV8gdmFsaWQgSVB2NiBhZGRyZXNzIG9uIHRo
ZSBpbnRlcmZhY2UgdG8gc2VuZCBJUHY2IExJRXMuIFRoZSByZWNlaXZlciBpcyBzdXBwb3NlZCB0
byBwaWNrIHVwIHRoYXQgc291cmNlIGFkZHJlc3MgYW5kIHVzZSBpdCBhcyBkZXN0aW5hdGlvbiB3
aGVuIHNlbmRpbmcgTElFcyBvdmVyIHY2IGFuZC9vciBUSUVzIHdpdGggdGhlIHJlY2V2aW5nIGlu
dGVyZmFjZSAgYXMgZ2F0ZXdheS4gU3BlY2lmaWNhdGlvbiBkb2VzIE5PVCBzcGVsbCBvdXQgd2hh
dCBoYXBwZW5zIGUuZy4gb24gbWlzbWF0Y2hlZCBJUCBzdWJuZXRzIG9uIGJvdGggc2lkZXMgYW5k
IHNvIG9uLCBzaXR1YXRpb24gaGVyZSBpcyBzaW1pbGFyIHRvIElTSVMgYW5kIGRpZmZlcmVudCBz
Y2VuYXJpb3Mgc3VjaCBhcyB1bm51bWJlcmVkIGxpbmtzIGFuZCBzbyBvbg0KIA0KDQpiKSBJZiB5
b3Ugd2FudCB0aGUgImxhemllc3QiIHBvc3NpYmxlIGltcGxlbWVudGF0aW9uIHRoZW4gaW4gZmFj
dCB5ZXMsIHlvdSBjYW4gZmFsbCBiYWNrIG9uIA0KIA0KDQogDQoiIEFsbCBSSUZUIHJvdXRlcnMg
TVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQgSVB2NiBmb3J3YXJk
aW5nLiBBIHRocmVlIHdheSBhZGphY2VuY3kgb3ZlciBJUHY2IGFkZHJlc3NlcyBpbXBsaWVzIHN1
cHBvcnQgZm9yIElQdjQgZm9yd2FyZGluZy4gIg0KDQogDQp3aGljaCBtYWtlcyB2NG92NiBmb3J3
YXJkaW5nIGluaGVyZW50IHBhcnQgb2YgUklGVC4gVGhhdCBhc3N1bWVzIGhvd2V2ZXIgdGhhdCBy
ZWNlaXZpbmcgbmVpZ2hib3IgZG9lcyBzdXBwb3J0IFY2ICh3aGljaCB0aGUgc3BlYyBkb2VzIE5P
VCBtYW5kYXRlKSBhbmQgbm90aGluZyB3aWxsIGhhcHBlbiBpZiBpdCBkb2Vzbid0LiBUaGVyZWZv
cmUgYWxsIFJJRlQgaW1wbGVtZW50YXRpb24gSSBzYXcgc28gZmFyIHNlbmQgYm90aCB2NCBhbmQg
djYgd2hpY2ggIGFsbG93cyB0aGUgbmVpZ2hib3IgdG8gb25seSByZWNlaXZlIHY0IGFuZCBmb3J3
YXJkIHVzaW5nIHY0IGdhdGV3YXlzIGlmIGl0IGRvZXNuJ3Qgc3VwcG9ydCBWNi4gSW4gY2FzZSBi
b3RoIHY0IGFuZCB2NiBBRnMgYXJlIGVzdGFibGlzaGVkLCBpdCBpcyB1cCB0byB0aGUgaW1wbGVt
ZW50YXRpb24gd2hpY2gvaG93IGl0IHJlc29sdmVzIHRoZSBnYXRld2F5cyBhbmQgdGhlcmUgYXJl
IG1hbnkgaW50ZXJlc3RpbmcgYWR2YW5jZWQgaXNzdWVzIHN1Y2ggIGFzIG1peHR1cmUgb2Ygc3Bp
bmVzIHdpdGggdjQgYW5kIHY2IG5leHRob3BzIGFuZCBob3cgdG8gZm9ybSBFQ01QIGFtb25nc3Qg
dGhlbSB0aGF0IHRoZSBzcGVjIGRvZXMgb2J2aW91c2x5IG5vdCBhZGRyZXNzIHNpbmNlIGl0J3Mg
YWxsIHZlcnkgaW1wbGVtZW50YXRpb24gYW5kIHNpbGljb24gc3BlY2lmaWMuIA0KIA0KDQogDQot
LS0gdG9ueSANCiANCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KRnJvbTogeHUuYmVuY2hv
bmdAenRlLmNvbS5jbiA8eHUuYmVuY2hvbmdAenRlLmNvbS5jbj4NCiBTZW50OiBXZWRuZXNkYXks
IEp1bHkgMTAsIDIwMTkgMTo1NiBBTQ0KIFRvOiBBbnRvbmkgUHJ6eWdpZW5kYQ0KIENjOiBKZWZm
cmV5IChaaGFvaHVpKSBaaGFuZzsgRVhULXpoYW5nLnpoZW5nQHp0ZS5jb20uY247IHJpZnRAaWV0
Zi5vcmcNCiBTdWJqZWN0OiBSZTpbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiBy
aWZ0ICANCg0KDQogDQoNClRvbnksIHRoYW5rIHlvdSBmb3IgeW91ciByZXBseQ0KDQpDYW4gaXQg
YmUgdW5kZXJzdG9vZCB0aGF0IGFmdGVyIHRoZSBORCBpcyBlbmFibGVkLCB0aGUgdjYgYWRkcmVz
cyBuZWVkcyB0byBiZSB1c2VkIHRvIGJ1aWxkIG5laWdoYm9yPyBJbiB0aGlzIGNhc2UsIHRoZSBy
aWZ0IHBhY2tldCBvZiB0aGUgdjQgaGVhZGVyIGlzIG5vdCBhbGxvd2VkIHRvIGJlIHNlbnQgYW5k
IHJlY2VpdmVkLCBhbmQgYm90aCB2NCBhbmQgdjYgcm91dGVzIGhhdmUgYSB2NiBHVy4NCg0KDQoN
CiANCg0KDQoNCiANCg0KDQoNCuWOn+Wni+mCruS7tg0KDQoNCg0K5Y+R5Lu25Lq677yaQW50b25p
UHJ6eWdpZW5kYSA8cHJ6QGp1bmlwZXIubmV0Pg0K5pS25Lu25Lq677ya5b6Q5pys5bSHMTAwNjUw
NTM7SmVmZnJleSAoWmhhb2h1aSlaaGFuZyA8enpoYW5nQGp1bmlwZXIubmV0PjvlvKDlvoEwMDAw
Nzk0MDtyaWZ0QGlldGYub3JnICA8cmlmdEBpZXRmLm9yZz47DQrml6Ug5pyfIO+8mjIwMTnlubQw
N+aciDEw5pelIDAwOjA5DQrkuLsg6aKYIO+8mlJlOiBbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29w
ZXJhdGluZyBpbiByaWZ0DQoNCg0KDQpIZXkgQmVuY2hvbmcsIGNjOidpbmcgbGlzdCwgZ29vZCBx
dWVzdGlvbnMgb2J2aW91c2x5IHRoYXQgcG9wIG91dCBvbiBpbXBsZW1lbnRhdGlvbiAgIA0KIA0K
DQogDQpzZW5kaW5nIExJRSBvbmx5IHdpdGggdjQgd2lsbCBub3QgZ2l2ZSB5b3UgYSB2NiBhZGRy
ZXNzIHRvIHNlbmQgdG8gKHNpbmNlIHRoZSBMSUUgc291cmNlIGFkZHJlc3MgZ2l2ZXMgdGhlIGdh
dGV3YXkgZm9yIHRoZSBBRiwgdGhhdCdzIHdoeSB3ZSBzZW5kIExJRSBwZXIgQUYpIHNvIHlvdSB3
b24ndCBoYXZlIGEgdjYgR1cgYWRkcmVzcyB0byBzZW5kIFRJRXMgdG8gOy0pDQoNCnllcywgZXZl
cnkgaW50ZXJmYWNlIGlzIGluZGVwZW5kZW50LiBPYnNlcnZlIHRoYXQgdjYgc3VwcG9ydCBpbXBs
aWVzIHY0IGFzIHRoZSBzcGVjIHNheXMgKHNpbmNlIHlvdSBjYW4gRlcgdjQgd2l0aG91dCBhIHY0
IEdXIGlmIHlvdSBoYXZlIGEgdjYgZ2F0ZXdheSkuIEhvd2V2ZXIsIGlmIG9uZSBzaWRlIHNlbmRz
IHY2IG9ubHkgYW5kIHRoZSBvdGhlciBzaWRlIG9ubHkgdjQgdGhleSdsbCBuZXZlciBnbyAzLXdh
eSBzaW5jZSB0aGV5IHdvbid0ICAgYmUgYWJsZSB0byByZWNlaXZlLiBXZSBqdXN0IGFkZGVkIGEg
c2VudGVuY2UgdG8gdGhlIHNwZWMgc2F5aW5nIHRoYXQgaWYgeW91IGRvbid0IHNlbmQgYW4gQUYg
TElFIHlvdSBNVVNUIE5PVCByZWNlaXZlIHRoZSBzYW1lIEFGIExJRSBzaW5jZSB3ZSBmb3VuZCB0
aGF0IGxvb3NlIGVuZCBpbiBCcnVubydzIGltcGxlbWVudGF0aW9uIHdoZW4gdGVzdGluZyBzZWN1
cml0eSBlbnZlbG9wZXMuICBJdCB3aWxsIGJlIGluIC0wNw0KDQoNCg0KIDx0PkFsbCBSSUZUIHJv
dXRlcnMgTVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQgSVB2Ng0K
IGZvcndhcmRpbmcuIEEgdGhyZWUgd2F5IGFkamFjZW5jeSBvdmVyIElQdjYgYWRkcmVzc2VzIGlt
cGxpZXMgc3VwcG9ydA0KIGZvciBJUHY0IGZvcndhcmRpbmcuIEEgbm9kZSB0aGF0IGRvZXMgbm90
IHByb2Nlc3MgcmVjZWl2ZWQgSVB2NiBMSUVzDQogICAgTVVTVCBOT1Qgb3JpZ2luYXRlIElQdjYg
TElFcy4NCiA8L3Q+IA0KIA0KSVB2Ni9JUHY0IHByZWZpeCBjYW4gYmUgbWl4ZWQgaW4gUHJlZml4
IFRJRXMuIFByZWZpeCBUSUVzIGRvIE5PVCBjYXJlIHdoaWNoIGludGVyZmFjZS9BRiB0aGV5IGFy
ZSBzZW50IG92ZXIuIA0KDQoNCmhvdyB5b3UgYnVpbGQgZm9yd2FyZGluZyB0YWJsZSBhbmQgd2hp
Y2ggZ2F0ZXdheXMgeW91IHVzZSBpcyBpbXBsZW1lbmF0aW9uIGRlcGVuZGVudCBidXQgeWVzLCB5
b3UgZ290IHRoZSBmbGF2b3IuIHRob3VnaCB5b3VyIGFzc3VtcHRpb24gb2YgIklwdjYgZGVzdGlu
YXRpb24gd2l0aCBpcHY0IG5leHRob3AiIGlzIG9wdGltaXN0aWMuIGV2ZXJ5IHNpbGljb24gZG9l
cyB2NCBzbyB2NiBjYW4gaW1wbHkgdjQsIGltcGx5aW5nIHY0IGZ3ZCdpbmcgICBhbGxvd3MgdjYg
Zm9yd2FyZGluZyBmYWlscyBvbiBnb29kIGFtb3VudCBvZiBzaWxpY29uLiBCdXQgYWdhaW4sIHRo
b3NlIGFyZSBhbGwgaW1wbGVtZW50YXRpb24ga25vYnMsIHNwZWMgb25seSBzYXlzICJ2NiBpbXBs
aWVzIHY0IiB3aGljaCBtZWFucyAieW91IGJldHRlciBmd2QuIHY0IG92ZXIgdjYgbmV4dGhvcHMg
aWYgeW91IHNlZSB2NiBMSUVzIG9ubHkiDQoNCg0KT2JzZXJ2ZSB0aGF0IG5vZGUgVElFcyBhcmUg
X25vdF8gY2FycnlpbmcgdGhlIHN1cHBvcnRlZCBBRnMgb24gZWFjaCBpbnRlcmZhY2Ugc2luY2Ug
SSB0aGluayBpdCB3b3VsZCBsZWFkIHRvIHVuZGVzaXJhYmxlIGF0dGVtcHRzIHRvIGRlcGxveSAo
c29tZSBsaW5rcyBjYW4gZG8gdjYpIHRvcG9sb2dpZXMgd2hpY2ggZGVmZWF0IHRoZSBwdXJwb3Nl
IG9mIFpUUC9zaW1wbGljaXR5IG9mIFJJRlQuIHY2IGltcGxpZXMgdjQsIGlmIHNvbWVvbmUgICB3
YW50cyB0byBmd2QnIHY2IG92ZXIgYSBmYWJyaWMgd2hlcmUgY2VydGFpbiBsaW5rcyBhcmUgdjQg
Y29tcHV0YXRpb25zIGdldCByZWFsbHkgd2VpcmQgYW5kIG9wZXJhdGlvbmFsbHkgc3VjaCBhIHRo
aW5nIGlzIHByb2JhYmx5IGEgbmlnaHRtYXJlIGFueXdheS4gQW5kIGdldHRpbmcgdjYgd29ya2lu
ZyBpcyB0cml2aWFsLCBqdXN0IGZsaXAgb24gTkQgYW5kIHlvdSdyZSBpbiBidXNpbmVzcyAoYXQg
bGVhc3QgY29udHJvbCBwbGFuZSB3aXNlIDstKQ0KIA0KDQogVGhlIHNwZWMgaXMgbm9pdCBnaXZp
bmcgaW1wbGVtZW50YXRpb24gYWR2aWNlLCBpdCBqdXN0IHNwZWNpZmllcyBiZWhhdmlvci4gSW4g
Y2FzZSBvZiBkb3VidCBsb29rcyBAIEJydW5vJztzIG9wZW4gc291cmNlLiBCcnVubyBpbXBsZW1l
bnRlZCB0aGUgd2hvbGUgTElFIHdpdGhvdXQgZXZlciB0YWxraW5nIHRvIG1lIGFuZCBpdCBpbnRl
cm9wJ2VkIGRheSBvbmUgd2l0aG91dCBwcm9ibGVtcy4gDQogDQoNCiBXaGVuIHlvdSdyZSByZWFk
eSB3aXRoIHlvdXIgaW1wbGVtZW50YXRpb24gdG8gaW50ZXJvcCwgQnJ1bm8ncyBjb2RlIGhhcyBu
aWNlIGZyYW1ld29yayB5b3UgY2FuIHBsdWcgaW4gYWdhaW5zdCBvcGVuIHNvdXJjZSAmIEp1bmlw
ZXIgaW1wbGVtZW50YXRpb24gZWFzaWx5IA0KIA0KDQogLS0tIHRvbnkgDQogDQoNCg0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCg0KRnJvbTogeHUuYmVuY2hvbmdAenRlLmNvbS5jbiA8eHUuYmVu
Y2hvbmdAenRlLmNvbS5jbj4NCiBTZW50OiBUdWVzZGF5LCBKdWx5IDksIDIwMTkgNTowOCBBTQ0K
IFRvOiBBbnRvbmkgUHJ6eWdpZW5kYTsgSmVmZnJleSAoWmhhb2h1aSkgWmhhbmc7IEVYVC16aGFu
Zy56aGVuZ0B6dGUuY29tLmNuDQogU3ViamVjdDogW1JpZnRdIElwdjQgYW5kIGlwdjYgY29vcGVy
YXRpbmcgaW4gcmlmdCAgDQoNCg0KDQoNCg0KSGkgDQoNCg0KSSBoYXZlIHNvbWUgcXVlc3Rpb25z
IGFib3V0IGlwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdC4NCg0KDQpJcCBoZWFkIG9m
IHRoZSByaWZ0IHBhY2tldCBjYW4gYmUgVjQgb3IgVjYsIGFuZCB0aGUgcHJlZml4IGluIFRJRSBh
bHNvIHN1cG9ydCBWNCBvciB2Ni4gDQoNCg0KQ2FuIGl0IHN1cHBvcnQgdGhlIGZvbGxvd2luZyBz
aXR1YXRpb25zOg0KDQoNCiANCg0KDQox44CBQSByaWZ0IGludGVyZmFjZSB3aGljaCBzZW5kIExJ
RSB3aXRoIGlwdjQgaGVhZCByZWNlaXZpbmcgTElFIHdpdGggSVB2NiBoZWFkOw0KDQoNCkEgcmlm
dCBpbnRlcmZhY2Ugd2hpY2ggc2VuZCBMSUUgd2l0aCBpcHY2IGhlYWQgcmVjZWl2aW5nIExJRSB3
aXRoIElQdjQgaGVhZDsNCg0KDQpDYW4gdGhleSBidWlsZCAzLVdheSBuZWlnaGJvcj8NCg0KDQog
DQoNCg0KMuOAgVNvbWUgaW50ZXJmYWNlcyBpbiBhIHJpZnQgaW5zdGFuY2Ugc2VuZCBpcHY0IGhl
YWQgcGFja2V0c++8jCBhbmQgb3RoZXJzIGluIHRoZSBzYW1lIGluc3RhbmNlIHNlbmQgaXB2NiBo
ZWFkIHBhY2tldHPvvJsNCg0KDQogDQoNCg0KM+OAgUlwdjQgaGVhZCBUSUUgcGFja2V0IGZpbGwg
aXB2NiBwcmVmaXjvvJsNCg0KDQogICBJcHY2IGhlYWQgVElFIHBhY2tldCBmaWxsIGlwdjQgcHJl
Zml477ybKFJJRlQtMDYgNS4yLjI6IEFsbCBSSUZUIHJvdXRlcnMgTVVTVCBzdXBwb3J0IElQdjQg
Zm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQgSVB2Ng0KDQoNCiAgIGZvcndhcmRpbmcuICBBIHRo
cmVlIHdheSBhZGphY2VuY3kgb3ZlciBJUHY2IGFkZHJlc3NlcyBpbXBsaWVzDQoNCg0KICAgc3Vw
cG9ydCBmb3IgSVB2NCBmb3J3YXJkaW5nLikNCg0KDQogDQoNCg0KNOOAgUluIHJpYiB0YWJsZSBv
ZiB0aGUgcmlmdDoNCg0KDQogICBJcHY0IGRlc3RpbmF0aW9uIHdpdGggaXB2NiBuZXh0aG9wOw0K
DQoNCiAgIElwdjYgZGVzdGluYXRpb24gd2l0aCBpcHY0IG5leHRob3A7IA0KDQoNCiAgIElwdjQg
ZGVzdGluYXRpb24gd2l0aCBib3RoIGlwdjQgbmV4dGhvcCBhbmQgaXB2NiBuZXh0aG9wOw0KDQoN
CiAgIElwdjYgZGVzdGluYXRpb24gd2l0aCBib3RoIGlwdjQgbmV4dGhvcCBhbmQgaXB2NiBuZXh0
aG9wOw0KDQoNCiAgIA0KDQoNCjXjgIFUaGUgaXAgaGVhZCB0eXBlKHY0IG9yIHY2KSBjYW4gYmUg
Y29uZmlndXJlZCBpbiByaWZ0IGludGVyZmFjZSBvciBpbnN0YW5jZS4NCg0KDQoNCiANCg0KDQpJ
dCB3aWxsIGJlIGJldHRlciBpZiB0aGVyZSBhcmUgY2xlYXIgaW5zdHJ1Y3Rpb25zIGluIHJpZnQg
cHJvdG9jb2wuDQoNCg0KIA0KDQoNClRoYW5rc++8gQ0KDQoNCkJlbmNob25n


--=====_003_next=====
Content-Type: text/html ;
	charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBjbGFzcz0iemNvbnRlbnRSb3ciPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LWZh
bWlseTphcmlhbDsiPkhpIHRvbnk8L3A+PHAgc3R5bGU9ImZvbnQtc2l6ZToxNHB4O2ZvbnQtZmFt
aWx5OmFyaWFsOyI+VGhhbmtzIGZvciB5b3VyIGV4cGxhbmF0aW9uLCBhbmQgSSBoYXZlIGFscmVh
ZHkgdW5kZXJzdG9vZCB5b3VyIG9waW5pb24gb24gdjR2NiBmb3J3YXJkaW5nLjwvcD48cD5UaGUg
ZGlmZmVyZW5jZSBiZXR3ZWVuIFJJRlQgYW5kIG90aGVyIHJvdXRpbmcgcHJvdG9jb2xzIGlzIHRo
ZSBjb25zaXN0ZW5jeSBvZiBwYWNrZXRzIEFGIGFuZCByb3V0ZXMgQUYuIElzaXMgaXMgaW4gTDIg
ZW5jYXBzdWxhdGlvbiB0aGF0IHNvbHZlcyBkaWZmZXJlbnQgYWRkcmVzcyBmYW1pbGllcyB0aHJv
dWdoIG11bHRpcGxlIHRvcG9sb2dpZXMuIE9zcGYgYW5kIHJpcCBhcmUgc3RyaWN0bHkgZGlzdGlu
Z3Vpc2hlZCBpbiB2NHY2LiBSaWZ0IGlzIGFjdHVhbGx5IGNsb3NlciB0byBCR1AuPC9wPjxwPldo
ZW4gdGhlIGludGVyZmFjZSBoYXMgYm90aCB2NCBhbmQgdjYgYWRkcmVzc2VzIChvciBORCBlbmFi
bGVkKSwgdGhlIHByb3RvY29sIHVzZXMgdjQgb3IgdjYgb3IgdjR2NiBhZGRyZXNzIGVuY2Fwc3Vs
YXRpb24uIEl0IHdpbGwgYmUgYmV0dGVyIGlmIHByb3RvY29sIGdhdmUgdGhlIHJlY29tbWVuZGVk
IGJlaGF2aW9yLiBPdGhlcndpc2UsIGRpZmZlcmVudCBwZW9wbGUgd2lsbCBnaXZlIGRpZmZlcmVu
dCBzb2x1dGlvbnMsIHdoaWNoIHdpbGwgY2F1c2UgcHJvdG9jb2wgY29uZm9ybWFuY2UgcHJvYmxl
bS4mbmJzcDs8L3A+PHA+VGhlIG9wdGlvbnMgd2UgY2FuIGNob29zZSBhcmU6PC9wPjxwPmEpIE5E
IGVuYWJsZSB2NiBmaXJzdDo8L3A+PHA+SWYgdjYgYWRkcmVzcyB2YWxpZCBBTkQgTkQgZW5hYmxl
OjwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwO1Y2IHBhY2tldDwvcD48cD5FbHNlIGlmIHY0IGFk
ZHJlc3MgdmFsaWQ6PC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7VjQgcGFja2V0PC9wPjxwPmIp
IHY0IGZpcnN0PC9wPjxwPklmIHY0IGFkZHJlc3MgdmFsaWQ6PC9wPjxwPiZuYnNwOyAmbmJzcDsg
Jm5ic3A7VjQgcGFja2V0PC9wPjxwPkVsc2UgaWYgdjYgYWRkcmVzcyB2YWxpZChBTkQgTkQgZW5h
YmxlKTo8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDtWNiBwYWNrZXQ8L3A+PHA+YykgY29leGlz
dGVuY2Ugb2YgdjR2NjwvcD48cD5JZiB2NCBhZGRyZXNzIHZhbGlkOjwvcD48cD4mbmJzcDsgJm5i
c3A7ICZuYnNwO1Y0IHBhY2tldDwvcD48cD5JZiB2NiBhZGRyZXNzIHZhbGlkKEFORCBORCBlbmFi
bGUpOjwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwO1Y2IHBhY2tldDwvcD48cD5Db25mdXNlZCBv
biBib3RoIHRoZSBzZW5kaW5nIGFuZCByZWNlaXZpbmcgc2lkZXMuPC9wPjxwPmMpIHdpbGwgZnVy
dGhlciBoYXZlIGEgR1cgc2VsZWN0aW9uIHByb2JsZW0sIHByZWZlcnJpbmcgdG8gY2hvb3NlIHRo
ZSBuZXh0aG9wIG9mIHRoZSBzYW1lIGFkZHJlc3MgZmFtaWx5IHdpdGggdGhlIHByZWZpeCwgb3Ig
djQgZmlyc3QuPC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LWZhbWlseTphcmlhbDsi
PkknZCBsaWtlIHRoZSBwcm90b2NvbCByZWNvbW1lbmRzIGEgZGVmYXVsdCBiZWhhdmlvciBhbmQg
bWF5IHByb3ZpZGVzIGEgY29udHJvbCBtZXRob2QgaW4geWFuZy48L3A+PHAgc3R5bGU9ImZvbnQt
c2l6ZToxNHB4O2ZvbnQtZmFtaWx5OmFyaWFsOyI+VGhhbmtzITwvcD48cCBzdHlsZT0iZm9udC1z
aXplOjE0cHg7Zm9udC1mYW1pbHk6YXJpYWw7Ij5CZW5jaG9uZzwvcD48cCBzdHlsZT0iZm9udC1z
aXplOjE0cHg7Zm9udC1mYW1pbHk6YXJpYWw7Ij48YnI+PC9wPjxkaXY+PGRpdiBjbGFzcz0iemhp
c3RvcnlSb3ciIHN0eWxlPSJkaXNwbGF5OmJsb2NrIj48ZGl2IGNsYXNzPSJ6aGlzdG9yeURlcyIg
c3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDI4cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyBiYWNr
Z3JvdW5kLWNvbG9yOiAjRTBFNUU5OyBjb2xvcjogIzEzODhGRjsgdGV4dC1hbGlnbjogY2VudGVy
OyIgbGFuZ3VhZ2UtZGF0YT0iSGlzdG9yeU9yZ1R4dCI+5Y6f5aeL6YKu5Lu2PC9kaXY+PGRpdiBp
ZD0iendyaXRlSGlzdG9yeUNvbnRhaW5lciI+PGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCB6aGlz
dG9yeVBhbmVsIj48ZGl2IGNsYXNzPSJ6aGlzdG9yeUhlYWRlciIgc3R5bGU9InBhZGRpbmc6IDhw
eDsgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjZGODsiPjxkaXY+PHN0cm9uZyBsYW5ndWFnZS1kYXRh
PSJIaXN0b3J5U2VuZGVyVHh0Ij7lj5Hku7bkurrvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ienJl
YWRVc2VyTmFtZSI+QW50b25pUHJ6eWdpZW5kYSAmbHQ7cHJ6QGp1bmlwZXIubmV0Jmd0Ozwvc3Bh
bj48L2Rpdj48ZGl2PjxzdHJvbmcgbGFuZ3VhZ2UtZGF0YT0iSGlzdG9yeVRPVHh0Ij7mlLbku7bk
urrvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ienJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6
IGlubGluZTsiPuW+kOacrOW0hzEwMDY1MDUzOzwvc3Bhbj48L2Rpdj48ZGl2PjxzdHJvbmcgbGFu
Z3VhZ2UtZGF0YT0iSGlzdG9yeUNDVHh0Ij7mioTpgIHkurrvvJo8L3N0cm9uZz48c3BhbiBjbGFz
cz0ienJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsiPkplZmZyZXkgKFpoYW9o
dWkpIFpoYW5nICZsdDt6emhhbmdAanVuaXBlci5uZXQmZ3Q7Ozwvc3Bhbj48c3BhbiBjbGFzcz0i
enJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsiPuW8oOW+gTAwMDA3OTQwOzwv
c3Bhbj48c3BhbiBjbGFzcz0ienJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsi
PnJpZnRAaWV0Zi5vcmcgJmx0O3JpZnRAaWV0Zi5vcmcmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2Pjxz
dHJvbmcgbGFuZ3VhZ2UtZGF0YT0iSGlzdG9yeURhdGVUeHQiPuaXpSDmnJ8g77yaPC9zdHJvbmc+
PHNwYW4gY2xhc3M9IiI+MjAxOeW5tDA35pyIMTDml6UgMjM6MTI8L3NwYW4+PC9kaXY+PGRpdj48
c3Ryb25nIGxhbmd1YWdlLWRhdGE9Ikhpc3RvcnlTdWJqZWN0VHh0Ij7kuLsg6aKYIO+8mjwvc3Ry
b25nPjxzcGFuIGNsYXNzPSJ6cmVhZFRpdGxlIj48c3Ryb25nPlJlOiBSZTpbUmlmdF0gSXB2NCBh
bmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0PC9zdHJvbmc+PC9zcGFuPjwvZGl2PjwvZGl2Pjxk
aXYgY2xhc3M9InpoaXN0b3J5Q29udGVudCI+PGRpdj48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1nYjIzMTIiPjxkaXYgc3R5bGU9ImZv
bnQtZmFtaWx5OiBDYWxpYnJpLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNp
emU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij5IZXkgQmVuY2hvbmcsIHRoYXQncyBhbiBv
dmVyLWludGVycHJldGF0aW9uLCB0aGUgc3BlYyBpcyBsb29zZXIgdGhhbiB0aGF0IGJ1dCBhcyBm
YXIgSSBzYXcgc3VmZmljaWVudC4gU2VjdGlvbiA1LjIuMi4gPGJyPiA8L2Rpdj48YnI+IDxkaXYg
c3R5bGU9ImZvbnQtZmFtaWx5OiBDYWxpYnJpLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlm
OyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij5hKSBTcGVjaWZpY2F0aW9u
IGRvZXMgbm90IHByb2hpYml0IFJJRlQgZnJvbSB1c2luZyBfYW55XyB2YWxpZCBJUHY2IGFkZHJl
c3Mgb24gdGhlIGludGVyZmFjZSB0byBzZW5kIElQdjYgTElFcy4gVGhlIHJlY2VpdmVyIGlzIHN1
cHBvc2VkIHRvIHBpY2sgdXAgdGhhdCBzb3VyY2UgYWRkcmVzcyBhbmQgdXNlIGl0IGFzIGRlc3Rp
bmF0aW9uIHdoZW4gc2VuZGluZyBMSUVzIG92ZXIgdjYgYW5kL29yIFRJRXMgd2l0aCB0aGUgcmVj
ZXZpbmcgaW50ZXJmYWNlICZuYnNwO2FzIGdhdGV3YXkuIFNwZWNpZmljYXRpb24gZG9lcyBOT1Qg
c3BlbGwgb3V0IHdoYXQgaGFwcGVucyBlLmcuIG9uIG1pc21hdGNoZWQgSVAgc3VibmV0cyBvbiBi
b3RoIHNpZGVzIGFuZCBzbyBvbiwgc2l0dWF0aW9uIGhlcmUgaXMgc2ltaWxhciB0byBJU0lTIGFu
ZCBkaWZmZXJlbnQgc2NlbmFyaW9zIHN1Y2ggYXMgdW5udW1iZXJlZCBsaW5rcyBhbmQgc28gb248
YnI+IDwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBDYWxpYnJpLCBBcmlhbCwgSGVsdmV0
aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij5i
KSBJZiB5b3Ugd2FudCB0aGUgImxhemllc3QiIHBvc3NpYmxlIGltcGxlbWVudGF0aW9uIHRoZW4g
aW4gZmFjdCB5ZXMsIHlvdSBjYW4gZmFsbCBiYWNrIG9uIDxicj4gPC9kaXY+PGJyPiA8ZGl2IHN0
eWxlPSJmb250LWZhbWlseTogQ2FsaWJyaSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsg
Zm9udC1zaXplOiAxMnB0OyBjb2xvcjogcmdiKDAsIDAsIDApOyI+IiA8cHJlPiAgIEFsbCBSSUZU
IHJvdXRlcnMgTVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQgSVB2
NiAgICBmb3J3YXJkaW5nLiAgQSB0aHJlZSB3YXkgYWRqYWNlbmN5IG92ZXIgSVB2NiBhZGRyZXNz
ZXMgaW1wbGllcyAgICBzdXBwb3J0IGZvciBJUHY0IGZvcndhcmRpbmcuPC9wcmU+ICI8L2Rpdj48
YnI+IDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBDYWxpYnJpLCBBcmlhbCwgSGVsdmV0aWNhLCBz
YW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij53aGljaCBt
YWtlcyB2NG92NiBmb3J3YXJkaW5nIGluaGVyZW50IHBhcnQgb2YgUklGVC4gVGhhdCBhc3N1bWVz
IGhvd2V2ZXIgdGhhdCByZWNlaXZpbmcgbmVpZ2hib3IgZG9lcyBzdXBwb3J0IFY2ICh3aGljaCB0
aGUgc3BlYyBkb2VzIE5PVCBtYW5kYXRlKSBhbmQgbm90aGluZyB3aWxsIGhhcHBlbiBpZiBpdCBk
b2Vzbid0LiBUaGVyZWZvcmUgYWxsIFJJRlQgaW1wbGVtZW50YXRpb24gSSBzYXcgc28gZmFyIHNl
bmQgYm90aCB2NCBhbmQgdjYgd2hpY2ggJm5ic3A7YWxsb3dzIHRoZSBuZWlnaGJvciB0byBvbmx5
IHJlY2VpdmUgdjQgYW5kIGZvcndhcmQgdXNpbmcgdjQgZ2F0ZXdheXMgaWYgaXQgZG9lc24ndCBz
dXBwb3J0IFY2LiBJbiBjYXNlIGJvdGggdjQgYW5kIHY2IEFGcyBhcmUgZXN0YWJsaXNoZWQsIGl0
IGlzIHVwIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiB3aGljaC9ob3cgaXQgcmVzb2x2ZXMgdGhlIGdh
dGV3YXlzIGFuZCB0aGVyZSBhcmUgbWFueSBpbnRlcmVzdGluZyBhZHZhbmNlZCBpc3N1ZXMgc3Vj
aCAmbmJzcDthcyBtaXh0dXJlIG9mIHNwaW5lcyB3aXRoIHY0IGFuZCB2NiBuZXh0aG9wcyBhbmQg
aG93IHRvIGZvcm0gRUNNUCBhbW9uZ3N0IHRoZW0gdGhhdCB0aGUgc3BlYyBkb2VzIG9idmlvdXNs
eSBub3QgYWRkcmVzcyBzaW5jZSBpdCdzIGFsbCB2ZXJ5IGltcGxlbWVudGF0aW9uIGFuZCBzaWxp
Y29uIHNwZWNpZmljLiA8YnI+IDwvZGl2Pjxicj4gPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IENh
bGlicmksIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29s
b3I6IHJnYigwLCAwLCAwKTsiPi0tLSB0b255IDxicj4gPC9kaXY+PGhyIHN0eWxlPSJkaXNwbGF5
OmlubGluZS1ibG9jazt3aWR0aDo5OCUiIHRhYmluZGV4PSItMSI+PGRpdiBpZD0iZGl2UnBseUZ3
ZE1zZyIgZGlyPSJsdHIiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpDYWxpYnJpLCBzYW5zLXNl
cmlmO2ZvbnQtc2l6ZToxMXB0O2NvbG9yOiMwMDAwMDAiPjxzdHJvbmc+RnJvbTo8L3N0cm9uZz4g
eHUuYmVuY2hvbmdAenRlLmNvbS5jbiAmbHQ7eHUuYmVuY2hvbmdAenRlLmNvbS5jbiZndDs8YnI+
IDxzdHJvbmc+U2VudDo8L3N0cm9uZz4gV2VkbmVzZGF5LCBKdWx5IDEwLCAyMDE5IDE6NTYgQU08
YnI+IDxzdHJvbmc+VG86PC9zdHJvbmc+IEFudG9uaSBQcnp5Z2llbmRhPGJyPiA8c3Ryb25nPkNj
Ojwvc3Ryb25nPiBKZWZmcmV5IChaaGFvaHVpKSBaaGFuZzsgRVhULXpoYW5nLnpoZW5nQHp0ZS5j
b20uY247IHJpZnRAaWV0Zi5vcmc8YnI+IDxzdHJvbmc+U3ViamVjdDo8L3N0cm9uZz4gUmU6W1Jp
ZnRdIElwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdDwvc3Bhbj4gJm5ic3A7PC9kaXY+
PGRpdj48ZGl2IGNsYXNzPSJ4X3pjb250ZW50Um93Ij48cD48YnI+IDwvcD48cD5Ub255LCB0aGFu
ayB5b3UgZm9yIHlvdXIgcmVwbHk8L3A+PHA+Q2FuIGl0IGJlIHVuZGVyc3Rvb2QgdGhhdCBhZnRl
ciB0aGUgTkQgaXMgZW5hYmxlZCwgdGhlIHY2IGFkZHJlc3MgbmVlZHMgdG8gYmUgdXNlZCB0byBi
dWlsZCBuZWlnaGJvcj8gSW4gdGhpcyBjYXNlLCB0aGUgcmlmdCBwYWNrZXQgb2YgdGhlIHY0IGhl
YWRlciBpcyBub3QgYWxsb3dlZCB0byBiZSBzZW50IGFuZCByZWNlaXZlZCwgYW5kIGJvdGggdjQg
YW5kIHY2IHJvdXRlcyBoYXZlIGEgdjYgR1cuPC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDsg
Zm9udC1mYW1pbHk6YXJpYWwiPjxicj4gPC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDsgZm9u
dC1mYW1pbHk6YXJpYWwiPjxicj4gPC9wPjxkaXY+PGRpdiBjbGFzcz0ieF96aGlzdG9yeVJvdyIg
c3R5bGU9ImRpc3BsYXk6YmxvY2siPjxkaXYgY2xhc3M9Inhfemhpc3RvcnlEZXMiIHN0eWxlPSJ3
aWR0aDoxMDAlOyBoZWlnaHQ6MjhweDsgbGluZS1oZWlnaHQ6MjhweDsgYmFja2dyb3VuZC1jb2xv
cjojRTBFNUU5OyBjb2xvcjojMTM4OEZGOyB0ZXh0LWFsaWduOmNlbnRlciI+5Y6f5aeL6YKu5Lu2
PC9kaXY+PGRpdiBpZD0ieF96d3JpdGVIaXN0b3J5Q29udGFpbmVyIj48ZGl2IGNsYXNzPSJ4X2Nv
bnRyb2wtZ3JvdXAgeF96aGlzdG9yeVBhbmVsIj48ZGl2IGNsYXNzPSJ4X3poaXN0b3J5SGVhZGVy
IiBzdHlsZT0icGFkZGluZzo4cHg7IGJhY2tncm91bmQtY29sb3I6I0Y1RjZGOCI+PGRpdj48c3Ry
b25nPuWPkeS7tuS6uu+8mjwvc3Ryb25nPjxzcGFuIGNsYXNzPSJ4X3pyZWFkVXNlck5hbWUiPkFu
dG9uaVByenlnaWVuZGEgJmx0O3ByekBqdW5pcGVyLm5ldCZndDs8L3NwYW4+PC9kaXY+PGRpdj48
c3Ryb25nPuaUtuS7tuS6uu+8mjwvc3Ryb25nPjxzcGFuIGNsYXNzPSJ4X3pyZWFkVXNlck5hbWUi
IHN0eWxlPSJkaXNwbGF5OmlubGluZSI+5b6Q5pys5bSHMTAwNjUwNTM7PC9zcGFuPjxzcGFuIGNs
YXNzPSJ4X3pyZWFkVXNlck5hbWUiIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+SmVmZnJleSAoWmhh
b2h1aSlaaGFuZyAmbHQ7enpoYW5nQGp1bmlwZXIubmV0Jmd0Ozs8L3NwYW4+PHNwYW4gY2xhc3M9
InhfenJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj7lvKDlvoEwMDAwNzk0MDs8
L3NwYW4+PHNwYW4gY2xhc3M9InhfenJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6aW5saW5l
Ij5yaWZ0QGlldGYub3JnICZuYnNwOyZsdDtyaWZ0QGlldGYub3JnJmd0Ozs8L3NwYW4+PC9kaXY+
PGRpdj48c3Ryb25nPuaXpSDmnJ8g77yaPC9zdHJvbmc+PHNwYW4gY2xhc3M9IiI+MjAxOeW5tDA3
5pyIMTDml6UgMDA6MDk8L3NwYW4+PC9kaXY+PGRpdj48c3Ryb25nPuS4uyDpopgg77yaPC9zdHJv
bmc+PHNwYW4gY2xhc3M9InhfenJlYWRUaXRsZSI+PHN0cm9uZz5SZTogW1JpZnRdIElwdjQgYW5k
IGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdDwvc3Ryb25nPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2
IGNsYXNzPSJ4X3poaXN0b3J5Q29udGVudCI+PGRpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTpD
YWxpYnJpLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJwdDsgY29sb3I6
cmdiKDAsMCwwKSI+SGV5IEJlbmNob25nLCBjYzonaW5nIGxpc3QsIGdvb2QgcXVlc3Rpb25zIG9i
dmlvdXNseSB0aGF0IHBvcCBvdXQgb24gaW1wbGVtZW50YXRpb24gJm5ic3A7IDxicj4gPC9kaXY+
PGJyPiA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpDYWxpYnJpLEFyaWFsLEhlbHZldGljYSxzYW5z
LXNlcmlmOyBmb250LXNpemU6MTJwdDsgY29sb3I6cmdiKDAsMCwwKSI+PG9sIGNsYXNzPSJ4XyBs
aXN0LXBhZGRpbmdsZWZ0LTIiPjxsaT48cD5zZW5kaW5nIExJRSBvbmx5IHdpdGggdjQgd2lsbCBu
b3QgZ2l2ZSB5b3UgYSB2NiBhZGRyZXNzIHRvIHNlbmQgdG8gKHNpbmNlIHRoZSBMSUUgc291cmNl
IGFkZHJlc3MgZ2l2ZXMgdGhlIGdhdGV3YXkgZm9yIHRoZSBBRiwgdGhhdCdzIHdoeSB3ZSBzZW5k
IExJRSBwZXIgQUYpIHNvIHlvdSB3b24ndCBoYXZlIGEgdjYgR1cgYWRkcmVzcyB0byBzZW5kIFRJ
RXMgdG8gOy0pPC9wPjwvbGk+PGxpPjxwPnllcywgZXZlcnkgaW50ZXJmYWNlIGlzIGluZGVwZW5k
ZW50LiBPYnNlcnZlIHRoYXQgdjYgc3VwcG9ydCBpbXBsaWVzIHY0IGFzIHRoZSBzcGVjIHNheXMg
KHNpbmNlIHlvdSBjYW4gRlcgdjQgd2l0aG91dCBhIHY0IEdXIGlmIHlvdSBoYXZlIGEgdjYgZ2F0
ZXdheSkuIEhvd2V2ZXIsIGlmIG9uZSBzaWRlIHNlbmRzIHY2IG9ubHkgYW5kIHRoZSBvdGhlciBz
aWRlIG9ubHkgdjQgdGhleSdsbCBuZXZlciBnbyAzLXdheSBzaW5jZSB0aGV5IHdvbid0ICZuYnNw
OyZuYnNwO2JlIGFibGUgdG8gcmVjZWl2ZS4gV2UganVzdCBhZGRlZCBhIHNlbnRlbmNlIHRvIHRo
ZSBzcGVjIHNheWluZyB0aGF0IGlmIHlvdSBkb24ndCBzZW5kIGFuIEFGIExJRSB5b3UgTVVTVCBO
T1QgcmVjZWl2ZSB0aGUgc2FtZSBBRiBMSUUgc2luY2Ugd2UgZm91bmQgdGhhdCBsb29zZSBlbmQg
aW4gQnJ1bm8ncyBpbXBsZW1lbnRhdGlvbiB3aGVuIHRlc3Rpbmcgc2VjdXJpdHkgZW52ZWxvcGVz
LiZuYnNwOyBJdCB3aWxsIGJlIGluIC0wNzxicj48L3A+PC9saT48L29sPjxicj4gPGRpdj48cHJl
IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IGZvbnQtZmFt
aWx5OidNZW5sbyc7IGZvbnQtc2l6ZTo3LjVwdCI+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6I2VmZWZlZiI+Jmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMDA4MDsgYmFja2dy
b3VuZC1jb2xvcjojZWZlZmVmOyBmb250LXdlaWdodDpib2xkIj50PC9zcGFuPjxzcGFuIHN0eWxl
PSJiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWYiPiZndDs8L3NwYW4+QWxsIFJJRlQgcm91dGVycyBN
VVNUIHN1cHBvcnQgSVB2NCBmb3J3YXJkaW5nIGFuZCBNQVkgc3VwcG9ydCBJUHY2PGJyPiAgICBm
b3J3YXJkaW5nLiBBIHRocmVlIHdheSBhZGphY2VuY3kgb3ZlciBJUHY2IGFkZHJlc3NlcyBpbXBs
aWVzIHN1cHBvcnQ8YnI+ICAgIGZvciBJUHY0IGZvcndhcmRpbmcuIDxzdHJvbmc+QSBub2RlIHRo
YXQgZG9lcyBub3QgcHJvY2VzcyByZWNlaXZlZCBJUHY2IExJRXM8YnI+ICZuYnNwOyAmbmJzcDtN
VVNUIE5PVCBvcmlnaW5hdGUgSVB2NiBMSUVzLjwvc3Ryb25nPjxicj4gICAgPHNwYW4gc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6I2VmZWZlZiI+Jmx0Oy88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9y
OiMwMDAwODA7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgZm9udC13ZWlnaHQ6Ym9sZCI+dDwv
c3Bhbj48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZWZlZmVmIj4mZ3Q7PC9zcGFuPjwv
cHJlPiA8YnI+IDwvZGl2PjxvbCBjbGFzcz0ieF8gbGlzdC1wYWRkaW5nbGVmdC0yIj48bGk+PHA+
SVB2Ni9JUHY0IHByZWZpeCBjYW4gYmUgbWl4ZWQgaW4gUHJlZml4IFRJRXMuIFByZWZpeCBUSUVz
IGRvIE5PVCBjYXJlIHdoaWNoIGludGVyZmFjZS9BRiB0aGV5IGFyZSBzZW50IG92ZXIuIDxicj48
L3A+PC9saT48bGk+PHA+aG93IHlvdSBidWlsZCBmb3J3YXJkaW5nIHRhYmxlIGFuZCB3aGljaCBn
YXRld2F5cyB5b3UgdXNlIGlzIGltcGxlbWVuYXRpb24gZGVwZW5kZW50IGJ1dCB5ZXMsIHlvdSBn
b3QgdGhlIGZsYXZvci4gdGhvdWdoIHlvdXIgYXNzdW1wdGlvbiBvZiAiSXB2NiBkZXN0aW5hdGlv
biB3aXRoIGlwdjQgbmV4dGhvcCIgaXMgb3B0aW1pc3RpYy4gZXZlcnkgc2lsaWNvbiBkb2VzIHY0
IHNvIHY2IGNhbiBpbXBseSB2NCwgaW1wbHlpbmcgdjQgZndkJ2luZyAmbmJzcDsmbmJzcDthbGxv
d3MgdjYgZm9yd2FyZGluZyBmYWlscyBvbiBnb29kIGFtb3VudCBvZiBzaWxpY29uLiBCdXQgYWdh
aW4sIHRob3NlIGFyZSBhbGwgaW1wbGVtZW50YXRpb24ga25vYnMsIHNwZWMgb25seSBzYXlzICJ2
NiBpbXBsaWVzIHY0IiB3aGljaCBtZWFucyAieW91IGJldHRlciBmd2QuIHY0IG92ZXIgdjYgbmV4
dGhvcHMgaWYgeW91IHNlZSB2NiBMSUVzIG9ubHkiPGJyPjwvcD48L2xpPjwvb2w+PGRpdj5PYnNl
cnZlIHRoYXQgbm9kZSBUSUVzIGFyZSBfbm90XyBjYXJyeWluZyB0aGUgc3VwcG9ydGVkIEFGcyBv
biBlYWNoIGludGVyZmFjZSBzaW5jZSBJIHRoaW5rIGl0IHdvdWxkIGxlYWQgdG8gdW5kZXNpcmFi
bGUgYXR0ZW1wdHMgdG8gZGVwbG95IChzb21lIGxpbmtzIGNhbiBkbyB2NikgdG9wb2xvZ2llcyB3
aGljaCBkZWZlYXQgdGhlIHB1cnBvc2Ugb2YgWlRQL3NpbXBsaWNpdHkgb2YgUklGVC4gdjYgaW1w
bGllcyB2NCwgaWYgc29tZW9uZSAmbmJzcDsmbmJzcDt3YW50cyB0byBmd2QnIHY2IG92ZXIgYSBm
YWJyaWMgd2hlcmUgY2VydGFpbiBsaW5rcyBhcmUgdjQgY29tcHV0YXRpb25zIGdldCByZWFsbHkg
d2VpcmQgYW5kIG9wZXJhdGlvbmFsbHkgc3VjaCBhIHRoaW5nIGlzIHByb2JhYmx5IGEgbmlnaHRt
YXJlIGFueXdheS4gQW5kIGdldHRpbmcgdjYgd29ya2luZyBpcyB0cml2aWFsLCBqdXN0IGZsaXAg
b24gTkQgYW5kIHlvdSdyZSBpbiBidXNpbmVzcyAoYXQgbGVhc3QgY29udHJvbCBwbGFuZSB3aXNl
IDstKTxicj4gPC9kaXY+PGJyPiA8ZGl2PlRoZSBzcGVjIGlzIG5vaXQgZ2l2aW5nIGltcGxlbWVu
dGF0aW9uIGFkdmljZSwgaXQganVzdCBzcGVjaWZpZXMgYmVoYXZpb3IuIEluIGNhc2Ugb2YgZG91
YnQgbG9va3MgQCBCcnVubyc7cyBvcGVuIHNvdXJjZS4gQnJ1bm8gaW1wbGVtZW50ZWQgdGhlIHdo
b2xlIExJRSB3aXRob3V0IGV2ZXIgdGFsa2luZyB0byBtZSBhbmQgaXQgaW50ZXJvcCdlZCBkYXkg
b25lIHdpdGhvdXQgcHJvYmxlbXMuIDxicj4gPC9kaXY+PGJyPiA8ZGl2PldoZW4geW91J3JlIHJl
YWR5IHdpdGggeW91ciBpbXBsZW1lbnRhdGlvbiB0byBpbnRlcm9wLCBCcnVubydzIGNvZGUgaGFz
IG5pY2UgZnJhbWV3b3JrIHlvdSBjYW4gcGx1ZyBpbiBhZ2FpbnN0IG9wZW4gc291cmNlICZhbXA7
IEp1bmlwZXIgaW1wbGVtZW50YXRpb24gZWFzaWx5IDxicj4gPC9kaXY+PGJyPiA8ZGl2Pi0tLSB0
b255IDxicj4gPC9kaXY+PC9kaXY+PGhyIHRhYmluZGV4PSItMSIgc3R5bGU9ImRpc3BsYXk6aW5s
aW5lLWJsb2NrOyB3aWR0aDo5OCUiPjxkaXYgaWQ9InhfZGl2UnBseUZ3ZE1zZyIgZGlyPSJsdHIi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDsgZm9udC1mYW1pbHk6Q2FsaWJyaSxzYW5zLXNl
cmlmOyBjb2xvcjojMDAwMDAwIj48c3Ryb25nPkZyb206PC9zdHJvbmc+IHh1LmJlbmNob25nQHp0
ZS5jb20uY24gJmx0O3h1LmJlbmNob25nQHp0ZS5jb20uY24mZ3Q7PGJyPiA8c3Ryb25nPlNlbnQ6
PC9zdHJvbmc+IFR1ZXNkYXksIEp1bHkgOSwgMjAxOSA1OjA4IEFNPGJyPiA8c3Ryb25nPlRvOjwv
c3Ryb25nPiBBbnRvbmkgUHJ6eWdpZW5kYTsgSmVmZnJleSAoWmhhb2h1aSkgWmhhbmc7IEVYVC16
aGFuZy56aGVuZ0B6dGUuY29tLmNuPGJyPiA8c3Ryb25nPlN1YmplY3Q6PC9zdHJvbmc+IFtSaWZ0
XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQ8L3NwYW4+ICZuYnNwOzwvZGl2Pjxk
aXY+PGRpdiBjbGFzcz0ieF94X3pjb250ZW50Um93Ij48ZGl2PjxkaXYgY2xhc3M9InhfeF96Y29u
dGVudFJvdyI+PGRpdj48ZGl2IGNsYXNzPSJ4X3hfemNvbnRlbnRSb3ciPjxkaXY+PGRpdiBjbGFz
cz0ieF94X3pjb250ZW50Um93Ij48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0
b206MHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90
dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGxpbmUtaGVpZ2h0
OjIwcHg7IGZvbnQtZmFtaWx5OmFyaWFsOyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91
bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+SGk8YnIgc3R5bGU9ImJveC1zaXppbmc6Ym9yZGVy
LWJveDsgb3V0bGluZTowcHghaW1wb3J0YW50Ij4gPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBw
eDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDow
cHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRw
eDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1mYW1pbHk6YXJpYWw7IG91dGxpbmU6MHB4IWltcG9y
dGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj5JIGhhdmUgc29tZSBxdWVz
dGlvbnMgYWJvdXQgaXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0LjwvcD48cCBzdHls
ZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBib3gtc2l6aW5nOmJvcmRlci1i
b3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFs
OyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0IFlh
aGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2VyaWY7
IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xv
cjpyZ2IoMjU1LDI1NSwyNTUpIj5JcCBoZWFkIG9mIHRoZSByaWZ0IHBhY2tldCBjYW4gYmUgVjQg
b3IgVjYsIGFuZCB0aGUgcHJlZml4IGluIFRJRSBhbHNvIHN1cG9ydCBWNCBvciB2Ni4mbmJzcDs8
L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemlu
Zzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNw
YWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01p
Y3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxz
YW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tn
cm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Q2FuIGl0IHN1cHBvcnQgdGhlIGZvbGxvd2lu
ZyBzaXR1YXRpb25zOjwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206
MHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9t
OjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFy
aWFsLOWui+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNp
ZGEsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWlt
cG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj48YnIgc3R5bGU9ImJv
eC1zaXppbmc6Ym9yZGVyLWJveDsgb3V0bGluZTowcHghaW1wb3J0YW50Ij4gPC9wPjxwIHN0eWxl
PSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJv
eDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7
IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFo
ZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsg
bGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9y
OnJnYigyNTUsMjU1LDI1NSkiPjHjgIFBIHJpZnQgaW50ZXJmYWNlIHdoaWNoJm5ic3A7c2VuZCBM
SUUgd2l0aCBpcHY0IGhlYWQgcmVjZWl2aW5nIExJRSB3aXRoIElQdjYgaGVhZDs8L3A+PHAgc3R5
bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpib3JkZXIt
Ym94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1h
bDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01pY3Jvc29mdCBZ
YWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxzYW5zLXNlcmlm
OyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29s
b3I6cmdiKDI1NSwyNTUsMjU1KSI+QSByaWZ0IGludGVyZmFjZSB3aGljaCZuYnNwO3NlbmQgTElF
IHdpdGggaXB2NiBoZWFkIHJlY2VpdmluZyBMSUUgd2l0aCBJUHY0IGhlYWQ7PC9wPjxwIHN0eWxl
PSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJv
eDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7
IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFo
ZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsg
bGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9y
OnJnYigyNTUsMjU1LDI1NSkiPkNhbiB0aGV5IGJ1aWxkIDMtV2F5IG5laWdoYm9yPzwvcD48cCBz
dHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBib3gtc2l6aW5nOmJvcmRl
ci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9y
bWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0
IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2Vy
aWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1j
b2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj48YnIgc3R5bGU9ImJveC1zaXppbmc6Ym9yZGVyLWJveDsg
b3V0bGluZTowcHghaW1wb3J0YW50Ij4gPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFy
Z2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1h
cmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9u
dC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxW
ZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0
bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjLj
gIFTb21lIGludGVyZmFjZXMgaW4gYSByaWZ0IGluc3RhbmNlIHNlbmQgaXB2NCBoZWFkIHBhY2tl
dHPvvIwgYW5kIG90aGVycyBpbiB0aGUgc2FtZSBpbnN0YW5jZSBzZW5kIGlwdjYgaGVhZCBwYWNr
ZXRz77ybPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJv
eC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3
aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L
5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2
ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50
OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjxiciBzdHlsZT0iYm94LXNpemlu
Zzpib3JkZXItYm94OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQiPiA8L3A+PHAgc3R5bGU9Im1hcmdp
bi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJn
aW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhl
aWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1
Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxzYW5zLXNlcmlmOyBsaW5lLWhl
aWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1
NSwyNTUsMjU1KSI+M+OAgUlwdjQgaGVhZCBUSUUgcGFja2V0IGZpbGwgaXB2NiBwcmVmaXjvvJs8
L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemlu
Zzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNw
YWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01p
Y3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxz
YW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tn
cm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Jm5ic3A7ICZuYnNwO0lwdjYgaGVhZCBUSUUg
cGFja2V0IGZpbGwgaXB2NCBwcmVmaXjvvJsoUklGVC0wNiA1LjIuMjogQWxsIFJJRlQgcm91dGVy
cyBNVVNUIHN1cHBvcnQgSVB2NCBmb3J3YXJkaW5nIGFuZCBNQVkgc3VwcG9ydCBJUHY2PC9wPjxw
IHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9y
ZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpu
b3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3Nv
ZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1z
ZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5k
LWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPiZuYnNwOyAmbmJzcDtmb3J3YXJkaW5nLiAmbmJzcDtB
IHRocmVlIHdheSBhZGphY2VuY3kgb3ZlciBJUHY2IGFkZHJlc3NlcyBpbXBsaWVzPC9wPjxwIHN0
eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVy
LWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3Jt
YWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQg
WWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJp
ZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNv
bG9yOnJnYigyNTUsMjU1LDI1NSkiPiZuYnNwOyAmbmJzcDtzdXBwb3J0IGZvciBJUHY0IGZvcndh
cmRpbmcuKTwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBi
b3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsg
d2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWu
i+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVs
dmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFu
dDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj48YnIgc3R5bGU9ImJveC1zaXpp
bmc6Ym9yZGVyLWJveDsgb3V0bGluZTowcHghaW1wb3J0YW50Ij4gPC9wPjxwIHN0eWxlPSJtYXJn
aW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFy
Z2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1o
ZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdM
dWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1o
ZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigy
NTUsMjU1LDI1NSkiPjTjgIFJbiByaWIgdGFibGUgb2YgdGhlIHJpZnQ6PC9wPjxwIHN0eWxlPSJt
YXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsg
bWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1p
bi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWkn
LCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGlu
ZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJn
YigyNTUsMjU1LDI1NSkiPiZuYnNwOyAmbmJzcDtJcHY0IGRlc3RpbmF0aW9uIHdpdGggaXB2NiBu
ZXh0aG9wOzwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBi
b3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsg
d2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWu
i+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVs
dmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFu
dDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj4mbmJzcDsgJm5ic3A7SXB2NiBk
ZXN0aW5hdGlvbiB3aXRoIGlwdjQgbmV4dGhvcDsmbmJzcDs8L3A+PHAgc3R5bGU9Im1hcmdpbi10
b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4t
dG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdo
dDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lk
YSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdo
dDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwy
NTUsMjU1KSI+Jm5ic3A7ICZuYnNwO0lwdjQgZGVzdGluYXRpb24gd2l0aCBib3RoIGlwdjQgbmV4
dGhvcCBhbmQgaXB2NiBuZXh0aG9wOzwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdp
bi1ib3R0b206MHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJn
aW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQt
ZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVy
ZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxp
bmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj4mbmJz
cDsgJm5ic3A7SXB2NiBkZXN0aW5hdGlvbiB3aXRoIGJvdGggaXB2NCBuZXh0aG9wIGFuZCBpcHY2
IG5leHRob3A7PC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7
IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4
OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws
5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxI
ZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0
YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPiZuYnNwOyAmbmJzcDs8L3A+
PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpi
b3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNl
Om5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01pY3Jv
c29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxzYW5z
LXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91
bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+NeOAgVRoZSBpcCBoZWFkIHR5cGUodjQgb3IgdjYp
IGNhbiBiZSBjb25maWd1cmVkIGluIHJpZnQgaW50ZXJmYWNlIG9yIGluc3RhbmNlLjwvcD48cCBz
dHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBib3gtc2l6aW5nOmJvcmRl
ci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9y
bWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0
IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2Vy
aWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1j
b2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj48YnI+IDwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7
IG1hcmdpbi1ib3R0b206MHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4
OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7
IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5k
ZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7
IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUp
Ij5JdCB3aWxsIGJlIGJldHRlciBpZiB0aGVyZSBhcmUgY2xlYXIgaW5zdHJ1Y3Rpb25zIGluIHJp
ZnQgcHJvdG9jb2wuPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTow
cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206
MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgbGluZS1oZWlnaHQ6MjBw
eDsgZm9udC1mYW1pbHk6YXJpYWw7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1j
b2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj48YnIgc3R5bGU9ImJveC1zaXppbmc6Ym9yZGVyLWJveDsg
b3V0bGluZTowcHghaW1wb3J0YW50Ij4gPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFy
Z2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1h
cmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgbGlu
ZS1oZWlnaHQ6MjBweDsgZm9udC1mYW1pbHk6YXJpYWw7IG91dGxpbmU6MHB4IWltcG9ydGFudDsg
YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj5UaGFua3PvvIE8L3A+PHAgc3R5bGU9
Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpib3JkZXItYm94
OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsg
bWluLWhlaWdodDoxNHB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LWZhbWlseTphcmlhbDsgb3V0
bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPkJl
bmNob25nPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGZv
bnQtc2l6ZToxNHB4OyBmb250LWZhbWlseTphcmlhbCI+PGJyPiA8L3A+PHAgc3R5bGU9Im1hcmdp
bi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5
OmFyaWFsIj48YnI+IDwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206
MHB4OyBmb250LXNpemU6MTRweDsgZm9udC1mYW1pbHk6YXJpYWwiPjxicj4gPC9wPjxwIHN0eWxl
PSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGZvbnQtc2l6ZToxNHB4OyBmb250
LWZhbWlseTphcmlhbCI+PGJyPiA8L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9k
aXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PHA+PGJy
PiA8L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PHA+
PGJyPjwvcD48L2Rpdj4=


--=====_003_next=====--

--=====_002_next=====--

--=====_001_next=====--



From nobody Wed Jul 10 20:51:47 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6077112008A for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 20:51:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 LqPyPDzwWsaV for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 20:51:40 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 A22A7120048 for <rift@ietf.org>; Wed, 10 Jul 2019 20:51:40 -0700 (PDT)
Received: from pps.filterd (m0108163.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6B3oHX4006592; Wed, 10 Jul 2019 20:51:38 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=3xUG1m9gtDradkt527DBSBS+I6kVkWwEOEyj8Pwefr4=; b=fHZ6389y/xg3TCFAPbgrjd7QMuaEhoWOtoy14rZq0Sao+xD/L3Hc+pXC/N6Wxd9ZYrSz IU+4BZRb7rH4HrNL2zVU9f7E2/dQTW6G8Las1O8iZtlM9QGp4K+tPPqhenmEuHqrYKHM 6D37b8JGKLfVlCQ7iAhzVWZD5B6kfTbYsafLm02r8aTI1GwGMm2ggu/C+o4y/OPSn6ub BP3qNq66+a7+XKYbAXfaf+j4kwBn7YqtxAQW6MlQ8CWbMSIbQIKisiC8CD3BUSZswY6C sY41w43z5b5/0ipJ7GjYEu0MtGLCCA/Tqrn4McWynWk3UeXJWQS9diN51fvQgth+cwk5 2g== 
Received: from nam05-co1-obe.outbound.protection.outlook.com (mail-co1nam05lp2052.outbound.protection.outlook.com [104.47.48.52]) by mx0b-00273201.pphosted.com with ESMTP id 2tnry9gc08-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 10 Jul 2019 20:51:37 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BNN0JsgfK3MKC7ld/KN7OLYxz8EW6QZ7/tXY1OJhJKgrXE/j/yDrIhhWJve1eaweckQcPmw1/uImzM2M1Ha86zVI2AFPu+dsZZbVr38eAMsh/VuAxaidt8j0EHZUp//65iARQLLa3Bu6Qnp5c4OI1yFPj/dOZAyuKuirCP17kI6lJTPJmlZiUJn5JTE0h1W4tAoF5U21RfgOAbYIXqJxNvLxVjL4sBbT+OwAenQJej5dwMBcJJu/zleUCHlos1US1EcWseC9XrcDw+HwRP7UnkE6r82KkSEeArr4bsdHH2HKSTP75UTYyXd0yp7b1BZgJ2BfE/5HqSrpXFoJ3StWmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3xUG1m9gtDradkt527DBSBS+I6kVkWwEOEyj8Pwefr4=; b=mG555jpnnMFHREjNYSV1kjTWsNs812EozUgOKXbDMaPsKakgnVoKTO+87wiLNyHKcaJPMUE4ail0/BSoxyckDNtnUJhHT2+Af1emfFqIPWOzaXsdKriGbgID0Kh+FcEMeDE+yn/9QrzfhbGEovtPb7FEVk5ICj4aFKezvadhJ21y5HE2pcpz/sTNnRnIPUYqjbvF+3ONnCCsmVBoUPF9hGB4m+2QUdeTxI5q0eQZnXGQZkG2zKbAt8nqK5Wc4ZQvhwELOC7KN2VyMvhcoF6F96tXyd8TZOWLcxgjBFSkKXSjN0SN8lzQMbNcubYHLj4p72cA2G1g6yiE5wPSV7o2tg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB2975.namprd05.prod.outlook.com (10.168.246.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2094.5; Thu, 11 Jul 2019 03:51:34 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2073.008; Thu, 11 Jul 2019 03:51:34 +0000
From: Antoni Przygienda <prz@juniper.net>
To: "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>
CC: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>, "EXT-zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: Re:[Rift] Ipv4 and ipv6 cooperating in rift
Thread-Index: AQHVNlA8JouTnZSDOEiJbO/Xu4kdL6bCabZDgAEkTwCAAFAl8IAA6b8AgAAAYYM=
Date: Thu, 11 Jul 2019 03:51:34 +0000
Message-ID: <MWHPR05MB327920CEE377FDB606FD3D35ACF30@MWHPR05MB3279.namprd05.prod.outlook.com>
References: 201907101656125835263@zte.com.cn, MWHPR05MB3279B78E6D9AECB771D2497FACF00@MWHPR05MB3279.namprd05.prod.outlook.com, <201907111139404022772@zte.com.cn>
In-Reply-To: <201907111139404022772@zte.com.cn>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [66.129.239.15]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 81d9d8de-c93e-4801-cabb-08d705b31167
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB2975; 
x-ms-traffictypediagnostic: MWHPR05MB2975:
x-ld-processed: bea78b3c-4cdb-4130-854a-1d193232e5f4,ExtAddr
x-microsoft-antispam-prvs: <MWHPR05MB29757DE0D48C0F352EA5B4ADACF30@MWHPR05MB2975.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0095BCF226
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(346002)(396003)(366004)(136003)(376002)(39860400002)(189003)(199004)(52536014)(76116006)(229853002)(2906002)(66946007)(54896002)(9686003)(19627405001)(55016002)(5640700003)(6916009)(66476007)(7736002)(53936002)(6246003)(8936002)(486006)(81166006)(64756008)(66446008)(81156014)(8676002)(2501003)(74316002)(66556008)(2351001)(71200400001)(71190400001)(66066001)(76176011)(476003)(102836004)(86362001)(478600001)(105004)(446003)(53546011)(6506007)(186003)(99286004)(4326008)(26005)(25786009)(6116002)(7696005)(3846002)(11346002)(14444005)(5024004)(6436002)(5660300002)(68736007)(256004)(316002)(33656002)(14454004)(54906003); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB2975; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: bx5axKIElTfQLnKXMdonQa7D0MVQh0F4iiKx2kEoSHmBfhhQ/b96euSnhhvkD+5U+RN+QcI3GmuZDpn73mizOLQ3SBBy5h+zlGHVXZfM6dtCXhON7BM/QccgC/B1MS6MxI2NzbeeMVa2Ti+xVVx7DQ+jbRwcWKTJZ3OSq1yFHyXPIVed2sohGASLE7p5+qZWfQm0UW8JUukxEw8LoZVk4IufAfJa0IatpP5zqCqVW5d87NiFlAeOUpeEyXYfR+u0uhoYDeGLjomUn3b3DhIZwPf9pIml7UHiY0K7aSXL8pAZSORTfrIFUT+Dw+c/yGuZzJHEUtTA6UYPscGITGuKH0KOkQvjDXLt13zbpmRzWOp0MezxPxRDdRoxZa0n7nlPXeEcYhJ1vs1lItD+vCOy9WHq9UnblT8DN9fau5nIAZQ=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB327920CEE377FDB606FD3D35ACF30MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 81d9d8de-c93e-4801-cabb-08d705b31167
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2019 03:51:34.4174 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB2975
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-10_08:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907110042
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/g2FrYCypttw9U_-YewcXSigm24g>
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 03:51:44 -0000

--_000_MWHPR05MB327920CEE377FDB606FD3D35ACF30MWHPR05MB3279namp_
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64

QmVuY2hvbmcsIHdoYXQgeW91IHNlZW0gdG8gdGFsayBhYm91dCBpcyBvcmlnaW5hdGluZyBwYWNr
ZXRzIGFuZCBpdCdzIHRoZSBzb3VyY2UgdGhhdCBkZWNpZGVzIHdoZXRoZXIgaXQgc2VuZHMgdjQg
b3IgdjYgYW5kIHRoZSBJUCBmYWJyaWMgd2l0aCBSSUZUIGp1c3QgZm9yd2FyZHMgdGhlIHBhY2tl
dCwgaXQgY2Fubm90IGNoYW5nZSBpbiB0aGUgbWlkZGxlIHRoZSBJUCBhZGRyZXNzIGZhbWlseSBp
biB3aGljaCB0aGUgcGFja2V0IGlzIGNhcnJpZWQgb2J2aW91c2x5IHNvIHRoZXJlIGlzIG5vIGRl
Y2lzaW9uIHRvIGJlIG1hZGUgd2hpY2ggSVAgQUYgaXMgdXNlZCwgb25seSB3aGljaCBHVyBuZWVk
cyB0byBiZSBpbnN0YWxsZWQgb24gdGhlIHJvdXRlIG5leHRob3AuIEJ1dCB5ZXMsIGFuIGltcGxl
bWVudGF0b24gY2FuIGNob29zZSB0byBmb3J3YXJkIHY0IHBhY2tldHMgdXNpbmcgdGhlIE1BQyBh
ZGRyZXNzIG9mIGEgdjYgZ2F0ZXdheSwgYSBoaWdobHkgZGVzaXJhYmxlIGJlaGF2aW9yIHNpbmNl
IHdpdGggdGhhdCwgdGhlIGZhYnJpYyBjYW4gYmUgY29tcGxldGVseSBnbG9iYWwgYWRkcmVzcyBm
cmVlIHdpdGhvdXQgYW55IGNvbmZpZyAoanVzdCBORCkgYW5kIGRvIHY0IGZpbmUuDQoNCnllcywg
YW4gaW1wbGVtZW50YXRpb24gbWF5IGNob29zZSB0byBwcmVmZXIgdjQgR1cgZm9yIHY0IHBhY2tl
dHMgYW5kIHY2IEdXIGZvciB2NiBwYWNrZXRzIGJ1dCBub3JtYWxseSBpdCdzIHRoZSBzYW1lIE1B
QyB1bmxlc3MgdGhlIGRlcGxveW1lbnQgaXMgdmVyeSBzdHJhbmdlIEAgd2hpY2ggcG9pbnQga25v
YnMgdG8gY29udHJvbCB0aGF0IG1heSBiZSBuZWNlc3NhcnksIHNvbWV0aGluZyB3aGljaCBpcyBp
bXBsZW1lbnRhdGlvbiBzcGVjaWZpYy4NCg0KU28gUklGVCBqdXN0IGZsb29kcyB0aGUgVElFcyBv
biBhbnkgQUYgd2l0aCBwcmVmaXhlcyBvZiBhbGwgQUZzLCB0aGUgY29tcHV0YXRpb24gY29tcHV0
ZXMgdGhlIHJvdXRlIHdpdGggZGlyZWN0bHkgYXR0YWNoZWQgbmV4dC1ob3Agd2hpY2ggaGFzIHRv
IHJlc29sdmUgdG8gTUFDIGluIGFueSBBRiByZWFsbHkgYW5kIHRoZW4gcGFja2V0IGNhbiBiZSBm
b3J3YXJkZWQgLi4uDQoNCmltcGxlbWVudCBpdCBhbmQgcGxheSB3aXRoIGl0LCB3ZSBoYXZlIEAg
bGVhc3QgMiBpbXBsZW1lbnRhdGlvbnMgYWxyZWFkeSB0aGF0IHdvcmsgZmluZSBkb2luZyB0aGF0
IC4uLg0KDQpZZXMsIHRoZSBjbG9zZXN0IGFuYWxvZ3kgaXMgdjQgaW4gQkdQIHdpdGggdjYgbmV4
dGhvcHMgaWYgeW91IHJlYWxseSB3YW50IHRvIHRoaW5rIHRoYXQgd2F5IGJ1dCBSSUZUIGlzIG11
Y2ggc2ltcGxlciBzaW5jZSB0aGUgbmhvcCBpcyBhbHdheXMgZGlyZWN0bHkgY29ubmVjdGVkIGFu
ZCB3ZSBkb24ndCB0YWxrIGFib3V0IGFueXRoaW5nIGxpa2UgdjRvdjYgb3IgdjZvdjQgdHVubmVs
aW5nIGFuZCBzbyBvbiAuLi4NCg0KbWFrZXMgc2Vuc2U/DQoNCi0tLSB0b255DQoNCg0KX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IHh1LmJlbmNob25nQHp0ZS5jb20uY24g
PHh1LmJlbmNob25nQHp0ZS5jb20uY24+DQpTZW50OiBXZWRuZXNkYXksIEp1bHkgMTAsIDIwMTkg
ODozOSBQTQ0KVG86IEFudG9uaSBQcnp5Z2llbmRhDQpDYzogSmVmZnJleSAoWmhhb2h1aSkgWmhh
bmc7IEVYVC16aGFuZy56aGVuZ0B6dGUuY29tLmNuOyByaWZ0QGlldGYub3JnDQpTdWJqZWN0OiBS
ZTpbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0DQoNCg0KSGkgdG9ueQ0K
DQpUaGFua3MgZm9yIHlvdXIgZXhwbGFuYXRpb24sIGFuZCBJIGhhdmUgYWxyZWFkeSB1bmRlcnN0
b29kIHlvdXIgb3BpbmlvbiBvbiB2NHY2IGZvcndhcmRpbmcuDQoNClRoZSBkaWZmZXJlbmNlIGJl
dHdlZW4gUklGVCBhbmQgb3RoZXIgcm91dGluZyBwcm90b2NvbHMgaXMgdGhlIGNvbnNpc3RlbmN5
IG9mIHBhY2tldHMgQUYgYW5kIHJvdXRlcyBBRi4gSXNpcyBpcyBpbiBMMiBlbmNhcHN1bGF0aW9u
IHRoYXQgc29sdmVzIGRpZmZlcmVudCBhZGRyZXNzIGZhbWlsaWVzIHRocm91Z2ggbXVsdGlwbGUg
dG9wb2xvZ2llcy4gT3NwZiBhbmQgcmlwIGFyZSBzdHJpY3RseSBkaXN0aW5ndWlzaGVkIGluIHY0
djYuIFJpZnQgaXMgYWN0dWFsbHkgY2xvc2VyIHRvIEJHUC4NCg0KV2hlbiB0aGUgaW50ZXJmYWNl
IGhhcyBib3RoIHY0IGFuZCB2NiBhZGRyZXNzZXMgKG9yIE5EIGVuYWJsZWQpLCB0aGUgcHJvdG9j
b2wgdXNlcyB2NCBvciB2NiBvciB2NHY2IGFkZHJlc3MgZW5jYXBzdWxhdGlvbi4gSXQgd2lsbCBi
ZSBiZXR0ZXIgaWYgcHJvdG9jb2wgZ2F2ZSB0aGUgcmVjb21tZW5kZWQgYmVoYXZpb3IuIE90aGVy
d2lzZSwgZGlmZmVyZW50IHBlb3BsZSB3aWxsIGdpdmUgZGlmZmVyZW50IHNvbHV0aW9ucywgd2hp
Y2ggd2lsbCBjYXVzZSBwcm90b2NvbCBjb25mb3JtYW5jZSBwcm9ibGVtLg0KDQpUaGUgb3B0aW9u
cyB3ZSBjYW4gY2hvb3NlIGFyZToNCg0KYSkgTkQgZW5hYmxlIHY2IGZpcnN0Og0KDQpJZiB2NiBh
ZGRyZXNzIHZhbGlkIEFORCBORCBlbmFibGU6DQoNCiAgICAgVjYgcGFja2V0DQoNCkVsc2UgaWYg
djQgYWRkcmVzcyB2YWxpZDoNCg0KICAgICBWNCBwYWNrZXQNCg0KYikgdjQgZmlyc3QNCg0KSWYg
djQgYWRkcmVzcyB2YWxpZDoNCg0KICAgICBWNCBwYWNrZXQNCg0KRWxzZSBpZiB2NiBhZGRyZXNz
IHZhbGlkKEFORCBORCBlbmFibGUpOg0KDQogICAgIFY2IHBhY2tldA0KDQpjKSBjb2V4aXN0ZW5j
ZSBvZiB2NHY2DQoNCklmIHY0IGFkZHJlc3MgdmFsaWQ6DQoNCiAgICAgVjQgcGFja2V0DQoNCklm
IHY2IGFkZHJlc3MgdmFsaWQoQU5EIE5EIGVuYWJsZSk6DQoNCiAgICAgVjYgcGFja2V0DQoNCkNv
bmZ1c2VkIG9uIGJvdGggdGhlIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBzaWRlcy4NCg0KYykgd2ls
bCBmdXJ0aGVyIGhhdmUgYSBHVyBzZWxlY3Rpb24gcHJvYmxlbSwgcHJlZmVycmluZyB0byBjaG9v
c2UgdGhlIG5leHRob3Agb2YgdGhlIHNhbWUgYWRkcmVzcyBmYW1pbHkgd2l0aCB0aGUgcHJlZml4
LCBvciB2NCBmaXJzdC4NCg0KSSdkIGxpa2UgdGhlIHByb3RvY29sIHJlY29tbWVuZHMgYSBkZWZh
dWx0IGJlaGF2aW9yIGFuZCBtYXkgcHJvdmlkZXMgYSBjb250cm9sIG1ldGhvZCBpbiB5YW5nLg0K
DQpUaGFua3MhDQoNCkJlbmNob25nDQoNCg0K1K3KvNPKvP4NCreivP7Iy6O6QW50b25pUHJ6eWdp
ZW5kYSA8cHJ6QGp1bmlwZXIubmV0Pg0KytW8/sjLo7rQ7LG+s+cxMDA2NTA1MzsNCrOty83Iy6O6
SmVmZnJleSAoWmhhb2h1aSkgWmhhbmcgPHp6aGFuZ0BqdW5pcGVyLm5ldD471cXV9zAwMDA3OTQw
O3JpZnRAaWV0Zi5vcmcgPHJpZnRAaWV0Zi5vcmc+Ow0KyNUgxtogo7oyMDE5xOowN9TCMTDI1SAy
MzoxMg0K1vcgzOIgo7pSZTogUmU6W1JpZnRdIElwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4g
cmlmdA0KSGV5IEJlbmNob25nLCB0aGF0J3MgYW4gb3Zlci1pbnRlcnByZXRhdGlvbiwgdGhlIHNw
ZWMgaXMgbG9vc2VyIHRoYW4gdGhhdCBidXQgYXMgZmFyIEkgc2F3IHN1ZmZpY2llbnQuIFNlY3Rp
b24gNS4yLjIuDQoNCmEpIFNwZWNpZmljYXRpb24gZG9lcyBub3QgcHJvaGliaXQgUklGVCBmcm9t
IHVzaW5nIF9hbnlfIHZhbGlkIElQdjYgYWRkcmVzcyBvbiB0aGUgaW50ZXJmYWNlIHRvIHNlbmQg
SVB2NiBMSUVzLiBUaGUgcmVjZWl2ZXIgaXMgc3VwcG9zZWQgdG8gcGljayB1cCB0aGF0IHNvdXJj
ZSBhZGRyZXNzIGFuZCB1c2UgaXQgYXMgZGVzdGluYXRpb24gd2hlbiBzZW5kaW5nIExJRXMgb3Zl
ciB2NiBhbmQvb3IgVElFcyB3aXRoIHRoZSByZWNldmluZyBpbnRlcmZhY2UgIGFzIGdhdGV3YXku
IFNwZWNpZmljYXRpb24gZG9lcyBOT1Qgc3BlbGwgb3V0IHdoYXQgaGFwcGVucyBlLmcuIG9uIG1p
c21hdGNoZWQgSVAgc3VibmV0cyBvbiBib3RoIHNpZGVzIGFuZCBzbyBvbiwgc2l0dWF0aW9uIGhl
cmUgaXMgc2ltaWxhciB0byBJU0lTIGFuZCBkaWZmZXJlbnQgc2NlbmFyaW9zIHN1Y2ggYXMgdW5u
dW1iZXJlZCBsaW5rcyBhbmQgc28gb24NCmIpIElmIHlvdSB3YW50IHRoZSAibGF6aWVzdCIgcG9z
c2libGUgaW1wbGVtZW50YXRpb24gdGhlbiBpbiBmYWN0IHllcywgeW91IGNhbiBmYWxsIGJhY2sg
b24NCg0KIg0KDQogICBBbGwgUklGVCByb3V0ZXJzIE1VU1Qgc3VwcG9ydCBJUHY0IGZvcndhcmRp
bmcgYW5kIE1BWSBzdXBwb3J0IElQdjYgICAgZm9yd2FyZGluZy4gIEEgdGhyZWUgd2F5IGFkamFj
ZW5jeSBvdmVyIElQdjYgYWRkcmVzc2VzIGltcGxpZXMgICAgc3VwcG9ydCBmb3IgSVB2NCBmb3J3
YXJkaW5nLg0KDQoiDQoNCndoaWNoIG1ha2VzIHY0b3Y2IGZvcndhcmRpbmcgaW5oZXJlbnQgcGFy
dCBvZiBSSUZULiBUaGF0IGFzc3VtZXMgaG93ZXZlciB0aGF0IHJlY2VpdmluZyBuZWlnaGJvciBk
b2VzIHN1cHBvcnQgVjYgKHdoaWNoIHRoZSBzcGVjIGRvZXMgTk9UIG1hbmRhdGUpIGFuZCBub3Ro
aW5nIHdpbGwgaGFwcGVuIGlmIGl0IGRvZXNuJ3QuIFRoZXJlZm9yZSBhbGwgUklGVCBpbXBsZW1l
bnRhdGlvbiBJIHNhdyBzbyBmYXIgc2VuZCBib3RoIHY0IGFuZCB2NiB3aGljaCAgYWxsb3dzIHRo
ZSBuZWlnaGJvciB0byBvbmx5IHJlY2VpdmUgdjQgYW5kIGZvcndhcmQgdXNpbmcgdjQgZ2F0ZXdh
eXMgaWYgaXQgZG9lc24ndCBzdXBwb3J0IFY2LiBJbiBjYXNlIGJvdGggdjQgYW5kIHY2IEFGcyBh
cmUgZXN0YWJsaXNoZWQsIGl0IGlzIHVwIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiB3aGljaC9ob3cg
aXQgcmVzb2x2ZXMgdGhlIGdhdGV3YXlzIGFuZCB0aGVyZSBhcmUgbWFueSBpbnRlcmVzdGluZyBh
ZHZhbmNlZCBpc3N1ZXMgc3VjaCAgYXMgbWl4dHVyZSBvZiBzcGluZXMgd2l0aCB2NCBhbmQgdjYg
bmV4dGhvcHMgYW5kIGhvdyB0byBmb3JtIEVDTVAgYW1vbmdzdCB0aGVtIHRoYXQgdGhlIHNwZWMg
ZG9lcyBvYnZpb3VzbHkgbm90IGFkZHJlc3Mgc2luY2UgaXQncyBhbGwgdmVyeSBpbXBsZW1lbnRh
dGlvbiBhbmQgc2lsaWNvbiBzcGVjaWZpYy4NCg0KLS0tIHRvbnkNCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fDQpGcm9tOiB4dS5iZW5jaG9uZ0B6dGUuY29tLmNuIDx4dS5iZW5jaG9u
Z0B6dGUuY29tLmNuPg0KU2VudDogV2VkbmVzZGF5LCBKdWx5IDEwLCAyMDE5IDE6NTYgQU0NClRv
OiBBbnRvbmkgUHJ6eWdpZW5kYQ0KQ2M6IEplZmZyZXkgKFpoYW9odWkpIFpoYW5nOyBFWFQtemhh
bmcuemhlbmdAenRlLmNvbS5jbjsgcmlmdEBpZXRmLm9yZw0KU3ViamVjdDogUmU6W1JpZnRdIElw
djQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdA0KDQoNClRvbnksIHRoYW5rIHlvdSBmb3Ig
eW91ciByZXBseQ0KDQpDYW4gaXQgYmUgdW5kZXJzdG9vZCB0aGF0IGFmdGVyIHRoZSBORCBpcyBl
bmFibGVkLCB0aGUgdjYgYWRkcmVzcyBuZWVkcyB0byBiZSB1c2VkIHRvIGJ1aWxkIG5laWdoYm9y
PyBJbiB0aGlzIGNhc2UsIHRoZSByaWZ0IHBhY2tldCBvZiB0aGUgdjQgaGVhZGVyIGlzIG5vdCBh
bGxvd2VkIHRvIGJlIHNlbnQgYW5kIHJlY2VpdmVkLCBhbmQgYm90aCB2NCBhbmQgdjYgcm91dGVz
IGhhdmUgYSB2NiBHVy4NCg0KDQoNCtStyrzTyrz+DQq3orz+yMujukFudG9uaVByenlnaWVuZGEg
PHByekBqdW5pcGVyLm5ldD4NCsrVvP7Iy6O60OyxvrPnMTAwNjUwNTM7SmVmZnJleSAoWmhhb2h1
aSlaaGFuZyA8enpoYW5nQGp1bmlwZXIubmV0PjvVxdX3MDAwMDc5NDA7cmlmdEBpZXRmLm9yZyAg
PHJpZnRAaWV0Zi5vcmc+Ow0KyNUgxtogo7oyMDE5xOowN9TCMTDI1SAwMDowOQ0K1vcgzOIgo7pS
ZTogW1JpZnRdIElwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdA0KSGV5IEJlbmNob25n
LCBjYzonaW5nIGxpc3QsIGdvb2QgcXVlc3Rpb25zIG9idmlvdXNseSB0aGF0IHBvcCBvdXQgb24g
aW1wbGVtZW50YXRpb24NCg0KDQogIDEuICBzZW5kaW5nIExJRSBvbmx5IHdpdGggdjQgd2lsbCBu
b3QgZ2l2ZSB5b3UgYSB2NiBhZGRyZXNzIHRvIHNlbmQgdG8gKHNpbmNlIHRoZSBMSUUgc291cmNl
IGFkZHJlc3MgZ2l2ZXMgdGhlIGdhdGV3YXkgZm9yIHRoZSBBRiwgdGhhdCdzIHdoeSB3ZSBzZW5k
IExJRSBwZXIgQUYpIHNvIHlvdSB3b24ndCBoYXZlIGEgdjYgR1cgYWRkcmVzcyB0byBzZW5kIFRJ
RXMgdG8gOy0pDQoNCiAgMi4gIHllcywgZXZlcnkgaW50ZXJmYWNlIGlzIGluZGVwZW5kZW50LiBP
YnNlcnZlIHRoYXQgdjYgc3VwcG9ydCBpbXBsaWVzIHY0IGFzIHRoZSBzcGVjIHNheXMgKHNpbmNl
IHlvdSBjYW4gRlcgdjQgd2l0aG91dCBhIHY0IEdXIGlmIHlvdSBoYXZlIGEgdjYgZ2F0ZXdheSku
IEhvd2V2ZXIsIGlmIG9uZSBzaWRlIHNlbmRzIHY2IG9ubHkgYW5kIHRoZSBvdGhlciBzaWRlIG9u
bHkgdjQgdGhleSdsbCBuZXZlciBnbyAzLXdheSBzaW5jZSB0aGV5IHdvbid0ICAgYmUgYWJsZSB0
byByZWNlaXZlLiBXZSBqdXN0IGFkZGVkIGEgc2VudGVuY2UgdG8gdGhlIHNwZWMgc2F5aW5nIHRo
YXQgaWYgeW91IGRvbid0IHNlbmQgYW4gQUYgTElFIHlvdSBNVVNUIE5PVCByZWNlaXZlIHRoZSBz
YW1lIEFGIExJRSBzaW5jZSB3ZSBmb3VuZCB0aGF0IGxvb3NlIGVuZCBpbiBCcnVubydzIGltcGxl
bWVudGF0aW9uIHdoZW4gdGVzdGluZyBzZWN1cml0eSBlbnZlbG9wZXMuICBJdCB3aWxsIGJlIGlu
IC0wNw0KDQoNCjx0PkFsbCBSSUZUIHJvdXRlcnMgTVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGlu
ZyBhbmQgTUFZIHN1cHBvcnQgSVB2Ng0KICAgIGZvcndhcmRpbmcuIEEgdGhyZWUgd2F5IGFkamFj
ZW5jeSBvdmVyIElQdjYgYWRkcmVzc2VzIGltcGxpZXMgc3VwcG9ydA0KICAgIGZvciBJUHY0IGZv
cndhcmRpbmcuIEEgbm9kZSB0aGF0IGRvZXMgbm90IHByb2Nlc3MgcmVjZWl2ZWQgSVB2NiBMSUVz
DQogICAgTVVTVCBOT1Qgb3JpZ2luYXRlIElQdjYgTElFcy4NCiAgICA8L3Q+DQoNCg0KICAxLiAg
SVB2Ni9JUHY0IHByZWZpeCBjYW4gYmUgbWl4ZWQgaW4gUHJlZml4IFRJRXMuIFByZWZpeCBUSUVz
IGRvIE5PVCBjYXJlIHdoaWNoIGludGVyZmFjZS9BRiB0aGV5IGFyZSBzZW50IG92ZXIuDQoNCiAg
Mi4gIGhvdyB5b3UgYnVpbGQgZm9yd2FyZGluZyB0YWJsZSBhbmQgd2hpY2ggZ2F0ZXdheXMgeW91
IHVzZSBpcyBpbXBsZW1lbmF0aW9uIGRlcGVuZGVudCBidXQgeWVzLCB5b3UgZ290IHRoZSBmbGF2
b3IuIHRob3VnaCB5b3VyIGFzc3VtcHRpb24gb2YgIklwdjYgZGVzdGluYXRpb24gd2l0aCBpcHY0
IG5leHRob3AiIGlzIG9wdGltaXN0aWMuIGV2ZXJ5IHNpbGljb24gZG9lcyB2NCBzbyB2NiBjYW4g
aW1wbHkgdjQsIGltcGx5aW5nIHY0IGZ3ZCdpbmcgICBhbGxvd3MgdjYgZm9yd2FyZGluZyBmYWls
cyBvbiBnb29kIGFtb3VudCBvZiBzaWxpY29uLiBCdXQgYWdhaW4sIHRob3NlIGFyZSBhbGwgaW1w
bGVtZW50YXRpb24ga25vYnMsIHNwZWMgb25seSBzYXlzICJ2NiBpbXBsaWVzIHY0IiB3aGljaCBt
ZWFucyAieW91IGJldHRlciBmd2QuIHY0IG92ZXIgdjYgbmV4dGhvcHMgaWYgeW91IHNlZSB2NiBM
SUVzIG9ubHkiDQoNCk9ic2VydmUgdGhhdCBub2RlIFRJRXMgYXJlIF9ub3RfIGNhcnJ5aW5nIHRo
ZSBzdXBwb3J0ZWQgQUZzIG9uIGVhY2ggaW50ZXJmYWNlIHNpbmNlIEkgdGhpbmsgaXQgd291bGQg
bGVhZCB0byB1bmRlc2lyYWJsZSBhdHRlbXB0cyB0byBkZXBsb3kgKHNvbWUgbGlua3MgY2FuIGRv
IHY2KSB0b3BvbG9naWVzIHdoaWNoIGRlZmVhdCB0aGUgcHVycG9zZSBvZiBaVFAvc2ltcGxpY2l0
eSBvZiBSSUZULiB2NiBpbXBsaWVzIHY0LCBpZiBzb21lb25lICAgd2FudHMgdG8gZndkJyB2NiBv
dmVyIGEgZmFicmljIHdoZXJlIGNlcnRhaW4gbGlua3MgYXJlIHY0IGNvbXB1dGF0aW9ucyBnZXQg
cmVhbGx5IHdlaXJkIGFuZCBvcGVyYXRpb25hbGx5IHN1Y2ggYSB0aGluZyBpcyBwcm9iYWJseSBh
IG5pZ2h0bWFyZSBhbnl3YXkuIEFuZCBnZXR0aW5nIHY2IHdvcmtpbmcgaXMgdHJpdmlhbCwganVz
dCBmbGlwIG9uIE5EIGFuZCB5b3UncmUgaW4gYnVzaW5lc3MgKGF0IGxlYXN0IGNvbnRyb2wgcGxh
bmUgd2lzZSA7LSkNCg0KVGhlIHNwZWMgaXMgbm9pdCBnaXZpbmcgaW1wbGVtZW50YXRpb24gYWR2
aWNlLCBpdCBqdXN0IHNwZWNpZmllcyBiZWhhdmlvci4gSW4gY2FzZSBvZiBkb3VidCBsb29rcyBA
IEJydW5vJztzIG9wZW4gc291cmNlLiBCcnVubyBpbXBsZW1lbnRlZCB0aGUgd2hvbGUgTElFIHdp
dGhvdXQgZXZlciB0YWxraW5nIHRvIG1lIGFuZCBpdCBpbnRlcm9wJ2VkIGRheSBvbmUgd2l0aG91
dCBwcm9ibGVtcy4NCg0KV2hlbiB5b3UncmUgcmVhZHkgd2l0aCB5b3VyIGltcGxlbWVudGF0aW9u
IHRvIGludGVyb3AsIEJydW5vJ3MgY29kZSBoYXMgbmljZSBmcmFtZXdvcmsgeW91IGNhbiBwbHVn
IGluIGFnYWluc3Qgb3BlbiBzb3VyY2UgJiBKdW5pcGVyIGltcGxlbWVudGF0aW9uIGVhc2lseQ0K
DQotLS0gdG9ueQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IHh1LmJl
bmNob25nQHp0ZS5jb20uY24gPHh1LmJlbmNob25nQHp0ZS5jb20uY24+DQpTZW50OiBUdWVzZGF5
LCBKdWx5IDksIDIwMTkgNTowOCBBTQ0KVG86IEFudG9uaSBQcnp5Z2llbmRhOyBKZWZmcmV5ICha
aGFvaHVpKSBaaGFuZzsgRVhULXpoYW5nLnpoZW5nQHp0ZS5jb20uY24NClN1YmplY3Q6IFtSaWZ0
XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQNCg0KSGkNCg0KSSBoYXZlIHNvbWUg
cXVlc3Rpb25zIGFib3V0IGlwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdC4NCg0KSXAg
aGVhZCBvZiB0aGUgcmlmdCBwYWNrZXQgY2FuIGJlIFY0IG9yIFY2LCBhbmQgdGhlIHByZWZpeCBp
biBUSUUgYWxzbyBzdXBvcnQgVjQgb3IgdjYuDQoNCkNhbiBpdCBzdXBwb3J0IHRoZSBmb2xsb3dp
bmcgc2l0dWF0aW9uczoNCg0KDQoxoaJBIHJpZnQgaW50ZXJmYWNlIHdoaWNoIHNlbmQgTElFIHdp
dGggaXB2NCBoZWFkIHJlY2VpdmluZyBMSUUgd2l0aCBJUHY2IGhlYWQ7DQoNCkEgcmlmdCBpbnRl
cmZhY2Ugd2hpY2ggc2VuZCBMSUUgd2l0aCBpcHY2IGhlYWQgcmVjZWl2aW5nIExJRSB3aXRoIElQ
djQgaGVhZDsNCg0KQ2FuIHRoZXkgYnVpbGQgMy1XYXkgbmVpZ2hib3I/DQoNCg0KMqGiU29tZSBp
bnRlcmZhY2VzIGluIGEgcmlmdCBpbnN0YW5jZSBzZW5kIGlwdjQgaGVhZCBwYWNrZXRzo6wgYW5k
IG90aGVycyBpbiB0aGUgc2FtZSBpbnN0YW5jZSBzZW5kIGlwdjYgaGVhZCBwYWNrZXRzo7sNCg0K
DQozoaJJcHY0IGhlYWQgVElFIHBhY2tldCBmaWxsIGlwdjYgcHJlZml4o7sNCg0KICAgSXB2NiBo
ZWFkIFRJRSBwYWNrZXQgZmlsbCBpcHY0IHByZWZpeKO7KFJJRlQtMDYgNS4yLjI6IEFsbCBSSUZU
IHJvdXRlcnMgTVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQgSVB2
Ng0KDQogICBmb3J3YXJkaW5nLiAgQSB0aHJlZSB3YXkgYWRqYWNlbmN5IG92ZXIgSVB2NiBhZGRy
ZXNzZXMgaW1wbGllcw0KDQogICBzdXBwb3J0IGZvciBJUHY0IGZvcndhcmRpbmcuKQ0KDQoNCjSh
okluIHJpYiB0YWJsZSBvZiB0aGUgcmlmdDoNCg0KICAgSXB2NCBkZXN0aW5hdGlvbiB3aXRoIGlw
djYgbmV4dGhvcDsNCg0KICAgSXB2NiBkZXN0aW5hdGlvbiB3aXRoIGlwdjQgbmV4dGhvcDsNCg0K
ICAgSXB2NCBkZXN0aW5hdGlvbiB3aXRoIGJvdGggaXB2NCBuZXh0aG9wIGFuZCBpcHY2IG5leHRo
b3A7DQoNCiAgIElwdjYgZGVzdGluYXRpb24gd2l0aCBib3RoIGlwdjQgbmV4dGhvcCBhbmQgaXB2
NiBuZXh0aG9wOw0KDQoNCg0KNaGiVGhlIGlwIGhlYWQgdHlwZSh2NCBvciB2NikgY2FuIGJlIGNv
bmZpZ3VyZWQgaW4gcmlmdCBpbnRlcmZhY2Ugb3IgaW5zdGFuY2UuDQoNCg0KSXQgd2lsbCBiZSBi
ZXR0ZXIgaWYgdGhlcmUgYXJlIGNsZWFyIGluc3RydWN0aW9ucyBpbiByaWZ0IHByb3RvY29sLg0K
DQoNClRoYW5rc6OhDQoNCkJlbmNob25nDQoNCg0KDQoNCg0KDQo=

--_000_MWHPR05MB327920CEE377FDB606FD3D35ACF30MWHPR05MB3279namp_
Content-Type: text/html; charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dgb2312">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Benchong, what you seem to talk about is originating packets and it's the s=
ource that decides whether it sends v4 or v6 and the IP fabric with RIFT ju=
st forwards the packet, it cannot change in the middle the IP address famil=
y in which the packet is carried
 obviously so there is no decision to be made which IP AF is used, only whi=
ch GW needs to be installed on the route nexthop. But yes, an implementaton=
 can choose to forward v4 packets using the MAC address of a v6 gateway, a =
highly desirable behavior since
 with that, the fabric can be completely global address free without any co=
nfig (just ND) and do v4 fine.&nbsp;
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
yes, an implementation may choose to prefer v4 GW for v4 packets and v6 GW =
for v6 packets but normally it's the same MAC unless the deployment is very=
 strange @ which point knobs to control that may be necessary, something wh=
ich is implementation specific.
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
So RIFT just floods the TIEs on any AF with prefixes of all AFs, the comput=
ation computes the route with directly attached next-hop which has to resol=
ve to MAC in any AF really and then packet can be forwarded ...
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
implement it and play with it, we have @ least 2 implementations already th=
at work fine doing that ...
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Yes, the closest analogy is v4 in BGP with v6 nexthops if you really want t=
o think that way but RIFT is much simpler since the nhop is always directly=
 connected and we don't talk about anything like v4ov6 or v6ov4 tunneling a=
nd so on ...
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
makes sense? <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
--- tony <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div>
<div id=3D"appendonsend"></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font style=3D"font-size:11pt" face=
=3D"Calibri, sans-serif" color=3D"#000000"><b>From:</b> xu.benchong@zte.com=
.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<b>Sent:</b> Wednesday, July 10, 2019 8:39 PM<br>
<b>To:</b> Antoni Przygienda<br>
<b>Cc:</b> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; rift@ietf.o=
rg<br>
<b>Subject:</b> Re:[Rift] Ipv4 and ipv6 cooperating in rift</font>
<div>&nbsp;</div>
</div>
<div>
<div class=3D"x_zcontentRow">
<p style=3D"font-size:14px; font-family:arial">Hi tony</p>
<p style=3D"font-size:14px; font-family:arial">Thanks for your explanation,=
 and I have already understood your opinion on v4v6 forwarding.</p>
<p>The difference between RIFT and other routing protocols is the consisten=
cy of packets AF and routes AF. Isis is in L2 encapsulation that solves dif=
ferent address families through multiple topologies. Ospf and rip are stric=
tly distinguished in v4v6. Rift
 is actually closer to BGP.</p>
<p>When the interface has both v4 and v6 addresses (or ND enabled), the pro=
tocol uses v4 or v6 or v4v6 address encapsulation. It will be better if pro=
tocol gave the recommended behavior. Otherwise, different people will give =
different solutions, which will
 cause protocol conformance problem.&nbsp;</p>
<p>The options we can choose are:</p>
<p>a) ND enable v6 first:</p>
<p>If v6 address valid AND ND enable:</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>Else if v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>b) v4 first</p>
<p>If v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>Else if v6 address valid(AND ND enable):</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>c) coexistence of v4v6</p>
<p>If v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>If v6 address valid(AND ND enable):</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>Confused on both the sending and receiving sides.</p>
<p>c) will further have a GW selection problem, preferring to choose the ne=
xthop of the same address family with the prefix, or v4 first.</p>
<p style=3D"font-size:14px; font-family:arial">I'd like the protocol recomm=
ends a default behavior and may provides a control method in yang.</p>
<p style=3D"font-size:14px; font-family:arial">Thanks!</p>
<p style=3D"font-size:14px; font-family:arial">Benchong</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_zhistoryRow" style=3D"display:block">
<div class=3D"x_zhistoryDes" style=3D"width:100%; height:28px; line-height:=
28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_zwriteHistoryContainer">
<div class=3D"x_control-group x_zhistoryPanel">
<div class=3D"x_zhistoryHeader" style=3D"padding:8px; background-color:#F5F=
6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span></div>
<div><strong>=B3=AD=CB=CD=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e" style=3D"display:inline">Jeffrey (Zhaohui) Zhang &lt;zzhang@juniper.net&=
gt;;</span><span class=3D"x_zreadUserName" style=3D"display:inline">=D5=C5=
=D5=F700007940;</span><span class=3D"x_zreadUserName" style=3D"display:inli=
ne">rift@ietf.org
 &lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C210=C8=D5 23:12</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_zreadTitle"><str=
ong>Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, that's an over-interpretation, the spec is looser than that b=
ut as far I saw sufficient. Section 5.2.2.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
a) Specification does not prohibit RIFT from using _any_ valid IPv6 address=
 on the interface to send IPv6 LIEs. The receiver is supposed to pick up th=
at source address and use it as destination when sending LIEs over v6 and/o=
r TIEs with the receving interface
 &nbsp;as gateway. Specification does NOT spell out what happens e.g. on mi=
smatched IP subnets on both sides and so on, situation here is similar to I=
SIS and different scenarios such as unnumbered links and so on<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
b) If you want the &quot;laziest&quot; possible implementation then in fact=
 yes, you can fall back on
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
&quot;
<pre>   All RIFT routers MUST support IPv4 forwarding and MAY support IPv6 =
   forwarding.  A three way adjacency over IPv6 addresses implies    suppor=
t for IPv4 forwarding.</pre>
&quot;</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
which makes v4ov6 forwarding inherent part of RIFT. That assumes however th=
at receiving neighbor does support V6 (which the spec does NOT mandate) and=
 nothing will happen if it doesn't. Therefore all RIFT implementation I saw=
 so far send both v4 and v6 which
 &nbsp;allows the neighbor to only receive v4 and forward using v4 gateways=
 if it doesn't support V6. In case both v4 and v6 AFs are established, it i=
s up to the implementation which/how it resolves the gateways and there are=
 many interesting advanced issues such
 &nbsp;as mixture of spines with v4 and v6 nexthops and how to form ECMP am=
ongst them that the spec does obviously not address since it's all very imp=
lementation and silicon specific.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
--- tony <br>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-family:Calibri,=
sans-serif; font-size:11pt; color:#000000"><strong>From:</strong> xu.bencho=
ng@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Wednesday, July 10, 2019 1:56 AM<br>
<strong>To:</strong> Antoni Przygienda<br>
<strong>Cc:</strong> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; r=
ift@ietf.org<br>
<strong>Subject:</strong> Re:[Rift] Ipv4 and ipv6 cooperating in rift</span=
> &nbsp;</div>
<div>
<div class=3D"x_x_zcontentRow">
<p><br>
</p>
<p>Tony, thank you for your reply</p>
<p>Can it be understood that after the ND is enabled, the v6 address needs =
to be used to build neighbor? In this case, the rift packet of the v4 heade=
r is not allowed to be sent and received, and both v4 and v6 routes have a =
v6 GW.</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_x_zhistoryRow" style=3D"display:block">
<div class=3D"x_x_zhistoryDes" style=3D"width:100%; height:28px; line-heigh=
t:28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_x_zwriteHistoryContainer">
<div class=3D"x_x_control-group x_x_zhistoryPanel">
<div class=3D"x_x_zhistoryHeader" style=3D"padding:8px; background-color:#F=
5F6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span><span class=
=3D"x_x_zreadUserName" style=3D"display:inline">Jeffrey (Zhaohui)Zhang &lt;=
zzhang@juniper.net&gt;;</span><span class=3D"x_x_zreadUserName" style=3D"di=
splay:inline">=D5=C5=D5=F700007940;</span><span class=3D"x_x_zreadUserName"=
 style=3D"display:inline">rift@ietf.org
 &nbsp;&lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C210=C8=D5 00:09</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_x_zreadTitle"><s=
trong>Re: [Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, cc:'ing list, good questions obviously that pop out on implem=
entation &nbsp;
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<ol class=3D"x_x_ x_list-paddingleft-2">
<li>
<p>sending LIE only with v4 will not give you a v6 address to send to (sinc=
e the LIE source address gives the gateway for the AF, that's why we send L=
IE per AF) so you won't have a v6 GW address to send TIEs to ;-)</p>
</li><li>
<p>yes, every interface is independent. Observe that v6 support implies v4 =
as the spec says (since you can FW v4 without a v4 GW if you have a v6 gate=
way). However, if one side sends v6 only and the other side only v4 they'll=
 never go 3-way since they won't
 &nbsp;&nbsp;be able to receive. We just added a sentence to the spec sayin=
g that if you don't send an AF LIE you MUST NOT receive the same AF LIE sin=
ce we found that loose end in Bruno's implementation when testing security =
envelopes.&nbsp; It will be in -07<br>
</p>
</li></ol>
<br>
<div>
<pre style=3D"background-color:#ffffff; color:#000000; font-family:'Menlo';=
 font-size:7.5pt"><span style=3D"background-color:#efefef">&lt;</span><span=
 style=3D"color:#000080; background-color:#efefef; font-weight:bold">t</spa=
n><span style=3D"background-color:#efefef">&gt;</span>All RIFT routers MUST=
 support IPv4 forwarding and MAY support IPv6<br>    forwarding. A three wa=
y adjacency over IPv6 addresses implies support<br>    for IPv4 forwarding.=
 <strong>A node that does not process received IPv6 LIEs<br> &nbsp; &nbsp;M=
UST NOT originate IPv6 LIEs.</strong><br>    <span style=3D"background-colo=
r:#efefef">&lt;/</span><span style=3D"color:#000080; background-color:#efef=
ef; font-weight:bold">t</span><span style=3D"background-color:#efefef">&gt;=
</span></pre>
<br>
</div>
<ol class=3D"x_x_ x_list-paddingleft-2">
<li>
<p>IPv6/IPv4 prefix can be mixed in Prefix TIEs. Prefix TIEs do NOT care wh=
ich interface/AF they are sent over.
<br>
</p>
</li><li>
<p>how you build forwarding table and which gateways you use is implemenati=
on dependent but yes, you got the flavor. though your assumption of &quot;I=
pv6 destination with ipv4 nexthop&quot; is optimistic. every silicon does v=
4 so v6 can imply v4, implying v4 fwd'ing
 &nbsp;&nbsp;allows v6 forwarding fails on good amount of silicon. But agai=
n, those are all implementation knobs, spec only says &quot;v6 implies v4&q=
uot; which means &quot;you better fwd. v4 over v6 nexthops if you see v6 LI=
Es only&quot;<br>
</p>
</li></ol>
<div>Observe that node TIEs are _not_ carrying the supported AFs on each in=
terface since I think it would lead to undesirable attempts to deploy (some=
 links can do v6) topologies which defeat the purpose of ZTP/simplicity of =
RIFT. v6 implies v4, if someone
 &nbsp;&nbsp;wants to fwd' v6 over a fabric where certain links are v4 comp=
utations get really weird and operationally such a thing is probably a nigh=
tmare anyway. And getting v6 working is trivial, just flip on ND and you're=
 in business (at least control plane wise
 ;-)<br>
</div>
<br>
<div>The spec is noit giving implementation advice, it just specifies behav=
ior. In case of doubt looks @ Bruno';s open source. Bruno implemented the w=
hole LIE without ever talking to me and it interop'ed day one without probl=
ems.
<br>
</div>
<br>
<div>When you're ready with your implementation to interop, Bruno's code ha=
s nice framework you can plug in against open source &amp; Juniper implemen=
tation easily
<br>
</div>
<br>
<div>--- tony <br>
</div>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-size:11pt; fo=
nt-family:Calibri,sans-serif; color:#000000"><strong>From:</strong> xu.benc=
hong@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Tuesday, July 9, 2019 5:08 AM<br>
<strong>To:</strong> Antoni Przygienda; Jeffrey (Zhaohui) Zhang; EXT-zhang.=
zheng@zte.com.cn<br>
<strong>Subject:</strong> [Rift] Ipv4 and ipv6 cooperating in rift</span> &=
nbsp;</div>
<div>
<div class=3D"x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_zcontentRow">
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Hi<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
I have some questions about ipv4 and ipv6 cooperating in rift.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Ip head of the rift packet can be V4 or V6, and the prefix in TIE also supo=
rt V4 or v6.&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can it support the following situations:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
1=A1=A2A rift interface which&nbsp;send LIE with ipv4 head receiving LIE wi=
th IPv6 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
A rift interface which&nbsp;send LIE with ipv6 head receiving LIE with IPv4=
 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can they build 3-Way neighbor?</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
2=A1=A2Some interfaces in a rift instance send ipv4 head packets=A3=AC and =
others in the same instance send ipv6 head packets=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
3=A1=A2Ipv4 head TIE packet fill ipv6 prefix=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 head TIE packet fill ipv4 prefix=A3=BB(RIFT-06 5.2.2: All=
 RIFT routers MUST support IPv4 forwarding and MAY support IPv6</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;forwarding. &nbsp;A three way adjacency over IPv6 addresses im=
plies</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;support for IPv4 forwarding.)</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
4=A1=A2In rib table of the rift:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with ipv4 nexthop;&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
5=A1=A2The ip head type(v4 or v6) can be configured in rift interface or in=
stance.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
It will be better if there are clear instructions in rift protocol.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Thanks=A3=A1</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Benchong</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</div>
</body>
</html>

--_000_MWHPR05MB327920CEE377FDB606FD3D35ACF30MWHPR05MB3279namp_--


From nobody Wed Jul 10 22:36:39 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6BA601200E3 for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 22:36:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.701
X-Spam-Level: 
X-Spam-Status: No, score=-0.701 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_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, PDS_NO_HELO_DNS=1.295, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no 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 e7upSF47LWAe for <rift@ietfa.amsl.com>; Wed, 10 Jul 2019 22:36:34 -0700 (PDT)
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) (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 3DD321200D7 for <rift@ietf.org>; Wed, 10 Jul 2019 22:36:32 -0700 (PDT)
Received: by mail-ed1-x534.google.com with SMTP id k21so4469350edq.3 for <rift@ietf.org>; Wed, 10 Jul 2019 22:36:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=f4sg5bv5+VgHNRvApqmnyoJIoBsozckzt6X+rVUK37I=; b=RtfK74mFZVo9RyuM1TUSGq4JgWUWTZQSEduBblWceAFgA9OXkwJ1ZsJz2rVTK0Ru+R k28i7sxHde88A7ehtB82V2zBT+Y+MEdwT1UwPRQ5PwwOORT9IGy5MaG7YCG3UKbh3kZf GBCzpi+hINDmxHf68KfsBLq5EkM+ehqfHxJLgvIppGQvfPXSVfbX/JVp+7M2NYViEqZI lfWcmhlfqCqnYD66Ys/LT7xAr87hj767yeVkKaptWtuwhrUUq+3ZN/Jzh6OfJI479ilF ftKg7qXinNkT1PJ3QGLU0dlXFpupqjwQcEK5Ixvm5izWbpFP1sJNNJsyj4/jM7BirQyY wZ6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=f4sg5bv5+VgHNRvApqmnyoJIoBsozckzt6X+rVUK37I=; b=VJuAECRgtVfDStBJvL8dQHM2n/ZsG0ilvvGX2dSnUaE05GODWSY51/QuyAi3P4h7pf pTu4hlo+gOW3NN/6RMF2nn0E02WbRTOsLdVSmvIP8EPHO7+GBRxxe3s/mVav1ajnLl0Y 3eTdmIw+99D3pw4R1KvWSfKKuUeGmz6Sr5ZEJPMIb6liCivCGL5mj079oKU5eZN2JYRi l+nlq5SPk2qyzr4/TphfQDDFBtHCsd7iC01OdUxUr8P7H1F2IsyuBTpMUl7lHhxgZ60I aYm9H7LiWWwSfxOeAfUyXhfPuRYSNWD70h9urlBX9ImQ0N0UaJYZmal1bsUZ842Rwb6Y laeg==
X-Gm-Message-State: APjAAAXbHpHMaGhUhbdzTM9zC7kmHbBUb1iAnIhmLHm5gNz/WOFjdH/m jc5Z+jzpHMlFkKWjYzaaKe7ci+p1+o0KDTuh/aM=
X-Google-Smtp-Source: APXvYqyVxti0m27/ntFtc0bp1r/Ardhbic1SaJEpO6CuZAkkuIg3pMWvqLSHu0Eu3LSQPH/XaXKYEwvSc3Q7vBgWQD0=
X-Received: by 2002:a17:906:25c5:: with SMTP id n5mr1477560ejb.195.1562823390534;  Wed, 10 Jul 2019 22:36:30 -0700 (PDT)
MIME-Version: 1.0
References: <DM5PR05MB35483EF22F478980A8E3541CD4F00@DM5PR05MB3548.namprd05.prod.outlook.com>
In-Reply-To: <DM5PR05MB35483EF22F478980A8E3541CD4F00@DM5PR05MB3548.namprd05.prod.outlook.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Wed, 10 Jul 2019 22:35:54 -0700
Message-ID: <CA+wi2hMzH0HCJGvhtJW89XrrZffnRp9TXu34o1pVcF8gdf=m_w@mail.gmail.com>
To: "Jeffrey (Zhaohui) Zhang" <zzhang=40juniper.net@dmarc.ietf.org>
Cc: "rift@ietf.org" <rift@ietf.org>
Content-Type: multipart/mixed; boundary="0000000000000a6aad058d612dca"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/oVJRJ79K9_X8jleshqRsHbMA1Ao>
Subject: Re: [Rift] Monthly RIFT Virtual Interim Meeting - July 11th
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 05:36:37 -0000

--0000000000000a6aad058d612dca
Content-Type: multipart/alternative; boundary="0000000000000a6aab058d612dc8"

--0000000000000a6aab058d612dc8
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

my material upfront ...

On Wed, Jul 10, 2019 at 7:13 AM Jeffrey (Zhaohui) Zhang <zzhang=3D
40juniper.net@dmarc.ietf.org> wrote:

> Reminder for our virtual interim meeting tomorrow.
>
>
>
> -----Original Appointment-----
> *From:* Jeffrey (Zhaohui) Zhang
> *Sent:* Tuesday, May 21, 2019 1:47 PM
> *To:* Jeffrey (Zhaohui) Zhang; rift@ietf.org
> *Cc:* Suneesh Babu; Peter Psenak (ppsenak); Pascal Thubert (pthubert);
> Acee Lindem (acee); Keyur Patel; Dailongfei (Larry, IP Research); Mankama=
na
> Mishra (mankamis); tonysietf@gmail.com; melchior@aelmans.eu; Rafal
> Szmidt; Oliver Steudler; marco@morales.id; Phil Boulo (pboulo);
> wei.yuehua@zte.com.cn
> *Subject:* Monthly RIFT Virtual Interim Meeting
> *When:* Thursday, July 11, 2019 11:00 AM-12:00 PM (UTC-05:00) Eastern
> Time (US & Canada).
> *Where:*
>
>
>
> Reschedule this one to 7/11 as 7/4 a US holiday.
>
>
>
>
>
> Hi RIFTers,
>
>
>
> We=E2=80=99re going to start a series of monthly virtual interim meetings=
 on the
> first Thursday of each month, from 11am US Eastern Time to 12pm:
>
>
>
>    1. newest developments on RIFT main draft
>    2. discussion of other drafts like yang/applicability/sr/multicast
>
>
>
> Official IETF interim session announcement will follow.
>
>
>
> The webex password is tfir2019.
>
>
>
> Thanks.
>
> Jeffrey
>
>
> -- Do not delete or change any of the following text. --
>
>
> Join Webex Meeting
> <https://ietf.webex.com/ietf/j.php?MTID=3Dmb26e43c3067b0559b050ec9c39de7f=
95>
>
>
>
>
> Meeting number (access code): 647 561 538
> Meeting password: tfir2019
>
>
> Join by phone
> *1-650-479-3208* <%2B1-650-479-3208,,*01*647561538%23%23*01*> Call-in
> toll number (US/Canada)
>
> Can't join the meeting?
> <https://collaborationhelp.cisco.com/article/WBX000029055>
>
> If you are a host, go here
> <https://ietf.webex.com/ietf/j.php?MTID=3Dm0e51f4b41e06ce23c8331af8d21d39=
ed>
> to view host information.
>
> IMPORTANT NOTICE: Please note that this Webex service allows audio and
> other information sent during the session to be recorded, which may be
> discoverable in a legal matter. By joining this session, you automaticall=
y
> consent to such recordings. If you do not consent to being recorded,
> discuss your concerns with the host or do not join the session.
>
>
>
>
>
> Juniper Business Use Only
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>

--0000000000000a6aab058d612dc8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">my material upfront ...<br></div><br><div class=3D"gmail_q=
uote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jul 10, 2019 at 7:13 AM=
 Jeffrey (Zhaohui) Zhang &lt;zzhang=3D<a href=3D"mailto:40juniper.net@dmarc=
.ietf.org">40juniper.net@dmarc.ietf.org</a>&gt; wrote:<br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px so=
lid rgb(204,204,204);padding-left:1ex">





<div lang=3D"EN-US">
<div class=3D"gmail-m_6740106069723556115WordSection1">
<p class=3D"MsoNormal">Reminder for our virtual interim meeting tomorrow.<u=
></u><u></u></p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div>
<p class=3D"MsoNormal">-----Original Appointment-----<br>
<b>From:</b> Jeffrey (Zhaohui) Zhang <br>
<b>Sent:</b> Tuesday, May 21, 2019 1:47 PM<br>
<b>To:</b> Jeffrey (Zhaohui) Zhang; <a href=3D"mailto:rift@ietf.org" target=
=3D"_blank">rift@ietf.org</a><br>
<b>Cc:</b> Suneesh Babu; Peter Psenak (ppsenak); Pascal Thubert (pthubert);=
 Acee Lindem (acee); Keyur Patel; Dailongfei (Larry, IP Research); Mankaman=
a Mishra (mankamis); <a href=3D"mailto:tonysietf@gmail.com" target=3D"_blan=
k">tonysietf@gmail.com</a>; <a href=3D"mailto:melchior@aelmans.eu" target=
=3D"_blank">melchior@aelmans.eu</a>; Rafal Szmidt; Oliver Steudler; <a href=
=3D"mailto:marco@morales.id" target=3D"_blank">marco@morales.id</a>;
 Phil Boulo (pboulo); <a href=3D"mailto:wei.yuehua@zte.com.cn" target=3D"_b=
lank">wei.yuehua@zte.com.cn</a><br>
<b>Subject:</b> Monthly RIFT Virtual Interim Meeting<br>
<b>When:</b> Thursday, July 11, 2019 11:00 AM-12:00 PM (UTC-05:00) Eastern =
Time (US &amp; Canada).<br>
<b>Where:</b> <u></u><u></u></p>
</div>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<div style=3D"border-color:currentcolor currentcolor windowtext;border-styl=
e:none none solid;border-width:medium medium 1pt;padding:0in 0in 1pt">
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Reschedule this one to 7/11 as 7/4 a US holiday.<u></u><u></u></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
</div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Hi RIFTers,<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">We=E2=80=99re going to start a series of monthly virtual interim me=
etings on the first Thursday of each month, from 11am US Eastern Time to 12=
pm:<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<ol style=3D"margin-top:0in" start=3D"1" type=3D"1">
<li class=3D"gmail-m_6740106069723556115xmsonormal" style=3D"color:black"><=
span style=3D"font-size:12pt">newest developments on RIFT main draft
</span><u></u><u></u></li><li class=3D"gmail-m_6740106069723556115xmsonorma=
l" style=3D"color:black"><span style=3D"font-size:12pt">discussion of other=
 drafts like yang/applicability/sr/multicast
</span><u></u><u></u></li></ol>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Official IETF interim session announcement will follow.<u></u><u></=
u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">The webex password is tfir2019.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Thanks.<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">Jeffrey<u></u><u></u></span></p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Segoe UI&quot;,sans=
-serif">=C2=A0 <br>
</span><span style=3D"font-size:10pt;font-family:&quot;Segoe UI&quot;,sans-=
serif;color:rgb(160,160,160)">-<a name=3D"m_6740106069723556115_WBXBCC4A">-=
 Do not delete or change any of the following text. --</a></span><span><spa=
n style=3D"font-size:10pt;font-family:&quot;Segoe UI&quot;,sans-serif">
 =C2=A0 <br>
=C2=A0 <u></u><u></u></span></span></p>
<table class=3D"gmail-m_6740106069723556115MsoNormalTable" style=3D"width:a=
uto" width=3D"0" cellspacing=3D"4" cellpadding=3D"0" border=3D"0">
<tbody>
<tr>
<td style=3D"padding:0.75pt;width:auto">
<table class=3D"gmail-m_6740106069723556115MsoNormalTable" style=3D"backgro=
und:rgb(67,169,66) none repeat scroll 0% 0%;border:1pt solid rgb(67,169,66)=
;width:auto" width=3D"0" cellspacing=3D"0" cellpadding=3D"0" border=3D"1">
<tbody>
<tr>
<td style=3D"border:medium none;padding:7.5pt 15pt;width:auto" width=3D"240=
">
<p class=3D"MsoNormal" style=3D"text-align:center" align=3D"center"><span><=
/span><a href=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dmb26e43c3067b0559=
b050ec9c39de7f95" target=3D"_blank"><span><span style=3D"font-size:15pt;col=
or:white;text-decoration:none">Join
 Webex Meeting</span></span><span></span></a><span>
<u></u><u></u></span></p>
</td>
<td><span></span>
</td></tr>
</tbody>
</table>
<span></span></td>
<td><span></span>
</td><td style=3D"padding:0.75pt;width:auto">
<table class=3D"gmail-m_6740106069723556115MsoNormalTable" style=3D"width:a=
uto" width=3D"0" cellspacing=3D"0" cellpadding=3D"0" border=3D"0">
<tbody>
<tr>
<td style=3D"padding:0in;width:auto">
<p class=3D"MsoNormal"><span>=C2=A0<u></u><u></u></span></p>
</td>
<td><span></span>
</td></tr>
</tbody>
</table>
<span></span></td>
<td><span></span>
</td></tr>
</tbody>
</table>
<p class=3D"MsoNormal"><span><span style=3D"font-size:13.5pt;font-family:&q=
uot;Segoe UI&quot;,sans-serif">=C2=A0
<br>
</span></span><span><span style=3D"font-size:10pt;font-family:&quot;Segoe U=
I&quot;,sans-serif;color:rgb(102,102,102)">Meeting number (access code): 64=
7 561 538</span></span><span><span style=3D"font-size:13.5pt;font-family:&q=
uot;Segoe UI&quot;,sans-serif">
</span></span><span><span style=3D"font-size:10pt;font-family:&quot;Segoe U=
I&quot;,sans-serif;color:rgb(102,102,102)"><br>
Meeting password: tfir2019=C2=A0 <br>
</span></span><span><span style=3D"font-size:10pt;font-family:&quot;Segoe U=
I&quot;,sans-serif">=C2=A0
<br>
<br>
</span></span><span><span style=3D"font-size:13.5pt;font-family:&quot;Segoe=
 UI&quot;,sans-serif;color:rgb(102,102,102)">Join by phone</span></span><sp=
an><span style=3D"font-size:13.5pt;font-family:&quot;Segoe UI&quot;,sans-se=
rif">=C2=A0
<br>
</span></span><a href=3D"tel:%2B1-650-479-3208,,*01*647561538%23%23*01*" ta=
rget=3D"_blank"><span><b><span style=3D"font-size:10pt;font-family:&quot;Se=
goe UI&quot;,sans-serif;color:rgb(0,175,249);text-decoration:none">1-650-47=
9-3208</span></b></span><span></span></a><span><span style=3D"font-size:10p=
t;font-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(102,102,102)">=C2=
=A0Call-in
 toll number (US/Canada)</span></span><span><span style=3D"font-size:13.5pt=
;font-family:&quot;Segoe UI&quot;,sans-serif">=C2=A0
<br>
</span></span><span><span style=3D"font-size:10pt;font-family:&quot;Segoe U=
I&quot;,sans-serif">=C2=A0
<br>
</span></span><a href=3D"https://collaborationhelp.cisco.com/article/WBX000=
029055" target=3D"_blank"><span><span style=3D"font-size:10pt;font-family:&=
quot;Segoe UI&quot;,sans-serif;color:rgb(0,175,249)">Can&#39;t join the mee=
ting?</span></span><span></span></a><span><span style=3D"font-size:10pt;fon=
t-family:&quot;Segoe UI&quot;,sans-serif">
<br>
=C2=A0 <br>
<span style=3D"color:rgb(102,102,102)">If you are a host, </span></span></s=
pan><a href=3D"https://ietf.webex.com/ietf/j.php?MTID=3Dm0e51f4b41e06ce23c8=
331af8d21d39ed" target=3D"_blank"><span><span style=3D"font-size:10pt;font-=
family:&quot;Segoe UI&quot;,sans-serif;color:rgb(0,175,249)">go
 here</span></span><span></span></a><span><span style=3D"font-size:10pt;fon=
t-family:&quot;Segoe UI&quot;,sans-serif;color:rgb(102,102,102)"> to view h=
ost information.</span></span><span><span style=3D"font-size:10pt;font-fami=
ly:&quot;Segoe UI&quot;,sans-serif;color:rgb(0,175,249)"><br>
<br>
</span></span><span><span style=3D"font-size:7.5pt;font-family:&quot;Segoe =
UI&quot;,sans-serif;color:rgb(160,160,160)">IMPORTANT NOTICE: Please note t=
hat this Webex service allows audio and other information sent during the s=
ession to be recorded,
 which may be discoverable in a legal matter. By joining this session, you =
automatically consent to such recordings. If you do not consent to being re=
corded, discuss your concerns with the host or do not join the session.</sp=
an></span><span><span>
</span></span><u></u><u></u></p>
</div>
<p class=3D"gmail-m_6740106069723556115MsoPlainText"><u></u>=C2=A0<u></u></=
p>
<p class=3D"MsoNormal"><u></u>=C2=A0<u></u></p>
<p class=3D"gmail-m_6740106069723556115msipfooter30b3d538" style=3D"margin:=
0in 0in 0.0001pt;text-align:center" align=3D"center">
<span style=3D"font-size:7pt;color:black">Juniper Business Use Only</span><=
u></u><u></u></p>
</div>
</div>

_______________________________________________<br>
RIFT mailing list<br>
<a href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/rift" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/rift</a><br>
</blockquote></div>

--0000000000000a6aab058d612dc8--

--0000000000000a6aad058d612dca
Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation; 
 name="RIFT-IETF-7-11-19-interim.pptx"
Content-Disposition: attachment; filename="RIFT-IETF-7-11-19-interim.pptx"
Content-Transfer-Encoding: base64
Content-ID: <f_jxy8o3pd0>
X-Attachment-Id: f_jxy8o3pd0

UEsDBBQABgAIAAAAIQCi2R7xyAEAAOEKAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE
lslOwzAQhu9IvEPkK2rcsgmhpj2wnNgk4AFMMm0Njm3Z00LfnonTQkDpAm3US5Sx/f/zjeJx3O1/
5CqagPPS6IR14jaLQKcmk3qYsOen69YZizwKnQllNCRsCp71e/t73aepBR+RWvuEjRDtOec+HUEu
fGwsaJoZGJcLpNANuRXpmxgCP2y3T3lqNILGFhYerNe9hIEYK4yuPmi4JLF6yKKLcl2RKmEyL/TF
OK9VvFqol4SJeo0D5X9phLVKpgJpnk909quW1qyOmJRhjR9J6w9owYIMxcziBDPdPX0AJzOIHoTD
O5HTKm4tcuvAky6sjZc71aCawUCmkJl0nJMkrprl6kcY50LqeRGLYLyiwVvhkTZLNehsm6zivRbT
jKYZjr8QHO6c4GjnBMc7JzjZCYE2CH7eHZVg67uy4r2KqVA+OGN9E2dHMF5FMJHw3gjBl/EqAqQ/
EpTPzT9FsFmZUbwoeMSpgq1XXbFeqyNuxNSMcdYXZdDMKVl6/5epmXNzPabK/tgcY639ERr4sTyw
vt+bOSeC9TIgUoc2oiuZg78jzG9DhbplyQgcyuWb8ysjWW9cMxQXrQyymtw8XFB7nwAAAP//AwBQ
SwMEFAAGAAgAAAAhAGj4dKEDAQAA4gIAAAsACAJfcmVscy8ucmVscyCiBAIooAACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACskttKAzEQhu8F
3yHMfTfbKiLSbG9E6J3I+gBjMrsb3RxIptK+vaHgYWEtgr3MzD8f3yRZb/ZuFO+Usg1ewbKqQZDX
wVjfK3huHxa3IDKjNzgGTwoOlGHTXF6sn2hELkN5sDGLQvFZwcAc76TMeiCHuQqRfOl0ITnkcky9
jKjfsCe5qusbmX4yoJkwxdYoSFtzBaI9RPofWzpiNMgodUi0iKlMJ7ZlF9Fi6okVmKAfSzkfE1Uh
g5wXWp1XiIede/FoxxmVr171Gqn/TWj5d6HQdVbTfdA7R57nvKaJb6cYWcZEuRSP6VM3dH1OIdoz
eUPm9KNhjJ9GcvIzmw8AAAD//wMAUEsDBBQABgAIAAAAIQCCXOyH6QAAAFUCAAAgAAAAcHB0L3Ns
aWRlcy9fcmVscy9zbGlkZTEueG1sLnJlbHOskk1LAzEQhu+C/yHM3WS3gog024sIBU9af0BIZrOh
mw8yqbj/3oigG6jgocd5Z/K8zyHb3Yef2TtmcjFI6HkHDIOOxgUr4e3wdHMPjIoKRs0xoIQFCXbD
9dX2BWdV6iOaXCJWKYEkTKWkByFIT+gV8Zgw1M0Ys1eljtmKpPRRWRSbrrsTec2AoWGyvZGQ9+YW
2GFJ+B92HEen8THqk8dQzlQI52t3BapssUjgXHg0Tn3nPU/BgjivsbmkRogF6XV2pnX5jdcnPa/8
v7T6S2rRV92zWuKpNF6rvDn6MRPNZxg+AQAA//8DAFBLAwQUAAYACAAAACEAp5NNze4AAABTAwAA
IAAAAHBwdC9zbGlkZXMvX3JlbHMvc2xpZGUyLnhtbC5yZWxzvJPPSgMxEIfvgu8Q5m6y3bYi0mwv
IhQ8SX2AIZnNBjd/SFJx396ACF2oxYPsMZOZ7/cxMLv9pxvZB6Vsg5ew4g0w8ipo642Et+Pz3QOw
XNBrHIMnCRNl2He3N7tXGrHUoTzYmFml+CxhKCU+CpHVQA4zD5F8/elDcljqMxkRUb2jIdE2zb1I
5wzoZkx20BLSQa+BHadIf2GHvreKnoI6OfLlQoSwrmZXICZDRQLnwpG2+F1f8+gNiMsa7WIa7TWN
1X9q5NFqesEpnMpM5qw+a2p5jfjNbLvYgrbXFrRZTGPzoyFmp9B9AQAA//8DAFBLAwQUAAYACAAA
ACEA01GhttcAAAC/AQAAIAAAAHBwdC9zbGlkZXMvX3JlbHMvc2xpZGU0LnhtbC5yZWxzrJA9a8Mw
EIb3Qv+DuL2S7aGUEjlLKQQylfQHHNJZFrE+0Cmh/vdV6RJDhg4d7+t5H263/wqLuFJhn6KGXnYg
KJpkfXQaPk/vTy8guGK0uKRIGlZi2I+PD7sPWrC2I559ZtEokTXMteZXpdjMFJBlyhTbZEolYG1l
cSqjOaMjNXTdsyq3DBg3THGwGsrBDiBOa6a/sNM0eUNvyVwCxXonQvnQshsQi6OqQUoVyHr87fed
zNGBuu/R/6cHL97SEdd0qRubm/5maZAt4sdMbd4+fgMAAP//AwBQSwMEFAAGAAgAAAAhAMsIczc1
AQAAfQYAAB8ACAFwcHQvX3JlbHMvcHJlc2VudGF0aW9uLnhtbC5yZWxzIKIEASigAAEAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAvJXLTsMwEEX3SPyD5T11kj54qE43CKkLJAThA0wySSwS27JN
IX+PVaB1qspiYWU51+M7R1d+rDdffYd2oA2XguJ0lmAEopQVFw3Fr8XD1Q1GxjJRsU4KoHgAgzf5
5cX6GTpm3SbTcmWQcxGG4tZadUeIKVvomZlJBcKt1FL3zLpSN0Sx8p01QLIkWRHte+B85Im2FcV6
W7n5xaDgP96yrnkJ97L86EHYMyOI0mCetHTDUMF0A5bigzRzbpich5jHhDAdr+AIsC9/1SwEcR0T
QkgL5pEZC/qI4omjjjSElU2UTRAijQ5xmo0njjqCWKuJslkGs4kajmVvHbzYoQPvEnliiGQ5URyL
YBxJ1DjcXo9iX/6IwYOxmCiJeQjiNibEjsPnydN6kP4gyOjTyL8BAAD//wMAUEsDBBQABgAIAAAA
IQBdm9Vy1wAAAL8BAAAgAAAAcHB0L3NsaWRlcy9fcmVscy9zbGlkZTUueG1sLnJlbHOskD1rwzAQ
hvdC/4O4vZLtoZQSOUspBDKV9Acc0lkWsT7QKaH+91XpEkOGDh3v63kfbrf/Cou4UmGfooZediAo
mmR9dBo+T+9PLyC4YrS4pEgaVmLYj48Puw9asLYjnn1m0SiRNcy15lel2MwUkGXKFNtkSiVgbWVx
KqM5oyM1dN2zKrcMGDdMcbAaysEOIE5rpr+w0zR5Q2/JXALFeidC+dCyGxCLo6pBShXIevzt973M
0YG679H/pwcv3tIR13SpG5ub/mZpkC3ix0xt3j5+AwAA//8DAFBLAwQUAAYACAAAACEAhx+3du8A
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
fPlHdPmn9tfVWy29uuHtjRYtl4vL5cXVJSeUwJWVwYkUdxoMQ35LKe3A//tYEBZ+PhY6EQxXkJqF
Nf7dZgxO4NmKe1wq/TUgCUwX8pvAiGfbjm8KrI4Y8dwA+W5/qRwLmZ7/QyEiSw8iPdzk0UoEOehd
d630rje6tl9/Cmx4efsF2AQh//s8bG4u0qV2ATecldU3wyRQMLmFs7B2uYUgfwgWYetvBUtLCmB9
FC/PCCpmYLuhIyPwUcS4vgn1zf8FmOfhZEUKWd+liRuFcWJCTekjwwwQ5EwvCA0f6gLPioPUn9sf
9cGQ4KYaTPljUfZsrbpzZ8Tkiv/Wd7J2/w7SjpxPo1806tfAY6VZHIeenUBNHEM9baB56BtR6rlG
6joIJXEQJc5Clmbo0+q+eWrJcliaHVQtoesi07at4HSJpn42zQl7kzVXO2FrOAvuUSKmGl4OSdKR
hKsO+/4DAAD//wMAUEsDBBQABgAIAAAAIQDRYGWr3AAAAFgCAAAsAAAAcHB0L3NsaWRlTWFzdGVy
cy9fcmVscy9zbGlkZU1hc3RlcjEueG1sLnJlbHPEksFqwzAMhu+DvYPRfXaSwSijTi9jUNhpdA8g
bCUxTWxjq6V5+xkKo4Eyeij0YrDk/9OH8HpzmkZxpJRd8BpqWYEgb4J1vtfws/t8WYHIjN7iGDxp
mCnDpn1+Wn/TiFxCeXAxi0LxWcPAHN+VymagCbMMkXzpdCFNyOWaehXR7LEn1VTVm0qXDGgXTLG1
GtLWvoLYzZFuYYeuc4Y+gjlM5PnKCMUlSwWIqSfWIOW5cj5rWXigrms099TIo7P0hXM48ELmor54
1PxnVj/S7G9navEf2l8AAAD//wMAUEsDBBQABgAIAAAAIQBKr3U50gAAAL8BAAAqAAAAcHB0L25v
dGVzU2xpZGVzL19yZWxzL25vdGVzU2xpZGUxLnhtbC5yZWxzrJCxagMxDIb3Qt/BaI99lyGUEl+W
UsiQpaQPYGzdncmdbCwlJG9fQ0vJQYYOHfVL+vSh7e46T+qChWMiC61uQCH5FCINFj6P76sXUCyO
gpsSoYUbMuy656ftB05O6hKPMbOqFGILo0h+NYb9iLNjnTJS7fSpzE5qWQaTnT+5Ac26aTam3DOg
WzDVPlgo+7AGdbxl/As79X30+Jb8eUaSBycMTzFgBboyoFjQ+jv5abS6AsE89mj/04OSIB8cC5aF
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
WJ1p/cMAAP3DAAAVAAAAcHB0L21lZGlhL2ltYWdlMTEucG5niVBORw0KGgoAAAANSUhEUgAAB4AA
AAQ4CAMAAADfDTFxAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURf//////////
/////////////wAAAICAgMDAwP8AAAD/AP//AAAA//8A/wD//////wAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZ
MwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMA
ZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZ
mTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYA
zGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ
/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kz
AJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnM
M5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wz
ZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszM
mczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8z
zP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M
////AP//M///Zv//mf//zP///9UWpFQAAAAodFJOU4Tk9v+mwAD///////////8AAAAAAAAAAAAA
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
8k8g1/qid+2it3xW6oBLKf8KLzvgiUv5bNQBl1JKKRvoM+BSSillA10Bl1JKKRuoAy6llFI20FvQ
pZRSyga6Ai6llFI2UAdcSimlbKC3oEsppZQNdAVcSimlbKAOuJRSStlAHXAppZSygT4DLqWUUjbQ
FXAppZSyga6ASymllA10BVxKKaVsoA64lFJK2UAdcCmllLKBPgMupZRSNtAVcCmllLKBroBLKaWU
DXQFXEoppWygK+BSSillA10Bl1JKKRvoCriUUkrZQFfApZRSygbqgEsppZQN9BZ0KaWUsoGugEsp
pZQN1AGXUkopG+gt6FJKKWUDXQGXUkopG6gDLqWUUjbQW9CllFLKBroCLqWUUjZQB1xKKaVsoLeg
SymllA10BVxKKaVsoCvgUkopZQNdAZdSSikbqAMupZRSNtBb0KWUUsoGugIupZRSNlAHXEoppWyg
t6BLKaWUDXQFXEoppWygK+BSSillA10Bl1JKKRuoAy6llFI2UAdcSimlbKDPgEsppZQNdAVcSiml
bKAr4FJKKWUDXQGXUkopG+gKuJRSStlAV8CllFLKBroCLqWUUjbQFXAppZSygTrgUkopZQN1wKWU
UsoG+gy4lFJK2UBXwKWUUsoG6oBLKaWUDdQBl1JKKRvoM+BSSillA10Bl1JKKRuoAy6llFI2UAdc
SimlbKAOuJRSStlAHXAppZSygX4KupRSStlAV8CllFLKBuqASymllA3UAZdSSikbqAMupZRSNlAH
XEoppWygn4IupZRSNtAVcCmllLKBOuBSSillA3XApZRSygbqgEsppZQN1AGXUkopG6gDLqWUUjZQ
B1xKKaVsoA64lFJK2UAdcCmllLKB/hJWKaWUsoGugEsppZQN1AGXUkopG6gDLqWUUjbQZ8CllFLK
BroCLqWUUjZQB1xKKaVsoLegSymllA10BVxKKaVsoA64lFJK2UBvQZdSSikb6Aq4lFJK2UAdcCml
lLKBOuBSSillA30GXEoppWygK+BSSillA3XApZRSygZ6C7qUUkrZQFfApZRSygbqgEsppZQN9BZ0
KaWUsoGugEsppZQNdAVcSimlbKAr4FJKKWUDXQGXUkopG+gKuJRSStlAHXAppZSygTrgUkopZQN9
BlxKKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDdQBl1JKKRvoLehSSill
A10Bl1JKKRuoAy6llFI20FvQpZRSyga6Ai6llFI2UAdcSimlbKAOuJRSStlAnwGXUkopG+gKuJRS
StlAHXAppZSygTrgUkopZQN9BlxKKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBL
KaWUDdQBl1JKKRuoAy6llFI20GfApZRSyga6Ai6llFI2UAdcSimlbKAOuJRSStlAnwGXUkopG+gK
uJRSStlAHXAppZSygTrgUkopZQN9BlxKKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKB
roBLKaWUDdQBl1JKKRuoAy6llFI2UAdcSimlbKAOuJRSStlAPwVdSimlbKAr4FJKKWUDdcCllFLK
BuqASymllA3UAZdSSikbqAMupZRSNlAHXEoppWygX0MqpZRSNtAVcCmllLKBOuBSSillA70FXUop
pWygK+BSSillA3XApZRSygbqgEsppZQN9BlwKaWUsoGugEsppZQN1AGXUkopG6gDLqWUUjbQZ8Cl
lFLKBroCLqWUUjZQB1xKKaVsoA64lFJK2UCfAZdSSikb6Aq4lFJK2UAdcCmllLKBOuBSSillA30G
XEoppWygK+BSSillA10Bl1JKKRvoCriUUkrZQFfApZRSyga6Ai6llFI2UAdcSimlbKC3oEsppZQN
dAVcSimlbKAOuJRSStlAb0GXUkopG+gKuJRSStlAHXAppZSygd6CLqWUUjbQFXAppZSygTrgUkop
ZQO9BV1KKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDdQBl1JKKRuoAy6l
lFI20GfApZRSyga6Ai6llFI2UAdcSimlbKC3oEsppZQNdAVcSimlbKAOuJRSStlAb0GXUkopG+gK
uJRSStlAHXAppZSygTrgUkopZQN9BlxKKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKB
roBLKaWUDdQBl1JKKRuoAy6llFI20GfApZRSyga6Ai6llFI2UAdcSimlbKAOuJRSStlAnwGXUkop
G+gKuJRSStlAHXAppZSygTrgUkopZQN9BlxKKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCml
lLKBroBLKaWUDdQBl1JKKRuoAy6llFI20GfApZRSyga6Ai6llFI2UAdcSimlbKAOuJRSStlAnwGX
UkopG+gKuJRSStlAHXAppZSygTrgUkopZQN9BlxKKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZ
cCmllLKBroBLKaWUDdQBl1JKKRvoLehSSillA10Bl1JKKRuoAy6llFI2UAdcSimlbKAOuJRSStlA
P4RVSimlbKAr4FJKKWUDdcCllFLKBuqASymllA30GXAppZSyga6ASymllA3UAZdSSikbqAMupZRS
NtBnwKWUUsoGugIupZRSNlAHXEoppWygDriUUkrZQJ8Bl1JKKRvoCriUUkrZQB1wKaWUsoE64FJK
KWUDfQZcSimlbKAr4FJKKWUDdcCllFLKBuqASymllA30GXAppZSyga6ASymllA3UAZdSSikbqAMu
pZRSNtBnwKWUUsoGugIupZRSNlAHXEoppWygDriUUkrZQJ8Bl1JKKRvoCriUUkrZQFfApZRSyga6
Ai6llFI2UAdcSimlbKAOuJRSStlAnwGXUkopG+gKuJRSStlAHXAppZSygd6CLqWUUjbQFXAppZSy
gTrgUkopZQO9BV1KKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDXQFXEop
pWygK+BSSillA3XApZRSygZ6C7qUUkrZQFfApZRSygbqgEsppZQN9BZ0KaWUsoGugEsppZQNdAVc
SimlbKAr4FJKKWUDXQGXUkopG+gKuJRSStlAHXAppZSygd6CLqWUUjbQFXAppZSygTrgUkopZQO9
BV1KKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDdQBl1JKKRuoAy6llFI2
0GfApZRSyga6Ai6llFI2UAdcSimlbKAOuJRSStlAnwGXUkopG+gKuJRSStlAHXAppZSygTrgUkop
ZQN9BlxKKaVsoCvgUkopZQNdAZdSSikb6Aq4lFJK2UBXwKWUUsoGugIupZRSNlAHXEoppWygDriU
UkrZQJ8Bl1JKKRvoCriUUkrZQB1wKaWUsoE64FJKKWUDfQZcSimlbKAr4FJKKWUDdcCllFLKBuqA
SymllA30GXAppZSyga6ASymllA3UAZdSSikb6C3oUkopZQNdAZdSSikbqAMupZRSNtBb0KWUUsoG
ugIupZRSNlAHXEoppWygDriUUkrZQJ8Bl1JKKRvoCriUUkrZQB1wKaWUsoE64FJKKWUDfQZcSiml
bKAr4FJKKWUDdcCllFLKBuqASymllA30GXAppZSyga6ASymllA10BVxKKaVsoCvgUkopZQN1wKWU
UsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDdQBl1JKKRuoAy6llFI20GfApZRSyga6Ai6llFI2UAdc
SimlbKC3oEsppZQNdAVcSimlbKAOuJRSStlAb0GXUkopG+gKuJRSStlAHXAppZSygTrgUkopZQN9
BlxKKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDdQBl1JKKRuoAy6llFI2
0GfApZRSyga6Ai6llFI2UAdcSimlbKC3oEsppZQNdAVcSimlbKAOuJRSStlAb0GXUkopG+gKuJRS
StlAV8CllFLKBroCLqWUUjZQB1xKKaVsoLegSymllA10BVxKKaVsoA64lFJK2UBvQZdSSikb6Aq4
lFJK2UBXwKWUUsoGugIupZRSNtAVcCmllLKBroBLKaWUDdQBl1JKKRuoAy6llFI20GfApZRSyga6
Ai6llFI20BVwKaWUsoGugEsppZQNdAVcSimlbKAr4FJKKWUDXQGXUkopG+gKuJRSStlAHXAppZSy
gd6CLqWUUjbQFXAppZSygTrgUkopZQO9BV1KKaVsoCvgUkopZQNdAZdSSikb6Aq4lFJK2UAdcCml
lLKB3oIupZRSNtAVcCmllLKBOuBSSillA70FXUoppWygK+BSSillA3XApZRSygbqgEsppZQN9Blw
KaWUsoGugEsppZQN1AGXUkopG6gDLqWUUjbQZ8CllFLKBroCLqWUUjZQB1xKKaVsoLegSymllA10
BVxKKaVsoA64lFJK2UBvQZdSSikb6Aq4lFJK2UAdcCmllLKB3oIupZRSNtAVcCmllLKBOuBSSill
A70FXUoppWygK+BSSillA3XApZRSygbqgEsppZQN9BlwKaWUsoGugEsppZQN1AGXUkopG+gt6FJK
KWUDXQGXUkopG6gDLqWUUjbQW9CllFLKBroCLqWUUjZQB1xKKaVsoA64lFJK2UCfAZdSSikb6Aq4
lFJK2UAdcCmllLKBOuBSSillA30GXEoppWygK+BSSillA3XApZRSygbqgEsppZQN9BlwKaWUsoGu
gEsppZQN1AGXUkopG+gt6FJKKWUDXQGXUkopG6gDLqWUUjZQB1xKKaVsoA64lFJK2UA/hFVKKaVs
oCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDdQBl1JKKRuoAy6llFI20GfApZRS
yga6Ai6llFI2UAdcSimlbKAOuJRSStlAnwGXUkopG+gKuJRSStlAHXAppZSygTrgUkopZQN9BlxK
KaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDdQBl1JKKRuoAy6llFI20GfA
pZRSyga6Ai6llFI2UAdcSimlbKAOuJRSStlAnwGXUkopG+gKuJRSStlAHXAppZSygTrgUkopZQN9
BlxKKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDdQBl1JKKRuoAy6llFI2
0GfApZRSyga6Ai6llFI2UAdcSimlbKAOuJRSStlAnwGXUkopG+gKuJRSStlAHXAppZSygTrgUkop
ZQN9BlxKKaVsoCvgUkopZQN1wKWUUsoG6oBLKaWUDfQZcCmllLKBroBLKaWUDdQBl1JKKRuoAy6l
lFI20GfApZRSyga6Ai6llFI2UAdcSimlbKC3oEsppZQNdAVcSimlbKAOuJRSStlAb0GXUkopG+gK
uJRSStlAHXAppZSygd6CLqWUUjbQFXAppZSygTrgUkopZQN1wKWUUsoG6oBLKaWUDfRDWKWUUsoG
ugIupZRSNlAHXEoppWygDriUUkrZQJ8Bl1JKKRvoCriUUkrZQB1wKaWUsoE64FJKKWUDfQZcSiml
bKAr4FJKKWUDdcCllFLKBuqASymllA30GXAppZSyga6ASymllA3UAZdSSikbqAMupZRSNlAHXEop
pWygDriUUkrZQD8FXUoppWygK+BSSillA3XApZRSygbqgEsppZQN1AGXUkopG6gDLqWUUjbQT0GX
UkopG+gKuJRSStlAHXAppZSygTrgUkopZQN1wKWUUsoG6oBLKaWUDdQBl1JKKRuoAy6llFI2UAdc
SimlbKAOuJRSSvl/e3VMAAAAwzDoqH/Pc7E8YIKAgAEgIGAACAgYAAICBoCAgAEgIGAACAgYAAIC
BoCAgAEgIGAACAgYAAICBoCAgAEgIGAACAgYAAICBoCAgAEgIGAACAgYAAICBoCAgAEgIGAACAgY
AAICBoCAgAEgIGAACAgYAAICBoCAgAEgIGAACAgYAAICBoCAgAEgIGAACAgYAAICBoCAgAEgIGAA
CAgYAAICBoCAgAEgIGAACAgYAAICBoCAgAHg33ZDxlEO6ZZ7MAAAAABJRU5ErkJgglBLAwQUAAYA
CAAAACEAtM9YGbkAAAAkAQAALAAAAHBwdC9ub3Rlc01hc3RlcnMvX3JlbHMvbm90ZXNNYXN0ZXIx
LnhtbC5yZWxzjM/BCsIwDAbgu+A7lNxttx1EZO0uIuwq8wFKl3XFrS1tFff2FnZx4MFLIAn/F1I3
73kiLwzROMuhpAUQtMr1xmoO9+56OAGJSdpeTs4ihwUjNGK/q284yZRDcTQ+kqzYyGFMyZ8Zi2rE
WUbqPNq8GVyYZcpt0MxL9ZAaWVUURxa+DRAbk7Q9h9D2JZBu8fiP7YbBKLw49ZzRph8nWMpZzKAM
GhMHStfJWiuaPWCiZpvfxAcAAP//AwBQSwMECgAAAAAAAAAhAPrKS0IowgAAKMIAABUAAABwcHQv
bWVkaWEvaW1hZ2UxMC5wbmeJUE5HDQoaCgAAAA1JSERSAAAHgAAABDgIAwAAAN8NMXEAAAABc1JH
QgCuzhzpAAAABGdBTUEAALGPC/xhBQAAAwBQTFRF////////////////////AAAAAICAgICAwMDA
/wAAAP8A//8AAAD//wD/AP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAABmAACZAADMAAD/ADMA
ADMzADNmADOZADPMADP/AGYAAGYzAGZmAGaZAGbMAGb/AJkAAJkzAJlmAJmZAJnMAJn/AMwAAMwz
AMxmAMyZAMzMAMz/AP8AAP8zAP9mAP+ZAP/MAP//MwAAMwAzMwBmMwCZMwDMMwD/MzMAMzMzMzNm
MzOZMzPMMzP/M2YAM2YzM2ZmM2aZM2bMM2b/M5kAM5kzM5lmM5mZM5nMM5n/M8wAM8wzM8xmM8yZ
M8zMM8z/M/8AM/8zM/9mM/+ZM//MM///ZgAAZgAzZgBmZgCZZgDMZgD/ZjMAZjMzZjNmZjOZZjPM
ZjP/ZmYAZmYzZmZmZmaZZmbMZmb/ZpkAZpkzZplmZpmZZpnMZpn/ZswAZswzZsxmZsyZZszMZsz/
Zv8AZv8zZv9mZv+ZZv/MZv//mQAAmQAzmQBmmQCZmQDMmQD/mTMAmTMzmTNmmTOZmTPMmTP/mWYA
mWYzmWZmmWaZmWbMmWb/mZkAmZkzmZlmmZmZmZnMmZn/mcwAmcwzmcxmmcyZmczMmcz/mf8Amf8z
mf9mmf+Zmf/Mmf//zAAAzAAzzABmzACZzADMzAD/zDMAzDMzzDNmzDOZzDPMzDP/zGYAzGYzzGZm
zGaZzGbMzGb/zJkAzJkzzJlmzJmZzJnMzJn/zMwAzMwzzMxmzMyZzMzMzMz/zP8AzP8zzP9mzP+Z
zP/MzP///wAA/wAz/wBm/wCZ/wDM/wD//zMA/zMz/zNm/zOZ/zPM/zP//2YA/2Yz/2Zm/2aZ/2bM
/2b//5kA/5kz/5lm/5mZ/5nM/5n//8wA/8wz/8xm/8yZ/8zM/8z///8A//8z//9m//+Z///M////
FnBIPgAAACh0Uk5Tguz/yKAA/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkSOaAA
AAAJcEhZcwAADsMAAA7DAcdvqGQAAL59SURBVHhe7Z2LYqowEAX1Sv//l++esxsIioqvVmWmCkkI
qIiZbnjtDlcYagyCtfEd7Ot5SpQuTwjOTgAAuJ1h9281+xpvmv2hEgAAAI9wRcD7oRJSz4B8/rES
AADgGeyvRcC9bg6TjTfFntgfAACezFUBz8FEAAAAz+BGAQMAAMAzQMAAAAB/AAIGAAD4AxAwAADA
H7BawBs7/IqjzQAA4KWsF/C3Kukw/2D5OffDRs+4AgCAX+IJXdAfbeb98duvfzTa/xucAgwAAC/h
qoA3LqA9F74CAIBXcFnAYd8PCAFf+g4JgQEA4BVciYCxDwAAwCu4IuCjI5QAAADgKVyLgC8IGDcD
AADcy9WDsPDsxGHHygAAgOdwTcAYp2cYWB8AAPAU1ggY6YywKgAA4DlcFPBhZhzkAwAA8CwuCpgO
VwAAgNdw/SCshOtRAAAAPJG1Au5OCEbFAAAAj7Io4MuK/VMBf6L96T0AAIATbhfw39oEmQEAwFew
tgsaAAAAnsjqg7BqDHdA2A4AAMcsCHi/fAfcTiL45Da4pQUAAByzKODzvshY7oU++cpgkQgYAACO
ORJw+vW8L14dyw0/Q6XO8u4225/+f4KAAQDgmMV9wOd90U1ZTj7IcH2X9CfabLlTHwAANszag7BO
+TMPDm+qs/Mr5MxedQAA2DAl4JCHHlP36Z/p9TorouQ/4Y1XGQAAvB0p4CH3vP5e7+5DL7T7uICS
ncAAAHCEBbz/+ZkMcdUVZZOIlu/XykNGqn8XfplH3vEj8wIAwFdiAQ8/08HHocaF43iPuXSq0ssZ
firxq+yDSgIAADyKBLwf9lNQGZK5Gtsedj8/P7s/OxjqTyLgffzP0a2W21zMlTgAAOAICfgQJtUz
SQNXZoF9xMvFn3QF/xkKgcf1cqOAOQwaAADm5D7geppwxSW77Eu+5jVe+bOu3ssvHPo93BnK/tkn
AgCAd8Vd0JNWnLjUtzzzb3/s1hPZ/9VhzmOguijMWE3vLGB3kaujPN5kUKUAAPCmSMDD2Fx7vL8k
4BJvQ/Hz8zm8RuxXGf8TWfZXqG2YJryX4wbtlu8ZBjwMAPDOOAJuzXQmKrvYdh+qeR+p8ifTi24F
z/LMTQK+2FH/u3S75Y/Z7T7vrGkAgE3gfcDF3gdVNf8u+uWkpX+RhfY3GfhZxzhdiRj3B0eVLfei
j34zF/Sb7IbdEAExR4IBALwTMwG7hbZXzsnlpK1/1YHQt/RCP82EV5waEXAwKvhpL/sg9U2sIDx8
505sAAB4Np2ASywaVipGR+31SRf0y6KqP7ni89GnnaODoDsBv8sO1voi1jOMPe0AAPB3lIBn9+tp
/b8eHrXVYwhcB/28rltz9wfXu7ooJgs4nmMEHOOLM/wKxwdfreO2fewAAPB8moD7Bnm40P17HAK/
riHfn3Rv/7E0IuStELhlPXTmz6iv4R52BMIAAH9Ivw+42O8uXOvx6DzgV/YTH3ZzQfzxQUQhXB2F
1QRcVwv7YwHfF/82drsdO4UBAP6I/ZHlgtDvhUa52u7idU4Ms83vY/+8u9rfrBzPYAFnCOzC4uaF
PZOTXfL3EP9v/emHAADYJingWQMswZxvkWdt/isb7uNlPy9Uuzlq9d0pMgL2qUhV/OdcO//oMn30
7FD4bT4XAMAWmLqgW/ObZwOfZz9ddOlTW+xbFSr3JjoK6z0M3H0Nt7Lbadb27Pm7O1wBAGyOJuAx
/Nnvpg7JpZgoWmjfjfDngzsub431LF7NlA5+BwHfF/zGF+fvrsR77F+h/cKDPywAALySk4Ow9kMJ
Rq45bYZd9iYSuht5tJLi+kexgJ3QWvnzz3712ldXcRDcNJwR8REcnQUA8FpGAc+NpK7IGy/I/FGE
RVvKO3ivEP92NAF3s97BE9boA33Pheb3Mxe0pF/DVaQBAF7IwmlI6mPeDf/+Dbs88uhvNfyiVz+0
vZ2x/BWxngzssQS8WH3V+3xwXe4PD8u3MQo4nmcN/KNLSD/2lgEA4AwLpyGFfxX77nc/FvAfHx17
xneP0sWxa/7FaP+HXFgfa97mvR8m3u3T1Nsj++ZoiSrmwCwAgFdQAu690ILDYX6W733qeJwXhWA3
CVj+da0YnuuBXqHxlZXmRNibInwak3ObeWcGVkCcj8yyPxgA4BXMuqDdzOqCF04Mumy/Et/J5JSw
4jXBxIqIKrKwDsHqa6eY13JLXfF0+Zqpz3mXnh3zhQ7Lyko6QsuZL94SAAD+hFMBa+zDrw67w4v6
f2/k1e9BXr3yGnJ0cbRKbjsm+pa6r5GvacKVW0+psmFo3d6u9cWH5AEA/AWnpyFNTtHwHVrd178H
63VMLyP3HvScxYLH+Qvc9DHyXOtXIqsqAPYLLb3a4P3OOcVxMEEwAMATORGwHFPJzaD4dvzQS8Gw
iqI81o2Eq+ouVfYV1yN5uX2l04xrJ05eU/Yd9IHt4d3QXaEFAAAephdwta820Oq47hbONOBLyuu5
Nv0xtPBZBByJ4xd0Xr4NHykOzrfk7NMPUHr8KhvXkHsz/lWmhh4dU0Hv3pFywNFYAABP4yQCjiK1
si+R3pllXnupg69O/fw3NFvi9IF7G/fIt46AHQJHjVhRsnHGw0tz3MHru57tXD3GTI2WXnmI+Dck
7COxd8NANzQAwNNYEHBIQHaR9RZF1DFOf5J+5owLdeLae3mQ2dIXDaxCOzfiQIs3nt4D7NoS8cM8
5faC1wjRKuBNC0/eXQ6CFfbqncWn9of02wQAgMdZFPBPtLnHt8NfZDwk+CUN86S0Z8jthPPLVKRb
yY4oC+k2AeuGBYFWgPukNXiQX9Fv+VfYwaOBlVziNOrl/sEAAE9gScD7nS5CuS7eWdkU39ViTxZ8
XG4nDr/odBm1khPp2/0/HXflgNAGjgmKhhULO5tFd7Av4b0eW7fUW9pVtpInRAw8/1Dxj8ITvhAA
gI2zJOBoYR303BPpzFrqKb24oOWlL5Wur3mWMVhPxve55EvVPS2WZT1FF0iuO1V47oqAFRenhO9g
vyy/FyD55sPC1aBlzr4HObjeqMDAAACPsyxgX/cppq1qZeenLXWHT9+nosX5xvb+zkWmJUe65MLh
3g50400cvZbKXKw+6CZgLdW99T44yxI+mu2Ypcm/p98gvdt0q4TsawFn0QLqE+k4LG01AABwC4sC
llhaosZnKSuNhIQqdZ3ZwqfMbHnJ4efqG7lCHS6lx4yFs54V56racU0V6lkCdpWKe52SgEXVX8/v
7PztKOV6JO22h7Jn8KFYAADwNBYEfOSda0g+fQflLdfxOPNSnSQrtX9QAKMlu0Unp76UaMOl42s3
0rgx2Ndh0CqzdV1RTrZ/22wnL5Wclp633msYbSvheqACa9kTs9YR59b/8ocEAIBrnImAb2xY7aaR
29rkUViLxERPX7LZ2texUUuY46DhLuPjAhk4S7spWaaZtbB4umwm4EiHnJUT3bwNL6HSxa+Gv6VX
K3eYa1jFy+5N/I/KydcQ/4xUCgAAbuI5Ag76pvmmeaXH87O0xbrSSKbPzTPHwWqzpNBBVFPORzz3
Esmu6vaeutfIMs2ZC1Q9qzgdpHTQCXgBLWE+/eXXvVrE0k39NgmbmrxIng/sN93hFQIAADez1AV9
X4vaSezmBVwIo/xu9JxViYKVLyJXzvx7GMyYD6/OHOL30nw/WxeR0bI0gyNg7xEO6t2XgaOGs4vE
pPnki8p7IZN3Rw279BJjL/Rxt/2FDwwAAGd4fB/wg9hHs5Nc5mi6r0U5E9fq9+g9s71/98PuWMDd
1CAFGgON81GozAKOBXquiJxVoeZXkadMcxxzPOnXj74yYdvRwBJvatfDywZul+TY74bm4Pi8XqWZ
AwCA1UjA54XxC2T374m0lB/LLLg68Sc5rn4WdRBLmZWNAt3WpxfwKNCi2dSZGE5vLVIp4DStZOvS
ICe7bL60S/zqyUc9et0ScO4KVr7ezOX3VJ9N/eaZCvnGuo1/JNZ+aAAASJ7XBZ3cOW85bMLZHNSU
2aHW12lzHXaKVMdZFa1ZwZOSZdVKiWZTL0FSneZVVGxStEEWRyYTKpov7QJ/sPd3suvoX91iwQW9
gM9buK7I0d2FUSsjNiNu0wAAcBt/2wWdLyXlNc02KttPyZsirWSMeQ+hDGmxsmGKVHBMD3Nm2VzA
JdMctjrCOSPRDvGX8bDQ5KigCesE/HtXnlwiDGsFx0hkWeuMvkLb5T0OfBTajf8fAQBsnrmAWxt6
Z1t6+2w5Rz9fpU8n2IxVPCtfJKrYqxEBhymnQ5NDwOqBjqemhTBjkfPFVTTrtJ2bKaebcO1ZHUwd
RM7u8dQsmb/vRf5m729izVq8cq4Gkq9S6wz8M7k2185++DlU1z0AAKxkvg+4pW5rS8fap4lrXFTp
0TRFwNnKh+fCgi68hFR4CNf2As7wtwS83w9H9xkIMoLNwn5ipKX0KEnPOgKOp3KeQ+rVhPG1LrBO
dC9AovXYiZRvjlzm8QoyCA7iE2sUq5g+aACAmygBr3DGBUZNtcSx1J7Bvm/hc/lXXkXCPETA6y7S
RD3QZWB7ctidCLh8mnQTFVJ7kk3cAuBYTBQaTbWUMwI+WmzPX4a/6VlHu8cCLs5JuJV7PF4b+lDx
sFb0hY8MAABHnO4DvkOeGQWJG2e+Xnuq0XuxODd7exd79TbLj5kNDirJCNgG1p7Lo6VI25XsUeVc
lCqUaWNkAztZ8W9bGUsLMX928HNh+5Z+M+Fncf7NxQw5trvHfugwb6binxmPAQBgDaOAx8YzYrlK
vZzu7KAz3PVe5MJM7Ha2rDNG5q3DsKTg0MfpCyy+K5s3NBujUGwKWNLt4uB4WsFWujqqTxct/jb8
DexdDUTJ14NztGlZM+dXqj7Qv3aCWH7g5U8NAABH9BFwazpjfJf4kuU5lxfYFZ57xTveiGXolNXQ
RbQKiVO/DoEX7Ks3svRWoszlGsuyjoBrrD7ukLFqKOuaRc3d8df+tUA1Ti6rtxF1Ur6ab5xlPCp9
DPr9ea/+VwUAAMGSgIMldZhz5bcxLWVK2Yanix9Lzr6lYxSYhhCd1Ni3600Odm9QAo7JF16xQ9VS
5JKs5myhrw/x0rFcEq99bAHbyH75OX9z6efE3pR006Iae2SvatoJVZojV1Ptse600zfXjT54DFwC
AACXqYOwVrO27u31FlR4F/KeUUbJEGRbeIW+ObBBT6PgxfdhsXhCLN2zOuyVb5Xd+UZIYSELWP51
7kTAf6jf0ZpWaOT0f4j1a7HmtBO6uWajVh4rMj9ZrAWNUsSLqxAAAGYcH4R1remcjre6zKU2OELE
Sr0AWVDOTRX820uRkqZydRnKeI4Glp01pXtH8zdXuRhleCfHzgSsBVnAWqAWWW/AL6t3MS7vb6+9
UVi6GkumVrCyTajnyZmqfs6UVP9C7Tn3aq91DwAAFzgW8DWmM3oWWdXwqq/2ZS20Y97pjBgFpmnN
yOhUGf9lH7RkmRP6NzQ/BquPYZXUHOXZJuB4Od2cwEZXmacpEws1Nfd1yf0CYU4JVGPl/KjUMllb
CVlXgySniun0MP+Hoty0zgAA4AwnEfCVtvPa9JV0i3lqYy23Hw67Oj4oFl1mDVXGMO0r9waSptBk
TW/vYx7jK46tZNTSrQet3PTsv07AXmZkLeUScBnY8/7lzt+JdGnKtBhVfI42KcapXv0HUxeQ9mAS
cHZDTysMAADOkgIOS/Qx6d0t6E0zvqCyjCf9lRNipvFzaYr7nqXffEbNpscIjksjUS0Toik0K8VY
4a+Uq+tLe79vClj7QpMSsAxcs+bM7+HfIHWqYcrUj1Gyi5S1s24O/KzC7l84dTcc/wsDAACLpIAV
zJWJ7rfvrSyeb3uC307T2AKz8jBiXvw553JJVZAxLWCFb4G7jY0nH3x1RdXt9dEEnAuxcEOskrBc
7DBYQraPtDhN8GSnPWvO+y7+HUWrhN72VLKC+JSu3s+lslrFsYZ2uRrHjQkAAM5RAn5Bt+H1RYad
KnWBqCKLVe6Eeby6lxRDDrrCc1DlicwY/lXvaWnYmgxdauoYAR+9b+Wkdb+NsqsNmwLWUF3eknpk
jFOe3N7FWxx9VUiYzaKVSi66WJVVXynXa3Nr2N2K8JDnJsX3UAUAAHCG2gf87F7DI/l19BPO15oR
8dTZitq3q4mxKFnPVpQXwou19IiIdRiWqlq7qYygbBlzxBKiuirH4OhNecGSaaQq4jXpYgtYi7SU
Xdz5WcqOpb1N93NHvOV8Vn6GzHqCVpnr56CytZQx5I3/bZSMD555AAA4w/7oAr4r2s01TeuRxS7z
SFutUCt0F75z9Gsf1gFCUmuUp4tDCBn5Gms4lTk0U3px01tRyk/NrCU4oWSRMbRta/8qZUO7SAv2
nH9456Nz5OqxZvVci43b5m6zl4OlYK/C8YvHwAAAlxnvMbS+vcyaTwyZL7z0pUmKSUNyDm2lPQtY
3nNIKlOEIbMLWI+9xCsDp4czaNUCZGAvRwv1MLBI1L89CdjUK8Q4l+BHqliv5lF7O57zHcNfyzNN
usByeazNmuKUnKth6VerW2shV5656X8wAIDt0U5DWndEVMe9Ec58tkcb6Xzblt6gPmUrOaSXAiz9
5luVKMu+6eGolDMESqlSku7IfumcnvYNJFeX1FI8zlBYw3yRQgu3st6Rc/pdJjVr0Tbx1kgFRfzD
49UHAAArCAGPoUqnoOK05FbawsfXeHKQ5CUc5N7dTqGsBLxPCYYuo9glWSnK5N8WAXtHsabLlUqp
logZcxgLlICt0ijTwC8l9AoeWMAWsTXshSeHt9z7ex8p2vGZxg1Sx1mkNZBr8N14fDsDAHg6LQIO
5jo812bd15aV0jRw3lhplbxvscJaTCHKlzK8LOmMytvxZSVgP23hFHDO6nF7D/lm7F/72RGuHayX
6meKgfwrAXtxyo8vcnjf8Pdm5F/jhD6yPnTauKF1Ol2CbOLmzpVno82gkgAA74MEbPO8uI3SS0wW
HuniTk2S30ppspjPJqqJZpZJNEfMltGvjdkErESNg0h4kekJ2yO9qjrW69hMxyJinlxcLF+Wce0o
yWq5JC1b5JuVgNPoWRo2trE+m+ZbJ7UiXBIFRke7xWgm4emUJOMvodJ/RF4OvDIAAG/DfierKPH8
Jup4iSEvDTNTZOss2bmtX0J31V9+c37fMWdMt4B1nFUo89/wU21ulJaA5V/pQSZNhuFn6k724VPN
1bZsqlbHbuktaHmqFKXxIn6rkq4euTAtT2O/ooby9gcyf9djbhRvlvkzmy7pVeFvINEXoDOzK/tX
6Gv0NwkA8F7oFvUZAr+ip7Bv9eQuv05mCxtt3uovowB0nGccavb0p+QXQ1tSvc02e7pViRCDJNmM
YXdmwOo6MfACvBZqkbJwZBzIqprPHI7XSwcFTbvx0CK15La0N+1+PrOiHeEWZ78LTYhnfEgljGbM
lFeCV/Eu1lt+Ufm/VV4WNEv+BH2N+qssAMC7kAJ26Ddvolziokearn7eSo9Fl6LeM0wXfMhmPh0p
3+2tgFbtR9dqlk1tQwlVdsgK6QvbwpGqQttAJWqqc7ExNeeLKpppkNNzz/KoVmdTwMqFgB1S5yKz
ymeg1VHJI/zBMqmEs6NzXZAJI/tqFJtTfUkir045fum/TwoYAwPA27EPZ+TlLIqunYpor1Ij6/fn
5azdEiLVMtEm3i7fRu5k1IIlyHw/CqNrcmENyoapYVOmTE3YnKqVU/SIjCJqvz/n9O/JQcqRgNO3
US1fwEtwucZBToxK8Xqu8UGcE/AC4yr0qNZmoTWhncBtw8k+/ekqn39DCfhv3wQAwAkp4O6yGvJP
JU+brH27/fp1st68tnPrepwvE56LRt7CTMcv3Gy3Opjl37SsIjQVV6Qmsori47KxG2qFSzawFBKh
r+dSZS/DqvVy2gsFmcpFfNje37verT6yH21legXGWJO0BvVN6/xsjf74MGgEDADvyX6nPcCnQYqt
lskRq1PNa+WvUw2xkC7dWlcT/jhq9vWOzoec9mvo0v7Nl9Y8SvuteJ9ttM+eqHqq7sbaUbPO4/V9
B1XT5q45+5dzsW2k19OnzPL3J950DvuvpE8v5LJA8+Q6yWFbLc4G7VuPNTduV+s3mqejr5guaAB4
O3whDvW0Vr6js6fx+TjxiHZ2bWPW+iL/LCq0NAuLpmVLFVKubSsB29OpYXs7SnUUbzTeYxAs1cYi
vSKE9vzqgGf9yb+xKnPCB1ACrdwtaG0Yr5TEq6vRtqbxGOi/tV98LccbMwDAn+MLcazqI2zK0WDx
koOLTZzsJX39GTJDs4O80Ywc2ZBn2DbaZtk2sh5JwHo4qR3I8bGigha0+7GItQwtWHMPEe9mQByF
2t+s5DszfRUSpcd94UVK1rkeZd9GfHijlSsVx4o53hiUJwgFAOjoroR1GfWstjb3x7ddL8517lXg
+Pc0udoUaYjIxASJRF3M6d8UsOQRWpV9HQuHU+uTaHapVjVVPZczfsSY5wP8O6GPo29yFVpTU1Lz
5uwdZd/G9C9abh36H292dDQAwNYpAe+rbTwfoyjUiyY329ifTttLnXvv4t5EVpUq7QyrdubNKPGn
crW0qis7wFXnpfbsWjfxjFlqUtTUvBkVxxzqqs5lfgT6NJXUN7sOzZMzam14TQS5SvMpPKFtFYe6
OmUMxjtvAQCAGsUcX+0e3KvpzcZWTexJU5oe1nWi3sm9idxQckj0HksUkSzhatDXSsUqCnZI7I/f
aqjYAo5KeoVIHD4o/A1yBVQqE9fJis29MfR6i1QmWk5Txw0k/nlx2isLAwMANKYu6GuHqeiE2JGF
05F0S3y3z++IJFuqSFdksZIShzzaamhgPXlKPA66u9I0pydKwGngtI/q5SI/BFmykn1qiTZV43zG
aug3hsDrrp5a2ZFS932SkW9sP1rH1/7RAwDYCqOArx4oOgk4EkcC3r//ya+2p/2hYb7b0ReaFjqN
dH1I14qnwjaFvzJ2DDxJldzhrGlagOLfz9Kv8Ee5CdfXevFq8hKME/4nxStS0a+uyzmMu3xj04nN
Rf+kRDkGBgAwFrDka7Jsoi/RTmDjpri1o5rr/fqcF8m3HiPnRDNGXs/KLtVkq8TlEzGpKuda8LlL
DoADqfur8YrJVHx+pT3SqvDqyLWlQaKzsSI/Gdj7hPWPzM8PAgYAMBKw1RvPiOqyzMNg6kUMFAOm
fNT4um3VsUkfhN65FdKQNFRaHh3TdmskdaSVLRwDz656GmuaKqmWr0dZC/wMHnq3MbPWoLYBDXJl
5NBrSxn/C6Np0/YzyMDW8tIp5wAAGyQjYIW60vBRDDzL6WYD2fYKRYDVJH8Y8QnGgc0rwSZ5vHR8
OPUuR16RsYxhB9cHl1is5BSwJnxID8Ax8UkqtRZ9+pov14WSGtUKLANr3dVzGBVs70ahFoCCAQBS
wCnfNHAVL1DnIWXT+4H7PGfk51Ck5p5lG9XR8Bj6apLPPirPeibPplrWi66BqTlzke/P0RuND+Lh
Wqp2Wwd+Flp98ZeJQoeueV1q24mBdgnHPzRexoXN7PJGCADwPey9M1eNnlo+jc9R5yEF2R5/NPVB
NChfRCLycqqkIZnEyIL18c7+1DlDDFzdAo5pucTb+Yv1mP57hFoRtS5EqdcrJcfO5zrU6tK/KDpS
oCpEdgqMO7z5tTW+VAEA4KvICHhUcDyz3FS6RhLUg633u2CL1qC6mFMX4VQpZBSw5OuBp5Z0dPmO
GFnAH3XxjcftW0+th7YSjdZPPMu+bW0aVdccLqs1HWswt6kixKtV7MVK2Kqna6DUZACAb2QUcAYg
gTLZ8rUGsO7k9lmquUh6wQ2+jWA5yCgl4yAlYBTmxnTjKT+7KIiUvJEL/FCaHVdS1SXJWAdKNbR+
tMpy/VRBrWahWXKCiyOnTS22K1/mpKrlEqeKuro2DgaAr0Vd0PpzU1gWVkPYRyhqBT/lXKN1TGII
YYQybBKVKuMiSUACVmjWBByDdLXO/FXy4FW1ReJz50pLUrxebTWoCV4/WrWea46W4acmtgqaJ5cT
48gqxTFbAPCV1D7gjIClWjnFisnpyace8XwRt/vWqgwRDwvWzb/bf01T/KveUB2NldM10ZqI1Lef
/nsWGTXXQq4Kr662+vxQoatE7Yv/u6miqle2LU9dC06pjMtnAcA34tOQ0sDWrzua3SDmBPFFfc89
atvV1ruVj8/r7mcbJLWiCXaxQmC7xIWpl0h//JHg4+B24vNr1lpTpmnX6yzRRFU6NnBUqJSmFu2t
RNLrXHNq6IkEwQDwfYwRcAXAYdtq8yoGfuMLPD+IP2Xg/zc0TIXIrmmNEetAxU4qp/qTRD6YOz+E
VkCOldRqqZFWTq6gQBVcp0O52KxqWjfVy3BCi9SXYlM753stAwB8F9M+4ByPJxtFO3j49/6XeH4E
f8j4gOnaPPTZBtGkoEZBCsXZ0S+1kI3iNaBBon9dYq1ozTgZxNSq2xP/1e2lU61k09Wa1rxW8JTy
MvXPIQDAN7Hf+V7pbQ+wbinvJi8IMVXL+KXoI3okpQ4hBR/ybA1oJVSNwBawHXSUlmt/+ao5T64z
JbQ+TCrX1q2B12iQNQvVt0X3nqufOC5yhiRukUvrmhEA4JuofcCHFgX/q8gjW8QNIC1YF9avBOyP
rxWQK8LDkRTMh5999By05opcaTJvuriG41akqR7nvtyIfxe3MFfTIKmFJuwFBoBvo84DVvzrsa84
OfYPfj9u3C2LeKZdIx3FmlbJ5gDVkKJ3+DfsO1Ol1ptWnVaR/lQQqzCtq9K2RcmjsQZr0khOV81W
X7No4O9G5PYKAPA1eB+wOwaV0bPssxXUtlsbSquxj6cKnR083TKJR1gl/KsLR3jODSNNetUIrz1L
t9afErGOcjPKcabN0tqryVG3M7Bn9cJUQAQMAN/Gvju+NEW8xb2b2eTLGmrzPVRpCriZRYnQ73cf
mLaC8eNrnWi1KFGrSNiXQU6fql9A9WaDeGZaK91CR8AA8G3kPmCbV8dhfeclN64Tbb0beifiKQUo
Hbg8S72beL/PWSAd6dWV68z/qXhtCcmzTFoznMfK1ZyaWTN4/nxqqcH4fyIAwHdgAXsHcDRwGw7u
3NDrkFuljK0Q4+aTwALe7PHPPdpOYoXk+rEhy5OVz2mVWIHr1z0wNEeOPMhF7xAwAHwbKWAfgKXb
HW0X6cIrINt9obxGTmeBHA2B1kyuKK0ZCVKrz6oUbTWq1go8Qzd3DjSK8nI7AgaAL2M6CGvjuzaj
sZdwLYNMSwdq/20FpyXkrL1tvBJyPeWq0SqKFebVlonqf76BXJi062QtNdIye/yxExgAvoy8FKWu
QLlxstmXcScXaKAILEYamKoObTWVcY8GGlW11WiuGtm6InIZWnMYNAB8Gxbw5g/sFc21SaRU5kE6
WeHv7VL5Rmol2I6xSuJPKOTNR66+G1eV5hKR0sy5GJMpuqAB4NvY77be99xT1pVasiBw8x9ILlX0
rch+Ob6mT9es9eJBDMu+8dSUqrgerfQiEhkB+0WUOnAzBgD4OvY3NpW3N6wfhD+c239nk3SCg7wq
+VbiU+ujtuEZckrVCizdNKYe8adJrnQDtbAislqQHlro/ObUAADfge6/vx61jd/t4ODo86UGRBV8
M445bcMq6BnLbEhjQ+YKar5UrTtWVc7doeX5GRD+AsAXslbAm9BPY/ZhUweV+W6mT3r5A8dEVw2s
Xf+VPx0AV6VbyLmDSGlRlq/GhwMHQAPAV7I6AlbTuE028sn1IaW/zC0QU8aJUwhcnhxRpirdRM3a
lqUe7cjEny4+VhsrAMA3sb4LeksCnn/W8EGlvpf8hJf826EVYktqUGP7sqhqt6EZvSAvpl0Va4gE
/gWAr+S2fcDbZAuraFKvx9c+suVYsuyDYHdFV51b8ewjh0PmuA0DAHwrlwScocy97en3sJE1MH3M
qzGsFVmCzGeqM4V83/rKqDqXEwuqRXU36wIA+C7OCjiaw2j+KrNpNrESbv2Q2jSsTBszBnrkoVh3
h8Da4nJxWpCXRPczAHwv5wXsNrUysAFu+bKt3xFbs4YaV6VbyRi43OsYGP8CwBdzRsBuB2NQWfhm
6lu+9mWfTJctj9A2c/cFS+IFcinqfTlIwOz+BYAvZlHAKV9TJbANLn3f3TQlK16dYf/GM2vdihcY
s2vZCBgAvp5TAY/2dRsL305o78I37fLlibmVJM28RdW4nWkpBy7AAQBfzomAowlsAsa/W8ESvo3c
PuRLby4a5DO3nqp1I1pmLScETAAMAF/NkYC7zmdRpbAN5OGF73ws6qZFMm05KjfF2ahqN+EXr/kj
Ah44AwkAvpq5gPMCRJKwGlM3s/ClLH+3S6ULZXZkk6W2FcvX/735WdVuY1piEBFwbaIAAN9JJ2A1
oD73wzFNleUIvoz8XmOYj8x1X3aXPMoIF1iTNdIWk5GwRdwv6RY8fw6xLwB8PSVgNXop32pBs23V
A76Q+mr9JedYhR4e4enLaJK2lEYJOLaiqnAruZgYcf1JANgALQJWm9ciGLeEKeLlRhm+AauupWej
E47KnfX2kcyCX+FaN1Mzi7uvwLHn2h0A8CmkgNV45g48DdQUVgK+mPEbjoS+9MwssDTR82gQuOvE
KW0517ab6VVz3BEz5xLuD4DxLwB8Chaw2zw/R642o/D5qIMjv/8lG46cTnP92Er8n1viKFh1Y1y1
zjBOPllu2wbZBQwAWyAE7Dav4Zwimki5TXTLCN+GvmmP9I0r4dLV5Gy5rYQ085HLWL0HuM0w4g0v
HTzU5gkA8L3s1erlPrxoDt326RpEd19QHz4Bfbs2sL/mKXWW46myr7cWbTB6jv69siCRNT2j841c
ikHAAPD97OXfaPf0VJuqvXlO38jNM8DfUcYN0Tm55rs7ruO5TVozNpqacg3NqZHnnC04/w30kC5o
APh+QsDxp3CkWj+NqkGEb8T2q0d91R5m8iw5S0PqHnEHyuo+k6ZfzTifKcvyUZsnAMD3ogi4NXxu
EdHvd+OvNwa2b37XF7/yqjRWNtpWJtRlsv4ehHq1acYqDJRXiRZGBAwAG8Bd0K01jOelthi+gPyC
U6dOX//G5epZrchoi0mPKl71FlQTr+B5PFeOqtgTYhM8eCPkZF4A2ADqgq6mEP9uCDk03XvtK9fG
EQOlsiDIktxsSr8rIuB8uRHPOjNwZHNrpAcaADbA3g2eWkMfA1NtIXwxKc/yodJXUI15Jc1em039
3yZv1sQruGLObgNXcZS5C0blH3cMFveNAIB7kICzPay2Eb4ffc35retLz7JL5DYyIwqsS8esGbfW
lMu4ol9ZqVjCuOC8E5f5+awIeD/sKgUAcAMVAWcjCxug+5rTfqu+99lcHsQGU8LMkaddZ6qZ82Uf
dIxa/7MX/Fn7gPfssgaAO7CA3Qgi4O2Q33UMpgD0lG6DOK6mOWOzyRhYW9DKjSfnq2H61gtQ+HvQ
QxFxZOnSBYANoCth1QE069pQ+B7SdueZph0ZWBnLU6RH5xUWaa6Omn0ig1/595A90pyEBACbQNeC
Xn8OJ3wFZV3514lVzKvKlOleh8GW6RUU8vq1Neco46BC4XBw9UfXtgkA8NXk3ZDU7KltvN6KwleQ
onPyDFc2hZhcHi17Xt90qpK2snx6/kRL0chL2bFLFQC2QN4P2LhNhW3Qvuz6xu/44qVdIXXWuKaY
eb9KvlYMU7wuyyVYuy0IdgX2AAPANugEDBtCX3v/1S9sBpe2DEk0lVn6FTXNVFEr9CgzU7VYRIa/
8+r0QAPANkDAWyRFl+l7iWWUNEUVHiHBlnfNvF64Wwc++9CrZnGV0wMNAJsAAW8Qx68ej9yzGciX
qc2ze4A9zbR8G8TI4W8IeH/IClXtDSLg/SEehz3n9wLAK9FpSBwEvT3kOjmvsvcIuGaRNi/MXQau
jWycR+ceec7wbwjY76d4g13Ah11E5joqGwMDwOvwecDR6l1oQuHLiO96NN6933ubT8u6vIwS8FRJ
s4Te0sAx0vm/fjtZ5R2OgVbH+OElAo6ommPMACAJAbvZE1daUvgGste4ya7Gd1GzXl2GTJv+jYFe
XGGvAkwNUsDug6539RbHYOW+6cPTBRwfVKuAwBoAgtk+4GgaokWsDHwv+R1bd07dwjRvP16g/T9n
t0rBkZd+fhT8Wm/x0BYXttOktqg3sNPe70//IFTBs6if25XFEiMDbAO3CGNTmSP4XmzA6et+5Tc+
LbsEnAkpVyGxeqBrN3A8PdGV30HADtDjOTxXhbm3Wyvm4nI59gtgI8wEDF/HyTfbF/i7z+QTWFrS
+K+d8SjVK1qxUaWsWlvmX7LPAP3JAXD72HockCwAhIDdKDSmFHwl0l4ln/ttZ4x7RN3nw0diqRM6
w9+k129kVMtVa8v8O/a5dzoU/FRLHmxe/cWDXmYA6AWcg4VWFOA6i1tOK2u9zdoBPMdCqnkz8eex
4T7tGxZ+roD18VK/sRowMADUUSFBNoJuAgHOcWbzuLrZKPZtFhbTLmBtczW7hndEwE9WdnZA+69K
noM/rv/huO9jAsCXMQr4WgMK38st3/3d28loH5FHYclIVe6hefaBx7cToW/2QT83At77QxYIGABG
AePfLeJv/aav/rHtxOopCzf/xsiTXCH48x7of4dDnob03AB4XwFwDn+ef40PAPg0pi5o2CQ3fv/3
bi4Sb5NPkDJqyTZdvEdkqPD3yQKui40E+R8Ix0EDbB4EvG0e/fpHcZ7HNbJeDCwf+1cZ7wrOVC3p
73ugxV6X53qqgDMAHuE4aABAwBtGX/2DX79UcoXUqxLOBKGi8O6QuXYrkEh6/D5eevL1MEYB+6MO
XG0DABDwlrEPHuPq/HoFVXLFtK/jXglJBfkOlNf4e28GnAL2Byb+BQCBgDfML3z3oZ1K5TiGIaD0
73h1Sk/I0Xv0QL+Atgs41oCHX/tBAWA1CHjDvP67b3FuZtpTAjIuzVHxvR2zg9Srj6tHjOmCBtg8
CHij/Mr3nh3NKZwsSPtoinNOeph8sZZ0Hwavi1wHB46CBtg8CHiT/M63HrrR3t4m3YnKezSf+MUC
Vo/7oKH+fg4chQWweRAwvAqHe7mjNwsSh4FdWRnYwy/eM7ofBh17ldfD+upPCgArQcAb5je++3mA
a1TUl3ZVvjkq3O8POvY5u6K5EBYAIGC4n3u3nbPzbeICyToempshAQACht+n3+TmAfL3a0mB7574
FwAEAoa/5CEBf6rG0C8ACAS8Xf7qq5+9bhnYQw5MAoAtgYA3zN989/OgN48JTm6PDH83ltxz8i4A
PBEEDL/MfIuTgFvJu+8CPuyGNzl6iv8DAL4BBLxdnvbVd0HsCk4j4HZDpNVa+aNAdO/bBFfmLzlw
FBfAN4CA4WEeEbANnKnVu4CHP9pbfJB/30B9e3rCAb4CBPztrJfjTRrt0Xxt3hXLOKoyZlfHls+9
Vf4NhIHfQX17ImCArwABQ+MJm8Jdi2gzfcBlON7EfITAAF8BAt4sT/rmtZhRoXcH0WLqV37bGxXs
3+IYrD03cgD4CpqAn9QawxaZNp41Bu5r+MZAjRJw6AXDAMAGIAKGZ1Cb0Yqt6ax/2z7gEjAKBoAv
BwHDE7m+NR3FyH0mImBb1/6tNADA14KA4Xc5v8EdauemBPxLITCSB4C/AwHDu5DelYAPfuQWCgDw
pSBgeBfCuQp8O4hQAeCLQcDwLqSAY5t0IlKVBwD4ShAwvAtNwB6nhLngBAB8LwgY3oRdCbjJN9II
GAC+GAQM74K829xr3AldGyoAwLeBgOFdCPke/JSFJV8LGAMDwJeCgOFPWNjuUr4HR8F6YmAA+GoQ
MKzjyRvK6eJ2od5E1k0De1ybKgDAd4GAYRUP3edogdPFDbKt/3LUqC31Q+D/BQBYCwKG68RG8vrt
xLGv9dvi3xzWlvoZHA7D4S1uWQgA7w8Chus8dp/fdeykXz1s4LEP+sNORNLb1zuvLADAeRAwvAl2
V5L6dTz8WS6rvdgIGABWgIDhAr+5dTR5ZRQsAysi/qxocj/4vXP9EABYAQKGc+yefuTVJXYl4DSw
Qt8WB3+QguOdW8EIGACug4DhDL+x47cjxDUFv83AITIpuDbW92ef/h0QMABcBwHDGXbDr24bih1b
EKxEM7At/DH43Q8IGABWgIBhmQyAf23z2Fldo4IVDMu/ioY/yWbaCTxgYABYAwKGZX55w3APdCNT
GlrEta1+BCFfhfKVAwA4DwKGt2AnbQ0KhK0v7QbOPuhPc9kHvmUA+BsQMLwFO3XcBiHgn8FbZgjY
mygAwHeCgOEtCPPuhoiAB+16tnnRLwB8NwgY3gLv8Y0IuLI7LqgMAN8OAoa3YLdzJ/RhUBysfG2g
AADfCgKGd0HXsAj/7veh38jVFgoA8KUgYHgHhr3P3jkoGSjBPmAA+G4QMLwD3v8bDm65Q4TBe/YD
A8A3g4DhDdjJv/GsrdFX5YiouDbSq3DCEgB8IAgY3gCFv1Zw3oBJe4P/xWMFe12yg0tPAcAHgoDh
DSgBBw6DdWHotRfi0OlLURUDA8CngYDhDWin/+pspF0oOJSqg7JqI10ihKs7JSkl/8YIBQPAZ4GA
4e+Z33pYUbCi2t2lM5GsXfdSEwIDwGeCgOHv2enyG+OWGOlhv4+geHfeqmFdS1pppXTYlicAAHwK
CBj+Hgk4JNpti4d/u4iLF6Tq2wTrxvd7S1c4Ao58dUkDAHwGCBj+ngh/tetXo4qEd4cIf301rCZV
e1eRrxIOf/VU2gnpN4ZZFwDgA0DA8PdIvSFd61fnIpl//34GxbvaSjPQ9cCSrb3E0u6UFt6oAQA+
AQQMf46D39Bu2FcebqX7Yef4V5J1gNs6m70HOK2rmDhSmuITgqVrAICPAAHDn6MAWDFwdT83hsPP
/p/cavlWEJzmjadOU8rOZxPTfDjWZQOzmxgA3gcEDH+O4l8Fv7uDb8ff2OlqlCXXNvTu39RumFje
jnHk7WhFyucMnMUIGADeBwQMf01I1yGwb8ngXuhCcs0o17Fv9kHr6eISsP0rZGD1R9eWDQDw5iBg
eAPUAx1bopS6G6+Kpbz1q+1Uho1B2tbaTXT+kos0UIVrAiYCBoA3AQHDO6BLUO7s4XhUWWC31u5f
kdLNkYZjBBw5TY9qtWGfhT5oAHgTEDC8A94FXCciVZEor8bQBpZ0XWLvNlSsqfbvqYBPhIuCAeAt
QMDw94R+FQC3XcETg08ysoC9g1e6lYSbgXPskmS4dP3oBgIGgHcAAcPf4/hXJwJrF3C/Re68Vzf7
n33Nq5JviteEsj054RgsAPgYEDD8PdKuOBVwKjeRjJVJ8RrNUmiCj8givgWAzwABw9/jDug8BsuR
cEc5VgIu8zoRoW7mlK9RJA57JVAwAHwCCBj+HulXG6LD4PkWGUqWg2XXinblW9t2ZDKwuqm5HiUA
fAYIGN6AFLDleyRgWzcFbNOWeDOrOFgVqmzvy1ESAAPAZ4CA4V2IQFfDzDRKwI5vbVxJ2L6NUROw
qRoEwADwISBgeBcs4KMAWEdG6wAtCXY0r4wsJ88K7F4EDACfAwKGN2J2CHTh/cLeD9xkm9lCE3yK
sPqp9/HgOhsA8BkgYHgjtDUubpERGEu7Fq+NLAFXOq+9cchTgGXfvY6FVgYA4I1BwPBGnNkarV8J
OAc5rvA3nmneSbkhYE0IFxMOA8D7goDhXZBVNcpczyTc9nTlKqkQuCd7pLn7LwC8MwgY3oaQqqPd
U8rAtq0PvfpRf3Q8VL7bnWj24LAY/QLAO4OA4W1IAVfmGPk2NVz4DCQL+GiH7953cJB8dUxWlgEA
vB0IGN6Hxei3GAWskNenB2dQrJK5ZXXz4EpFZU9jXzAAvB8IGD6DKfzVJluZGCpVG/PIoZXsWwSM
fwHg7UDA8Bk4Ota5vtKuvGsZxzgKT/Q6dkovRL5rgmF8DQCvBwHDJ9HiXnVENxMfRcCS52kI3IFd
AeAtQMDwSVi4vnO/HyXjVOrekbB3AGdS3GdbdhkDwOtBwPBheIuVh1PAcnIdaVXRrg08HRh9s0tj
BvwLAK8HAcOnMRpY/h18uwYpV1GrxVkXpWzIxauFus8IGgDg9SBg+DDyXKXqgVYftEJgbcph4JDn
PgLhTqE26tKe4AViAbEQup8B4HdAwPBh5OHQPghL+vXzx8oN1bo7Wg61Rcula6WKegHgN0HA8HlI
vzKwdgTHBqyHDRxG9u2A4+Fu6OlYLACAtwMBw+fhsDc0bAVn0RBR7kE7gxXGKgK2es90Pe8P09Wy
rsIdhgHgNSBg+EDKuwqAawPWJTp85eeS5UVn6lrR8ajcBWIpWbfyAADPAwHDJ9J6npuAtS9YznX8
q/FFZVrWodU1oW1WXVERAOA2EDB8IiVgjzMfmozt+bpVY/J+UFi7zqs6sEtVMTAAPBsEDO/H9Y1S
kW+Fv+nh3UE7a4d9k6o868QxMaH0G1zUqiaGq2Vg/WVhD1IGgEdAwPBmhEx9w6MruMpYLwSs830j
/i2pno+DDzpWuris0JgadaKyDq4erkTWAAA3goDh3ajI9hpzA/9kH/T1S27sD7spAr5ycJVv7e9z
myTgKgQAeA4IGN4MbZG3bJXytep75++KQ5tTv45rrx7dHFG15asHAgaA54KA4Q1ZvVW6YgrYdyAM
S8rDl2SZUa0lfD2qDUmrrmLgKgEAeBIIGD4Zqbc6rHft6hvarNvFMxYMm8c1S6nD5ZOVAl/bI2V9
1dUAALeBgOGz2emGSCZEKfXqOV7oaknA7dBmPa5qVXX9qDwAwLNAwPCxHG+7O52IpLsT7g4Ru9YW
vohiWvdDV/48e/dWcwgWADwfBAwfy8m2q+th6Qb9P3lJaG3fHp4QWpVXV1hVAo4H/gWAp4OA4ZvI
eySFgK/0GVurq6zqezyoJg4GgOeCgOGL0BlJEQDvhmvnA3sv8Uql6j7/URUBA8BzQcDwCVzbTNuR
0LpNvwRsuY4HRS9zg1GvLAkA4A4QMHwRDoBDxqFhd0GHOFEnALwpCBg+hDVbqrqg5V+j840GBAwA
7woChg9h1Zaa+lUvtG7PMOw4fQgA3hYEDN+EQ1/tBtaBWDrO6s0EzP8DADCCgOGLUOybEtaFsdr1
KAEA3hEEDF+EzevO6joQWpv48+POtScwAQBcAAHDN+HNWRr2vZEaKy45eRPPXh4AbBIEDN+EQ+AY
tAth6TykKQR+Wp80ITAAPA4Chi8iTwOO51Cq3R/iTxb28Vh6uPhRCIEB4HEQMHwROgC6BJxBqgaS
b91Q8DkRcCytUgAA94OA4ZuwfHUKcOttzuC33ZvhSX3Qz1kKAGwcBAzfRIa/YdumWt/2N3cEP0u/
AABPAQHDV6GjsHb2bAxCuAfdnsH3/lUsjIAB4H1AwPBV+DBo2zYCX3n3EPaNR0W/GBgA3gYEDF+G
jsJSzKtb8w/1UAjsHmgEDABvAwKGr0K3IjxYufHceQ9whMLKKRyurR4A4A1AwPBV6BBoW1fC1cFY
8m8EvhEHOwJmPzAAvAsIGL6KvAlSCFinIsX2HQKOx79/iol1TQ78CwDvAgKG72Kn6He3P+yC/T68
G/b1YVgh4AABA8C7gIDhu9B5wLXjNxI6JuvwL5QcBvYhWINv0Y+FAeDvQcDwXSjmDUK+h4iCh50M
7B3CsbXrbCSfkfQ3cTDaB4AeBAxfha6EJXQ8tAJfZ3Q8VoS++7xEVsi5F/CvaRH/AsAMBAxfhS6E
FY9MlH8l3NjQY2TxhodLwHlxDswIAH8CAobvQsK1gCOtfcHaJayLU0rGeUcGHRqdqTJvefjV4HkA
mIGA4btQ77PH8cz9wLt45plJPgDLaC/wrwpRR2BXEgDAIGD4LtoG7bGOvxIKhHVp6BjERq9DpJuA
f82K6BcAjkDA8GVMW7R2/urW/DoLePeTh0EHeXEsbfwaAAD8EQgYvpHcrHUUlk4J1rFYP4O3d10h
S2NFwJFQunYIP8vH9DUDwDoQMHwteTzWYciEBXzQhbHEXndH0rg7K/hJ4myLAwC4CAKGr0WX4agT
gwf1QedFojP09UU59AuYHxC9CCEtALwCBAzfi9RbV8PSYPAFocOnEf2Glr39S8RKeDg37RjJImAA
eAUIGL6ZnY6B9plJioR1BFbodD/sD5GXWUOt565L2U4WDlwNCwPAc0HA8MWUfzMQbqck6ZKUkVYY
PJ0YfIr2DldSYXJFygAAzwIBwxcTYW/uAtafrGsDh1B9e/7+dKR2WLTFq5ESOQ58FWkAgKeCgOEL
Gbdq9T7rZKQYyL/2cGjXFg6/+rF3OuUbD5nZv42eqTsaAOBJIGD4QrzXt50MrHORFAXn+cD7f+2a
lFZu7ept+s1BTulBwADwdBAwfC1NwHoOCn/j6XORFA6r91mHQ0dc3HwbZfsKhZPlJADAU0DA8OXY
vzKwhuqB1mWhNZCAvSe47QrWdSqnnb2ahIEB4HUgYPh6dBCWqXQYVxoOpcrAB+Uj/JVh9/8OKjbt
WlkAAK8BAcO78exNsqJfPR0MK6cjsrzvN0PgcnFoOPScvwwAgBeDgOEdeepmqeA3tTvoxCSrOKQr
9TrEtYU1Vjxc5/vOup8BAF4AAob3IwRZqSegU5DsXx2DFQn1Pv/4nkje/atfQWR0fQ4HwyXgELFG
HWf6o/E0ANwJAoZ3w5vkM7dL7fZVn/Ow+4mBLKvTgnXAcyRl1tBwPIfdv4PkX8dkHUFIDABPBgHD
uxHx6dP8m6G0ImAd4ewLckSQq3A4shHyhmw1YXfQjQpjikPlyI3h7hT34l8AeC4IGN4NbZLPE7CX
FuJN86aJfQiWzwmenHuIXCS9e1inB5dv+55oFAwAzwQBw9vxvAA4BSz9loLlWndCaxyJVK4V7Etk
ubpOBpaAfVh0s+6ZXcAAAPeCgOGrkV4lVQ0yYxFrmEKOdA4VD6tmqlnGVfSLdwHgVSBg+G4U+3pY
uaZd9UHH03uGU8KHiId38rCe+m1Yvg8IGHcDwCUQMHw1odQc+5nHYuXwMPxYv7JvaPngep4U4tRA
R0nrWT+VW0l/AwCcAwHDVzPfvjPQHfJCWB7FUEFxJF0h8j4LKc8GVif0PQLeh7kVXNc5xQAASyBg
2ArqjM6dvzJu7QNuAhZRR1ntAG4HP0cEnNfquAl5PR8oGADOgoBhU0i07naucao3bJxT7eNwZu4E
1vMeh+5juRkB+3AuAIAlEDB8MyebtwLfPNoqZGtPyr6iTc279etcYLtT3cka38JefdvSb/xVEQDA
MQgYvpnjzTtEKzVauAp/dR0OMwyerCKLt7Pu7Ra1ef0nj1chAMAcBAx/x+9vfHat+5l/QrUm9auH
EntdHTqE28LfiH99PvAtTPbVXxUCAByBgGETtO3corVsNVZSVg4Pu0Na4bGOu/KxV1JwJGJ0WxBr
90q92QlNBAwAyyBg2BJSre6F5KczDnxDwYdWoEtShjR1r4b6kdxGxNCOfMdHlQMAzEHAsCWk2upu
lntDlJHQtbJSwqVLRcF3n0AUy1DwG4tP/967HAD4dhAwbIsUr32rQZJiljPV5xzPjIKPWRUT687C
GfvG4twLXRMAAGYgYNgScq0MbOFqaA1n/Csv552SIv61a9O3k3ZXCjgMnI/cCYyAAWARBAwbwr5V
pFvGTf9mAKw/xawxmPqfVyn3iLoKZdmXo7AA4AwIGDaEHKtHhMES7xxNishXEWu7IZL7o29mPAxL
Q/wLAGdAwLAhMuyVaUfnuvs5kYD1J4WGie83Z+rXcXCezQQAcAoChi3h7mdJuBl3px9AJN07PUT8
G1NDvXffhNCoGzvc6yf+BYAzIGDYEroDodTrC3Okg90fbScrWD0oLFYMXD+Q+9DdGNQPHQpGwABw
BgQMm0LGlX5ju5d/jYLiiH0VrOog6DBxiPgxcSoGtoGHKgAAOAYBw8YI45Z77WL1PUfYe/iXrqyo
9ZE9wMJHQkvBBMAAcA4EDNujKVjRrnIVr7oL2ruAQ5/1A7kX3cYhFlk5AIBTEDBsFAs4FGwdHwZf
iFIHPyt29U35H+TBGBoAvh4EDBslQ2DdlkGJlLG6o8OcOg0YfQLAi0HA8M1c3LzDtxUHe5gadq/x
Q2cBAwCsAgHDZrGAdWaS+pzt4XbW7n7twVN4GgDuBgHDdvFx0IMvWOUTkX6G+EW0h34dVw+ieuyC
HQCwaRAwbJXqd1b8q/F+H6l4yr4V10bR1QiXGBgA7gQBw0YJ64aDtedXV7/y7uA8Cyl+FjoUK38f
Vw1MDAwAd4KAYZso/LWFIxCWfXXZqgh9U8CHyJWBrwkYAOBOEDBskDBuDKRfXX/DDh507HPEsxXy
Il4AeDUIGLaCrOto1xeCdslB9x2sc4Bz/2/8JPzDAAB4NQgYNkPZVx3Ofvzs6pLNefGrGCBfAPg9
EDBshrCuhjmQg7UDOONfUwLeC/86TqBjGgCeBwKGDaGot1IOgke8Kzj8615o7QvOn8cxHPEMAM8D
AcOGqBjYInbKHdF5CcogQ9yxJ/ok3iUABoAngoBhW7QNvsYZ/g676fYL++kmgkf7hPEvADwTBAyb
Ird39T87Eck8EXgUsC6H5cQp+BcAngkChg0RW7s3eCvX40y3GDgkfD7MJQAGgKeCgGFb2L3BYAHr
MGgd/+zjobUbOCRr0SJbAHg1CBg2RTv2OYSrnPqfdQC0QmBpuB2ItQQRMAA8FQQMW0LubcNEBt7r
ghzDLuLfs469cHIwAMBdIGDYEN25v1ViA+uKlBEGnz39V2BfAHgyCBg2hMRr/bbNPtPuht7p7CNd
igPVAsCvgIBhU3TyzXT5dxgs4DoOS78MPAwArwUBw8aYBCwDW8A6DGvnOwFLwP5d0OUMAK8GAcOW
ic0/LKyDoMO/OhFY7tXvwr+OaQwA8HQQMGyTCoTVDV0CVudzdTxP3sXAAPAqEDBsGxtYO4EP6oMO
DTsKThFjXwB4IQgYNk36V0Gwr0TZzka69xCsw1AJAIBrIGDYNGXfGBz+eSdw7Qm+kzyZCQBgBQgY
Ns9u0N8+wlcdBD0/EfhWGQ+7B/QNAJsCAQM4Cj7sdRyWeqAnFBFXciX7WBIGBoA1IGDYNhH82sA6
Fzgk/Fj8G4TGETAArAEBw9bZ/fgkJEW74uFLUbIXGABWgYBh8/gYaJ8FrJh3bdRLnAsAj4GAAXQx
SsXA8u/q+JWDrQDgMRAwbBlv/rotv85E0s7b/ZAGtoydOg8GBoBHQMCwYdoRWD4Ia/ejq1G2o7D2
/x7eGQwAcAkEDBtG5vUh0ML90NkTndDJDACvBAHDNvHNGORfD+1enYjk47EQLwD8AggYtoz9GwbW
zRiMLorF5SQB4DdAwLBt3AsdI1+EI3CCzmcAeD0IGLaNjsNy1Gu0I9iX5IifRv1E+hQAwPNAwLBd
FP3uhiEEPISAfTWOMnB/QjD+BYCXgIBhu1jAwY8vRlmHYbkHOuBQLAB4LQgYtovd62EdBR0CbteE
5iQkAHgxCBg2TG79YeCKfysATgnXTwQA4DUgYID0b/VA6zRgCxgFA8BLQcAAo4DriYEB4BdAwLB5
7N+dLoLlxG7nTuh84GAAeBUIGDZO7gGOYe0J9olIeTCWLo+FgQHgRSBg2DwWsB8i9wPvfD0O7Q7m
PGAAeA0IGDaP5DsJ2PFvBcH1KwEAeAEIGDbMzjcjDPt6aAPrICy5OAxM/zMAvBIEDNsltasQWCNn
pN/hoDEGBoDXgoBhu1i5NnAl4lkxsDQc/sXAAPAyEDBslgp608DVC50hsCEEBoCXgoBhy4R3Ncij
oNO/zcL2LwYGgJeBgGHLjAI+SLvl3ywgBAaA14KAYbtksBvilW7DuxkLuzBKdBmO5xkYkQPAEQgY
Noz2Asu5Fq7ykVJUHPkpBq6fCgDAc0HAsFHc15zhblo4M9UB7QBYCQ6EBoAXgYBhk4Rr45kxsL2b
Is79wJ2Bn9cHDQAwBwHDNpF8w76l4IyCnSoDu/s5hxgYAF4BAoZtE86VdaVc2djuFToEy/rFwADw
GhAwbBdt/Bn9OuytE5ASRb92cAwQMAC8AAQM28YRcAz1CELD6V93PzcJY2AAeD4IGLaNBSwUEDsc
toArBNZYBq6fCwDA80DAsE3GDd/Bbx17NfVA9/aNP0JgAHg6CBi2ySRgOVgWDt8uSVhHYRECA8Dz
QcAA7n8O8SoSTsrEYV4zEAIDwNNBwLBpcvvPbuh2NlJZ2OFvMzAhMAA8GwQMW0Z9zzlcFHDaV/7l
QGgAeDYIGDZOU7DVq5EOyNL9kVK8KWH6oAHg6SBg2DoWcAa9MrAC4cDeNXYx5wIDwLNBwLBtdj4M
WvYNyyqZ/o0QeJSvh+wFBoAng4Bh4/gQ6BKwdGz7qiO63KtjsTREwADwXBAwbJwSsKWrX0P6N9Ly
rxRcXdDPEDDd2AAwgYABxn5nHQ097g/WIMwrEUvCz5DnHgMDwAgCho2jAFjW9djIvalfPdQX7Uz9
ZER59Had7mfzoGOATYOAAWxgd0WLGKoDugJhcbCK6yczsX84KsbAAFsGAQNYucPghFUcyMEjNvCp
LTkwCwAeAAEDhHhTwL1/VZKdz2bpMOjDLgZno1h2+ALARRAwgM1bAk4F5zFZYd0Mgz28tQ8a/wLA
RRAwbJ628ze929LC/dB1DNbScdDng1zCXwC4BgKGzSPpxqjOA+4EXPFvstQHfRYuXAkAV0HAAPav
BKxkmVfDIId5MtJ6qxL/AsB1EDCAsHjj1yDfmj76VTf04nHQAAB3g4ABAslXBm669TMtHM/078P9
yggcADoQMECxS8+KGqWPWzf06o7lcxURMAB0IGAAERFwBbqmjcedwVG0X2vgc9UQMAB0IGAAs6ub
Elq2I9kt7cd6AZvbagPA9kDAAEn8FCrWtYbHGDgMnEHwbUbdcyoSAFwEAQNYvnUM1ujgUvBB/pWB
Q6inRj3vWPwLAFdAwACBwt9F/zqZ/c83dSrTAQ0AV0DAABn9LofAioA1ioB2vYBvUjUAbBQEDFvH
F6CUfO3fZQ77wyF+LauPY8a/AHAVBAwwKbh823AIfIih4t9rWkW6AHATCBigxb/TUdAN3YnfAraB
rzgYAwPALSBggEQKLu8Ku9f+DftKwPFrObdv9zH1ssMYYJsgYIBER2GVevOpwNcCHmReHYRlWS7o
8iGDxkvsy/AAsCUQMEDiXujUrgUc6Yx/h51PAc74V88TFgtXEu5tcXaVAMA2QMAARdsJnP5NE0uM
DlEV+upZP5wjHhKwX0d/VQIA2wABAzQs4HTv6GArWIaVg7Mbepn7HBzxb+i3VE8IDLApEDBAobOR
ci/wiAJTn4Ok2FcCPmvg82a+iAUcyL96IQDYDggYoBEGLvEqJPVIKWnXCr4cAhf7w3CLR+cGrkIA
2AIIGKDoz0OSfzP8VfxbBq7hZWTUSq5B1dsrHc2o2z/ky91idAD4FBAwQFGHQWfsayXGw4GvvGsB
O12/nfPc4kuHvsVRBFz2DfaExgBfCAIGSMK+MSz3Fo5/E/1aKpO/nfPcIuDsgraFL+wDvmWJAPAh
IGCAERtY3dBNwYd/4xlICn09erINdRGO1O9NXdcA8PEgYIAZ3g0cOpSId4dSbwt9PXx6OOpTgUXl
AWATIGCADt8V2P7VXfh1PLOtq5+KRq/Qb1BBsFKvWDwAvCUIGGCGD8SSguMRxs2g17+VScDxfLIo
1RGd42kIAN8NAgaYoZ7neCoI9mlA5dwat6F/PS/h1csHgHcBAQPMyAhYjKcgWbplxchr8DL2XI0D
YCsgYICe8G9TsAVs/9q+mfMoXXwr+/OnGU2sqgQA3wACBugJ+ZaAD/tDOwpawxg48pWF7xLwPpaJ
XAFgBAEDdDj8zV3A+/3ws2vxbka+Gf5KwneY1Md1YWAAaCBggIbPQfoJ+dZDZ+fKv028Vq9+NS67
lfFUIwAAgYABhH4IFrBO/42HUu6BLt2mcpuEbxdwXmyDI6wAYAQBA0zEz8ECDv+GLSXifUSuVnDg
X4zHHmZyLQp/w8G3ihsAvhYEDDBHBo44WILV9Sj3nYD9l+PMa7CWDIE1UxUAwLZBwACmfgmtD7oc
K/uOAi7lduOgfknXkc/VBY2AAcAgYIAO3ZJQB0HLkxMHSThLKgbOgX5BHq5DOq8kAAACBujQcVhh
4FRtG9q/lS6qN9ol9VsCALgJBAzQkQc/O1S1aIPjTuiKgRUFp4LrtwQAcBMIGCDxT0GX4QgBOwS2
XcO+0q8VPBpX6esGxswAcAkEDNChAFgHPsdPw54VKV//XJTQw9bNR0s2MlkzAACcBQEDzNBR0KnY
rudZeZWoyL8bZ2Ogwkm3znisSQu0igAACBhgRvhXl4GOn4b0WwqWWWuYcm0j1XMl/ZZ86Q7ZOyvk
L2zOYiEAbBMEDNDjGyFZoD4Oqwxc4s2ENJp5/YLauUU6y9fsdLlJTAsA10DAAD1NwHqkcCXZpKXs
4Kxx8A0LlY3Y1/4NVDF/XwAAZ0HAAI26Coe7kW1aMVq3lOuhBSv9usNZz4Ovn+XrPXO5KwBYAwIG
aPQCri5oy9U46LV8oyT/slgDC9g3W7CIqxoAwAUQMMCE9LsbdnkUVutKTtGmaf2UXjPjh35ICn+l
bo+sbpXOWSgCgA2DgAE6dB7wz09ditI9zO0wLCnX417FlYoi9TyPBs6yOaclALBtEDBAj38Qg38c
B4XClqwHlZ6QUytV+4BzJ/Cg2U8FrIOjAQBGEDBslLNbvoLgMGtEvr4gVnNsRcKTdU2m62a/SWhY
+iXgBYDLIGDYJO5pPiLLdCUOKbQd4GzDiubavrDSB+8DloTzMCx7O39hAhcDwAIIGLbIbljwb5Yp
AI4IOIJan02UlnUHdGnXY6djILsq6aOg/Qh9W7geAACcBQHDBjkf/yoRKrZRLdaUrGj7gPthTnRa
7q042FbO35drAAAsgIBhe/ieg5U+pbqg1Qc9edaUbFOrLhGtULGvBJwHW9m70wAA4BgEDNsjFHuy
3UeB+p4l5xSwbJscJfSziaQy6qd2sbLabRz+Tel6dpfmAADgGAQMm8LbezjWmR7ZVziMdR/0KXKp
x7Jrhw1bzvWvygMX5KPKAQA6EDBsi7Ts0ma/GzTRV8LSpbBOadbV76aQcp1XkR5Kpm01Vo2c4iIA
gA4EDFtCXcxB5eZ4iuSsOwqmX09Jp05p50bZKuep/nHVhG4KAMAEAoYtEQKWaSs3x/Ld/SgEHqYu
aOnTIydKrpWRW8uxTlUiazgdw2kKAEAPAobtsWxgC9hxsAQskeYgyWRXEOgHFEUpV6cyl1P0qEFN
AADoQMCwIc7EvkLiDazh4DCe9tt6o23QSiVl1TGZmXpWvhKVAQCYQMCwJZY2d5dl97MM7VTbCWyB
dgr2MNOe2AqdiYQfGui3FX81zAcAQA8CBggc/tYhWkFdzSrVKgM7XQUiTdtU64wtq6RKpofylVAS
AKBAwADpXQW+vgxW7QOOX4cuq9F861GNE1dxYYxy4ESW+C9TWcPFAAANBAwwCVgjk0Fv63xu6Bdj
l6ZQM5GObYnMaEIrS1ySxQAAAgEDjD3PgewbA10MWrr0MC8LXbkqEmnYTDhVvyqRmSzPTCsAADAI
GKAXsMgIWF4d6WLhVpp6Vb4SLamhRethTq2Bhx2zDABsCwQM0LwbT6UVBKeBK/I9ImVbMtXYf+3h
wix3SeVz5IQG43RPAIAtgoBh89i+whfKsoB1N4Z/+7RwQ850JOxEWlQKbQMV59hTPH3MtIdKJpR1
3rUBYFsgYNg4ad42lIEzAPYx0DPaGcFNoaNK5VHnyrDl2vHPvzRN0cgp40yOsw4AbAoEDBtndG9P
Ow/J5Ei/lnOkVNOtrmanurAl8+E/F2qQmXhqIgBsDQQMmyf8q8thybtl3yAdOWehqMgpadQYVtKJ
caifm6Y5nWV9AgC2BgKGTWP35o/A8pV+ZeCDrWg7ThyXdFmrdPRpjmugsX5qfmrofNZLWjkAbAoE
DJumrFtJZx0AD7Zl2jEY9wZPzpQ0KyOc1sA2lWH9+4pHXk6rCkRlXeS5NK5pALAdEDBsmrKu4mDl
JgPLjOnH2bCNjtFvqbBOO6seBo9dMo1bvTYDAGwOBAybRsJ1J3QLgrUj2H/tMtDnmE1NlbZnDKVU
l+pH5qcKM53JVsnzqBQANgYChk2j7T/j3soX7RTg7kyklGWjMlNZS8m1NmoJ1inP3FKZq8KaAQC2
BwIGsIEraX4k4IORIov0pbA7U6LFmMhkPFXDblUu0/rBOeXnNM2FALA1EDBslLbl57jvg04BF2VU
0cbCFq10MtUqx1qqSlZJ+1MdZ53IiioBgI2BgGGbdBu+hKun/et8MISCFQRLk8lk2Gmo0SxvlNaP
q542bGZatcyo3BM1AICtgYABAjk3/ZsK9gUpKwIekT1nBUvEj0o1pVd71mVV0hJVXEWZzx8kAGwH
BAybpG33DnmdtX1bJnLDQQpOSdawtDnhyfoTMczqUzWpNfWqZJb0WQ/9O6yxU5kAgG8HAcOmSes6
+NWFKDOj4twLXJpMUprH9DWSyLkgx/qVpWD1SNfW1Nl0/x5VmAkA+HoQMHw31zfwqqHdvsOQCnYX
9EkHdJnzmCrv6kqrU1IVKusJLtIzc37kqAYAsA0QMGyXsdNZOAYOA9eu4J8QsC5hZVtqmAMRqp1s
O5YaV4+BxzXRWh2zGuUC/cyJGqiORwCwERAwQGD9+mFUcli+JVLQB8ZdjUg6l+O0rFOWrDM2baug
pKolrjPmAOD7QcAAQXZA60ZITcDDQSciLTErTbP2WLAeJ5aqS23Z1GyWx8DPnJ7TAGArIGDYNg52
4+GbENYgORxCwaHE04tCjwa2OEdaUi7NcQ5s1/xzrh41oVk3c04CwCZAwADaGZwGVie0BRwDCbhU
OqeLgO3NOcrLqR45oUEmvLQqU3YaZMIpANgICBig7QEu/Q55VpLPA55kK3e24chRNtXahk5MD2ft
WyfbKBMur4GLPAKAbwYBA0i46n6Wgd0NLf/6ShwRAxfpy57qmq4JHknXStikJkZOpVMjnX8qdYmz
NXS+pZ0EgG8GAcPXc3kbD9VawWXg7Ih2n3SEv4qALdDEyS6/hAVa6axc+RhYrX5maeZbUtJVQf4y
cwQA3wsChq0Tro1BRr5h3xi6Bzp0XJfisC+Nddnlj2j91SlVG1UD51qqpkxF+hVOlZt2XREAvhoE
DFtm3Pzl2+x8bv51dvBx0EVascY984Kq4aedWtM9VEFmNXHM6+HK+bMMPAkAvhkEDCAkXGvXAo70
j6Ph46tBe9CPlslJMWyJsbZ+dJkuyWqswkxULgcA8NUgYPhqbti+HfPKwUpqMB4DLTF6lLRxUhMb
mZVAKxNjVxgnZKobeehHjerHCQDfDQIGCPw7cATcfhHhX8vxGHnyPKNTa14NK5XlOXtlYhAjZcaH
/gBgEyBggPJvN4qE/RsxcOqzYYdm8mRsyqEqzEFZtaY0zWZOk3M4lrgCAGwBBAzb5XjjV14nICW+
DGU7sHlEqkzGxJxuetbVYKpbmvVfVtDPMP70cBIANgIChi0y2+yPfgPhXml42P87iX9FK7FBM5vP
sepUIx/jJNk1hhq0STJuFuUzHwCwBRAwwBHqgd7pEKzpMKxRofJjJqRPJZQrMh/DVlgVWvZ0UvdX
oF+AzYCAYbOc2/bzOOiQ7+EwqCN6djGOTEiZx7Qp/aTK1aRMeuSEk7kopf3MgZlSAPCNIGDYKuOm
f/QbcBd0DEOK0z35cziNgzRn0TIxVLKb0mGlZiJSfjjpnAYuKLIAAL4XBAzgH8H0S8jscAj/zoLf
jibOkbHAI+dMFWVhPerpP5dIvMo5OYGAAb4bBAwwQx3QioKHuh+/bNmGLdPcGOnpMGkrtKpU9TGh
afk3L4p0m5CLy+W6HAC+HAQMmya2/6OfQPY/x0N3A56EaT02Qpd1o4ZitGjlRqooRrGASCqXoyxX
aZvov0ITxwwAfCUIGDaN491jyr/tStCmEs2MB1+00nuI+ypKp0erpP70U5sKcxhZFTo/DotWAwC+
GAQMMGcMgIfxbvxBalMjifGgqbp1knI5sZ5jbtStk5nvivyX9SrXBvnDzBEAfDEIGGDEvwbrV5ei
VB90SVNyzLEG//b2r4LgdrfCNrnGSmTdLpdFTjiTRTU1Ry5zEQB8PQgYYCTU66HTOgorpJh7euVM
j/yXAXCQndA5uRL6y1Qmq8QjTWkD/fpcrHROrFL9MAHg+0HAAMn0U3DKV+IIMY6HWilRzpwEnBFw
FntSJkSNm19Ht3qCJ7ZyV3JKk5VxCgC+GwQMcEz+KNQDfZjfD8maDA7eQ6w+6DpOWt70JMuzXO2q
lcqch1VXKf3pV6hHn/UIAL4cBAww0f0c0rGdgTurDjlxF1Gy8xrYoFXB83hKIJ0qo4F/c5qgsYZj
cY1zkBUA4LtBwABB+x3UWAdi6SgsBcGKgwtLM54RAVvBu52LLU9PkDg1tLSrIP9cxblM6cdXE12S
gymhYgD4akLAKBjgiPhRVAR8CA83AZcfg4h9Y3oLgAOP21QFy+OUQMl8Wq16+sencc6S6cxrrAEA
fDlEwACLpIAlWckxtVmmDL3qFKScknZWaTw92fuAW3GVtLFHGurH1xJKZdLDVgoA3038K1/tDcAm
OfcDkIDHq135OU/Mjs4KIpP2dOlBBs7pOcGjnJrVPK2l8um/HADA95MRsDrc3OgAQFK7eXUclmyb
/qyBSFNmsv5yVAFwCrgm5aAlWnKeij8XxBAAtoAFjH8BenwlrGT34wOtFO76YKzwoySpkcixC+1O
p3Xo9HjkliqrfpTXOEdZuUo8u/Iurx8nAHw340FYGBhgRAdBR+ybB2FZpod9ZGxHidOuHNOjQdOq
Cn7TwRkF59SsEKOqnQ//CDXO8vxReggA3w4HYQEs4vg3FNpORtpNpxZJlWMyx1Wo+vksVJaV5NU2
aNVzOBbrB1ljAPh+Whf0OASAwGcZyb3x3DkOljank4vit+OR/zLhewRXyByDOn/J8+V0DWvGnFul
NUmDKQEAG4CDsACWkEblXknYkXAz5jjKpAWqsdQZ81QQrLlzVLNqco6dzKwyTrfSHADAJhgFDAAd
uhdwGNjXw5JCmz4jbUtGMGxrTlNqquJey7cE7KmB5qlHpsei/BsT9dMEgG+nuqC5HhbADN9mwTdd
CAeHRtOY/yzUzLpkHGWJg2DjHcdWt1Fsq5pVS396jJnuDwA2ggTsx44rcgBM7NyTXD3QeTWO+Lmk
f0OuzaYjzabS7k6h8y4trB9ZeVYDPap2DF3cRlVwxEkBAHwLJeAaAEDijuQR+3L/rwJhWzgtmiY1
kYwfVJtL1/EIBWcInLUs2sLOtV1zlHPH2MOO4zwAfA25DxgA5ugYZkezPpj5n+7BL51W7/Pw83Ow
NCdSleqfVtezB7kvWFNctY018MN/OZeLnfQQADYAAgZYwmFsxK8ayY5NqdkHrYO0bNMUaulUD9tX
s5oYtVrtmaR7x4ET+YusMQB8PQgYYIHc+SvdSrvWr/inHub4zeQdGnLQbGqVVs0Ml3UCcQXAqV/X
yGFmLNwsiCIA2BQIGGCJXV6GQzK1TisEjqd+MhX/+ilLK2uJRtY1NUgZq07514M20sNP0cYAsCEQ
MMASut1vCVgilmedGELMOkLLFvXA/cyp1NKvC2qWFgHHRFeopwtVJPnWFFcDgM2AgAEWGOoAKgk1
PaxIeHf4t/s5tIOhc5iRrv2pAtfMWWMYqVSt/1xDf57XCf8IqzxzALAVEDDAAoMOv7JYbVR3SFvA
5czkX1YKnMkpNncKWP6VYC1Za7ZmczoL2jQnAGBDIGCABfL+CxnDSsAuUUHZUuiqG+Xf1tPschW0
UNhF1mwmxloq8yDzOcofJQBsAwQMsICvoqGY9ycMHMFsXZFSmfjVKOANRv8G0mla1BPH0hSrp9Y4
/oxHGlRCVQFgQyBggFPU47zfaxgZydcCblp1j3MgIdvP1QNtyZpWbbLtzMRKeeSEJlfKP0oA2AYI
GOCUMG7oUwGucxJwutbSLQH/G/KC0ZWrPxHFCoT9C9OUfIx/GoxlYzonAcBmQMAACyiulYDjmfGw
g10bWINkONQ9+Eu3nVo11O9r/peCzYxyrY5zlQWArYCAARaI2NauDdwBHR72Qc3pWvEvAuBwZppa
Zc2sex0qnS51WZXnxNJuZlo2U0oDwIZAwAALaI9v7cnNwNcaVtBra3qayv+FpDXZP6b0aDk2k/2f
BjV1+qtqWqbmAYDtgIABTtnpQljJ4LTv8ZtnAUu/8rENrVORMv61R1Opo00j6zmccHr6y9E4Zz4B
YEMgYIBTpNvsfw7/Kh7e/bj7+d+/6oNuJxgpmQc769ekQpfmr0uF4zQ/s4JTmVRGKFdJANgICBjg
FPUr5w5fGVi9z4qC1QUdYxnW+jQaZ1oOLZE656ymuSjUXQX5qApTkZ8AsB0QMMAJtm1FwCbG6oX+
d4hY2NejHNUp02bWCZdZpU5orAkaKWjOYv+5mv40BoANgoABjtllF7S9G+FvBMCp4sNB0fDON+iX
WGuYySC9mn+V0qNG/r3Zuilcpz1Z4yypBABsAQQMcIx2+FrAI+qRDrQzWIdkWbdG+3/lzUhapk6n
SiutssOhSTZrZFKJGjSmFAB8PQgY4ASdBTzofgzeD6wdwZEYDvFjCf9OfdCmjZ1yxj+szMdTf+2m
SJqU05OcDADbBAEDzJFmffSVzCvvuv85HnU8tK+/YdlapjVUVulIOetE5nXzhjZBvzkPE08emeoA
wAZAwAAzIsL1KUeDJCz1WsIycKjXEfBgqc4eidwaQ5tUQ5dEyodfZQ1PbNTknqMsAHwxCBigR4b1
tSd1fu8hfh8WcA52Q0z++Qlr2q3j03bVr0n+VEkry9IR/+Q6XK8rPakAAN8MAgboCcP6MCvFwLrI
Roa/URKJELOOwmpuLX/aoWlSG9Rj2dbDveLfsX5NL1w0ZYNZBgC+GwQMMOK9vDoJKbUrAad5HRRr
pN5p6zTlmeN0rUvs0MxVkfqflajJrtBw3Z55DgC+GgQMMJK/BoW72ufrS07Kv+leR78xitIoL6F6
5HGkXDLmM6tEN+UITa9kcloFAL4VBAzQEeFvxMB2bgo4HpKxO6Yt4gqATelVbh0TVmpOy0wW+m+B
o+LFOgDwlYSAUTBAoi7oGCjUDdcq+pWApeNW9vOTEfBk1/yzclXQvKunf2FZpoF/caZLXsoAwFdD
BAzQaD8G9zXrkCv3Q2cfdMXA8ZROg3ZThjaIH1OJt4osU2XGqfmTGwfFuTQAfDkIGOCYjHbDwPuD
L4elfcKh5OqFll7Dpj4YK43rgf7awCXNphq5MLOXwcAA2+FEwAgZNo8FHML1pTgcCQcWsCjxyrWp
2sDJ9nBpr9LIuTYAQAcRMMAxO1lXl+Ao/boPWu61mkPAJVkLtyHPdlPsXP/ENPYEAIAeBAwwI34R
edkN7/DNDmgNdYRWODhSzbFNtnlHpJRs/eXU+o21BwBAz1zA0cQAbBr9BiLKddAbVADsfcDSr0Li
FKwD4Xx6NBq4xqNxlcgKAAAdRMAAPQ6AZd4fXfRKdwC2i71TWGKOZzlX2KxTyvpVQSaLNDACBoA5
CBigx/t5ZVxpV4Gv0hETl4RV2o6Dlmqt3xxbsuPQ2k2iwE8AgB4EDNCjqz07CPYj/pyufE3QcdB6
FnJuG8u0me4M3CcBAAoEDDBnN/zoAOiSrgssYgk4kingfIRoS7dtMEvmTyxHSBgAjkDAAHPqYOcY
HZSUjNPHPgzaqWk3sBLtWd5teT0AAM6CgAHmuLM5lKtU6FjatXU1UDjsg6H3vl3/xMy9lTnvX8wM
AAgYYI5Emwq2auVfSVhEYaZjUt6nYRSvKfPGIEvrJ5YjcVoCABsGAQNMxM9Bl90IwXb+VWlKWEnL
WeFvuzP/CdJvPutX1ignI2AAEAgYYESKlVwl2S4AzmnVB61EHYKVBj7xcBPwiWhVgn0BoEDAABPx
cwif+uJX8q2UbOkqUf4tAQe5G9iP8dZIGkq0lTpCAsbAAJBIwNnAAEB41jdACvo+aFs3CtLJErCE
2/qga9SQfNPFxwGvSw6VAYCtQwQM0LEbDu6ITuWmcfUvqnzsuzL4VCTr14oN0sbiX3OyflmKdZ0C
AFgEAQOMOPCttFzsGFhJ90D7rkiZt2enQRHCdVY/rMyf9kIDABQIGGCidFtkCKwzgrNDWkb2hJ3j
Xsm292/DgW+NNaqfWj6mAgDYOAgYYBGrWGcjKep1aJwhsSaEdqeO54k6N7gUmyIeSQFHjahTRQCw
aRAwwBybN0e6/nMYuAm4kuqcLv/axJlI+2bOsl3UrKdyHBYABAgYYInph5He1dgpS1iybb6tZ59N
Ay8p2JMrLYiGAbaLBIyDAS7RDoaWgHOvcIS7wq7dt7OSyr2Bxbqk1oMmzQJgBAywWYiAAa6hqDf+
T1UI7J5o7RqWbptwa1wj/az0t6RWdAsAIwgY4BrudrZ5fQiW4+Cw7ejgkG1zcUa+lvCigbkOBwA0
EDDANSzfDIDtX50PLAGXdQ8h3VSxrJv+VcLpI5atDABbBAEDnKd+HileR8EaD4fdEHa1dFO1sq88
XArOgaYe05WgYoCNg4ABJqbrYCWZDfH6QCx5WBLWo5Oux86GU0cLV2b0LL4FgDkIGGDER1s17U7Y
uInDYCV8DLSPhLZ5x0OiCzk4fl5O1G8NAGAGAgaY0GUng+5X4ctPyr92cO4JrrOQZF3flyFNXKl4
ZgTchvVTAwCYg4ABkvgpVATcCXi8O2GYVyq2gFO2OhRr0L5gEdUcDHuKfljp3y7+nVIAAAIBA6R8
4znebWEkb4Dk0FeJNLCOgXbMG9Z1yJtJZTIMDhz5TvZFwABwDAIGMPolnApYBzyLsG4kokAeTgGn
aG1gydcuzr/qfab7GQAugYABGiHaFPFEFLmnWT3PUxys62DZtDVSVgZWQQpYCsa/AHAJBAzQkGHz
OKz2s5B6JeWiAuHqgrZu7WBLOHFR0IJgAIAzIGCAROFtDA8ScFK21QFYbexEkO5NAeezDo2OlApO
/IuKAeAIBAzQ8LHOsnCh8HcII8dA4vXUioIl2SCFW4M6DisNLOpHlmBgAJiDgAEKH+NccW/ItnTb
zgRWiXYBBwffkV/S9aMGGQK7tFG/MoOAAWAOAgboUAAsxUqnFfZOJwI3OcdDos2O6JTufq+wOM9L
agKu39gICgaAHgQMMEOy3YVKFdCqu1lRr92rQe0WjuKQ7k/uCbaBQ8c/ukCHDOxSbAsAV0DAAA2F
udKrHpaw8tau+qK7PugUcIrW3c8xVt0wcOo4SuoXBgBwBgQM0LBw07BKSLkt7lWRULe0PKw+aMs3
I94YDOqrtoJTzP55+Ucm8DEAHIOAARryrtV70O0HlfLTZQ5/ZV4b+eenNFvD3S4kHAIe9RtPn4lU
vzMAgBMQMEChE5DU+RwabfJVZ3OM7WX9VEK/ZWkfbGXdyrd5VFbQzk/aH8K/+oER/ALAGRAwQCHF
hnN1MJUOvYqcDoBWKKwe6Ix8LWDhvub0rUJdaziGKeCUbpoX/wLAMggYoKH4Ni88KeGqQP5VyKvY
NutY04FMm9Z16OvwNwtiFEPHviVfHAwACyBggBHr1j+JkLA9PEQQLNse5GGVe1oMhn+597ch7bY/
u7fZFwBgGQQMMGLjlmkdBSsnAWu3cOBKaeDQrOLdQ131WQFwFsXDvyz8CwCXQcAARXjVfc5WrVXs
pA662mlvcIa+VdPylXnrKQV72MSLgAHgMggYwMQvwbFu4iOfQ8e2rsZ+VlUxSLoybg00jrDXIwCA
FSBggEYYVnt741E/C3u3TFxd04UuhZXmTZzQD2oh9MXIALAEAgYYsYDTv/5h+HocUm/ExFJxR4uA
A+0Frp7n3rVK58HQmQcAmIGAAUxKV1ezmuLfeDb7HvVA140YGtOu34bzdEcDwHkQMICwbRUB517f
VqT9v7KwzgKe/VZ8ulGhY59nro2ySgEAnAMBA8itPshKI4m3+1U4kwKeMUbAGvoI6PpJGQQMAFdB
wABB9jHHr0EBcAo4fxqesCDgne0bWMOHQ/2gAADWgoDhk3ne5qsIOEbV19wt1wdh9TFxMgrY1MU3
/JsCAFgFAgYQ6dhT0SoEloGV6ifmDYGrGzpAvwBwIwgYIMjfQafYjILVHa0TkJyb/1b6w6DbrwkJ
A8B6EDBAkPt4p1292hXsbmlFxhEEt9KJ/jDo/C1x5BUA3MJ5AWNm2BBpWEXALdrVWPa1hucX4TCh
Xxs4Bu3HVGMAgDUQAQOkee3dDHg10sDlFnAJ2sMgph3FvwAAN4KAAdK9YVqbVea1c6Mwnj4EK6hq
xU435C/+nVwGCwDgOggYIEjnutfZAg7r5kMBsL2sYVUWXQQcM5wY+JETg4mpAbYBAgYI0r464Fln
HaV9DwelHB1LwiXgDIYn//7TrfqH+j2NHH7utaiXCQAbAAEDjIRJrVndf993JQwBW7fHwwh5LcoU
cNSr39PEz2nROtAvwFZAwAAd+XvYKfY9RGibu3+lYY08MQfSr+yrh+rV76mI8PjnzhAY/QJshknA
mBg2S9i1UkH4Vv4dDvuIbFO8yipVNXwOUiFjDsORNg/Dfvi5ay8w8S/AdugiYAwMW2UI61bSAg7b
ysBDlDtlE4+T4ynvpn41OGF/2P8b7hEw/gXYEHRBA3i3b440DOHqolgWrwWs4UzAQ3Ovqd/S4zic
BoCtgIABgk7BZdzybz2zUo59BNYUACNNALgLBAwwJ7xr14ZtK/bNo69sZo0PXfDrAQDAHSBggEKu
HTWrtMxbo4iNRxFbuyXh53Qb43CALYKAAYJRupFS33OWBkpWF3QOf4YpACYEBoD7QcAAEdoOh3Rs
CXg8JtpRby/kuX8dAWNgALgHCbhrXAA2hw+28jlHCnIDF+S0jHrHnOj2ABcHSbh+UPewal4kD/B1
hICrcUHDsE0iyJVzdeVJJbWzNxKaEL8J+9fVGmHb6TIcI/V7AgBYzdgFPfsnH2BDhH4Pw48uPZmu
lX8jMf5vOqOuAi3c/Rwyto/rBwUAsJY94oWNI/86+lXX86Tfk19G5nUNjoZULPveddErANg6IWC1
K8dtDcBmkHEt3xjp56CRCo8M7ILdTMBB9kY/cvdfANgqTcDHrQ3ARtC2L//qroL+GWhw5ucQxaOA
a0ewRrr9Uf2gAADWIgGP/+7jYNge1m8diOWfQTr53I9BAq6wN/ug65d0OL4jEgDAZbQPuNoa9a8B
bI0871fu9eDijyAmV+A7RsBNu5GvFADAKizgal0ANoi8q5OB078qyPKl30VUKO0GZeD6JQEA3Ii7
oC//1w/wzci7Gibl3TO/iQiAx5OQysD1QzIciwUAN1D7gNW2ZBMDsC0cAKv/+eA9wSqqn8RE+TiG
h/0Qz8ZRt/NhRzwMAKtJAZt5kwOwEaTb2Pi1K9hnAGfJ7AfRBPzzI0tPAj7ugGY/MACsRwLOliab
GIDtUf+Fhn6HwZkScaGJlT+5EHT9jpKTAgCA81QXtB4IGDZIbfce5qHQvgyHCxv144hyO3aMgOtH
1IGAAWA1dS1o7AvbZPaPpwLgI9K8rVInYKXqRwQAcA9NwB4CbI15X3ONxVE6s3Uv4DJw/YbmoGUA
WMl4NySATXL8AzjJy74VAh9dB7p+Q0coNq7kw3BeE8A3g4ABRmTaUyPrTyLu7kR4sQf6wqQLLB1B
fRgqAQBfyP6kvQHYJnbv6c9BxTllPATaUe55/0rBlb6BxVnuWA4AfApEwADJafCbKCr2pKNzkOon
FMw1edHOAAANBAxQdAaOxPTLcAg8/Oy6E5BE/YQWiInP2HuLxQG+GwQMkNizLT0J2FrWbmAfAt0F
wfUTWoa9twBwDQQMcBFfIFoWnoW/V/xrU1caAGARBAxwyhgKO/gVrQd6DIHrF3SW/QOd0MgbYAsg
YIBTrNxK+o7B3THQIn459Qs6z90SRb8A2wABw9ZZ+Am0+xImvkuSA+CpF3qNXu+9NxL+BdgGCBhg
RsS+x/dCUjw8XQXLEeqqKPXww6FYAHAWBAwwIdP6fkiZa8/m34yAZV+N6id0PmI9DLsbdwQT/AJs
CAQM0FBPs+JfhcBdH7SS/WWgqyO6fkIX2e0qsY51CwWA7wABAzQc/irodbdzFSr/s+vPQRocAK+S
5erTgVEvwPZAwAA9qd4YVt60PcD9eUirDrGyV9d0Q69bHAB8EwgYoEed0DJub+CTi3Ak+RO6as79
sMrACBhgayBggIbMa/9qPDsUWgJOCbcAOMhf0FUBHw73RbcoGeDLQcAAM1rvcy9gXwa6DDxRv6Er
qB4CBoBTEDDAjAqBx7E4RKBb+g0vttRalk9Uwq8AWwcBA8zRgdA9ERKHctWRbP3avflYx5m6q+cH
gC8FAQPM0W7g2c9iJ+d2/c9Tsn5Fl1G1w4BuAeAIBAwww/6dHYGVe4AdyDbUraxR/ohydAFLu9LL
4GeA7YGAAeYo/tUNkMZsRbyWZCYbay806TkvHguNgAG2BwIGmNFOQ3JGDAdfhiMcaem2UVK/ozXs
uDMDAPQgYIAZ+Yvofhe6C2G3Bzh+NDnO4Xr2t96ZAQC+GwQMcEo7DCtG2nurS2lIuZbuvRHwykti
AcBWQMAAy+inscvbIHUBcBNwabh+Rxf34U7TMDAATCBggCUqBt4d2bdDCq6f0SVcqSquPmoLADYA
Aga4gO3rwaznWVkX1O/oAq7S11sxDwBsAQQMMGP2i1AH9LkI2KzQ6XGNDIPTy8gYYMMgYICzhHvb
NaB7pqL6GV3kWNKtH1r2vrwA/Azw1SBggBndGcDyr//OsiIAPl/lZMJxAectAXw1CBigZzcZOP0r
/Z6TcP2KrnBcr89eXMR99xEGgA8BAQP0TD+IOgEpb4PUEUIt6kd0L1rA44rF0gCfCgIG6Bl/ELt0
b+r3JABOC9ev6F6eok78C/CpIGCAjvH3EPFvWFf6df/zZOAwXo7u8S+2BIARBAzQ0X4Prf95NO9k
4Bb+3hUAY2AAaCBggI72ewi9SrkV+04eHuUr6kd0ExgYAAoEDHBKdUB7kO4dDTzyFJfiY4DtgoAB
jhlG+Tbvnuo3eII974uiAeArQMAAR9i8o317BVc6u6Fr+BD4F2DDIGCAObvQapjWjzY4ojNw/ZDu
RkupJABsCwQMcIR3ADfvenicTPVq8Kg8NT8CBtgmCBhgxmHY+bgrXYRDhp1FwCndafywgItnLQcA
PggEDDCxqw7ogxU7mrclmpRlzKJ+SI+CgQG2BwIG6LGAS7gahXJjVAXxa9mlgcei+iEBANwKAgbo
GQ6HeKRcNUoB76Nwvx8iQtYlsp4e/04gdIDtgIABRnY/uyH+wrWzPmgb+DCEnXXvoSxzaf2KnoUU
P1QaAL4eBAwwEr+GYSezOu7VYLwh0r/wr+6Pr/i3vCwBzyTskrVk1X6O/UFd3JUBgK8HAQM0drvd
MORtGOTCn+EQEbFiXml4iNhUk3qaRgMl9oPi43+qfb0veZrTQXVE2B5K8gCwCRAwQLHbxSP9ux/0
w9gffn7+HXYOg23bkYyB60c0YQvL19ZqK7lOLHAYUC/AxkDAAIX8q+tQqu/ZAbB+HvshUlHoqLao
Luj6DQEA3AUCBkhk353OQsrw92cXQWlk5OIY/xvaNaKFChAwADwEAgZIdrtd7ohVz3PEv9oHXBnv
pJWPLeC0MAIGgMdAwACJIuDsZT4o+G0hrwRsLWuCjXzI3bUIGAAeAgEDmPBveNaGjfBWobD7oyXi
NiEF/C+U7BwOBoBHQMAAJvzrM3ztVqvWV7+KoHiXl59M+yqh2j5cmgOXAeB+EDCASc1mJ3M8PczE
fsiLU2aufjGufogQ+LAjEgaAe0DAAKJdgbJJt1GHZblUV+PQFSnF4LsWRgi8+7F+1WstHwMArAQB
A4i6BEeoto51LhWnelvm58cDEdV03ea9ijTWCcOHvAoWAMAKEDBAEkaVVG3ceGocD6k1C7LQWYXB
2h0cvyAHxDbwoGtF74edl0CvNABcAwEDmLzi5DCUaw+7MRIOWip1HD8cSzZ/QYOuEh2JH9/JSNNj
GVxYEgCugYABTFhT+GobGf1KyGnjpI0b9ROqkX5JupCHeqEP4fEsBgA4BwIGEAp4R+fKoWngY+kG
2Sd93Mec1+sIAecu4p1vowQAcB4EDGBKv/ZvStiinRnYmdYLPZJ7gwcfSP0vryOtOwv/EAYDwCUQ
MICZjr7SyOPKHCHh1s+nJ6bEXNbxoCOiB93FIRdaNQAAehAwgKl7LWQUbO8q0R4djnevoTpaThhY
C6tSAIAJBAxgfGlJ3YpQurWLEyWdUYxb1K/nPBgXAK6CgAHMTqKNRySmmHe0r5gMXL+es3CRaAC4
DgIGMPZuyNYRcPZEVyI7kSM9Grh+PcvEdJ8YDABwEQQMYELAY6wbZDg8i4CDVHD9eBawemOOzAEA
XAABAxhFwHZwE67O6XUcPDr4egR82EUlXwULBwPAFRAwgOl3/SYRyrYIeD7hslx9TehLAsbNACAQ
MIDJLuhUbvpW6XkIPFG/nwWuXoaS60QDgEHAAGawaC3d8m2mMxMDha4uF+cd2uk16leqJ5ZVKQDY
NAgYQOS1oGXd5lxlpmRJszKHcwKOaZUCALgMAgYwQ7jWwW+7JXBnYdF+MbPcCegXANaCgAGSna7e
XNfDCsPqWCollA0Z1w+mGbgyQmkVuLCfAABwCQQMIOKHoNv4DrJvHkUVBVKt/dvvtl10bBTuD//Y
uwsA60HAsHV28RvY+RAsWVSkgA8/P0Pkw74z/xaLql2qCACwDAIGSAE36qfhH8dgJa/XKv4FgNUg
YIDwr7qedRDW3LW7XSVOqGr7w46zegHgPhAwbB33QOsWDDoEOsTaK3ge0Xa5CpT3h2G3m1cCAFgH
Aoats9v9DEM7+rnUOjm165KepUe49SAA3AcChq2zC/364OcKgI/uJbgk3YvcPAMAbBMEDBtnp6Oc
8yDojIAd0d5v0TNzomUAOAIBw9ZR73OdhqRDsBZM+Qx5ImAAOAIBw9bRVaDzNCR3QZ9e5vnMXt4L
Sj2ZtLj3GAC2DQKGrbM7HAYfAJ290L09L3rzwtnBJ/PhXwA4AQHD1tkNg/YDVwi8/mJWK+vhXgBY
BgHD1vGlKOt+/Lrjb/00ngUCBoBlEDBsHQn4MISA95dvpoBJAeCpIGDYPLoShzqgxdkIGP0CwJNB
wLB1dr2Ag/ppmCmzIOC+CD8DwK0gYNg86oIu+eJRAPg1EDCA7sRQ6DeRPw0AgNeCgGHj6FaE8UMw
FnHejh8A4MUgYNg0O92GYdDJvzawTbz+VOBLcJckALgMAoZtI/n6SpQ+Dit/FAcHwQ9q+PSSlgAA
PQgYto3O/3XXs+9IaGlGNCwDT0dktdTMyNNkAIB7QMCwaXaOgOsspIxaY+zMxKKAOVgLAB4DAcOm
2XknsO7GYOdqEKPwcDsUa2biB0DXAHAEAoYtswtCtTJwoB+EB+6BPtkHjEMB4JkgYNg4u4N7nMO/
IeGyrOJgHxo9BwMDwBNBwLBtuotwHMLFIyFjnR88QwJGwgDwJBAwbIz5Fj/6Vz+GuXAjKK5UpGN6
qvdZ+4QBYPMgYNg0g/b1BnkgdHU6l2M71apPGvMCwFNBwLBpUrsaDL4gR+9ZjAsArwQBw6Y42t51
AJZOBJaCw7cRAXsMAPB6EDBsmDoAWoPsfo5x/jAugqIB4AkgYNgYu2mTb7fhl4FvufRzyhoA4CEQ
MGyF3NR3g0fCl4FutB9EjS9DNzUAPA4Chi2hK19V8ufncMjOZ9F+D51ZkSwAvBQEDJthZt/Idv4N
2ep5fOUNAIDXgYBhq7SDn038FAYHvdxHHwB+CQQMG2Xozz8SOrJK14CuLADAa0HAsE12XQBcvwVd
FUs3Ycgs+4AB4LUgYNgmdelJX3ljCoEjNQyZAwB4LdcFjKHhG5GAj0LgRNekrCQAwAshAoZt0Y6E
zotwRPwrC9evwei+DJUEAHghRMCwMSzgXd6G0D8B419DEiFwpQAAXggRMHw/pxv5EP5tt/sN/Wpf
8IhvjFRpAICXgYDhe8iN+XiTnuUjs9vthqO+Z6VmCp6FxAAArwABw7czu/yV/avb/urvfKCLfwHg
5SBg2BbS7+6QhkWzAPCHcBAWfAWrNtOdo+HdMB7mjIEB4O8gAobvYOWGrA7o3XipjeyDfnyH734Y
hgNHbgHATSBg2BYWcFNlHgjdDoe+k/1hsNZ3nL4EALdwRcDoGb6KFOV0pY0nHO0s/UYAHOx2z42B
uTETwHdDBAzfwdoNWQKee/Ixax7KvslzDUynNsBXg4DhG8hTjdZszLuf3pKKgB+ynPb+9lTxc8C/
AF8NAoZvYsXmvHPHbnPbo44bKgA+5Oi5ITACBvhqEDBsjBTwk+S2l3+bfCVjnAkAa0HAsDHqyKan
CzhDYY6bAoC1IGD4eG7bho/N+5CJu13AFnCF1wAA10HAsC1OThV6LBR2CDyBgAFgNQgYtsWutvwn
sW9HYSUIGABWg4BhW5wI+MK1ONYEx4fRwDGeLnIJAHANBAzb4liR+3PXcF7ZNT0eAi0IgAFgPQgY
NsXCLuCVpj3DrA8a/wLAehAwbIrHbLvEfjoNGP8CwA0gYNgSi4dgrbwjw9lqFQRz5WYAuAkEDFti
8SCp0ayXDXrB0wduBgwAN4OAYUssa9JqxaAA8LsgYNgSZwTMJZwB4PdBwLAhzp2me3jvw6dW7qQG
gM8CAcOGOCcy9uACwO9zTsB4Gb6Qc579kxDzhtfc8x8CwBdyPgJGwfBttI7mU9/+gYFveUkEDPCN
nBXwDgPDl7EbnTft862SizuBkR8AvIIzAt7tQsA4GL4KhZHpYCJKAPh7lgVs/UrCAN/DonQxMQD8
EeciYPqg4etAwADwTlw8CMvT0DB8BTudBXyq2+qTdhoA4BfhICzYAt6hsnigVXcw8rGFsTIAvJLz
Asa/8P6s3UrDv93NehfNenj0zsAAADdxvgsa4O1ZvfXu5jfLXzLtfvk6lb8sZf4HANgOVwSMnuGd
WddPs9P9etO/l/x29tQkpAgAr+CygOmHhndm7eap/ue06EUBn7kYx/5MOQDAQxABw4dxxzYpAa+4
9Maf35SQy4MAbAr2AcPnsnLj3Q3BGrmdDZNvuW7zAxBrA2wKBAwfyE37RnZDRMDDmvB28HFYC7Z9
pYDbon9J8gDwNiBg+EhWb7d5VdXhsKp/+XclOH8x/AuwNRAw3MpfbzLrXz9qyr7h4FX7gAMsCAC/
BgKGG/njLUYRbSWvoYr278/PkL3LM5Zk+2IB43cAmDgW8B+3rgCXucG/QdrXM80uxHGWi33Qj+sT
AQPABAKGTyJUWqlVKP7NOHjY7dbY7/RGwZ2SX7yHmKOwADYGXdDw3YR6NdztIgJeVtxl7/VTn2tI
hAuwcRAw3MZuqMSfs27T1VUoD6HfS7bDhADwByBguI2MKH+b09dc/S52tanPQLkA8OcgYLiB2Fpu
OQbqSXg3brH06pffUXfwVa/dfesB1ggfA8Dvg4Dh/bnx0KsZ/cHPi549hIkfFjAGB4CbQcDw/uSh
zHex2AHdgTkB4K9AwPD+LOt31aa79vYGeZBW6vguKWNyALgRBAyfwX0b6lr/+kZEM4f2JwlNSTQL
AE8DAcPreOXGtWbZ/Q0YrqtzPx6XJbg1IAC8GAQMr+SFx0zPl3zyOmfO/L3o4VHAvYkBAF7DJQHj
ZnicVyh4XOS08OOXqfh1NOq/Q5asE3BVBgB4IUTA8Ll0/o20qeypZ9fdjvCMoC/Mu26xAAAnXBQw
coZ3YPTq8RbZZ3fDsBvCs0OMa+MOKqaN4Zi4iap/62y/yBNOYgaAv+FUwFgXrvJrG8nFF5p3Ow+H
4ZDC3R/GCLjOLnKPMqICgLeCLmj4C+7Y7GqWGJV4p8DYDFMn88kRzLgXAN4PBAx/wJE7r6C6R9LV
KJ7TYmb6jUi40q/i6DBpBA8AtyMBT60YwK9wi4Dl2UpOqCQWMng5uuFgbs0ehoHbGb1Hnnwi9y4Y
VQNAwwL+kxvMwZbpg9crjBVPxoOPuNKd9nNbTruFfp09iVJxHwC8FSHgCCRuiEcAHkbb29E2d2EL
9KTcTjXbJOQIfA+6l9Gc6QisE+OiYAB4I9gHDL/PLf/wlXAl3hSwMiqJUX+pyZHRyOgWAN4aBAzv
w9HG6GwJeAyBx5IoOFJsZONxKC1PE8fUVAQA8OecCvikAOAWjjego3zK87atrMLeGEnC2u+r5GL8
G5v0MLTU8UUquqth4WIA+GuIgOHJXNyiwps1XqBNnNOVScCDiNH5yzWPU04PuxoLOCILAP4cBAxv
Q78ttn7mkrJySmT8Gwo+q98TUC0AvCcIGF7N8SZ2ZpMrxRbuZa5hNyHyYeB4nNNqlHsn8KF1P//2
fX3xPQCsBAHDkzneolrwOmNps5vqKe4dcYELsziiXwfAM9P1md1P5OZ311e+Eq9lPAkZAOAaCBh+
gaOt7OxGlxPczRym1UBYyI57gxjkub8xuEF2vybgSgAAXAMBw0tZ2L4yqL2ED7OaiDny0KuWSJke
/o3HO894kmp/x9gAsF0QMPw+lxTsGHcSsFIKiTMAdurQDPxvv3Qm0uw0pL8BdwPAChAw/D4h0krN
kXHtWAvXApZ3VV6FP7vDQVeAboo72tMr9hFBR6Ee9AcDwBuDgOF3kWIruUA69zAGwRq42DdeUJlH
aWA9dRd+M5l4r/sRAgC8OwgYfh07tXGUlnSF7KsDr+LPhU28tnM8pdhUbgXBvYDHZOOkAADgz0HA
8Pv0Bp7ZWEi6ga2bDlaRU/ZvhsL9lTjy1J9RsudPEgYAeCMQMPwq1aOcmWUk24yAbV4JuMps4HBv
BMDNsop2jyLe0wAYAOANQcDwu0i+VwVsukQlh0OkMv4dQ+Al2y70QSNlAHg3EDD8NhnVJp2KW9Km
dcZBb6ZUKvHW0B3RV4+06q7UcfsB0YunOAEAPA8EDL+MBDt61ykrdtwQI1XTYyTb1rFZ3veb8W+g
Q7FkyAVLHg4uffBQaC4qCQAvBgHDLyPBVjIyNe5SVrJD5LCuguDEynUi/avHsiL3FfkeCfiJPkXN
APAEEDD8Mle2uAqALeBIhYnDt5GSdu1mK9jh8PVO6J7nWZPeaQB4BggYfp1+mzvd/izZTEm2GuwG
Zyxg70IuAS9eCvr1HDjPCQCeAAKGX6ff5pa3vzSw+p8lYNWyhz3Kvmjpd7wKVs8vHO/MhbYA4Bkg
YPhNcnPrNrozBUa2VfezkqHcLJJ5VZaJ2ox7ni/g/eHAEVkA8HQQMPwmp5ubXKrYttGlxCENHAJu
ZRavdw+fPQzrqezv2N8MAHAdBAy/R2xstmnmAueyfzkLlBtRsYSbSQ+1AzhKDuqZlhZ/QcCHIQLg
kPDDBiaIBoAZCBh+FTu10oGTKugLTeYd52pyBr2pX8WjUrBC4NqOX0cEwBKwLn9ZJQAATwEBwy/T
b3Fl2Sl5zG4IAcaknWJQKdgqTgd7mGHlaXD5tHBzHy+Uf5x8BABPBQHDLyF5VnKJ+bTKRZB7cGwc
At5HSv6VinMgzkjxecdCtwA4+KOzngDgS0HA8GucbmvV8SyxisxUiUcReKZ2TSQr8i3/5uUoF1jr
3+v1LGBFwPGSdEIDwBNBwPCLHG1tFRP7EOcSsFSsUZsgy8q7Uq93+jYDh5kj9eAlMdbMXQb247FX
AwDoQcDwR1i6HkuvIvJOaUIOpFq7V/HncNiHDRWMpoQ1fXc5KL0qzBVG1euVgREwADwRBAx/hFXr
zU8pCVcCDq2qoGJiaU8Th9hStVt3/28vEaePhyHUnUp85eWv9vFqwgquMgCAx0HA8DfIq2N/s9Pz
sUa2rA5+buLTjY5aEJzPNqHGRzxFzHq1cjAhMAA8DwT8kfz5t/bYG2jadXTbKP+WeTW2fhUCz71X
4a8NfEWIz4mM7d94uTEERsMA8AQQMNyOuoYf2XDSsznumHzsHbwOgN0Ffdzzax3Kv7/TJVzX4oiB
dkOrAAMDwOMg4A/kj7+z0OJ+vz94P+2dpH/1QRz4OiHjaiAqIQHHxIxzZ9LT/RF8h4QLKnyWJWM5
8r2Uz2FYAPA8EPDn8bdfmc8FishzH170DYoeIBybQzl4ZJDaVeCTkOLFfPu//XG0W2HoohFd+ERX
7vUuHAYjYAB4Fgj48/jLryys6BNwfTTU/mEDCyu3CVjyDdnZy2VfDWJDjRcc5bfSgs80sPWrILgK
AAAeBQF/In/2pcm+h+FHXrTd9g90QyelXTFmdOCzBCz3tpeKZx99LicbC0WPYvnKwS9YNgBsEwT8
Yfzl9yUz6g69ilH3+xBj3ijhESzcZCzIl4lRi37TqO6DHvV3xoMu1ltz7pmkfzEwADwNBPxhhJg0
zMwvEwra5X2JZLjDIUy3U+Hqjuhm2R67NtBEj8vz7ueuq28Ule6Lilm+Zns24wU5hlcsHQC2BwL+
MJYcdi+3LErdwnJtDtUfawsNP0MI75FzkuRao4w7n9XPHRYeLdfC2W4f8LEBf0WJjoH96YmCAeAJ
TAJ+ZssOL+OPviXHvYp8d7tDnRarA7H+HUKU+8Nj/8a1A7BSxjF0BNw77sS34+CYxcJnoRhY60Ar
4qUvBACbgAgY1khd+33lnRhbwDosWNfH8Pk5qeT7D4kO64Zxw7qZ0avo6s+5gdb4hOqdXpjehcNP
1qT/7wjiHXI4NAA8CgL+NGSrSv4ePjTZ/nUE7N2/0nDIzntqc2O6vye6GTgW4Ah77OTN0XIPsw1c
HpxqdFWVXJzzbir2z0j4uYsGgM2xz7ADPoVnfl1rl1XyTX6GOv5ZQysuBxoeaoZbkXnj6ZGusnUi
tzNZVau0R8fVjvKP090ZCQUDwIOEgB89kwT+gmd9aSuWkyfkysLxDPEoAnaUKgU3zelqVaHlmuVG
FNSngHXsVSzG26bI5DmTRvjtkTPJrObckGcWchPWbxMwCgaARwgBEwN/HPrGnvOtrVmKTbPzaKeD
sSJEDfMqYwWPDlJS/80dbVFya3uh5ZfTNqjYV6MUrpcn8uTfcwJOA7eJqqWCrvK5+e4m+6DHAQoG
gPthH/B2WfnV27TGlnT0K/XIv+owdvAr14UnpWCdqdSOx7J61cmiR5WdIO8WM5+tVNtYLV5cDs63
c4FHlKnoX9p1p0ANaxIAwG0gYLhCqlbDDFOz+zlt6T22PhpaUXHbpGJS820GtmO2R0urSlFDS3/4
/Fr9AzD364MLPKUCX9nXA42e/iIAsAlSwFh4uyyocUa4Ma+94atjSDc6AitmChO7h9gRpzqlW+g5
6KQlCTUqyU46d2nxRUYF277xWDDZiVLnjJOmOn0ftI3cuLCY1WQE7Kf9mx6uiQAAt5ACXgpQYBtc
/urDi2FeGUdXobQoQ3DqYlZhyLVp152/qbiQrs/kDfJyGj57qRZ4TJRrwXL0YiQ5GvRk4lJt1U/p
ztTbU/8l3IvWROpXoxg7d+a1AAAukKchScA4GI6RZBXo2TQ2apTJuTKquqADabhkmEdkqTCGquJr
dQTOLPazeMMTseyZxdKfs6KkL1qYHGU169LEs8XrsXJH9aZ/Y1RTAQBWox12agfdFMKWqO/9PKlf
331QQbBMLJNqrHhYHdNBZzTFxik/PaPeJNWY0fN0RM4PeToWapF3RG5c1nr6d+N/BObctrBF2qnA
Eq/XSY4xMADcSgrYLeOYgA/mhm8w//c6j7QbZtERzWlgW0e29FhFMWpOi3EFnzFwYUTHkxCVmPYE
dy9tAx/3Pnsx2uFaEj2avI6KzjvGd/MAiv+9WmTdXCWZqukAACvZR/ihVvCoMb7SNMN78MDX5K7f
Sp9Zjhxryf78RPQq6QQ+BFqp0Jvi1hBPZ7VIXnRcnkSsrS3mtMglr9JkjJohtRw9x/i6Rmc5nq4l
azTz4ujfa0u7iN6zV4KHmdPfQwsFgA0SAvYRrdGUVLNrbmvZu8r9fDctA55D/5/UpW9xeZdsj/Vq
ScqWlUnrNAHruhw6EKttTJEYJTdZzolpoHE6N7MZL8czXFmLmhZyHzpTOd5kLGU8OSpf59EFG6+L
Wg96xJ80TAwMALexj1hEAUl6eOI2A5/y4OxwL/0Xl70bS8z0u1hJW4S1kjGeLrkRwh1+di1yDbVF
0mFmKjQ2pqMosIykwumKVlWlqXAc5yjJwhjMSk85N7n208awE7C4epGONdjuXi0WsLN+YGAAuAUf
BV0OHhtipWcB8e10S4NfZLbaL3wJ174d/UMW4W0auGSTWT9z72wEwdLbpLhed5Ga546i0UrPBdlj
XZ8yFfaT51Ut4FTjbPknO4XvwvG1F5/rpnuxqgEAsAIdhCX/qs3Npleo8FoTDd/B4vesXRLyi9yS
nvHZRzoAKYWjUFIC1iYkp5XXXGCOXKzhFH5G6roIW1x9jjOCNrZhvtHsic7iS7OsImfXfnAv3yso
11K+licDAKxCXdCOf6slzub4Ofp9xjLgL3BXs42SwxYOh3GVlYhDa/GQ22Q1yTntpIE0NwXHrXhB
yR4WLXPFkf3U8zX1BlOLKUnVvLzcNWipOdZytV68bnKs1yMEBoAbUAQ8VAislveJgS8x9J/Q1rrG
934DIVxJxYrRo3Lqdq5R2LQUG+iODKOcXBZTIxqMSSoK2rRUodE8MWpuPPLuPGeyxqzeQq2RkmQQ
IxWcVL409xK2umeKRTbtOunXctGtywSADeMuaAXBnS+fY85nuhxWU2s9hv5mnbkVbRBplTSNj7qK
hLw77v6NbUcOjaL4902Km8I/FVcyNVfBr26V1Ca0eFi90V7aSFU9Qq9VyTMcTY73qbdvM9bVmvXO
nQiuLGwJL00fUosOLHcVeqxkZO5YLgBslBSwqdb3WTx/iXCVcZXH2q89C3PWfCfeJyGjpFt8K2Dt
BA5lNgE7pJVDJWDPcZgOp5rp1KpzicaqI9+OdVUsB1em56hsZvXGSZ2uaG85+kPEUwWd6CvRvY/r
aDE2cOd2mVc5D5ytygAA19DNGLJRHhvrJ4kTAf8dUq8NXPmbCItoZmvLvpV7lQl9SZ0qtAxTZzKw
4sHKii7hecZJMW8MFVFnPjkj4Btoi89RQ4LUZ/BHWXqFfb6T+ARnROz33SZ5QfHMQ7D08Ary0vXU
QI+qDgBwBd8Nye30JOD5NTmug2jfjPgq07+zb+aCjvvTgmNG7/O1aNuFj5Vx9KqypqtRWr4kVpcf
hasZFHeO+QqBK2e06BhWbgXnqh6V618FOVJRqRRZxT0pTLvzjKH7Qi/Jf15qS3hmv0KVVXUAgCtM
N+SfGmFFT5W8n8eXAHei7y/9e8f3GPOlVezaELAUOmpXnoqUt5xJq0p72JQVuhunWa8L+qu54xU8
cuYsVyYXs1qxfB/iLzvKj1XcI2WmRWMYVav4DHasluYZcphPvYDlm4OqDwBwmUnAQX8k1mrOzYGB
/whp1/I1VbiOqG0TlVPCv7p2cyAX6whgTY0J3nK6a1COSNieFM9KuGKTUj9DpdtC+klizB9PGJkm
ZCqWpL/E47wjk62o/xw8oUOTS6Q5OqnR0eJpCbfNlU8VBh6p5NJSAABGUsAxsHzVYN/SZl+uesOC
4Gmkd4PjLuiLqGaYN/Qas6VRJF+JVzg6tFK1jzh1mjHxHM+Q8rXvMvQ95H35g6MZsuIpY+ny5ORk
Wr12ZmpkI1qYS4vycVrlVD8vRa+uMfpXM+RYqZqQz0sLAQAY8UFYbn31VKMdD7XI8KmkfttoHa4o
pRSpF4WURUSHMlgEs7tdJsNec6dFLQ3jGcKtKhEOaiF1iah5fU0+LjmqUot5hNLjmf5lf85SaI5q
wgLpXau2JXOeyjqtyQgYAFZhAbsFjmE0H+p/jMbbrTL8Is9b5WPsawOvc3BUcs9zojhYyLyOgb2l
lC2lmEgpM+qxxh55Qk067HSWbyTS1cc6df64sOfStI6uVs7Rz1b9zGesmB80KImedENPcb4+uCvG
syWUyrHnrb+jRQAALBICzsZa3s2GZW2j/S581JttnLzpp30KS1dkqkovE7VkEX33OZaEJdr0r6wW
yZKplNTKSjVtLLrktJM4K/TVRhYLi0vTOvpap3PEuxwleoLORDIhTps0UjUpUXHOvE/bqnM+E/7z
HO6wn0rWvWsA2DqTgL3zLxoStdoxyJb5Axj2D9646S8YV+/T13Ms0N7NZ365F3EFSUQqSQF7EwhG
AYfEpDDdjzDGzmtQXls6Gkt0+szkYq1ltPzbGOvfNqc+dmiz3Jkm7RfgaS5IubqmZjGu7ipjsdKe
EwDgMnUQllsTtbohYBdcbbf/mkFXYKrE2dvebgt/afFsAjY56TJ5pwXLxw5R/OtNQp4VZVgV7ga7
ToXTPtwF56kkSz1RR2NF4rTeOW7tyG1v4exrLLxHU96sYa6FyaDxT0YaNrYyTdLEKsrySufM7a9m
BgC4hAWc+/yc0oUHs0326D3ZqXGOpjFzPkA3k+CA1l0Yku86Aevrl3jkjjRJzBfDCAXDsBXuCltZ
u3WlM38FJbUadQnv/a10jmuOWXgpXFzpnng/J1WPxkm+uSpzZj69WCwUdqw/eA2Vz2XGpFwtnhYp
T84amddYw6riITuBAWAVEnA2IRlGZhe0cNv8TkQrVw17tHF662Pfc+Te7+3+Efripm9wzdconyRO
eVtoAXBIMJSmR24sURjhstMqSffFOP8j6qJPu7nlq67rnMgpKuklZ8Wun9/yEkeL6F7WL7V02Y+L
xFuLV0t7+iH0+rVqYqSUp6ue8LgyrdwrT+laLgDAJVLAEStJvAqdLLVsvZXI0UXW1HkE7Zke22e1
brr9XbRx4eOKgVd5ZhvktxjE95lfzcVVExOtlhxo6JE8UrfgT0q1uuakQuBAhVUa+Pvx+TetJMlc
lcXIM8yr1Am2nbVSqOOyL+Jlzt5KsGrOY6xgUSvB44asqoem+KE/V3K2DduUu94AAGwNH4RlA2dD
HQ13Ncyrud1+Ny3djVk1sTofVRGwSxxxVa2tM63R8q9oBZfQSb22ip7pkJEScEnYX0NExhUBR6ae
wvGuLZzDGZ0bnZrX8NWq9Lon84nFwmKc5nfXvUpwab4zuL85VoGX5ZTC4ERrZlo5nuY3nbWOJyJg
AFiDBdy11ZZxcbnpnlhbr1GSX8VO7zGDK7Ww1q/j38iprWwGvmWZX47lG1+rv5gra0X3GFToJ2uk
VdIhztg/ErBWth6x1sO/nV7GlBJN0lkYw0qJseyoPPCrm1lxMq8a+SlO7nDovczCMi/Rv54s3ONV
pD9n/K5dpqTL9eeS828HAGDCB2E1otWO1mQsudJ4J6sqzal+7jX4+kXRKEZQEW2jj8ZVNKZ+6ChU
c9l6oW+9hdNXMfsSy776Nlv5mS9JfR+yrIaSR4rFHklSwFrlozjtY30rIhOjtcbypMumkqJgrDvi
CFjasoBPJhc1zf97ndAWurDwc8tbSTl4XCFeUTHw+/XAeU8f0wTAALCKuYBb3FS5bMivsKLKCaMZ
rlDdgW4I3apF86akDsVqbFm8I936TO96DbfnGZpB5JMxlTaJp9zjdR0OTo8teUVlMXUmugXrLc0a
uFgv7XcSi4mhJyzi5S7HwLkoVTjzSveTgbDfYa4YvV2vpvxrU6uK/mpOAICLdALWgTtzNSqYutCA
P8CqxeqAZ6P3mQ1rtG46OlXNsNpFlexn/0NslFifuUqdUCpzF/2bLtkdQnuRcjRslySxfp0cv4IF
pgknFY5nUdXlpWQI7BOM9Yau6atbToxPX7fGT2XsjfY71YqpvxqMCSdf8hYA4PsY7aWja/wsN1YD
fsKFFv0WViwmGjM1fT6qJxpdZWRkOTebczXZPqLnE4PgWs3Pwt5N+erRrd/l1/Gh5VaGIuEg5ky3
xFNRr31jtN6z/2GGvgk9kynVqIK2f/ZE4lM2XjNetAn4qr/mCzqu7fzpIk7f3x3EZwj8JqVaOder
MNebSpS99h8EAEBiAbuNbg14dzSTSo5Zbs9fwBCRkUyrGDdaTwk4wzEbQe3p1Ki2HcEfw/q1uPAV
LFDfXXL8vZ0uIo99TpVEVqOc0/0LelomqWKt7l7AlfTab2lllx0Xr1SpZWKy30aYKzIaX67vOSZy
S+hwtpVVVf37dlTtEZp5/RSxcK1PpdAvAKxGAu4b6GiFp3jSbfJfIT249S4FRwsnslF1uae5sf3E
y0GvpP8C9F1V8ggVj9+WM06ZRf9qVVrAkXP3cxg4J0wCjoQ97f98vLWYLtnS/g76Cec9lJXGqvZ2
iswLmb3SCk7qe/NoVCaGty31Gto0beFcj7Vwra7nvg4AfDV9BJyD3rp/eW6P2uXWXKuhy8bNKl5o
5b7XwGs4duw8e/wlZvdzrFENZN9DC4IjCk35ehD2VRWv9JNVnl9Gpk+ZtKgOC49zFESqny8Wout7
tLOb+kmXObMl3LKI+8l4tzIAAPfQCThjICeUV9E4MFNqxpniVZyfd6c4o96j2mg/lHHLe8r3G/jC
uhr3+Xo05pZQsOv4rcI3H4IV9VUaAvalTiRg/8ujh/oc6r+fM/STKj0VVSwci/A4mC0q044onbqF
cwKevaFXoZVSSQCAu2gHYWmUcdRsL3ArNH3xy9n/CyFU453PaPCiwfUjWj9PKVzhL6P1X6F9voXP
WUUxcveFv7OFalF4cHdzHTiUBlba0a/KZFwVpYBzZUdeqSVOSperBYdBLj+mLXb+fa4HCQLA59IE
PBFN+BtEk9EgKzSrd2nSBnJEUsXR5qcgTj/Kl2GtTtFux1iSE48rRN5OlnRtWw0c6QZ5KNFBX7uc
XAauCNh5m7Nb4d2O165wll7A39E5POXy/IvcK24AgL9nP0a40/i4/X6UO5bntjjc4PcoxsZZ1xmy
IIRLQr3Ox6Pm/nrOfleZPV7hUU1F1m4g/8q2Vqs8nEKWgWONp4G9OnOgTKzlyXVRWonxWxGznNOz
yWK5tM16OmGh6t9z8U3xDwEArCYEPCp4TrXaT+D2xdR7q4Zew3haAx7ZzPKD0MSQSbaLH3c+0tM5
s7Jt1yKT0uwh1lxGwELd0DKvBnavw+D0r9ay5JLruz1zwlli+ixE7etfmbXnhqovZc37oE8cAFaz
t2e7Vnu0bu5TvV2eT/B2O9eoHcCjhjyDi2rCS7dtPIZkQS3iLXl4xYzkkk6XFyVLL+L+5Yna3yuU
qqEnSbsaaJ3KwqJ5099GrnANVtHmPeZ5fcfnXuH56JV+7cUA4PuRgN1AZ0OdT+ey6MSm1/V6tcI1
JARJN8bZ3ikWa22fbRxSaGkjV6iCmvWHX/51xLrLvwc522uxvGjLV4NmYUW6etjBmU4Da0KLeR0D
p4JzLbdxoMSYOeHslO7/pPzmzi9jZKHKvKj/76tYsVgAgD9nH22uWvRofNVUdw14HYp1auAav4po
9kMFavv3+xCwW+pmXCVVFIy5HKnYyWjma0HvSK7kV6/COVPwG6mMcwdfa8M56XccqETr32s40Jod
DSzT5frOzmilbmJU5fRlaVTf4TIXJya3ncB09RUBAH6J/U7XXtDev+PTeHx2aPC7toi2MRrUaqrV
UFoD2svrfMhAExrNCK7l2s698znB56PXZ9JeIl5MUu1C33jG0GsylWv1+ply1tpPA/tLcCZXbK7c
oFZ6o8sdTZkRk9rUC7Vu59JrnuGpr994yUIB4IsJAUdLOyhMcqM96SFKPHquL64szKHRaNKpaa1d
hraCCmuCYrJMCTk4slGXY7GSXUlVXctOBDJyCngKep08xHYgN2sNWsBetWPiPAuT50XqychEjpbm
uMK19wAA8HHsHSGFfMce57aPspQ8vyzHQ1xfUF76Si1+tret7Z8cIHEonVUqNRJTs+CLLw59lpPV
60jXdpVzbWBd7ixda/TVK5v+1X9iKWChAq3SIFfuKRem1Djx13IvWlS9l2fy7OUBANxKRMDWbzTX
NRxD3jRwNNgnLfsCa+okF2oeXw9YIa1z8kiWZJRbFVo9l/vpltrFXxYEH6+1i3ll4ttL7Ta/Kh/s
IioeiXL//+WMVmGUaO3Jvw6DHQxrdc6poqVJwWxqZpYrribeRaWexfOOwgYAuBNFwGqV076Kd0fh
xhRbuQm5mOeeSbxQadaD1G+14+260EctcauRYwvYi1CylroJZl+KvknLtsQaAehk4BJwTpOA20Pr
bQx7nbKDF9T3FfI6/VgAAL9LCFjH6ahhdqsdzyZcJ0Vmiyk7L3+EWlK8npv2LuiaOi9HETTXOh8u
KPsm4ZEsV4UNdkMXtc9XjpVS1bWsjHc2uAt6mmqc1oqLurl+c7YqPWLcpbvE6aRc4i/yyy8HAHAf
joBDwmqQcw+h8vKs/Ku2vPPsPN9NuM5U+dxsLncYVg12SrQJeGzFFZP1TXqL2azo0deusCEDz76m
+CplWGlVQWyIVCUucqmfsmtVaEmtZaGVrDPAVOYVOcfTsnxp8kTaOyo7F3TJl7MUuwMAvBHZBS0B
R1PshM2bHj4KfpPFwicxHi1rCSjjZjSeVeCRQrAYVANbE1RVKdXI0mAj3dD5jdT3YrnGt2fNSr8p
2FZm+XpSqzAauNak13blFgW8r90BZmF6ovkr+SRuW1x+BACAt2WvXYJdwxykgA+HMK1ke+LbseBk
ypwrk4+IF5Y8qs1U13K2/VJINKU+vLkFxBZw7rQUKnIyhimOymuGWvwbc9t6Wsa78GMUa1Hfp+2r
vxYBawUqq6+4pvtL1nHSVUNrLjNyV63HXLc5HGlrXKzaH9zPcANHs92+lPteFgDgd9jvwllqld0L
PXhH8O6wCxVaXctB8Douz3k0dRdvJV44PRuPEEDJVi6QFZTeDxkjR1aBWpeIpCY5Uy11zrSNIDjX
ZslX36dQWqtO+k3FTpPT16FgTVeVKM/1V3PkOryLB2adcek9PPL+AADegv1ONxdSax0KNspE+6wL
YUUrvSDgtU4+qnY8W+Vbcd6AwQLw+xqjr4h2pQ2XWROqJmvk5HhkEOYS68NZpzXMxX87sRr1Heqr
9NdZRIn/g6mR16QqVcSsLocsF16X+gacnHGcT+alteI1XK4+cmXyGlZF3gAA78xeQdCh7fm1DSNR
kbAadrfTohdolxxZKpuRSx9RnK1Rle4s1ubfSLohDw1rHG/QxU3FgXXhVFVKY8dz3jRHBLyFY7Hq
H6e0rwZOWLdSqwepWaGvWjPFt5yT/PSKVPZUwFfwl1TzLM+a39DziPdZKQCAD8UX4giiLZ6kWwaW
kF0gYlolcnTMkV4X6Wpo2c622SQBOXRsqL17MlpZ5SwIJ+KteawaRUxIYYwamKLgSEeI/+0Gln1L
uErk30j6Vfe3sFsj569Z6z1mzMKcZgFHajz0/Czj+s1Ev8J/iXiTv/6aAADPJPykeCjaadk32m0J
US7WMBgFPJpyKplRPp3qBZns8jU2cnwUaL4YDWrF9YasC6UOu112S2f7Xk28TBGpscGvUg/6tJNJ
lH+zgSVfkc5N8cq3RZTn5FZLgvU/WLnybWevdA09ukVt9cWsnWH9gq/hA/EAAD4YCzjIw54kXDfM
ugaWEi3s7YniuUrnRXVRaeOyo7ouiGX7qOfAr/mTjWkMQwIKw9TCxpvq+qTH1lue8FHSmQ0iOWUW
qTs7fR86XD112wYycZYIFVQm3ephdWfEV5xxsePehurcILd51aP51i/mZl64aACA30CnIen2sKGw
aHjVoKeBFQ+7hXYzf8xicStbkvZE1Yole09khtjygN7NoS5s5VxJNtSgh9+sW93KTQ3/lOqpOTTQ
cPmDfDjpUylXD5vXhFUVGFfhiGrKtO7qyO831rFXr2drs0d2WnvXmK/9+SyrFnAn+RYBAD6WfbTB
u51iTjW/0SarnVYHpTOz6LVLLwu4iddO7ViqLOwAT92VWocpsM2RDna1HJxVLdcbB+boeJyaEMOs
XQUX/y34RLLv2dKUWuVbq1fDzPsp1TodyVKt0zrRWzt7PUOSixDTyu14K+VxGDQAfDp79QVXP2Q4
2EFVtM6KgNUz3JORsY15KmCVtFv4R+Zk+hJpbC3OjanegmzZSTMKlW5ZDaq8S7SpJpJjTpeWjnTL
f9cJSdZv86WwU0cBS7GpXXc4OzUK2FOzYqwWjQN/8VUc5Dqb0a3m5Dh/gnYnVPIuLs18fcEPvTQA
wKsJAUebq2Y7Mu4Ujqwbawm4eVSS9FhFi3Z1WQt91bucqeSSjzUt34qafbWZfaPdgq4q6pvUrJrJ
aY5+3lh6Xdsjic/6HVTsW75MC7tIX6WHnthQpGsL62vWdE3VKHL6r8uLcM1IqMRTaqVdpFvbja7I
/wvF35LM13HhTax6fwAAb8ze0acNpoY3GmsN1WnpNnmuLNk3i86pLMs1d1/jVMBTiVLZmMZ70GX+
R/yWclzE26xeZWeU70ThD5EKd769RLybVukrLoulzyPF+i9jXWXl1HTnJGD1Y8SgBDzU7flVJXKt
tvPxhamujntLA8cqa2vtLF7jV4kXqNTtXFz+mhd/Pe/xLgDgA9GlKNWExDNaXQVL0R5nk+y2vRp9
44i41DkKtDErjjD6yi7X2fx5CJb39+Z7kQT87jRIxuTY6MdY4VWn3JhkcTg3k21T8KcHwXKp/utI
d8b3pERTaeo4y5qBdZRbjC3c3NOgGjnKeTM7Crj8G0vp/7npWCxcJqtK02eWdZ07Z/tFFnvrAQCu
EwIu6anRVf+yDot2I64rL890awGPaY8a8+xOSr1s4FxWscv2WW/E8s1BvAG/xSCnNDR5LOt6mF3k
hJhHu6MAPjcI1v9GadjCSZekcjWo704TEx3Wnv61gCupcdbOuQItPpak1V5rfzlynb6Va3Q1veRK
AwCACAF7pEtMVe+ym2iHlm7AJUsLoHU/m06fps+rfjS4Fw3cXi2J9j4a6Wqh44VrPIVNTa5SQqb2
hzx0a9rDeNTCz18+D/R2jSux+XuSXRNBjvTtSJ+mrmYVqItZhRol8Y9OzBlkBZU4nQUxrAmeFAvQ
ghvLsd0akeY35GSihQWVAwCAaBkjAo6Rgt/y7yDvhqqizXRLrQY8XRkJj4/1uYjCrkou4SXUYtXo
6+Vaw11NfN+ABznNyWTS8wlawtGre/9nTf60KFjOtDhjTVmm0lk6zV+RcilQJbPE9aXbMnBVj5L4
ZnIpNVT1TChMzUjV38Ea1Z6nlpMZE9/AfUt86H0AALwpe98EIZo4tb8hRF1qWfcFzAgoWuVsv+2B
GDftKrBKf847n7tIOGarlJjXKmQHH4IVapy1zctN/0lhvfWRMel3Xy9SzKKvTzJwiVIuVagbCenW
gaqdqYdK9ZVoYmZrHhfbufl1qiDLtZgcaqzvQqnsgK41+xC1hH45ujpIJe/l4bcFAPA26F4FHsfD
eg33+rhVNcdqsdWul2SnlLRb6VZyQrT6lWp0NT1XLEEH/ehN5HikxaoKjGNC9h27gnIaK1mNfAwy
EXO1acEZAWeNDzCwrRluDHOmLKVI7xWwTGVgydYKrW8pZlGt1HSkHQZnec3jxWiCBq7m2qqSl9Wq
76FbjxOLheeYKucSRe0DuJk7ZwMAeGtSwG7goj1Xw59XYI5nttJuv1Odbsydingpx4u4jqtW7aR1
OQunRuvmvfSdNG2/ribH+4ixz4/Jwq5Bb7hOjJzWU4Ojd3g806UP8OfYtX746WE6U/KssjYK4oux
RFVHa1VFNq2fKvcSciGF5q+RZg20pKg2rsFjFgtfjV60/T8GAPBN5EFYalkV9cqLFW6E87K9dtue
WoiG3gkZYky1hIjMqGin+onBOJN7u9Ws+sXcsufLmpa0mM1BXeOVXIqHvAT92zAu8CjG7fs+y/vv
qeBY3SnB1Gu81+wWlkBFlnbDIDzrbyl96wPo0r01kIDVm6FiL0VjLdvj/T79qxBY9+PQv2ReQW/D
vZEzAMA7U0dBh+sizJCAW5e0mu1s2yUFqyHyzbtq2DM1YfuazI3JOTKFJ/iFLjetYYSWGs+JmQ57
TtKmGujYbad1PY96e+0NdC+TM4h3U3DriZcUJwHr/woHtXKnrOliDfyIZ/2XZN1Gxmsg0hJvPlws
2ZaFnbbVc4n+RhwCq36s4G513cW0jp+APn8lAQC+h/E0pIh/0qnV3kcb7QY8beqBmvomNLXqGuoZ
ZXpE5RhGM56V5ONTS7sj2+NqU681rWN3dIgiUyOns2aJT2CdX/l5HgB7qME77Qq2Qv0xY+3r3YUO
w475dl1oW+qdZy5rWsCjflOy+vr05UUuvg8Xx1qPnCYL5TV3CTgMrC9OUtaijo+U8qq6Tl9t5Sxw
F6xdgO/AAo4mXXcuiFbYO2Yj3BQRDblPuqFbFpWQhVKaZzzhN9p3FauRV6VIqFGPZ0ncXlBKdPt0
LyFJjMlKjPQl/cRM93KtML8nK/35lbHkRxvRnnRQm585BingfJ8ybeTHbBTkw8WmlKtn+tfXVPEL
1GSFv1lfGWk+Ba5HvAGVqDs6BVwvtYKFmitmXq6y/lUBAD6cdhS0Ik2Fsz5cePAZR2q1S5jWlNrl
MvKo4RiPe4YHBVIxUouvhK/o4dbfuXyZeJ06yem4K3lC7yjfVdTyeJkzU1vh+I+BOmXPUp/oD8ij
nmS9XFFpR/1j4j/J9VjALZvy1UBlClvj4S+srfPwqJLyqnAFvYAX6sq5PD+0DA+0VB/xFK+zuG6X
OfNFXORkDi+jfUAAgO9nFHAQ4aANGnGqI9d42rBZ7BN5KmKsmFYT46F6QTb7UaqgS1Ok5p1OaIrJ
6hTuG1fpoxIeLXKtXT+drDmqVCm9jSvLuKDg/FivQQIM2Y0hqXBS8hVaQc526TwauOQcsyupA8A9
d5pWaP3LsFqivVvF9ZLKp419vFdJvAbjtxI4dYmxyqraV9DHeXwpAAAfQ+4DPuROUu0xDDlExBpS
dR+yPVpxcBcBp5vczosq0jxC3tUS/JAjor3X4ucBzpq29kodT47BWM2nKzWU2uWuZmnqiKlepOtT
zfBbjpDQL5C96o/jwFML1CKNC5qILUBZqL27rOxwV35UcYqqudLOkmH1ZYRata618m1fm11liZff
MpHTQMvRonLgV9HrtvFl+ip+I8V09Ppt3DcXAMBnUgdhRZsdQ11V2KLRXfoVR6VmD96daolGo53u
1SAa8NBtFoS11ernRC9EE+wblbam9Xy/czA14ZE4aYw9dV6avaXpyKQqZT6GkffQ6poxLzi5cPWC
QsJdNfEucmV4sTJdCbLUG8N4jyrTNNXwS+bB37KhysYPoU8VMynrKSlVLd9jr/davobNwCpoVZWr
Ii+qLOyXSvKlFjg3aSqe3ulZrlY44tb6AABvTzsN6WC9qrX3NRwlXwe40mnFvbKdTCENKcxyJWk4
7B2jaM/rxB7PnJWi+rw9PmnZZ9k+43RXUDPOqqSAndRgzvRKTi3UmNEftOVFLhH/TFSVm/Bq8Pzx
VlJ4ll8qVyOZTx0Rnja991x1mZtW47iQVjPj30BSVT9EqdeV7HhNU8q1TCTj69Fy9A401LubyJe6
j4dmXuKxtwMA8I40AZtBBzpbRepGdrsdrfmhumiHmHZQ0x7psHOUZfSbEbAm1JnEDsWcCI5ddrEl
dTtbNVa0uapSqrhe+3oNaUqP04p9SWgsP/EK5EULdSTebqynGMY6UtJplajaXuts/vKeuUrGfnR9
Zs3QauZhWA2v9VSqsWHjhTxMxgO0YtpI1hbxgrM3ccSlaXexZoFPf1EAgD9mJuDWwreDsKJVjvEQ
7btlonZZzbb0o0DLmo5c+kjWdc0SsBStxdQy+wbU6cUW9XwzO9mmxiLSzRVTcVfBSQ3ac85pSXE0
YYo9G2E1rYBLxFpYWr5j32bhGEYl2TgWqFPBTgQ8IZOOyXhqPGZHtaZ/c+F+6K3KwXpVDVVD8k1s
XqEqcu+5V7+NpyxkzgsWCQDwp/QCjjYulBBDWbSJ1A23taq2OYxh8aiVt2MyHLZxIhPNvZp/94C6
ptt6eWP0ZyDlVPIO9C5bYon+hcb0Ut0z8/eoihZSXjqaQwL1fyAztGpinVWdUyREydTSk/NidZSA
Y41pdZ+8kHGNTB2tPr9D6TTD4Hj5WMiEXyi+EQ/0rahSGVhlOSVw5aWXTs5POeGGqsn1GY4+MwDA
x9MJ2O24DxvOq0iFSKOJloVTulKzLs7hOC2JjJVT9UsiMoBnUzqa99Omc02gdbWG3mg8sl5majBn
oegmNH8z8OKyUlx6BFV2iXSi9acAVevMFlS5piwvQ5MqufgqMbNWvL80vxW/Ly/S2LZ6IdVwPgum
P8115sUBAODZ9BFwXkVYLbCNao2qmVarLueqTknX+o20+pibgTVF/lD1SHpeVT9ji0o9RshrvqBj
N60y4gqk17Y0JVx4O7kAracUopWnVVb+M8sSnIqjSqWSMe/l6ivwovw+y+lBfpMe+6U1iAlOKxtP
1V587Zez5lX/5p0BALyKJmC1bsOPU5HM847cVke7LNUqq6mHXbTSyukhRWuaNBwFauDdjksWujOC
08vsz+7r7FmoMi/anzlgebSVNdSx4kWXmUvv+M07e+TF4KTE7yuEG2smBpGT8mKFesUpq8mnc3mm
8SMt19EzB7FADYxeKNA4vxyPlchXnIoDvxsv7bf5m1cFAPhLSsDW2DBGwzoOWofSZtPs+LbOzck2
Xh3PQQo4w+Hc4RuPCknHljzn8GNCB3NVgTTRT5ySc8lkpi2t0uHxTCfjDPNFnjJf9HnO1AtRVaqY
1atMDE+rqUTaGyNOp834T8PJW9cCtZacdKJyXU2lXJgabeQLpGm9W8DPNLBqZUHi+tMSfxG/6J+8
MgDAn9ELeNLFvsLZaKjjkQKe3STHBlbQW13QHtjILYYqQxTHjasDYL9eNPrHU52dz79IzDivtFof
J3OeY6GWik5faJa/sGz936GZFaRaleFG/d+S/qtK4niBMdkp1Yt3372BTI35SLhSLl9JPSLp7yYF
7O+pptjEmu55glrO76OX/rtXBwD4ZSRgNXpq1ftGXe1y22eY/m2Xs8phxsipXU1tWd1MKTmO/ma4
nT+cu07zFQmcnTrN1z5Lt6RI9TMeZVejJS7PuGpxemOuqMXIelJgrGYpUOXdQubLa59InuyywVG9
yGqpsnRUagGuBFzDeKaAU7oWsN+KhkEt6A/4y9cGAPhtLOCUwtgpHJlIRVPsEDj0kJKd7271fsuQ
bhlY/k0B13RdvGNsT6WDSnbIBpU8ZqH2JcYXrfGY6oL6fpGZviyb02ltrpM9wMmlhY3MX7IMGEN9
BZo0TT96c824pUjtY09m9TxRVVwn7ZroZVSufHxv+mLrlT1sk0Uu6i/4w5cGAPhtLOBQaWVFtMDV
EKprNCbtfRD0T96eYCSmqCEfDZyaHi/77OO4rjWo0e5XqrGu+Z9VujiHDHNaoZVcejVNOzN5aZF3
EQuKVRDyi4fy3bs9fo2Wr7ecAlZ6ZkwLVLSMBSzZpmElWwk4/7UKssjvIV5A/wVcWicAAPA0vA9Y
1yLObE+0xmqaY5IukTgcXyE5pti5mqJhi5PTwHmc1rFeTzn2zAmTD7qq/TyX54/ZzxvFE2ZTp0ym
zsz6NElJkYEOGY9F2pj1wifrpU2oUYuA58LUEqKgiiKppRt9l/pCg/iqau9CltdA70HzHr/wr3Hy
kQEAvpk6CGux6XOhTeCdhseSVvOucl+5MnTQbuqnI4p8bNYUAS8uPrls4L67d0zNZziZ/dLy5rjm
qXCi4PcsJEcO07HcUqBG0uWcektVPE2fSzNW5zSjviGjHb/BmPVXlDFwTtAgJosb1t9z0WsDAGyH
FPBSpBqtoRtEN4vRdCt9htrTGjGxDTyyqkFt7W4/7MnXz3RyWmeOIr1Kmq7+xTZ+cp6qXaz6PGRM
CbJWQ6hQScXEjXofMqMmZbXu3UVqys0meIqWVTT/SsCRtoFVprRGpmYGAIDXkgdhdb5SA+xmOFvi
GJ7EYhfQwdFl3/E2DFepVzrzMlP5De/jHBc/S/dKkarcuRlOy8/VvIycJytWT0Cmo0jlVaEtWon2
HmskuuREq+uFD/ZrhcES7zDkiwq9kDIeB8vLAwCAJ+MI+NiUXfN/K9GS28Cr7Ttx9IL1BkpMQok7
3lX370Vb5jg4x/VP3//T8hCxptODlZmi39P3oMknpYtvNQrbEjO8bdGuk9rn7+9YWQfWk38BAOBX
qH3AjWiAqw2+vyXW/faW7HTjElt1vZ96S2eXcHHRbbbzs3dUAHi96sU++WXOLTQ02Fa6/tvYz3a2
z2daMOTix3JhDrT4eIH4Tsq/QXV5W8CqpVziueEp3LGJAMCWmAu4hZvPaYjnC7lrmZpnnO9oCV3u
zKKruM13ptaMErC5XP+JshoFnAe6RebsshcmLGpTZfW0Ze3djHiNYl593UrmIvDvszm6TioAwJxJ
wGqHW+xVHn4uDy3zdOalxc3LWhx+m1fKQ/HU46ZZ7yVCpXwd9R1c1uDCN7M8Q5S5X7lGGevGsDsg
WhJOAbc54KkQAgPAJWYRcGsw3q8pnr2j1W/vrv8j0md+hqJc9DyWl9deRkIMB+c7WET/Ih1PPFM9
CuVYT0/zxtKrJ9pO1lAufsl/WwAAcIVOwNFY/92/7LdI4EzdKvboEafEvG1RjyxmkYuyCyeGYXWO
7tlqvixKpYvQaKWC7h1bu66dsm2o3F5WMgvyCK2a74v4wo8EAF9EHwGHfZ+vnOdxmyIe/iAvWROX
1q+96BBYUXAV9sR0+3P+1lLAVTRbfgpYD4tWlg1U6loaK6+rpuzkfc/0TczWEwDAm9FHwGqBF9us
X2nIZi+y9IqrT/zxzBLVQ/SzX1/WkRVvRq/gV9FlQaXFLJ4RHymrzCZmr0UVVY3E9YOokhGw9v9W
UU3WK/nWDAGHDAEA/Ca9gGv8ZNYu9lo9R3pV6WLduZ/MtWXPWKh8ff6xxrI7r9LetG5XNMaox4x1
+qnNppXpJjqTtC5oTYxsTo6UjNwEvHhBcAAAeBFNwFOzfcQ9jfJrGvLebGffrrRSqSe9jXVLmV70
jDyvUTNpf6yEmbll4iUqJfLlRqn2q8Y54UVKti4NcnKW6ULfyTQnAAC8mikCrh7ebKOdfGPuk9w6
jhZ99pVm7+Fp78dhalPkIkdTM1NFMZomKhXOVX0tVMvN4la3zBwCloOnezmPnBR8INP6AAB4K0YB
11UD1FQ7/3mcvu+7PsmlBvsXGvNUZQwqf4K1WWnRwtr8uP0Ulcmw5Vm7OCpEqqZL9jGphcALYXe/
uA/lY7dnAPh2SsD7fd1JX021S445V77Ey5u8/gUyveIln/GuXt+apy4v/BsUFWZfRR2EVUWzKZFx
ZS8x/nLetnAV5X7hOgzaM83xEir9oXz42weA7yUFHK1yxD+Xm6rjhvjpDdtpS3+l7ffkK1XqeRUt
q6t4bh5Z7OWUJM+8kj1aaRGVPUe+6W5KlmmgheUCpeL2GTJtG8fo7B5gzQYAAE8nBXw4/BuWAqBf
5Ra3lUIuzfEab/zGkUrxsVqYan/OsD5nha6uen5WYVBlMSwBqyx7nT05S7P8EtemAwDAPZSAdQjO
1ab2OS3xk9rzWxazUPf87Jpyfmro6pZXvpsUZop1xsIB0qql4pOquYSmWk+eImCN1wj4ymQAALiP
EvDuR/79oLZ29l5lmRs5P4OnnJ38a+uoNHnyVhYFLK2e/GeQZVGoU4vzPktZ6M8Q80jAfngKAAD8
Kk3AMTptwou3bKAvvak27QVvfPXluB4lxFgpMaUXdVlSPcKuVQA8CdjVvGiJ16GxqgAAwK8jAUcL
HM3z2Xb4jxvou16+zTPX2BOMfK3D9mkce3HMLb2BeFenxXarprgHOk8y8kJdaAFHVk8AAPh9JGA3
zm/bDp++saV3OiuzWSpZ42SlPtfVOsdjczdOlnJpsYtfntaCiejXAo5arpjujYGzl5YLAAAvQwIe
6hzg92Rpn2clOqai5pQl2R6VLdQw58qDC5P+kPBppXoqztVxVk4IrYEY6fmeHwUAYCuEgPe7X7sP
zj1t/uk8q5YS3qnUWY4U9PZCmr3BeWbpvVuxYdwUcElXBz279uIsAADwa5SAf+3Yonu5QRelFhlH
urnImcnvLyeHskkkjt+v87ZuIP+6xFGwMgAA8PekgN/jRjgX38P6NzjVtHvOzfiAiO6f80nEGxjf
w4UPKHIVZB1nr/1P8iTwPADAZSTgQU30u7P6HfYVy0CVW+ADLaG3HM+L79x19v/k3v7za7bfEjAA
AFxmv9NVoL8I62XmmMXb/BSzip9jptqPa5bfdZSqC14Cnn9GBAwA8B7sd4d3PgT6ZvKzzJ2zsoP9
pBtgzK+a/ffQG73ylqKKKjkCbh3QSZRUag231AUAgFvY7+67C8Mvtsw3CWOq3KX6oG+lf6LWwkUf
/5D+k13/CNKsaknA848xzrxqRayqBAAAd9DuA/y+PPntrVSKar1VZ23378CKj6DQt40f+RQIGADg
Vby/gJ/N+o97/tys319lfSB7k4CVdNERqz7CY/YGAIAL7HfD258DvJ4n++Lc0v6gc3o8dspKzeQF
moDjIxwdhXUbD8wKAAAX2e/qMv2fSq+I34nX/uI44lkoev1j+vBnJzzr/e/3/jkBAOAyOg+4kp/G
6fte8UnOVLllHfyO5ntuVqhONvI8MZCMsxQAAN6IEPCv8ywfPEMspan3VtTNb09Rr2byCAEDALwj
fyDgR33QzW/LTNyx4NRUZd6Uo095HWnXA8mXK28AALwlEvBvN9DPfL3eTdePJls0WSt7Ww/f/Mai
fgpYV35GwAAAb4n2AX9LC73ic9z4Sd/WyWvQ7l/7d/YhvuS7BgD4eBQB/929kN5dcJ8tYEfAo4DD
xy50BgAA/hoLeDdssZvyCz7yxY+Q+4DDv1XL4w1+zwAA74m6oIfgGxrmV3yG914vF9+d/WsBZzWC
XwCAd0IR8K/dpP3tuP6xX79iXufF7ILGvwAAb4kE/OZh3rfzwNq/PKv8O8a/fMsAAO+FBbxVPj0o
nOS6jLs2xioIGADgndi0gFfxxt4aTyBbFrEj4EoHCBgA4J1AwB/spfGuTGcErJOAKw0AAG8GAv7g
jujpnS99hP39Av7cVQIA8DGkgLfd3n7up7/4znX81VThpg9J4AwA8HIQ8Lci+97p36lvGwAAXoUE
PB7LA1/EAwEwXdAAAK/HEfCmm9tvjfZ6/QIAwNvBQVh4CgAA/gAEDAAA8AcgYAAAgN/n37//VCeW
YgGeOjQAAAAASUVORK5CYIJQSwMECgAAAAAAAAAhAKohrRWlhQAApYUAABQAAABwcHQvbWVkaWEv
aW1hZ2U4LnBuZ4lQTkcNChoKAAAADUlIRFIAAAJSAAAAhAgGAAAAWyfFaAAACqdpQ0NQSUNDIFBy
b2ZpbGUAAEiJlZYHVJNZFsff96U3WiACUkINvXcEEnrovYlKSCihxBAIKiI2BkdwLIiIgDKiQ1Vw
VIoMKmLBimLDPiCDgrIOFkRFZT9gCTu7Z3fP3pyb98vN+/7vvpe8c/4AkO9yhMI0WAaAdEGWKMTL
lR4VHUPHDQEIeQEkrTjcTCErKMgP+QTmx7/Gx/uzc8Ed4xmtf//+v4YsLyGTiywUhHA8L5ObjvBJ
JDu4QlEWACghUtdalSWc4RKE5UVIgwjXzXDSHHfOcPwc35qdExbihvAfAODJHI4oCQDSOFKnZ3OT
EB0ysltgJuDxBQgzEXbmJnN4CG9A2Cg9feUMH0FYL/6fdJL+ohkv0eRwkiQ8t5fZwLvzM4VpnDX/
53H870hPE8+voYkkOVnkHYKMcsiZ1aWu9JWwID4gcJ75vNn5s5ws9g6fZ26mW8w88zjuvvMsTg1n
zTNHtPAsP4sdNs+ilSESfUFagJ9EP4Et4YRMj9B5TuR7suc5Jzkscp6z+REB85yZGuq7MMdNUheJ
QyQ9J4o8JXtMz1zojctZWCsrOcx7oYcoST+8BHcPSV0QLpkvzHKVaArTghb6T/OS1DOzQyXPZiF/
sHlO4fgELegESc4HhAJ/JC2AFWAhaQ3MAMhKWJ0107DbSuEaET8pOYvOQm5MAp0t4JoY0S3MzO0B
mLl/cz/ve9rcHaRdXajxmABYqwEATy7UUhUB6FoLgHTwQo2RBwAxEakPc8Wi7LkaeuYNA4hAGsgD
JaAGtIAeMEY6tAGOgAk8gA8IBGEgGiwHXJAM0oEIrAK5YCMoAEVgJ9gDykEVOATqwFFwHLSBTnAO
XALXwC1wDzwGA2AYvAbj4COYgiAIB1EgKqQEqUM6kCFkAdlBzpAH5AeFQNFQHJQECSAxlAtthoqg
YqgcOgjVQ79Cp6Bz0BWoD3oIDUKj0DvoC4yCybA8rArrwqawHcyCfeEweBmcBGfAOXA+vB0ug6vh
I3ArfA6+Bt+DB+DX8AQKoEgoGkoDZYyyQ7mhAlExqESUCJWHKkSVoqpRTagOVA/qDmoANYb6jMai
qWg62hjtiPZGh6O56Ax0Hnobuhxdh25FX0DfQQ+ix9HfMRSMCsYQ44BhY6IwSZhVmAJMKaYG04K5
iLmHGcZ8xGKxNCwDa4v1xkZjU7Brsduw+7HN2C5sH3YIO4HD4ZRwhjgnXCCOg8vCFeD24Y7gzuJu
44Zxn/AkvDreAu+Jj8EL8JvwpfgG/Bn8bfxL/BRBhqBDcCAEEniENYQdhMOEDsJNwjBhiihLZBCd
iGHEFOJGYhmxiXiR+IT4nkQiaZLsScEkPmkDqYx0jHSZNEj6TJYjG5DdyLFkMXk7uZbcRX5Ifk+h
UHQpTEoMJYuynVJPOU95RvkkRZUykWJL8aTWS1VItUrdlnojTZDWkWZJL5fOkS6VPiF9U3pMhiCj
K+Mmw5HJk6mQOSXTLzMhS5U1lw2UTZfdJtsge0V2RA4npyvnIceTy5c7JHdeboiKompR3ahc6mbq
YepF6rA8Vp4hz5ZPkS+SPyrfKz+uIKdgpRChsFqhQuG0wgANRdOlsWlptB2047T7tC+LVBexFiUs
2rqoadHtRZOKixWZigmKhYrNivcUvyjRlTyUUpV2KbUpPVVGKxsoByuvUj6gfFF5bLH8YsfF3MWF
i48vfqQCqxiohKisVTmkcl1lQlVN1UtVqLpP9bzqmBpNjamWolaidkZtVJ2q7qzOVy9RP6v+iq5A
Z9HT6GX0C/RxDRUNbw2xxkGNXo0pTYZmuOYmzWbNp1pELTutRK0SrW6tcW11bX/tXO1G7Uc6BB07
nWSdvTo9OpO6DN1I3S26bbojDEUGm5HDaGQ80aPouehl6FXr3dXH6tvpp+rv179lABtYGyQbVBjc
NIQNbQz5hvsN+4wwRvZGAqNqo35jsjHLONu40XjQhGbiZ7LJpM3kjam2aYzpLtMe0+9m1mZpZofN
HpvLmfuYbzLvMH9nYWDBtaiwuGtJsfS0XG/ZbvnWytAqweqA1QNrqrW/9RbrbutvNrY2Ipsmm1Fb
bds420rbfjt5uyC7bXaX7TH2rvbr7TvtPzvYOGQ5HHf409HYMdWxwXFkCWNJwpLDS4acNJ04Tged
BpzpznHOPzsPuGi4cFyqXZ4ztZg8Zg3zJUuflcI6wnrjauYqcm1xnXRzcFvn1uWOcvdyL3Tv9ZDz
CPco93jmqemZ5NnoOe5l7bXWq8sb4+3rvcu7n63K5rLr2eM+tj7rfC74kn1Dfct9n/sZ+In8Ovxh
fx//3f5PAnQCBAFtgSCQHbg78GkQIygj6LdgbHBQcEXwixDzkNyQnlBq6IrQhtCPYa5hO8Ieh+uF
i8O7I6QjYiPqIyYj3SOLIweiTKPWRV2LVo7mR7fH4GIiYmpiJpZ6LN2zdDjWOrYg9v4yxrLVy64s
V16etvz0CukVnBUn4jBxkXENcV85gZxqzkQ8O74yfpzrxt3Lfc1j8kp4owlOCcUJLxOdEosTR5Kc
knYnjSa7JJcmj/Hd+OX8tyneKVUpk6mBqbWp02mRac3p+PS49FMCOUGq4MJKtZWrV/YJDYUFwoEM
h4w9GeMiX1FNJpS5LLM9Sx4xOtfFeuIfxIPZztkV2Z9WRaw6sVp2tWD19TUGa7aueZnjmfPLWvRa
7truXI3cjbmD61jrDuZBefF53eu11uevH97gtaFuI3Fj6sYbm8w2FW/6sDlyc0e+av6G/KEfvH5o
LJAqEBX0b3HcUvUj+kf+j71bLbfu2/q9kFd4tcisqLTo6zbutqs/mf9U9tP09sTtvTtsdhzYid0p
2Hl/l8uuumLZ4pziod3+u1tL6CWFJR/2rNhzpdSqtGovca9470CZX1n7Pu19O/d9LU8uv1fhWtFc
qVK5tXJyP2//7QPMA01VqlVFVV9+5v/84KDXwdZq3erSQ9hD2YdeHI443POL3S/1Nco1RTXfagW1
A3UhdRfqbevrG1QadjTCjeLG0SOxR24ddT/a3mTcdLCZ1lx0DBwTH3v1a9yv94/7Hu8+YXei6aTO
ycoWakthK9S6pnW8LbltoD26ve+Uz6nuDseOlt9Mfqvt1OisOK1wescZ4pn8M9Nnc85OdAm7xs4l
nRvqXtH9+HzU+bsXgi/0XvS9ePmS56XzPayes5edLndecbhy6qrd1bZrNtdar1tfb7lhfaOl16a3
9abtzfZb9rc6+pb0nbntcvvcHfc7l+6y7167F3Cv7374/Qf9sf0DD3gPRh6mPXz7KPvR1OMNTzBP
Cp/KPC19pvKs+nf935sHbAZOD7oPXn8e+vzxEHfo9R+Zf3wdzn9BeVH6Uv1l/YjFSOeo5+itV0tf
Db8Wvp4aK/ib7N8q3+i9Ofkn88/r41Hjw29Fb6ffbXuv9L72g9WH7omgiWcf0z9OTRZ+UvpU99nu
c8+XyC8vp1Z9xX0t+6b/reO77/cn0+nT00KOiDNrBVBIwomIP3hXCwAlGgAq4puJUnP+eDbm/P8c
gf/Ecx56NmwAqEaGGVs3Y42qEJ/C6EI0kZyxR2FMAFtaSvIfkZloaTGnRUZcJubT9PR7VQBwHQB8
E01PT+2fnv52GGn2IeJjMuZ8+Uz4GSP22sHM3MzqBq5/A/iX+Ds5pwHMQOxLFAAAAZ1pVFh0WE1M
OmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6
eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNv
bS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTk0PC9leGlmOlBp
eGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjEzMjwvZXhpZjpQ
aXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+Cjwv
eDp4bXBtZXRhPgoe49bfAABAAElEQVR4Aey9X2iTSRs+fPWHQgpvoYVvSyq8Ej2o0YW3kR5slhU2
wkIj7NJ4IKQHu6byIXUPbPTEyLLosiwbT3ZTD7TIxzbqQQM9MOJCU1hoFhSzB6XpC9roQQ2+0IR6
kPyIkEAL/a6Z53nyr/nX2mrVmV2b53lm5p6Za+6ZueeeP3fbOh2UUwgoBBQCCgGFgEJAIaAQ2DQC
/2fTMVQEhYBCQCGgEFAIKAQUAgoBiYASpBQjKAQUAgoBhYBCQCGgENgiAkqQ2iJwKppCQCGgEFAI
KAQUAgoBJUgpHlAIKAQUAgoBhYBCQCGwRQSUILVF4FQ0hYBCQCGgEFAIKAQUAkqQUjygEFAIKAQU
AgoBhYBCYIsI7KkV71qtj+qbQkAhoBBQCLSEwCWoXrQloFQghcAHgEDLGqmVkBfRaPoDKDKwWijw
3+4pipafXZSh3QNNyznZTXWai0ewlMhW5F3mr+LLFl8k726WV9J4Fooiv8Ukd2W0QhwPnAHkdmXm
VKYUAgqBjwmBmhqpDQCw0/pzaAyfpQJVXgUsxxPostnQXuUjXnPxONasNnSZanhu+FRAhrRkZ28y
4xNzAa+SHIw4ZnSQfkdLNDYQ3fBhNRHEj4eHgb4J/Bz3YO+GEG/xQyGB6fbD+FtPsndyEWfc1h3L
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
RTXfagW1A3UhdRfqbevrG1QadjTCjeLG0SOxR24ddT/a3mTcdLCZ1lx0DBwTH3v1a9yv94/7Hu8+
YXei6aTOycoWakthK9S6pnW8LbltoD26ve+Uz6nuDseOlt9Mfqvt1OisOK1wescZ4pn8M9Nnc85O
dAm7xs4lnRvqXtH9+HzU+bsXgi/0XvS9ePmS56XzPayes5edLndecbhy6qrd1bZrNtdar1tfb7lh
faOl16a39abtzfZb9rc6+pb0nbntcvvcHfc7l+6y7167F3Cv7374/Qf9sf0DD3gPRh6mPXz7KPvR
1OMNTzBPCp/KPC19pvKs+nf935sHbAZOD7oPXn8e+vzxEHfo9R+Zf3wdzn9BeVH6Uv1l/YjFSOeo
5+itV0tfDb8Wvp4aK/ib7N8q3+i9Ofkn88/r41Hjw29Fb6ffbXuv9L72g9WH7omgiWcf0z9OTRZ+
UvpU99nuc8+XyC8vp1Z9xX0t+6b/reO77/cn0+nT00KOiDNrBVBIwomIP3hXCwAlGgAq4puJUnP+
eDbm/P8cgf/Ecx56NmwAqEaGGVs3Y42qEJ/C6EI0kZyxR2FMAFtaSvIfkZloaTGnRUZcJubT9PR7
VQBwHQB8E01PT+2fnv52GGn2IeJjMuZ8+Uz4GSP22sHM3MzqBq5/A/iX+Ds5pwHMQOxLFAAAAZ1p
VFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0
YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNj
cmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFk
b2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTIwNzwv
ZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj43OTwv
ZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpS
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
f1zsPWDYqMJAwEDAQMBAwEDAQOBri4Avr65RX1uOb5cx+Qp3vradr0y+t4FveKz9N5ynW9+dDn+t
PXpX6N5pPhV6Pfi38ha51e/u0DeoGggYCBgIGAgYCBgIGAh8kxBQXv3+TeJYy6t4FfwQ/+96uKHU
c0/q8myMOKRZbac8R9oz/WtyL7DhhtlvXfAlg121Vbh0F9ZeugDryYq1GZ8cadct/s1JtOLT8iO4
ByOfkNy4NzrGA/yvRNd48HAnb0V7lH9fVEfQpyoNXxTuTrzC9+3otr9R41YPir7zE/yE/wsezMNf
ucX43gUryp5dh5Od4p1zdzJY8fZzG3DsJun2t7egpb3/TjIyMlqdFvzq5/8Iqxfszx+5O8a/kTFm
5DIQMBAwEDAQMBAwEPibR6C3E+ePH8elbtdEZPBcM+Oa0ceovuZmdIl/eT4hzxNy3qsrZC5cLx2p
RuOOEljqjuDTKsfiTpPXUUZ+t/k1NlwqTcHrDz6IU+0unr45/dCOd77zHfKfjK67zP6nq7+D9bKu
e41VLyyrpiGXdYv6c5+tcPbpYPsRdLTfY+tJbzs+9WYgsVbjdfJXVNL+zRGfO8KpLxnsRN1zP0Vr
510WTLc2+JYVkc3WkId3nq5zyo9b0W/aTWcD9vz8aXlO3s2wfulI7U0bHPuqV1O2H0TjPdSRV9tL
ZZ27S/9GxpO1TtGfQocml3qXQb99aoclRej7kffFndCR8hnJ/n/nNnTbPTNuidcpK//aYSHilHtH
uluqWsYRp5fHQUfJG4bM64dwaKAIMx2FPb+d/Lh7dml51F5rizv4EN/DgwnmWPCQRS/vnNPU6b3s
cGqOmBs3xmPd2TIsiHan66TjoO0ooH73NKzBmoYej1jNraOc17bQfq6J17vWpgmr+43vz0LFJxWI
8HLWZNvcdTht1fCgXgoabnQ874cXMWIMBAwEDAQMBAwEDAQMBIYhMMjJe9GsWdgWXqx6HLSjPGo6
imZnoKu3F59kzMDO6TNQt1csaHpxJk/cT8f+vS2SVseqUdj29F7cz4Nfu37/NPakzEU3bRtX2yuw
TZR74w3snDGd/xn44I0Mll2My37W1uPSqvA854g81VlMsNznPLJWfqjxbvMhR5qvb1nGkajS9Zyi
augOp62UUeZhDjqab1n2YWRcb8UUTbT/SxddTg01wdF2TWcw4FoAACJwSURBVLom9eHt11FwvUdi
5fkLvuSd/DiDuNbeOxN8XMi2OOr3yNNdh/LCOKweYP3/8R/4TVWq80Dlvoa5eKvBy+TVQcIXXTVe
yea9vQ4Sw76tNCrMbRwWDVMSftO0TXnDpBt9bVZXXcxyc8FXWyQVF12vuDv4EZV61uuLrqOMJ30t
1zKPdxm8ceP7WHz2LB6P5rjSBsGDCG70lSjnp8jj4NOR35moc6EjK6K+kIX7sLYrzSk/CiWH3Gkw
HFaF4MfJEC8d1yKjq5xbtEjRRvDada+5dot3VKxJV+m4yoo8TP/+Qqz7pGvYGxad+bzSBS7MfRYd
OkPGwYH2e2zSdry6bSGjHpA4OOvQZlLr85fmNV1LR72+PzoNq4ti0SfufbRF4uCs1wsRZ5q2vxR6
MrdPul5oiSjmV/7VdM97NY9o47B2mhKpP69TRxQBXvH33aeyNknzAcTWDmCxfF6pPOjVybRb1pFK
pbId416sxerdCUpfaKq9mct7YNzqQ8ueIr6OPkH5T67AZzaFRcuOfMybX4TKkl1qeh6OtikeT9bq
XZg3LR95oxjHjumR93nIG70SR9pFHt90nQDwlfLeQl9bC4qmqfyQXmXVZ4pe621D/uh5yEvfhZod
RVhJnvPSK/FZt0tQu4/Uy3ilPfk42iyHgls1YWlZmBTpFgV0a+tMwDy2y+JV4DzK8ba/sUbis3Hl
O2izajzCrBaJx9aCSuxKVtqTV3CUb5YUoR9tdUdxspGXJYdwtO5jHKlw39Z45Zw7TxXEwRlu9OHf
VAy2bq7HkeIizBut8GytEP05DyL/57WVkrd5xPFop1K6rSSfcVnYmtsAN7Oa3YqPq4/gLLPVlNbj
Y/J3pNqibF1U25I/fyWKKgQwVvbRSuTxf1f1CIFSqjc+DQQMBAwEDAQMBAwEvuUIBMelYbFYIwWs
xnlOI6621OEMX+U+dV8VHqbBKr5qNxP3IaPAzG8TnqwVhpsELBb39hb8pRB46YsqzEhNxfyqHiTF
xaHP4bgTuxsZVVVYy0n4hN1VWFpVzrIm0vEf7mO2j0p2oDZ5OnKnz8dHVc2uQoNtOLVqPnJHj5b/
ZZurMOCagrryuV3Z8YnwNpq/GWJ63VeXy7KjsDtX4zXSfQR/mTaac0aFbu6o+ZpFpw0de1bJ+mR6
8mZ02VyV9h0vx36WzZ2ejI/2VOEM61DecujGxPCbG6RbrNAV7SlM3uGk27EjhfyuIg6CV8HTfHzS
5mkZDBpWT1/DZuROm4/d/Ld0skp6MBWOmobdovwIvHYGWyqYV8Vg9DScOu6aX16q3oH9KzcLoji1
YzP+sioXF2R/9+J8XTXONDKppBSf1NXBUlHt5pEydE7B19FvDc4+Zd9ksJ9HJ7N9bfh0R7La3lzZ
V6ToM9gaG+gxKCqtwKnqOnxSUeHuORYUgtaSEsqR0p6yglqNh4Z+n/qslAl6GDHVrU/L0tOxf3OD
s17bkT0oVPEtTE5HGftcXfJhoE2L0TSN3PvHSE8GBxtLJKblKzdwnGtkiIbB3ezj/QXbnRjtLqhy
8iqMFZdqS6Q8FFLmLeXF2D1qNBr0DJgqcL5lRWToReOz7JMn5uCD0kZNfYBfueeY+XTHKonh/s2l
sMjx4zAQ6fRpZ4XEQMiAra0WZWof1FbTe7WEY43jpba4GH+ZP1zn2CqUMSpk9lLtDlU+p3E8KY2V
5Uc/gf25FW5HzfQ1MC/1SEPxDmd9DVVtSiF7Jz6trkAX706UluJTjh9LdcOItzXeF8Jy1A2OdnxU
267QFZ+91M1CH6lt/Mue4xqMu3EqfZpMk7ps1KgR9ackHmJCN710P8oVY5Q/cuyoQp9TDepgz8Ja
uZdjvVmVer8yKGv28tGO2unUa8nTULiqjumdbLN6n654k+qPU5VkUBBgGU7eV5+KnFe7j6MhWTyD
pqO2ZA8sLH+/g4RP7G9HR5L4YDcsm9Nlv5XllqC1uh5jyfqthrtu3PrrdnoOZQSiqKuGnlSV2Gq2
IDNslzR6xKYtwzJrFYpPTMSujl3YuA3IX6UYZ0yJ87Ay4BhOLpyHWBNfpc77eZaTsG1bicfovaRH
VxeMXgtSpq4BsreicqAGFU2L8P5PM5Fffh4IicGyykU4ufdd7Pw8Bq/R4mkOfR+Z4crWxv6WSiyd
+1ssaqpAzfUa7Doci/zpKR5GqkA8lr0A7u8pG8KR+WtwIasIh+hRVtm6ETMDTsHaqzFU6TA9Js6M
stZChNUfwkWN3oYpFisPmnEorwSm7F3Y1bQRyMtXjX9DsLa34eMyEjYN4UL7WZy1XHC5lNKQtyBq
DQJzitgWwdNWuh9mYpfq5fXxqhT8am8gVhKDeaazKMiswqLKZYhhX5gSl6Lo4DK8zfy/yBtCYWsR
8ouSMZ7KSIRJqVnkhTge+Bj9Wn57bbhw4iSqmCfUfgEXWi7g7IkexRhnIva7J+FYfShmm1kJJ4mz
E8/i5GkzFiSKeyMYCBgIGAgYCBgIGAgYCIwUAU5AQl5EUtGLOFF7BGcqGrBg3ybYKpQF51U5P7Fr
FkYK3WsiPigSsTSEvZW+Ax3cxnjp3CCmNzUhNpIT/ZAQMEkG6VVkFwVMiIqbgPtGMiFnnu6dexGe
vQevbk/DqZ/OwO49LaTRi48enIr9QWlYNzCA3/S0IqohBW+sapB1+f4IQtSKHKBeMTKMNecgc99C
nKmzqkW4vWT+XFzOOiV/zV/fehBTAg7B1isBQNf2OXgrIwivdg2gYKAHL5kbsDMsV/5yPnh8OzbO
/jkeyj+G1XuyYVu2jjRH0kgu5HPD8NYrAXipo4dt6YI5Zi/ppuMSq41KK0CitRA1J6KxuqMV6Zz/
v7OqenhfeDR6rJkGyx8cooEtAVGRTDTF06howZlNOZgSORK+ghBbeRTrvvgCq//VjP2zKpwL7rHR
8aR5WhBFOA2ZUWYzxkiSdtjaT+CMnE/bcZnHfXRZ2l3z295GvB41F/flNOE39JZY33oYHSlcGEoj
SRCm0KCSvqkT7zzyCOoupuLVpsN4vih+mOHOo6no62zBmXpRKXCJdV7mKtOmNd6IfrDsxLjsVqxj
n9rynnVuy9PrU896ht/7xqhr+xPs08/xQlMH1nU0IcJShlMVnZLEYPN2bHl6GfFtwrquDjwTfxGt
f67DoBCz3ga8MfVprr0OYz1le11TDuV+OsrK25moj5E/GQyOS8Xa1mMYW7/XtcYRHJm4fjiYilN5
v0QoMVrddJBrpBScVre79dWuwrbnfo8Zh5vwfLYJDT/PRN/aSsyIN4nSusG3rIhiIYjd04XMnDhi
Y3Wj40/uP10Vhj17g/ET6poZJgvKMwvxVGUBJpIl3T6NTMLapkopA1seyUPssSZkVu5GeGQIIlIL
8JSlHh++8grCc4TOISZOncP1WGI+Xj24CXUpM7Atz47M1ia8UJTNHUgK6xNSi4ldDs4cUPtSbZEY
i+lrrah7xYInW7uw+vA20sjFJZHea8XlE/U4ysux9k9xuaUdXSesuKaW9ftF0e7eeZF0W/Fq5SbU
PLtZoasWDM8+iNX//gW9yfbhaMYs6VErki6V0thqXYv1/0HPS+rPBbEB6Ojs9VudkoGVnt6Jvrhs
tnc7xuz9KTbO3yN1kh72gy07sGVuBsxNXRz/A8TBjHemhyk/HviRQd+MRSOez4YzBywwp8UzWyQe
pzyd+fME/CQ/UTU2+R6nvukqKb76VIzTovDZ6IhfgdWtezDuxCtoZRHtjxnesb8dHSmee+Eo/zCO
steKJ6M/Rd0B1snuuNWg5fdWaeiU68fp1fTTSZiJCw1H0G6nJxXHeUDAv8DSvhRzok0Yz9L5BQmI
4MCNSJoHrFINPkERWLBnJYqntdH4MYe/ovXgUMBMFK+IxRjajvXpsh4fwdpwCIh9DcvTYiFzxc3B
xoMnsWg+61kcgYjoSSy5EjV82Iv0yXFb8SV/aWlo7MfsRpblRscv2z/GoUbgO0E9bEsAKhvOIzbV
3ZzlXn0gJqZNwqllb2PXxccwMTIU5j+9idkeWwzdy2juxCvlo2MwMxb4UhMtLiNICws3YoFZ1B+B
ec48YZiTvZzGqLPIty9Aapo7f/3tqim39yyOiH2tQomxLf+yxYKl8RPxdiGw1bYcsSI+bjK2tpzG
hegIBbOQMZgs6o3NQmXzAvYHQ/Rk8SlDYEgYIuImDd8SSgNWSkEMQmsPYWjFciREO0qI70BMprEz
OWMRPm7rlwbNj/kKpZXNKTDdhoBrazCuDQQMBAwEDAQMBAwEvj0IXOvl4i4pFa0TnsA7AcVcBIeg
ZrHdBQDnTN5DCMxcHIWWbMFfZq8WU1dumfjPyLRVc76ahIJmz1LM37zHM9L7fSeQ2HQcsXFicsMJ
fZMVv55Wh77keJxizBQauToqSnGNnjl9CAB2FuLSDjPGeacmY4P5qvopvFIMc2xzfJLmF/sgPJTG
hdGyXNReTMS4SBNi//RfMVVu4WJdqzkfTEjE5YYKnLeTJ9HYgDfpJZTDSdhqTNndBnNStKznJz2H
cTR08wgWqZ04xTlcUlsBDUainZwy0qvk/OYJpFuCcXGR4CwSLxSkYRzn/+OS0jj/1/SLKOA1kPfi
gyifMB+Xe1dhLNrwYUAcXs02u7wLvJZTIq/xgOSukkzsT7Fgguz7/0yDSDaCyWIwjVszsvdhfwN5
TUzUUGGd2QXs92aU2Vdwsalg4cgw2M4CItCr4XRJo3M+/eGWBjxj5rZGE9vK/ylFpchYESezhitf
8trXR0RqNvvRhFM/AObnpHrJ1gu8eBgzzIKfaHkkyiCjhJHUd5/mI9Zz654HZd8YteMDykpScyMe
kbILmI+3IqjUKrE/s2E1JhQ1U1aUxj2SU4UXgioktra6UoK6G4lpaj/RIJVxsI7GAxqaF0frYETD
rD8Z5DgJZd9NYX8OerRFyDoWHkS8itEMZx47zjxLw9ERG2LNISwVh5cOt6C8PXpEHiO+ZUVhINhk
4jrIrBmDKmMhOnJPb9G6QnqL2jhmJEvkqeUILkUTnxH0aWhcNMdUApJ76hAhyrNNysovBOFsd2Lp
AGY4dU6v1DmD6XEIprE+XOAUW4T1zSsQLIpSnzjC/fRoGkdjr9Av7kHgbsIMGt+i+I3oROapU3QQ
jc5PFsRjbC312IoCzHAfMu5kvN3R8D77oINuEulmq7qNnkUcw4P0GtuWcQgBsWwYw2UafSNCgjA2
LhHI+Dlqcj/HxOhIjM36ExIXjrBy8SPFpibMT1XaPv94E84ET6P3Js8Y9Kkj8xEqZJu4D7bX4VQj
9UiQVa6nP2poR1RqtNS33mVQcO47hNJ4uCBgFc532/ms4H6slr1yfEVFys6F73Hqm6YjxVefXqre
jO7YfTTMJskxPW5PD/pKQ53jyjf2t64jnzLZwf1pWF2brTzjorcjs30Hqnod3N789102bvXILWiT
zJMQZhqDMZQbRKZia9IyTJKGnSEMmWZJi7RgfciuGrbUdgRSMSwKWISG5hfwv/LsqIBNxZgcJBL9
0VUJePka6u1hbKBipFHTAx/gI5bzBxHIkXLh/AxEKMeOxdqDHno/IXYZxlNpIUTkM2Hr4dkYH+du
OHIW1VyYFv4SG6MvoafThi8721CcW4XTwe9iTVKYJpfepSdfSt4h2pRnJQoToQjD8wwJzMW/IwgX
S7a133qBFzPZDyb2i1Iu9fBWLIuchEAa7caLPOJNkyG84N7b/k62XUNH1rviUcWw5aA9om8F4auS
V2leFJ7BKv5hSD2cjEVzajCzsgfvBmThvTg1j4P24Bf4jAfkm2K+P6IHkKOY8W0gYCBgIGAgYCBg
IPBtQqAXXQc6MbE6HuacREx4KoneCA3uAFhs0lDj3HYhLTvMwoVmY7kN8fR0iOW/sPh8FDABDXWd
WJoa6U7jVu7EvEcN9z/wXV614FpvJLp5NSWOizKuX4RXWGjOYTyyOVLXsKWSkV/OX7vtzomVjA9d
uBvp0Z9zLmfFYOcJLv52YEZwN55P6pV1TjDHYSy3agaJeV5kDl5K2owJNILIX+0f4Nk3jkBeJ/Da
7+LB3is9v+7XtFOcoSPLyXk8DXGmhXjIpBC+Kr3fHJW4vkV+6R3niuLUOxEvZdGrbnM5FmOJXPCF
qzS12YZdW2lMmbUEi4+fQ2J1JLu0Dr/+wQ73tgg+LEqdLplQKElPP808WMyNxY/Cdms7MyQgnIvp
ILUd5sOHkRgZ5zK4sdxUaWAZxpVuhMSFaxCBgcKPe79OcXoZqYxJHKy6fapboR+MhOfN/RpxQNDD
ePzlhxlrV4wPWlmhR9bUrBfl8uoSPXlE/2sxve8Bk3PtJXnygZGo8z4tXa8yqLZfEnJ9XCVfUxMj
1QhtHm55XRiAfpswhwljwQ1cswmZ1eZRi/n60pEVX0VEvE+5DwpCKJdcg5q112AnhVGyNJI+ZcaE
VNWwpeVAbZOQVzU4dI44WCeY/xKnFWbFsOXINJJvGsMnRivGluHZKRMqbae3p7v4Di/ijKFBXjXi
OKPkBT3FwmfBXn4c60uqyW8naoNjnFmCIxfipYPR6LN2cgt5Jyyrc9H6YSg2lyY68/i+oIxqMELQ
AzSec5s3Zbeb3951JD1UhbNIbKo0YCNEYB1JQymfNTQ2iuBbBmWyzkcIvQrXYsOcKjzdE4+3tgTw
x5U4Jb+fceogqh1vjji/35HacfqA8A9Vgz72ItMt6Uh7NUua3HXDeCo9j3C1u40/aITgoZgJbnk9
ssnbUd4i71xcBH/hCMDZdrogPzUTM+nBFT3+Bs5WnOSWPNbCc52+5BlS/UJqGIa6hcHlS80e1zCk
HExGMbf+Za6ehK0rJst8wkNJly5zXRm8givdPbDxr9/Ga/6LYIqfh4DTdHE80k0ZvsE8n6Hs6Xcx
uYhGHZlDfBajrKINX9i+QGt5GTadDpCeUTGpySzbg5DYaNmWRx8PQU/jUbR19suSvj+GcDQqEzW2
cZj38nNIXrsM+S8C79NgNpIwJNoySKyYud/Wp7RN1VV93f0Ysjno9OMix5jIow1n+SagK2xr37nP
OKHZJbdRmuLNfCafBL77n2RbZj4VjRvWs/RQ4+Amvi9sm4wN38tDffVR1K/KQ/4BPtAcEk5+RL0X
Wa/Auc/mblQTWF9huhZ7bY5AKu/z5wT+V9DdfBS7cuudZ3OF8VeuZQFvY01KFbeFznMzQgrj3ZHk
VGROX441pX/VNtG4NhAwEDAQMBAwEDAQMBBwIWA7hw4ufvq7BxFFr6H5iSaIM1d5QopcL95P48OE
gF/ihDof7OObvc4EcIHHuc5VbgmrzpyLU83KXPEGvQWucZkeqnElF69Zt9s4Z+J5ISN/jbwNgyag
jsalrm4bBrqb0bB4GZCThtBIM2bTWNLPFwj9ICEBUxKewpgbVp611Oj85dzVuOFX9wXU44Lkl+eX
lGRwwUX+ZDY7WnmQ/gnb9zH95Zcxe+0mvMA56CmrmO9F41HO07vbb8D0lKgzARM5T++qqOO2xSBM
WJGI1iUb0NFmYxtJNzddLvTsni4ynuwERWNGUgDP6SmHjYv1GzfoMVW+QXpZRQhPLp4tNEhvC7t6
pu21bi4URL841t/EdmjQhj7Oaa/ZRN2DbkauqPzDmLBlCcrfTMTzaeqCz5MHz3u+RIBuPAj9/njc
YFvOVOyQOfod54uJeTLrknzI+j0bKXA6hyHmG+BbNxtzc+XWo9D4VBppDnE+/bDEb8pTj9Nw1gJL
Y6ekL7wd+m2irUo7hjzJylw6H5Z2ieEQ5fkTnkN0qkH0G20epAebuoASM25iZZf86/WpTj0iSRcj
eodls08Xl+ASjUKifzr2iHNyVtEoxK2x2dnoXrYKn7Yp4+ESz98S5/aIN2uGxqdxy9fP0XjknFx7
DVHuP3j6TRomFQOgb4z8y6AoK3gRsIr2S1lRBF9idM0rRjQi5xdxe973UFtajU9KV2HjT/fyR3PK
5kiCrqwIfgbdZUka0UhYV+6j8cy2OLzzvfk8Y61anr33jnPt5a9Pb3ANTUO9lWNG4OGoz9GWSOqc
6TyTjGuvvnPHUTuVOiebXpMinfmFLNmIk+B7wKOsoCVo99HAbxfX/FcMzjd4r8i1rIblz8g88k5+
3Ed9dvmc6PNB2JqrUJtbKo3erhzeruhQ4ZNuL2xcQ058+PsYLXRKXTU+JIlBKffclliRjLdKbPjh
i9RzWWvxk3+loiuzuukObzWKOLtQzHm5+KS5mxh045OCxXwe5NDzVA/7IG77zKZsWzE29nE5/n/w
+Hj0NVbjfKfQN8o49SWDMoPOR7A5G08FZOKNsOmYsPawy3CpO04FQS8yyL51BF99OjYuCfhzCsdp
mxxTXRUbUM1CQgcLj1A97BXaN68jxXN4SkAZ/lJ8BAPksa+5AvvpKTeWY9oV+JbU8KnYOTUcp1rU
we1KHHYVQAOPfJR8gA+GJd6RCB4iXrN4KXZygDpC0u6tWMptgWdzV2LNFnoEIQllAwvwzoPL8b7I
tHYrDhXEqtnPY+soxmcxbrsjjkk6dMdYP8a88HVqedfXL1vp+EaPMWtDDc/O2ulMmLlpPfJyZksv
pCG+6ve5mE2YlTQZxw8I3mYi99hrmBMvPKyGOGHYiDWZx11ls36JFeu5rTLEGeXlgkaZ9AUo2KtN
SkJRTyYm65YT+c9jPdvvqlGhMXP3LmxKtLGdPD+MIelgGVLs72BpikQQW7sOya196P0rtoZlKrgy
3xNrc5G1fg7CqL89cUDCz7B1eypdlsVGwyG0VdSgpv4sJibMQmBFPgI3v8e3NYLnh7Et9aJWR3gC
uwY2yDcjCvwWTC1wJDi/HdiLiH662aZMd+X52b5C/hIa4zRknS9egWVvJeO95gRnnIOQZTNlJu8s
kirLkJlERWQEAwEDAQMBAwEDAQOBrzUCz+AZn/xt8ZlyOwk8pDr9QfxRzrsWYtX1Kozr5KHLUUsk
0R/ubkVGWjRs3N7y5tzV0oFcJDzf1MOtO5yY0XOr8MHpXKpxPSpL0H6RtQ+vc44kPB2goaUks44B
1uFnbSwWX9uXcEIsttPwDCVBe8KLPNR+T6r0Erja2cA3Os6VHlOCbgA9gv7u8HZ165lSk6/P8yX8
MThTM9lmxhi2c2laJCzEosJtDpqFf+jZjnAxB7V3onFxFA6wqOAngP+zdh/GM9xCFswFjWXVHFQU
KrxOefFF9O3dC2vCPrxR63qTIIsMD4LuStJlvQrdBPx9Uzm3tIXwPK5p+AOPwQCy8I8DL+MDnjXW
JChwAVdQEI3aUeH4bx4UHX2mRNvRGBCM1j1tsh89svq4ZVvSw1Cu4jA1KwvXCgvxmeDh+nbYckeR
J/eiqa0Drm183Ha4n4tMySezxazdh+T17Df2ua2hhHKU6cQPCWvxi+1ruV3LirJRU7l5UhNGgp0z
u8Kzs+8Wkm7xekRx+1dueIrM9aPDXYjvzcWbKaJhC/EPlMNw6PWpk7iXC32MQjkiTqXPx/+5V5GH
ANb39017ZJ9SkHC+NBfFGYVOHBJ4/pZjm6IWI1HxlE2VWMztT8Fo94ORngzGodwTX9KWspJoJUZz
ZRtnHezAk/YNKkbAL7quI4pLiL7GCnz0+3pce5jrOG6hPBW0mVtHudDxEzp0ZMU5xt1oJLBfamHf
oCf3ZpYghhUlOFFvwUMJC3Ef9cV9mwcRH00h0xmnfQ69oqnz7yi7M0Q50rQkBqP8YhImWA5InfZD
6rLnqcvGirT51A1uazqXLhNvhn19qqIzNaQhaE+xbsCmucqASeuikwXP2CuVY2sT8q7nSH0mDj1/
Y7qr/I/2HcMzqfG6njd9dauwiVtGRfgF6Q6uDMMfhVpTx81lnqv1Txl7FRlbmIVZ9gae12zB33dc
x0ON6dSv6gCXFGKR2nSE2/r0F9uudgo7g0O2s7Cya7s8NkkP+2Bi2FGyGH+g7nXozx9m7caC9TQe
kjd/MijZ1PmwVaRjC9uUTpl92Lns1R+n9/GlIpue9VBmHKviGRXKZ5evPhXy0sUXDPzTEnUMJ7yI
GOtetFmUstfIiy/sH4lkI25JR4bIl1i8RTnpJgnxzJu+0IqmAxYpZ4oMW9EwLRzsZvbzAB4RP5Aw
rIVnG2U07r5xS6mHY0tsR+N2QIUfR+zIvkXZIPethM6Ct0FXboP0pHuuHj9ODsShZrM8T8tZj9sF
+aHhMJBlvzGB/Gp8C93YFjh4bQvtnmKg0hyFqlF8iDa/hxTPbYJulG7zRtZnxW9HLcXMtvd4Jts3
CN/bbLpR3EDAQMBAwEDAQOBvFYF7b9y6GSTtGOy1476QELdFl4gL5jkuV/kruTj/Snh03ekgPCC8
bR2R29GCgrym6fOgM9nTL8h5ujhcn3V6a6de2ojoCu9/b4T9FfaSLuaKfEtibvherL5RPeItmw5K
t46tSkEHYkH7jrXTwfDtfN9iv/nFSNL11aeUI2LkCwe/tH219xbb4oucEk9ZUhY66N48CjuDm7E5
O06/yN1Oda69enF0FB0rmgfxpDwrS634pnG4AUvcKFyruo4ZkaRBb6pvfLhpDG6uxYr8eimjW6++
3HuhNuIoX3rllseS35pFW27jWXCLOtJXO32x68u4Jbe/+yp0R+M9jUg3Q1yvrF6anzqGGXSEl9Ok
38lfrRJGF+Bn9A5a7tU76BaNdH74uavJOnOKYTiojBzNSMAGhwGcZ5+V3U3DFn9L2DU9HyctHeig
4n2/xII5Ox67q5AYxA0EDAQMBAwEDAQMBL7tCARJI5YnCsKwJYJ4O6I3A5Rn/lu590XXl2HAfx06
kz1/hfWMaXppt0PXX1nP9M5q7I7awO1P/Amfa/QT1Z34SVKkZy7d+1vHViWrA/Ft09bl/BYSb7Hf
/LZDl66PRbHKvl/avpqpW6evQvrxtooM6RWj5IpDeke0foF7kPpJxmi841x75WCt1rAl6r9JHLro
6VTO43UwaTQ+iv1HLG7efNMG4XvQ7Jur4iYxuDniwjDro4Ruvfpy74PiiKJ9jRlf8SMiqptJpy26
GKhEfeHHZD2e9dJ02fVIvHeeWx4Vfz1vh3Ce51PJILyZIiNgCvn2eg+Jw/d7ehWPO1Nk2LAtgne2
D4dgbT8vvfsk3SC+cTFSvofxzlZjUDMQMBAwEDAQMBAwELinCHy9PbfuKRRGZbeDAA+qv9TeKRf4
gox8E6FqhLwdskbZbykClCcbD4EWnjpjoyOVLcdfMRRXeYB5P71GhRdlKN9i6MsAPlI2r/KFB5d7
lZdAXCPNh9jO26U50rqNfAYCdxMBX55bhnHrbqJu0DYQMBAwEDAQMBAwEDAQ+JYjYBi3vuUCYDTf
QMBAwEDAQMBA4A4i4Mu4de+2Jd7BxhikDAQMBAwEDAQMBAwEDAQMBL75CPiaoH7zW2a0wEDAQMBA
wEDAQMBA4F4iMOpeVmbUZSBgIGAgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIHAnETCMW3cS
TYOWgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIGAgcA9RcAwbt1TuI3KDAQMBAwEDAQMBAwE
DAQMBAwEDAQMBAwEDAQMBAwEDATuJAKGcetOomnQMhAwEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAw
EDAQMBC4pwgYxq17CrdRmYGAgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIHAnUTAMG7dSTQN
WgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIGAgYCBgIGAgYC9xQBw7h1T+E2KjMQMBAwEDAQMBAwEDAQ
MBAwEDAQMBAwEDAQMBAwEDAQuJMI/P/t73N1NayeEAAAAABJRU5ErkJgglBLAwQKAAAAAAAAACEA
14NBLe2VAADtlQAAFAAAAHBwdC9tZWRpYS9pbWFnZTIucG5niVBORw0KGgoAAAANSUhEUgAABLsA
AABACAYAAADyHHUyAAAKp2lDQ1BJQ0MgUHJvZmlsZQAASImVlgdUk1kWx9/3pTdaIAJSQg29dwQS
eui9iUpIKKHEEAgqIjYGR3AsiIiAMqJDVXBUigwqYsGKYsM+IIOCsg4WREVlP2AJO7tnd8/enJv3
y837/u++l7xz/gCQ73KEwjRYBoB0QZYoxMuVHhUdQ8cNAQh5ASStONxMISsoyA/5BObHv8bH+7Nz
wR3jGa1///6/hiwvIZOLLBSEcDwvk5uO8EkkO7hCURYAKCFS11qVJZzhEoTlRUiDCNfNcNIcd85w
/Bzfmp0TFuKG8B8A4MkcjigJANI4Uqdnc5MQHTKyW2Am4PEFCDMRduYmc3gIb0DYKD195QwfQVgv
/p90kv6iGS/R5HCSJDy3l9nAu/MzhWmcNf/ncfzvSE8Tz6+hiSQ5WeQdgoxyyJnVpa70lbAgPiBw
nvm82fmznCz2Dp9nbqZbzDzzOO6+8yxODWfNM0e08Cw/ix02z6KVIRJ9QVqAn0Q/gS3hhEyP0HlO
5Huy5zknOSxynrP5EQHznJka6rswx01SF4lDJD0nijwle0zPXOiNy1lYKys5zHuhhyhJP7wEdw9J
XRAumS/McpVoCtOCFvpP85LUM7NDJc9mIX+weU7h+AQt6ARJzgeEAn8kLYAVYCFpDcwAyEpYnTXT
sNtK4RoRPyk5i85CbkwCnS3gmhjRLczM7QGYuX9zP+972twdpF1dqPGYAFirAQBPLtRSFQHoWguA
dPBCjZEHADERqQ9zxaLsuRp65g0DiEAayAMloAa0gB4wRjq0AY6ACTyADwgEYSAaLAdckAzSgQis
ArlgIygARWAn2APKQRU4BOrAUXActIFOcA5cAtfALXAPPAYDYBi8BuPgI5iCIAgHUSAqpASpQzqQ
IWQB2UHOkAfkB4VA0VAclAQJIDGUC22GiqBiqBw6CNVDv0KnoHPQFagPeggNQqPQO+gLjILJsDys
CuvCprAdzIJ94TB4GZwEZ8A5cD68HS6Dq+EjcCt8Dr4G34MH4NfwBAqgSCgaSgNljLJDuaECUTGo
RJQIlYcqRJWiqlFNqA5UD+oOagA1hvqMxqKpaDraGO2I9kaHo7noDHQeehu6HF2HbkVfQN9BD6LH
0d8xFIwKxhDjgGFjojBJmFWYAkwppgbTgrmIuYcZxnzEYrE0LANri/XGRmNTsGux27D7sc3YLmwf
dgg7gcPhlHCGOCdcII6Dy8IV4PbhjuDO4m7jhnGf8CS8Ot4C74mPwQvwm/Cl+Ab8Gfxt/Ev8FEGG
oENwIAQSeIQ1hB2Ew4QOwk3CMGGKKEtkEJ2IYcQU4kZiGbGJeJH4hPieRCJpkuxJwSQ+aQOpjHSM
dJk0SPpMliMbkN3IsWQxeTu5ltxFfkh+T6FQdClMSgwli7KdUk85T3lG+SRFlTKRYkvxpNZLVUi1
St2WeiNNkNaRZkkvl86RLpU+IX1TekyGIKMr4ybDkcmTqZA5JdMvMyFLlTWXDZRNl90m2yB7RXZE
DienK+chx5PLlzskd15uiIqialHdqFzqZuph6kXqsDxWniHPlk+RL5I/Kt8rP64gp2ClEKGwWqFC
4bTCAA1F06WxaWm0HbTjtPu0L4tUF7EWJSzauqhp0e1Fk4qLFZmKCYqFis2K9xS/KNGVPJRSlXYp
tSk9VUYrGygHK69SPqB8UXlssfxix8XcxYWLjy9+pAKrGKiEqKxVOaRyXWVCVU3VS1Wouk/1vOqY
Gk2NqZaiVqJ2Rm1UnarurM5XL1E/q/6KrkBn0dPoZfQL9HENFQ1vDbHGQY1ejSlNhma45ibNZs2n
WkQtO61ErRKtbq1xbXVtf+1c7UbtRzoEHTudZJ29Oj06k7oM3UjdLbptuiMMRQabkcNoZDzRo+i5
6GXoVevd1cfq2+mn6u/Xv2UAG1gbJBtUGNw0hA1tDPmG+w37jDBG9kYCo2qjfmOyMcs427jReNCE
ZuJnssmkzeSNqbZpjOku0x7T72bWZmlmh80em8uZ+5hvMu8wf2dhYMG1qLC4a0mx9LRcb9lu+dbK
0CrB6oDVA2uqtb/1Futu6282tjYimyabUVtt2zjbStt+O3m7ILttdpftMfau9uvtO+0/O9g4ZDkc
d/jT0dgx1bHBcWQJY0nCksNLhpw0nThOB50GnOnOcc4/Ow+4aLhwXKpdnjO1mDxmDfMlS5+VwjrC
euNq5ipybXGddHNwW+fW5Y5y93IvdO/1kPMI9yj3eOap6Znk2eg57mXttdaryxvj7eu9y7ufrcrm
suvZ4z62Put8LviSfUN9y32f+xn4ifw6/GF/H//d/k8CdAIEAW2BIJAduDvwaRAjKCPot2BscFBw
RfCLEPOQ3JCeUGroitCG0I9hrmE7wh6H64WLw7sjpCNiI+ojJiPdI4sjB6JMo9ZFXYtWjuZHt8fg
YiJiamImlnos3bN0ONY6tiD2/jLGstXLrixXXp62/PQK6RWcFSfiMHGRcQ1xXzmBnGrORDw7vjJ+
nOvG3ct9zWPySnijCU4JxQkvE50SixNHkpySdieNJrsklyaP8d345fy3Kd4pVSmTqYGptanTaZFp
zen49Lj0UwI5Qargwkq1latX9gkNhQXCgQyHjD0Z4yJfUU0mlLkssz1LHjE618V64h/Eg9nO2RXZ
n1ZFrDqxWna1YPX1NQZrtq55meOZ88ta9Fru2u5cjdyNuYPrWOsO5kF58Xnd67XW568f3uC1oW4j
cWPqxhubzDYVb/qwOXJzR75q/ob8oR+8fmgskCoQFfRvcdxS9SP6R/6PvVstt+7b+r2QV3i1yKyo
tOjrNu62qz+Z/1T20/T2xO29O2x2HNiJ3SnYeX+Xy666YtninOKh3f67W0voJYUlH/as2HOl1Kq0
ai9xr3jvQJlfWfs+7X07930tTy6/V+Fa0VypUrm1cnI/b//tA8wDTVWqVUVVX37m//zgoNfB1mrd
6tJD2EPZh14cjjjc84vdL/U1yjVFNd9qBbUDdSF1F+pt6+sbVBp2NMKN4sbRI7FHbh11P9reZNx0
sJnWXHQMHBMfe/Vr3K/3j/se7z5hd6LppM7JyhZqS2Er1LqmdbwtuW2gPbq975TPqe4Ox46W30x+
q+3U6Kw4rXB6xxnimfwz02dzzk50CbvGziWdG+pe0f34fNT5uxeCL/Re9L14+ZLnpfM9rJ6zl50u
d15xuHLqqt3Vtms211qvW19vuWF9o6XXprf1pu3N9lv2tzr6lvSdue1y+9wd9zuX7rLvXrsXcK/v
fvj9B/2x/QMPeA9GHqY9fPso+9HU4w1PME8Kn8o8LX2m8qz6d/3fmwdsBk4Pug9efx76/PEQd+j1
H5l/fB3Of0F5UfpS/WX9iMVI56jn6K1XS18Nvxa+nhor+Jvs3yrf6L05+Sfzz+vjUePDb0Vvp99t
e6/0vvaD1YfuiaCJZx/TP05NFn5S+lT32e5zz5fILy+nVn3FfS37pv+t47vv9yfT6dPTQo6IM2sF
UEjCiYg/eFcLACUaACrim4lSc/54Nub8/xyB/8RzHno2bACoRoYZWzdjjaoQn8LoQjSRnLFHYUwA
W1pK8h+RmWhpMadFRlwm5tP09HtVAHAdAHwTTU9P7Z+e/nYYafYh4mMy5nz5TPgZI/bawczczOoG
rn8D+Jf4OzmnAcxA7EsUAAABnWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4
bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRm
OlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1u
cyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxu
czpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBp
eGVsWERpbWVuc2lvbj4xMjExPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6
UGl4ZWxZRGltZW5zaW9uPjY0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVz
Y3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CgqzfP4AAEAASURBVHgB7L1vTFNb
uy/6c2efQ01uAvpBWCt5CeZGLu7Apea6cruuRhHOeenCbEHiSsDoFXL8UKMJdXsSKmareLMUP7hX
SfTSnPCGejCWGwwg56Dw3iCwwjo20R1qMKc9uO/bhjeBwgco2TuhvvtD72+MOdvOAv0DS1HXmkNL
55xjjGc84/c8z5hzPH3GmDsiTFDT8vJy9FD/1hHQEdAR0BHQEdAR0BHQEdAR+CAI7Nq164PQ0Yno
COgI6AjoCOgI6AjoCGSCwF9lUkgvoyOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI/Al
IKA7u74EKek86gjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AhkhIDu7MoIJr2QjoCOgI6A
joCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjsCXgIDu7PoSpKTzqCOgI6AjoCOgI6AjoCOgI6AjoCOg
I6AjoCOgI6AjoCOQEQK6sysjmPRCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjoCOgJfAgKf
h7MrHEZYfjaGTMljmY2z9as6AjoCXwwCqq1/8fwuYLRvEitfTD8URlONs19YV3R2dQR0BHQEPgwC
KZ9Bo8+n+hPohwFbp6Ij8AkRUG39E3KwyaaTPDMHPRgY922S1qcunqQvn5otvf1fPQI7IkzRXi4v
L0cPP+x3eAHT04uAgWSz9qCkMFdDfwEtu/fDIa+UY2LuCUpEOTUtjLZg//dq7n03npwujGal/J6d
nk6YiGZl70FhfrzdldkZzCy8hyHaFgfArMISFGYDM9Pv8H4d9SzklxQia2EG07Oaemq5rPx9rBsl
tq7yR78wMzkKlFRI/j96Y2kaENgvIAslxEtBZIXyn6Hs81GS+5740UXA58Y9JSXIXiGei8STNPfs
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAADMAAGYAAJkAAMwAAP8AMwAAMzMAM2YAM5kAM8wAM/8AZgAAZjMAZmYA
ZpkAZswAZv8AmQAAmTMAmWYAmZkAmcwAmf8AzAAAzDMAzGYAzJkAzMwAzP8A/wAA/zMA/2YA/5kA
/8wA//8zAAAzADMzAGYzAJkzAMwzAP8zMwAzMzMzM2YzM5kzM8wzM/8zZgAzZjMzZmYzZpkzZswz
Zv8zmQAzmTMzmWYzmZkzmcwzmf8zzAAzzDMzzGYzzJkzzMwzzP8z/wAz/zMz/2Yz/5kz/8wz//9m
AABmADNmAGZmAJlmAMxmAP9mMwBmMzNmM2ZmM5lmM8xmM/9mZgBmZjNmZmZmZplmZsxmZv9mmQBm
mTNmmWZmmZlmmcxmmf9mzABmzDNmzGZmzJlmzMxmzP9m/wBm/zNm/2Zm/5lm/8xm//+ZAACZADOZ
AGaZAJmZAMyZAP+ZMwCZMzOZM2aZM5mZM8yZM/+ZZgCZZjOZZmaZZpmZZsyZZv+ZmQCZmTOZmWaZ
mZmZmcyZmf+ZzACZzDOZzGaZzJmZzMyZzP+Z/wCZ/zOZ/2aZ/5mZ/8yZ///MAADMADPMAGbMAJnM
AMzMAP/MMwDMMzPMM2bMM5nMM8zMM//MZgDMZjPMZmbMZpnMZszMZv/MmQDMmTPMmWbMmZnMmczM
mf/MzADMzDPMzGbMzJnMzMzMzP/M/wDM/zPM/2bM/5nM/8zM////AAD/ADP/AGb/AJn/AMz/AP//
MwD/MzP/M2b/M5n/M8z/M///ZgD/ZjP/Zmb/Zpn/Zsz/Zv//mQD/mTP/mWb/mZn/mcz/mf//zAD/
zDP/zGb/zJn/zMz/zP///wD//zP//2b//5n//8z////VFqRUAAAAKHRSTlN41PD/sJIA////////
////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN5QoUAAAAAlwSFlzAAAOwwAADsMBx2+oZAAA/GVJ
REFUeF7snYtiqjAQRNWr/f9PvnNmN4DPqtU+dE4V8gJbm+xkkwCr7Xo9vQ42l1+1WaZceB3Gb3pN
OMym39OrN4vg3qZee/EpDRbpU9rgKOGBnDj3MsnhvTKXc5dpY3PwOoxf//pD/Llf+Jk88ZuoU9e3
PYUXm0qu16mUaVc4ssju/bw7kVJUaMRHnt5OWoYXbPy6gs31RQ/xgT5+jzpfvVyiC3RojvUPLycs
d8sCix9e02YkaH8rp4+46jzT7zk+l+25I53XBRZlRmxKWgam8HmOilxxzJILxUfWtb/FstzxMat/
f4BNv5/AmdPe/4mfH3VQ4tYDiJ06xefn+Rrjc48+59kffD+bdQfemvW2A3dy8v/74H/6/af7vbUv
hM9ZpQKHl2KhN5v1LhL8T/3uDoUQfhWbCHB4LTbLGr1+UwFOqw7hDxABDq9N6ncI4ZcSAQ4hhBB+
gAhwCCGE8ANEgEMIIYQfIAIcQggh/AAR4PCi7K2GfikO/rCK5prnEP4cEeDwqpyv2X+7zh9KbV3m
u8klzyH8NSLAIfwpzjbYzshtN0L4K0SAw0uh6vzmNXq9jSscwt8gAhxeighwvoAQ/goR4PBaxP0L
IfwRIsDhpdhkCjSE8EeIAIfX4sLVR29Y1V/3WqwQXoAIcHg1UqNntrt8GyH8WiLA4bWIz7dkkyXR
IfxeIsDhxaBCp1KHEH4/EeDwQnCTqEWFTt0OIfxiIsDhhVhnwDWE8GeIAIfXJA8nCCH8ciLA4aWY
q/NCgFPHbyRfWAjfQQQ4vACXlz7/bBX/iw0sRiGE7yACHF6eCPCtxCiE8B1EgEMIIYQfIAIcXpS9
ip1afhu5o3YI30AEOPx9zlx9VFXb29Ty24gAh/ANRIDD3+fSI5CeLiXbP96C9Osf/wV//G8K4W8Q
AQ5/GlffzYVV0M8W4NXHpx/wB69Izh21Q/gGIsDhXViKyuNq/RUO8K9Xs+PfL7cUC+EbiACHP0tV
3asr8M/p4C99JuCFLyQecAjfQAQ4/ElaIdZ/Qiq22w78GWIVQvgGIsDhL7L+KE27svZWsa9U9S/d
WvoPtrKYhRCeTwQ4/EW2H3PFtQ98sRp35uYrsvKFQ3/KBf7K3/ulPzeEcBUR4PAH2exW7QIL+aaf
S81mu/vBa1tXuw58Jxvo8M3ELITwfCLA4Q+y3W52yzFhCfClerxZ7z5g9VNzsT+yqHizWS8V+LaG
njtxhPB8IsDhD4I8lERos/FKrAv1eLuy/MKfWw31JRDg6Xu58AUdc+nWJiGEBxEBDn+RvVr7yVJo
eb+r1dDg57iiPyZX059z8heQD3yv7x0BDuH5RIDD30O60qFSnv3x6AO2yO8kwJ/ft+oeNqvnCPtn
zI7qyS4I+rv4xW7505/yNe2z3m63vHfb3U6Bn/kGQ/hJIsDh77GZbz/lwPrCGqf1x2q3FODnLIfa
/lA7mvT1tABv9nTtVzX1bf8/FqyQ4b156xBemwhw+GNMc79sLS9tsU8b7h0O8G71MRT4SeuR17c9
k+FRI7yTWp0+31qKNuc86DMfwOaE/C7Yzn9XCK9MBDj8LfaGKtdeVGVjfW4htAV4doAX1w8/lvWl
YfAjHi7Ap9nseZS/RtQuy+9A/aa//qSpEC4TAQ5/iz3p8ghs6Uola3tQoT3+PDvAz1qGhaocfPJ5
HqeEl0/kRVizBP8WAb5Of5uocHhhIsDhbzF5wKq4Lb3atiyzq9DE2gIs/R0SfJD/OLY/creN3p/k
dwrwTfprdtvde10/Ft6FCHD4W4y7Ou5dX3NJ+9oF/hjD0M+r8D9xv6trBFgK3FHtf7y9r+vfcCsr
/o4+RQgvQgQ4/C2GB7x05zarC9V4K9/XClw8USQ3h3fa+mmX80iAvfnZX+p2/3fBTn9MnyeEFyAC
HP4Qqqyn9IPrSDsI+yXWtQprTAM/cyyz1oRNLK6W+hH0VbUAV7S+mZ8V4I3/CV9iNzoUIfx1IsDh
77B31dEM9+E4X403doCHBD/x2fj6vfZ/tYcNmd4uOD5Azi7LoPcuRRKP+q3uokX0q+y2P+3Jh/AA
IsDhb4HdrdeEHc/z9biXYdkBfqb/e8TjmtbNYuO+AAKMA3wgwD/Il8afj9hxkVWfOYS/SAQ4/A1c
T/ceiz9q7masyzpXlTfr7xh/fiq3znxKeZFfHaj9Wu5ip/8k9USqh7PNgyPCnyUCHP4ok6isP+YZ
4BO2eCPV5fnBq598IPBXuVVB5fmWALOVE9zJP8idi5+vZCVnuD8ohL9DBDj8ATaT73uium52GF/E
5qTS1JF/3Uuymk58/sdMzwK2Av/4H//YseczuB6E8IeIAIc/Qa0oRohPVtjNmkuAGIt+1fqs3sUI
HajxSRYCfO47u4rPP+kzNuvF85ifjf7q/tgQ/gAR4PA3sGWVkuyZ2Cm4W+22/zZc5Ltm9LVTf4Yn
ffr0uIfrFHV8T8j1mU5L7y/yFUFj9vn7tHewuumm3CH8JBHg8Jegth7X2M3OVxetP1ZYfaj0n2Fv
pdjjWMjoNZ8wvgXtzsn1Nd/SnX/MZrt70pqra1jl9tHhbxABDn+DUU+Hnizq7WbbBne3/1z8H6ra
z5L/hY5+/hHoL4XQ3wMBnmKfnkTcIcDr7Q9qb7P6PZdehXCeCHD4E1BNj6vqcPJk9QlIgF94Hc7i
z9dffPxl7CMBUhFkGAFeli5lJlC7y1xVaEKeb0vgz/MTz8YI4SYiwOGvMHTjFHUTyPVOcuP4z3Lp
N30MCOvlD7FGb1iKdeABP22OfLP+afHd7U8574+HhPD7iACHv8H5erqW39WmlkJvUaGR1/GHnlXi
EwJM0vWjs7d8lT+uvuJo3vnP3nglvAkR4PBHOFtR1zUr/J0V+WcbTf21s+6e+m1cRuJrAWZFtAsp
dosAX836+xc7n4Mr0da7/n3+8r1XwjsQAQ5/hRM1tZPs/+49EOlBnHEuz/qcg6fPRKOo0y8x5HUJ
Ccit9XeaBUaQt48W4M3vmfb9+MCe6TXfd+uJT98I4atEgMPVYGl/blCP2d1zgoj4dt731OdPPqUE
+PG/yvKMe9+FhLZDS0iV5uLzgsJcJY0aq/TJI27nNww9L1nJ+93qj2M6eLXdWZFD+KVEgMPV2MD9
2NpSCfBpmRE7qrGfyfCZrHAW759S7/dP+pSPOM3pb0aJHoXG6UV8CZf+snmEI/yLxp4XVB2dH5L1
nH92CF8mAhyuZSOXYrJuP8CFmrr9kMt51Rj0JDtfrfcnj58tvUNf/YwDLpzODu4RpFp3EeAtj9C1
9NoT5ln9BClWpW/nd8qvOKij6yyIDr+TCHC4li0Ptpd1+xlb5hHoDh+xsQv8jwcfPYq72sV00COu
hjqU1Eu/0Wl3tgXXArzmbiXt91qVtWGLP9zFb+VbnrBwHys5/f1bgn7TZywRCOGLRIDDlcgBLlad
8J2gHGzPUQL8b3vdkpu9Qkut/EyLTmcjbIecK3k9dlMXTJFTWmud7fCM9Vd/HuJrAXaaNlIjCzBT
wpQi41Z+sfyaPS94/VP9xhAuEQEO1zKNN37/IDSV9JTuDKQy1lGm/Y6LHaTwQIcOmgf4Rid+tekz
TuRdx1KAl/J64otAaJHRgxwcXNI9Cdyns1T7sVElwAjx8Qn3OJX92+VX/cS9X3v3wMGREB5FBDhc
y5YpYA9C/8g08AUTSh2+3o1DkZZu7y0KfOZDTnz49qstq4SxFHSPE9c4WUgp3fGm0rTxGHQJLadV
sEIOfirAx2x+6+Tvkkhu+PVEgMO1rFmEVdPA363A6Muu1y+f5eqarIL1eOFmT42v4MQHLc/Wuy8+
Fa8F81h/TwgwhfBsD3+zStMJNr0MWmmlup293Rfgo48qjlLnq2x/M2cq6a3/7RCeRwQ4XEtNAu8k
wt/tXViEPruBxBn1OMN+6dsagcRM2zPHkOesU7/PmWMOKUEtmfQhe385CrJ38pJZbxVb5Ph34ctD
fEtovSvJtSQzNzydfXHoBMMFHWx+1Y03LuFKevRvWGdFdPg1RIDD1XjcURtenfR9rHers373fXV4
0p0TVvoiSNqFD+2MKjWoI84eswTxLXHsBEaQSzMNUrv43fsP8cfxWuRYe63MlloUvUXXhUiBvV/0
ALL2s/+G+2tcS+tPZdPEBQ6/hghwuBpcYIuw+K5qY9GSQshv2Z4T4Dst6iXd+YzNheXW5PjcyyKH
8fNYfdHJjuP7b/FTO8bJLaqDGk7nE713WmEB1uksvhbgjvXJJgV27CTjtBN/SH9VW8ev7pu0zOgP
71AIP0kEONxAm7XvG4Neb2X+11LezXa9+yW39UWv9hSwmBLItsLtlTkqfw6013Rcf74UeE+ApZkd
BESVXTnYes8fNQmwT+oTO7mOUDbqO1JPcpDzZ4afB11PWb8wgjvVqV3uER1+AxHgcAN9LbAE+FuW
YSEQ2nnodLNebad1TQ+stLefquRqKYGG1HGyLnJU5hr6xpHz7yXv1y7wnFJfy2CIae9GCIihr1ba
ElunispGlDv1Gv6a/Iqe8eU3d0DfL1KsmnzXfyeERxIBDrcwe0DPNF+jTpZMlDzIcTmr+t9dh/15
BwPf9TssfmFFlkutP2XIJgPESwFuB9gu8Ejcl/b+ghye1RUQYFP6K8hzQpUhAxF25DP+1OjzAru+
y7+Sntxml8VY4ceJAIcb8Spo0dGn0QqxkYyVapxfvvqNdXj8VvV2+GjXQRn6W0y8z8m+L9qtVAS4
FVgpSCdp47OLUpZKosSUqWD5v6XAcqMtwZXaZa3Ae6c7xx90f5sefeavrC9nu9qpa9Jj0iH8GBHg
cCMehv6uQei1DGWphT74lEM5km6rxtNRtx0Gt3ygnOT2k6/4IBWxEm7kn6GU4wh5wPyUACPN+ui9
05HEriL9ZRnklThnRoB1DlByO4UlzHzW8oQn+RP33jjL3HfrL2v1oe6IE0L4OSLA4WZkilmHNdm0
x7JXIWcdUsYsPIvEg/1VzBo1heakT7hY8CBvHjUu3fwMq6c8XgR4lJYeI78oMCerhxp1XoHKdlAs
gxZgDiqhZSbZp+4jSHTG8vgz/P5bT37C1F9clz/Mc4yv+Z+E8EQiwOFmcIakwE9ygS9VyJYetl+r
t9MI79CeqwX4Mxbn6cttiwqe+5RORxmltUtJrClgb0jkNs6Hv2vraTFnUrpyEHbrr5B/TWolESTV
hc/+csr5u8PPM+Nfvu2rk9ZPq8IhXEkEONxOL4Z+9hDetVVzaM4NVXkS4BuV94rSc4mFLA7OHT6K
Wg6ljRUD9Hi4wPzW828+cWYOV4kMMuMAs0OAZx229urNtg7HVT7Dn3d/izEOPV3QtvuJB3uFMBMB
DnfQ62GfpMBdJcf06VJxltI0BfcE67mckL8D7vpdJIN1GCPMe+dQgsW3p4H18SfOf/ILIElnJQuN
5eomyy17xqL5TASYZAp7pPrU2efHYP11Jr2dnpTBv/Mbq08I+0SAwz20T/SpHH0Ny5JF58wHjcpL
sbsr8hn7u5d6qsg5uz0ln8k/gcXQISv8QuY9Al3qawE+JZEnfxES7RrrCPvVtbH2+lQWfRTZ+4k+
fMHL6O9iItjD+cK7z3tVITyHCHC4C6aBFy7F49irj0QQ31aSIxZJZ+XwTPrdTOerM184/bWfLNlD
Bet02pcbXJT32xJssWzpWHDyTySxT+nR52noWZQAcyZ9sJJdxvLLzodP/NWLf0+z2o6/T3+3Qzdd
qx3CY4kAh7tou/zAVSwnZcQsMlp9FikEzx4JFzMXnP/8c9x8wGmse+DzEUQdWzzRyhlKDedt5uRv
TqIzrL+lwDq0A74VhT+Tc/oXUCY/+ydbv5D7O+gJ4L6vS981NJckhZ8gAhzuoy3zd6wjnatoi9Qt
XH07qpMyViCHz2sneLX2SOsjcEkVLi943AarB6EtwPUHLX6h/d9tL0NhCzAnrYnfEuDdbtu6TBov
n1wH8B5neInFzyeoIef+MzeszeJ24yF8OxHgcCcyzojwgyrQdWc5OQPa++I4/xMBvu6DaxC8uPKI
q7H7OT++35+EapJi3R3vEuDuhCyucdoXYCloh5xjP9cCjNZagCW2EmDrbwuw0xRp+e0TvMji5xNM
/m4tMNj7/kL4PiLA4V6GfZ6k425UBz+rhhRhrVBHxQheceQFPjt64sQnP4SSyG2Ni7IZS4LYWxYn
/d2pIIUrf5oo3hcQxRZ9haG4pbPbivJgqb64qTJKlHXCpg5+wdHnZjZ69YjLvQu2Q/g+IsDhbnjG
G1b66wosTmnrjFL2V0JLioYb8301+KZPuq4wPid/S0vA8u9UTju+hcIo8Pii7DQT3hNgnW0hotpL
Wa2u6CwCbDXerlY+szNJ8VZlGg59Xf1d3Md8s/PQw9lHTYfwVCLA4X62JcAPuR54KcATJxIriZnd
h+j+TQzn8zL1C578e2A/Hb2UlHq8eRzJ1oFyUtv/ZZi6pdLZ86j1vgDreGu6I6Wrllk7uiXAOtWK
Rzw4TUmVTdhw3r7Xyqsy/SPViaT21lKsEL6ZCHD4AtgyNLgXlt7C3rjpHuS0G3hCxSZpuf0jL8KH
fnpK1O0a1hfOtfTkdT4UcLfi8hgYybUr9R1XAfsWlRZUZ09D0AefRQwBZocCo76lsIRY3aU4Y9DE
fMZZoOuX0JGvO/3bTH1GljJot37WXWVCuEAEOHwBX4xkJ/hmB2J/RLmRBlhiEY5O2ofaWjV2KvCg
Cnxe0JcZ133YviIeoF/c+dqUAuqPlQIjr50uqW0ZtOyiwJJLva2WpcDjG/IRBGZ0pMVUAQtsH1Z3
mV4I8JRR+lu/Ch75aw8/N5Ph0zfvLzE+cPh+IsDhEidlcgGWeuVx6Mc4EDi2GEQr8RElUPtSebL+
HiReU8evKTNxofBn55HM6U9ACLkGVyH00Iq40rv0EPlFB+34TpQA6yCVRy7rk6bP48sZX9Aspg42
peGSW6t5jUzzCwhncwynfa17b5yFr0Bf11TRzvT5QngeEeBwHj/26GIFqXVYdphuXcdiwTi2eRsP
BvLsPceWn96RoTwXf7E9XPKzvsQNXP/Je+gwFI4Q8lc6aq2UNm63csVwUV2Sol4DjVKyqw06WYcg
lPs4TipF9G4o6uNKgJHdOh8BlxwRbfmFtm/g/k70o/qLG2pUCA8hAhxmDixQe0IXa8iu12GJO6rS
qes/WJIk4ajIXvaIVOatgnpt+cPfaO9LkVvaoXvx6TwOLNGzTiKYVlgC/ssVoOh8F47eo5QUQlEp
TSHT30gdac1VQIn6qY+CPhH7doVrO52fDsGr3nvjJPQv/f018xcawrcQAQ4zB3WhbfHFGz5LpHdy
gcsLvtnH3O15IMXGiRer5cg85UD3/stMujsFYC9yP6giA8yll3oTtEMscItdyspodSyJtGw6XxGH
XIw/2iEySoBLS0mxAPNjqS1Pt1dgaV+JE9L2d3J/zXEF/A08cLgm/GYiwGHmoC6MpbAXB5etvsMN
vs2aSSv2DymrgwPsgFiElvvaTHlmPzZzLv0TrG5slh+j4FC9Reqt4OdaEBHREmAUssXTexdrWQRG
p6WbpcDj0IUCE5DY9jks1eip6bJorTclwNt1XQtMSuk7Yf8X3wh6jseV9qfXY7kf1uHw0kSAw8xB
XZiuBb2kq74W2PKLCF89EYxk6N13xDdeFSyFY4yVKL9NzwWjIw4U5SKeGL6+xG2lC3/qJHNmVj3s
JLK1W+1WEjNYeRXVsvzxp9qBRSVV0JZWH2IP2Adq2+ZfaS2M7PzeE2AO7q+Ab0ehEmD0l+lkvYgo
T+WI7ba+sUcruc+mnc9m1ut3Gn5esHcRHVXtp9WPurFf68KLEgEO55kcoksGqVxgc4sCF7Z1s7ra
6shn4yzca2OzqvqJVZwqqpTJkUXSgzg8X5vi/eT6HVG5/qubRZRrik7+cj4UAdZJLJYorxK5F4fg
vAiwD0UTLZFWTPSTN8VKgEs4Kck5daA3nJg5gVpPzaSyfmP1DPi1Snp9Kl514joRJv+NVl/Nf6m7
Tv0trq3E28fc2e0L8L/Uf6Vj4ZWJAIeJI81oF1j2vBNOsViGhWG74xHBJTgLagZM275FMgIjHFRk
ta1DDmzU4VlO8GmRvQLjI5eJFrmrpGq1kqj1oX0edvwh1l70k75GaSpbZTvVAdTV4lu+tUKOumBt
SFXR6sIgotryEfx6qxWyWjL8by09rt94uy7ZRXl1XrSHk/nD39P9pbPSyqsv3/+gFSM+R23hG9Hv
of9HpoHfgQhwmDiuCrjAslAXB6EP5w1vU+D9zzwwe5v5GUEWrg4pdSjzIVXmdN51LI6dPrB2Moy7
ua9xGXoiDlgj62ifrjQZqWSNc7mm6OU0XCwx9M6CqxL20NBax5BKT9tqY/UsQ80BeMXaK1FnlQD7
DMjwRv8hJQiOVAof7F9N5Yij0m/j/tbfOf+1Cu3m6uR/zgofuBN+AiqCXx0Pr0sEOFyi7DJG6mw9
sQDPBk3hq6rUUaFJfOecvaQpIsXQp07SPKUreGyzlhr+CXXs4gwKdgx9ayfyWhZS3bda4o1rU2dk
tbfoIipvb1VKqHx0sjTWAoz+WoFLcluBSVHEhprzOsLfu13hNpdaU44nL/BRJElxud5YB/OJOrNP
+EaLn/nGx9fuLd8MU/L+t2xWruc/PApNJckg9HsQAQ6XmUYmzznB01ItTFvt7qlTqMgI6b2QVeGk
CgoPui6tk7O02T8I5P3dVsMPTqHfQ05l/X1LyoIfsOce91cxKG8Vvew/TbJ4eIQ1eKsPLP21yHqY
2CG/yEEykWYiPmfdWotDmABGiocA9zmIMDHNeCtKDKiQHWAdejiI8bLw19d3INwrqdioTBvEWFj7
bqo3D8X/FP6v4dWJAIdPmOTnnD1wgVlJCN1hOkqA7YlY9c6dgvoqkdpNRnPBkQDbs1vJmF1dy+dT
sAr5Nq8Xcz4CZdkrOmGfs3T2hKgLC+KknHw+ckmkhFRhjDNqS1jg5OIFlwCvebyeInUkp+A4XuoC
6BfiI3ycz6WIDz39u7wgQ3SBL8D/H4X1PfQ/XRWmgldXmGeA+J5vAeGFiACHz8A+21Sd8YHrhlk2
7g7BhTnjPSS7HWowPeivpKFTTmBH71T+ftqkLLKwJ8928hQkbjb3zIlOh2DSa1eid8z5s5euFsjo
FLdm9pCx1VYZYwdVaP2PQWzl61fgGB+nMvQH6uy7D0apJUU6Oad6m9lf/hmorfaMK/DljrTZBx5z
G64aJyvNt0Ab6GB4ZSLA4TPmZ+OcngiufDYWPMzZDT7w4SktwNyPUhnDCxhl5rLXuLR7E5t7l0ft
G7f9iN3HOmZ5/PVY6jjUuzvOYdG0miISls8RY2jZzlEpb+/YW3+VguVGgP2AJcF0MGfTn0RUxfS1
1B+oA/im/ZnvQPVB6j+jL8XesGurOazbXtvmyfsQnkYEOHzKcCTFSQmuZVgHUnNTvVoWLglx2hg6
HoK5V6z359GvjcEtu7v0ycf9Kw5gXPfgj7gdbHnrbm3voFxXaaUUk5nblmOrBsulLbaW29qxZ+Da
UrzWN8MSnlJeu77s/OrzoDw6kQrv/W9fHP4x/vfoTyfs0EgRUwXp6sG3M66zDuE5RIDDzJm6MC2z
ghOu7e5YaZTQmVex+GDmgonOSVNsUQozWfu9xD086Vlqw2/UqWLo+Yw9xvrNv4pPwwc7di31Ow5W
6KX1F1o5WziR3RJSUnm1rlqA8Y8FLjKHCg4BDrNkS2pQHxd9n9XPgv8J3yBfSO9rV0x9S/VJXMn5
Hq9fQx/CHUSAw+fsPSD22CngbpSzJXdY7xvvidWgv7PkziiKsnQMcPUushn2tn6lo9/bZ7MiPUSG
+iQ+mT+TvZPOM/KPfgPprKV1omIWU4SUXG8szzN2hqWs2uI9Ownf2f6uHWWOcZw7U/anvQn6s0F7
vhuF+itSmMyhtUyLO8xMeRQ4PJMIcLiCvYHKpZJV7bHWDMVp8blDgcvz9cbx/Z2lecm+Hp8AF1i/
TMvc0Q1CNhIn5zyA+giov73svCPXcKIY+oo8WCekEUT0Kr219npTCXaPpxxpLbk+kGQFLMA9du2z
UfJ9hp+NvwZ9nXyj9WU1intZGpdxFX4mNR1LvqdPalkI9xMBDleAqZ5F4khZZ0s+KQ6Ba6rWosym
VxDN1IrUecHVItsj1Z8ocHnm41faE2Ac30q+DhW+KKYHeURdvtMX2QouYkcs8koclIREIB3IBvqp
rceTEdOhJZOiWGQRYA4oeeYEOoT1ZRzC6dj3x9zDpb/gF2PxBb4VwXdR38dG7i6Rrh5UHdUtf4t3
DuWEcAUR4HAF5SkiBja9e6O5qkDzOulFQD9d4hJT9bOeQsfJ4nKbpeOr0LQsC6TYjs3s3Z/Dc9OT
brYd3aBOnXQdnACrXbEz7OdSmG/gNE6vzCro0IguQDlr68/XG9Vt6XWwVLk8WkvKDBkUsxArWA8g
rgxt9z/pyzz4dM+hv0a+Dr6R/s4Ed+7kq5xXYm12WEbWkh+tjw7hYUSAwxUcXuo7SWvXHjkMThdD
Q9jvCfWAQ44qnRJaTKcsB3YHYi8JYSdag/cP2r/jhn6DhQpyovuWWvmYA208T5WeNqZD7FCAiomj
kx7ELcAfVgG0A61AM6yv0CkMoZZT7LFnhS2xKDCF2Ct9mgPGHa7zvxf6HvgW/aUJ/NvCqcU84Lyi
x7YmbXaMQ3gsEeBwDW3CJg6qzSzQbL335nTlUqr0cy9gWfWb7QyKK1EdiZu+/8Ykv8IZJ6nV2fXm
9lP3D7rWX3aOvVwLbKnsntZOxQ5LX0TCqzKIgHXUSmoHFrW1eLDnj3OShJiEHmsupenDUODt1tPA
ivfp7+Kz3/n3wj/EXRl/Jf4C/W1UIt+xXpMEe/1V9dhO3XYthK8TAX59LmnUtRyvVrJJms6s/GGX
a1+R04PQ/oUW2mkdRWVru8T3fJrWO2828kV8sH3dPu4szAHXi41/oYczn3b6s/k470loFsUUrJfe
J0qKvajPJtAMY/21BtvJxemtLaiXUQJMvA5CXHyINr0O6+DzrkW/RYf+KPr1S2X5kizBll+iq93H
1o/HUBFJMNcfbZSipDrufDVTFaRXeKEehnCOCPDrc/Qf3h+ovYrpycCzOuyfY0p2gRXPWYXzngP6
OYId6v3yJrhyjed5uS7ABqFWDCrrFOshcPdw83H1d+s1fejiFJ3hUO+c7PRKMVNgic5nySiNRWAl
ono7st6wbwFu39dXHBFvsdHWAuybeNw9EoCSd/APo++Sr6N//OWMjkrrL3+pCvpmYv3VMxlwXNGk
vHyh9G70jd/eqEKIAL8h99xhr6zXHnsnmVzkttFt5E+5wHWclLM1eD5P6Sk3c1qkeS6uGHrLlnDj
PDPCve9ewDdS8ltm/IBFSouwAtrvlTw+DFoGmlJf4Zi0tlKcgxD4eUkLAVYIF9n53Obp3vHn+sP+
PN2b4dXfEXhXkS738bFVrL4+Epd9SQ/MOMNv92748pd1MYTPiQCHqzixamcIY9WgUWBhowkeucAs
XS47hTemQEccmgzY2Csk6Rhj0MrmVYdQ2gmK1JlI9LavX7pbau7Gf/zShp+ji3h3pvgy1ZoxNtbe
oR7lDpsWAUswjtkoQw4PYCDOLb/6nO8KX6O+Cb4VaA2dIouvXf9IQ1Avd2usvFJmlsZxgAr5G/YZ
2U/VO4TPiQCH6zhht/erDjaqMyZWYxGzlbJe2CeO3PR9DxbmqjMq0nC7Jrl5i8SxYktiUqerB/oc
LlU9nrZ+Osuv4AoVPsN8lsUppA2tFGXoi3q4vlOcpq2nedEKR/X2VuUc3Lzl8ucl/gr7pzSUMWhv
+EbrKz//vyOH4j5Sb5+Pk1VHiFOIo25nCCeJAIcrOTZK+5JX08R7pRQZV99aZtlaMUkaN7ofFdAF
lupbCVLg1f4zIDjcrzodTz2SEVxcwykedmvnGxmDy5NrO36Ng6HmOeNabPPb2gsCSKs1dlh+wrhp
yPBYBF1FColEn+194Svk+/K3UsJr6hvSl8Y/5mLt8SE62tWu/xM6nYcYBv1QwxAuEwEOV7L3SIbS
j/26s+dcOR8F6jK1K+k180qwZVaLq5mM2HbvZkRd0AFr+dbmU581lfrRZwxYdsUIdPKSk4lo9Oni
xaQRtvP8xVZeRToOCIuRHCAuThPOVG6f640ZX+P4EkuBK804evBv4D4dI0gmZShW5bXhK+Z71veu
OOEocLiCCHDYZ74h7iGH1rsVr4tLCvfcKwwWcrLUTjFOPvzgxYd5bVi9zLwaere4DtNzyC2+2mgn
O4oR1IfZB/7RJ8y3ZRZTQgeWXJBZvrdzuQuZsKKWsLJpLYDSWrL4TiqlCiraJ3oz5q+bL7e+k/5C
hAODkt6970nOLmsJp/6nBdih+pbHGTmnEvhvOJZV0eFzIsBvxaf/bN9U8lznHQVeaIftElJokMMD
iXbRAwH2r4BwTlQQMd33iWtNaZ1+cS8idJfClEJ+fbMiDCc/XMC5Zz2/HT5db39Nw1A/DAY+wTO6
tQDaNh9v1ypQauJUh1pgKvazX8xPYXe1gwXfReGKA/VtCWVX2Qn6fhtunj1l8EW2E6wDCfgb5luf
FFj/kQhw+JwIcFhSTmxHDsEJmMwQpgrHYKyPsipWDoUmQ3YkwEM/S2ZLREkeKUqw77vx2uetKigp
5BgfjVF0QCXWngEu23lkPr+X+ni29Xuc/HU67a5f1RrBH4ud7xXP6zL5pR7sBIJiUUEjmvccftZ3
YipYklv9FyfzHQ2I+Z+izfTfqepbd6TsJPD/eMX/o8/rTo7/Ef7etTnXjQ1hJgIclvQ9JTt2yP40
sFdhIcBIoQVxscb2wILNuDSvjosR5DTEljcKWff6K+fV51RcZTpUlvM3OHj9R4+OAFbbCUeMcjdj
W48/hgBvLcEESURRsP1gESgopdf3X5L14/D1ju+FfwXh/qYI6X/TX9j0bVGuD6vbmIrSURb69T/V
qY1P60/hTNNARBEFDp8SAQ5LWkEPVXMwP/ZIrGScrLqWYNPLn/Ys1UEFo1Qr8Omq58wKKcBiFp12
7ccgzd42iT6Ddlvs5e/Ql7bRZcUJ1e6Yz/LPY9tu0UUwLMQOoSilJb0D7Uuj33H5c0ljsRBGiyao
AJJb352/K1ItoopO/xrfmPL8P5KRhT6qNjqRz5NHOITPiQCHJcPHPWs9loZ8hUTW/fgQVII1D7xn
rg4r2EJ7LaQE98s4yWw2EmB/iJR4pPJp8wE6l8xdf9bPsPh0fhVFr/2NDotdc1Qphuy7Cg+lteG3
0a9nIAHpjFPr62Kp0BuCDo5va8JaWVQBSrgM3xxRtnv/itNfXvWy6hi24+DxP8lTDMPnRIDDHpPA
nh2GnnxNWRhroygBxtb3GWabdexMuyzKOQ4nrbKKvYhAcOXHjWR/igP1dOATo6unTeZT2NNQjLJ/
ptS93+TErzUKnsg6Sxl62Xlk1jZ/sv8lu6W/LoADvPnRy7J+DH0f/eWY+kagNdjfI9tKUqIzSe4z
fIb/1XWy3vqfQDdIn3VYjUM4IgIc9mnbIutybg6L636EstFdXNAlS0GUIVtZX33YXk2rA5FWH1Oc
+cRJsB0ulOYtv01/2g/AH+iPtynmZ+Dszhyc+kU5qPbNqUKH8AH6D1hn/b8wlVjJLTW1UGtv2OJt
6C+pYaTe0+b+ZlovxSSc/vqUXf/DPsdZ+p+mglWarU/Gi09bqe9TNTWE80SAwz7L22l8Ujesn9bC
PXSO2SdlBHkUnwMtnw3BSmd7DmXygRUkwubLdza+Ru+uoU3xYE79hHs/v+y8BXjIDAKC7ec1QIDf
df0zX0x9N62+/uHViZXvIv6fKVSXFfUZzjOK6Dh/EMf2GQz7cae3EM4TAQ4HLM11Jx1RuuktOtjB
sV8I447oPGQ87Rx0WUHMh44SM5yr9pTpu032x+hT7pWvmSus7VVgwY1DV1nxc+joDl2ibLxUZPa6
HNeercXYLt1P3pfkJ+mvxV8IX0lvRhJfUgkvxfgS/ZX2wZ9SX6qO5d/ljc/lc7LBB3ZlDeECEeD3
YrM9O7I8sTDYZyuH9M+LnxFDx/ahhDwvKW8ngMJ1cB1QWYQrbZrjXTIyKemnIum37+O+7v2aLyjl
Ep0FAzz4wmmvPBBjj4bow1pp0BerSm/J2yqnD3g39LXwNSC29dU44MjYK7f+V13y5r4KR4//u1Wc
t0+mk3/e0sLbEwF+KzwZ+NkFiotB6DMrsbwmimXJrY97Ojspq3MqXO+RNB+AelvDO+8sykd/UWkO
I+XLwnLS2mJQr9XABT5GVrhMcp9ieZoRXqbtsVf4bKkFWHtZelt9TD6MhJHEtou/H/0lWGkZCbDq
WhqJVQKUeqrwXfrrfzl7nc0nqm+eWAQ4fEYE+J2YpHV1cYnmwg4drWEu4WS9M1qImhL3xiuq5ujY
l8LWkbVj22cap2R/yF5yP/FXSd49cV7zVis80aZYx3vTXCWmzW0f3c5WCa4DDs1bhkHfcv2V6e/F
ulvqK70t3a2Xf3iVaKp8H3kV9X+t/7Q2fBr/fJ+rvvwMQYdPiQC/E0sLc6F7vrzh1UGxGngeb/QQ
UaygUKJeTrM6VxElODjL7gg4REnOXVSCmJ/FIGTOpiHqzVOfKX+bCM7ouKHA0Kk2zlcxit3y+bb3
3rbdF7b+BWLTJd8Qvov+Fqy4tSndrbihiL840UdeCcU5yN+54Jv3njPu9qpvCKeJAL8TZTiaC//4
hdneG4Qu0ZwFWFhgF3DZ6VzQ2RXt4+tdwSmTPDNClT6HuSGl0/Q+uuxoGM4b7efEheNuOiWFMccd
vO3gmVsOw+LXWLQlQIcqhAAM3ely7wnfxKS3I6wfvpwKWn7Hdzfq0ZX4266X4UQ+Fx+U4edwFRHg
d2LfHnfiKRYFl5ZE+opeTtjb5TVTulxbNNSvltx+e7fI/wyVmLzfvaukBjact1nP67BhZV/RT2mb
3Nz4G3Xx247y72fbj4D4zWRkycxPXiH9K2gFLqVlSfj4YhRsHLME+793C1WeDYcPAdaOz+nqGsJF
IsDvxP7DFC7962cFHqakFJOJX7F0gZ1QdNJEH6ZjHKrD66dQql8TPuY05JwefH6eztgw6/xXfsJU
7OrfaFHwDgkAHVKDnxW0C2y5uW1K80WxAJfythZbI0uKvVFCu8D+9m/5D/B9T3B6tvr2Wf9fdTaE
y0SA34r9JTnnHrkAkyEaz+evoeVDiT1mWaKU1u+S3Bbg1t8K8ZpwcrNIFjjf3yy/MM5+36d8etRC
ch2662Ns/60C1l87Y9p17nvT4wEDfzElxZU66+/4xq7+3uofxmF1fAmwTr7ejkYTwmUiwO+FLcfE
2X66VHBodd3g2QI8c6jDc1xCucj0qaZA6bGZ0mtbeL+ZjNecYTYXFvT+WbGZf/Ey5w7eis1/y4ix
qnTmu8PIc8PXoj5ca7J/+KJaQe/69jmwej273ZqLrgnlHljhWiLA78XBIHSnHoH01W2m5CVLUaWp
rK6alJa4di2f3golcegiZ/J2S3s7YnBpFa2XciqPXQk+oREQD3uewLcK031W/XZk9S0FmH92bDor
oLKT3Oq7qtjYWn7r33TrV+Yj/b37i5fC89XrxIt6G8IlIsBvxv4ipsv//JrLkixyEe7wbNlOWtyi
WZHaLFGOTuNQ/Tjswwj63SHTARfZ47q7bmAJO3gbTxWrz07u/K/+BmgA8BXAc/+kPwZfjbVWL8cs
xUXpL8ld+AY4xN81cFa2q8hvuJ4I8LuxJ2VnXeAFqK3fkkW5wcMTtltctGI6vMTi2uk6kQtWlPOO
bOdUyrTjA1zYBa687hcn5KDklVb1DuNbXDrwppPallfwPvTH+8f7jD/vo28EqRWK7OtvF6jdjfgo
nxYQYH1Ihp/DDUSA3449Y3NpHVZLIepr0XXQkdqWSILFlMikyYU1lO3QUsdd3mdn61zwsXN8DEVf
e9sNK8/WJvZW7joILh135Tnv/ehjLAJ+iU4LBQo8fS8OtP7WF+XdfV9an0xuMEPQ2+hvuIkI8Pux
J2gX//2lnVJGxNECieqWAB/gwlMyx81FfBZtKKN3Jfj09ars8nk7zWUocu39ecuinhl6vXwOWdAb
dJCS15f+RqwELcCdFCasttP34mHjB31TfaLVds1nUGlDuJYI8BuyXE582QW2FCK63hlk9lh/0Uvh
9A6OMgpYTJ0+tJUNZ69PmKIu6fzKvPJOxvgg5c6csaiXDe0Ndtimts53+RjnVpFTBS8ffCdSAqvM
107+lF/t5+n/3ARuq6vMF+E8pq5qUr0N4WoiwO/I8oqeTjqLxLC1dCmp2vgFk4ROKWaSad89q0/F
psorRFIlV9DpBF1KXKm/NalXwnjGojr5vLm9wRDf5C37vKfKX3+OWygp6EjY5/CbecxXxVnwgfWz
zg04wq1EgN+TeWi3E05jnVxo7QJSjlNNHTJhYfXJfLYKVbKCFXFyZTqg1/rK0ef2fmUCL+oao461
b+bATYZ4lNX+08Nc4JaTfxGLwTd+3t+Eb8hj0B3/Ej6RvektAjwqcAhXsY4Avyt1QdLn66BbIAvL
Lr5tubfaHInw8oDSVCV50zjmfb36I/xRLkvwSudX8ttXf5RBvd6oziVtj+/g84PO2/inyeTTTvwy
8AXpWzr7Rd36BVLzqIG73AAr3Ew84Ddmuzp70eIi2eo4hp1bdi3BBIsuU4wDSk03fpBCvxznh71P
rRehehN27k36y9UfkwBfNp+32tYTzKe45mQY+qng8oAH/CbhfvT1I5qP+C9Q76h8EuBath/C9USA
Q6vhHsuU0lP7vYWDJcgHrJdPS3JQGxZh8XRUwqRx8s1mywN+CfkT+lNc4MrbbghZvb7BYE0Bf8Ki
yBdM702HqvAVv9gD+JYPeSm6x/ZFfBY7wMsmE8J1RICD9W/JQbyUcQhwbfYc4GIr8bUAW2nJJ67Q
P0ktsXEm7evOkiu7DMT7GIcObpd5Hkafh/eLIazNRas6ZTrwSeHH8B2fAd/0MS8DtaWDX6Gr3VcE
OAu33pjMAYdjbBLmilG6aQFGSvWz0OJ5N3u/naIjkVjfyNLx2pHf5m/VZosscv2hV9rFGn1mILHO
VFw+eM/m6nfo0BM5/RHf8MHhMg/6F7QAqzK6It9BLl16Z+IBvzEo3kmcvMi0opYAt5YOkT3whP3Q
wpHXgsvZpkjnrLFcZcGQYKUMvb/0zKMlq501tx1gGUGr757AnsJlB9+gwPUB+x/z9A8N34aqHVVK
m7m13IjqfnhbIsDvzOn//Uidc62bYwx6omLaWltnga3iHM2OwF6MsyzvxrXa1vywP2n/Nl0XKM21
nrYFNJ17FopPwW9RQj6mPkhbB77lY8O30HVQFTADyeEOIsDhGOulBdNRx+0BSzvXO8srIQfmfdNC
y36cw++RzommhzKVGG3/ea20uM7/RTqRtbJ9dn7xfzv3Sr5Hf8efuOCbPjd8A+hvdQNzE+hwB5kD
fgtu/SdTvtTSMRgO8G7rKLJLnORO2ae0t4JW33FGHcObBxeho5ajHSdSbbzG/7XgWng5VNu6B+B8
6HUC9136G14YLkKnCmoTDzjcQTzgN2Cz+vhkhKyEthhhqaQ3YP+3HN3ejpVVTmdZlmNiBCa5VUjn
UYFK6XSprQzYGJ21/bryob9S32nAWT9EWY3V2VfzXQIcnX9hvAKw6mIEONxBBPgN8LjuNY/+NZs2
JZZJiyU7dJbB5151NekxykpoxEZgQZ9kKefelgL7d9P72quPZPPQ3zJ+RO5RXz7yuxQ4vDDUQ/MR
AQ53EAF+A0rabrMQ1kjhNVPCjq43jqK7raROGLo8smfV7Z3d4NLgcfJ/9mBtxbBj/iU/pcydXWBt
au73TiW987AQCtVBvXtCJHY03EEE+B3wkqebBVhayqtmeEtYEeE5NjGEmR03uBoKS9q/OkGNQJf+
Vv6aoXEL6vXqO+svIcvvtcumD/ke+Y3Ivyz8a6mE3Ap19eljPUM4RQT4LcBIdPA8i5qAQB5T4jsx
RXkMG9qMCHNH+nHjjULFmALmrLUYyzIMuOY3ua9YOstvCbC4W39DuItFfVUlVLtydcwUcLiLCHA4
gf3ZokNoawWnLCur2X7MC6GVuNuSzttFXKjll9102OaqVc9LrL9M+VqALcKdE8I3MwafqYR/TIA3
eW7TLyECHI4pdbROIrctvA7WVcAuMpR4nhoeKaLOggDXnTdIquR/221/Ag9kuFmC7QG3AIfwY0h/
Pfrs7uAfuwx4c/+dM8NDiQCHY6Skk5Yq0OPLJHnzb71zVsmoRdY+c5WoAejh+FqAh+9bKRZkq/F6
tx135LiaMeZHsFJC+H78HC4psPX3z80Bx+r/EiLAoUAUJ6SOltHWXjQTN1eUcPIQhYp5N0B7tzwX
1Tmc0qEKuqTOTXbLuQrfPoeL09GHxQkO38pU31QFuf2LHwfi2LL1hHAtuRNWKCSIHSqpBETSwsso
s/YWTTNCLasOCx8wji8Ndi4BR6aTlwDfPAJt2gFe2MMQvhMPP1t/PRyTNdDhTuIBvxKb3Yf8z47c
itWxkDS2TuKrWiytw6W7c1aHyVLAmZylDiA4UpTWb7aVKq5+9MIhwwP2NoRvBtVlDRZEgMP9RIBf
iXqUwZf/o9bGoaeCkD3g0loYmSWmZC78Y9+n0rFtFdCmdZez+wN4rz+fAMa6naJTz2WH8DTqOjgr
rzaOZElTuI8I8CtRAnz1TSfPIjW1XCK0ElJfw4ug4gyXzM5iW9uRbhT8t611WoWO1vkWJUqOPx2A
xrZdktiob/hOqi5Kc1XzLL7tAscBDncSAX4l2qO8sT+OGHawkJ5OAmwF3nqVCfFKrpXOztvT3Y74
jM5FtzmkzzbCI1q/7jnsYLCvaAg/z2q704tKaR/YApxHEYZ7iQC/FO1SduwTNjwJn723M9ZGttJT
O7blWLcEA1cDj5tEiw5418cpoNAoUif14YgzOaRddoDxM3iX/n63Ckf1wxHoLdf+6k33cGUBJuR2
E8LNRIBfi7ITHfmE7enb90yCiloytDwekr8iSX7tUNZycV26tZW7dIxchf7ZUVaCNV5vZbikXGgl
XtTfsm/T+PP+SPSlYekQnoPlVjVvtVszeeLqWdy77vGBqGl55cUv+FXCDUSAXwsPQl8rwLv5n+9A
x0oveyOxtPWBeVrX6fsTv0KOseeKS55LbGUQWoPlM2/Xvkml+IcluwR2TRI8xToAeCAdDOGbQH7l
9xLartdbhHjwCxzgDVdF+TU16fAXiAC/GFyJJH27Aink3FotkHZ46UWvd+rkSy1X3OJ5OMDCmtoS
2iC27ecO3fW+UtnKD+YQn30UVb3rU56nrZvohDEsLEvI9vMzhPAoEDdLcIU9Dcw4NNXzF0wB8xCU
4tH2XK2WBt2x8GAiwK/IVeNQkka/B+t/6880TZLNk8etrE37ubMsl+6KarqKjkx9hvei12ufYcV1
vmXbbOM6+QRVKIQnw+izeqV1442dXGCPwXTl+w1rsFqAH+8B608WcayfRO6E9b7s/efVgD8d193V
CHdpqJUVmUVZK8GSy8ouoorjSROwDJvSYn3cxc+SXfM9KrFulxWW3HZLQngaXu+MvnkYulZhUT2p
nL/jNhzDA374UxbUhhHgy316t+lwB/GA35USQqPAp84v7DbV7y+BRX8VkqZ6ANvxcnhRYnabejJw
F+9SFL94AbCN2m45ydYZpmJzIsU6GMKTqBWBrbozHqGhY/rzPGcIWg1aku6+R1Z3PYUI8Lti5Rx8
fksq07euspZaZ43F1noLhHfyg52gj9HGGm2U+o9h7PMMU2dj581CgMmaQmwr8sos/vrwc5z8N+AM
k/ELtKnngD/zVG9kw4g7V15x7ijwM4gAvyX2RxsUsi3KJ/TyY0akcG1bVO32DghygTH7/clio+TL
t79irm3FJcAfKuYJtz3L17FyRpq9Ai/Aq/09fx57uWf+K66gPz8HbPn1phMeg0efDc8468TwSCLA
70g5v/2flya2NfkM1oEOW7TTga2wPO/X2tqarE29lONPquQq8clYtz5AFq3llZa/L8ClwFi92k9J
r8Sr/T2vAJVsUdGq/lXgnjngRxvdaQD6sSPQa6/8tv4++tShiAC/I3ud2U/vyDxhK9ThD7XIGlr2
aLTBrrBzqjJVYFsirTJ9CdIFsVdb5/z6FH+QbRuhJcv4CB6WCeHxjPHmKVC1juDv8IBLhB9qzjf0
gIf+Pnx5VxBZBf2OlAdc1MKqu9it/6nFlwNslR3g8zLa3M9k8MwvyDxcEMseWMa8efDZA9CXyvf+
SzzkJOEdcHUcNbSSqD5cmPfTWHvNQ815XYJkJMAZg34C8YDfkdFM2V87/nyKlcVbVcjyKsoXbqeX
DQJtJSYBQfZxJ7F5w6AJBNj3PVgK8GkxPpn4FR5+wvAquGpU7VzUk68/fezLrDdrL5R67Eopzmnx
jQA/jQjwO9ICrDb12ZzsVWzVVoeTO+HbPVtzuf1k51+6/0ZbN94Me5UH7JwCYe7gHg/4A/Z49PnC
i+HKuaglv2Jo1veifKwDvCnpZQC6tlHgxxMBfjv0D5c00r76rvJfZ8dYM7eCL+3dbFfuMFfEn+a5
4EvzvzX8zC2wSoA90+YsoZB+SAzhp0F+qZBGwV+iS/Ry1c19HBvmfZFeyzDtuzPC48gc8Lth8WUv
qVP7KjPyVVYS3e2OC4CZEl5joVp/uaW0LBTSfHH91bbNWs38Hklt5UWAwzexV9X2K16NQFcJquUv
sqAP/VXUpNHefj92djk08YDfEfukZT4eya6eP+gbcai9KuRu+W5Fz1xJXewIPF6MGtLre2DZAe7M
4jAewvehurdoKtTSCnj7G+6D9RSma5sQ4AdPL4cmAvx21D/cc78PFmDVJQSXO1CyBT6Ou9mtP1l+
ZWtW+ispzmBz+FXsVccapBlJv2UE+vHQbpFfv6LAzyEC/HbYMa2x5wcLsIwRD2PQByDA6kCXCv9T
7MIndY532jz4Vwrhwah/WBXVVfVlHWCMhOd+Jzo9PJDMAb8R/lfTneUONzYebB7KigVZSK5VGPlF
ii8/fTCEP8Veb/IXXIT0LNaswWrxFWrH4dHEA34b9I+WIrpXu+3nISwNyaPwQ/xxs2vL1UiXH78Q
wt9iXpCg/SsLsDrqLKtsFaZnHR5MBPidqDGlXd3SWbbj8R4wcJtoLgC2CjMU/ZyPCeFnmD1gBV7Y
LdxIgZHdngOOUjyBCPAbseY59+hvG5BHTwEPrMDlAKv1dmIIL8jrTgEbtWAPRUd/n0TmgN8JfNHj
a2wfz6qGq3CAn/9hIfwcL78yyQosHzi34XgK8YDfCV/7e3SN7VPgRljrMdccwovy+guTSoEjE88h
AvxGcN9JrrF90tzvAdxVMoSX5lbzGWsb9ogA/1q8jukReB4HUETfRaCMRwjha+TKnPAlMgf8S2Hy
lKnUBzCEfMMpfdfHMh7R4RC+xB3XIH2vvfUy5vB7iQf8O+HBBSvJ5WPWeHApHxf1WdTHVUHfMxAd
wuvy6y8CZvnyr1g+lbt4nCYC/DvZSXx9w9mHKHCfzQIcDziEB3F161z/0GppBPg33MR5s44AnyQC
/DvZIpmerv1yxbXnO3R3ob8hhK9xrfHc/NRs8W9xgKO/Z8gc8O9kw/gzGvzlK/033HfDV9KXA7zO
pUEhPITrjefDVlTeip/G/QuIAp8mHvAvZd1j0KuvCvBOdmLF8wEtvApl6jeEx/D7b8Ox2f2K35Gb
4oUTRIB/K1s5rgjwF3uOG+Z/ywG2xVjn1pAhzHxpPGhqnL9XYH7HLxb9PUME+NeykQTvdl8duWEE
mvMwEC0yAxzCkgcIsNR3s47EhDvIHPAv5iFt2h6vFLgEGClmH0L4Mt09tgDHywu3Ew/41eGKYnm+
/Qh+JLj2IYQvsm7VxQdWILY03EgE+MXx7a92q1mAzxBdDuFGVpMArxmD/hZTGnv9UkSAXxw5wKst
jxOTApcEz0J8WZJDCBfZtedbY9CZBg43kzngF2e78kVIm/W611+1DIcQvsgKt5fJ3+EBZyI43EY8
4Bdns5YEb9dcD1iDzOf0N7ocwm1IgO32Wn1B+vvVyxbCWxEB/ka+0ju++9DNdrfV0evd5Vle3yg6
hHA9K4suAowClwr/ijs/hr9CBPi74IlEu7tvzLpdnbijzVXnWu+27pgzFt124xiuFe7gHhHlEM5S
c8BieMBqaRHgcAMR4G9iKw+Ui3C3d91ag9tZHd8V+qp/3W7FbSi38oPHKqxjcnuOEG5nx9oKiS87
jz+rvaHCIVxJBPhbqLtaIb9S4du/8bVvZtV3nr3xcCm+7MNW/vd5BY78hnA7zAGjwB6BNhbgmNRw
LRHgb2Fr99cavLvjIfs8mUFOql1gqehtPjRj0OqkS4C3+1J7ED6hwhHmEM7DKmgU2AJcIowAZx1W
uJYI8HewQXd548neMQi98YF+NrDvLPnp/2xRQJ+NadhueQ7SKUVVGr9Yx0IIV7Jt+d3KCZ7d4MwC
h6uJAH8HLEFmCHjLTO52d8cgNJPALcC1v5qNJN8ddN+KY09oR6RXQEeDQ7iFGoE26C4/0C3vj0DP
oYPh24kAfwfS3PKBcWTvGoTebFcfdRgyeb0Ayxzo42wf+l5Ys8y2HE+avCfOIYTL7Fp81bx4N39M
zjw2Fgn+KSLA38E8/ixYD93ptzAatgT1Fg8a5d6t/UD+rR/Jv0ckN4R7mQW41bd2N88w/Sgb2wb9
2h0P30oE+DvgGlx5sPIxUWBp8Ze+9IsHH2Sqf6uPlvYKfW5bjibyG8L9cIEfE8BQPrBDf0vLqnMe
F/iHiAB/B1sJL0O8Lb/3TAJfBx3wDoLXPsv1lguM/h7cCitDziF8Aa/BKv01eL/lDHf7+wtgGrb6
KzoavpcI8HewkQYiv56GRYOfVN1p+3Pr59ZbFuAPucAeAf+64kazQ2jGImgvv+oVWHIlif0dq4oA
60+4fVlKeAR5GtK3wH04uABJGwR4+5gv/eAsVl/pbydz9w5/nIe+2bTd+BJxm8Ov5RFdzBto79db
K3B7v7X9I7AIKx7wjxEP+FvwhbzCPunDHGDaegeH+lb7dwrXPMkm4fqWZYp0htfmcJHDc2FiZ0+B
rb/0gP/UjCp/hTT4L/3KL0QE+HvgXlb2R9HgOy5DOkk19w6M1k+U95oZX4tvmYsQwiMp9a2VVwUN
0FL8l4wq/Qec4I6GbyUC/E1wHS8KDDfdSOMSLbmT+tLwPQTNxUdgJziE8HgswO0EzzpcLbEb6J+g
/oaOhO8lAvxdrL0OypcC3XMZ8CkQ3GrvjHuhwoixNuvobghPxquXdnWJQTVH5Lda4N/i7/3GL0ME
+BvhmbwS4MddhDQUt3Zu+YqsH6O/EfEQLiD93W132m53NablEagQbiAC/K1IIx/cSFHdfoP26pRH
O0N4Ft26Vh5/3vEw7ZWfixRLGm4mAvyn8T+vpLeCvuv06uCOG48m+h5C3weLh3zSJFbPurg/vDK5
DvjbeXRP2XO/nHOz9srnuubo60RmQ7iA2pkFeLdd+0nbuZdFuJl4wN/Oo8egt37aYF92VKbhITzb
jw7p4vxltn7M2Hq92m03bCTH3SRDuJYI8Lfz6KelrHc7dcQfb8zPnjFTzI8iX+QfZr3hBlIbnF9W
YtEDji0NNxIB/n4epsD9r9tyk8u2Ct/A1SPckZfwoqhq++ojCa9r+Up94M2G5xNWkwzhOjIH/AM8
cBDai6rXvrophPBt+P6Nohoeo9Hyga9t2dy2o4PhrYkH/BM85jvf1N2edxiBb9XfiH14d/oZ22LF
88Y+1hLgK3vWqC9j1h0N70wE+Cd4yHe+blPw/USAwxvj6r9bcw+OHY8YFTtGnyWrVyowZceVg+Gt
iQD/BA/o/dYVRz9C9De8Pb6nLC3BTzhDhK3Alxq2Lxa06lJ0/aB+ePjTZA74J/jiBBA3uyoz8EMs
Pj1qHN4Qy+5U91esh0Z/L12JVH6vmz6XDnLxYGWENyYe8I9w9/gTh/3c2HMIwWzt9o5hKML/Nopt
T7XrSkOgkWDiXsHlcNzg9yYC/Of4e/r7oFtzhfBbsAcsFZUX3LV7tVmvpMp2cKuhNnJ6uVZBoivH
F9VlEZahG/6A2ajwh4kA/zI+/Xds/qCYRYDDa8ECrBU34ChHmPqt4L/tyh4uzVQv6y6P28UF9iRx
u8AsggaJcx6E/95kDviv4Xu//x1WeTZTeD16/Bn59duJq3/rj237tNoNR9dLsyS1El10V+FJjNm6
VYc3JR7wn4BhrPpH/eDq57tYyU/oYAivwpYnAfMowh134hg1fLfebZnxpa3i6lpime51sBTXbm97
wGuCMcDvTAT4L0ADX6lt6//11xxKz5HFBw4vxaoc3xWzvsvKrSTfZqPc33KBN1Jl6W3dOcvay4se
Nd4wZauRnybTxK9NBPgPsG0R29GY/5YC2/2NAIfXghFoaS/339B+rt64wMPVbScX75fSpPsgqS/i
jQDjLJ9V4Cm1x77CK5I54N/PZlppSbv/W2oW7Q0viHrBJcCrtbrE42okVXbLL2Jb3i90Uumu759F
pGFsOtPAb0w84N/Peh7EVZufwiGEH6NuxcEtOKSr3STVUy5pxahaenGQ211u6dVR9oatyfD5LHBM
9OsSAf79tAdMI9d+f9IphPAjqCHqp4R1bpK+J/RwgK2yKoD0WneJoMIEZwnudn6WjEG/LhHgP8AO
4bXjq3eePBjCj1Prr+gPS1NHi9ReAmxZLW0tsRUVbPGtnfP97mY+cSy4keBXJQL8y+Hfw703Sn+R
4b+kvxkuDy/JCr92t6tbUi4EeMVCyUmA/20oVXKrN0UJa98CDZkCfmciwNdx/C190/fmj9nUGNdf
k98QXhQ8X2aD8IMXk0JqodtNObZsNhJjq23pLpuhwihwyfLnQ9D7xGC/EhHgO/muQaHxMW7odLlD
CD9NtUZ7t3KG517x6gN9LalFW7XxhUmNsnyM3uUGOzcX+r4vEeBfzvj3bGiyGdEN4VcgIeUuq1JU
5oE70Th5x/Joq60Vd1bgWZ3RZ6X7vlhZCP2u5DrgPwLNOfobwu+g1l/5jdyOVDIsu6u6RYfC1t+F
G0yCU6zA67peKVb4TYkH/EdgNikCHMLvgPWQpcHQiSRzm0pLLztCk/s7K7A1GF94vdmyUivLsN6W
CPBfgeUcUeAQfgXW3RqBXlwY6AYqdR2Or0XX3i5escPOtPp6+ldJencbD29HBPiXM/490d8QfhGt
wGqUe+1SwfKLy80tR9fy2/HW4vWQaL2zCut9yRzwL6f/PehvN/EQws9TCoz8zgK8sg9sSWZjtUVp
x2QwQanzbuunMCjmZyL5+YW518ZbEg/4F0OzLAmmvxwBDuEXgdp6/HlvZErR3pHZVBB32Iq8qjFn
eb/e09LVwnk4kiPehrcgAvwb6f/JphV4s6EHvWzlIYSfBond94CNY0pGatv3FcRR4Iq4hS+dXvxh
O8Y0+vA2RIB/Jf1PaQ9482/r5+qGEH4PyC8DU6f6xq24qC1DzTyvoYMktQu8BN+YueDY47ciAvzr
8D+k/it0h+kU+4mE3bJDCL8DO8CIbceXKKcHnKW5rL1iyTRhhHl1dOcN7hqttLi/b0YE+NdBM5yC
HpP6929NY++WHUL4HdQA9JmmWYrLUiwk2CKML1yD0vtml9th1VJo1kQ7aTIC4ZXJKujfx95/pKaE
Ir4h/EJwgc8JsBTYYmsZpqQFmCSpcbXuwWa6GYc84QrFF34L4gH/XjwDbAXedosOIfwq7ACfE2DJ
Lj4vXq+HpImUKh/NAU8349jceVFw7PifJAL8i2EGGP1dd4MOIfw6zguwNygwg86WX++kxkcCvGnH
FwXuwEy84ZclAvx7UbOrVxzgEP4qngCu+eCJ1d48ryV3coFP3BcrNvplyRzw78YecC5BCuF38unq
DAaeVaie3G8n2GJcCry26m5Yd7X59JGElzn2m8MfIB7w7yYj0CH8di6psG+JpZ3nfr0Qi+VY3HOD
1l2y6SVYaumDW23yiVHr8DeIAP9uEOCMQIfwWzk7A7ygJNhXAOMIW4Fld2nctdByvf9EQhzjq+2y
VDzPM/yzbFYdCL+IqfFlBDqE341c3A6dBc2tQeh5JrgHn3kWgyR06cNuGJO+cjG0SslCXC3W4bcR
Af59zM2pusif97BDCD/Fp+1TDrCcXiaDZ/3tdVgbPy2Ylt6zuK27bvlXcGWx8FuJAP9OuhnSwDIF
HMIfpsafF1iOV16Htdnt1ms/g6EmgntZ1mmitq9HBPhXMTWx3jMEHQc4hL+OvN9yhPGE7TVLgTcS
31JfN/banlbZNQ/vX4xTX4LbWV5ZNPwwEeBfxRh5WuwyAxzCX8d3wvJYNP5vJVmB1cT32/xp5B5L
gKebdVxAZ+HeW1mX9TdYR4B/Fbi83nZM/yC31hDCHwblZTDaPrAdYC5JopHLWXVzvyjA6x0O8HbX
j2y4CKuipcCfFww/Tzzg3wUCXFQsM8AhvAIIr91fTwl7UrhuwCG5LAHu9zGYgfJq9e6082xcVMQH
/gNEgH8ZXJKwoSGyjQCH8CfgbleXwPP16itvSoB9FdJWr2r6Z51brvQt9RXnChkyt3KWuf80A9ZH
hS8eHb6fCPDvw42k3ODchSOEX09p6gXK7XUZBT0SrRhrpdDg4aqeU0ce1o+kSoJZMX0Beu1or6m7
bYVfTQT4V3CipbQHHAEO4ZdTovopVcjq66BcVWnv5wuWJcCtqRLgy6VlMlDephPD7yUC/GtBftX0
qu2GEH4ruLRXNVQKesdKrI+dWjjD0J8ODLfzK3bcwvIieMClwNesmQ4/TFZB/14Ygt4uOtaLYAjh
N3GNBwzS3tpSXi6q9RQdviTDPf0rPh9WXvOkhyIC/PuJB/x7kf6u96aWosAh/G1q+FnN2l6zWng3
drX2cRdKb/dY97IqaeqnA9ZesFV0SvjFRIB/L+oT7+lvCOEF6NVYBNBTHsfAuz3Wky7upoegte2U
88gHrqIdD7+YCPDvRU1yd+3IVgjh13M0UywFXssh3q5WrLnshn+SngW+XMiUt5wZ4D9BBPjXMbUw
BqAjwCG8DEetmeFoHtMvAR6j0WcUFr/2szXQRS3D+lyowy8gAvyroNXMfdx1POAQXpRu2tyRg7tz
bDafXOJ7vaxyKRIlr/CWww8TAf5V7LeY9Xa5CDqE8Hf4rOlW59oOsILSVhr/Zc28YVp3zZKuCPCv
JwL8+xjNZrPbrnMZcAh/kU/HrlaTAiPAUmDU9ROn9QZFjfj+CXId8O/DTUctceO+cbXWEMIf4qq5
I5XxJLAFeLfzdUhrbsAT3oV4wD/C502MVrhTC72qIYcQfgeL9vr5EkoVQHwHXBe8y+W770QE+Cc4
6uPu9XodlAPMBHDkN4S/CZLKrmLNcYMu6eXWHPKB17tft375l/06L0YE+CeZ6vZSgLkgkHemf0P4
w0h+UeDPBLjHnym59Q05fpfiRX+fSuaAfwWq5V3R3f4Q4FoAfdxeQwh/hNbgC0h8KYMKS4AzAfxu
xAP+Zs60LyluB4DIlhbZrTSE8Iew6lYD/lSAvZUAc1esyTrM94i+gxM25pOLjMNPEQH+Fi7X/srt
MlZgSTBLIz9rvSGEX0g1W7fewyZ82KKZAbYAr5aaO57M8DA+f+pw+AkiwD8M7czvGnsq+VV47XUZ
bqBupyGEP8dRH/q4OaO/Ylp8xaMZFMQICLnCnf5FHq3o4SFkDviHcVNzQC2EgLa0vS0LM2jAkeAQ
/iButri3l/H8L4uwxnMWLMAKb/zkBV5O/iKL4e3wi4gH/AMsmkLLLSHvCRJY1w3qGJuikVZbPSC6
HMJf47DVIr409t26h53ZSC7X67V94rIOX6Sc6vD7iAD/ANUWphahwNBgi68Ca9S3usYeoOrGusfn
nesQwg9yooEeJyHAXP07ieRa+ruelk2VRfgyDzlJeDgR4J+ilNbq64DTaG6k9A3aLcAW2uN2G/kN
4ZdzTRulje92CyPAU4/GfFRGjl+cCPDPgdzOW4fYEpvFV51j9HduyfKI2VLgugYeQvi9uIe9s0GQ
BWAGWP4wz9RX0CtDwgsTAf5+piZFA2PLZqQ4sF2pCfKY7g8aYqnwUoLZ1BrpEMLfBgFebdfrf+vd
WrLL5K/2CpRRaNMQXpKsgv4hSnvrhyaG9DpFL3eBJcB2gLc8lZ8m2hJc8rv0iUMIfxdGs2jx3Aia
EE0eAZYLnBHoVyce8M+B2JYEszFOpR227I4QektcW/+UDIcQ/jyMdSG5DDzvcILFRvLLsxkswBHh
1yUC/GPY5x0i7EbWoWqQeMDdMC29opQ42hvCC6FO9hrZZWeDgP7aDmwxCSyJDq9KBPiHsL9rn7fe
xuG15Vcvu7/sa4zKu/i+IbwWfgiS1BcFpv1LjK3BavK4wNHfVyZzwD9GCS5OLwrcGqz/iIegrL/u
Ew8HuAQ4/m8IL4bnmXYbvVfaMh9c1yLVQui6H0d4TeIB/xBuVCW6s/hq0/or2S0B3q4twL5a8HD8
OWIcwp+H0S3UtnrbvrphjRrLC3bP3HeJxjyE1yMC/N3MDakUd7y10c/C/3WbJGwB/pAcu7HOInwg
xyGEP4gFWKhBb/F/6WjLAnjud7NdczcOsW2r8a1E9p9NBPih3FZfUV1vhwJv/jHwhOtrZv2lUTIG
TVuddJeGWqEQwl/FTZqmrBctn4ja/lpiLN1FhddS5J4JtsWo4DcQ/X02mQP+WZBd7yzAampILm2w
dBj9lcz6uUhIMg2TpCb6G8JfB721/vJuAZb2yjYrWhcCc2sOB2QlzNiHP0484O9lr90oYre39o6z
BLIaoJHcVsQesFCLxCfuphtC+Ou4vdOZLgFm0cd297H6t6GlTwZjfzH0twgwTkF4LhHgb2VRoxVq
r5dIecAKSl+L4QGrFSpmFfa+esjddkMIfxw3Z1q0BZihZ219DwBpcQ89yzRwkXDZCqc8n1wA9Q1E
gH+EWXRLgR2sqAUY3WVVJHJcioz+0iPGFa4RqxDCC7BszNz9vZr8evex46KIWgO9XflxwdiN2nwD
3/U5b03mgH+ErtstwX4bBTz5a7z2seR3CHC5wGy7wYYQ/jhuzG7S0l85wOsNlx/KEcYDpROOJaib
Ug7DUbtH8eDTheuJB/wjuMarNZXmLlBDU8+3NJim5zHoVmECPSDdjTaE8CK0AKt1b9dYACmyh4C5
J7TNBR4w5kLbeWD6IeReHz9GBPi7qaru7azAvBWx8EpiS4AH1txJhxWhsxwBDuGloFWrbTMKra2V
GLVVw7fJQIHLDeaZwZ1Uu69S5w0/QAT4u1GTGgG9S4A7Mt2FowR4eVOOSZAVqsbZrTaE8DJ4kYf7
2Grxq1UNgkmAUch1ecL//pX/i+UowzEzxSoz/HoiwN8MTm/J7Yi4tbBfM+hcKov6MgPcurvcKVH7
CHAIL0j5viiwvWGeToh1kMvL3TjKgtSIcbvDZU2KzTSUbLsSfj8R4O+FSwmqzUxbZNiNaGOVRWe5
FmECIS7RVaT2lt9IcAgvB66vGjjj0Sv5wG7/3Bq6FmWNQWgbkyPG3LBQkQws/wGyCvqbaQHm1bsK
qbGUALv/WwJMU1T7YxbIrXJKiwMcwmsiBxj9tQ9sa6AmzzMJsQg2BW1IRJmPBbYtDQ80PKPT4fcQ
D/i7sdza42XnJuPteBCDGx8CvGYxZDvArbu1PMvxbq4hhFeipJfxZzd1bYWUdMtFSQhxGRE2dNo7
4H2nF+vdHA6/lgjwt1Nq69Zh7e29tmO0udQWCbYMg9ujNiO3W2sI4SXoMa26JyVtncHotfvj7oKz
FGuS2SG9Baui51izGI4Ov5cI8PfRbQSpnV++wVwJspWWltYiW82ucK+YCxSkxxTIEHQIL4ccX+96
LbSaO51u6SuXJMlc2E4ohjOskIJtUfzeJwPQf4EI8PexbCPt+2rn7isNi15saS4NT6EhyNogyDRN
9YlJ2XGzdlpqCOF1YO2Vd0A/G1e4utwyCri5klXsQduSDdZhz64sIsv08EuJAH8Xy6bhruyUIAWm
ERHnHnSlwHUZEm2vL0hSV5iG6VwiEeAQXg/aNcPP9oB5SL8Xfuw2G3xhLIQMB08Kxlqo085KkcnV
XW/27mm1CIZfSgT4aXT1n3fLpmGXdwrWMDSibKkV0lnaVskvr1oa2QpMqJprNdgQwguB+iK9NHML
8W7HOhAcX9ZhYSPWPcsrZZ6WW9mshL9EBPjZ0CLs3FZwsWkqwf5uNS57wHZ7C4UcVIukO4wA77IK
K4RXBemll+37zpYT7IYvxaWX7qkq7Ik67P/+yRwsLk0Kf4sI8KNBbA+xdzvCvZ8ggdaEzqK0qC8C
TIMzpcuKW4DLRY7fG8KLUiPQNfTs6x+sw7IJEtxtDTizcqSmhI3tSB6p8AeJAH8DaiyLsSELrmOL
JDqzkwSXCE+Q5GT1g/2kpD35zWRwCC8F4ssol1xbtJfLkHCEPe0rK+CBZ4nxbsvclW2Frcj+cixx
9oZZvQ8/TwT4+dBueE+xZhnST4svvu5wgL3omReRGps23VAHkeAQXgqpr1u9B6IJ7eQV+5JFCTDe
L3PAdMb/9bjYbExmNhma/vVEgL8DtRvRkQkl1KtiFtryfK26tEELsZVZ8XJ+GZHqVlqob9yhEMJf
x0NajEGXBDMe3V1vbZBe7pDnC4OVi0WwVeCOAm1JZjE+Mjnht5F7QX8Pi0ngiQNRLmfX9EB0B7i4
oHBT07ta6h4R4RBegWrf+LWz8mIGLMBrLkGqXrgE2hckEWNcekwBz49EksmJBP9y4gE/l24T+y2h
w62/Hn/WzlprqWWjpscOUfbSi26K1l+L7VDcKG8IL4QXYHnts51fN3oPgK2kzX4oEgWcLMtQ1kDa
rG667Ei/i+NBt/DbiAB/D0Nr95hdYO3mAeghwB0a7rBHoN04xUKAo8AhvBI1qVTSSlu33CqqN0bA
E8M2BtuNV2eRUtclyYgMWxP+BBHg72C0iEXToLkQ1duJDDNbdC232swKDHaA1fXtGZ9ZdxWvQAjh
Jaim3a3c6lt9b6uvbcKIosX1sIa60qJ69LOVuZVo93cTAf5ekNwOCrcWxxmA7qmedoXVvtzYvBQD
3R0jT+xGIxUVG3ocQvjbdFv2TgJsI9DWwDeGtvjqvfbdeCpHJkQb2RJmgu97DIMHr9sdCN9FBPip
7NdmxfZrOJGK1sP4h7+7tswitkRqDFpxC+3JJVghhJekrAAy6+fzYx7ocTPq7LEvXyss1e3HD7Jb
33H5kWxMW594wd9JBPipLOsyFXu/g2n97VGj0bia9nYropZRGowAGzfNBRHlEF4Ot3V3xVnoTNBW
AgNAkp3kHTpsD7hNiy8VruD16BhOXQZnaaPCc4kAf43Duqr4ImkZrPCBAluA2XlgyVrLTmHrLyne
VI6bnN5xgkN4faqZe+qpTIL75A7MVmAnPf7gcQz4vd2ZP7on1uesh/pqd/PB4W4iwF+jdbVR5EBh
ez8V9HZKLe/XITcty6zbAOo7pHfgBkfji/6G8KLMrXsEGGLm6qO+D61HwqzGlWt9lh3ZSIXLnnCn
LFuVG5AAN9xjqxPD04kAP55L1Rd97layX9BV3w3Ae5ZZdKzdYv20AnvLJoTwahw2bfTVzyIkICMw
RsIYkSZ3u/vw8qvp+l91628ehF7rzJPBuWjBwkPJnbAeypmau5dMW2HX78JXIQ2nl/08A8wEsMPV
4+1m53AI4cWpuSiPO7MWy8ahUjuR+0Iz/twPRZIpUX/+NgHeyL64j4+5uX0GOdxNPOCHY1UtkW32
go64szqNPwsWYblt0QJY8cy4k1xfUaugaW7VHqO/IbwNtRgEsfWCaOzCTolKxSiUneChwBs5U/eu
YJbHjPXhZRW+7yzhDiLAD8X6WtV3sVXqomUQUrwd4Ya7TUp4mewZrUzxkmCeU6hoqy7bCHAI70G7
usMoWCbV/nF9nbqTC+yLgP/92907eFyeryHEkq7wPUSAH4pqblXersLWXfR3b1WES7UkE3ahGoNm
0wG3BgswLvDO3d6W3uhvCO+B2nr5wPZ6rcK9AJoErESZD9ZRnRg7LivzCTY13rDTO4PQ30UE+JHg
1O7X+BHjkQoddOIiBjqMmg/e0hrcGCTADECXOu9odG6VIYT3gF632r7kVju2wulElbFm+ZU2siBt
TWaz05NdnzF0t+wO+84IzyYC/EgWlX2v3pcP3O5wpSgyFSHDAlyzv90PHe5vb9wG4/uG8F7Q6tX8
2XkldG2AS5BsJnarLV18TElZlf3e/qfUGqyZLMP6NiLAD+VsbbcEeya4ZNhzwKW8VaAuBKg+LeLL
WJOSagWWVVhpLIFmSKqbZgjhxWHA2Zce0fC7+ROxBGMsZB3kBq+nCeB77gRN939B9PfbiAA/mdbX
6placFW7R7iTwY9gaAXeqm+rxoXuWnqBrPKCI78hvA0YBF7D890xDDZkmCx10fFYeU5DCacty41w
K8o2NHp3Yng+EeDnMreFbhaz07vI0ttCawEerY2+LYmk86azW6svvoXofAg/j8yB7AEjYtZfBNjJ
aDBWQv12DxlvmAyebcqtTAIsQxMH+PuIAH8f7QXzHmrsrak54BJfmpkC1R5ahu3+4ht/FxHgEH4B
7neXXUBzveuAkrf/1uzW9z6EcIDw2tqI+2U83EruhPUEpgo8jTDvV2nJ7yTB7FysRqDdqPB+UdtW
XjZsaYZZCB3CW+GnEK64CtExtFi7thGIrlduKvA1x5W77dnKZAT6O4kH/ASOR4I6YWQgwN6zNtp7
peD+CrUmBWgI0l/23SrIwgN2P9gtM4Tw+mAQ7O/i9tL+tdvuPnY8QEHGww8P9+OQ2rrcie93i6pn
BPobiQA/jEX1H8GDFoHqdtIswKrudod7DVYNN5XwVgJYhOno0h4jvyG8EVbfAiUmYbterVh8hUWh
r+6LgW1Z7maz3fqZbF89T7iFCPDXKTFdcpiwiOPrdhDW1PcWYIsuqkv3doowFWwZRpa/cRFWCOHX
4G63nN9S4A+MhHvnUl4EeCPt/KrnKndAZubImIVnEgH+fhYSLOnti+7qVpQ1zyuZVUiNobzi0mEH
agQ6hPCG4ALTPWcOygrs28cjnOutH8r/NaK9308E+Al8VpHJt9vMvTk8isQUMPprwWWoqWLe2jWm
5VXTiwCH8LZgCGoi2H1yB5jF2u5qOUn4W0SAf4gSXm5PKS8Y0NfJ2bX04gU7iQjTwtHeEN4aBqD1
g0GQ8tJXl11gDK2Xc4Y/RgT4SYzWcNwqphwCJb7aW3mZ5fVcr53fmvXl5c4u/q/bYO1CCO8HQ2Cs
uirrsPoYFw1xhz123p4wOxMR6t9EBPhJWF73sdIe0grM+kPrrIS3BLji9n9ZeYEAq9NL/zeE8Kbg
9nYHfbWW2WCzXFTy+e04vnbDjvBYIsAPZV9hOzbpLgHClbBM/YfsAsJrd7ddX+OsmgCWCJ8muhzC
i8PqEJmD1XbN4itWimyluKyEnozMtKrzPFeIdPguIsCPZygrzcJNoxLm8FSgg5sNF9NbccvzZeXV
CHfCblst0A1xDyedygghvBCorzvh3kuJPz62vgpJVmSjbQ0ubz69kigC/HuIAD8VWsYkwCjwHiM6
BBjNLdFlP5zg4Rx3KzxDBDiEF8dXAdso0OHGEZbYeuP7CPSFSAdWJvxmci/o0zyiEuscPk0vj1Bk
jBNBBavAv7V7tW5bbGhZJcDM9ziPEaeLbm4UOISXhwXQjI+xHmTnFVXT+ueldQl/hHjA13Jz7dYB
3TBqyKc84E5iN97a0qDk4+LoWoDtCfMuB9guMJsLKhsBDuHl2W3Wu/XaPXIrcZkWW5HwB4kAP5pp
oNm7Ck8r/+c5YL1HyY06tKyoGEo7DUAXvuCvPOQTa7AqIVPAIbwBq20/MwFkD+rOzZd83wtZ4eeJ
AN/FJ7UaaVWRudQ0SDTL86LlMOBcPVor7hBgFBnVZeqnZFivboe1Ew5dHpwOIbwGoz8ONhqsgJYF
WY+VJkdkwdWvJgL8FNwYli1iCk/tBC1GhHmVAJf8lv5O0fZ89WZselLg/RHn6G8I7wBmgMUggptP
4gAzCr3x1cCnyIrn300E+Jks2oSDrbkTiK/ewwNGaLUrAW5GeyNkuiUaMtDi6G8I7wFN3oZCdmLt
C5BkVaaH6O/bl+N4+GVkFfRTmWu/Q2oq7PfaxGaj5mPFZcNTGNoFNnR4LbEIMfE9Bbb+TrsQwuuD
LWDRyI47yduErP0oQpuWA8H99Jrg8LPEA34e03zvzKnmsPmH4EpyS3UdmQX4w6/GIrwQW9TZc0KH
AhxBDuFVKXtAZ71MzPrsOPOZcenwa4gAP5Gu/XMj6EVYS2Wmiax71NlzvGhx6S8dXd/xppxfmp22
qO7Q18kBjgscwltAU8c2yGJ8rNa+CHi2JodEgH87EeDHs1DXaVOU/u6huJ+EhPhad5FiyzGy2trr
UAW9LeWlwHIfQnh1Vu6Tt4XQ3vPADDyfEtuswPrtZA74WczNgT7q3DoILK8Z8G2whrLyLgW2N+x0
DzFbfB1wAektqqsoLVLJ3TpDCK+NF4TwOEIMAtNVsiXnPN2xNiv8VuIBP5/NPFDUHnANRVer2fzj
JpOWVu89Gq2NtiSx6KpDFEJ3+0Z0Lu9A/N8Q3gi1/V66eekx/JidDobfSgT4qVTrkNZ6jGiS3Hop
ER3+V9pqfWXfa7C8cdSZhf1dZ1AU9Y0Ah/B2+GqJWvwsU2KzcsyZ5PCLiAB/J9bbahaoMVGehISM
WoB52/m1xhIyiqK8yqTlefAJRfYmC55DeCe6w83w8wpzgi88bEr4a2QO+IFYXz9jv7tK87GQihLg
4fpqa/F1SiWtLMAVcXltIsAhvA9u7ox7yQxoIwsi89CO8IXh6PBLiQf8KJYLq2YqjaxyeB3eL8gl
9YhpSaygaRG0KKvBWZoZmFZA4rvmfuzK5O02GUJ4F0qB7f9KgHkccF0GfNL8hN9OBPhRWFwruMRJ
2jDYvN9GKrZZe5kzkoq6Qu0YarLE4uXqhSzjEm/X+MDOiwCH8D5MzR3TQP+bxxHW6pJhTgj0PvwF
IsDPpCV3v0lMDYUnmGw29nVRXG8kvnZt9fa8sAUYP7hzpdJMCZePHAEO4f2wUcAeyCIwA1zmxFsR
Af5LRICfyqnGMAlwgeTSmniX71sibIm176tQ93hrv93WlqRukiGEd8E9bwbM9LNZ97VIfc3R7fKb
seufJAL8FK6o09Jeb9WIRnfWjq093JGA9rL7sOB65KkXYRFxQwwhvBPV8umaS3652BcfmCmuMiw3
slntOhR+gKyC/hLn6vxVAly7VltvKozAjhCS6yyU19t+4Q53gwwhvBH2f+mBr70ESxI8nosEt+rw
7iO36/g54gF/hZvq+unCvhF0o2DJrr1dhXu3W3HjdS/Sogghj0x3ewwhvBd2gT0BzJrMvg6puPVq
pM3HR+6Y9WNEgL/AoqLf2u0EH6MmhKpKWkt3CSpQcmvBdariTvf4NJJcE0EhhPfDTX+1W2+5K/Ru
ecfnDaPSHb6S9cfH7h77FR5ABPjBfFKTjyZqNnRhEdrSVmTWslvCWzJs9VXA0Spd6hsJDuHtoO/t
KeC1zMEa2piIWlpyG5kG/jkiwLdyVf2+UKiypmbCPdVxbC3ACGuJbckt40y0NfRYCYp34ZLf6G8I
b4mthIQXvd34iYSDT03PKS4cFJ5KBPgh3FyBW4DVepBeSSpbBBi5teIqxJboB65xF2LN467aIDkh
hHfEBoO76nEto42JuWSJNpnq/XVEgJ/Lsj3stQ1FHOcyJKTVbu/aiovTq9gHiYgwzyM0irRKQ6l0
COENwURwK8pxAfCBfTnJHcPT4blEgG/hwfXXp/MUMNLaWxxb/eD0NkiyvWK9XVitjybIWugQwlvh
Ru+ZKW12682/6amE6s1/ZqGiwL+MCPCDOFmz58TzFd+TwJJZu8H2agnA0GBt7e6yodUBjdBSHEJ4
I9z4q/0zFyXjsd4N3Z2c4fBXiAA/kYXqeqrG+yUkIcA84pcX/i9SyxZX1xu7v05FhJn6JbWbIu8Q
whtQTb0FeMW1iohwucHNrZcghR8md8L6NlgsgQpXE6npGG3WLKxi4xciCx6DdsTi2ypcoozHXLpL
ohtlCOHVqTbfLR4Bdp/dz037dOw5/E7iAT+Ao8p/3Bo6RQLco0RIsZOdJOlFfmss2oqL9rYO2zuW
1jIETRkeB1yjz5HfEN4UWYMyHL5LXsae/yYR4O9m3CluEuk1F/ThBktd3Z6Q274XlrUYh7fUWFBO
PV7TLTGE8EZ001/ZbthIcDOOyaCEP0QE+DmM1nC2VdQQtGAJBT6wNdhNCqndri3AaK2llx/k1w2O
oWe7v5HgEN6OGg3jrjxYBAzFlmeLL4zNZF3CLycC/BzcALQ52xCmDNpKCW9JMBILXmBhAfZP6XFl
IspKiAscwnvhVo9x8HyUIru1euQlwJvpmQzR3z9DBPgpHDaAwxZxGMUBtgZrhxCridWlR0htqa29
X2szcmwpjgCH8F5gCoRCdMiFXGA/Fpi1JFmK9efIKuhn4bYwGoQnfqdIv6d1ExuWQuMBMxKNALtd
obwDp+zU5pjxAQQ4+hvCmzEPe9ETx2zsdlJf2Q118jMP/OeIB/xlzlX68+NAnTM3Fz8SaWuRtgSj
v6XAnuGxK7wqRV59MAFkbY4Ah/CmYAJ6IGynPrt94Ojv3yMC/AS6HZxvDqXArJsw/USkDq87itdb
k7/l8yLMne7GlyngEN4WuuD2gd1bZwDaPzYi4c8QAX4CJ3zfg5RJe0GaC1XIUzkMR1to7eni8rIr
/XWCvd8IcAjvileClDHgLbuBF5x7Uf4xIsBPZam7I+x9C7C2Y+SIFuQ0zwe30LqHy5X2jlR/t4Ld
DEMIb0iPgEmGMQcfK9aOMH9FZ95mJPwJIsBfpERznxMe8GFiRbx1ht49gDQezoDHq8blGI0M3WUx
FjKsLU2wmmII4d3AAWaHXbBlWHNjrI2fbjq68uH3EwH+MseVvVP2Mg7axBTVnlepMNgBRn1pVysi
EuCR4r1TIsAhvDU4wVgJwCZoI/fXhsSmJfwBIsDfgvR12SiOw9Vs5P0u9dfeLrES3opWM9tGfkN4
b8blEMamQrbB5iT8FXId8NNYaG7J69gcUGlItMRXMmvtRW15q4W5kTlxLMbyCq0ocAjvzuwE83gk
K/ApGxN+K/GAH8V+vT8ht4vYMncky/vdrfF1pa00KN/qdegv6R1iClghbboNhhDej6n9l42wTfDo
WBuU8BeIAD+RPQEmsjcR3AmTAFt8GYNuAW7NLbElpV1fboGFOHfzCyG8I1LglUwBCiwr0SYiLvDf
IgJ8F7fXcR+xJ8AkTQksvioF9o2wrL9DintMGvGtvVtbHOAQ3hmZAbvBqK9Ngq3DOtPAf4kI8F3c
KMBzcUR3RNl54TO7f3Z3PYSEEjuIHi9xAXq79aCkaoYhhHfCDR/tLeEVxMcomexGmZfwF4gA/wQl
w63EhLiLjfVV+stSLFqSl2RZhLVBltXifF9o0pFj2mEI4b0oAZbglg9Mh5y4iQv8x4gAP4t2cxfM
KaW99n3RX4LcSx2tldKivPi6eMKlwBbdmuhRwA8/if6G8JaUz4viVpS9R6CxEzYZx7bnLh50mnCB
CPDDsJwuGNET1Rjpxe1VVrnBHedmrtJgNyUUuLRXYUdwgreb9WpFkehvCG+KnF8kt1xf7XGDsRIG
S1FmJvx+ch3w1ZwQ0n0OChwKMlSS1db5frEh7h0OsOUW5WVTDvFKe5xhldh+fOwkwJHgEN4UPGDL
LztZAukuGlwqLFNRdib8fuIBPwrq/H69X8RGcK9Aaa4DrdYWYLSXKd/hBq/XcnqtybQsFVDDc3ur
FhhCeEO69dsTtvAOsBNYk/AHiAA/jJbSTzhVwh6xXFuajRXYdFtCge0BO+LbrbvfC9UEIWIcwlsx
Wjzqqw465sLISuyiwH+FCPAXWIipgoshZ0KHStvx/eSKzQKsUK+6wgFW0yrRZVbY1yf1Ui20t17N
nhiHEN6AavP77i9SjNGwYQm/nswBf41JTxXY11YxEizNC30eeAyarXA+uxqDLunt3qxV1wu0dj1B
3E3PWxH5DeGdWDT4hQDPY9Fxgf8I8YAfAsqJlB7QCSe0t6kc+78jXk9E4nK+YrflOdso8OYfY9HO
4QKEiG4Ibw+iO3R3Dm8fdSlSeC4R4Ou5VKWHD7vPfgoxinUUqkDpLzkKrNclvm5FNKqdXF+Gn6XA
8nx56rbyGX+OAofw3sgKzPq7DO0yCP0niABfZE9Az2HpPVDWZi/JaovYzqkW3akYWdZeCW95v7X6
mTFo+bwIM3KMHquzK/21BEeHQ3hDSnwnzVWIm+kBFiQu8J8gAnyJpVYeY9WlkMvxqnToYF+QN2c4
JCe2Q5ygA30KHorkNmTt3eH+evoXSXa6BJhY+b9ugg6wCSG8Eb4WsUTXe+7IYSOB6Xi0C2w7FR5M
BPgc1Df08SJVaEElD+SretfJ3hHZtAI7zFEdIJ8ZXrWn2fm1x8u4dK/PYrG0fONugiyJrmAI4b2Q
6vI0JES3LoqQ1Sj91c7mJPxuIsAX+awOl3g2HeosUwn7aeOs2s7HUMQBMrgLh5uRXF9Af4UHn+na
Kl/NrX4UjwCH8JYwAGbx9b2w2AhZCKxEZoH/AhHgAw608hJoZmmo934T3KcKnILjBx6r1r4SEeDy
frWt7qz6ulvGntf/uAoYze0ObwQ4hPcES8BYGZaArcwGLjAWAwkuMxN+MxHgfU5L5UVKeIue8zXH
WjwzyukQH820sMMcgwdMC2KquJxd47VYDESzIKtbH91dd4BDCG9GO7+yA44qBtZeNhmD/gNEgGdw
VFHBa6mSCCdjw2wIObHyTpxqZI9jpbE+iE3tlVqzveutfF7FVh9b5nx9crFe/1vT5PRDY1OL6/YX
QngjvPqq2j7mgMsk/ONeuWX4hAEKv4sIcIHSTaFp+zlDOtesVLYKO7H5/Cw+wmcoKvyPtdCbDQK8
QXqVStBImb3k0e3Pay6ivyG8HeXt0vjLBZY9QHSR3/GT22H9et5bgGeBtHDOVAwp/EREkUQ2NYSs
TSfX7vLROtD5HDngF2Gz5l5y2kle104bDrA+Se7wamgwC7LcHPeITxzCa1PXSUyNH3tQ87/lANsF
jgD/et5agIdcNkdiaSW8XImRRG9Ea2TnnKSyq4i2HEuojuzzOLUEXQK8WlVgEmBmiPF93ei2luNq
gksiwCG8NPTB59Ev1Ffd7hZeLo4gdNEWXclyWUt4OO8swBbDBXvRKVIaeQ4roje1PTznPs7sEx6o
LvsR9lvZvHgGP9cBK8IBeiO/TBCzo79LI4zLG8JbgeKyq0h5wJgEGQWE2Eq8NEbnDNO59EEmkp/K
Wwtw789xlH/qAORxKKfpdHNwgLO7SElsQU7nO0jaNKmsmEM1CbyuwWc8X2TZ96SkEUaAQ3gz3Oir
8VuB3TVnathLQ/Q6sD9ic8eodBmnZi8SvkwE+CxXVTVrJRuHis5SynL4pkqwGe+ZahcjDJJWbx1x
1PF/a7c1ecASZS5UWu+q7+sGGUJ4E1DdRbsniAZbfr2XAB8PH693HbgXGajwQCLAt3B8BCJr0M0K
zjmKO1QbdhUkvUr6AGdUToXrPGhun5w1WVvva9gJ6d164+cSnhDgo4QQwgtBq98bhC4NRoAtw6dd
4M3q4u05ygyF7+OtF2F9yqn6eJCE7LZMeue0keEkIsTHhkTO7B+vdZ6KOKPO0wcLlNcPZNCWVqf2
Zen1RLAb3zFxiUN4bWQIehG0jYIDvhbYAlwqPCzLzA4X+Di5yYqr7yYCfIZJFHt/llLJwXzcpKMV
VYID0tyeMyatnOSR06l2dpUngeXBC0Q948vjgGlgLK+o1Y5MAFe7OyACHMKLs/qYFkFDmYKSXkwD
22N3d50bVP4qIsCnmeQSLbwIJWY6kWRc1kVSBRzXe8Qq4nQSW5vZ1T2fOUMtuNpumP/18gokmCFo
tTI3vQMFZpI4AhzCS6Mmrn721NXuwDwB7I66zcweZ53cSPNPEAE+zailJZQXQTFFy2gnEmwF7gSf
CmnVlpczCB2ghGoja1oYd+HA/yVxTa9WTavmgHGQjxzdqRF6H0J4ZY4auuRXoL4KSYCvX/TMZRbh
24kAf8asoOcp6dwv2Un7R0tIfcbOswyX5FbMGYxLE0JvGXlmOZZ3blc7CTDTv9Lgw+Y3OsGrEzfH
CiG8GjIGYNWl223pRYAJMFoWVf3lRIA/5aoqXPK5ACU9ShziO3IrG/11SmdZgLXD792utnabKbOu
eV93cmsd1izAhEp/3RYJhBBemdHQS28tufNbloKVIhHg300E+GGoqltOR9AqKpxJvANOsUtbQUrW
q+P4w8p2iSrmzT8GnUuA8Yy3cohLeJn0dUMsIr8hvAlq7ENxQXs8YVHx64egyzq1jZqxRQrPIwL8
dU7XUTQT6dzPJoKYlqaW7JK68WQvKNbiXMKr9LrQSQJceASaLu5YgjELsNtjBDiE94BRZt8bfsLq
awVe4QCfNk5HTHfIOix//SRyuIcI8DOwzKKc86McFGVrga1QpToZfxfBBRey9jqpokwC4/2y+ErN
jZh2rb57ChwBDuFt8EjzngfMpjxgbdxxv4oudlj62sPDnUSAT/OAimfv1qc5OhdZlVqFSn1nDe59
43Ru+ux7QG/U3kjRzlLbI86tuk6pYAjh1RmDzdBBpSnkyPUCbNY3rJoODyECfBJGgTt4M3tVvlV2
3rDrt2XYg9GLmV5tiY0EXjsKegm0fWBfg4QLLEnuVijGcHT0N4R3Aq0t6W0B7vvl+TIk25p9jlMG
G5UP30sE+CQoXAevZqrYyxreYe3mbCKiUi3JlvtSYZgCqLG3OLxqXlvrbyVXM+tGKBzUZj81hPC6
qLFbeK29Q4A9WMYAtE1Km50riP5+PxHgkyxnb/e4sjpPxVDRKUg6MSc6iG+rl91t7cgh5KwZ+7tq
UCsuTLIca9utbHJ8R8CJIYR3YHi/sAxZf20psD1mDp1kWTR8FxHgk+BjdvCYM/WU5BNZU1K1horO
Ejtn1Ia9HWJH7QHz2rIEa1VRL260/lptZ72N8IbwZqC6erMkRDbBOwbH1FvnPlhYkevY5JLhnyAC
fJqr6y1cWdaS2srLQUQ7UJFKEVy8VIxxaa4BRndR4O3HbjvN80A3xRDCuyHxnTxfAqwTqQA3l8TA
XMfVBcMjiQB/nWurLhLrFuFA4ajflc6+dsWQYt8Fq24MLe93X38jwCG8K7MA2/tlx3AZV0zYqvBz
FqxO+EkiwI/gmmrshoCcjqjejrIpYe19xb0SuwJCHnDF2DIa7eUXNQadoecQ3pVZgMH+rwTYlL0Z
FucUh1kXioanEAF+AKrmHbqI5VNbv1zZaR1DYb1kkVNVnI0TeOswPyRYAdK4J4fkt0aa4gKH8L7Y
BpQI+1Y93osNl0vYlJw0TsvUq6zXHr5g+PSJw01EgL8F6iqtYUe9bZUl1S3EVyCVf1vJJO5jd1g/
KsWLO0HT0eUVAQ7hjWn1RXgVsPiixLYtw5K0GVpwKu1qWALKLXHlGISvEQH+TjbbrrJuFP0WqC9N
otLILj3ubO39ZKRaBI0OW359M46FAEeHQ3g7uBAJQ1Cb6pZLij1ihu1om3LIhcs8PmXN9BfvXSeE
e4kAf52u3nMtP1Hfqyl43x5utQskVSFeoxBb62+nSG/VorxHfxWQ9qr76XZGO1AbjPaG8J60+1uU
/LKVnZD5sCGx5TnkZKoO6dAFuBCSbr+vdeq0cCcR4Mdxup73jj0bXhbf2jpEElvn8NN0YK12tWYQ
2qPQFmJaQHd53QbdEkMI7wdWAG+0DIK0Fw2WwSizghWxCTrmbMZltn37AT509QU/OogI8MOYajM1
v/cTrus0Bv2goW4bTjDuqLrElDRl1pjz0N8SYJpbjzXh/0aAQ3hXEGCGwqS8VmEMg9dIFfuGaIlN
jjkajz53CDADXC80+FLJ8CkR4MchwZxCSxTz1K81tdsFUSJsrbETVcK5nenkLtQCvN7ZCVZTo+nF
Aw7hbbEN0E/NAdsBHldbDDBDF9iuPm7xZH0XAs9+iYNB6M8/LCyJAD+Q46rXKRJRglOTULBxhZ00
1ihJMqut87SpFqVUHoNkL5j1V7QB5oAlwgp2WwwhvBdoYbu+w/3FdmA9yoawuwyrTDp4BXUb3MGe
cnPtU60z7V34hAjwQxmVjgbQgWnPa7QMtwumdRWolAnK2dkl3Yd6rAdVpmXh/iLEH9zrtS5GQoGz
DiuE9wTxncAglCGxlZlMi63QeT4tsGBTylscuM7zefJopauIAD+OFkyHmkXNt6ASdXMg7DTCA/u9
osp4Z8/X1xQgylyI1OxWiK8CfVtKP5w/hPB2tPb2GLSMQtkPfFB27s1/wqcFlvSNcO0IZw74a0SA
nwIK6+2o+9ryIqUCRnu1EjUQPxG4E6cS5Nrblch67FkoIhn2GLReamxqdKzCYiY4hPCOSAotvzII
u90ag3KErdCj2HgGzMTP/RoR4K+xrNgjPKc5xKbU1WHrK8JbdAZPLikNnkoLiy/aWxJMMsPONfgs
Vtu1WwFrMCLAIbwptQZr64XQtjEwWxFtsESPhGuRcIH1KZ0S7iEC/AS6Us4bUobWTg2jdri/rFjA
E2a7J8w0nboJtOFYSy/CjCjT3nB+/QTQboshhLcD37d8YJsOuuu2KzW4trRFD0Ldf+k+lzutb1lB
HfaJAD8JNYPeeNfyyX4fC64vDa6ou6ugso7IBfZxVdCJ5RBbgXF/TbfDEMK7oc63x6DpkmMmbC0w
PBUuMfbrkWzWNQHsj6orLcOtRIAfwFHVk1DWznu/gfRmCiyDXay12FLLdIvDNCPvndxOMNfi1QWA
cYBDeF/cEZcd2JXtsP7KstResMEkPQXmz/QBHQu3EAF+BtRF1fmKuG7SCMCxpkLeVrPpLAZ1kNmh
udpaboUDqC8D0Yw9eyImLnAI7w1WQO8agG4c7F6/NmWMruFGLb3tNh5hSQT40XTl1a4qfQVGs3C0
caCk113VKaS35VY7Ir74iF1j/dWbOZhZgeMCh/C+YAu4B0dNWJU5mUM2MLez2TLL+xk9FB3uIAL8
BFTlvfVOW5pAtQWoEO2ELAuwNn3tnoJE7PVy3w1SfHcZEp07LcHiLtA1C+wFid0OQwjvBpPALMFa
/9t9bG1Vypx4y4bRaBuj29jpzLnQ6JlEgB9MV3N2llhv3QwqbDrLxYjj4k6ZpNnjZT6HNFoT4iu0
2Up0rb8MOCHAboCZAw7hbVH7lwDTN1999DTwZE3G9h4Fds8+48tPJAL8aKjmaKh/HOumwG6Eu1lU
Uxk7F65DlTQ5wBZntggwHjA9Xd8KGhVuAXYf2G0xhPBmMAfFEiwuDMJKgE2MjckwNzZGzTJ8li3z
W7nXxjOJAD8FV/Z+UdVpAd5yTVG3BsUYd7Z3C7Xr8ooiu6TRoirBoowCc/tJ+rsMQ5t2gx0OIbwX
CLC64hiA9T+sSqmwnV4ZD5sZx5SIfbqOusvPatfR8AQiwI/H9ZxXvYnXu8S0gnZwnQbOm0KNBdiu
b6UqQP+WQWj6pTrDJMAhhPeFSxG15cLE7W7FTeNtOWxFZotSFgb7cx3jsUfXHxFuJQJ8F8dVslI6
HdG1lo4QafvUE4+UQz4770E5aHO3H+uuQ1JeBbbbja8/8jrorH0OIViAeTIgZmL3IROBxSizYbvi
LnxbFG1spK5g4/vMS4B1qk4KjyUCfBeqzx1aQm3vEPnUdoKdMMGgM0kjVru5TOtthfWSpzsn4Pbi
/tZkMM2D9le7EMJbIgG26JaJwIZMHfiiJbiD17LZyq5wu8nrDwk3EQG+izP10bW7tBQ5taCOwoTd
AiqVTTGOmtOcQgOi40lbcpOqPN/9akVa6682TAF1QwwhvB8rnoKEeZC5KPOBBM/YwIiyMW2SrmGT
5/o+lQjwF6ia3PpaCdTuijiz4vUG2oRzKlihitWpnDiYmhCNyT1abVBd5n8ZgGYsuu7CoY5qnOAQ
3hXmpLAUZS/4aeOxt2v7IpEOv4MI8L1QnUtpvS2o4nuJVHcXJTC1holONj64itB4dKy2dcDiMAag
aWxbucIIL3osor8hvC+rGiZr6K8fuMDFZG9snMLPEwG+E9Xl1tixM+hm/QxF9WvRNnovqjV4y0ZH
CuXTfAhqW42oN+QzJ+ML7u0At/aGEN6Y1ceK1ZlNm42yIYM2M2VkCC7oiDMreMS59PBFIsC343rs
3WG1HFWYjd6jrqstjHAzeqcuWwHO6qKFm1BFCG0rwlTvpL+4v9p2EwwhvCu7zdYddJgsh00U8dkS
TcjS2GQZ7BB5joTvJAJ8Owu57JTCyWRT0cmtrVJKSBvia5oLBRzv4qRXAq/RiszW/dt/9n+lvuX/
tgds7Y0jHMLbstp5EQk2A6NRWyyGIx0YlD3SAVietbrzZYLIOcEmi7CeSQT4VqqWLrdmDrom+836
fV6kFB10A6kyPpAWQXC0FRerpkSIKwsU49kk6uoiv9wDWrDJpcAhvDcyAu6gc70ilqKtxpKySwbV
taHhXpOmVlBX0hEnE8ODiADfgaqwtyfqpuuwq/vUr2TDtMykpr2vYgNCTumAS9GW+qUNV+XVcxg8
9EzD8U8UOIR3ZgiwLUvdNeDQ2pRNwcBgTHYu/m/rOwgIP/II4xO+mQjwdRxUzhE93AsFXdtZ6u9k
x6j+qvg0ERpEp4y3j2nmIFpbx4C8XrUbqa+aj5rMmAJm7zbolhhCeDtkCPZUt2xIG5qhwG1q1lvu
mOW0SX+FfWAbsPCdRICvgdrKrmIN1bwCU9UliSAJHSCRAmBPthY/EHUx8itAkunmQVuxACumF41s
q6OlwZJcHN+l/oYQ3hUsASNkthvaTMak91JXhbyhE1+J5f/qUGzJakdRLFP4ViLA13C6ak6JVG2X
qYrtvZPGxlnl+9ZWSbWpLB9EgBca7fx/fVM5b7c7dXJ5NL9CLblqNVM4hPCmuCtum9HiqhABjEiD
YandlMzT9gH5XX2cEeATSeGRRICvB63soDhfWym3R1d7ubNT5d/biTpKrYZjeRFXeeEBaI9AI80K
TT6vXOLcgjKE9wYJ/fjwrO56WzaFDcaEsGiDNKLm3z8rbyMB/ifrdMSJpPBIIsCPxPV61HMHHHa6
lZRYpTVTeBzun05vAXa3lguRtLcAd8P7WLEYusMhhDemV2ExTWX3d2yNzAmxRcoJASZtH9axhKcS
Ab6GS/1AS27TdbuUs7KI1Xua2i11hakIAafMlP/rmR02252jamALp7f6voPVKv5wCO/JVgZEZuJj
tbAkbUKa6s+TUJNcSwFebTFEbcYmthHgZxMBvpOjygolp7wtmgSVIq+1qv7cMhQa7YLD2Hb52g09
ViELMB6w4yzBqgZn6VXLqZjYbWffOITwPjALvK7LgGUw3NXHaPS7bMkSr0RZYUNKfhFg0suMiTkU
nkoE+DzWxgpeQalmK+jU2xwR7bmgaNCqWkEdWOU67AC4mTRbRzwAbZlVm6mmN+kwVyY5KYTwVpQA
t6Exo9Pv7WxOhklZb7e1CroV2A60aGOmSAfCc4kAX+KTWnhcS0kZ9b2wJvOmRVSGT9sNoQv40M6u
XR030/q73qm1oboW3oGbEBkhhLdkJ5sx7sFRNmRosNi3JY7JoMxj0Dq6rI7sEAFsWfgOIsBfhdo6
VdiqvVRltg5MSkrRjo48x3vrM1VkyusTIr1uT2MAelbfDmX2N4R3ZiUB3mzZLFj0+bEgTtC+0hTo
C5HUna80mzBDKHwDEeCvUlW7gpPYguuyCzikXUeb4QSPApVdaftUmtqOrwFWg5nHmqv9fOy2HQ8h
vB0yCb6f8+zzYi7YzPbGkNYXC2Nx6M9jT9owyX5hhQiF7yECfI7TdfBUKtWVdOqvK3ZX8K7LU/KC
OamOrFAl9p4MopXouHq4NWo0zfYq5KDTKymE8FaURahZ3FmBFSz9JamNiFMmASaZG/yQ2MbGVNC2
LTyZCPA5Pq2AiwIOznXYFXxE2M9hhypapRTm0A2XwRMnsUNkOVrIO7bOSnEtuwhuCzAj0BHgEN4N
N3rfTNIXAtum2PcdzjAWRCHsE1RiwRCcLU1lTubLB9Ux4dlEgM/ySQVcVlAqLyldwRerH0Tf0Kpr
u6NzVe/DUFtKVYY/2qGGM6gAastd5yTCfhyh9RcFth5HgEN4L9zmZQmwBa27wwaxWSB7spek+J6J
2TM5I2TjFp7JOgJ8kqtq31zGAW1UyRHLeZrFldkxyW6dFQF2cOwoQ8gZfeDIAR+tE+8ku2JbjyO0
6FqMSSHkJhlCeCNo9nS+W4CLOdTYnkypivg1jI2zutu/PBSrFp5KPOAzXFP5uob21hXZcD84kium
ej4qegmtA9R3fpbHde6iCYygGteWu0Fvd1tuhrXdlfPruR8LcDXGEMJ7YQHWazyQsBgmZ1iQybAo
4J32bXZ6x77szzLDpi08jwjwaY6r3oW66KypIlP7LcCuwr3rN9sK9nGLFAfGafCG2TkCa8ksq6Al
wmDtLY+4gtUaQwhvRQkw3fDJXKC+s+UQROqNWVoYnQnl7sUbm6nwRCLAX2aI6ajB1H7err9sJlnt
6CjIgR2ZDiaRLUd7V9n/pLxqYeUBMxbNoDMPCG4BVioNMYTwNsxNnpGwlfrmZTRqHqwYdmUySf2e
qIiyy9K0/Sls2cIzyRzw13GtVbUdNdf1HCe4ogWRqt1zsam2+xS149VpDalcLLBlHFp7nkfIIiyE
tzV4u/MtskIIb8Oiy92TwENjsT62HQszoqDSKqqt821wjPe1Ydt2ild4KvGAv8KonlRYdlRZN4Ga
93VKVfWiEqBDUwvQbpyiDuweKfi5JfJxlcVC6Am7vwxLS4UlyN0WQwhvBvrL3TRkLcrclAu8MD1T
UKbF9mpQIRIqseMjoNTwRCLA90Pd9LsrqWvr2Bjra1V9SlVWPTN7HOBX7/evULKWc0UT92z1vVq5
GSWzv/J8aXAKS3kjwCG8N5gE9cUxGssLMEqGy6I4dTIvs5VplunalHHyQXpjq8JziAB/HdVY6iw1
tnS1gkJBwqQ5NnJoGHWQs3kTst/rIm4ubi9b669ndbz+mSFnay3LLnYrFFgSLDWOAIfwlrhLvrIA
D9NBZ73DbVA6XcwhZ0FZndoTnK1Y2aTwLDIHfCPL2jiHXWXZeV911/uqxdTjiTmpzjBSRkjvqYmQ
JMVd++rhmgLebj3hU7fDYmmWFJgJ4W6MIYT3gvtwaLMvsV6RNSctKHMz9pgYvTrCroKiskgNzyIe
8IOoWsp2qsz1rgi1eNpVzpxXR44SA8f+/dv6SZ92mhFgCa61lpDeHoRmWXQEOIT3Raagb8Bn9eWN
xfBPUbmT0YGRaWPUobGr14RtVJmosnHhIUSA70cVtEMTrrOupXu1tyttNYzKIKGCFeizVU6lO7xe
rXaOAhcDb+uuGzUF3AKsvVthCOEdkf6uPPsre2BLMXRXAZR3mBCMDFkj3qWmBO9sqqb3gi7d9ik8
gAjwl6haONdF103ersT8+OVAVdrejxx+SHM6YZddpEhix/VMrMGy2HrE6WPF8LMVmaVZ3RBDCO8H
k8AorwxC6aTeJZflBEt1iQ77MzEVK3szdtrWayTXaYYTLRSyxQtfI3PA90PtLM3cY6rlLjEqcNVk
sp24jLEfKfoZC7HAs74k01Ds7G62q57yUa+3PGBUOCPQIbwh2AJ2DInJRiCRpZIoJkZlqKbjIzQH
TzMZoCm4LNlhzFb4IvGA70QVcw5VsHbIpyMVqApMla00vxzwT+0q1Kn2eKuO+55XDv1TO7ICI8Bc
9scKLK49aAF2KwwhvBvd916tdtiJMh16t0oOJmW2K+ukqQwO8szywGW6T7FMwNqFLxIBvhNXxQ46
QIJ1tF4DR6pOe+tSTiamQO0p5vptD9gJeq1W0l+F1tJkFJiL/LwImouQGIpuBV5HgEN4V9QjBwR4
IFtSRgc61Gl+z5mYF/YjZc4pG3SAE0aZsn/hC0SAb2fUu6n+URNdH0lxhB9BRXWgSihKzGV4jWag
vU/Q6QQdWHNtn6MqYQ+Yja84kvS6zaG/SuxecAjh/fBg2Gpr6zOwcRlKeRRq0zNvO58TDIeh7NGw
TEV9wsgPXyZzwHdC7ZtqoANVI6tiUmOrWjuTNFdivV3cAbUC0kYGmy5a8AQG0gj7Hhzcj9KLsGhz
2tDutswDR39DeFvUES8Bxna0ONY48+jij1RwcCq1l1X8+7f94FxYHkwSONm5hcOVFb5CPOCvMNVO
b1srneREYsRJIlBJjleUjcJuJj66NrQi7XFuKUlBe75yiGvvVqc3DrBaXu7CEcK7wpoQGwGsg2zF
0FbvldSRhc46TW8My4KOYrw882XTg7Uird5dps5FwfBFIsAPoOrpqKu1aQhQojM7wwneOoEG4Wjl
jhbC+qs52QuiuQ6przha0fC4EzRecCWFEN4QZqO0m25GWfvGkTnFpmWZMAcnA1T2iRxbNxuwzusS
guTwVSLA13K+wlFfqbG1rZpZVbSq6ygw4WL1U7HeVgj1VVcW/Z0Kcga8X14lwGpw6vSq68s6rFwF
HMK7gvzSG1/JQth2lBlpYfW2guIgQKEpaTY2Dha1n1K86SNs/MLXiAA/BFVM/XSYulk1tJS3aq/3
lS46q0K1m95dv6fx5y7B6PNCgOnySoAzBxzCW1OLoNUfl3UwZS0mQzIUtqxIbUbanNu40II5fpCD
BQtfJgL8Zaoielv1susqaQ765UxTgcqtWL/r+HruAg2oD+mCSvHTf1uAdzUVjAuMJ+y0EMK7wjWL
XqW5fCAh7EWnSAcOxqsXduqQoxwsXvgiEeAH0OpZwX5bOLvKOskyOt7O7EIOV6HO2dfeTlXL6lXQ
dHY96uRxJ5ZARn9DeHsYD+thaJmMWVq9X0Qq2Kk9Yj1RlgcWGQqWSdorjMELXyMC/ABcF1FLR9iT
UmlTXtVXp/S+s0lQxa4EFyOk3dpj0C6kN8qr5sXjgT92LIWW6lp82XQLDCG8LV4RsnSAHUKIsRtO
WehtBfb1lwj25gLO7jJYNBuzcC8R4EfQNZDd0Es2ncTO0Urv8NiVu+siRH0EcQtwFSHBvu+uXOAd
lx1UkysJdjiE8NaoY77tpdCmNbbe086mhohT2EyMCEWWGeOQCdsrTJetlRPCPUSAHwr10JLJq4Ku
rOy1Y+t3ZxJRC3COc9nWC6pxcEr0Vz6wZ3kkwEz8dpuLAocQZAk+PqYlWEVL6KSkCtgdbvtSXvHI
deYUc4mOzAZpUKbMgQ4SCHcQAX4kFkte/qFeumrW2xG/nNElqOVk+7A5j3DVfx9abYZbU7IUS3Sj
Q4BxgzsSQnhLbAKsv8NwzCgusSW1d0BiR0ZSFZzii2AxIm262BGQ+Qr3EgG+gzN1zsmVZdkc+2nj
6jpileK0SiEyV/EJP6TBKXjAajR4wG5zJtobwptDJ5w9TwbnuS02HBOK2tlls5d1UK5wQYHBable
WCNQ1CneqwCGLtxJBPgeTtU5VcbKYOdaSf3kp3IqMHZO6tSRpNrcTYKjagVWJTuBZVgI8Ky/Ed8Q
3htpr3ftAfvu8VbQFtu2KHZ2Ozwx8mpnWqnb4CjBRqgskSibpE2ZvM5wJNxFBPgOTtU46qYzprdT
9PZSBekpO226AruwK2/VYW97dqYEt57UILTXy4PPrHBcOMBR4BDeFjV/z0ARtCnYMQaNgiKdFtD2
evcHm8vIVLgKCQxVx/1eWh+vB52SnWML1zEMW7iPCPBXqKq33AoqpN/8AAqs7ZRaBbQhVvXeW+7A
UUc4cwwAlRKrCa19HdLCAw4hvDGs/mgX2DFuFr9jDLoMB0alTQgK3Im2JpXh3X7ytAVCNluVDeyH
+SLWwXAnEeAvMNU8quT0UymuoBWoy4k6hUrrd+eqklcuG6S6w45V0LLMJfa+DKkvAQ4hhNn/RYyZ
paK/PmnokFT2rbU2MAcFFhwktHFaMtmofpFAWu3CTUSA7+CwqrmWOlVvB+bqSQWdUivqALsx6kN5
kmo3ilUabzq0fg4SA0zbHnQKIQRZgzYHvkGPsFFptR2+MLGls9shJY0CNjmOTUku1aZoQZsvthUo
A8Yu3EoE+A5c06bqRqCqoX9GdfRWWarOVWRs6+UNeQVHkMYhLudI7ab+qxc57mhpIYTQDIOw4kZY
yyuBraFlPTA2s7RWKrtF0iK2EGtbJTGyyliNzWSu9J6sWbiaCPAduJ5NlY066hroreult6Q7Poqw
mYNVloCHmMdBpi89Ml1QbcNwB454wCGExexv73F/+2lICGa9FhDbf0+S2+bH0ZHWVNaUOCxS7Yhh
05yEEQy3EAG+GVW5/nHMgVEJK9y10mW8r+yxmdIoqa1bgVNGJVeaLycg6NJekSU8Ah0BDiHM2CBo
s9pxr7zJA97T0aG0+4lE91Kaw7QyRmN3sG8bxVHsww1EgG/G9W2qaQRHSlVF/dTLSRWpWO9rx7FG
u0mAB7SWTqlytBPWYfEspJNEk0N4T6pDvhJMAa92MikW0IWKYmQqhGmp4CLbVIYt1FRmUYoApmi8
AdtUtky4ZIfDlUSAb4dq1wpaYb2rHlZypRHWjzOqXpLoFCc45Ni0ExVyabZzEA94s9m6wZ0kChzC
WzL0l6eE170CiilgRmx/ry2BThx5c8Chtk9zIkllliqEbfM73EgE+A6oeLy65rniVWjOIUK0q2kl
6odXBSswcVi7nU153tp+or8hhDdl6nyvWAJtS4L5IFBxxZzqhBHqvD2meDvRBSdb4Kgt1CIU7iIC
fAdV9SowIo72rjNcN0eaUxwlQpHOVKVnAHo9dVyPjvYGFzhObgjhkKX+ylociirYzlSwQYiVcq6w
6cCIL6NtokYEsxbuIAJ8O1XfXOeoh7wcHZXRaX53oGLeVQHn9e05PN3L3TpGU3A+OQ0Rye8uS69C
CBew/8siLGyJ7clkVSbHd+EBm/1YszA/Zi/uSBkvB/wK9xEBvp2qfv3qWNfDDndoLld5zpx2kwBX
fuf0S+9qGRwu//iy+EaaQ3hn6paUXn5Vmjt0dViRI7rAKEeI8LJk59kiTekOOMnWz2/bqHAPEeB7
QFOnujdVRQIVLJzuRJKmcs7oNPKdVGkkkqyqX3FSuAdWN7MQQjjN6mNb/q8YujrrqxlWheT9ItqW
co8iJE3+85LJMmG62HQo3EME+D6ohh2osCtkbeaofpRdUfZVuEJsKpVc7eQJU94FpoqvtG0c3BDC
p6y23IqynofU9uMMy2yHfcjRcR0rW7WIVIKtExYMs1VMgXAlEeB7GdWvaqBfFRkxXl2kamv9VJTk
Ck9V3hl9xskDVpBbb4QQwifsuFfPaiW7gVXBjPDTpmTCFmcyOzMkjWSHO3Jw/BTFXPHDqyAx3EQE
+E6qprkaVo2kOro2OjQl8dNFiFYJbSqldoQcYasfVfxO/8fjTbarPIAwhPAZOxkMucBlO8SQ0w60
UanJ3olFZF4J2sl7BW2bhsESDtpmNaR0MFxJBPhOSi9d/diOyucdCVxaNGUSKlygcfaIdxk2agXa
Uff/bXpQaRsFDiFchMeFL+7DARWZkmxjZF/mMnulFSN+oNAzw0SNfQcKRcgKNxEB/grUuelVkQrS
k2RfWzIUtiZX2jQuRE3vg/q5SRv1YDtT8ov2WoG7jZ0iQ9QhBE8CT8ZjqaEVxvrI0JSX682wM4OF
8i4Pr1ilYKG8W4T7xItwuJYI8FewcI4f1cDet8AS4EWt7AA/jjikFA/66NXp5FQbUmzNfV23/Pgh
hCGEcAF11X0rjplS2xZPblRJqGLGNojAvJnZO9MEqeNtsIS2XhzekXAlEeCvoEqIcvKqd9VIJznB
SS4wkpxaMeeo1iLCVcwb+8HosOR3hQbvttMzt08SDziENwcLwbMYtgcC3HtZlg0l6lrh81R5lxhG
yomYJaiEyndQO4ybjZej4SYiwF+gat/00rtrpfOKSh15Tq83Y0EdW1RwRSTA/9abLc4vi6+0zzro
EMJ5VkjrisuQegp4sia9l4GhAOywOgdMxUao7RXMeTZW3naWd2zaGoabiQDfT9VEayq10NVyxOY6
qpTxIomNwwowPkRGFayqvuZJwGv5vn60Ce1FnnDuQhlC+Az11ReLsLArI+LbCRQf2zI4h5A65RwH
oCJlyArMFzHSbNTCbUSA70bVcbFxbZwqZydA5Xb5KjOS1TymYg2J681uxZwvnVr5wIjvQoGjxSGE
JcgqSH1ZQaI+fOMuPoF/sinNBy7wEOZJrRchUWZJ2ylQdMBGrnNtyMq+hduJAH8BKl/tXQsdqyrp
eOE0ZznTgTl34KcNUk6vhcvLHHAFhu4upDiEEMQwF1uvJ5kEeHldr3ryzf4ssY3OKEpwGCLTNsvh
mUo1k12rULiRCPBXoCbOASoqG4UJdUrHiXWG966yfnvZ1b/hDK//seJ5UlnWVXiCp4V4kRVCCIXN
Ags25QKXACOkemNggKE0TwPvHC3rMzM9DrUvRVrkTkEHfL6yZM0I2xKG24gAfwlXx67irof6ceWc
0kmovNoT76ymQkgwrOX/ukU1XFnAjPB8K44ocAjhBKzCWu3kBkuBW38BC8PjTM0HAtwZjfOHB7w4
plCoI96x8btt2IgDJjHcRAT4Xqq6qe4t5NTJVM2R6XSnjtiUzEFTZa8FWVD3nSyRZbh5qy6rrwee
dDcCHEI4RNZiehoDD2SYRdaGpgVYXfpe/dmZXezQA96DsgzTjWOmg0dg7MKtRIDvpWtb1T1tnNA1
kT1JrrFTUUdcgjzKUekd/qdgZaiHao/XTUovBa2/kwMcQginwE4wCL1YCt0GRrLq8efVCud45E6l
lO3p431soxbYgnlfAZ95uQ83EwH+GpZX10TvqYed4Arp7fjpzBFmz9bQv+SBhHJ01YedR6EdxAme
UkII4QTjmsXVwe2wKsKN9VZ1G449qe1cBLjSF5kOjnOVwZr3ooPs2iCG24gAfxWq4FT9XBudML/I
ddCl+k3BLqBKropPikJbdVHnRdBqUww9eww6ChxCuIT77jIVLMKq2/zA2NeIm5j1d8qS9m6nUegD
qlAXpYiC8zmFzZntX7iVCPAXcVWkRjpIVfSrMpzHxpHKrB9nOBG/V9XajWLtRRTViS3FdczNKgIc
QriEDAWTwB5nrkmtsjRsYAQOhZanrsn2bKfV04Pl4dpVqO3XDFFs4UU+L/GWRIC/iOufa1cpKrWR
IBWzIOwo5UbMZX2QvV8L8L9/a247qR7sLMAfH2hy1DeE8An01C3AH7u2KFs/fOEkNknTDg9YTMPQ
nYyNYkN8P2lBFQl3EQH+KtROtlTDUU1dYTtc+upcNqOC13HEKedUqr/V1k3IMszKxroXFnsviw4h
hBNYgCdsTaanE/buWI+r909hOcEcriJod2ebEaGsNnO0tuwxheF2IsBfxFLqGkg97MrZ4SlQAkyg
6ncfp5T1loh8X6XL+W0FBvdkq11ZeZWkFhYFDiGcRiZDEowR8bVIO5ZcHUvuoFSWR/izbBrXWUex
gFpqXCVcoHeL8yg6Z2DHvAv3EAH+ClQ7aqB3VS8V8q4qqHG+k6jZVcBpBLqzqWagDd3WLSo7D0Ej
u2pZQ3jlGkeDQwjHsAYaGdXWz+a3ZrZ9cRgTxN6QwX1vVdB+cw1fo99ejUVBjoSxX1AmDjNWgXAf
EeCvUXWw6mG/RqorZlVjJ7sVsANibEbcrUWOsDuiOMDTMwhLgMdlwMwQdzCEEGa8kErWw1I6u7FQ
4eXVSZ3LNLE7/msdUkoselHoRThXGTksV7iPCPBXcS30q+skEXZVNytSu6KS/7mKO69wCfdD6+ZX
JbRDbYcAq2l1KIQQFuykmwiwLAgS2qZFvXpfkoTFGcZGTAJb2mvxxW1Gfoc4c3AFxeLYRdDhsoTh
DiLAX4QaOP8M+R0B185+zWXVDlyGTFJ7X6ug1RDowR6stxoxZXcohBAW8JyjdV3HiBmxYZHA+qpg
yeqwOWLPw1Ue3X5ZFrYrL5zu7MUhsK/GU6aMV7iTCPBXGZWwNsiogpVaAV6tuKWy6ojOhSpXqM/q
ESB8XwR4IbQEW4GXySGEMCHplPmoaWBJqq2Ll3fKusjJLZODa2wpndQUAa5FJz143elg03QgvD6t
90AIezZzGA8X2KzybX0JKiNVzrWuIvXjOBnekeC3ajMjQVMiL8Jrd0JpCmoMow11w5qc4SklhBD2
8fpnLAi9eEag5cfiyvLaMrw2hLT33lEKo4PfrK3OsLwjVtmpfQVWWqWCrRyGcMFhPJwnAvxVqvq5
Sno/bRx1ha2Kqr1Dc1oFyZIo0xGl4exYBi0xVmhvGNqRCHAI4TTuwTMLzE6mxSNq8ortC69VYBqF
ngVV1oc54DqI6V8OWmQ3IwWTpjN7B5OlC/eRIehHQE1c/BRK7qirKLW0i/Ux9XLlRnxpOb6W3gNB
9Ej3Fjw7tkwIIYQZjAYDyOq817yv1ze7d8/Skb2xZWPzo3Ke+vIM8NoLsea82i8OJNoGz9GyZOFe
IsAPwRWSPVsqZt1fw8lAjhO6ZG0qTw2kPF8LsKWXp//iADMoZM1lwxXBEeAQwmmwIlzHy0WNaK+R
14thkX9sq9MWp0Jlq7okFmi7Zv3WWD99BMk2XG3JyqiFLxABfgRT3ay3YKlDVdGR7HIOaudpYFLV
t/TaZ/dB1QTcCpBiHF4J8NLpRZA7GEIIB9B3lwHBpW0htmFpAcYcNc4tyySptgdQ7rLeCroMmRP2
gW2x9MKCda7NX7ifCPBjqOpKtRxB13CibLoMk71VeauUt9VG3EyswIwc7ezvHs74KqlDIYSwB+YD
4UWAEdQeWuOWPjIoS/1FoT3RixEqX5kEj1mr74+vPCwXm4mKYcrmjLJt4U4iwI9A1bErpcPe6o0T
7Ny+8MhpbChK3GXd6bQI1+V7tIQ198FaOMDexv8NIZxj6/s6M/iGwGJIVjvuL79Z7WxsBgitrcwU
b6HerneeAnPZLj8fNmMLNsCyhbtZR4AfQVfU2ltZ2XiqpSsrhUgmHz0eKdR+qj89UO8I0HbQX4U9
evTh+1IqNxIcQjiJBVjWg9VXGBC5xNgUGaE2PKW43CYLJ9kusMAGWbDLdZZit8kapuuYKaPMWLif
XIb0GKjkVSOpk47pVS5wJZPTO2ptv1kBgd7S8XQ3tLqubj9qQTSI3a4Ho5Fj9iGEcIjVF9PBOio5
s6x7VnTnRxLa39WbuA3O8lHBGKFyi7E3ldYW6gwjB4sWvkAE+DHwLbqHSc3027V3uMBjCLqSeZMD
3RhqyRUa3I2oG5WYR57VsjoUQgh72HSoz66gnFzGy/B1S2n/+YaUAgFuDba5shUi7JE4bJEMU0tz
WShji7WEc2oXAf4iEeAH0bW1KvRSa6nOne84ES5+9wF192fGm5FX1j7bD3bjKR94ocQhhHAGbAdX
HFmBbUoQYMDEtAcse4N1qXRMFRBysR6vdpreFWrL1aEDyAtfIAJ8J8dfW1dPb8lmU9WTrVN91ChR
e/dFa2hZmosX7A2QFgUOIVwBM77ccWPtYbLuyzuRqd3W2/XHqrRWmxJgWyEEuES6LFVT4bJaExWs
gwELF+4lAnwv0/dWVbBrY1VPMkcQwXXNdsQ521rnb8oFLgG23Lb+6u1mFP0NIVyBRdbDyzIduLm1
rmTrG3NgarTZrdb/PNK8RoLLRJFVubPZWlBJmDFnjfe0DV8hAnwv8/dGyHWR+ks1Zu90BxVQfVeY
2RV+VPcp5E0rsJc3W4AdKBHutBBC+BTmelnPjD0R67VluD1b82/9scPiuAyTwrZQpM9mi8DAkVNJ
i2D4EhHgr+IKPOooAZJIr5CrKZ1NNQQXtf4q0K0CdVajYeCZu28IBFgvlmV1ywohhM9guNmvrbrv
8nvpxG/b3sjc4A2ju/8YXlO8bJONUAXamhHyFhQiMt7GacPEhS8RAb6Tva+tqmQnVUVl10lE1Ahw
gomqQTiJl1oBEzRqGIwWlfvbL1S42lUIIXyCuuwMQqujz+DZarvl7VG3Gpdby8TYEnHrnxqEwwRN
b21trBxavDugrWPGJ3V6+BoR4K/Q392okIOqoVRQp7NzVXVKvyvR7YXr9gAveDQmv04zFQohhMZT
WQw4S39lItg4+m+Nu8t1RmV3bHY8GjcsEQHeZaI6yYaqQn47PBK6JEXCl1hHgL/A+O4Oq6LDldAV
d8QK9hVBgWtkSH6wR6Atr9qel1nlRINDCEswIVxTgUGRGWFETUlbeb4ffXOrYX7ENCu82Go37BUR
Iel2AhunzwXbpLlYuJ94wHdTXxw11TVx+T1WVe2IcMVlqzBzv6ME21oGjR+8q0uQLqtrlYgAhxCW
yI7QlZf+rliDRZ9eRmWzsbkYgjso44MpcmDsoKwVNsqOsqOVMl62X8OyhS8RAf4ifV/nqrITnvCt
FOVVN1IxNqx+qPTKc0OpTivaKj4X4BBCWOJLjmQctLGVkF1Z+zokIlyihEFiKFq6SrCcYJsptvUa
CdrLsPn+fWW7lFDmay5VmaSE+4kAf5Guh9TEmVFTCXsapnDVda/SJTh2U/4vXVY1E2srm3aDl1Lb
4QhwCOGIlQwNZkS+b79whrnJHhZjVaJregGWmBMxVh0s1qstBqrsWFkyzFZH2TdTXriHCPAjcH2c
KqXr61xnvRDRKYI538r2+I88YGZq1HRoJqCWZDE+UlkSnFqliqNSIYR3pC7wXXORL2uukGA2yrEG
15BcsQgWflzqkGPn/lt/jHnjslxlzGzJ5pjZj4XbiAA/gIOv8Lh+8hrVnubhKAKskLutiCr9VN4M
SB/rr4nehhBOwSVILLnyLDAXV8j9rY48m3rG7z6z/ytkkvY02nfrc4KNmE0ZzGmDg2i4iayCfjzj
G532BKricjEAAuwfxZSutoL4uqEwYuTxozMCHAUOIZzCc1m+6yQzv5ZfevJygTEmLa61XYBx8q62
xmm+TgmJLhPmregyHXN8zgy3Ew/4gXTVPPGNdq0W9E09J0yENO5YwyiR2tBKDYbr6VlJUa2qGHKs
9AqEEMICmYy6D9Z6vZIdkfZahW1a1Ktvc3ME6eMtu8WWQC/Z8rbM14CURTT6+0UiwI/C32N/mcvv
tMKjIrMIizthtQZXilsJXdUei1ZvdlZaRVf9eGDnhRDCAfJ6GXb2nSc9AF1jaVzc+LFdbacZ3okh
pcMuVYRiLBwd2cKWio2Z04o6QbiXCPCjWH6PixpKkJf2VVfpV1a0K/LmH2pLQ6nJYL3VdR2jzUgu
eQ6hwKJyQgih4KZXjDpLQnkAA5aE64HLfCC+NfU1sEUqsEvDHLERk/5qVyZqptIX7MfCbUSAvwF9
xVVrXVc99fuv2wNx7lUjbfWNa7QTtB+0uPW3RLeEV1vvQwhhYNFlEhildZghNZkTRteWl/8qoLcN
EhAY75kSZe+htgNnzOxFwo1EgJ+Lv11tujpX+yDNozz1w1M6GYPmqnkE2NqLDqsF2fcVS9GNAIcQ
9uCuV3TdLbQSYEkwlsI+cAkwHX+bIQxRvU0bpwZzxY6Xiw0WoWUy0Q6EO4gA34Wd2P26txfuN3W4
IrWhdfAYzqrcLgDobkluI4lVnO0Q4BOyGx0OIRTutdOFx8LgAitBxqMMiG2OGD4wBmh/P2GT1FKt
DTaqWAT30vdzwo1EgO/CAuzqOnPwRXaUiuzq3BH6p77snVilbHwdEgNIOMF0XhVBghlCGjJ7LLcR
4BBCgQDj7jKPxSIsXGCMBx35vgvHeu3J4CVOH4w5MVumThvR3gz2wstIuJFcB3w/1LwaTybS+yOW
/UiHuRUcB/cgNCkWYFYuMotTzyek7dgVNrMjHEIIh7QAf6w3tQbLAkw6CizhtfR6g8lxyIE9JjNW
edpU9ARzzvky4XPiAX8R1VLvTnyNnTRnVaVmx5ZLBliKxRSwWo+v2qsRaFpPCXAL7+wIhxDCEfi7
shJ4v1gPS3AbDU8C2+gMxnqsOUWUJpehsq3yOzyXCPBDqOt6T0I9Zjc2vuNbvdQQfGN0eb51Ezm0
l4uR1n1h0uT4LvQ3WhxCOACPd2ebwUAaw2lz790CjL2ZaAXutCmr9RfrVGkVDc8jAnwXfGmffnGj
gOuxJdp1vF5k0xCIlAyriDqva7WeujkWfdpqQTSiWXYjwCGEBTIJfR8ONFjSS2QWYKmyjItsTMmu
WApwWSTBHLANlk0XqR0LzyMCfC+qoJcZBVzDK0SghnqqinedR4Z7XnjtO7lye2h6sTjCJmPQIYSz
yEDIXGhDt92mg6UkWA2vJ+FOWBLdMfQ8wATZGA3KTpFQiR0NTyMCfIlLNXCRdarUVHu1U7AiXa8r
gV0NR0t8WZH1b0c7of0UW49E2+ON/IYQzmGbgdzu1HfHG1ZMP8wLMyPcTwM+kN/CdmhgKyUILePh
WWQV9EWOvpyR0PuD/EXUlddxK2zlaEt1p27j+3LTc9dz5VNkt1r/43meTOLQl/VSrGpgalwR4RDC
KXaYDMbO8H3tAyO9FmXvV74S+KQAC9sgmAzYiIdnEw/4Ni5/W3OuQh0h5LpMvKp1Ja23yC3CS9p2
p2x1VdV+LLxex+gG1G0shBBOsPrYblkHjdeL3tojtgq7C086Twuubv5lbLLA1qqC4YlEgE/yyZdy
OlupzOQyp1sqW7haVwyX1zE2Cv7bbK3AytiqF9sX/3pPV5YVjTSnEEI4Dz12CbCFtwSY/rs0GIvi
xK2H2ZbXA5+m7dRyF55IBPgUm3pk7x7+ni5+Ward27q5hgeWK7GVmLFmEgtnVwmeHsbHrdWM3Hbw
exXerjd+OoMaz4e6tyGEcAbpr3X2YyVbUaPOjKOVKUGe5QKzDqvMD5zQYCdhk06auVNp4ctEgE+x
2e3u+Fq4qlcS3DeabFqA//lKIyLsjEPyfP0IT56IpAM3NeBMi1mvVzsviZYY06d1RgghHEI/3XLr
GSueLU6K3rjA9o9lSBiFLg3WZinAU1gBG6sFI+E4JzyCCPAx+kZOucCX8JdI/eXZ1wssv86s5VbU
Y1fzqvAKqIG4b7rlUWLyhy20bj2MKvGWAKszGwEOIZzEK688XMYkMLbCs8HWXWU7bYV3MPnA2o/g
DClttgadsEgJDyUCfAK+knu+FmR0d6DclmBgxlfRpfiqxnuIyNqs5qONL/1Vs1F7Kclly4ROBDiE
cIwsgzrvFuBS2tlWoMAOYE/aAUZ6S34rvBiYdqCs1cSRJIeHEgH+lOUXdPbLcj1l/LmWYc04umFq
eAiwFVhh5/As/g/fp8a4F8vl9CvGjYBt3N8QwllkdpjzBVuLyWDQcbeF2THLhd4CW7/BIjyDUVrg
lMPE8DhyHfC1+F6SB/I611cyWNK8ZiK30xYhbrMxxNf7Oc7DwhT0/DGrnunI+j42NKVIbwjhMqvt
Zu0LJizAc4edZVkVZgZY1mYMQqPCYlbeskmO2l7NkHLoVITHEQ/4WizA51EdZhbXwtoJzfwFu36z
YeeAWwMZzDr7HhwlwRZgVlFEgUMIFxlTVKuyGBXG7VWMdwkwiivptdWpcNsfDJFoyyTaXIGjn5i+
8AUiwNfiinn4ZS3ElRIdNiOyqNCq9/9c9VXriZJVxym09TQw+osrrIZT7cld2hBCOM1qume8dLYE
1wKM9fBTGRz3w08twNbfMkNg31jYHkEZq/AtRIA/ZfEFXaqcKGkHxWFFluK6crO8mt2I9o6AR6C3
fni2R5O4eA8dDiGEsyxHyXz1b837shwLi1KCzCMJW3/RYVmc5Vtgoypky7VnvcLTiABfy2ffEzW4
g7Cvv7UMi4XQnix29hBfqj1p6+6wqoFYirmxeoagQwiX2LcQuL3uvbPyWa92gD+43UD5vd7Y7njf
O8yV922jbLQwUZ4cyxj0s4gAX0lVUVfKS4zco1Ku9RXUzjW9qjfV3RHrroqpE8tUMJPAPZwUQgin
OTARMh9MXqnnztZRg/u7RoVbch0vMD8YJzbslyhFJWSXOh4eSwT4kDPfx0g+rKBnmIr3nuNcyanR
hJHdStHG3VLmfhmilg9cy7DozkaAQwg30N4v49Daggep52VYSK/3S8quYZSOUKbeHREnioR7iQBf
yfQ1nfm+qgIDgeNCQ2q9dbw9XyuxGwUazAg0A9GeyQkhhDsYyzclvzIlTGWpR9+ii/iixouofWIo
Y7UH2b6MciCLFR5FBPiAc1/HZ1/T6bq7n6gKzvXw1HPVeq8+/LfhLun1SAZui+WLCDx2FEIIdzIW
P7MSa2f9pV9v2UVoPdk1BNjYG8AZOIR760Zzn0UE+JBPv48zBRZiuyjhSt15hMvtpUjVfOfpRw1B
/ws3nRBC+Br2esugeIcIl+BieLA9frf8lhly4IhTaeFRRICvY54Dmb+vverawjqFa0OkRNcZHFw5
NavSBRRm+refZRJCCF9Dji+vEePutn4ovyVXG/f5hwCXXcIsOXhAFmA9kQjw/QxVBcvqovJSlQej
VleKK7leQ5bZbLhTzY5O67TuKsPQIYS7sfXwEiz2XNLIAHQJcHu/DEdjjwTGSyjNRmoJhcKziAB/
gUtfncV1ZhGz8Fat7/T11kNEWx5G2Le1Yc6GfREtDiGc5NA2LOI8jLAE2PbFAtuDzhXuiHborEPY
J4zSxNJ07eeErxMBvp+L1fFMv7ESrcAMPLvil9KyXAIBxvXl+vkhwMSyIjqEcIrx3NIDWAQ93wVL
KAmDY6MzAgStuGwtwNgm78pO9T48jQjwzFTvFlz8dipT21OlttOT+Z3bJ29Z9o6nN/AIQ7cRtRLa
TPVXGZFuXbYwdzCEEPY4YR1QW3XaPQvsfjwmxLellOpyCZLEFgVWHDFGcb0R1t9hrGobnkkEeOaE
AF/+cqbcE0cuBLioMqNqe4cMb9VPrfbi/moLMHewcbojcYBDCMfYcpQAzzZixeP5sRvTvfT0HuLL
0Fqpre85YFcYHZZJWmAjFb6BCPDdnP3i6uldXuW8V2YZUc52R8Jmt8PXVSuS5HZTcquhGXV4blsh
hCDGupBprmqC2/kgvypQ+uvEWoNlp7gHn6dlWY4uFLhMFbulyQrPIAJ8Nz2arIq6V0+ZXKn9nEF4
VOpCNV7Nwzen2WxXuLsMEbUAK1bSy5qs01M8IYR3BuOAaRgjZRMrKat0FmMyj52tfBGSBLdVt57g
XwLcNwcyB7as9+FpRIDvZ/rmqLcdVBjhJbRc0L8td3g82Xqjur+p0SClMBWjt3TYbaZ8X+uvGtDo
6IYQwmDYBS7wrdCAuSx36HGC3aV3V16mpqW3toixg0UL8MKShe8gAvx16DR2x7G/TMeWXyweMKM+
XWq9/vhY/9vWgfRFa26GTm0tltjSee0ubggh7NOmofR3z0zI95VTbNEtF7g68dwHC8UtAW4mCW75
FbZQ4buIAF/g2q+GclV2GnxmS9jg+lK1W3+1lwB/4BUrD29YLQFvmIEjbSzGbkshhHABL8HyIHSr
MEPLLbv2f+X70qv31C+DzS3B3rAMq5ZizQo8jJSYQ+FZvJcA7z/V43Nu/m44YOMB5+WxaLHqdfUu
tdls3D1VpSfK048YEbL8qkH4tnHVmEII4SwMmaG5s72Q/PKS+Ao7wZ7NauNihbX6+uXBNqdXnt2E
iXjD38B7CTAju0/4e8cpVYO1oaPpSCWx227xjUntZNV85fhKJeq+O6JqK24OHj7q5hRCCOeRpWDB
SMc8JF3rOS3BtiOMQ6PBaKyMTY07e8PAGyEnyyAt3V8RBX4+byXAa4ZlVgfX5z4QfZW+vxUy7CcP
KoGYgkrpyu1avd6pI9BC7R7oxp3YGifK3G8I4RqkvDJpOLloLpKrkGycl3HKivCqRdFeBu21VzNe
rYWdQoTt/+6rwX4sPIH1OwmwKqF+VvZEH4+/yGmgmXnfkly6nd51jlPpe1p/aQS7LQPRak7VaY36
hhCupNxb7iSvFwPPMnGeB247gsnT5uNjK6HVZtJgdfolzDZEFcdC2UbNHETDo3krD3iDA6zKes2f
fNAX/JTF6A0hRzqFKk9Sl+iB59JfzwC7AUyjSCGEcB2oLDbNLrAMiWd/ncJAmjV4DEajvSttPOCM
3vIMmBZg0m41eeEBvJcAUy13u6d4wF70XN/l1I/shdASXk8OdwXnVnB2gYlYiBWlbdBYQgjhWpBY
e714wYgwPoZ1t1XXZeQDS459158SX9hwLUaNQbMKlBTbp/CdvNsiLFXKx88Bo6x+V8xbaMlVxXbd
7jtk2eNloQRpCLD2agzTQxlCCOEqvAha2it7YiW2+vrlyCjkwArRLQVmJyukUvZ/awzORqq9BJhD
4Wm8lwCvqaBfdYBPfWHLzuOQ4wXruu1zfbK6m56qqY4AvU/PF7vxuL2EEMI1cAUSg83SUdRUIcUY
g65kl5n21t12duX+ruj1M25t15hkXIb2GsL38F4C/O/fzuO/X+Fk/dxLk86WszsxXX+M1lLj6XiS
pHqv30i/ki8biAKHEG4AlcXX3a25xBILwsYer/1gFxq79nTRWr0xhSXBTpMTMIlvNPjbeDcB/vK4
yqm6Se3toKDEXKpC49mElLT6SoSJ4g07QvuYx4xCCOFzUNmdrAedehkQpdRNOEid7MkkwB5tZsJX
SosUG8agLck2ULZke/YsPJO3E+AvM2vrYOo3elu7yeUt6a0xaKMUxp/V73SfU9qs2q9G40USuQVl
COF6GHhm+ncl5bXj69ktvGBZlWFNul+/LdnF0bX0DoiRiB07Nm/hmbygAKuf16HncPSFzdraezH1
Iesa4GlIWpWc9Ve+YsB5NTrtRDWEPHwwhHA9dc0vSjuGnzEu8oBlYMqYzBallLbF1pGJ0t6o77fz
egLMQnyJWceezv7Xt1+DHXESE8+OIbJqItR4BZVUQ9GeyaHLmlHoEML1MNQss4HOeti5/F/EmHG1
yZqQXQLsAWjw6HPLMLYp3u8P8HICvHY38ONH/izV6dovZdm1WptKcn2XBDuuRrD1Yqy1G4gXMXZ7
CSGEyyC0mA2ZPDu/hkQ69LjG+walLgT2RqDAI2jbhOEK38zLCXDVP1XGr652vode7czmsDfZ8TUl
mP+FGo3WL7r2A5CyDDqEcD302qWr8nkZhybBQowhGfsqWPAAmBLggr1MUu3Cj/BqAlzPW6DyafsN
49D7VZdVzdWNHMnucc5l6Hay7qqSfD2we6BeiLjjAr4QQrgW2bm6jqK9XaRXYVziXhY94dtQWn6x
Uq3DZcKGhao9uQ6Ep/NqAswafHcArcCd+ER60Lmx1npplcOKdffSgus8Kr0Hfbyn7Uh8PRvDyolL
DrC85A6FEEIhAZb58ApoYghyTQbzrsSmb7iBCbL1wSgd0R5E+B5e7WlIFuBBX3z7fVClravSYMS1
v9vNuOtGLbmif8lrveMqYGaEeRQD7ea8/ipnl5tVhhAmsBeSWDrxGD2SPJMFqO9IHJQAFx54wxg1
WC7vl4nh6byaB+zBl5oAecRzB4+/nIspeL1yu6WsJI9rj1p/XbfVAAgA10v5xRiSBbjmcU6gVmU6
GkJ4d7jlJO7GB7fxUagStVOiNieuaLToCvvBpcCz8fLoXfhuXm8OmI6f3w/wgK+tk10MVeVJ+xvP
PuMJU8NV2efTuNJvtnVvaHIYfWYVhX/pk5cB06QQ4I4uOJEUQngHZBHax5Xe4nJ0ukCV6/4c+/hG
HJMC90KUifi+P8HLrYLuh+6bj6/9bfs9xCvxDLDXOmvrLkCdoqu3zqizbvsmHBtufuXpGtqHb+h6
hLuz0doQwhJP9JbHO9s855QwLyW52GJ83Ou3CPcAXfhJXm0OuAah6RB++W4cNV7TkaupA6pz2Z5w
JylEsvR0p6D7nzyaUK1lt97QjlhLcUJoS4FDCGFBu73asS2cQVJp877h2CG+rb/sMU62TeHHeDkP
mEFoS/CX10CjmB28Actt6a8E11uHYcODR9QQ+M6t7Vx+tN1Ki7kThwKnJ4FHswohhAk7uWz2DITT
5B0jx/umw88jLO2FNkr9Dj/C6wnwP5xKVhR/TYA3jNC0kN7MOM4C3CgJve2RH/qfjAJZgVkErebB
IzyvFdsri4UQXpOemyovmHd5wPY92JQu7xkKnN8S35Zf7V7O/v8tXlCAS/+ma4DupSZpO7LP9Hjf
c4zsAwFfnA7nmLUQUmDuxaHGUe3H72otIYRwDgSYLTqMyaD37pXRyG+lo78La7Ki+y/tnefWxj78
FC8pwF9E30h/KWe+m82l+1zORx8JMFQKDcEB9RM2dYGvn+OJAkeAQwifUQJs8XXH3Z6vAzYm3Fme
nAV+GgPe77A+4ceJAB9Bp/CTL4Vh4w4ewtgyu9qy2aPTt9UQuBaYK5foxK7lCvvKAXdnz3AhK4Tw
RpTYausVp0z61sSv305yqclkKEVGZxgerBCb8LNEgA8ZtfP898JADnQUFoVHcLFfnsqH6eS8PM0s
4aUVbTeTAFd7qRbWwUEEOIQASK9VFrG1AvNIBjm/KPFQ56XFWMnINHWvoAeyNHHhBiLAx/CNtCN7
klq4PB5ptKx8p1TbJxrpVl23ACJeE7HdorNqOzzShDazbDK9DyGEPSS7deNdrjmCUmCvP2VIzfq7
Z0JYBV1w1cWRrfrCZZuXzGW4RAT4NC2RpxQVDUWCR33tMto6tHcELu5Boo7ukSAvwZLfSx+2FPjw
ioIQQjgNEsuwM+6vBRj15a56ll4mhClUJdnIayj13fxTp//j6D6Bu48O3IxO3KFwIxHgC7iuHsNT
9MVBnrS2EpbJQ4AXqK76xblRYdoPN+DYrXmUIs0lhBCuwBLsuV734GWU7BDLjDALXOPQzhU7jE5z
QoBljY41+Toiv/cTAb6DcoAPLnSyWB9+mXuDOl1PaQAor3qqzCTvmP7VyXZbBbutnCMCHUKAyRZU
wPfx2aoTz7i0QIY9OewyIDNj8QXux7dvq7gr7sd9LnD09wtEgG/HQ9Bo5r4CT+Mw827/acGdoXZA
S1BnlVbDhtMhwovu6mmW7SmE8L7g4rK30eixZ89oIbyEFZrUmbeVd2jw8YSvrNldN8/32cK9RIDv
gJ4mollP9x1Ily2xquWVQFIHwPfeUAHmf9ly9S/tAwGmwTjs4aMLVIMKIbw1q50keLIHzP/2IPRO
adJe4zzJr9eZWCoHbZMWyDxt7hqCPlTycAsR4Hugp4kIs5Sqk9y3tMCSPBKXX+7aTwMjQDkVwvul
gdBXdUNS/DMBDiEELIdsxhgzY+WVevLocI08MwM8ddYJcQ3wYLZaXyfy8TUiwPegGiz9ZNh4+vbk
0CpcQzyL1OW3u0GbtcdT3qpB1CBRNZHesx46hBA+A33lxRvdFXZ7rb7sq1DJsHxba++gLFL4cSLA
d1B1WO6v9dTjzFJaJnIV0cYOsL/X9oUd1kb6TEBlefZvL5FwA2k+neSderUhhHem/F8LbDnAHj7D
/yWZIIXIEb7uAqNVuxj938LrPQ/4G0BHLb8ey1nvEF/hFqAIJSyz2rQzjPASQqKZQ66eaqmp3eAW
1t6dZ/KZQwjvDEIrsCLchKOjfg7DUoctxGMCGP110FbpS9QpHnCi9yYe8B1suKSdAWgkmDtIWlCr
z1nfpz1dYLGhK35FGbnmiM1m5xXQtKNuTd59qq/Vnz3F2YwQwqsheS3ntp58hARXhlNIskFwCYwS
qts8SIHDI4gA3wHDz5ZVTwOr6vsqAN+AVfUep9cuMkW9UFqCTRg2NBX0WxvaiV+0FTeXPQ94EZw5
mRhCeCcsudxJQGGWQ9sAVVabk72uPJo7Bp+LyUO4k2sOj7JcQQT4HuwCW4D/tQOMD1x+8MdWNU+Z
cnNVktXSEuOxvh/hVQKHr2k81lPGiui2LtW3s86zXziE8D7Y0iC6jDkz2KyoLYJNifcL+7AryV3i
WBule7hKgCMtnxMBvguPPjMAjcIy+2sRRoG5rxWjPHjHKigdJlodTtV7xqyJ6k3TqFYymg4tyQlX
wDhTCOEdYanzUGBP8yLBw4pQYLIjBBDghf4qyOqVGP7fQAT4LlSJpaVceYQHrCbQTrAF2Ev+x6Bz
jT7X9Uo4v+US0wJ4Cv8CK+otEiz2C99yZAjhz8Lt47mJLZdSqNlbf5nROjYfJMn4lPQWqC9zaBim
8MNEgO+DIWYWVP3zzd/oiuqNBH+4ZlPBuyBv4Q0yzO04UG8d2G1EuA9La+n4XvAs8YJDeEPk9WJv
vOkRaBag2IYsIUE/02OABb4BAnx0K8rwI0SA78OrqFyfWYVFO/AGMe58K69fijhBDjPlNwxf4wdL
uruh0FR06Ceae6TJ+/ErFDuE8PeRJZC90csj0ZJYbTEABxYCRYZZgDFZngWTNYoC/wYiwPcivaUK
q0Jbe5shwOUBW4Utvkgvmvtvu6rlijsevuBmUtCpvcGhPRJj2l8I4Q1Qd92mRhosq6GGzxaTcGwW
SEaArbp6YbDKLNkohR8mAnwXLKRaWX+5LXQpMN6v3tWxnG9Sae3lTuc19VtdVgR4fTAJzGKKq3Fz
CyG8IYxAY0fYeREW9uDIflRUOTi8UK6vaNO0HRdnhB8jAnwDc4+RNVZe2cy4MmNBqK82quyV6SuP
XHxTzxix/pZI+wJg1k/QPIbXq3ZykwB/Nl4dQnhNGHG20SFg4eWHDGcvYFR65ecwlPTWFnsE00rR
8GNEgL+GdbUeJ+g7a+yU5uHn6l1S2et2lJZsjxxJhWkapby0IPbuwF6pqd3j7VgI4b2wDeHSR/f8
6bpjDY7mgEFZW0bhYHjAWKbwO4gAfw2LbQ9Cqy3w1BGr7tr+cY1Euwx1f11jRtpO/quiHSphnXdC
gTl3Bq2OAxzCm8JNKKW2NfFlg0IiVH4xUndcqmHhtQdchmkiw9A/SwT4VvY7kBVDe1nXvK1HMcyF
qrqzUcpGqskdoH3JAI1DL1rSxF77uUwEOIQ3xUuuGH/e1o1wbUmwKQtj0p18DMx6+zGmgb0r09Tw
KJnwc0SAb2VRgeXZ1jSKarYUmMVWTu9UGIXXcoPXtAoWX61Xdb9WokshrXZ0HVcXDCG8GLIbOL51
Az6E11H2yvQbbFA+dr7msbTXuzZJxWE8fC8R4C/A8A1fH2/V8oNvchmVa0xvlY6rx43UhGglHkqa
oLksozVLfI74wCG8I5ZZC65sBINv5RHv9+WN9tyHUrao5Xf2EQbHKeE7iQB/ga2vRAJ84Q5OLCdb
uDp4jfJWn9Xq6+GhRaNxe1kmRGJDCIdIbGunjeQXlmbDWJM9Jl1LsIYAn7D2EYCfJAL8Fep2GwQW
3+IIMg6tMNvK9qJFHGDfhBJn+FTD6UAIIRxDv72DGJHj2/eQWyPUhJcCfEZsT6eG7yACfDctsCcg
ddT2Dgt5wGot6K+EV31XL2A8bD1uW+M9oXa2Fz/BZ/khhFdgzxbIXkyxocsW3kKBkt5pCPoUZ5LD
NxABvpu6vrepYE2o1Mrnwynhf3i+dFhLeQmpgfTMTbed0YJqVziyP8Ej5mg3t46FEF6bvbbOTNbh
QJqidNmxGdNdsJq2RfvIbC2H8K7nxEG5x/RtrCPA93GmKlORydpsdwpOYz6VtNkw7OyRaLUabaWs
KjgL6EkZJZFGVrFmEaO1nTwwhPDaYBiOe+ews6s83YTDQ3KnjRZQ4mbmiz1m5ufAhWuIB3wfR3Vv
+horgNqKZcdyo8bgRdB+fpJaDQ/z3HIbLbUUN6HeqEURmKE5TSJ7pNVubh2eOU4JIbwUaK9Nw0Fr
r2RMw3oW4Ev6K+t0lwL3fo87zvPGRIDvZ/7mFJrq7yLVFX9CQZ5dwsMIWQ/tHip6jFdcGmvx7cCC
g/bVkYM2d8gn2SGEP4/nsdTUae3LFo8ZsR1ZrH+GNkVLK2U2XA98kBa+gwjwo+j6u6jGPI+hGIl2
fcsHFnUzOd+UQ43IbWa0JO+GH7xsWSGEUKg/L6tRQY85OyiDYVMiCzM/CRguDg5v/j1i9jZqciMR
4K9y8P0to3srGwhvUF9Qu6F5wGrFY5H06ucDe1ip2pELHUBCZV/kiiIhhD8NhoKhZgfdja+wTIhT
Vn78Qg3FmTJFp8ns7U8QAX4Yx1/kQYVXbC3n1/KLv6uGwgVJs/B6h3NMQCjke3YsoaxbV0XP8Ul2
COE1wBpgEJDgxp14aN0dtCE6DebpconLfOXY9yUC/DA+/SJ5QhKSivtL62h97YEjxRBlBqlpSBbp
HTerdG7DvE4I4d2Z7QC6OyyGA5ZeYjyI0HO7Jb+fW/rLg9SX0LkjJPcQAf46132DcnRVvdc0C1/+
ywDzej17uOUYK3ddAlyLo9s9niAvIhxC2MeSWyFMi43JcgmWzNQVCnyvGmT0+k4iwE/iqCqz/GrD
MxtKZne79epj7ZtSugPLgmgPSTNNLJH1Q7ehmtSyx2sBPiPCZ5JDCC/DcSsvxe0IEixDwnMYFhJ8
lbqu73eCwz1EgJ+CvtQjAd7RFNb/NkwCtwDvNuirdRfPl0uU6LwivZJru8DdomZPmSQ03IEj4h2H
8F5YbbcLc2DroEQbnFl8ZwG+YPO3H3lC/3eSO2E9hCu+xC33plzLB+ZCYBzczfpjZRfYcosDrBBu
sDY4yhZgtSY3KTq0A7UvZZzU3y4eQngLsAU8Yk0CjEWwVfBeqVbfyQMWbYpkrs4arPX8iLfruMav
DmeJB/xYzldHWsJabYLbcHD3q+16wyA0AszY82qH8+s10bVSmqaEpzuEdqyN7ta10N85FEJ4J9Rd
x//1y/31BgNR0suW9Z+mbdFFeHTqLURAvkIE+IH0V3niGyWJFVeelfFsMF6uGw/zNRZa+7yOUmDr
ZqQkd2rVtirFTas3gw4uUkIIb0EpMGajBdhmwAmW3IILMBwoc3SRqy8H/tJFS6GIAD+ck7Vcaeud
nF6C+Ldyf+XrIrCormSWVrRGY92dVSLtiJVY5QdTzinks61I0W3O4RDC+0Crt/SiwCOBlFpy4ldp
r7hKMikz38TvApvMFn+dCPDj0Dd5rovJ2sLNrqZeGGAWm83uw89lQG99/a/3ajuWYwamPTpNbxZN
7vbFWHRL8T4R4BDeDVq9bAN9dBQYG0BQWICPmKzRZda7LIb+HiLAj8NdzQ4f4CrPk4/W0mGGmBkT
2q7Wa5xdNJj2olQuQGJwWq1IebQtvdm5TXWb8/akCIcQ3gkshzvnthKMm7nHrn1dg2QVbg+YcFmj
z2y+in7iLJ+zc5+dORwQAX4ii68WAaY56MVEsJ/WL1eYlrNFc+ULS5v/rdWA8JBpP9qoSU0Or9c9
twYrA//4FGeSQwivh5s7iksAT7ijMiPI6CG2RZ9Dwbt0IQJ8KxHgJzKqo/YO4fUitm4Ja2mxVVT6
6mcUKm2DIK/XtCM8Y4alJdKTs9sTw3BKgN344hmH8GZ4DBrlLQvhsIwMHX5sDUGPzl1v60+WHfYs
PI4I8AM4+xV2ja2qr/bA5MrOFxlpwzqsIZe4vfRYWYglgSaduWGEuHq1lKGhuadLC9sX4ErlHQEO
4a2Qu8uiTTV/WwC9BL38tbv6es/YHn0Oen1iFjha8XAiwA9gfIXHX+WUowB3weI+HBuJsDzYjWRW
nm9fXLTm/hzbNXPBXCSsViTlLTGV6g4Nxi12I1MDW9PkOt193tqPlBDCe8AqLFsL2wZbAXfn94eg
ZYzYXo3vHBSeTAT4AfRXeLJ2k+YMHF75wIS56SQXIklr/9Uw9If+DWvuJqcfCbMb0o5JYDUliXK7
tZZX8nCOUe6F3FYo+hvC21ECzPwVMdkQZoBbdfFlK1zYKp3wFQ5w0culPj1H+JwI8P3MV6x/UlHp
Su4+uLjOtXqzXe/Wuw83C0TYbWilZDcfRqcRXFY+b5UkNd4hwmSqhXldtJX6FEcCfLpYCOF1sPai
wETQX3X1W0GxN7wVt6hefZsNbNr6ohMc5XgAuRf0/ahKn+FEzm7FGDTtQntprK/8Xa+5J1Y1oZr5
reDag9DygVUMGeZq4XaLrcDndDUOcAjvh2wD9oKOedkGGZgS4FJdmSPvirZI13DrbSnDrcQDfgYn
Kvlmh8ushkHX1E4us73b3UZ9IMkrWlwd2A/WT7AEmqlf92tHxJm+NeWIsNnjOCWE8MLQ5KvZu9eO
DH94BZYXPhd7+nvW4J/I4OLI8EwiwDdx5Zd1qpg6k5JbVkG3C7yyAG8lzUphCVY5wPi9ytXWUaSX
ljUmgiW9pKDNp9Q2ChzCW4JFAJkHZNbrTaS2bPa2k3G6xpjJMHUoPIUI8EPp2l0dx/2arqz1bsNT
kBThIUhydVkELQd3tf7HoxlagaXKNKMSXLxjmhQJFbc37BHps2IbFQ7h3bDRYMpq5fXPngTe40B/
LzEXqnsGhWcRAX4Ai+raO+6qMTMiGwltTargCRvcWG3l/8odts+rVuSnNDD/qzwuSnJBpoNJYI20
Nx5sMvu+8AVlDiG8Jmr0dNxlDMYK6Ely5z0BG6DLuEwXvE6xw51EgB/Bye/wRCLer7TXXjAzwWo3
cmzXax4BLKUtv5jL6ndrQEjp06K3+MW0M0u2krR13Owp8L4chxBenLIb9MjV+Hd4v8f+7wDT0+bo
LIcFIsJPIwL8NNTv7FAFtJH/u/aYMjeJ27ImyxO+jPIw/lzPX2Akibt1tOQiwFz0qyhyXepaq7Aq
fEgEOIS3omaneEt/F+o7PN+B47ZIn3BYaFy8pPSI8UOJAN/N/jBzQ/Uc6YuBaAL0PVmApdd6IwmW
wlKvkVrahTSWBxFy0a/0VVpcMzoK6+UMhYe4MiZdoWNyN8oQ3orRHW//l+49JmXJnFAW6TIL58GM
o7T/5PiTVjGcJQJ8Pxe+ucpaFKDi68cdSUmwuql1URJFaC7adksq59Z+stqTtFdRyS3Na3ZucZM7
OCc2h/EQwitDVx0UVF9e5sRqe2YU+qLdGlxRpDkoud5df2gQEeDbuaYCH5UhgUsDWCHNo/jRXYnu
ymXdr6xxJCTYfm9N9trZrTXPik7aqsBCZqdkmLxk2MsJIbweshnuq+uHC5BYPcLOctvgABRljT7l
sNwyfvEc135AKCLAT0Bf6fytqil0SJrLkPN2jbO7Zn3/mvXPpPHaop0sxFrVUDTa6TfXDCun4y2p
Fde+4wNa41QoAhzCq4MpoKFry2CaPWDJ71KBLcClwm2K7uSrx5uFRXx7IsC3cdW3pbrfIbGs9B5z
1g/NRe1DvnCtwGJiWFHpbj1YjB6tp3kJ0LkdFwkjxG50VZB9SazKeO/QCE65IYRXxe6vzcSkvnvu
L9I7KXBbovBLiAA/g3P1nHVXagxcc/TBaDSXuVNU2qsdQtsPYNgy7YvCckEwsiwnWE1NSZ4TtkDv
i+uku3sCHEJ4bcoS0DWnG98K7ACiW6rrkClDdAv3HBOuJQJ8HQ/5ltbbqs5r7q/BVI3aimJ6+xbR
6sv6zlg8zGT0aXGEmQ72RUjosAOkI8SniPyG8EZUR10vmRBek//bO+vvJMNtim7gnmPCtUSAvxFJ
rX+46ZWvAmZAesPtoJ1QD12wuK59LRIaLD3FCfZ9sVBjlUNhSW9OKe6JpBDCC4IDjA3wDThE6fAs
vwsipr+OCPCjufR9SmPJlvj6jtCI8cZ3p0SL+xYdiK0aDw7vjkuAGYve4hojutp7SHqhvy3A+5J7
SpRDCC8HtgAJ3pXwWndLfGtr2R08YiQvIv5IIsCPZvF9Hn218n13NJS6JWVnb3eKSIC3qC3tiLtl
eaCZsWfGnOX3SoAJbcmitdUKrDOcyosih/CS4AK3/PLunZm0twPsyurcTwTjkUSAv5X1esdQEUuu
1h/bEuH1x9rXr/N8BuZ/lYLL66le/N8eikaEpcC7Lc7x2RlgE7EN4W2Q/vr+G/vvA2q0rYS4jdHd
RDIeRwT4gah6j5umHkMGLQMfmCq8lRJzQw4vW2QGWNorrdWPfGJtW4AlpgwwcWsslVEpBqpFtT1n
HgluJ+WelCG8PBgD38zWwntGf8v5rW3Zo/vRCb5+klBEgB+IKvcYVxb7X+z6wyPN5Pvez3jAa1ZO
bBmX/rDeMv3Lo5LqUiMaVz8EWGGlKdcs5PcMlR8BDuHlYXRsJSsy6a82IzTAN6i9t18nqvEgIsCP
xN8ltZ3d/MUS2siz9QXAkuBqH1t5wasdaotS+lkMpG83u5UfVGhHdkgtSUwQ7+QyK1FNrjNc7BAf
diI9hPBaMB7GEhIEd090B5gidt56V1bpqzzqPO9NBPj5zDV1s+bmkxZgbnxlL1jiO83srv9xFR8y
jcDiCA8llQBbd3dbppE/fFVScUpsI8AhvAc7ub8YlhLfYwl2n1+0Dos2Rl8myvEAIsDfiRrIjguR
PAm83v3bSGQlpbQh5oYZgXZj2kiQPdvrKeAtA9OMNEmAS6q5D2WNTrfO7omtHGoUOAIcwuuD8ZBh
aellx33mG1kZldB+eMCijVH4DUSAvxdpqmeA9a3zxXtlVTms0t+d3FwGpq2+8nRVliuBeWCDZ4VZ
irXCPSbZy6TPYcHucAjhVWEGmCWcFuBJZK3GuL7uxpP+cP93Io9W+AoR4G8G31Xeb1faNQK8Y/7X
3i+LnD0zrFIsxkJpPepMBhJMCUvwR12nRAus3R72lg8zIsghvBgMhG0R4BLXSWfLIeaOttru6XL1
/L/C3vE1qRbuJQL8QJZf5RyuUMfVMnbSWPDDgT3WvFZD8iSOhPWDO3IwMq0chNYdXAp5+TOBkXvJ
A0aDOxBCeFmYvtpukVhZkKLmfIG7/mB0MDadpHCbogpIlOeEz6iCnKJDvqqSUbtwJxHgB3L4VVbt
30tVlXV/UYmS1/V6tVM3Fd1lApgn9eML+/bPGzUafGGVwDd2Q1uphBSZK4m9eut6IschvB5MXPnW
tbIrDJthUoh6JQniisVZYiu0oB8QI90+sFQXqQ/ADfD5OzXcTgT4SVArLcC70T90bKDm8c/3hGa0
2fL6oUBdfvShVuT+rBxdZXOXaCZz8HxRbOWizje4uCoZhziEl0PWAINgaZW/u/pQz/xjy9ISTwq3
/NbWtPk5wlmde7bQHij+nkkL9xABfhajcq6nKZL5m1ZetQZWKUpgVZW9cnnL6LOVVrWbmR06uDQx
RdjbSVZ7o7tKOZrglcrqYpHhEF4I/F8ZC48/q4vOneR5rgu3FsDA2K2duVJawzcSAX429nUR3I4r
4iSjdsOtNRBbNacV1/ruWDmxo3tJppdTcbG9nGRuWMldK+l74gu7CX6qqdHcEF4Tz0Zx5eLGI2To
sfv2shu+1oI5KzzhJgL8+4gAPxvr71z3CbpJEF6Xp7vbMnJUzq98YaaA66ZZzPOqV6sSKxWSM+2y
OrhuJH0dUeAQXhLcX0ks5mStrvhWZsERlmuiyq2+bXGiwL+QCPBzsMBOsNKhK7+D/5jV5aYccmil
vequIsAeVK7n7aO+W5ZaKSIB3qw9/FwLsKTYDDGNG3FEYEN4S2wNSlo9YiYr4pFnLEspMWEHZHCw
OzH2v40I8HOYBpnNBoltnOPmwv2u/q3Xfk4DQ0hSVcktVyGVAEub16u+0J4LfykiXxgFZnX0uB/0
KQGOKIfw6khmS3CBma1/Mil4vvTpJwG234tvrJRI8G8jAvwMlt+pe55qGwNfhkRvVaLLPWrUUjyt
KzmVAKvnyrgzw84qIc31CmkuVGIomsuFCaHOkuJqhmMWeDkbHAEO4dWRByzN7TFoa63fSK767CPF
0lxjZi6NDbIlCr+ACPDNHH9hy5SjXNf4kVwj09qwwkoozFZluKxoJ3GVsK7XcoHxf7lt1lZtSV6v
HGHcYIVZDa1jfFnwWZ1VRjQ4hJdmR89dkjoEWHZkCnuIraPMXWFCZFpIqUsj2yKFnyUC/AhUyTvU
ri5Tu02F2KC7LsfGI8wVdJrUlDFlvaXHXBrMiJJvM+MRZ48804QAh5mVWsMHPoYTXbtI6wSfLq0O
IfwwmAb0dVbdprS3k9furqtJezWnx6H9aFQMD7f4afsTfoYI8ENY19oqfZ1W1U3LLpQk8wwkhz3r
K9xF5TI9RZHlutkz0rnjGl+VYe0VwivkG0ttpcF0Y9XuNjwRqQ8Y7Ism7Q097+ht6NgOhRB+KWrh
9n4xJBbcU3DpxD+utcCUtPHZfsj4YIO41R62qvyC8ANEgB/DeCRIq6te0/fK+LIHftT1JJW3olvm
ZWgR9FCluW5T6qJyJ5s1es3UMI6vZ4c95+tbQq+Z3VHaQiORWb0luhVHxRVk4MmRY06lTeiwuMAh
/HZ83w1Gm1uA+5EMR5Q94pY/ZZHo7Nth2Pi+9F5B7UNJC99KBPhBnP8aqf31qh2U28tiZq74/beS
18vlR1bXGn12r5WhI4SaHNZdsXraS7fkGvvKeyO19DItNciRQpozQggvim+zYYMh6JZzUz0L7pKK
yfJ4AxvK2Qwh4U6XA6GjnRu+kwjwQ1Dd7/34OtlXLS+m2k8W/jJVHteWlOqI7qTEHxTqrix3V1eB
GnjmuiS1N2IepN6fAWZ0GsGdkzoUCQ7hNfFiTGsw4uuXNt7uY/GtUNF7ZrhY5CmfmKG3yXaF7yMC
/BCoxGZPgMe4NOx9zbQECzArI3BrK0ld014dwUIrlZCoykfebX3LGznBUmMO4SgGoSd1Jc1aWykO
XSW9VxUKIfw+1Csf8itqN3QY1Z1x998WZkYx2R8GsXuNFl39aPB3EwF+CFd+ictiCnN3DYaU5dG2
C03rqRxl/VtrKylmUTQroFVmLRf4g/tGW3Eln+30suAKPW7Z3dPVvUgI4UWoq4pac0d4QnZkEcKq
7EGcbv1uIx/YV1ewyoRrhcM3EgH+OvOK52KvGznC7DdT7a7e6JbFzhtpKIuwpMWVoyzfDWuHA4zP
S9uQALuLiwDLH3b7qynfEmCuVHIU9iW3fOMQwmuxYtjYoL5DfGcRHgKMRcG2nKIsETs/l00KzFCb
zuHk8GzeXID9x3/1G/AM7oKlAI9g7adJ4bna/1Od54DVRx9W2x0zPNUx9fgyt55UB5eJX8lpr8Aa
wiq/l5HpFuDF0PQnRJhD+LvIQtjtra75LLwDbIl3bK6FM+FKdzQ8l/Wbe8CsLf6kel7xBe27wH1A
r8syJ+szLUNZdfD82GCn4ufyiG3ui2VlZe0VI0YKIsc4whMtpD3+zHB0EYEN4XVRl9wObz+CYYnV
GEviV1may3xeIjyB9/aAuZ62rqzthLtQZe/QgrVO3EExFRhtodZnqa9ZUa4HmBSYvPXqQx2DjxWr
E+3Soq4K1zMbuCapdLY0tqS3wu0Bd6QesXSOS3khhF/NCgdYtgvTMUTXe7uwMAyOjcxFdECHwnfy
3gLslQeM837pS6iq26cYVV1+awX2UVmXqPrOUzwd3X2svZK6TqXGw+osxqVbaxmJRo3xg5kt5h5Z
DEO38tYYdMnp2Le8TrEQwkuBAKO0sgdmVuBCpmZ+X4RjOhi+lbcW4I3FF3F73DXoc1Wfx5QXbH33
yQqr5E5urSd78ZbJs0+8k2NOGV8nvNlsV2t1E+QSrxmCxmfniqTV4k4c+hN8gRIRifRScyPAIbwk
HiQbYgt2fZ1SqRgj/7A5i+fAptUp4Xt5awFG0FqCv7T6fvEVLoKHi6ONxZdCFmquM8LDXXGPjf/t
nY2CqyoMhLe97Xn/R77zTQKi1f7vtt3N7FYgBLQIGYNoeUFNEDCsKZLV8YlbD/8d/PivuJhHf0W2
YlrKDC+j5BKi8bGoOCKCRMW/hcKvhAl4BNf2yb3eKt03GJ91wL1+9+05pcI34S8TME/gwsAm4eGG
7fdDbU635ycVCKHPA8/94gofRMu4vP/+7fkZbfnCkuLd5r1dE7A2isU4FJxrknZuSofZ6EKh8Nvg
KehkXJOsw5Ym5DrfifPkurt0E65N2hWejb+8CnoP75p++U/hT0DjIT88eyccxLKeYubhX10X4P2K
O8XCol5uA5t68X/hXjxeCHo21Ww33iQM8hFhJUadxIpogcsahULhpZAtSA8Yt9eLSxSNaeiGYF/o
l+0W/PP9GV8H758vfAf+sAcM0Ymy7AI/j4HP9HNhngkB7/7T1Sc8LNKzO+5fOGHxszjUbu/Rb+Rg
wPECDghYH09BW5ww+XanOLK2HOAT8VJQBFwovDtkGBr5Tpw7sG8zRY5NyVMMP8MAV6+glmh9F/4w
AZt4TXnm4QeXQmfH1QBw2LFWaQ4F/xInq6l42Hd//Kdx9B+vnVQlYl4FYlw7sWZTEy8J3GCOmIgH
ohET1HMov6i0UPidwAE2384pOADj2srY3KRsHZsZhe/H3yVg3nIB/4Lgs7vvc4xNOL5+Q1DnXkga
6PZq/T0jSYEneXj9M0/X81PBOjEHVjrDt7CwqFrHiLJC+cXhIU+Y83EDohVxoVD4dIiBxbzMQ+e0
s5+xmJCWpskydYLNjML34w97wDuY19RrH5hVUE+AhkTGGljfnNERyHiC3vd3D9A/g4TXwHE1K3o9
yiuOdc/+XWCRs4/yS74wVBtsfAW7rhJzoVD4WOSY5veQPBFt/OeXyxOzZDBnqzaeAjxzUQT8Svxh
AlZ3DeI1BQvft9LvtI2RqOtrAO33cOzXF6NBl7PcjtGw4B7vQQTN87+6TOBiQdwsKsY3ztGX43Dg
1yk2gbnpNXmhUPhQcGXO2hDuYdn7zR9Tg437hTySCxAJ1+3dl+IvEzD0BvF6oyDFNwG6jBZcb8eN
7u35IH2YBOcxIxGu6F+D5viPw2AyaQcB+5avjo1fYTjogsE/x5CMi2tMfCDglfvA7WJ5hnOEfC6v
UCi8HtyM4lEJMa2thUg3vAcvIWEW7nQiTli1RdcxdeGb8JcJWKyXc9CQ8F38S+eNDuyhMAb74e1a
X/9aPHQdFfZfolwNpMNuf+CGznG//+c3WIqA93KGRbAcH0uiveGZ4EayGoE6+IldicSs9AIrBHwO
IuzbChQKhZ+EF4bg7DbYmBg80YiBGWUnOJdX+Fn8YQJWx23ky+aedvB1Zi/oyFTNdGW5/8KvjWyN
jVFHLMrLsHjk95/8Xn5/gdwdl7e4xyZZffxS6CDhRpAagvaAGxR7DnU+raJCofBseM6LZyfiKeCl
ByvLsYHUi/cMFN4Df9oD9pNIdiTveQZJJcSRbfJnBa1KOblWzqTQ/WQ5vDyHpFHE3DPSr39+NRy/
0YTbK68Yko1Y+MRefeVxqEuHgSghzafxZjFwofCmwAQkAeMFz0zLEqPVyQBLEtHCy/GnCTieRMID
vulNL70j46l6AKyjX5qeUHSWEfdy61fsr4EkbdZLH3kCWPWyPIv8eAkWFI1oePeG7wMtCPh5tLn2
WHGhUHgHMPklcxD8K1uysEFjcp7TsC4t/Dz+NAHrSpDZZ0EsnLIHsO0Lg/kg8Uy0CFXCPWuryPRY
EsNyF9jLGeX9cq2Lq8uyxiNLoHMIQsrLJ4HNwVfjguo4uV0oFN4FGpnQL/xryFowaYZNuRsPFC08
hL89BY1bCf0qeEIzQMATze77Y00pmu9BnBvrrUS5X3EnJ8aShhhesS9yd9yvObDiEQ1u+epwYUZI
ecaQGX8iaRb/FgqvxtoolBVgeqw5wFgN25a5gXkCnl5h4QR/m4D1/WG2Z3Y1fsTI2JtIQZuKbjvJ
IbP3E0f2eXkaL5T5BSSnIVuNM5xgnlfWNYIIWN6xIgzKxcDsZOy8k1F7IigUCp8JPGBPj8VLN7Am
02V/w6nkdjyhisIl/HUCpg9n7Dk4pF+rmo/ZtknAfT+ZjHmjIGDRr5IS4eH++5JUru/OU+PaeLpZ
MbOrF2UtIFHKQifiHacFCoXCh4JX8+x5RsL0i3Vpl/ggrcsgmXDO1i2zzt9QKzwJf56Ab7jOu46q
d+nYClykdvCi1hFx31dibvru/CIsnjhifsk3iOX38rP8CngPpfxe1mMFk7alWI1XB0oefiR4QBFw
ofB74GckPP/M4k1FbFECZ0n2DKmeFLvK2hUeRBHwDbiOgdPxnTYZ9SPyA/y4ET989I/fYFCCVVUS
HMS+XwdVIxz9W/z5k8DwrldlafhFfGLgjKxybdFvofCbEIuw+jKs5aPAj+I6O1d4BoqAb8FVbXXy
lN2eW7iEjYDt/NojxsOFgHn/xv64/89vgubDkivPOh/FuEdeTcmwE5kefFc4VkC7sFEcWyj8Rqze
PsIofB10lW7+LV/1g/G3CTjuoDwTvng00WqTb6DciR/Nyc5kYwJGa+cf21cmt44lPYhk890erL+S
+6uRJiJmdtp3ekkROwQZx33hs3icm4vdC4VXYWX05VW5ruBxf21j1rCZUXgf/GkCXtw9eRiqbLrr
K2cWMgViTIunvaFJ3g4i9WrpI5e1sLGYeP/FQi5eYOl56FgEzeNIZl8pamOp5JToOB2stf6qUPhd
wAzIBuQEtAi425wF/rBp/xjs/iwB03kzehPOF5qWOYS7S2wnH3dRas+8tAJmkmPZNM//ilLFxqqB
F3OxJNpPIYl3eVz5wHs5fNvXv43EQ0r8zwl4hYEzXKB4uVD4CJwMVV+SyyiYf4FNSseUXGQIM8lp
duHH8Wc94KdPPgsMhUWtJHfTk0nt0SMJefJXTq5gGauc+R1+v5SD2zs8ZQDFsvwqB9yOmEafYjuR
NVPTrOGaoKGZsUsoAi4UPhOeFWNhCDN4J/xb+CjUIqwfwMT10+8S4r36GWA5tEruNaQOLIH2DzMo
GtzL8mcmqQGUq9HnTH7Fn2ko1mYlm25R6oNUW0xdKLwWizHINFhbgBX3gIuEPxZFwM9BtGIOBIL1
X/w6+iUbQNx62AcBM5h2nlAWuK/LDySZgXkRZbz5SoOQm76KekmWSFqEzIdMr8SS87sYqIFVYaFQ
+BAsRjBX3jIUEwEzU1ZW/ENRBPxURGOyLgKmHDk4uLkRMDd/edOVxpM83AN0zGCCbnkPx4FfScIh
Zr6ZG74mWVxgJp+CoyVS0gQcE89kEc4wik5zC4XCR6APXvMvzzrKYvBvcyLLYfvyoDFf9xoK34gi
4O+B11Qp3LPWWdRqoXo4z/wqFM8mXSqfu708UoBY7Ctlh7yLEr8XSFX6ZmDWY+kCWBLk+VKsHJ59
lHascPIMl/ILhcJbwdNjfsuefww1TAtTaGwfs+YPFi/cjiLg+3C51WLp1dFLrDRKcpz4GtMkuzd1
xvKsvPfLc8AiYhxcs7DfdxWOL6HdYVEuvw7s1c8SwM24vgse3aTVZUYRcKHwWfAiEEyEzUR4rZgL
TEyzS8nLPQxMz2gU3gRFwDfgtqait+MIR6lhJCQLewl0joj9gYlljSz9Q7gaWxCxYnBk41ffGVaI
Rsw9ExMH++mkhOVTcoHbMwqFwvvAE2E7rtJxf5mGDuMiCm70alsz2ZsJczouvAGKgK9Hm+65Ak0T
AoaH7fM2xESRvNivr50vYgVebKWhJeJlOZY8XZ5D4kEjpqqZaIYglc06LPOxCfOL3wf2jWEcZCQB
fpLhkm+7yD7RvlC8UCi8ADYHshq6Bk/2DXPCSs5mY1r4IJ5UTeEMioDvxJXN5tGiodEvTr0xlXMR
2+sJxxaiZnpJA8zuLwuvWIJ15G6wgHusyETASrIYOuIOjCTf2F6HpS68n9FCofAuaATMxTg3gzEn
2ngGerYa2tEhXXhHFAFfRvDlHCuiBZx/gDv9yqtRvVc4CXcaVUwwx9NHXyLgXHrlLTPNOfr8M0hy
i71CS9nxI0mRF+HdmJdf/2HDQqHwSnBlzEs4BKwFl/c2I9qKf7sT3LBMF94LRcDnodahq2dqwAUC
zlVXIuD90auhSTW4bGokRMBc0XKXd6dSftGkhxvrrvB8zY74w/ojediHL5yUvPEQ8BPwXfUWCoV7
oLEfkAXhpbUd8ovFx3PY1MysT+GdUAR8Hhutc0WjWWXPc77j9LM/kTXNSws88QuvMvnM47/cC7Z7
SyhaDjb2byCxchqK5ncY4F8Lw1M2mkf8EDrtag8ZKxQKbwD5v7kAC85NAxIYPWAIOlJFwO+LIuDv
xVHDhXDHj/3mSzhai/MDwNqKTnf/tbXMrKlilSMloFbezMGLoMWCStrppUYmqKFc3OFcKZ0M7MgT
OLPVQc0RKxQKbwCxrxdvcgt43277jtuA4sW8b4+/+2tIz8ZqO7Jm2RnMDTEf7TgbQcMnIqZYVOFc
Qo0sXRox+xyvvVLoN3Cw4MpK0LLIEbZWKrjSDCw9/i14DmD0jBYKhVeDt0DDvCzD2smAt5vAxhQr
fATKA34WVq4290wcx6uwSPJ6ykN/Fh7Pts1O775Y7CwBb5gTnx4pwMNIol1WZTFBLbbF3SUG8yqS
BGyChHJxfSHhcIWfBTzqjBYKhRfDC7DsAQPZjgwLH4ki4G+AxoNb1TduJwIWT8KzuMGHg/xfu7O6
lOWBJN7EwRUt7q6KqQIWWtnBPXodFlPBYmaVwR9VilwUgh29bfHneaz40k/1pwuFws2YhuCX+TYI
OF9+dZUFL45+T/xBAmb+JqOPYbMWVkWRuWcyOe7RiFHhMq+Xgme/msi3cfmtXz+FJG9Xw+r4j7dD
h/crilWMIdi8WwpBis6Fmj0u2USQkpuxTrT31VUoFJ4Fj/xA+xl+E/AtrHr6gFLhHfAnCfg5X3m7
98OmzuSNGk3NP8/Aama/zyqzkeHd+j6vBloQMKugIV5u9OzkAOcUs+TQpGecXQr9+Q1f+8kzQYZX
YFFRRoR1Zi4UCj+BgX9lA8y/GIZmWK58wfMNZF34OdQU9KOYOvZKS4oNY3j4xRq6fmUllgVg7xll
Ey+/wq+hxk3gcGvFu6y0EFejZBL0VHQMR1hYouDbaXgKX2gPmGVejVmlRcCFwqugoTgNwHh3bVJw
GpHR7pQx/zQUAX8L2uCQwwsB+82tAr+NNLwUi9u/Glvc+eXBIihWDq8k/EPK8bv7Hn4MQqauPQ6F
YVy2IIouCPhWTDsYtoVC4SVglE+D0DYB5xf8x88vXOn/Ft4URcDPw+ALt9g+POAd7iyrmr94FLhl
SrDnJ/p1DYsHLPrkdq9pVR8ztgjXDrCGnnKcZkwi+OcHgQeKzNln63ThNbhJuVAo/Cz6APWPteD8
TgSMNWkPUxQ+D0XAT8RKU/pnBkWJLKji5u+XF0U7a5cXt0ddxfJkLymGWnq24TL7USSlv5ijVkWO
Q7UhCnXrExLFEXaRR5GHUygU3gKs1Ywp6Jx/JpQLzFt+Cp+JIuDzuKd1xlmhvdddxeDxyPFz86qV
uD1YHizoROv/4D1JuP/LTWDx7BfOsag18oKA/TJK5qhj7tkFI3IzAZ+qw+S5t0Kh8DJMg5B3UKYZ
Sbu043HGgYDLmH8aioDPY5pWvgHjjBD0CTHKofWE0RczzhpGJMWbDC6/A1psSxRl06t51dwqBlba
dSQn5t1eP6AkDvYKatJtqE6xG9CLZESHcU81hULhe8CPHc0JOBh3nw9dFD4PRcDncV/rDL/Lyawx
hIj/KgKWP+zbwDi2FioQAfObC0xJh5sbxBcEq63pNhjRBD0RLDnm7jYXfT9hcjAZNaiYWjvur7pQ
KDyANqxz9pnr987ABj9KWPhIFAGfxQ3Puo96X/8ywqO+sGQQqWhZPOt3Y+ED85tHx70Gj9iYH/f0
uyeDU4NQg4AbsUoqVxeFzpWO8IpK608j9WpM+trHjHAHmi8UCq9EjkO4V/bI226XCPcHbErhA1EE
fAEzAj7LxkPeUQTMhLP41h4w5CluZcnEgfs2umY9MBF9ECcjZlaaZVjyZT2djKfLA8K+y9uAq4vL
zLR0sG1yZqPjhyC6XXi8nfkLhcLr4Rfz2L4o1BW8o4FygT8VRcCXMLaPSXUTw7zQv+N/B17orIEB
W4o2YwGjhw4Kh3/w7i5WWpl/IVvpyRX21DL0949XRCcLih7xfGFgiJIkxAu5N5ZcJ8srOdT1mtgT
HMHVpQuFwveBkYi9kHmwfQkvOKKA6/cy5J+IIuCLGEj3rAcszZ59/CfvVikePWIZ1UHky5DZ7ZUK
BVGo6HbHHWCRMgkxL0y9w2EOVrW3C/OaZpHA5WZGT0UnPEY3cSG7wRVKeahPgqd414VC4QEwyHl6
Yu746ro9Y8LCJS58CIqAL2B/we0V1lrw6Du9/4l5uTjl+lTDB49YDMdrr+BaSJe3RjP7LKr1Mmjx
Kwutkvc07jx3jRQJA1ES5Zsdzc1WHHEjZTZ1yFZx76KJ2PGN1RUKhWdDY/JgO1MvvvplKAK+jPHS
8nJrJV/zeK94mGeP9qJXmBiHGCfTPi6jihvEXLhC0NwQDgIkbMRKzK4uuR6HCEyRZseu5+1DoG5v
e21ItItIFAqFF4GL9WTeMte/C0XAF6DmEZOuXHduTUfnI0i8WpJS5lZ5uPJhd3t+euHLN3a5j8vy
Z+mYsZVvqo3RNvGpOVEi1kg7DXcHP/OAMOQczGztO9BLQrcc11QTRH9a8d17KhQK9wEHOPE0e33h
flrhR/DnCfhSN5SDKo1Bq0U3C/Lz+gpEjBo0fgxJ5KkN94J9KStuNof6BdHc2pH2AZJt870Dx2VU
9G0XuKUJuGtMLSZgz1/fhawRuLKJgWH6jBYKhVeB6+DmAuRvuTx8w3cvoxTTcoVXojzg26DWWvGG
Z2CtogJcYN+5Fa1xW5f5ZjvCinBbV4BVWYG1Y+kzmZLmmJvBNZCrmFKUtZTqxZnEvad7Qb1Rs48r
pYVC4R3A6OwecNziepA5Y0pOw/3Zjy8Vm9yIIuA5ntganmUONiNQZzfD2ZllwrnRqj68lUOR4EAP
OBdL4JiSa9IWHEoumbPZLMuMWMlYiKhQ5bUfajnV3667UCh8MzQ2B6LERD1mpnj3PI4AePLvONQi
sRtRBHwJN7YPl6Z75q1ZeuUJXXMaYwh20/bgVc9KMAqYCPIzwM7XYINplZsDz4EK4f6Gnxr8S7Tl
p1JglrgKvVrq5Z1dQx0IpuCOyguFwsMY+Rdcum92HrEotCOlz0ER8I0oAr4Rl24B86bJvcZLvN/Z
rHYQrUGw6uzmXH4dGIaFeWFj/csD1iiD4KTvxVlwXlCiZJQkQyypmpIxnaOPgRh426VXoHGrDky7
IKJtE3pPsXH6looLhcJTMExAC4+xrxD3wQxG/VMp8+GD+2soAr4V5x8L3h/iBwf/+09s2VkTXsP1
3ePsJt+KNAk8Cc2bOEINRxSSNgNTCE6Mmky/ZmmUOisCipk+bweF+EQF7NN7tljwAUy4bx+FQuF+
fMU8cVrqRw32fuLfQMqfgiLgG/HHCPgZX1Z1bHcz0XOswdpDpJ5gFr+aS5XmVTbxWJIJLt/0HMuh
YdjgWmmqoBlXAflmRWLehoCUiwtJwBDorRhL4KlDw46ycbXEhn0VCoUfxVesfH4Sue2CgBsNH587
B124DeUB3wG/1Wodas1djJc9jw7wRBK3fGFOyFW+rynZhMprsOLpIVZhSQgDSxTEa/bLJVnBv3Cg
PqbpqMGFQ0LR4OU1bNHnVIfR9pIF2K/+LSgUCq/Bc210ErCnn70pBnghioBvRbyB9UyryQOGnvf+
MSNRqxCOLJTrqWa7uRoC3AM2v33JA0YArSoPVZMqusGKREyLmTI1enBOWwpEcgaEsV6aRIYgy0TC
yJ00kVOx50Kh8CLwC+IjHnOFvTpUH4NIMcALUQR8K9z7r2i0nQYOjuxBbGwCFpdBuWx5EMD02/xL
XF7mneHgRrqQrGtAB7olFrCHnMTobaNR50a0w35sY9Fl5hyRqxoy4m2hUHgljmlSnoTmAicPlwf8
ShQB34V83+Qcc5EI+F+4tMwvi8vEgu7vIlqWaLHwinxGWJBmvDHLdAnDWmo6toZ1JISRUVu8eiO0
UJRCVmhQErRUhOtwpncQBXqxGc5WUSgUnotbCPgKcz5zgYVigBeiCPguQJ5bHTcniJj0FZHBldAZ
RAy/qsPv5AIf/zHr3G7a4nLqj8lniDW8Y2gQPnVFUgvec01AxS0Y4NqUTykqNILLYz/OPMVcJhUf
csYLhcJLsVwmtT//JMYlzJ8Dfva7sAo3oQj4PrCQ6swC/v1/e0hMg0fUFyupggp54kjsCvVqOyNE
JpYVQNHKUkpZ5lpCYCXTL6msf4bUYae9YtxsjiHSZuaTcoFJ7rqXWuw0o4VC4adwYqJ3WwR8pS2f
+b/lAL8URcB3Ie/W5i8pNPQ415jwrIdPMLAYDSqkx3tKWuXDhW00KkqNFVl+D4cqN29D2sjMqIpB
rU4gHgkx2dHbkSrR9r/rMTP33K6U6KW8h5PcqcBJXqFQ+CY83UVlBUpD+b+vRRHwPTD/6l9tN74V
fYqy/Fn93DwFlSaj4teqIA8m6T+oNwnRCk4zLODM4E0TfapoA/NGSGHTcMKCVJqJKWASdtKbzJ+0
Foja5xhl9StJhcIPYfUO8GNWm+cyTL9PfhFl4WYUAd+BvXjRzNh+TPAEYtD93i+cNB3ix5oHKUgx
M3CnSZMmKk5Qb6NNfRglLi01qM88GJsMA5HvGPUNgT4+ABfNVCo6ANadkmPWgKaTuas6hULhiVj1
Ua98EmlTSwwsy1K/RvhyFAHfAXdePNbj1hJ+pnaOcCojCOINgjP/iv92/CawcpPB4M544MjaTV9k
S1kIWLCEvFCilIMOFDICvyrVdkBVHLN3Se1CZkRgRNxQfJZukMzHRB1y79dUCoXCM7FqYh4lYGoo
y/8GKAK+HayvgtDYpmgJGvWQTAiR2oWFZF3IBAyRdQY0vwpwHCyHw6qYxJ6SVkXBz/ogI6SYlYmB
Xl1W5KBneuY79o4zTCUNeXSDyOUzPkIyrxzjyMYaCoXC92DjGSQ7r2W7Px5FwLeDFdCGSC1FS+x2
vPM8WDoJDqKL31yIkhJZGqMsolCbQ5MkJSBcYuZNV2JeFRVa0WWydstD0GGBQG1fsL5nv7W3BX0i
gVIn6Ty/gWsIB5EsFArfiw0Ts3/z1ctFK9ehCPh2ePo4yHV1dKhF+f0wea78+hE8mhSpNMRp9jMD
I4VjiZnTGrMFbbsk3Ci+7veMs7IBqCSoHVGkiIeqqvn6x1T2bq+KFMGrdk4H32ghWoErKhQKP4Mt
+8xvjr8xan77ShQB34x9rMGCE08IuDWmVxcyRETWYkVTpEqZ9eL39tk6JxdcJXEGBeeGfG+gXx5O
QiVkqEZKep3Mg5wjG6SYGojqw/u32CeXD1lDwzoBL0RUaFFsx0ihUHg2Nt+C9fbPDxWxXIMi4Dvg
Rfxm4RRMoDW5+mut6vleeBZ6M+XyiwwsYIKP9fHvEJqgY8CJJYPmkuwIKY1yJIJWDfSjdtMpIu8i
4pJZVQnY3lHfCaaOQ8vrQH8uEagvIhlkpbE/S07KFAqFJ2F1jg28wm7f4tfuN4+8MKAI+Ca0xrL/
u/EQ3fSaGrnAe9hK4+h43B1jrliRg59Pkle73x14WNiUFuNNzGb/GIJD6L8ZwUacIiGjrONGZETE
stTEeybRFEJABRO4opDCCFcZsWlLsXY8uSkUCt+Abp5PzfS5OehvMuo3EXC94uMaFAHfB1EY79oY
oYZ0Wx6OGfHjSvtYtMSboBXifeZLOEThvJbSXNzYTRHzZmwtNscpZa6kHuQgPFFnhQwf28iikR8K
wbuu19lcA1jmHQes2QURmfKJTdVmUS8Um3QKhcIz8QXL2pgM738O43KWgAufgiLg++AXmi+v8bIp
FcjLlfcLI+5hYJGUPVsTIndzzXUSwcRmTI82oC15gSYU3TVqdIQSVAGVenaazEi7fJSkFrbasxU5
CMf0r4P380QDKNoFEZsERNilPwhjE1cXKBQKhWeCYeU7wOF3jh7lFTa7zPpnoAj4W3D4d4y10rqE
hR9FWyx/ElfxLFI8jQSvmpTDdWXIJbdBcjEAEUGDqR8i/SMyi/NSaW4Pt2KGq1EQIRSNkJriXnDM
n0fxqDMxSykxpRVRIspQ0wAOsVAoPB1f60uwymT/HhQBP4DtpuNVlH7f5IFbvdz1Pez2omLYUB6w
XWBoC4YLwoTqIgVlJvMpCLnUocxBCvGalltGEG7yNV43uzA5kkyWBxTQEQAfhOsMTFFi3tsgol6g
r9Ek3sL+hULh2fjCOp9YmbLYvwhFwN+BHSutoGGzLXTLI8GmSlNvsGcMMbgzIhBao9AZA4r4gi/J
sBwapF6424zYydGCIFYCfaxPaWW5cNIvjwNHfaBHIjYlAxxR1qy6TLlNZapjjg1xoVC4DA03jazV
lUw5J+144bNRBPwd2O+8FGv377j/D9+XB5b2zDYHjf7758AMBYUGuznkvRwOnZcshvtKySiDCBY0
AStleoUaQ8c0iVdKRP/O4kKg3YP++iJBOq4BEi3edh5oO6QoFZnSp3JEpgLLorNkoVC4AR6+3TqP
ZnpYjFzW+8NRBPxN2NGwx3j9I6+tab9NKMfTXAad2k9NYoNLYSwNOoXBXQ7RMbOGK03SWa7BavZ1
qcEqsDyMHMyMWIH2LxfcIgli750fY3eZzF0nIuVPKxWH0D52VjVcAAB2MUlEQVSZG1iUtWahULgH
DLg0JsKqma6F0B+PIuDvggYHL57UKFIL7/hxfjjM3qo3sQLarMXEcWMr8zAykpAxxcSj9lopJlXy
lUdNLpPxL140eTyK5INfTcUEEHAeTlRmREGKbTNlMqqPwvVQXLKUWxqxSdawTAunkp/Fq/dfKFyH
GN+XbPP0aNIMP2zSi0EeQBHwN2Lv3z5gkMTqK+67wncQ5EGUekxGSE6NhBXYOAlBwpAsoqYuqjFz
e4QGS1MGwuY9V0wz42Z7wjkomkx8471fChKvhBZyX07EnqlKKhmfQCmOx/XpX5JVtV7NJi4qFAoF
gTGf/HvGQG++7OKWN2YUXoki4O+EH6P3YGASGgIWCZp/xWfmVlGS+Q1AUITdR3UC7kMCe5uAVR0E
Lf3gQbNa1Gb+DAL2iza0I++AXVrEvWEekKJylWFHweZosXvz6xKq3AcQG2klZoRK0vVEslAo3A8N
VZmMMCPb2HCBf46Ai+kfRBHwtyPeWBmroOFP/x4RXJgcFhHSDDtHxItSMU2SiiguNFmwOlwaRBhF
koCBIqhag4Iho3hSLVIXQ4JGkKcyFeEVlScUSkVUSi0cJseELvV0KBuZ4yhRaaFQuAcMN12u24Cc
wevf93hxmrxwFkXA346vf7wUS5Sof5Y14gTDU2apxn0mzkhDb/o3W080LDQXVH3eziylogR1pJrr
QZmA0irEXeFWQEBV5cTE+MLUgdCuL5nakjuDS/nj/yil2KAZJUEE2mnkpg7yxFCqUCicwGNs8arb
VeTPAq8Y8cvs/QTImhV/PIQi4O/GjknfnVl47xe67hsjJQEbCsVqmTS/Qb6wtodiMq/nlvGk8Uih
46iBUpQJihWTxvhFBeJXuvvc1opyPoKEoi7mm84Uz2ME3ge7sJyDcV2m29AQgr1RawEusbbUbj2X
2EIrUygUGCwMyCt+T2gf78NdMeLfY9ej1qw77q4VHkER8HdDBGxn8MjTwNzWibVQQtKcA/47X0ki
NoJkTcAQL5zLkPRCLucHDzJYPWAtI23eUzYqaAf1qmgoCIqyX+Ddoi92tM9KQQ9+H5VVXH8CubPj
4CPLEmubfYX4JuwHNY7UuXG8K8jCj+MZdRQKL0WMIo2a6+aXf9SAF1s8GUXA3w1ewCHS9E3Zg11g
M2jQGKMNntKAMz8FYDk7mOhAvvAd/Ns+pjiHOWaD+ByqbqolCPp1IQLIMMY2UfbokkR971Za3lfs
n8eGUwPVlAJiJnQyVUw7ofpp/7EjNFy3ZKn6DfBeE9pTxgqFAR/VLWLAXE3A3+2FFj98K4qAvx97
nkLawbu8DwOB6Qt/E9YzOTLoYoMEn9F5CGA3aJGVUB6a1qT8jNeojH8ykwfFvyy9Dhpmjx7c5Hmf
cHyUlLIC3Gt9QocbxD0/lHwhIF3KmqinS3W7ztZlvxwBRw+5Z3GwDJ+DqTYfTsYLhQmf0yt0pIwp
oEEW9mPAmrH+XgNes8zfiyLgH4HIidUSIkRSsGJwGH4itMZzRZGMDQmD4Rh0621Igj4FEh62bNFE
SZlW4jkG7ZD5axFkr9G1sPdcIyWmpDoIEwc41Tgm+Jp8ti7jOtitMhWlnKjdrA1ZJ79nKcpYN54t
dh1NHiHQjjJ2D3rZXvMjtRUKLwdDL6DBc5ULfPoo0mTSyz1+dxQB/wi8/JnxoO2OqWHILImSkA2A
kOOmKQMRQgny0p+1lHLUTEl51xHEQy5Su6PUwR1n3wKGOKkTDX0csos25snxXhSikkelaFZOlrbS
47D8T5U41kKwdtCfM8OMkEbTFRB3zgIsGbsTPjYH/Yuc1l8ofBY8VDyQdG17DcWdPoo00O6TGXhZ
23Nr/4soAv4ZDK0sRvIrHcMFZaDhn8KP8NjEaGavkV+FTm9SaXQI0EMNOQRMJbz7iqePSdkN5l5t
UCbl+FMZ/hC1oR8HhURlYFjvgiIIURHwmpVmT7FbkbMrUEnt0HRtcqREaOgA2J8S/u+QRsauh+vO
kPodzXSh8NnQYInh7ynodQa93mg/17wXWTwbRcA/CUbT/uvfYS+6aoQEmUFPyZsafX7UyBQIkEJ6
zg06NKM5z1QHgscI8a7tCZuBY32UKhfsEMejv1YP7oriiCSLLQGEnQ8cW+x9ODDNccwBie18c1Q4
tMpwvSApWhVq99Y5gXadseuhElEojsWxEHEQKSkUEr68/BxgAhi4C8s8T5bZ/h0oAv4hRDPv/E4O
pqFH5hFpmU7B0T+7AH/CZYiJkcGnxeAZU98/16JUXwPV3jRpBlZVwb3aNo8YtlRFqAPXF9PLSjUq
zdJ72NxHqk8oRiHlk+K6wfujhKr0A8fN3rGbdpVBHb10wimEM+n1UI0Z9mrYiWWFQkD9Ifvg52Dj
3m+Z6t+HIuAfBc/Nyw02w5rZzBi+IRsEBvGZdWFgbUW/sKipTxjuECPqrNaJB86DS1FwFBo17AF7
StqlKeoS5kZ2TEXkRZ0SsIbLNeUSK3RzN0yIowuzNyVPqePqKu0qjSRjjq8fZILsqca74RpaXQRn
8Oi+Cp+ITzvrx7QWYGaeM8FPmxUb/w4UAT+GG1ovf5eQq9udSTQIw+QR7q+GHvyVji86ZmMTcCjb
74T8iPMJphsu8oN3reSYWJSJ5/jwHmromaxeQtWwpVLXxZ/FsWNlxJZDiP0pN7Q5YNUVAo4XmICh
7KgGxdhFEwXIiKIPIRvGNRMPaaHwsfgKexFYMTC6gJf0Ybv9cAWFJ6AI+Mewk/Ob0VicDGuIqQjN
XOIPu6pwGIHXShODrVMpYorDYBBdMk4wj7YSeRoY9oZ/oV57vun/un4qGpYfU9i1Zjpgp9b8iraP
wSVjT1YZIYlzcef7YUls9zn3MCsW3yQT94Ea85OCDAuFj8WlN1CuWey7rHiZ/tejCPg1ED2Kz5Le
TE5wl18qZepMJoZNFdrblbq52Mr6BCdCQh2uBrYMxlQFrkmneJ8kyh7Mo3jJWSrR6TECJaXEQSlO
WUpzPF4nvQbfR9ZeOeAU6YiSjOeFvO+WdS2iUMQNx2mZbAZHCoWPxjgBfQ66ss7YWZyx72X6X48i
4JdAfChqg1yhtTbyYF1J9A/vwmNyghXzMmOzH/8QDWlP9ZLI4jENjFooUjMcag8YJnUVkKrzl2xl
BhtiInn0lFCSYr420GFZFKUdE4v6UoLZbh89KlmR9zqR5jwSdTwGKohDFPSlHCYerrxQ+HFcy78y
IvvFM8Dxmp9AmfXPQBHwT4MVFAeTj1m2uYuwiBgMmtMG6rUHDKXJWYUJTZ8mLaKI5zQK2frdGFII
tjT9sQ/836wgSirIglTgWG4VkpmKKmZeRyiXGQKm+nC/WXDNcXKUu/zBRUooi5pN21SaRzjFvDP2
19M3oZXqhaOyofpC4SOh4ZRm4kro2jpjwvozw3BxGfl3RRHwT0NkCFXAaXYog4ChEJgLooOCFYHh
TILwX6yr0haWCSWYjtwYuqoi064piDvillJB5ARLKytKUa+qdL2kqR09FaEO+a9wqqv1u6+kR5Uc
OeCiwSGeL2QszbikCOaO2Ah2rLpMyN7lPejlWmVreyoULuGNus3X8rd9iV36xd3m9XpldOHjUAT8
48ArhM7Mo2Kv4GM40a6u+c4TveZBs2j3SO1bwoTOQBDepiqLKuBHxUzsFgQ3ZT1SIgMSRtGgdopT
bcBlYnfAXi7F2K1rFxDwORxMwFwvhBKJdlGguiIyIvbxPLuX9QnvZEwLH4zX9KOce272WGG+iuOs
hW70XAT8mSgC/nHszVkiKXEGNJcELM4VAbPyWTTXONL5REx7FEumRCvy7PpZaj0iqgsmtAqUKZhA
UVA1VIRqjHtypROrsQ3KSdU1WFefeIVH5nIg5l+eaoKJUWz8G2XjmE7h4wOZvhf+0hkNDN8ogkLh
zUG3PfAS13//VuaeT1/yvI6FBY/kOb/55Sa/OKejCPhFsNMIa+EQMxB5SDc4VR8YGJYMrxaONXOm
tomQMvpQtpNQVhW1eD7YTIvE5O19upqJrijsTYJY7NWPQTlGoP9QUCVQLDVBuu3uLwH7lALrrKNK
baL6jpRl6mFQG/thQ5CyEzxth4UPxTv2AA1DXot30NjphJmubKTvMc6fYNA/4Rh/BkXAL8BebAtH
6grXjqWsgzhNKejLdKkQdoPT5FWagU3JMLCVkwyDz4ws6jzYUYQOgZpqTaCOWgIJKy4LoLwwBQJR
9uRqsia0qFp/KuMce7loK+RwePUlE9EcLM7wF2+AdkEO1HQ97SP20rZgzLsNURLS1XEBJPF/gvv3
UvgleMcuwMAJMtof2+rn9HsjKOP821EE/PPYQ4S65OW1lBAapgFec479WzOffEszLgwMv9iLNXU6
G8aRspdlmSoRhg50aec0UiTRcF0CMthUu1WJDPkwQR01qzJFzaBOKOXCKkq17IkKXZWq53IBBe9B
e3Mt+i7+MYbchdEiEyf3yNU4LaF9+OiVQ+yeSguFH0euusIkXFhq9QyUoX9HFAH/PESz4iQ/xLcX
EcNmrC/GH4a6gr0QiYHxkIMGG3UGmZps9C8RnG3eg/FMvFKDDnnxpIpTZSNe1BxY4PLmQn8Eayil
yijqNEXaQixfEuwOKHPYTDxTkXcgff0DKmGhGZcVUbnJ8UlYVsVxw7t8f0KnkDu3UHgKntiDAxP9
euA3gpwHT8R8ldYN9T//UAodRcC34FltJZL6J/bVkIDOTLW9bpGmWMsTu3CeKE9EFjDRwoZOYBFM
p4pBecjQtCsqiqV2fFKUBVjezAj5QsIKoubkKyKh6XrhcRxbdkTtMhccJfd8YVVw9M9KeF/S3v2n
Y5ayK6cSjBaBP1Qa0Wej0a6/h0Jg+Wxn37Hnwl/CM3pQ65wenUJ7jBdTUIb4L6II+BXQsOP/66hA
FBt3fRLKEAN/sYQKcjNDmxjhNfEdEf5hHI1kqFHqZJr1pAhv+w1alOZGMEpWFNi6LsSSySBAmxgF
QhRlJ5RPHfaAEXERgPcrwlUFNkWScA0Bw6MLX+MFk+dDsrFBzUxo8VNs2ClyR2Zgon4/WOYVCm8E
Rob+R9+XDb+8bSwmoss2/3oUAT+AGXHeDKhR/JipDs6Hxilzz75ry+po06XnqFlZxYon06oIF9ZR
BMqECp2gVqmYclmKlawNbVMplJoEzDaKmMEccyUwvV3blk7ijl2Y3aSMzm7HKzQV+W+nCrRXssyI
Da6X9Fz8LFApNRuxj4gWCm8HZrtOzQZrsQwFC3tc5vl3owj4bjBv/BC47wOrCosrX/ma+Jsxw2vn
EqaMdZK+XWQGltCcaYJTqjOwYl4CLaljUQV82ojXbKpP/BtmraBZIbIjRSHtj7vN5rbwbmFg+74u
xAoydo///E8+srJxzK3mY+Ji4W5W3CwXR0RkhshZYLOSQuHHsGBfj3smoI1Tg7IwDIXfhiLgu7G7
9LNhF4FLe3o5DBh35OQyKvPgF88MUiKIOYhRlGeSgwyVVAoSDNaGZ4mIGYFiSFCVDhW72oDvJFMR
+/PMc3CwI6qLVWLUbBolD13VgH+NY8ybOhCbCZkYJ9cVKqZatQsl0ggJt7Fh1z4phiAJN/LYJ4LU
zKBQeAuc2gzs7/FoKzywbY+t24fCb0ER8L14RrtdrgPW/Pp3iF8zytEblJr0CL+JZ5I17WzCori9
Sjuy33MXOW4no0RR54hWDQpCkUSjZhWypncvTaX2u6/jfm/vV3qQsKrr/jX3g4NzIV/V5j+OzMfk
w29kSNgTNyHrmJWd8XpgFNy1n8Lfwrd3Eu+AQRgjeIl9G9rcY8pYYkqXM/wbUQR8H36q1cR8rMj6
jzdIiwCb7HBgmhrn02xoFxgfV1FoFHq132silh6caPZlAzU6JlZkI95MX9eMa35mrfOX9su8spc/
a7ee1xapciQHpqTRbrwOAf87iKRdY+xMMdkdH6MiMwKe4z46TpyUnQQDOT+yh0LhEXARqj6u0ejx
u4J+X/iEZQcCzrDwm1AE/ObY4bo6NO1Ztj/6UtpkaQJWVqNROBXqEyFCvzH97LIKTJl+XFcJ+6WQ
tmnXGeQHqXdPmDqmsU91orJ8/ohMzz97WZgCHSR3i4Psk3fN1xnaHBHLSOPFKf1cnNT7XTsqFLbh
y09PM19nbDfuSxV+IYqA3wJ9GUZgTHiBpDhQnrAYMZZLipURKh58GT4pjGlehVXNvqpXVCgRQKKE
ksG1xM2i5tlIWIqKayHF7rQj7SquxXU5QAUqoP/9HrKlvP9jolxgaTTvmDffcXD6jLS7xCO8uFG2
7VrhI7UXCo/DA2B5+9fDCcQDidBuurs/TMDbjnnh21EE/B5I3zbgU6KNB6IHpRh3v2emOZ9XkO9J
gA5syQAXY8Kbdkjt1kK40Ct8andUZZUSYEt9rGllMkdODhbuDMzO+isDKCiyNd3ahXYl+gTNYm7k
BofdUTp2HUy4gUaSdxHlWCjjDlRpcD5hyykUfhK92zEGGUQeQqfY8x5aiHhUOLkd/E1IW1J4CYqA
3wOnDwfu5V/2RZM7bgOL1fpd4NAnxc1YOA6/lkjzbmFQcyN5QcAsxyLL2d5aj9ltyikhLZOz1azj
V1TnriJCJhSskMIJCYPyMDqqhi2IXQsbDJzSpzJkr8zH0w6qUPg+nHQxpd35AjG8RXU3sN1PEXCG
hVegCPgtYIIN9GEnp3jXHhuMR554HZWT49DMWWaRIjF7t7jERER7EGPGoU1TZdKhbwujgwpT2IjR
VZocL92SrO9Ll+TascifiqRgnaiTfetI9vEYkuux7VFCdUsiQViiH0C3emkDW3KOdWmhcBdOepl7
XkgZEXHBvPvvZCbaeBIJPmDLHyhaeABFwG+B/UBz+TFYggzC4d39a79ZNgC+hFQV4JxChn7syCwJ
naLgRVOsvjJvwsmyDOEzU9L/uMdQJ7eKJY1MHgDOG9T7COFcP3xErQqlqS3czEH6eWLtx1cB4nhW
oPCXpmgLT2TDYUfslR0jadKWrWOysMkLhXM4309WOhIdLPmX4dWusPd5E2mGHNjKqengP4Yi4PfA
1ls9ckDGsozpR0MDdoSDLqHRmEYWF/JkP1RsnpRMH5WPJcqNoU2P6f9aAxXfUHYRCFkV69JdBzZa
hT3MbuZFatrNGhSRZOe1YoSTATIBE9vA+dzr0GqYqlLM/IskhGwzP8URFAp3wx1IGweWJHIiSBGu
ZNMHBn29Rx9Wu3//PPzmQ63wB1AE/B5gCWRGt7E//psp7bx2Q+RttsRf1cb+qFcmh8sqUuU9GswQ
myj1rwwcVO7P2jKgi9zEivMqvxYOzSeOQO5XTq4qs5WA52MqPLgXVudK/8hzUCz36tTWiPhqbGtf
rCd4NWJOBftHuZA4lkenLV56oXAG0Xs2QXbrYiM8uDwJFGCsMGh8OexEjipQzPs3UQTcMQ6H1+Di
AewXc9AxQ51TxPArji8jXOMeomWo82yQ/VPJEZKllB1UGFm0DfmGHrUhYTqZ0spx3WJmAmV25zfS
LZcQXrcbzj6++o/uDwz4/WBHsTfvkT1DwcQDUK62PqYQj7mFwpPgXkY3+6dRd2QdtEcX40UjJcZN
H0aNkge0vMKvRhFwwPc/p1milyHPxtZJ6auyAnBuv6eED8oEsuiQe8DQqARBsQoY7dCjGdgrn8Nj
VlJMLQ+c+WhqVyEF0g5WzfpzLzt+CQKDQWboOMZe+fBQg45Kleq6PwyRqm1cJ6ywXWPISQmsKF5E
87XZX5SHZkkNIKU9Dkc1yy4U7sHQyRyNXsa/lzdqsI3rr/olrDG9irLwx1AEbOwxyCKjtcb4wQYy
5Z3F11dGEiLSHLvcjk2Hljlp+72svWLoQ7o4tfHWd9+2JSMc5XjDJawpYVblQEh+Jeat2Vf/UjXh
hkz/InFVAffjIHNdoP1iiqC5tEcGyclUGVYiHD73gIpV1sWhYtfl3Z3WKMq3SuSc5hcKt6H3IfpV
xtSxNcaYgvZoa7dz+qCasEwX/giKgA1cRUbIq13giydD7DdHvBTLCALG5VTIOivX5l8p4quh2VZb
u1R4wWkWYuY53ny1eRy2G7HwyneYGwdrZ1gVqBdvWg6yq+bu10B/DtnhjO9MkZZ08Sz/JrSduUpF
+W/VzzCpobehcCotFC5h7DU8hactnZ4xmNe33i6QwiFv7iRfhdtLFF6MIuDAXqODUfJxrTEOU89B
wykHqLH783Ev1x88VESsyopHkyaaDg1SMOzc8RX6RXvcAg4ulhoI51cXANqnKlJMVsjcxuE0m2SB
H1NyMiGVpvAEqHbqglOp1nF268wJTiNvsHTAiaDwl6HuMPWIC31j6kwm3rjIVSgDMz3tPwdDyKG3
idsJuF0+Fz4HRcABuYSerX21C2xcfUo82zvTjrlfRDi+uVpKGygVEpaDyldkyh0n1sOcQLyo0Ztr
QSQINWX3Me2ajLAWbPTB7Y0odK724zmknV8EHdPPzRxhw4S4QkiZME9Z7QFQGzXkziJ2WmfukiCi
KZgQhQuFE1zqGNnxiIlyBQ1IX9xDwjlqFmARFtIcdPciabzwQSgCDuyZItL/27XG2UG14yZTxln+
xBYGJsJaqvRjtZF3CgPDkCHiFnFkeRfyW5WVl9ASeKrbGVZfwKW8x/jzbvCAFfV1DIbHW23CFtko
sUFsEbB9umTRRpznRVzd2BMJhfyvlJg0wjnWQYRkwkqpQuEMeo+hW7lXZVcn7PD42UIM1wlrY+8+
nNy6KrwHioAD8Ab89OLWuHX30K2GlpdGJb3qa6TfO6sMlxY3vxPqYrDLg220y39kzlVOkLPPHtuo
qriXUh+8tsv2h98PhodliGSWMEhsbJYQgady3aI+Ut7bBpxJ/jOPofC3ob5k5vUAcMdiAHBhzOBg
sPw8tl70U3gxioADdt9EYR/SGsNhcsysrYJQD/+OvA4jcxI7X3Xzqgw7uCffcEnJMwUSs6vnUYm4
iJ0D8J9ieJI406wBYwocmyPLw6Ks5vwyM41VGnCOI42LCg1zRfjdHHuCFLZM87SjFxi7ULgAd5/o
RHQmRFyCehpaWw+fBWZD7jsQP7dUeD8UASegp43h8c7wjV0mkCNJ/N/0uiyz5c6neC9OnF1+B5Nq
m5QqtMgksajNZBsjGyOGgFEI8INN4mCWXGNslPflBdG6tOG5KG4Nhx88x2XGC43LesakNhHrEt1M
ZsRxNvLaVwtMcIlC4QJ6N/mSZXHnYmJoxQUehtfTMK9zdg1deCMUAU/gFmZGPwZ+h46dUMUtYRWy
I0JE2p3d/HaZy2+AS1upBd/iy86g/DWrkR9lm4j1f9gfZGx46Bjq9XNdXPjb9OzEySZgZY4M1wjy
EqmRf0mnIxWDXXMHcyiLo2LvVrFWpk/uB89xKb/wt9Eu4OhQjkyP3mkE/Mw1vm9IFel+AIqAfwHM
rI1fodvFJXXQ80jAh/3e944tmCPuA/ecKBrxJaSqLOfG5vjlN0WLfY/aHUzbTA9vw5RNMNnluqyA
KS/jG4jsC0ojumrWPRRtUYcDAYNIzQ9vBUNtE1aFhb+I1uenbq20r0M1CnRN6qGzOvSeBobaMxj4
Ww+yAIqAfw2SJllmtXggMClymIfKtVhRYt4DsppEqLGCK4EAKneG1z+7AK+o1H5ZEq3s3e6f0uJc
ODhZDduThmlk3OQ/bVJwCquPZTaROl2VXSkxFJ2ynBsqoSd4L3xWsCEuFJb44kKze8LEYGAmfiDn
2fj6FmjkaeyJhYuB3x5FwL8H05k8zF9Y2Zh341TPKXcG52iTQzkURbJwrIoFL0PCisU7Pqy8++/I
EXAlIFqT+cG9lP3pzyQ5OMGqOCbyTI8dG+U7Il9b/jeUg21dcSCE65jq2dIoFBJfuvBUMN1qgXZ9
Baph8BNz0ExBQcD6S0nhXVEE/CDuaL7tIslgD2Ox6PF8lWdzM3PygBvCKVZ23AFmMpq5Z/xsDf42
w22vV58wQsqwSVqQ2CmnzSVKdYbsOC00INlUwRk1qnW+Kz9bnzDPv6Rd+LvwKghClkGEBP4V9cYs
0NYc9Jnr4BvBwszE0+osfA+KgH8nrjqrqcQwPWXYgEfwfnjhdIcLU6zVIgdYSRgY5zjMyc73v0TA
X/7pQxGwmK5PzYGz1JdZOKup5u2ZEkLPhX977WtlWp1nj2HEUu3KYoW/hKP9X6+48hvhuPNr8vWb
fvqbc3LYTHguAeP+wsMpKrwpioC/Dc8bUM/FdFgZgzaHyarFYZMc57Jm2TBti8LVEG//3l4KYv7l
rRzhDGOF/EP/DWfZL7JiM1M7UyQ/DiikxKZ25k136wqFB5G3XMLtpdOG/xvkywNJG1PQ15qLK9TM
vIHpiYjCW6II+NswH1HvSseJ07mqJjh73NAt3wwl7jQrPl107+X48luomB0TsNkX/5g7w2GtTMCR
WJLg6L9i14b8peqIMW+9UBOyAydIj5qFwr1gLb2u54KFhf4uGro/P87/6CqsK0rHW999I7juAr85
ioDP4Jmk+eYEPGLlSO3entK06TdmqdsHkEWZ3b9/h//8WLDZV7YgbIIIuJkrEP7nCQEqJ2lRG/Qs
vYRBMQj2pOJBISrOVKHwBNDZIWB6ujasiPSlZ9Aw/nGMjxwlS2yIJ1xUEIKAPQddLvB7I16TVFjF
NzbNT7f6Ov+PwuEhpUDLdBh3gaOWeVXxAJJkkYmDSwL+1ZW4ori/RLnVzGKtvhYr2DKm5hZEiQBf
wuzoxLU82RS13SqBhtW2FG7Ek6op/Aow10OPZaaZEcF76uLWC4H6XS7COp1zeh54AjAoWP8pK7wl
ygP+I9g6zcgjb9BYKMOo5s9MZpiAadEJ3mUKOjQ1+D368XePxFOAWfDzSEG8OAwTw8bWoWfxHHU+
RHeZ6lp5Sm2pR61rGpfrLxTOg1u+6kf9lZOMCvxff9hcYMSnEGZQL5vFKwEKb4Yi4D+GtZ9FCd91
CyysCp1UW2qH7wwDp6KfCBbf4usqRwSMVRJPyyDIGcYe2R3AUoma8XShQ8xWciJp/TOXx6Sd88gl
cHQDqUjMVjATp2g7VBCCe5BFH6ih8GP4mTeIqq+agBe/iKJOntj6Tf6O5ei6D1zuwsFi4KiQ3T6n
6sIzUQT8x3Dpd8lOyTjmlBOL2Ew5mNoxr6sWDyMQEXs6Oeaj/ZoCjBRLpMW9uk7HLAUhTlSWMagX
Bg6FECsWmStInU6v63BlTWFbrfCLwMvIf+BUq1fF7M5sZAjRzdXtlxnfAz+NbxZub4L3tvBuKAJ+
Gd6y4UeybRCbtsv2Ze6YjLyU8FYORZEpItr105BefiXPF2Mk5g0CxjQlJWLBbMd6AKQMEVuGXuYm
gXa4DkdCs2Uv1JoS6KnbETtZ4M66Ct8Muhzd8CvfjPF9cG9lh4yD+bIK5n98cyaHyALOWc+6GaqG
RRd2gGsO+q1RBHwT+n3QJ+N7qr2v1pVS8ZZJIqtVJvUO5kbGJtZc5cwXs9AHT0kf/EqO4F+8YF+j
mw1FhSKw4LDGZBbKpk35A0K7y4JKU2J1o+dPCIUHJyVX6i28J9TPvrj1uvs6/PddDBzdwfxL7+Zp
3+j9p1gdQ4EzWbfCyx79eWKlhWejCPgW8BsDn4Cnn1PmlDM6Ijm3Bd5mqHF/UCHFvUbr8M+MK3MA
94ZhMBw2F7ezpmGONPfaQ56yuxKRXoRc64Uim543oAs38q/FA0ULPwid5KPnXXxByMPp34HsSUzW
mIBhPSjfAwK0wWHMEgucy7sJeNwMsFoH/c4oAr4F+4trGE8wNu/HNTUHnO5tBmymL9Kc3klMzB9s
XYi5HbXHh5Ybwmty/VASDjJs7IloLFZSps1YAtNpcxYPJAXC1Onj/0z3YpGXWV3baGohjljbGPPU
TbizWOH7wUtgvtS7xImxmOF77gRHpV7SzxVmjoSZCxyjAUwxIRJtJD0TXObCwN81bVd4AoqAbwFv
tXlgpLxhU589pBnpAlmwscCYUJwkxEuJadCrCFxLDM8Acwgj4w2LluUnK6lmhRTNjWnLAMQL/cLA
doW9sjk0yfbH6lMZV9JUrDZDSIdSk8apcuHjoes3dSM6mPoc/U5XgBI//VS787hrc7s5er4HhT8e
Q126BpU7m38XgoHjblDhPVEEfAOggR/4NbGzeIvTFcybL8GaYHHItDFZm33h7UO+kIA/VodgcZRJ
JAg4eHPGghCuveAO5VoPg2d9xVLXJS010CAZuQ0ukvkpmuAarkTUX3h3cPvX6/9MwOqbe17PJhrO
/GfB9Yl/uQxVt29X6R4ChD3WsUgsx9JToEFmF7i84LdFEfANgEEuPsf3rfDofjnCWMCq/f5SDvAw
NGlc7Azj5rKM+utr53dD2xRiGPLB4CBj0bJpUbA9CzipD9QLSVsHQRCgHeIEOYgROk8bxP6fg8yW
/xAerqDwnfDkM3Mu//65h9Hx6JVfEPDev1P0NND3tMM2ODubTsP1hAF7Vs9YajwB0K8Z+Dsc7MIT
UAR8E3YPTUE/jB+mX3a3tsd+GBrZeW3f7nbZ9LRyytNWFKsoFmCHPRST8pFtFPPKB5aE9AoBK0pa
f8G/g5azzbUB2z8+Am5zFGzSEWhQo4PH8Gj5wreCvhYEzNo/pl20UYc8iCjV9VLrOfCC+nzHZICe
v4Rv9K5lDAN7Nft+7HgHnX1gf/fCu6EIuLCNWd+YaLUB8s3Js+6ap41xhoUYOwKXkzXA9zALyibA
28m/pmRmGExrbRMsiSNjleBf62TEiqkPJCAnYYnlEyyPoqlxLx4qXPhuHFkSJQJWPzEBq/Mxf8Ul
HxeOXP09yw9W/1RnaNegORJWEAzc8odwLLNd/B6Yek3A5QS/I4qA/zzcAc73AtsHbVI12HaaZ7Mo
ogqaEzxo+W5xJPGDRV3iPnskO7nGPAYscm2z0Bi0zm4IJDf5Rr4jzpj0lbJ2UGp8IivlI7xzu8nT
/zYWma50CAvvCrqMoF7lKWgRsHrb0f3QyxLcX5+zJvqLd3wsXj7ZdpDIFNK24LkNnxHbPvK94DYR
UEAspYV3QRHwW+DlJ2E6gIXlCMxkMCu/+zsT2rLFC/DMtr0iq9nwOO0X00Ngso1clQtQKq4KRCx7
GBsFjgpJwMm39oYzaqQRjDJOWhxyJx1LRL4qcDSyBoVWXccinfWeqBXeC+4wIl+HfgadhfeNgtwV
4+0yz/CBD3Kll++ezN6/hAaI8vxvLNWeT5HNBW6bFBfeA0XAP4Xf087JpNoSye9l0tWffYtwfgOs
wYqIwh0OLLflbBkVwSSYgZOIkzvFbxEjbulEuhjWgYIbRUbczDhFnDOhpa3rsG3ALDFgFK1kF94P
7k7uZOov6mD4gPudUupudNLoj+qk6n1Z5H5w73cgtujvW0xnBp7x7n7mOvt6tWOWuA9MMcG9NIGi
NRH9XigCLlwLWw1teI1GSGzCogOlSZETTDAJef9GiOQn7L5wRmQK4VPZRl+cB51ynw6qJao/c6Si
XslKJIKIG6QAnBjUmSDe/jfQcxwZ9LaLFD4I6ibuOTFXEi6gQLfSNR/XidE/oUk5ry7igolIXNsZ
Jqp1re77bZ75FOS03XuuSJsZW2feDCFby7kMjzGRsP74Lwp+KxQBFy4j+wh2g19T6rPPzZC0GHPQ
cC5JrEoswArt3RcPX3oVTNyOs2lEQzYRY8kmHV1vAE6yUmLXJlIYKmyDh1VrI2wgk5imc8OCjuIg
8Ig5slGm8EmY+oZOp3oWU8Rxh0Nsq06351mGPXDHVR9TkSwLsjtl6jzueSxiGDbm4DZJ9C3getmT
z8G+wkuf5CjMsCsC/qu478TDsAtI4Ok8Yopg1YgjyrghrpUD7AimDwb21KCqxFamV2urmcCP8cw0
uZ1jQyPMq5A/WThQsKxi+6wC1TGqhEuxieKFj4a7SLtPwSn1/V9OsDqcEv8dsHpc+yUT7SgzUTAF
/aOCV2B89qh39Q3M8yPFcJkhh1LgUo3XwARsH9gbM3A5we+C8oALwvWdoP+ecDMcjXsjmZf0WaNi
LSo/WBYv3iNm0ydLIBPpmBgYixcGszOrYhiLxs4pVJyP8iKwPqbV/zCqjGnYRsdPgXZGrZLlMoUZ
Xi024qJC4YVQTxAxuucoQVfhcg9ChXh26ohxHxYmDgbeRydwx/hCxjtnrzrJs2d/E9B6dv8VTMIe
80Vrw3zyerueq+HRNtKv8VidhWehCPgv46ZzH8rNaehWY7AdAg4t9ke5kLGtnKMYPhkC+FkhH4xc
UKypOCkUVmVLQrnoILBMBtJafEzMQb8thygRDCMbEsRPECXItcJUwjlkXY0bVAs/AnUNSNcEnOfn
yBQ0Md5HqY7oCWj33PydTZxE3wGhZPTj6xzg03dvRL2BCLUXh8IQHaAhwUUsQyMlc/Qhdye4++s7
wEHCbZu5hZeiCLhwHsv+kWldqAcDOx2x2CjQcEeaY9zWxQUUwtCyepi8ZiYhU2jPBAoHJquST0yb
yDRC2Kg5VGNjDhfSODpsiTms5Z05ZZmBtFdQ+Dz4yixegBVPIXmJFZRjBlav08VfOMB0zf0hrhfd
d3fuFGkQ97xa41JPmBvP4M+Z6CqohN3eJOCTCm6vcYFGuvoE98b/w/UWHkcRcOEixi7SLuK9NeV2
BAHLwinWRrcCL8wiQGg/2ELA0hhxKB+IL+ydQpIO9WdKJBr0aNJtUHmXVFSmV7DiaDan+Ewa1btK
fWybjSYqfCbUJXRdx8//6py6Xx1Eq3QN8Q75CvoNULohF4uOuotSYOKlr+PZN2WprrzCbFAt7tu9
hqswqMfYmOHGylbR3d9kYD4gswsvRBFw4QxmnYNE+Avp1aYLnEotsA1JQxL5XnYZM89BvLCwfwwJ
i4efAnOaFs2LkGikHRlCbCmmg2LeCCElHXoTnU7IyiPGFjgde0mRNk3BeYUPAyfx6+j5Y3UHeorJ
JnuNCVmb7KnRO02ijffo0YpGikh0ppXesHjxVWirMD52pLPKq0EBxsWM1ccr2buhg/LXT9gbdiTz
C69DEfCjUG8+vW79MGwefufRrtHMCzN5DOGWtahitpTESz6sAGerVNAwzBw20XYzKBcOnejWCIn+
nU9zB98GA1vFFtZ3hDHCYSHz09DEUYuQSRdpcmoLubeFD4P6A7PQvO3U3UFRoCiddS8+VQf6Uv9z
vzTUgRd9dw57yKJ0dQ76KxeRVOsyymsMCfkGhWZtFwh4GFIBOrV3Nfu9tedYFhi3sa5aApOl2MoD
DYWfRhHwo9gFiWTqM7EwFt2IJI8qFf+WOKpv7XEsCxEqzg0VBTPzwkU9+SqpQEYwSoiB3XL6g/b0
aUGS6gKNatkv5TAmzX3WhmqSgM2eyaQjklu1ExcK3XjeBJknLk9LFX4QjzW/Tia9QD1EG7qIT2+T
0eF0numGfbi2GR2j91r35tg0Ntz3oZAbAsnaWGnuZAyETazkhoiZc/3reCZedF19LD4AXysH604w
B6dC4VWo54AfRXpizTX8QJz0gEHQ7Im5M2N8wljgDgQjR26qkM6IMj0/IIFn5zBa3aQw4abWk5k0
E0YAkmsJk1IjAdzeLgYBW4R9RYYi2mGMvZ2h52RdWXNk4TKxt5VyhR9DnqK7wPmbLs7Evibifi/Y
3U8dTuMU4owu6BXRE5KZ3X09bUPvbt21UWxj7yafQC9fkWYIhuy5og8aQ8J1QsrQ2XNtf1rnjfDt
X9XsdgGOaVMM/GKUB/wgPB3KuJnNHL0PHjq9KrxeHjun0Rvrq/gPw9LMSzNasegKLwGiVrR7DF1d
F+cynMGEEeojRk1Z81QxrkQJwsS60fVBhFBwflpjwikeYof82d2d0HYFg6fqTbi9ROH5oEP4tq/7
BSGMwzKD6Kzqf+p8vk4eaXCahyWrkV8yaU41C4p0Ap5Kz0E/z1gEgSkx7HeJbkf0P1oSHXbGHgEu
sDARcI9uH1HhJ1AE/CDyoUN9fl9DTpfiyyt7vm/cDZN4ypmUuiXiel5X8VGVbWBM16c3bF8av3MG
E7D+JYZgTZiwbG7DdESrA0q0SPLnwIkLesz8pdQ7YpckLLoW0r6tQOFb8OV+kZ1Dia8v+Beft3Ex
PZqZZF8ENmKjH0YfHn4VIXvv4B+rdArPoF14biHofx3qvtGn6dUMjRBf3ul55EBMBu7gDTgi4efQ
e+F+FAE/CN+7MRN8alfeuCzXFT85E3NaKijCapS8iJ4VDmXQIjI5ahf8X4qR2LMIJgyjHWSazsQ5
wLIQm3OTYM2QCtkvxsoSHOiQhiA5dGLSgR0zS1onnOlrAJdPwXUI7RsLFZ4Ppi+iW7hf6lT+Yz5a
Pc4Tr97CatGn1RvVAbNTs6GXsqRKSAkR99oRFjZZjyy1FhiyG62uIK4U4iNY8Xy91yCuO1STqk2o
Ifro1ebxfRQeQBHwg2hTR5/7etVuchKjgYGFHcWDUAy7BaFi5XBrR9uiT0/a0ERJqsPxsLZFWAD8
CbGvpJCoeRPu89Zebm7ZOFAZZ4YA4wHlZnb8kxATmgwHShzINrJQdnIBlweZvgLFvO8CTiq9wt2C
zhJJrvkgIYdQLD1SKf8yf/4qQfTTg9dRubsiUI+3WF3d+cRzLHiui8HRMgQGRkY7+uBxKtDiJxlA
B86hxwcBCjOlZYlL0DcPiuVJJBrEtBshUfJvrbPwTBQBPwhfrgonw+9z4R5hQ9T7BtbFE2N2FWDh
3XjFkbFBv0VttHT5rRKTLJ5gEvsatJ55T2TmINIhZtvUgpNto5pIwJ91KKKd6pFJNje6TiJGxFKH
mLcNueNMFT4JOm9BXPQP//ACCXxc2FeXj20ORp1P9EuBY1JpdMmR24hGP5e4v5lD5SIialadEQ+Q
mDp/g/Y1TWp3nKhNkvZYXvxZooHWsk93cBHh9/qbOJbjRjAzs40L68KrUAT8GMIB1rDJwflRmIb0
shMoPRcppeGLOOUYhrBpkRawbT2V1grLZ7NnkU0BYjOwTMDEpGbFACla1RsjVBpcgo2E5lxLTcAp
CIRdXjAqal1mlYgKLk52pgufAq9g96Jn1kGrY3Ey1TsmAlYHtIPrHkv+8eufeLR116Hf5iZ5L/ss
nc1pY/+fZ3BOMcmIqdLOnhPmEnY8SXik0X/07fDWlxXo62RsG72MjptBpjQ1Bky82iQFE0vtwgvw
ewh4pa9/P7iDyYj5UA+4H/Sy7dbaUt+TNnY72y5MF+eBaRJO2UHGsn8hdCHbQZfxZbfdaCwBvKeP
mZHoxLyChViOKe0GlxJm10WV66JWhkAz6OFEs5bkGujIHLLiGDJZ+BjEAvhkFF/YcT9Yg1Kdj7kX
iemR0Q2J8PuD/JC+02CKsMh5uJL0VLRfvZECwLx0L3EFTnV79Rka8WYa+rqPPqUzcMHvqwp90dUj
GI8r3F7B088xiJwmpAq31jWUXvgu/B4Cfs336E8PZPq3Qq3LpDPGSFFbJZspCLWN+eRaA+uAeHxm
Q6Wbz2yuth0QYGCTZ7KjyTVFjmD+pJtSe6rkUhwN/StqZTjUpCotLLOTwbKNV60SDJxamZO6aJPy
tvAR+HI/CG+OBb5mF33oe7rWwwt2B5zYaacCU88VJhby/eLpet5dNRMRJJ8PvX0NU9W9nLcBx4fd
G2JW9eNGkqvX9PpSka8R4OvhJcY6OwGDKNU3NFEwsMLUL/w8agr6MexwxxgNfbT8ivZc+xJtnCov
CJgo493TzEqEv+GiOemMwYgr9VBolO1isZQ6LIEpGJhl+ZBUxFFsDe8TdDJ1EFJeoct5ElJZwujF
RtIR4iCrlpBU6ICoKCQULXwI1B+Cj9ST5O0eIVBTi9IycPIYk4BxHQndHR2jN7p/7o4jOyu2xkqt
T+M7g14gMUsvM1cx7dOQay5HHoPCmNARnFRiOYi+f546RwK2fgSxNfPSYgRZoPDjKAJ+DCJg4+Td
7J+D0Qi06FqnGNVmI9aUylZS0+2kaSsYO2CrDwtfQoUfSccahGFwIzaGbVzoqK2FbCgyWNc6YXKd
qUQqRuk0ywF4NyJBtKHkRThIKBkZgMwov6jlAm5SLjwTnF96hk6dqcTrm9UJFRebiYzj7ZMxOSOO
PaUadKJnmnitofLtijo67wClTdkLIOrilXxjqMwxVnhNxB+i5EiwUo05tWsocvqFJtAgHR5HjdoV
6KKEiHl4bU+FH0ER8IOgB2sYfeY94A2cGB0wkw0mKJUxbo6FRcktQ9sx5yBmAWnImG6z1SSICWY+
ptXkUm0iF98l7WwCg5ImRZj4M8yyt6DH0gGmYgUItFE6gsjsQDuK3YMHihZug86fX/XM/Qh3Bnqh
6FbBl4lVnW4nHznvjiynda3hCRx1VHolSXnNYsY1u0gHRvkcVigeRKFlUc8JxW5JRdA4cn1m2HzJ
eNE/o+ecE5we8MTDrplx03chwMS/yXp9Fupd0L8Ml0/nBQsiTAqyDhlLOOmFKg1RnQxJPM+gwYyk
p8ikWBTIfduMYTwY/hCozYkAiWIUiAILEXk+MQjaaXgXtfwEa5pMMctBgd7GJhGRfAi4pyM0FafA
QWgV3hmcePeImLgVI6kf2gWmI9qjFbkyC+2OF52yQ52WNJ/jMa8fpcziaF0dklp2/1g3PRfOU+NC
iFsw1cKlJkNj45qeeSPlWsMj5VSt18VQ6kA7NnMUAb8S5QF/Oh46fxcK8+KgmUraMQWKpPnqgxfj
xJyzbZDEMmkzewVJOw7/opYmxEYUUwLtEUOohDMU86oazFKD82MbM2gIYcz4F32GeRYiFhWbWDNX
gpC2CGFms3GxwnsD7tXpcl858vIr5qLUr3x9Rz9LYqGPRJfNDtzD6MEZ9+brXyrGM8LRYTtCdSGc
oe1gDVPWqHVagoGhL7NRU+/7BP5fKDJaHNGY8fA4AeVH3HvVUHgYRcAfjnMD/jLOF7Yhayo5pgny
A50q8Ggn6XFvZnXIxy/3C3NARh4tW+VhRPiEIeWDNQ0x6bAx+g++Jqk8MpwT5OtN6Jo6bZgdccIR
pyNTWydTZBBGaYQWa0PMiYychYpm7BroaDNWeADuBGp5B1xK0TN8sRYdFyIOMqJr+nJR/YgOqB4Y
nTIwRns8FEa1hCSnQsHCuCi9iLnWaZn58c3hl7cK9Hp1fYKZ8h5xCPTtPUZC9Qy291b4XhQBfzYe
PHsXis/HpROjsWh2TiJHzLz6YD1kQhT3xxKsIhGqsdPsa/MwJUF/jmFEmyxzMTDYEX5WXcApDoMi
IRYXI+S6uCGYtJu02QmV0J+MnjKwN9q/C4Qg0COPI2v62u2LgB/GV/aTRsCcvugqdDV6G92NU5nL
/qKzSuiuuz7rOriC7qShfAXYwa0TuX0oeVfXgy8eY8f8S3Tc9Z4xoS/rb+tR5kGS4AXZM7844jce
euFZKAL+c7jnhNtsTQUzZkLF7jT3omsE11pgU9jsHkYnUog7wwo2o+nF2LgItjERw0w40fN8dU+Y
1WgLV5o5scbwXWO83JhhSTgX2x2IvMg1rN3gEg/j64sFQnFIih0OT6n176J1E06XA7UwF2d0riBg
etzeZ/NornOv63eBMxgQfdaIK0QqcsdeYhCNtfmVUzOQXso6cris7iGwxYr58gF6vz+0xLQWSwND
AoYHcF7jYaPFB5mUs3Dhh1EEXLgCCyORSVuQMGmSMM+HEbNNceCU4pgyRSQylHZo/gxbgp3EkOqD
QSAUsB1WwJgQSwEsnbaFWNbBvG7U4yANdSdQAnKsFAKrpcSysOJN2jDGbwXfKciCL7zbhZQmExkX
7gXdwx0l4J7DWTTruMtFF4WAdQKii7o3Butl36XXZvq//fFfu0XiDHTNw6u8ym5OwGqvjCZm9U2w
VpNxJGu1nQH3b/jebGkFmgIO1fcmYm71h00ghLERXGTKLQJ+FYqA/zTOnvwzmWk8xLgyBinQEJfU
GTmcMSs2L3YtuhEKNwRjAWtCuUnAkF9SMtEwDWFlsBXOGAxOihoBMwFtKqW2tNPEwjQTNFFKtLEX
PJNGmFQdmGI3QNXk+wr5tro4iYY4ZPYBb7hwJzjZ7hd0IMjX51wbEzAkq5aPxo9LIDpkcK83gmmV
Ljt0S8XcU4XowVQkEnN8wP6/g87vjLRiZ9s/Cj7KOTSGRu7ZJc88TLQKvh9fXR8NB0aFB4U2kG4S
b5KuECOmgSID+6I2fpfCD6IIeAN/olm6P3AZg7UgyBRmLOOYqhzGWa0EomVFrdEtnW0kxk32Ck/G
NjSsqDYRbxEgE2E312opt0yfiIdUG3GaKzKnjrRqck4qDV0LHMQn9ACk3JUdGeJXwWbd35kP1k0t
42sVxbKm22osjDjmHCzw2eek6bTKARX1hP/Lht529Gl1x/Q56b0VyovbtqHY4MR0V9axVqgB/tUe
J6UoFkXZTMjkIFVlMQKmnZzsYMR2likY8LU9ILgA8UUIUf7YAGc6iNhEv0YbuYWfRhHwOvYs3fj1
uJ6AFxYiUxrGmLoQcFkfclfr5ORg2A90TJJ4PMkv8G02BAJ0GKkMbVfTZljsja1IWFyngoHDDIMg
UCEFtsGWsY1KLIhNyolJQJbjkYGcIg6vQo4otYG/O1YwbLySCNlLqhbugH90gXNo+NzH6ScF+XAl
SL/zeaC52ykZAQHHVEz2xkDG5sFynIh/Y69rtNU6fIOSk6THPFRmtS7LXQV9VbGnSxINWkU0RYHG
SMZARruESBHwi1AEvI71V+H8CsxG/cnA2/jWMcbbphXDaDjOFTQWIMWRXM7R+f0dYRd5Sa85FAPQ
KDSY0ZRsGsSqpijULBR9hUowKT6QMqBOFwikrQ6pYdZjJxjP0Ivc1POWvy4Dmat9XM3A7jf6qA2i
efSNxQe0iL6zUnkfuB5GuhMwRnSMPPeC00rg+0HAanrAedjrZE8MO6M5qziMpE6aIyC6uM8gH8sa
3Efoois/WHQyotojQTPs+6Kpk8zZEd4KDTqDq77YNEyxDomCtPX/yE4LD6DehFW4iN5FZBxsHybr
JJhtbaXgGpRlAdGcEzCbvkZFrkc8VRTsq/8GeJYtmfpkjg0GEbOo5CZUx6yDFIPIxxpprB3VBwGy
pO0UGAqanlVSYFmEgvYxJc4iJk60YS6UGJSr5gk/RcygTWhyMVC4GV5pdfA1ka/MfNqjG5h9TcCm
VjU1bc42u6pBNHIzMQU9jF4tSOAT1+A4P6XkbgQBhxc9ItLeJWVX7+9KbjUUHGnIa4L7oW9v3p3R
7wyZ2+JOZuHCT6M84L+EabTfdNa7TZB1s2Fql/kxNdfrmvSUoSGeqQRGz8ZKNoZBj+UkMLEG62IS
JImVzSF3GmvniMrAlQCmREMbpwBps2unNieMTOkTKk6GkK3C/HSB1RMUyuhZwLpp78Nw81Sm4NnO
1j5tJVbhVsRpUPdgFkSnh+7BWacbJZW4vT0HI7QOOSEITp+W5TCEjZUnLNMJ7do9TdTKNM66lqsk
Mv9Zo3mMz5L9Jo17AQnTNOvgOiWayjRM9PFdFu5DEfAfgighKLON8WvOfWMNQ4PVyahlCgMtZSOX
exp2goFjnege18UsGKubg3g7/+LZ7PzGWwMVW1gkuLlixQjM35RDZLa0WXTNabCRRoY+SmU665nU
hMjOuBMRJrSzKbGFL76zvr2/v7+4F9z4wkMyfSsZW1291Is47oPPtS5f4negEdAxWjfSNroQM/7z
npnw2cn4EEskafcOSw8edab4jv4TBExXWnNxR3BAGaUfLPYb6YXwcdgTbjw8BhmfIEGWKfw4ioBf
gjTSPwv7rX2v1w17KYw68uec7OZtzA+jh6RZMuLtizIviL06wL9YL6hSw9/WM67ItUEWFtVMSrIZ
kcyy5TPJujTCoGBlBQPPeBXqbLwLepQyRqoJScDI+HcUgTFXXUX87B3WP7+xGyobgXbwj2a5PdqN
4MK14HRz81enGOLVaQ6pr9XoQs52qAaWbxfdzsgoouyNQpyaU+TdglE10JIKo/f+SwJeuRU8x3gs
p3PWJNuQaTvRsc0KPQSNWkMjqfu8Sc584l5J4SUoAv474KZsu8q/iKFbDOPTM6mjJPmFWPM60pZY
5lggxFg3cybGEiOQ9gCESVCmSTe5NqwrShRDxD/m1xOQVjAdmy1JkiCFeQ4bjcgEahmwjmWUsloi
FJ1zM5hZV4P4pm98Y8/Z25T66w/tUdPQt0EsIfLYxZkWA+sUWs589JGf4aeT0FdQi36WLS1ENLtp
j6tGxw2ujzI2+asncIZqlgdOH1KSI7pIwLP6TpZ3DkfRB4/60JKnH8FEtgGbAd7H5v4ZOoVXoAj4
tyPPrwKNt7kpuBKDPVK0JxBHIoyX7Bns4xHd9Oz3OeJtwu4JfB0WYNoICk3NUCtWzoZVIgvwdTF4
/PicAphXG2gYsyx1kgRhnCFSbHXyNZ8kYMG58R/K3gqZG3FvJyhjG0dsfzou+m75FfmqSNjEJ1qr
GPgW+DLMRGvi1SbOObP+kqt3qP8EnfTeRasbU6zHOQfxn+DqdB2hk/2YCDcU3A89c8uouhbswtcH
I3rNxizxRHhg0TyM0PHLZKzwGhQB/xE8dJqTQwBunRPT2I2kJfAN/8B5utQm4tQ02GUD9MFM4uDq
n4KwbnIw5ha+FROiEMYDnk0pW7gXPkaKGJZ1EvoMKG06DZZFHHkpDwuesgEusg6y1vMklSFuEww0
gpvB8eTcBYqBr0Zch9EVONM6xax79/n+F94v8iRgehEnYiDgxNQHV87GME2cDDn4x3TVjCZ4Fce/
i57vEqpnOKyhyrUDejbcPD+xo8INKAIurGHOGEGqjkKdMZ0a6dwqNZaAW1ssgA3LuAJZAoyBjCVk
GnbTPBtkCyBc850tKx6OTTAWmCAEYY+lDC2LVR3YRzLlKomhDPZFwUSJ6VbEIpt3bztCcy6bgPJG
HhcV6Q3RGlyKZMJfvbVERzHwdeCCizmP4Ng868g527PpZ/cqZp/pTa27zbCQ5anJaCJZanfsNYy8
FUKz/iA9B9SyqrV7QM6O6DdjtUUKL0URcGEVvVs4oqGbAgzIaERCjDs7ByWQZQ5FcJ6JA8iX+1wy
nFBwsKlgAsbSmo/NwMrD6fHvqKEI5bpEfNg6x7TpIPjVhhs6JeHktI18Z0RcG30C1piL5hjlU/zI
bGTcuGtfky8NDWszbyGoWWxdi6Evwncboo/kpZjPNUmdbTqH2NbS3Y6Xb6uZoV9PqmRjg95/o1cO
WCQHcN9j6OmJVv6kx1+H7anuJe6rv/BZKAIunEf0j95LTB2ZmrJOrNHEN2EJo1iSstEI2BxqEiVl
2xkJBba0TCt3nYj4E0bZRjiZ2DbZpA2FBpF6mwwbKejZvBlyyLZnG8ngmVrFSibUKwY+aQhMLgQM
UqZWwEtToxQDn4evvtwH/PEFmk+0Bcxl4IhGhwEiYEhYWnS16UIRQs7odBbmcWOWVh+m267DRU/K
zys4SYJTF7jwh1FvwvqtuPu8uuDcYVM6bM3M4oQpQTKQS0a5zp9E+VGR6aFJSdJ1kUm1AR0Y2OSL
qYUM+2pniW2KMw0J2xI3OA57mlqd5/KkTJqRQ8SJ4FFLIsaGMGY4I3Elwqzq6B2C+MaCecEb2sbN
A1VHqij4HNppjbNMB4CAOaeWo6CeBgOrgQMmZE+4DFzXY9H6DbNUnJcMG/JsOT6DM+a1gRXNN8C5
o9q+xij8AMoD/rU4tQ43YL/8FVQRsghjNn8WVBvIqEQRWbqC5nP4c3hvUNhNyJYbathOXFmCkHVY
1rakI7P7RvHLDAlkNs9JvUHFwbYRIQj7HkLrtZQDE/BNyHbBrQfa0hCSZnvkxUqAdL9C2fdjKcyh
s9LOKKeE+8D0DE6XT7uAHMI9hvMbBKxuMra64/o4CPk2VGDexzMUrmWq3N1tuLnAdeD7Xqi6CPil
KAJ+SzzjpFxbx7re5AKHAWNOT/YvhNr23NyMpk0c05goEe+gPP6bjJt04FEspgg0CBjvBnbtwMbK
xGbKc43oKN7cY6CU7XPI+Azca1F4uE7np1l4p10kRIHQ6KJZ3iqOOVlpXo1vpwaJlottu/+dzYI3
HJH//rtc/V+EWiWINs+oz7tPvc6OhYDpEfoNzak2jV5EV3HjTi4wpyeb/nqowFDmee+Lmg6rITvD
sxF9r/DGKAL+IPzscOp7w5rZZsiwWZA5s6OBsLvAzsg4BZiEnHbR2PP4URIqoeNQKEGABAZY0Xjd
USgpbZktcSqRUohlTgsNh0K2YaYnMnWmIzBvMG0EI1ya4lNyG18HnkWFc3WA+RUHIxsZrela42WE
bU1Dn0BnJk4Pp4/zF+fdJxr2tTzi9A4hGtmngOs5ty0XjK254xOJDCecSgK79ouDUnDnVR0KttSN
vpsJC8lydukCblIufBaKgD8FWOwfPVfT3hQxr/SpvTUEw0Q+BCwbGF5hihRMFK3UPn5HHHsZvm0Y
VFtPLKrEitr+ShjmF5ngtw9KRG5qGBawDZI1hzYLbjcWCbKkVz4WRxAbg8wII5ZlVnE86OvokPWV
fM0Rzm1ecsR37VtHMq2wCWsaeg5fP3EO2cS29YA8nWzoDr7gsudLg7rNmVmBgBX1Wiy38HA91BE5
/cSsQDVmbguj0JkiFDqbLZyshJ4VWC3d938VblIuvBJFwJ+BwVr/NLBh/hUBJlhHyzE7Hhk/B96w
xSI2AfA3iGx/dhhVkWibN8SwaoOhPcajJTawwKaWuANbVXKDgRNEqQWDLGC0AxG1WXeYqS4LVvbH
kkCPQgAE/lsDdGu7z1fLL8cmfGFTA/KEW6HFnHKingkewfkL/1cgOMoB5hotCBgRUvcGFLwMi/4W
fZDuROO6YRPZ6IkxNc8J6LS0jp63Dta07sfa5cBzcd3hPvVLFe5BrYL+CPQr8SfilhpxMDiK2WG0
BMFkoCSNRGT3jNGEYeBMoQSqGpMJbSKL2WasrSHja2YFZFhXIGGqzRyMMuQtg+y0jXei0ewkDP6d
4sGxJyBTVbVUhjMc/P37lxYL5PfM1jEtENWH/7EZgM+sPrvV2v8evvxuFto9TyLbOPG8M81Szjqn
m4kSQlowOwatS3zRygvM++I8DOxylrgT8fkK50C3XQ0UCudQHnDhCmDq0gjZuhAZ0GlFPDSsf16q
NXOGelCqtvCmjJWTiSDVhKytTStRllDLsrkcWrbETctmWpFMNSTNYtM7hqgTtvwRzABlszEVr/nA
fU339FXT9k8cwMHrsNPqs+n2X6GnIy0oJ1jIUwjpcr7zBJlqfdJhYE6mTz3Nqv5DS6u5aeeM9gae
kJINVqRYBIlH6JO9Mwym2p6Cfi1Q+EUoAi5sYegZsoAtZTMw6zQyVi0NzXTqUXSkGrYtGV5v49Bw
eM2kxFid1c0t5tjWV2mZ3nzNgvPwhqzhhG021psabbrZmGqdl4JkUlIhldWHWTOLRMI5Vs88Nhk1
KH3s756Mjf9J9Ee2bI4dA0MMuT5q2RT++Z8oVNP6XHIaiXJSOUOswArQZbjS8kl2n1Rn4YqPbmcQ
ZnsO6JLeA+dIqYNQ2VC8Go+WP0V7zWnhN6EIuLBA6xCTCWHBcsYmSp3QfV4HeCVTybl2L009zCnK
pmJy2WJSicOvfqdgiCFZZDKrRBU4wyVthQO21KSoiGTSJpAagQgzwjT2JPjAtC3qGCHiDIHrIyJh
q5uHULWj+NL51R3LL9l8qPzKDaYHeTOtBF+NGNHY2R+Fz06cULpA0CznDA/YZ9sBsUzQlLrOiRal
OyVo2TnOkpfPxHiaWi99CLfUcZVuecC/EUXAhW1k3+CubMTHztLj4YFEnChOXaRm+mAybTgqTBbK
ouK2wplswogGDZtpnSfyDUp2mbYGGmPcYGsdMRvoIFCbb2dNJj5JzhGSyatBqyEh4FcMrTFogVRJ
de2Lb9SdfmG6/EihGFmmU/FMBiKuT2ssi/7uNHReJvkcMp3MSYvTqpaOE5snuPcYKarZ1CXUdFz2
KUkXWS4xBocrzVycGOqMdJyiq3C14hpc+KEaCp+JIuC/gAfPsQxio4w19KyuEjbQyTHPprLjcJC9
bNSKz2PDagI29TZzi631rDSUbNqODBcSQk9a6KEOYMdu1O0eizBJyZ7b3ielSpxJQrRIhlPcyNZl
rBCFqK2nvDxc3y6+rLadjAcj7meTiGRSWf6jbOdrh3+UgTlTPjv8/gEE7PMeUFvH6dX55Vxz3uPE
s/yKPoUPzCwNW6G3+wRmcPJ8jF1wAZVvZ2NSOqP/bPBAVUYLfwRFwIVTjEYnbdIoyXDEKMMqIgiZ
U5HAVlomSCxzI4NLrigJk2qO3fEMEilPNGJ0ZYLJs+01XaMmYxWGOqQOJEQ9jLbtupnS1l0RDHxk
ONNoMbMs2S2ZgdHiqW4RCT7dYvt7+GM6yIB/vizHHZPSbppoE/vI+jpEkZL1F28Ex1kLEuZM+yVp
2QE4/RFxT1AUjqU3IMqW9nNITCUQd8suMHjFs4vATVyldBE31sJ0ekYLfwRFwIUlZDaGTjG3aJu9
ZciQMWQbCUHM6FDmstGVgJUNq8k+gl8J2DhlExsWmJlJ+BWorlCwu2yRgIvMTWJsuf5NkOZM/9m4
E5phg0CJoMM2hceDs4BLWhhKjkcEEOeagEuD+DYwLZzLFwtSIMFqb395eNiXMsoNtRRGobDUkfO3
nGDTLqfa0xQ6eTQcZ5dzqwxOPyc0Th3qtLszlUuze37GJWjD6HfZwB1jeiS5pV7HZsZ5LIrNCPjO
Kgu/GkXAhaVpaPyQmLsMV3UXWcTRFcmYJDNPRDYzeIotFhXLCrGSdDRNs/gOs4sfSb7Khg2m0OHg
NbJ+eBhdhRjzpEyIVkBg/rQLnEIjomYCbLtTWdZZijkVZdFzFlJmNf0NsoEcdQSE0MyQuammrYlX
gLylgTAEofGXGNjn15dMBi5unHyff51XTqo+/PJRwAQc8iRgI67kJsxTp2mjC1VPxjZwIbvhnNrA
+4VCogj4tyHt/L04LbxV4dndYD2Dj/AMCWTjZqzMAySYUoS2oGFu+ci4OiqrjBT6tF1Opja9o2gd
7LeLiL+hXhNw2HMF5ssUyHpbLECpGSXbhDrpWxNbTzmXCmV71tTm8vELSDqUbJ/eTLCvDsXEqgPN
ZtCxOxdkK6TzqywnHdf277wa2mcG79bnR/CZhnrdC+IUm4CnNvnirJOPnhoOHVKt9c9jrhWnjO1K
aaRdvJJ/K+oxosIpioB/E2wzJqvxJER9i1qn/azuzg6fNVKNLRSa2nL+9rgwvMkCAxqMGiZXcdlh
rK5Ms6chv+z3mHgDqAN8JzgXa+2NTDkf7Dkx06hi/Nt6C0GuYf1JhlccmmwzEVwb8RDqmKBqhSR4
OhX77y8UG3jUnEpo9wyhPHtyaTGHgmJTOa5MiHcc/+3+xJ1gphTyJLildZZoVk5hEOzBp5nrq8Mw
K6Ce4VPNv1pRXQKlaM9tLLKHif+TvMTirFyNrWJ7v7KrUBhRBPybsHEu7z7FFLQdSjIdcUWltnKE
3gbrtmj4tKJI+QW2o2ZTHGKsbvCu6dQkK6vL/DVcFeyL1XWeI1Z2mhgW3QadGHae0BPZQaTaYsjh
baslBzjTzm0wrEEadaKGGYKcf/oynlFXy4QLyxqaMOwkuExwREeErH1zcvXvpgkhgrF9qe33T0PT
nm5sgQskzkQ0PldUcVaDhgmU1fBlIZ2HwN1FunGRcwU4XQTZN0+xJX8Yh75ir1BIFAEXrkJ0k0Vn
We87kgad9Em31BNfdZ5h/ZLnjJPHZFB55X4YVm2YgsQJ1kcGFmUsrR0efdICW9f2l00wsj5h0ptB
99RxwmnTqYnUOsxzk2FpkKs34QOH2FtuEauM9uOSfJP4mvbL+U48FRyGvWfSFt01nhBKTSOCCRL8
5nlotyI863YGTiaI+2wmD/tMK5GFcw7a574F0t/k0xO0U3QdhgujR9F/qrJQaCgCLqzixOW9qp+k
0syhmwARdTlmMznVhglbC32mybVnw9IqpLygHwIWH+MBQ3hB2jz9SQG8WRelALTZANnK4NvWm1Gx
4Eiw/0HMvOfB1p3s0LSyfS5X4rTkPhbBHHGMr8Elgb5s+MAcFHzbv32G8X3GJlR0SBmL9P63UjCX
WW5+NtGUblaa3G2dIk6QAcfS/lmex8clnK682NLCbjW33TacP9yNl2RMXK7gEcz3VCiovxUB/3Fs
nf8Fhc6MVscVnWdwN8LWZTpoyp9wXzCohojOTqUZVxbWH5G0bG54xNAvU4gmYOgZHUKMt/gXwLoE
yaHY84hjw5utb1yt8ojJCQmMK03+U8WczX4UUjweYPbFg/7YkHJUXy0uEJA4I+mhN8XC6Pcm4eO4
t7+SgY++qHI70pJx2rwAPprYMrW4o5xuuFX6XC65QZhkoJcg5LS7OtKtcUesyVobg/X8b8Iur9kK
hY4i4D+O/u6fDbTcNFo39hZZxaFEkHirqZOQyAq9MKvaihD3rNCCgPUH/MbHXSzcYjqaiWuTtAkY
mJdtvaFLkJa8GXqsd3AqG1t4u7RWJSQjslxJpIyokjLhp5H27Dq+eHCuEw74kvbRnWTjT4sEFpcz
SR40AoptAuH33Qg2WwYB08baBL9y3mloZD4zPiWC5M6XFM7VVi3jaQ+E1nFEWlPrdpx27hWlOWYd
9rmoZdCFExQB/3GserZjn+hMkgQzx+lks5KTxGW7xlyz5ZlHeYtGWFWMrSyVLO4OS4uBFbtCwFC2
TLCMM/5lcB9ZmGistP4x3UGVIIy5Ydse7GrkJDQ3nq3OXkUQQc8UtyoFnGx0DI2bf6NRtE+OK9rA
En+jIcxEYEj0Nol2yNTu658uK/xFjb13+1sQZyI8Xv5oTpgzCJhW5STFqYKAyd7v4GA6RZxnNbjf
H26RFISoQDnZaCNmzW+cSsZzwdlYTk/chpX6G2b7WcdljcLvQhHwH8HW6L9oFXhfRsYiWOBsBcFT
JypdQEREKscP58Zsyj8ro/36XqdtZbOEf4CdZ4f5l0JY7wxkk6FgaBR2tTlvNcimBxQLbnW29RVn
30ET5mFnBusqEfqRQcGvfzmZyI59YO37cEQtEhlDNvF2vZKczaZ9NSHoXQfTRXlQHw/OWpwIn2UF
JmBOWjt1PjUCTY/+SMDko0zUsx6An6OSUpz9sdG2scquU0GdD8fzrEoQwQ04U0JZt9dX+N0oAv7j
WDFbS0lyhkF0TF9Aqi7d52boDPngeH1mVgwpJlZiK5hRIbw2l8jDlJPDKU2b5DZ9TRBW3NYcQ29E
FBLNXJg04pEBL/CQL1Rh808ZAwmkjK0nhezIjUigxhtmECxze0Yu4Jv3787X9rWDExZIohLZHP3p
X2bZEQi/YRqaS4ogSbczpxQapvEJOXX9vLmBBe5EKBsCTg2XilpcIAk43uSipGdFppafMMr6udiA
s9WdLqidwf0lfwqX2qDwgygC/uMYTv+1PWE+az2WOhna62NdQju4iqkqPvoPj8fWVhm2pvK+4Udb
6twn9CXWc5REWF4FcLGT1lcJPqowKjCBpolXFqSA8XbNBNqqcGfg4GYHFkmoCpAoF41/6SNx+ERg
VhPpgCnhWCY56vwuwF9HUufOyLZzyWc7wT4JIsjgyIjT2t4qVAA/kxfkywbKRnyAgF3KFG09EksC
5vxbeX0eurXkZaSDrBIbdf0KrF6mFF6CIuDCWaxYr5mfkf5dqmXKmKlNkFhyObxRjjIIResscJIh
hWyZ2nVdaaft3rhAh5nM05Fp4FVDEDBmPLnVSYUIAt3KNz0HysCQS26uBcHEjYApgJOm0AQsY+9D
9zGppOPx1QKKRZxtJGBeUlO79EhgRrW5zEufz/2dfjUrZwjKhCA5mRmYj8mO6y7FGwHHVlmhyzKA
1NCW88v5VvLAXWNEXHip5QnaS8cWuIZwQmXoY+x7SBYK34Ei4MLNGO3SovtASSlKdhphQRBz+hqC
heZXTKqMq6mnLWDlNnDMCEa6wybcVjmsOawNAZuy+cg8f6EhLlNKJhyZ6TbIlaiVyAXciHaWlcwD
SSQAhywyTCz+ouZIvkuYeA5gOEp/f3/PaAl5cxF2nUGZ+NzXPebycCF9849CNrrODacDzuQ00YiH
A8vo7PzGWfE2CLg1PdJ2hiUJvTzfBGyiKK4qFz++/Fn3WqcGv4CZHsyev3VVKHwTdkXAhbO4wnot
NJSc6HXKxUJGDELt0ohhPRVw489cKuINibyaSTXhDHyjtOF77hWrcu0Bh0hCGWcsOXbaEe4pYveD
loNdw/eNIK28rgCgjoCzTSVsTCj+KA7Z+5jjeICjQxosknngq4DPl5PN8Ekr8GHroWnMbFKdDp9T
ojlhwYI7Ik2RuJC8mzxsfbOs6yHw2ZSyqqQwZ9mV0lPcgGca+Bq4tWdV7FiLfw8eOo7C30F5wL8J
j9mfVWDaIhzRpJaH7XMiCEMWMczWpAamOI6dU2M9nqHFwsJtVIVhRTEUEi4VIvgWc44OW6UhYGw7
bCvzjonGpKcJx9DLvIfA5p4MbDoCTDsPozYGkZCPkwhCRUpfHKD2NzPN8c0Nx6bNDPmtG6Y6aInF
gqtZ6Q9ZjCXq/PelpqGhaK9GwOZSnVCfBc6DL2Rcwu2O0FFKKcLNCE4nOdnu1NYJ2NcqMHLyr1rv
tLFvROtW/g/s/UjcHZhqyLBQWEMR8G/C88+ljFJUurRvkY7clpU+bnCnBVNeoEn1kcXEaFJP6KgQ
tlSBkwIE23KNjKa+/m25YWCcahXHItuYC7LQWGxbcCaQ4YFmzbW1l+VwQCjbuGdOY2AlWIzd7jLu
uFHtWCAvPXxUfHm+Smuj1oRkWkRg/en6Qlv58bGrhqkUeP8fSIIbfVEE6fo8wLw+HeoRQZY+HybS
LARySZZbnI+qgoCt7TOSZ4KTCwsrIwryuwzBv2pKt9IccQKuxKA8FJuf5qtAgbyBUiicRxHwb8I3
nkvM08yene5L2dbAOzzJTcaJRNaGyJJJbHmmhEbkMy2DBNYe0yzb64Kyz0CSZs8jpRjekiNIFUIX
LU4VDlyZomHdk4Ptj4kkHOtWnrca+ajyE8cZoWnVC4JSmMc/gssMVB3nQ2IkJe2RvBFvTMFqKB4P
8wSEiDPQzoT+I0UuQm2mr8q5MT/H+fCHpg9l14HbC6g63eksrHymtTktyzbuTXs9btPeBEdSb70q
XIUi4N8DncmZFTp7Zu857VPtEdNmkkRgAlpc/kdqLhPsAC9h0SAeNWZZirDkxuu28mhksMNo21pj
zrHistjmW+S27lhzZ6JlPog0SaOTg6VmgyzkL2YSjj2ymWN6gnQnSorY4NMHorC2+SZpklLxtKrv
OPsIWkVCa6q3XA8NI/or+gSoxXMqw5yr9ovLIp8ZNg4HX19t+0/nMc4OaGfHp1HicJqJUy3nS3vI
hlAcLseIDc11F6byj9Yk6PrrCbUUfj+KgH8XxrPZvLLnYWJMO7uk9DE7JEU4ulyL6pwZkMThDXnN
I572AtjPpDlkydbLyjdaVBa2WQZZprpxrJ0lxTDz5loFWPjQEFzEAS/jQBA8kAuvBPThbuFfeDXn
m7VxpfS64vwLtbQ2MtMRF//8lz9/xNGC0QGeGuDdbgV/hZsv7uXr6JT4NWWwMQGNf9T5g5FNvvCz
T1IWN/+io6JqdJ8cCzgVJCDgbH6IlxNuIk4XGnanxeZ3KhaJbYxqy5N0LTaK3Vtd4W+hVkH/Lozj
/vk2YObKTbXLLCZLxi7xfwgbIrHYNqLKLQ8hycI6MQEdZL2+QSFeUohlZu828LbWyb14rjLsCMKJ
JU9srXyTsi26FwuZGDD/9rZco9Qx744RmMIXlxWbaLcj1SwRmbD8fg3mr/kU80yVRLTBuyyHpoVo
F/xdk62OTlvfI/eRkuBqiDZAQf8wp0/T9FgV54WLHxEr0/w6P7S9zolI2OeM0+Nz6OkMX3IxoR0M
DP/qusUEfAd6rxLGeOHpqNbdQHnAvwv2Ir8PG7XL5538PYxZZ9dT/X6EvYBDETC/jbAo0JLLSVzK
cKvZZIn7YystMOU8wTkSwMVBpDbpuRiX1wgTacUc8wf7L31zB8YfLubhqPnBraN/d6IZaZiy5kjx
OMN8wt0NL/+dYFrMVy5qMHujELC+ASyMl5uHGQTMM2JO5sS0VewB53fVWTLvQqgtMhIwypwSEq6B
Be+mcr89nJiytFPtZ71x13B6HjbOzIh1jSsKFgpbKAL+ZZh5Xfec29GgnJTftDaykjLBxEaNNW17
yxhSE3DT4KgxrqqHGAbV2akz328mJIxHew8secJK848/JXOt/2BQXm9lK5+2njw41hZdXlkwMI8A
K2Zjj3En1RdRcbgcXl4yzI7FsCQ22QobmH+Pji6NmVWYJgVreB0Fx/1ceDCmDoIB22WFQmW3RnJ8
StKoJmCulXjgSueHGoHImAukf1wcQbWE2nKGqMDn1Qkc7CBgidkk2IcvAi6iqfTLwBuwLOGhFjsv
FO5DEfBvA65IRi/jvOaZipwFk7oKjB9w1hwrsijqWLNeE7c5dkLAuY2YETuzB/v1T/RpUpVtD4a1
NCaN7VYiwoTDGYqlhRfRIXFZirNgSAlVK0vvm5rjLrXHTEyyE6y2wYTTXFFSxpwLNXk+dUUzQ2Hr
zVh8C31Zvn5KngU1XvCdtuZg2s2RNjNA64Tby9eAcGFcO8C0XCTJosQu+Zd641A5QT4PPjtxfsy/
KseZ8QEoE4FEScBtf+xECUfOYeDdRX8d49eCb3NPuUKhoQj4s3DhbMm+YBUyJbToVrkL9V1APu8q
/1feSTdoC6M0pSI2qA32EPSUQzb+Og0jV8mEm6dkhfFtzQb64LpCs75F6Fd6/GdbbgaWABuOPYem
tUWPcn4tomkZmWmkTaWORzhEE5PkNG9V319en54FHfUUoX/6GHlXaRgF+/CVZ5gPZS4iMuMh0CBR
o5rO7Au8lErHzl9QWSrhoLJzS9U7LDNMmKQk3OP1unKolRhzz56A8Jn0meCMqHrPTXC2fIoR+d9z
0ewhaJ1YHsIp1jN0TBlTc5889HUVhhoKhTtQBPxRuPFk4ZNk9LsgY6ld4NbEnthibp3IZESROy+p
TSnn9Owku5YmnPKE+XeJV0bL6pp0Yd2w3cR35icTMDOewcrMTaeB54VXZmPfBBYZp4ozo8puzU/8
qvkxZQgiPkgcnanzK08c9IZWfkNthybcwsINHgm7R7226V6oybgYoTITnZ3gYGE8YBhvD0eqvXzE
sUtlo+/jnziR70Nzo4gw5qB9VvJKwgQsZvXVkLbJvz57QcBxkoKAtXPlmHa9/7P8ewWu8Z4zvBIX
z1+hoCFSBPy7cen03nv6W7k0rGFWGzrJJpRFLkFotaBvJrC2arDbGVmBjXlMFHOfF1MNbLdj4tm+
pMx0rrCy+Xa+SRdzr8PMRT9h3ZXVriQ6llQ4S83yHB8EGR1VXLk3a19tEjm2ojHDtGjrzAsTdTXR
1a7HdAECzdrjZHZeTeZLFAhYnMfLu0ij276PT16e//40LPzLpRAMbEVeOsJVEJvYYzrVEKkpFg7m
FgGI+QrOIMfAWdap40xpZxSAgdfas2Mrr8vPFV7BFepnj6dQCJQHXLgZC9viVTIyu4P0xPqkIII0
ltrM1SKFQe2ue+cBYa4cyJ+rsXcGecIQMty8xNcesMhZQntQ0K61bM1l+KETnn4yL0dBa112hgZw
nO3AFge4drxWjy+V3xCsaQqDRuJUAPuMjZSYF8WlD5q7BJZZLb6/dgAVagsL+wpFZPoFVerUU8b7
7zt0JFL9iXD4MWiypXcmYJZfBQP75i4fVQYBczrYclZ0gkzAjgUBB3Q8jXz77n8EV+3tZw+p8JEo
Av5dWJzNbvAiOMF9Jz9rxezZwNq3scgYK3Vcm9mOSFM2aXaWJ1iWwmUeGGTdoh9Z+myTjeWWTcZW
m0rxlSIPH1fmO005d4Rly7l8aASMxuQDt6pBRAfBNejqJ/SwqG7KzX1qO+59wqoQLNVXSFmseZ6F
9cVTdQ4IWDzHtLydU6qGjaXut2e2N6GcAEaNGOc6IhEoycyDSwcBm+LNv4JPI+cxCFjnjfMS0AFw
pgSf7dXLj4btnCXWm/scLhe4ucrC30MR8K9GN3zPhypW5VH9WStoLLNJy+gtpqrxqWTaMzVgo3bM
pthfsYP4FMqVTcZEqxaMNrXbYJMlwMnh8ZINA/MVbNbxq3xHGH3zxtwmX9OQWypNfmLlMz2Ip+hS
90pQzPuJAz6pBQqdE7GvOfKiYxWiXXjOpCc9RdWqJkfmD2g7lV0rbg1j0Q993aQT4d0HDVNxAPLl
n3OhGrTlVOkQfZ4MIjCyCsHBWevP4vJeX3NchY9C3QP+3TBFZfxRyDhm7BRXLGKZIWui2FCp7e+q
H7a+Z3+7eHLYltxUIthzIqkcHCU8Www22IU9h41ZVAS32MpHObyr1SO44uW+FxUEdBbUuFLsmprO
IOrXbhTZPGe37cOESytxiSSupKHhPwiQNky1OdAOLLtOJHUxBPfGJYCON8DJSwLmrLCjIGAzrk9W
0m8Q8JkTc9t3LBR+HOUB/3bYqGX8MaiWZ1Sko+nV4EzN6lw/1Jl0jNvH9fezSxv2Gr8Jqy0TTW54
vVAulhvzbYPuLYowcNh8fxC47iVWLwyuwbw67W4uyFT7js86WzCwanJlhPfW6oL8Li5NB9dCwGpQ
mtrcyzzGSZO50OQAn/TBlgxPWh/qVU3Bvz4fPlU+n5wrToxCckPKGTQBb5yub8ZV7fmSIyt8EoqA
fzXi5F5lLC6AKla44Y6ax0o2rOfJfqb0PCumqxHFk0VYcsw5JtuLsIS+0sq0a8OdIbeEseK+DNjh
454QxQB+ArhhS2m4tuhY1HjYeMvkkpc7mnhrnwtMavMdLx1FJ5vKFNAWI4JcaSYYEMalgeOKhkjU
cHLsEsOljkYqNXNXIdTGTW/Q9kISsAQ8LWb+TbJVYDGJgApR0DX+MPLbFAoPoQj4d+OpdmK7ssUM
9LmdYpkzukgM8U1vs9OU9xjTz8Yh3lGMhRZ476QI2LpRgDcGSyKd5gAL+Mwy5llnt+RDsQlUHQdo
nhjzp+j4bWY1ZByCmTHhVGBW4ym8zyuwpaXDz1hifqiR0HZBZzoqCtKmol8e6YL31GpJwE1b4ayg
KgzqVtQ+f0sNapRhx3CzDg/uRVXRPIsiYMXsBCcVh3gk4F7vK7DV2IXClSgC/qO4dNpv6xbQysSN
Zw0TWT37NBKYiHWB4cnSaQv2Qb9YZX3wf0URYy0wMI+zmICVlxvTSGgsjnpxSGYws9gKFZo9T6TG
THrSNJfunXft8416Fi54QlOz6s5VzUpxjhJ2hB7hxOBApULFmNWh2qXtKHTK0ed1jja561bAukGm
cHDsAAF7YWGcYj5R5JiBHQvShr1ne/5RsOvX7b3w+SgCLpzHlf0DG5tG/qJBvKCg3M0lT7vgVHJl
3rHsDXagwjSbY+Xufs3eL+gFu8qKTPPvNE9t9HuWwnL/kR6noWc4/5UyV9uTarugkdm0g9M6L9H1
OlTP+uGtS5cYJ6VNwOJSeaVBmLNK5vU1Aua86Ai43ev0iZ6SJlOinEOupMywsZckYFxgcuMsU2cQ
MMiaXoBX7rvwC1CroAtL3NMjbD0zfiXOq49mP0GBpCAc7inFvmPv+7DSQcHi2dk+ZLix7s7ymukg
4M66vE+rF4AyEkMlMvqzKoH2fCK7jCwy1h0BxBaxWYOuyZY4zQuJtsOVyq2Y79IvKoMH97oU4qtP
/NenQBLZVlJ3uOs/qDyeW7M4xEs1jYANuN77YuqbEwUd5+ldEPB8v4XCx6A84L+E0VI997zbEmf8
bN3d+K5YzZnkLGXgHGUUTHVhmg+8oYmblMtf1ZXhtgcM8ZqBk4izNG91avFtjDTj2Bnzv9Ek2wUE
uGh+2EaWObOzyNvIv893XoG+Psx3OAavyhlOfp3zKmjTGHnMB/9qL2VmBAz1CiGCgYN+JwIm7isl
GFhxM2/SsIsKLvwKvG7PhV+BIuC/hJmlev6Jv6bGOX/dfwwrHjLfDzBNvWPK8usr5QlMukhXHhYE
LCsej6H+89zoPn63oB3R9pF1wtnCdGRLrk5cKK/sLY04gSd1xaZHx/yGtea6B7Svm1FXOdqPPq09
TiYHGumnuE9BzwiYDjG0KOxqmoXYme2G7NtZY/YiqNf0+3oCvtgVCoXzKAL+U7jmZMucfU+fCEs5
+GK3Gc6rjt0b9mALvijivUuMNxbLqXCFcYb9pAvx0a/ewngNcQrmAlr0JLIB5c9ULuiv5A7n7MK+
HocIk+eAM8WktDa6fplObCCJMb+M1QKcoIFzRaMZRVd6cGvQcONjCJj7CvjAEPacgL//K29gOvBC
4S7UPeDCAqNVOd85buo62Ek+o5leqeBUtLqX2SxmhkQcz2+wWjDR8vbc+P2Cer25hn97/VnJ6W58
bBaf5q1CarN2GbElB8OlALHxzH0jTH/HvuwditSZ1da5AsfhLM631EI4fRGi07EOrUkHUW7cBg4C
hmdFwEc/4w39moDRERTqr9dUKHwaygMuXI2HukraSQWzalbq3NjNaGhPVkmb20O2IPlL2H2F7+tJ
6ZRdRO5peRAZTOKFwrUYazh7TJMizXp+byuO+32HB+tBhnERFJPEJsK2h35UCmHLFm9YtpuB0F+W
aWemmw2TrgkYwhc8haFdEXqfwp3fo1B4OYqAC6/Emd63zJpR0ZDpKFb4zp4sO+5FWaf8dCvyAOGh
rItgu9rNnHYlIIX8Vt5u1yRc/PrDHPCDgAon/hUDHrbXrin3ZLerh4owVPGmg3e1kxYT3bpdg4Bd
LdzL1sULhU9EEXDhp3BVT9tSks1d5485292KKLNhxu+17b3cxiGDM1VDLxm74gCkY63LqmeOZgOb
+7f/6ZiXXuXT2YFlodNKVqsVmXIeHMHv3fGLh4LJF8IPAkYUBNyQ5QtPwGx5XOEHUPeA/zAeOvVj
4TbNeAnS2lK891jSZNh0P455JXcZ9zNlhqwNrbbHHkYgbBQwkoKnYut4IlfxNLBr46cutOXjjFOs
7XX1egeZzmYE6lFBvDHZLS+Yee890xVKSoXvDPuuVFS4G8+bJSlch/KA/zAePvWtgjV7egkUebzv
dd/rOQS8wCN1Xld2riWOyUgEVyLcQH9+yiVszc2vL0PG2ztdeamZqfQE1EGOAvgXN/iAw5s8jIS7
vo5niQgKz8PP9J5CRxHwL8YbntrpkBS7fU70BE+o4l5caF1np84Fszbk3vV11AiqglqeNBEwYv2I
2m7wTVmgvL3fw/GEnucEPEXlz0ZNKqFIusBBw5C8c/GAdUzFFIXfgCLgwjVY6SUPdhxZ0M03Pl8L
6nhZ/71ix13lrG5kPud7PKeWAbxxchNmUp4J3h3tuZ5ApLlCwPEi0RQOmVDsgYsJc6341wwcd39d
Av4FUuO93q+7+PouvPB6svAS1D3gP4ubTnw3k4O5zHAT5xVUI9b2aqzVhus3GPALuFrxabjNH330
hua8Ja6o66rdbSppd6JDhbjAR9Fkykd4yhjFMVP06cCJWRvBuzqhArybBJwisonhAfNKDnDdY9uF
wtuiPOA/gzc70c1+b2JxvGsGPsxyxGeYGfzvwmwfq0dx1sMf8uJwg2VuxEktiYt1dYU7dmpwQlwW
9hVVrtUT1MmZToERpz30odSppCmWIhCwObgxcmTDzJIE++rvhgu4QuENUQRcuBVP7DGdgVfqlKHN
2Dqe2nFnlV1b8yU9004qndVd+abXHoOxUvxy+abBiuaM3oS2C34vEF6M1BxNZ34uI5EiEeyUKf3g
YHjWcA2dgLlm085Mv6ZgiwuFT0VNQRcexQM96Ow9rwu8oNzn9d1vGQWNfoyr9nDnYSyKbdYyy+gJ
0V3GbkNWYAKGNiO5BtHmmNsJmNCUSxpwT2Ek4MhCENlkSGbuxQMuAi58NsoDLrwAvdNdZfpthCM6
Q9xCbtb5zXHdQd71VRYNsM37s9a+a1criF8knFPsAsrNGEiy1oZAOdMBI2sEbLKNrOBhsoOU4V7o
d4WAp7o+F1cNisKvQBFw4UE81IHOme1L2MULEGWTnXxvjN+zxy99+Ssb55za9xMSPAkBb5/KZaYv
nMyt8d+BLGgXGjYJA2SR7/1I2m4CWzpD1vrJuHNCovCJqCnowitxHT+sKe13YX/P1PAIu1+F0/rX
99iljuQRb6vO1bdwNnPCo496XQZ0eY6B8V9nF0lBwKjzP5QKskVi7qVGOJe6IzsIeMe0N1jb4aLK
QuGdUR5w4TmQrZx1pSv71XVqp1ra2WVqWShceUhXwxyywPl9wDDncRt5DMpb5XZ3rrG6BZCmiXEV
LAafeXUoQqZx0ON34Nt7MzE6QcRUifeTdx4yXMFtbVgovA5FwIVn4S5Df6+xlPXFA35p773l2MVB
Ds4V+ZYvc+8i51shQuSKCC5OSYOJeRSKYvFl0SYVQtAJOKnW2ScEnKltXMguFN4GNQVdeBXSqN7X
AfmNWF7Dkcl1PKlvP6ea2bFeOPC1XW6WcMZ2fXc28M0IpodcFzs89YxNv9ZOQWIiYNWVHrX0wltW
hrn4MgEXCp+C8oALL4O73hkqstWN6AnEv8tJ7zfH7GCXR37FF9lWOV/4xxrJv0woLPe3MjUdvuyJ
KuQtKBsCjuoiTRTydf4FAj6fWyi8EYqACy/G2Q64mbkL/3edXX6Mc9axsfsrDkoqzz72h1+4fTVG
z3Q8M2t8CYnyN0djVz/Z5BltZNpQdfCv2FxKZBQKn4+agi68CK3j3dMBZY95ZUOmTvBiC3377ge+
mv/6wZVVndPabKVnY0m05449CHiJIGBeEn7Yi4St4lqSgMkfmqpQ+HSUB1y4GrdZvkvKLf9crRtZ
eEgZfUOsfKGV7zHTMrGs4Uf819vO6/U4Vy08ewLJzMDMQEPAAFqHe2PjOs/VWyh8EoqACzfi2g5z
dcfCrt6G3fGnXkJ4z+hY8cxX2SbDHlsl23nJRSrDpXyOM1mvw/oVh2RBuhCwJ5wdWB2n+S2/SqFw
P4qACzfiig5zU59aNcUBZazmiYDPlHoT3HB8oSqucXge7/61ZxgPdvbt1k+feVZEO002JwNb+6O+
eaFwDeoecOEmXNVdrvVp7yVR/wDeu3fcG47P1GT97bdLCO/+jc+BG7sZ5bSfnHmnzbp+1KhxLgTs
x5sKhd+I8oAL34BrO9VZl29RiZJNAgG/vVW+5uriRAXy2f5m93/llzYWOx85d6tl7Pbi8pqAm+TH
CPhn9lIoDCgCLrwQt7uxNt6HH7oD/DPgG/V2SMrJ1Ao+c7zqtE23xre+AjpBwCmwanseqVD4fagp
6MILcY2XOIMsNA7wb+q00Qazb3Tmh27TNQwsm+F9m4XrinZ060cJRYfaYgpgmT6D9/3+hcIqygMu
vBK39j7097/KAR6uQXpsd7zO6VsqTXVdVfy7MR2EvN/he67CBGwG7hPQiV7yQg2Bq5QKhfdAEXDh
Zryyy8iU8xKsO/BzR32JazYwlprFr6oOrauWUf8YhqO5woeFejNYaPfU5UpcPmOFwvujpqALN+OF
XQbjvDtm4nfgYmteOQMrrZ977eQV2E93speUugKI10qnBNxxzZfbfj1aofB+KA+48EmQ9/u7FuU8
96ts0s8L/MK+lGx/DQGjYyVtN9Sv+grlABc+CUXAhU/C/nA8Ht76RZSXMRtxdw6/rWIb8msY8Mnw
u5wjxrO9Ed0G/GulbQK+CkXAhU9CTUEXPgsyzu//Eo6zGA9+vtzou/CCC5ak08RlWpwTcM0jF/4G
ygMuFH4Kpzx0xehbVbnMaCN+fozf7MTy8g1/KW3OvYukUPhNKAIuFC7hNro7RS8/9wvvA+T0ginl
23Dr8bHyyo1DWC+fLPwV1BR04SX4qG73NAImOtZ1ueJTBUlasYulX4Wb1yKbfdnwHsp69VXhr6A8
4MJLgLnN6DrO5V7mrTfGcPBXPDZ09qu+azvcflwuYAI+wMGz8m/6JQuFx1EEXPg8vHAV1nM57/lf
45OHMwR8wAWORs6v8q5XGYXC4ygCLnwgDoffYZZv/BJXqH90s+QUdBIwSW+dKBR+IeoecOHzsDsc
P/tR4G/Em4/ns4eX/DsRcNsUCr8T5QH/WvziE7s7HH7Ho6I3n6PLBd78tJ89vO4Ap9abf5dC4VEU
ARc+EG//GM4L8f0t80Djn/dnFwRczm/ht6MI+K/gR61Zmc7CKrpzu449UxtdpXpR4bej7gH/EUxm
rfDBuOYkvvOJ7lMX691xP3sG+J2/SKHwDJQH/Efw3YuWqhv9CNzMH9zW8m8jsk7Ai5dwfPAXLRSu
QRHw38CFqb+HUf71T+JzG7uvndsk4OFCsfpU4bejpqALH4TqrMbnXu709Vur30CXifeubq9VeYVP
RHnAfwG/5xz3b/Knu+1vnW9g/fOdZ7h+wbDwiSgCLnwUwtP57hn1wgsA+w7ntQi48PtRU9CFB/Gz
HShM9B9/DviXfnn/JGHGb0VdkRU+EeUBFx7Dj/efP99h775P+u7Y17kt/DEUARduxthlMl69qFAo
FG7E7isjhcK1mKb7incLhULhXuyLgAuFQqFQ+HH8t/8fMDkCvd8FGT8AAAAASUVORK5CYIJQSwME
FAAGAAgAAAAhAJZtvEsEBgAAjRoAABQAAABwcHQvdGhlbWUvdGhlbWUyLnhtbOxZ3W7bNhS+H7B3
IHTvWrYl/wR1Clu22y1JWzRpt17SEi2xpkSDpJIYRYE9wYAB3bCbAbvbxW4KbM/UYeseYhRl2aRN
L+jqAAVWG7BI6juHH88hP1LW3XvXKQGXiHFMs77TuOM6AGUhjXAW952nF5Na1wFcwCyChGao7ywR
d+4df/7ZXXgkEpQiIO0zfgT7TiLE4qhe56FshvwOXaBM3ptRlkIhqyyuRwxeSb8pqTddt11PIc4c
kMFUun00m+EQgYvCpXNcOR8T+ZMJXjSEhJ0XrpFhobDRvFFc+JIHhIFLSPqO7CeiVxfoWjiAQC7k
jb7jqo9TP75bXxsRscdWs5uoz8puZRDNm8qOxdO1oef5Xnuw9q8AROzixp1xe9xe+1MAGIZypCUX
HesPe8ORv8JqoLJo8T3qjFoNA6/5b+3gB37xNfAKVBa9HfxkEmxiqIHKom+JSacZeAZegcpiewff
cQcjr2PgFSghOJvvoF2/3Qqq0a4hM0oeWOE935t0miv4BlXXZldpn4l9cy2FLyibSIBKLhQ4A2K5
QDMYSlwACZ4yDE5xnMiJt4AZ5bLZbboTtyV/i6+nSioi8AhBzbpsCvlOU8EH8JDhheg7X0qvjgZ5
noP7VCQ4XPW6a/EAZrFu8e6X7/7+6Rvw128/v3v9vR3PdfwIZfHXGGb/1oHQDd7+8OaP39+8/fHb
P399bYEPGJzq8AucIg4eoivwhKZycJYO0JS9n8VFArFuMchiDjNY2FjQYxk/Hf1wCQm04IbIjOQz
JqXCBryfvzAInycsF9gCPElSA3hGKRlSZh3TSdGXHoU8i+2ds1zHPYHw0tZ3sJXncb6Qcx7bXAYJ
Mmg+JjLlMEYZEqC4R+cIWcyeY2zE9QyHjHI6E+A5BkOIrSG5wFNjNm2MHuBU5mVpIyjzbcTm7BkY
UmJzP0KXJlKuDkhsLhExwngf5gKmVsYwJTryFIrERvJ8yUIj4FzITMeIUDCOEOc2m0dsadA9kRJj
T/sZWaYmkgk8tyFPIaXGAqfzIIHpwsoZZ4mO/YLP5RSF4DEVVhLUXCFFXeZBise+dD/DyEj3zWv7
qZQh+wQp7uTMtiQQNdfjkswgUs7rW5qe4uxGgd+Sdv+2pf0WRf3wcj5g2LqetkV8H25bugPKIvzx
K/cI5tljJBfLJ+H+JNz/R+Het54PL9cbhVbH+Oqwrtyke0/uM0zIuVgSdMqVtnM5vGgiG1VFGa0f
FBaJLK66M3Axg6oMGBVfYZGcJ3Ahu2moHmK+ch1zsKBc7g6q2epb7S55ekajsrXRqJ5NpQEUm3a5
u1Ttci8SZWu7s3kIW7tXtVg9LFcECtv3IaF1ZpJoWUh0qsYbSKiRHYRFz8KiW7jfy0JdVlmR6w/A
4m8N3ysZyfkGCYqKPJX2VXYPnul9wTSH3bQMr1dwPUymDRLadDNJaNMwgRHabj5wrnublBr0ilDs
0uh0byPXhYhsaQPJzBq4kmuu5Us3IVz0nZk8F8piupD+eKGbkMRZ3wnFKtD/RVkWjIsR5EkJU7fK
8adYIAYITuVc19NAsg23RrNTjPEjJddzP77IqYueZDSboVDsadlU5b3SifXuB4KLCs0l6fMkugJT
krMnUAbK7zSKAEaYi3U0I8y0yb2J4pZcrZai8Z/ZZolCskjgakfRxbyEq/KajjYOxXR7VGZ9NZhp
XCTpg3fdm422RHPPBlLsmnb9uL1NXmO10X2DVSnd21rXq7Ru3y7x4RuCRm3TmUGtYGyhtm/vOOCB
QOtuPTX37RGH3g22Z22xQVTnSlXbeTlBpy/kzB/J42pOBC+f/6/lM0JQ/a1cKoFqrdTlWoCc4b7z
0vUHXtD0g5rb9cc1r+W5ta4/aNUGvt9qjP2GOxo2X8mgiCRt+GXfE/k8Q5ardy+qfef9S1ods++E
NK1TdQ6uK2P1/qXR3P/+BWAZmZft5qTX6g3btV5rMKl5o2G31gvaw9qoHXRGk1Hgd3uTVw64VGBv
0Aq89rhbazeCoOa13YJ+t1freM3mwOsMumNv8GoVazny6lqFV/E6/gcAAP//AwBQSwMEFAAGAAgA
AAAhAJZtvEsEBgAAjRoAABQAAABwcHQvdGhlbWUvdGhlbWUxLnhtbOxZ3W7bNhS+H7B3IHTvWrYl
/wR1Clu22y1JWzRpt17SEi2xpkSDpJIYRYE9wYAB3bCbAbvbxW4KbM/UYeseYhRl2aRNL+jqAAVW
G7BI6juHH88hP1LW3XvXKQGXiHFMs77TuOM6AGUhjXAW952nF5Na1wFcwCyChGao7ywRd+4df/7Z
XXgkEpQiIO0zfgT7TiLE4qhe56FshvwOXaBM3ptRlkIhqyyuRwxeSb8pqTddt11PIc4ckMFUun00
m+EQgYvCpXNcOR8T+ZMJXjSEhJ0XrpFhobDRvFFc+JIHhIFLSPqO7CeiVxfoWjiAQC7kjb7jqo9T
P75bXxsRscdWs5uoz8puZRDNm8qOxdO1oef5Xnuw9q8AROzixp1xe9xe+1MAGIZypCUXHesPe8OR
v8JqoLJo8T3qjFoNA6/5b+3gB37xNfAKVBa9HfxkEmxiqIHKom+JSacZeAZegcpiewffcQcjr2Pg
FSghOJvvoF2/3Qqq0a4hM0oeWOE935t0miv4BlXXZldpn4l9cy2FLyibSIBKLhQ4A2K5QDMYSlwA
CZ4yDE5xnMiJt4AZ5bLZbboTtyV/i6+nSioi8AhBzbpsCvlOU8EH8JDhheg7X0qvjgZ5noP7VCQ4
XPW6a/EAZrFu8e6X7/7+6Rvw128/v3v9vR3PdfwIZfHXGGb/1oHQDd7+8OaP39+8/fHbP399bYEP
GJzq8AucIg4eoivwhKZycJYO0JS9n8VFArFuMchiDjNY2FjQYxk/Hf1wCQm04IbIjOQzJqXCBryf
vzAInycsF9gCPElSA3hGKRlSZh3TSdGXHoU8i+2ds1zHPYHw0tZ3sJXncb6Qcx7bXAYJMmg+JjLl
MEYZEqC4R+cIWcyeY2zE9QyHjHI6E+A5BkOIrSG5wFNjNm2MHuBU5mVpIyjzbcTm7BkYUmJzP0KX
JlKuDkhsLhExwngf5gKmVsYwJTryFIrERvJ8yUIj4FzITMeIUDCOEOc2m0dsadA9kRJjT/sZWaYm
kgk8tyFPIaXGAqfzIIHpwsoZZ4mO/YLP5RSF4DEVVhLUXCFFXeZBise+dD/DyEj3zWv7qZQh+wQp
7uTMtiQQNdfjkswgUs7rW5qe4uxGgd+Sdv+2pf0WRf3wcj5g2LqetkV8H25bugPKIvzxK/cI5tlj
JBfLJ+H+JNz/R+Het54PL9cbhVbH+Oqwrtyke0/uM0zIuVgSdMqVtnM5vGgiG1VFGa0fFBaJLK66
M3Axg6oMGBVfYZGcJ3Ahu2moHmK+ch1zsKBc7g6q2epb7S55ekajsrXRqJ5NpQEUm3a5u1Ttci8S
ZWu7s3kIW7tXtVg9LFcECtv3IaF1ZpJoWUh0qsYbSKiRHYRFz8KiW7jfy0JdVlmR6w/A4m8N3ysZ
yfkGCYqKPJX2VXYPnul9wTSH3bQMr1dwPUymDRLadDNJaNMwgRHabj5wrnublBr0ilDs0uh0byPX
hYhsaQPJzBq4kmuu5Us3IVz0nZk8F8piupD+eKGbkMRZ3wnFKtD/RVkWjIsR5EkJU7fK8adYIAYI
TuVc19NAsg23RrNTjPEjJddzP77IqYueZDSboVDsadlU5b3SifXuB4KLCs0l6fMkugJTkrMnUAbK
7zSKAEaYi3U0I8y0yb2J4pZcrZai8Z/ZZolCskjgakfRxbyEq/KajjYOxXR7VGZ9NZhpXCTpg3fd
m422RHPPBlLsmnb9uL1NXmO10X2DVSnd21rXq7Ru3y7x4RuCRm3TmUGtYGyhtm/vOOCBQOtuPTX3
7RGH3g22Z22xQVTnSlXbeTlBpy/kzB/J42pOBC+f/6/lM0JQ/a1cKoFqrdTlWoCc4b7z0vUHXtD0
g5rb9cc1r+W5ta4/aNUGvt9qjP2GOxo2X8mgiCRt+GXfE/k8Q5ardy+qfef9S1ods++ENK1TdQ6u
K2P1/qXR3P/+BWAZmZft5qTX6g3btV5rMKl5o2G31gvaw9qoHXRGk1Hgd3uTVw64VGBv0Aq89rhb
azeCoOa13YJ+t1freM3mwOsMumNv8GoVazny6lqFV/E6/gcAAP//AwBQSwMECgAAAAAAAAAhAFPn
I+FVyAAAVcgAABQAAABwcHQvbWVkaWEvaW1hZ2U5LnBuZ4lQTkcNChoKAAAADUlIRFIAAAKaAAAA
rQgGAAAAEOzfwwAACqdpQ0NQSUNDIFByb2ZpbGUAAEiJlZYHVJNZFsff96U3WiACUkINvXcEEnro
vYlKSCihxBAIKiI2BkdwLIiIgDKiQ1VwVIoMKmLBimLDPiCDgrIOFkRFZT9gCTu7Z3fP3pyb98vN
+/7vvpe8c/4AkO9yhMI0WAaAdEGWKMTLlR4VHUPHDQEIeQEkrTjcTCErKMgP+QTmx7/Gx/uzc8Ed
4xmtf//+v4YsLyGTiywUhHA8L5ObjvBJJDu4QlEWACghUtdalSWc4RKE5UVIgwjXzXDSHHfOcPwc
35qdExbihvAfAODJHI4oCQDSOFKnZ3OTEB0ysltgJuDxBQgzEXbmJnN4CG9A2Cg9feUMH0FYL/6f
dJL+ohkv0eRwkiQ8t5fZwLvzM4VpnDX/53H870hPE8+voYkkOVnkHYKMcsiZ1aWu9JWwID4gcJ75
vNn5s5ws9g6fZ26mW8w88zjuvvMsTg1nzTNHtPAsP4sdNs+ilSESfUFagJ9EP4Et4YRMj9B5TuR7
suc5Jzkscp6z+REB85yZGuq7MMdNUheJQyQ9J4o8JXtMz1zojctZWCsrOcx7oYcoST+8BHcPSV0Q
LpkvzHKVaArTghb6T/OS1DOzQyXPZiF/sHlO4fgELegESc4HhAJ/JC2AFWAhaQ3MAMhKWJ0107Db
SuEaET8pOYvOQm5MAp0t4JoY0S3MzO0BmLl/cz/ve9rcHaRdXajxmABYqwEATy7UUhUB6FoLgHTw
Qo2RBwAxEakPc8Wi7LkaeuYNA4hAGsgDJaAGtIAeMEY6tAGOgAk8gA8IBGEgGiwHXJAM0oEIrAK5
YCMoAEVgJ9gDykEVOATqwFFwHLSBTnAOXALXwC1wDzwGA2AYvAbj4COYgiAIB1EgKqQEqUM6kCFk
AdlBzpAH5AeFQNFQHJQECSAxlAtthoqgYqgcOgjVQ79Cp6Bz0BWoD3oIDUKj0DvoC4yCybA8rArr
wqawHcyCfeEweBmcBGfAOXA+vB0ug6vhI3ArfA6+Bt+DB+DX8AQKoEgoGkoDZYyyQ7mhAlExqESU
CJWHKkSVoqpRTagOVA/qDmoANYb6jMaiqWg62hjtiPZGh6O56Ax0Hnobuhxdh25FX0DfQQ+ix9Hf
MRSMCsYQ44BhY6IwSZhVmAJMKaYG04K5iLmHGcZ8xGKxNCwDa4v1xkZjU7Brsduw+7HN2C5sH3YI
O4HD4ZRwhjgnXCCOg8vCFeD24Y7gzuJu44Zxn/AkvDreAu+Jj8EL8JvwpfgG/Bn8bfxL/BRBhqBD
cCAEEniENYQdhMOEDsJNwjBhiihLZBCdiGHEFOJGYhmxiXiR+IT4nkQiaZLsScEkPmkDqYx0jHSZ
NEj6TJYjG5DdyLFkMXk7uZbcRX5Ifk+hUHQpTEoMJYuynVJPOU95RvkkRZUykWJL8aTWS1VItUrd
lnojTZDWkWZJL5fOkS6VPiF9U3pMhiCjK+Mmw5HJk6mQOSXTLzMhS5U1lw2UTZfdJtsge0V2RA4n
pyvnIceTy5c7JHdeboiKompR3ahc6mbqYepF6rA8Vp4hz5ZPkS+SPyrfKz+uIKdgpRChsFqhQuG0
wgANRdOlsWlptB2047T7tC+LVBexFiUs2rqoadHtRZOKixWZigmKhYrNivcUvyjRlTyUUpV2KbUp
PVVGKxsoByuvUj6gfFF5bLH8YsfF3MWFi48vfqQCqxiohKisVTmkcl1lQlVN1UtVqLpP9bzqmBpN
jamWolaidkZtVJ2q7qzOVy9RP6v+iq5AZ9HT6GX0C/RxDRUNbw2xxkGNXo0pTYZmuOYmzWbNp1pE
LTutRK0SrW6tcW11bX/tXO1G7Uc6BB07nWSdvTo9OpO6DN1I3S26bbojDEUGm5HDaGQ80aPouehl
6FXr3dXH6tvpp+rv179lABtYGyQbVBjcNIQNbQz5hvsN+4wwRvZGAqNqo35jsjHLONu40XjQhGbi
Z7LJpM3kjam2aYzpLtMe0+9m1mZpZofNHpvLmfuYbzLvMH9nYWDBtaiwuGtJsfS0XG/ZbvnWytAq
weqA1QNrqrW/9RbrbutvNrY2Ipsmm1Fbbds420rbfjt5uyC7bXaX7TH2rvbr7TvtPzvYOGQ5HHf4
09HYMdWxwXFkCWNJwpLDS4acNJ04TgedBpzpznHOPzsPuGi4cFyqXZ4ztZg8Zg3zJUuflcI6wnrj
auYqcm1xnXRzcFvn1uWOcvdyL3Tv9ZDzCPco93jmqemZ5NnoOe5l7bXWq8sb4+3rvcu7n63K5rLr
2eM+tj7rfC74kn1Dfct9n/sZ+In8Ovxhfx//3f5PAnQCBAFtgSCQHbg78GkQIygj6LdgbHBQcEXw
ixDzkNyQnlBq6IrQhtCPYa5hO8Ieh+uFi8O7I6QjYiPqIyYj3SOLIweiTKPWRV2LVo7mR7fH4GIi
YmpiJpZ6LN2zdDjWOrYg9v4yxrLVy64sV16etvz0CukVnBUn4jBxkXENcV85gZxqzkQ8O74yfpzr
xt3Lfc1j8kp4owlOCcUJLxOdEosTR5KcknYnjSa7JJcmj/Hd+OX8tyneKVUpk6mBqbWp02mRac3p
+PS49FMCOUGq4MJKtZWrV/YJDYUFwoEMh4w9GeMiX1FNJpS5LLM9Sx4xOtfFeuIfxIPZztkV2Z9W
Raw6sVp2tWD19TUGa7aueZnjmfPLWvRa7truXI3cjbmD61jrDuZBefF53eu11uevH97gtaFuI3Fj
6sYbm8w2FW/6sDlyc0e+av6G/KEfvH5oLJAqEBX0b3HcUvUj+kf+j71bLbfu2/q9kFd4tcisqLTo
6zbutqs/mf9U9tP09sTtvTtsdhzYid0p2Hl/l8uuumLZ4pziod3+u1tL6CWFJR/2rNhzpdSqtGov
ca9470CZX1n7Pu19O/d9LU8uv1fhWtFcqVK5tXJyP2//7QPMA01VqlVFVV9+5v/84KDXwdZq3erS
Q9hD2YdeHI443POL3S/1Nco1RTXfagW1A3UhdRfqbevrG1QadjTCjeLG0SOxR24ddT/a3mTcdLCZ
1lx0DBwTH3v1a9yv94/7Hu8+YXei6aTOycoWakthK9S6pnW8LbltoD26ve+Uz6nuDseOlt9Mfqvt
1OisOK1wescZ4pn8M9Nnc85OdAm7xs4lnRvqXtH9+HzU+bsXgi/0XvS9ePmS56XzPayes5edLnde
cbhy6qrd1bZrNtdar1tfb7lhfaOl16a39abtzfZb9rc6+pb0nbntcvvcHfc7l+6y7167F3Cv7374
/Qf9sf0DD3gPRh6mPXz7KPvR1OMNTzBPCp/KPC19pvKs+nf935sHbAZOD7oPXn8e+vzxEHfo9R+Z
f3wdzn9BeVH6Uv1l/YjFSOeo5+itV0tfDb8Wvp4aK/ib7N8q3+i9Ofkn88/r41Hjw29Fb6ffbXuv
9L72g9WH7omgiWcf0z9OTRZ+UvpU99nuc8+XyC8vp1Z9xX0t+6b/reO77/cn0+nT00KOiDNrBVBI
womIP3hXCwAlGgAq4puJUnP+eDbm/P8cgf/Ecx56NmwAqEaGGVs3Y42qEJ/C6EI0kZyxR2FMAFta
SvIfkZloaTGnRUZcJubT9PR7VQBwHQB8E01PT+2fnv52GGn2IeJjMuZ8+Uz4GSP22sHM3MzqBq5/
A/iX+Ds5pwHMQOxLFAAAAZ1pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1s
bnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpS
REYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMj
Ij4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6
ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhl
bFhEaW1lbnNpb24+NjY2PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4
ZWxZRGltZW5zaW9uPjE3MzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2Ny
aXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo7sGV2AABAAElEQVR4Aey9LZAiyfc2
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
9Fru2u5cjdyNuYPrWOsO5kF58Xnd67XW568f3uC1oW4jcWPqxhubzDYVb/qwOXJzR75q/ob8oR+8
fmgskCoQFfRvcdxS9SP6R/6PvVstt+7b+r2QV3i1yKyotOjrNu62qz+Z/1T20/T2xO29O2x2HNiJ
3SnYeX+Xy666YtninOKh3f67W0voJYUlH/as2HOl1Kq0ai9xr3jvQJlfWfs+7X07930tTy6/V+Fa
0VypUrm1cnI/b//tA8wDTVWqVUVVX37m//zgoNfB1mrd6tJD2EPZh14cjjjc84vdL/U1yjVFNd9q
BbUDdSF1F+pt6+sbVBp2NMKN4sbRI7FHbh11P9reZNx0sJnWXHQMHBMfe/Vr3K/3j/se7z5hd6Lp
pM7JyhZqS2Er1LqmdbwtuW2gPbq975TPqe4Ox46W30x+q+3U6Kw4rXB6xxnimfwz02dzzk50CbvG
ziWdG+pe0f34fNT5uxeCL/Re9L14+ZLnpfM9rJ6zl50ud15xuHLqqt3Vtms211qvW19vuWF9o6XX
prf1pu3N9lv2tzr6lvSdue1y+9wd9zuX7rLvXrsXcK/vfvj9B/2x/QMPeA9GHqY9fPso+9HU4w1P
ME8Kn8o8LX2m8qz6d/3fmwdsBk4Pug9efx76/PEQd+j1H5l/fB3Of0F5UfpS/WX9iMVI56jn6K1X
S18Nvxa+nhor+Jvs3yrf6L05+Sfzz+vjUePDb0Vvp99te6/0vvaD1YfuiaCJZx/TP05NFn5S+lT3
2e5zz5fILy+nVn3FfS37pv+t47vv9yfT6dPTQo6IM2sFUEjCiYg/eFcLACUaACrim4lSc/54Nub8
/xyB/8RzHno2bACoRoYZWzdjjaoQn8LoQjSRnLFHYUwAW1pK8h+RmWhpMadFRlwm5tP09HtVAHAd
AHwTTU9P7Z+e/nYYafYh4mMy5nz5TPgZI/bawczczOoGrn8D+Jf4OzmnAcxA7EsUAAABnWlUWHRY
TUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIg
eDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0
aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUu
Y29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xMjE1PC9leGlm
OlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjYwPC9leGlm
OlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4K
PC94OnhtcG1ldGE+CuVF3M4AAEAASURBVHgB7L0PbFRV2j/+4Y2rQ1ZDS7IwmNgU/7DtLmyHiHmr
EB1gpSP4Li3R0Bp5mb6QzVQNHVc2HTCvFDfCEHWdGrWNKdtijS3BtCMLMmVf7GBgmW/AdLq4O7Og
dn41oQObtNPIpiOazO9zzr3zr5250xaKqPdAZ+6955znPOfzPM+59zzznHNnxJgwJg0PD4+5op/q
COgI6AjoCOgI6AjoCOgI6AhcHQL5+flXR0CvrSOgI6AjoCOgI6AjoCMwBQT+Ywp19Co6AjoCOgI6
AjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjoC3wsEdOfX90JMOpM6AjoCOgI6AjoCOgI6AjoCOgI6
AjoCOgI6AjoCOgI6AlNBQHd+TQU1vY6OgI6AjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjoCOwPcC
Ad359b0Qk86kjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI6AjsBUENCdX1NBTa+jI6AjoCOg
I6AjoCOgI6AjoCOgI6AjoCOgI6AjoCOgI/C9QOBH5Py6iGOdJzByLcUSjSIq/64l0RuX1sWzx3Di
3DVFMHdnL57F4RPncpebRAlFZkJ2k6g0tqgq+7GXvxOMxjKhn2dAYBrsP0Mr+qUfCQJZ7P9H0nu9
mzoCOgKTRSDsh9sbnGwtzfLX5FlGs4UbK9PvcSMYub48hf0eeK9xowm5XUVX4jTGkvguMBrLg36e
AYFpsP8MreiXfiQIZLP/H0n3r7qbM2JMY6kMDw+PvXRtzqMXcfbsJcBAcrfMwaIFc68N3YlQGejE
bNNmHL8whEWi/atOF7F9djGaJJ0VpPv+NaJ7dYydO3EMWLQSC2ZNls4IThw+i0VrliFb1c4HZ2Pz
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
p1Z9xX0t+6b/reO77/cn0+nT00KOiDNrBVBIwomIP3hXCwAlGgAq4puJUnP+eDbm/P8cgf/Ecx56
NmwAqEaGGVs3Y42qEJ/C6EI0kZyxR2FMAFtaSvIfkZloaTGnRUZcJubT9PR7VQBwHQB8E01PT+2f
nv52GGn2IeJjMuZ8+Uz4GSP22sHM3MzqBq5/A/iX+Ds5pwHMQOxLFAAAAZ5pVFh0WE1MOmNvbS5h
ZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9
IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6
YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlm
LzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTIyOTwvZXhpZjpQaXhlbFhE
aW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMTQ8L2V4aWY6UGl4ZWxZ
RGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1w
bWV0YT4KwUqGNgAAQABJREFUeAHsvQ9wU9e5L/rzmQbEPelg897BMm/iJ5LCsc+BWkzgXSUwQYQG
K6RNBI+cCCacyDdMn10yQWlyBuHcU0x6Q8wkaeVME/tmoIjSEyuP82yHhiCndSw6OOgO5FkuyZHq
NLWeMw/LnPuwPKHXgnSG91t7b8mSrb1lDCaQrgWW9l5/vvWt3/rWt9f69K21i64wgOE3/CeDREAi
IBGQCEgEJAISAYmAROB6IvAdfMeA3D6DNJkkEZAISAQkAhIBiYBE4KtF4K++2upl7RIBiYBEQCIg
EZAISAQkAhIBiYBEQCIgEZAISAQkAhKBmw+BorSn2cjIyM3HneRIIiARkAhIBCQCEgGJgETglkag
pKTkluZfMi8RkAhIBCQCEgGJwF8uAtLTTK/vh8/i2Ml+vVQlPpVKgf+vYxhGV9tJjF5HipKUREAi
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
WtRZTLzOlZUcGymqGyRHexf2Ns2B2+uHn/s/zmnayygzAdP4/iRA6vLUUkQ+2VbX9ko5bYTFYhaV
EPB1iK5ob+VB/gjsCt+fCvBUMQ5sYUQjK9pfr0XTHAf3mvPLvQKbDpICoqM7LXGfB5lGRkZSN+Mv
tHtlimPO+vt6avd759W+Lqbe/umTWWVIPdby81TovIpL5O0U/T6Z8sd+nHpPKxuJpH76ZFaZWu/n
oYup0O5cmKJ/ka+ML5SiDyUDUz1/7OehzPjPv5fT75Otu1ORixn6XHzvp2z/WOq9rLxitHu7dWKf
u1WcLoZ2T8BHwznydmu67K3I+dRbKzU4P05FJM8upvp3v5JauXJl6se796VeIU1+qo31YngCjVp+
/nbqPNsV6jObBgoNv5568utqf4+1pvojggYXU7sf03DQjk+mQiotCsHVxjJCfmqy0PJWOBXel5GN
tyVswi9Cez06R/p/noYt+njyx/vkOGV9QYc03QTOj6X2UQazcd3d35/6sZCFlbtToX7BXyEznyhj
/fqTKfp+ZN5jLZQFTVfO9xeQpQwtRkbOp3Zn9/tka+rtiJDD3PwnW1pSj0n4LamwCvv8e7ky0bq7
P8V9lQrKdkYWhT5laCrG8ON97ylyPRnaa+PKP+bxpKV1pUKPlftSRXnKti0q7QQ+K1c+ptAxW9/y
++N15K0WWU+0eZtyv0/T9cd2SzqMGMj2261fV9uSnhdDGV1ufVvSwkhWLobfzuPpY6mfv51lGwrg
qsikAU9vhPZFZEVfTzM6/uSTGj0eS+3uj6jy8FaavoLG2p9iJ6njGr2zyqDRnrb35ys1mKLtk1Kf
JB2MZEWl3Xs594QnVZyK9akv28VtZMZ2F7Ifkf7dqVbaz5Yf707tfuXJ1GM/zfA7/LZiCzT6gHbw
7RDvX8V4aiCfxvenkdR7P8/S4SdbUi2PKbTeF1bHkUdj7f6Ubc/S+JJ/gqeToZERHQrRrZxnLFdl
+uTSR3vWvLXHsVTv6ox9U/SiNXV6VMNiLDXQ1Zi2f6K8oXVPKqKWDx/fk1PWuL0vlW46ejzFeVRO
OdCYioyxz4ZC+VqfkQLt2O+eiFYhNXq6Nwfuxt7jKe5xlE6RrtoUavfk5KULdU4GNubjhFRvRIEa
6c2lgUKnhtRpFg9sZF9ynK2p82OR1GptzBsHlJ7GhlO9r29MrV7dmtrT18uxNcp2snDsfKqrMbff
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
8kp4owlOCcUJLxOdEosTR5KcknYnjSa7JJcmj/Hd+OX8tyneKVUpk6mBqbWp02mRac3p+PS49FMC
OUGq4MJKtZWrV/YJDYUFwoEMh4w9GeMiX1FNJpS5LLM9Sx4xOtfFeuIfxIPZztkV2Z9WRaw6sVp2
tWD19TUGa7aueZnjmfPLWvRa7truXI3cjbmD61jrDuZBefF53eu11uevH97gtaFuI3Fj6sYbm8w2
FW/6sDlyc0e+av6G/KEfvH5oLJAqEBX0b3HcUvUj+kf+j71bLbfu2/q9kFd4tcisqLTo6zbutqs/
mf9U9tP09sTtvTtsdhzYid0p2Hl/l8uuumLZ4pziod3+u1tL6CWFJR/2rNhzpdSqtGovca9470CZ
X1n7Pu19O/d9LU8uv1fhWtFcqVK5tXJyP2//7QPMA01VqlVFVV9+5v/84KDXwdZq3erSQ9hD2Yde
HI443POL3S/1Nco1RTXfagW1A3UhdRfqbevrG1QadjTCjeLG0SOxR24ddT/a3mTcdLCZ1lx0DBwT
H3v1a9yv94/7Hu8+YXei6aTOycoWakthK9S6pnW8LbltoD26ve+Uz6nuDseOlt9Mfqvt1OisOK1w
escZ4pn8M9Nnc85OdAm7xs4lnRvqXtH9+HzU+bsXgi/0XvS9ePmS56XzPayes5edLndecbhy6qrd
1bZrNtdar1tfb7lhfaOl16a39abtzfZb9rc6+pb0nbntcvvcHfc7l+6y7167F3Cv7374/Qf9sf0D
D3gPRh6mPXz7KPvR1OMNTzBPCp/KPC19pvKs+nf935sHbAZOD7oPXn8e+vzxEHfo9R+Zf3wdzn9B
eVH6Uv1l/YjFSOeo5+itV0tfDb8Wvp4aK/ib7N8q3+i9Ofkn88/r41Hjw29Fb6ffbXuv9L72g9WH
7omgiWcf0z9OTRZ+UvpU99nuc8+XyC8vp1Z9xX0t+6b/reO77/cn0+nT00KOiDNrBVBIwomIP3hX
CwAlGgAq4puJUnP+eDbm/P8cgf/Ecx56NmwAqEaGGVs3Y42qEJ/C6EI0kZyxR2FMAFtaSvIfkZlo
aTGnRUZcJubT9PR7VQBwHQB8E01PT+2fnv52GGn2IeJjMuZ8+Uz4GSP22sHM3MzqBq5/A/iX+Ds5
pwHMQOxLFAAAAZ1pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1s
bnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAg
ICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0i
aHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1l
bnNpb24+MTIxNzwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj43MDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9u
PgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo3siKGAABAAElEQVR4Ae29QWhbx9v/+81LAjL8
DPaiQQ40OL7gKim8VvCiLglUvgSsQIvlRcC+0DdyF8HpIlGysULpjXtLibxp5S5ak0WiJAvrkkUU
UrAM4VqFlKhwjeUfuFYCf0c3L1jCWUiggAQ25H5njiRLto5kO3Zi530m2DrnzJlnnvnMc0aZx8/M
OfCGCSYpnU6b5MhlISAEhIAQEAJCQAgIASGwPQLNzc3bKyilhIAQEAJCQAgIASHwFgT+4y3KSlEh
IASEgBAQAkJACAgBISAEhIAQEAJCQAgIASGwLwiIE2xfdJMoKQSEgBAQAkJACAgBISAEhIAQEAJC
QAgIASHwNgTECfY29KSsEBACQkAICAEhIASEgBAQAkJACAgBISAEhMC+ICBOsH3RTaKkEBACQkAI
CAEhIASEgBAQAkJACAgBISAEhMDbEDhYq/BM80ytbMkTAkJACAgBISAEhIAQEAJbJnAGZ2qUGa2R
t/2sUQxvv7CUFAJCQAgIASEgBDSBYezO9/S7wiuRYO+KtNQjBISAEBACQkAICAEhIAS2QSAbC2Mx
ntlGye0VWcnnYfxsr/xulVoKh7C8LQwpPAtGkNstxarKfR91VlVk9y+mYpiPxHe0npIN7qjU9yhs
Fxi9x9a8v6oLY9P7U2D/1ryd7xH1HH6ISZxgH2KvSpuEgBAQAkJACAgBISAENhBYScXxMhbDEn+W
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
6w7mQXnxed3rtdbnrx/e4LWhbiNxY+rGG5vMNhVv+rA5cnNHvmr+hvyhH7x+aCyQKhAV9G9x3FL1
I/pH/o+9Wy237tv6vZBXeLXIrKi06Os27rarP5n/VPbT9PbE7b07bHYc2IndKdh5f5fLrrpi2eKc
4qHd/rtbS+glhSUf9qzYc6XUqrRqL3GveO9AmV9Z+z7tfTv3fS1PLr9X4VrRXKlSubVycj9v/+0D
zANNVapVRVVffub//OCg18HWat3q0kPYQ9mHXhyOONzzi90v9TXKNUU132oFtQN1IXUX6m3r6xtU
GnY0wo3ixtEjsUduHXU/2t5k3HSwmdZcdAwcEx979Wvcr/eP+x7vPmF3oumkzsnKFmpLYSvUuqZ1
vC25baA9ur3vlM+p7g7HjpbfTH6r7dTorDitcHrHGeKZ/DPTZ3POTnQJu8bOJZ0b6l7R/fh81Pm7
F4Iv9F70vXj5kuel8z2snrOXnS53XnG4cuqq3dW2azbXWq9bX2+5YX2jpdemt/Wm7c32W/a3OvqW
9J257XL73B33O5fusu9euxdwr+9++P0H/bH9Aw94D0Yepj18+yj70dTjDU8wTwqfyjwtfabyrPp3
/d+bB2wGTg+6D15/Hvr88RB36PUfmX98Hc5/QXlR+lL9Zf2IxUjnqOforVdLXw2/Fr6eGiv4m+zf
Kt/ovTn5J/PP6+NR48NvRW+n3217r/S+9oPVh+6JoIlnH9M/Tk0WflL6VPfZ7nPPl8gvL6dWfcV9
Lfum/63ju+/3J9Pp09NCjogzawVQSMKJiD94VwsAJRoAKuKbiVJz/ng25vz/HIH/xHMeejZsAKhG
hhlbN2ONqhCfwuhCNJGcsUdhTABbWkryH5GZaGkxp0VGXCbm0/T0e1UAcB0AfBNNT0/tn57+dhhp
9iHiYzLmfPlM+Bkj9trBzNzM6gaufwP4l/g7OacBzEDsSxQAAAGeaVRYdFhNTDpjb20uYWRvYmUu
eG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAg
Q29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0
PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAv
Ij4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjEzNTc8L2V4aWY6UGl4ZWxYRGltZW5z
aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTgxPC9leGlmOlBpeGVsWURpbWVu
c2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+
Cllo6IAAAEAASURBVHgB7H17VFRXmu+vdFaopNdtMBohMaFp50qIgRaMrsZoDyXcNTycNTwypoEM
CnabYAdDmU6PIIm2GoNmmQajI2TsKz4mwNWRhyvyyApQjhroxKYQFBC7kdCjVHFHKWata5V/jHW/
vc85VacKqsBnTNxbqbPP3vt7/fY+53z1nb13aeyUoEojIyOqs0cj2/nFZ9Au/DsE+07SXrsVVhvw
+OOPT5LgwTUzd36BPu1C/GzSxkxeN2WoaDSayROJlgIBgYBAQCAgEBAICAQIgWnTpgkcXBAwob6i
B4vSlsLPpdzzid1qBbmgD6UPaqyvxuOLkhEyWWM8mzmmRvJBNRAu6BhoRIFAQCAgEBAICAQEAvcR
Ac3tB01HceqzTvzk736GycYY74X+fae+AH7yvyYf2CShg12dsMgh4Zs2DQJ/EgZ/rbs2g1g+PQKL
DVegDxtT6d6YnzcVTMerpXbsbL2KrOCxNGaSO0gtfVSyg0m2r3YUnZ3fcB4azU3Y7T9EYFgw/LgH
aEMf0dnsEj9W9NgPAxEc6HdbDmJV1HSsTjbgmj5sXN3vuHD0a/zjj+NQr8mG8do2BN4xI0EoEBAI
CAQEAgIBgcCjiMBdB00tvag3AvFLQx4gfBa0VBsRkTz5wCZgQUdrD+xayaez4XFERIRgjMc4UIkp
s9PRfuMWwsdUjmfiANZNmY1d9r9Fu7VhHBoLeo09sDok2SjAOk2SbRmA8bI0MYJcUNh9AxAe8rTs
Y9qIzqiiA7R+QQgJmnYbPugA4km3qPYbyJucMeMZOG6Zpa0E015+E5qVdbhVFjduG1EoEBAICAQE
AgIBgYBA4H4gMH7QlCafqqefus4s7MOTT/4Sbdf/HcHuGsl0UnviITNh5y5viF3aOZkoMxmlEte3
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
NWhX4VFm0farFwRuwUG0h/p4LMDmFJfjhM6kuZpHKS9swUJ1yXPAEUmOyCMFatvV/iAkpGeiuqsc
r0U+gdJWNa+oV+3TExgkOeJcDWMjJqn/xRx00Eh7cs59nlaM5oN83VKwUl5hRxJLTTkpMSAGzfQL
f2pkKmIO5dNKXrmM9DeIdhBY8hZarw5i8Gorchb+HLqsdAQHRSCLviOZrP4IF7YbHQ5/+i5UU9lm
+x6kkfIQHNIcVPSNaQSDgrPNlmjMeRin1BHubdBKK4kTyO5zKnCVvkiI7y7Girfwjo5WsAbZIesu
9EjpYyNXUV2SgzID9eU0+bob/wGhCdB9moTilm6ynxEYK9/CL6l35HFm76bGjBmYMWMmKvvtcXzE
BJgAE/jaEyBHmUMYHh62fvH/2qyp9KpGehRd82+ztV2rS/en1hAp3Slem8fpuO3D1Rp5suz9bTds
7bvR/qmVnKOaPFHW/Z+2yelX26y7Vqtpq63bN0daEfmh9YZSx4l3x8tevV+UbXOSKcuIktJuWD+M
UmWqn6utbTdU5jesnzrJjdq439p2VU4/9eFGu65RqdbVIUKGtrwqx/nzhvXEfk1ZavP2I6dsHNo/
fdcul9Kith+xXh3W6Jr6ofXUkc1Sng9PtVn3izYsClPKbLSeOHVE6pvUD09ZZS5CJ9GWVAe5tjqp
L9W+3vhJu7X9iD3fp92q7t3W7VL7dNYj7WqftVs3OvSXylBnTf1wIvbd1s1q2dRPrFe7j9h02Pxp
t7Vtv9yfHyr2cSRVkR0l+lxTVpVBn1LedrscW5v2f2qzEzGWbLKUsrItqO2kzxunrIugs2ptU5Rr
+zCOXu8aovQz6RO12XpC5XOj3fquzT5lXTdSvVedxsAXP5Y17ZqkLvc6Tu3l7sEGFd1OfWi3PTGW
PjzRLY+Le+brafwPW6+e+lC5jok+i7Kmrg6R7FDb959k0ncq3Rpr2yT5PQx9zDpOfVwwM2b2VbQB
hwmnl5yMdVfY5gPqfVyX1eCg3WBLvpzHKd4hk8PJmLUiRplH2OYNCdbuMXumqy3FjvXGbLWSU1LK
MNLdYE1Qy8VkWbfE01Pbpd1K4UFrcYKzbJ21lIS7bAvJEWlWa7ddpk12hdWm0tjVcXKzSlusikbW
iqxQm74x6enWUCEjRlPe3jSno0Frabq9rE6XYKWXPSl5xqwtxek2uYI/vTjLQdf0ilZr9VZRPstq
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
BgAIAAAAIQDTUaG21wAAAL8BAAAgAAAAAAAAAAAAAAAAAIgJAABwcHQvc2xpZGVzL19yZWxzL3Ns
aWRlNC54bWwucmVsc1BLAQItABQABgAIAAAAIQDLCHM3NQEAAH0GAAAfAAAAAAAAAAAAAAAAAJ0K
AABwcHQvX3JlbHMvcHJlc2VudGF0aW9uLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhAF2b1XLXAAAA
vwEAACAAAAAAAAAAAAAAAAAAFw0AAHBwdC9zbGlkZXMvX3JlbHMvc2xpZGU1LnhtbC5yZWxzUEsB
Ai0AFAAGAAgAAAAhAIcft3bvAAAAUwMAACAAAAAAAAAAAAAAAAAALA4AAHBwdC9zbGlkZXMvX3Jl
bHMvc2xpZGUzLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhAD2F7d7CAgAAEA4AABQAAAAAAAAAAAAA
AAAAWQ8AAHBwdC9wcmVzZW50YXRpb24ueG1sUEsBAi0AFAAGAAgAAAAhAHVwKILgBAAAshIAABUA
AAAAAAAAAAAAAAAATRIAAHBwdC9zbGlkZXMvc2xpZGUyLnhtbFBLAQItABQABgAIAAAAIQAMlj4U
5QQAAMESAAAVAAAAAAAAAAAAAAAAAGAXAABwcHQvc2xpZGVzL3NsaWRlMy54bWxQSwECLQAUAAYA
CAAAACEAPOhQwg0HAAAwHAAAFQAAAAAAAAAAAAAAAAB4HAAAcHB0L3NsaWRlcy9zbGlkZTEueG1s
UEsBAi0AFAAGAAgAAAAhAAfpXX2eCAAAHygAABUAAAAAAAAAAAAAAAAAuCMAAHBwdC9zbGlkZXMv
c2xpZGU0LnhtbFBLAQItABQABgAIAAAAIQADaOMphgYAAIoWAAAVAAAAAAAAAAAAAAAAAIksAABw
cHQvc2xpZGVzL3NsaWRlNS54bWxQSwECLQAUAAYACAAAACEA0WBlq9wAAABYAgAALAAAAAAAAAAA
AAAAAABCMwAAcHB0L3NsaWRlTWFzdGVycy9fcmVscy9zbGlkZU1hc3RlcjEueG1sLnJlbHNQSwEC
LQAUAAYACAAAACEASq91OdIAAAC/AQAAKgAAAAAAAAAAAAAAAABoNAAAcHB0L25vdGVzU2xpZGVz
L19yZWxzL25vdGVzU2xpZGUxLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhAAa8XGyVBgAAkCsAACEA
AAAAAAAAAAAAAAAAgjUAAHBwdC9zbGlkZU1hc3RlcnMvc2xpZGVNYXN0ZXIxLnhtbFBLAQItABQA
BgAIAAAAIQAnEnoyoQIAAF0GAAAfAAAAAAAAAAAAAAAAAFY8AABwcHQvbm90ZXNTbGlkZXMvbm90
ZXNTbGlkZTEueG1sUEsBAi0AFAAGAAgAAAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAAND8A
AHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQxLnhtbC5yZWxzUEsBAi0AFAAGAAgA
AAAhANXRkvG8AAAANwEAACwAAAAAAAAAAAAAAAAAOkAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMv
c2xpZGVMYXlvdXQyLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhAMLSYhaBAwAASgoAACEAAAAAAAAA
AAAAAAAAQEEAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQyLnhtbFBLAQItABQABgAIAAAA
IQBTGE+WCQQAAOEMAAAhAAAAAAAAAAAAAAAAAABFAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5
b3V0MS54bWxQSwECLQAUAAYACAAAACEAJNIST7YFAABtHQAAIQAAAAAAAAAAAAAAAABISQAAcHB0
L25vdGVzTWFzdGVycy9ub3Rlc01hc3RlcjEueG1sUEsBAi0ACgAAAAAAAAAhALLXrMPvHgAA7x4A
ABcAAAAAAAAAAAAAAAAAPU8AAGRvY1Byb3BzL3RodW1ibmFpbC5qcGVnUEsBAi0ACgAAAAAAAAAh
AGhYnWn9wwAA/cMAABUAAAAAAAAAAAAAAAAAYW4AAHBwdC9tZWRpYS9pbWFnZTExLnBuZ1BLAQIt
ABQABgAIAAAAIQC0z1gZuQAAACQBAAAsAAAAAAAAAAAAAAAAAJEyAQBwcHQvbm90ZXNNYXN0ZXJz
L19yZWxzL25vdGVzTWFzdGVyMS54bWwucmVsc1BLAQItAAoAAAAAAAAAIQD6yktCKMIAACjCAAAV
AAAAAAAAAAAAAAAAAJQzAQBwcHQvbWVkaWEvaW1hZ2UxMC5wbmdQSwECLQAKAAAAAAAAACEAqiGt
FaWFAAClhQAAFAAAAAAAAAAAAAAAAADv9QEAcHB0L21lZGlhL2ltYWdlOC5wbmdQSwECLQAKAAAA
AAAAACEAKSlVQR2vAAAdrwAAFAAAAAAAAAAAAAAAAADGewIAcHB0L21lZGlhL2ltYWdlMy5wbmdQ
SwECLQAKAAAAAAAAACEA14NBLe2VAADtlQAAFAAAAAAAAAAAAAAAAAAVKwMAcHB0L21lZGlhL2lt
YWdlMi5wbmdQSwECLQAKAAAAAAAAACEAMrEpck12AQBNdgEAFAAAAAAAAAAAAAAAAAA0wQMAcHB0
L21lZGlhL2ltYWdlMS5wbmdQSwECLQAUAAYACAAAACEAlm28SwQGAACNGgAAFAAAAAAAAAAAAAAA
AACzNwUAcHB0L3RoZW1lL3RoZW1lMi54bWxQSwECLQAUAAYACAAAACEAlm28SwQGAACNGgAAFAAA
AAAAAAAAAAAAAADpPQUAcHB0L3RoZW1lL3RoZW1lMS54bWxQSwECLQAKAAAAAAAAACEAU+cj4VXI
AABVyAAAFAAAAAAAAAAAAAAAAAAfRAUAcHB0L21lZGlhL2ltYWdlOS5wbmdQSwECLQAKAAAAAAAA
ACEAPC4Lz+y9AADsvQAAFAAAAAAAAAAAAAAAAACmDAYAcHB0L21lZGlhL2ltYWdlNC5wbmdQSwEC
LQAKAAAAAAAAACEAgn/Oe9L0AADS9AAAFAAAAAAAAAAAAAAAAADEygYAcHB0L21lZGlhL2ltYWdl
Ni5wbmdQSwECLQAKAAAAAAAAACEA7mUGym9fAABvXwAAFAAAAAAAAAAAAAAAAADIvwcAcHB0L21l
ZGlhL2ltYWdlNS5wbmdQSwECLQAKAAAAAAAAACEA85zjhzeZAQA3mQEAFAAAAAAAAAAAAAAAAABp
HwgAcHB0L21lZGlhL2ltYWdlNy5wbmdQSwECLQAUAAYACAAAACEAwRWotKwBAAB5AwAAEQAAAAAA
AAAAAAAAAADSuAkAcHB0L3ByZXNQcm9wcy54bWxQSwECLQAUAAYACAAAACEAQEiOWYwBAAAxAwAA
EQAAAAAAAAAAAAAAAACtugkAcHB0L3ZpZXdQcm9wcy54bWxQSwECLQAUAAYACAAAACEA2P2Nj6wA
AAC2AAAAEwAAAAAAAAAAAAAAAABovAkAcHB0L3RhYmxlU3R5bGVzLnhtbFBLAQItABQABgAIAAAA
IQBqi4UqkAIAADMGAAAQAAAAAAAAAAAAAAAAAEW9CQBkb2NQcm9wcy9hcHAueG1sUEsBAi0AFAAG
AAgAAAAhAM+Lw1KAAQAAzAIAABEAAAAAAAAAAAAAAAAAC8EJAGRvY1Byb3BzL2NvcmUueG1sUEsF
BgAAAAArACsABAwAAMLDCQAAAA==
--0000000000000a6aad058d612dca--


From nobody Thu Jul 11 08:15:18 2019
Return-Path: <aretana.ietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 235181200E6 for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 08:15:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.701
X-Spam-Level: 
X-Spam-Status: No, score=-0.701 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, PDS_NO_HELO_DNS=1.295, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=no 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 AFj3Bk5AlHNR for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 08:15:14 -0700 (PDT)
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) (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 6DBC1120135 for <rift@ietf.org>; Thu, 11 Jul 2019 08:15:14 -0700 (PDT)
Received: by mail-ed1-x531.google.com with SMTP id i11so6192312edq.0 for <rift@ietf.org>; Thu, 11 Jul 2019 08:15:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=n1mZPFfeAWw4KnCh9+/qYuTmT3p8a7HU5BlTPwmSH4w=; b=EaY6xUyii6dKUH/+RZYMBrVTs1tCXNXRDypWoWs1LEeCVq4PlIIle912NemHRrXkBp mKTfveoxVvPk8NjTJKnlemaH3Q3XA66j3MSdmFIjieZI8jxV+9hfXCLLTkF8FI/kiWfV y3lAzE4yBv1SSn3Xh1mOoOPDHWY7Os9ewAH1iISR3AYm4mkTfdi1b6zKiB3wYct2vPVF uei0Wqi+XV5liK1AkFktFNoqKwEVfM5/6UstxMc7rXQRM6xdBFShX6k7+yU1hgMnDh2z XTc75Y/HGuSfvB+4ucxqM+tis85egY2pRC/Hh9CUvRP2LPbT7ALzHFcvVF5YcR90jvhI cUuw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=n1mZPFfeAWw4KnCh9+/qYuTmT3p8a7HU5BlTPwmSH4w=; b=h0p0m38uttfOjr81QIv0CiTpEMI2mBP/mdwrGwHCpR0W/Ls73naSqPh1LbqJChcfrX 12aFFhrrEcC3ZapK5b6CJ9RkmSSRni5RC/hJX3fPwomTpUEZiY3XmLCI3+PcsuaNjYXZ uc3B2Fd1hfEeEKqUN3no7Y49EkTGoVCSXxbe5gQo2xNYE7sdaCyTI+EXfjjYBHPMd9cH 5INazt1XNC55LO+qb2Uta4Nq5xZFvpt26eg41h/9ho2CMkycQgOzm4Xz8SOqbRVFi4nn Zg6gJagU76yc4pucGhIXeTY9LUVVhWQLtIl8/eYa0UYgEwtirmGgAowxYFa5WEq6bL42 twbw==
X-Gm-Message-State: APjAAAWYOMQ5G6GtuXVoG7GJcxZuQF8qOk5Ph2XRRQE4I3wh6dNJcgaE wrIX1cShOzrajz0YC9mZ/7U4TtngM7z7kYeedwU=
X-Google-Smtp-Source: APXvYqyTH6tVJRXuY1siyqkZwEnt5SiF7QEMDJI3EPJQwS/TQtfYnQHEbuf/XM59zHSqSPFjEyZGX6pbzOHPn8aD/O0=
X-Received: by 2002:aa7:c313:: with SMTP id l19mr4116607edq.258.1562858113053;  Thu, 11 Jul 2019 08:15:13 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Thu, 11 Jul 2019 08:15:11 -0700
From: Alvaro Retana <aretana.ietf@gmail.com>
In-Reply-To: <MWHPR05MB3279B78E6D9AECB771D2497FACF00@MWHPR05MB3279.namprd05.prod.outlook.com>
References: <201907101656125835263@zte.com.cn> <MWHPR05MB3279B78E6D9AECB771D2497FACF00@MWHPR05MB3279.namprd05.prod.outlook.com>
MIME-Version: 1.0
Date: Thu, 11 Jul 2019 08:15:11 -0700
Message-ID: <CAMMESsyLRtyTaMTFqzuizuNgxfRm6iuFqfun-711ayq5H4Cb8A@mail.gmail.com>
To: Antoni Przygienda <prz=40juniper.net@dmarc.ietf.org>,  "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>
Cc: "rift@ietf.org" <rift@ietf.org>, "EXT-zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>,  "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>
Content-Type: multipart/alternative; boundary="000000000000a9b796058d694270"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/DlFg6L9TcsPyUtA1Ki82lLGaekU>
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 15:15:16 -0000

--000000000000a9b796058d694270
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On July 10, 2019 at 11:05:40 AM, Antoni Przygienda (
prz=3D40juniper.net@dmarc.ietf.org) wrote:

Hi!

I might be jumping in without proper context, but this text caught my
attention...

b) If you want the "laziest" possible implementation then in fact yes, you
can fall back on

"

All RIFT routers MUST support IPv4 forwarding and MAY support IPv6
   forwarding.  A three way adjacency over IPv6 addresses implies
   support for IPv4 forwarding.

"

=E2=80=A6because the WG Charter says that "The protocol must support IPv6 a=
nd
should also support IPv4.=E2=80=9D   So the text above contradicts the Char=
ter.

Alvaro.

--000000000000a9b796058d694270
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div style=3D"margin:0px"><font=
 face=3D"Helvetica">On July 10, 2019 at 11:05:40 AM, Antoni Przygienda (<a =
href=3D"mailto:prz=3D40juniper.net@dmarc.ietf.org">prz=3D40juniper.net@dmar=
c.ietf.org</a>) wrote:</font></div><div style=3D"margin:0px"><font face=3D"=
Helvetica"><br></font></div><div style=3D"margin:0px"><font face=3D"Helveti=
ca">Hi!</font></div><div style=3D"margin:0px"><font face=3D"Helvetica"><br>=
</font></div><div style=3D"margin:0px"><font face=3D"Helvetica">I might be =
jumping in without proper context, but this text caught my attention...</fo=
nt></div><div style=3D"margin:0px"><font face=3D"Helvetica"><br></font></di=
v> <div><blockquote type=3D"cite" class=3D"clean_bq" style=3D"font-variant-=
caps:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-tra=
nsform:none;white-space:normal;word-spacing:0px"><span><div><font face=3D"H=
elvetica"><div style=3D"color:rgb(0,0,0);font-variant-caps:normal;letter-sp=
acing:normal;text-align:start;text-indent:0px;text-transform:none;white-spa=
ce:normal;word-spacing:0px">b) If you want the &quot;laziest&quot; possible=
 implementation then in fact yes, you can fall back on<br></div><div style=
=3D"color:rgb(0,0,0);font-variant-caps:normal;letter-spacing:normal;text-al=
ign:start;text-indent:0px;text-transform:none;white-space:normal;word-spaci=
ng:0px"><br></div><div style=3D"color:rgb(0,0,0);font-variant-caps:normal;l=
etter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;w=
hite-space:normal;word-spacing:0px">&quot;<pre>All RIFT routers MUST suppor=
t IPv4 forwarding and MAY support IPv6
   forwarding.  A three way adjacency over IPv6 addresses implies
   support for IPv4 forwarding.</pre>&quot;</div></font></div></span></bloc=
kquote></div><p><font face=3D"Helvetica">=E2=80=A6because the WG Charter sa=
ys that &quot;The protocol must support IPv6 and should also support IPv4.=
=E2=80=9D =C2=A0 So the text above contradicts the Charter.</font></p><p><f=
ont face=3D"Helvetica">Alvaro.</font></p> <div class=3D"gmail_signature"></=
div></body></html>

--000000000000a9b796058d694270--


From nobody Thu Jul 11 08:49:35 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5681B120371 for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 08:49:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 EQcCljaMMAMX for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 08:49:30 -0700 (PDT)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 22DA612038C for <rift@ietf.org>; Thu, 11 Jul 2019 08:49:13 -0700 (PDT)
Received: from pps.filterd (m0108158.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6BFhuBs000327; Thu, 11 Jul 2019 08:49:11 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=ea1dVY2nES7kImfrXtubuLn0ApBFgV8cUFM4672wO4Y=; b=ndl+Hena69Dg36Ka0/qa5V0bhXLFDk09CMSo1E+91l91RkvHRIs34PVaKOc+GVBR1RYu B41x9qY3qAJXJ4FANInntvz4Am925bsg0YsW9qpCV5gz6t4wkYjTEkV/QhsCyveUEGH/ yT9+uQCJ6OIvBGN0yxFZjgGrPV1W1bBCL/tmFE/kG2dfQcVkISuk+lmGxC6KHhg1kaQW vR4Zd7L1CuKf05Tiu5tBljraSu0y9N9nvkWMJB4S6rggHSNDz0yha0xU8PpAd67lQ6Gy 2lcUU7nPjAT1zaECW3km/mjdRBBVfg/lAunlB4oTuhDUddkeiZroLTIbyLApVN+UETLV Ow== 
Received: from nam03-co1-obe.outbound.protection.outlook.com (mail-co1nam03lp2052.outbound.protection.outlook.com [104.47.40.52]) by mx0a-00273201.pphosted.com with ESMTP id 2tp7b7gbna-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 11 Jul 2019 08:49:07 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cZJ9fpBsYMofeIjD5FCwS4qey4Euc6upDSMVEzL5/Wib4NeQXST1BBA2iN+CLOUvAnOic2YlXxMZNOdaohTnIKi6GiQkTXAsOtcDbaZ8/8kbFWtYFOH+YfC7baiIa6JELrUYjuIg9zR6vyMxLEBZuOKCplgnyy7ibJGwSP9x2gV9HdqTswE9eVr9r8qPThhnBhrTnTbutbXlwVlzwWhoG+/Hzy7EJxlEx87QqhRPgqeRWhCvVjEN5kNI6Woui7YWIYO6dUe9Gjpdn5RrxVbhawHbtEZlCc9PFvr4R+oiuwsmxXlU7hDSA0iwOUL05hxNyjE/LG/v6udrNTgHEqEaVA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ea1dVY2nES7kImfrXtubuLn0ApBFgV8cUFM4672wO4Y=; b=NR0YOXAJ6tJMeAnGG0qK5tV02z5DJw91IGeU+5VBuHI9G7L0HAoOVOX6YrE2foXofasA2s3u+TayGQld1RacH/Ta4y5ztuN5ZuoKCDklMhJQWZIYLqPlLDmm31mympRaoJDZbNMOOxvY0ehM0MBwM9G8DlaMSYfRL0yRnmrWU3IsGtIWjoCnfgFnHv+afAcQPlCcs99Vg4JAB+WVy/4tVZ7PH+lq4yzyqIWLLLtVllcT9wMoQ4r7FSQllAj6EkdcLVJfmPFFjmCxHSpxxSKEFXGifsxuJrPbzKzlBDCl+pds+9shB2V5gKHrMsmcQb4hMA5kQzOBPwnX9JMv3Bk5uw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB3613.namprd05.prod.outlook.com (10.174.251.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.10; Thu, 11 Jul 2019 15:49:01 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2073.008; Thu, 11 Jul 2019 15:49:01 +0000
From: Antoni Przygienda <prz@juniper.net>
To: Alvaro Retana <aretana.ietf@gmail.com>, "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>
CC: "rift@ietf.org" <rift@ietf.org>, "EXT-zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>, "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>
Thread-Topic: [Rift] Ipv4 and ipv6 cooperating in rift
Thread-Index: AQHVN/t2moUIktH57U6a1GLdGPIhbKbFjHe0
Date: Thu, 11 Jul 2019 15:49:00 +0000
Message-ID: <MWHPR05MB3279BAF107468754E6FD72EBACF30@MWHPR05MB3279.namprd05.prod.outlook.com>
References: <201907101656125835263@zte.com.cn> <MWHPR05MB3279B78E6D9AECB771D2497FACF00@MWHPR05MB3279.namprd05.prod.outlook.com>, <CAMMESsyLRtyTaMTFqzuizuNgxfRm6iuFqfun-711ayq5H4Cb8A@mail.gmail.com>
In-Reply-To: <CAMMESsyLRtyTaMTFqzuizuNgxfRm6iuFqfun-711ayq5H4Cb8A@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [108.228.12.76]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 682d8fdb-a512-4106-69a5-08d706174b3a
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB3613; 
x-ms-traffictypediagnostic: MWHPR05MB3613:
x-ld-processed: bea78b3c-4cdb-4130-854a-1d193232e5f4,ExtAddr
x-microsoft-antispam-prvs: <MWHPR05MB3613D3F5F6D47944336DEF07ACF30@MWHPR05MB3613.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0095BCF226
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(396003)(376002)(366004)(346002)(136003)(39860400002)(189003)(199004)(6436002)(66476007)(256004)(2906002)(236005)(68736007)(64756008)(66556008)(66946007)(446003)(54896002)(33656002)(7736002)(74316002)(476003)(71190400001)(53936002)(9686003)(4326008)(229853002)(66066001)(2501003)(66446008)(76116006)(486006)(71200400001)(6246003)(25786009)(107886003)(55016002)(11346002)(105004)(81166006)(8936002)(81156014)(316002)(186003)(76176011)(7696005)(66574012)(99286004)(54906003)(110136005)(19627405001)(478600001)(52536014)(102836004)(6506007)(14454004)(3846002)(6116002)(86362001)(5660300002)(8676002)(26005)(53546011); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB3613; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: SD1a4gj2t7S2sXp8Eub0vJtOUUzvf5N2NDa5M0CV2sUsxCGXDNTRoMuxAyIg++HdxWTtnMmFNzq7cQKItkpHqoR5a92yLB80fLlINihCE1oKySUZOtrrvQFtu732J0OK/QepkawZhPbYMOb7beOPPDEJ3Vex17ehSOQ+neRub2LWERm2UAl2w/FI/oe7/P+TErveYV5G8W3YHQdfCEI61yhkA3uWCMkQoIGddbr4OedzGYMMhVXOkuYLhGqLFTzbgeLOI4RRKpuD8CqKwYU1dbz++5u7mXgP+8vYv9ATcONo6/dCsXdctp6M0Q7vf5YXeUp60zZGUVwduO5ncrYU8f/Nj1HqSYwKVUkXY8yH4tvwr/0evjogzA/U6dlnsmvbCYAXTSYgutL15rGLh2/Ruu5xGD5yfb+xnbRPKO8oqh0=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB3279BAF107468754E6FD72EBACF30MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 682d8fdb-a512-4106-69a5-08d706174b3a
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2019 15:49:00.9699 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3613
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-11_03:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907110177
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/PvvotgM8dXTo4c14NNpyb0tSNgU>
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 15:49:34 -0000

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

Alvaro, protocol specification requirements and router running the protocol=
 requirements are AFAIS not the same thing. And the distinction is meaningf=
ul here.

So, the protocol DOES support IPv6 and it DOES suppoort IPv4 so it does ful=
fill the charter you refer to perfectly.

not to the requirements _of devices runing RIFT_:  we cannot mandate that e=
veryone in reality will run IPv6 forwarding on the fabric so the reality is=
 that every silicon does IPv4 today and some does IPv6. And then IPv4 over =
IPv6 is reality while IPv6 over IPv4 is not (since IPv6 does ND anyway so w=
hy would you).  So it is very good for v6 here to basically make it an impl=
icit transport for v4 (by saying running v6 does _automatically_ give you v=
4 forwarding) while making sure that v4 being-de-facto-what-e'one-can-do is=
 the lowest common denominator of the router's running RIFT. RIFT being onl=
y usable if a router/switch can do IPv6 is simply not a practical propositi=
on AFAIS.  We could arguably split it into a "RIFT router/switch requiremen=
ts document" but that seems just paper bloat ...

So I think we are meeting the charter mandating protocol specification perf=
ectly while @ the same the spec is aligning with reality of v4ov6 forwardin=
g without v4 addresses. We could just as well remove the sentence and every=
thing would work except we'd end up in lots of discussions/possibly non-int=
eroperable implementations in regards to v4 forwarding when no v4 addresses=
 are present and people considering things undeployable until all the silic=
on in the world does v6 and everyone runs v6 by default everywhere. Which m=
ay happen but not in a foreseable future I can discern ...

I hope I do make sense ...

--- tony


________________________________
From: Alvaro Retana <aretana.ietf@gmail.com>
Sent: Thursday, July 11, 2019 8:15 AM
To: Antoni Przygienda; xu.benchong@zte.com.cn
Cc: rift@ietf.org; EXT-zhang.zheng@zte.com.cn; Jeffrey (Zhaohui) Zhang
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift

On July 10, 2019 at 11:05:40 AM, Antoni Przygienda (prz=3D40juniper.net@dma=
rc.ietf.org<mailto:prz=3D40juniper.net@dmarc.ietf.org>) wrote:

Hi!

I might be jumping in without proper context, but this text caught my atten=
tion...

b) If you want the "laziest" possible implementation then in fact yes, you =
can fall back on

"

All RIFT routers MUST support IPv4 forwarding and MAY support IPv6
   forwarding.  A three way adjacency over IPv6 addresses implies
   support for IPv4 forwarding.

"

=85because the WG Charter says that "The protocol must support IPv6 and sho=
uld also support IPv4.=94   So the text above contradicts the Charter.

Alvaro.

--_000_MWHPR05MB3279BAF107468754E6FD72EBACF30MWHPR05MB3279namp_
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">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Alvaro, protocol specification requirements and router running the protocol=
 requirements are AFAIS not the same thing. And the distinction is meaningf=
ul here.
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
So, the protocol DOES support IPv6 and it DOES suppoort IPv4 so it does ful=
fill the charter you refer to perfectly.
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
not to the requirements _of devices runing RIFT_:&nbsp; we cannot mandate t=
hat everyone in reality will run IPv6 forwarding on the fabric so the reali=
ty is that every silicon does IPv4 today and some does IPv6. And then IPv4 =
over IPv6 is reality while IPv6 over
 IPv4 is not (since IPv6 does ND anyway so why would you).&nbsp; So it is v=
ery good for v6 here to basically make it an implicit transport for v4 (by =
saying running v6 does _automatically_ give you v4 forwarding) while making=
 sure that v4 being-de-facto-what-e'one-can-do
 is the lowest common denominator of the router's running RIFT. RIFT being =
only usable if a router/switch can do IPv6 is simply not a practical propos=
ition AFAIS.&nbsp; We could arguably split it into a &quot;RIFT router/swit=
ch requirements document&quot; but that seems just
 paper bloat ... <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
So I think we are meeting the charter mandating protocol specification perf=
ectly while @ the same the spec is aligning with reality of v4ov6 forwardin=
g without v4 addresses. We could just as well remove the sentence and every=
thing would work except we'd end
 up in lots of discussions/possibly non-interoperable implementations in re=
gards to v4 forwarding when no v4 addresses are present and people consider=
ing things undeployable until all the silicon in the world does v6 and ever=
yone runs v6 by default everywhere.
 Which may happen but not in a foreseable future I can discern ... <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
I hope I do make sense ... <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
--- tony <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Alvaro Retana &lt;are=
tana.ietf@gmail.com&gt;<br>
<b>Sent:</b> Thursday, July 11, 2019 8:15 AM<br>
<b>To:</b> Antoni Przygienda; xu.benchong@zte.com.cn<br>
<b>Cc:</b> rift@ietf.org; EXT-zhang.zheng@zte.com.cn; Jeffrey (Zhaohui) Zha=
ng<br>
<b>Subject:</b> Re: [Rift] Ipv4 and ipv6 cooperating in rift</font>
<div>&nbsp;</div>
</div>
<style>
<!--
body
	{font-family:Helvetica,Arial;
	font-size:13px}
-->
</style>
<div style=3D"word-wrap:break-word">
<div style=3D"margin:0px"><font face=3D"Helvetica">On July 10, 2019 at 11:0=
5:40 AM, Antoni Przygienda (<a href=3D"mailto:prz=3D40juniper.net@dmarc.iet=
f.org">prz=3D40juniper.net@dmarc.ietf.org</a>) wrote:</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica"><br>
</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica">Hi!</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica"><br>
</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica">I might be jumping in wi=
thout proper context, but this text caught my attention...</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica"><br>
</font></div>
<div>
<blockquote type=3D"cite" class=3D"x_clean_bq" style=3D"font-variant-caps:n=
ormal; letter-spacing:normal; text-align:start; text-indent:0px; text-trans=
form:none; white-space:normal; word-spacing:0px">
<span>
<div><font face=3D"Helvetica">
<div style=3D"color:rgb(0,0,0); font-variant-caps:normal; letter-spacing:no=
rmal; text-align:start; text-indent:0px; text-transform:none; white-space:n=
ormal; word-spacing:0px">
b) If you want the &quot;laziest&quot; possible implementation then in fact=
 yes, you can fall back on<br>
</div>
<div style=3D"color:rgb(0,0,0); font-variant-caps:normal; letter-spacing:no=
rmal; text-align:start; text-indent:0px; text-transform:none; white-space:n=
ormal; word-spacing:0px">
<br>
</div>
<div style=3D"color:rgb(0,0,0); font-variant-caps:normal; letter-spacing:no=
rmal; text-align:start; text-indent:0px; text-transform:none; white-space:n=
ormal; word-spacing:0px">
&quot;
<pre>All RIFT routers MUST support IPv4 forwarding and MAY support IPv6
   forwarding.  A three way adjacency over IPv6 addresses implies
   support for IPv4 forwarding.</pre>
&quot;</div>
</font></div>
</span></blockquote>
</div>
<p><font face=3D"Helvetica">=85because the WG Charter says that &quot;The p=
rotocol must support IPv6 and should also support IPv4.=94 &nbsp; So the te=
xt above contradicts the Charter.</font></p>
<p><font face=3D"Helvetica">Alvaro.</font></p>
<div class=3D"x_gmail_signature"></div>
</div>
</body>
</html>

--_000_MWHPR05MB3279BAF107468754E6FD72EBACF30MWHPR05MB3279namp_--


From nobody Thu Jul 11 08:53:48 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 921F8120311 for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 08:53:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 8EdYiMjYM4NG for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 08:53:41 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 D48E81202BB for <rift@ietf.org>; Thu, 11 Jul 2019 08:53:40 -0700 (PDT)
Received: from pps.filterd (m0108161.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6BFoFd5013803; Thu, 11 Jul 2019 08:53:39 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=vI8Fhnl7sz29HJSpKsabG4pwWVXlLbRaeBWdWihK9Wk=; b=vQcxPPoOfw7b19rXpE+LllHGP2IaMxkrx8SUSxCIZBlpnkqI/XzOOy19TRCDRRLht4Wm i8y+N9T3XoZr5ITGPzdVz2kYoDA5/Q9n6qvx6rfisugO0++WqgbRpCfOF95hHoll3NG+ gD7Gm17YALmMxqprV0nz+it97xowzrN9LLPq8hziiGUO0XlxHIhYfAEqqExEdkg2Ugyv cgpGQ9g/JhHZv+6xReiu7v0ArOL9zvMywjm5sJYtc7SB41A9Lo78K2HmBpR+0FHjSaqi jcgz2ygisgUSGSm6rDqlu4HyyyIXxD0i4ZTOSOimJIxuwCKu+JX+0sh73v7CFrbNbVir yA== 
Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2052.outbound.protection.outlook.com [104.47.36.52]) by mx0b-00273201.pphosted.com with ESMTP id 2tp7eug96w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 11 Jul 2019 08:53:38 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QYP1TBdi01AOCstVK3Q3IbyAUn/LpPnFE0oyZM1c6U/cersy3pXQ9LdYgOd0fRYX2+nwRiOMxi2gxyWucL3aC7YiOzuqTM4ahNAUovIyWXbqZZ6iQHMmcu285Yy1cPUXLTl+jrHyd3b6nsCwgz9nYHrV1sMOTwLYVWcJqem8HBchhpKebIG4FhpgDaQyLDy71CJARnFrdXI053PeQcfKk5FW27hd4ENpABVfFi7+11JwOMWCHQwott+qXYuErkMx9BIYt5uxn1G65H2pCEQUhIlBYiT4KUObqVJpMMl9eK24uWhYurIGjbfMmsDMyaUbgdZm81fzGsMdb5Txbp8tRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vI8Fhnl7sz29HJSpKsabG4pwWVXlLbRaeBWdWihK9Wk=; b=aQQ9mKfy+yBQaTlBE2xRVK/VIDhiIzjAx0/XsSp/CpDglvHtEDpM6e3EBei38Xopywi6H0E6qd4YVZGTqJy6xgNt5MmX16I4w6LYIko9KqEp9KDOs1MOKe80XA1mKZkpIPHGpfBIwuGltsJpiIxjMPS8o69eMeYpmUDNorrphnUYcirg2NNUu2UOKkCyLcygB1IWhCuq1i2v2+702zdMT4Y+UGURDmKMarNlm7Q97ljuF2ZzlyZgyP/7bZs3HwZxiufJciSbmn2NwYZbI0FbVfgU8NnS1dHyLEs/x+geXNcYfvNr5qwGyp1lkVW5QEKdIWyPDXAjo4EQWI92vjFPfA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB3229.namprd05.prod.outlook.com (10.173.229.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.8; Thu, 11 Jul 2019 15:53:35 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2073.008; Thu, 11 Jul 2019 15:53:35 +0000
From: Antoni Przygienda <prz@juniper.net>
To: "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>, "brunorijsman@gmail.com" <brunorijsman@gmail.com>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: Fw:Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift
Thread-Index: AQHVN8vGZbTZZ+0IyE+CmuEc6N8hfqbFkYpR
Date: Thu, 11 Jul 2019 15:53:35 +0000
Message-ID: <MWHPR05MB3279448FCFADFC5B2B6FFD97ACF30@MWHPR05MB3279.namprd05.prod.outlook.com>
References: 201907111139404022772@zte.com.cn, MWHPR05MB327920CEE377FDB606FD3D35ACF30@MWHPR05MB3279.namprd05.prod.outlook.com, <201907111733344496218@zte.com.cn>
In-Reply-To: <201907111733344496218@zte.com.cn>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [108.228.12.76]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3c3de4ec-62a1-4be0-d53a-08d70617eeab
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB3229; 
x-ms-traffictypediagnostic: MWHPR05MB3229:
x-microsoft-antispam-prvs: <MWHPR05MB3229B30C1AEA0508BD868C3FACF30@MWHPR05MB3229.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7219;
x-forefront-prvs: 0095BCF226
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(396003)(366004)(136003)(346002)(39860400002)(376002)(189003)(199004)(3846002)(76176011)(7696005)(478600001)(2501003)(6116002)(316002)(68736007)(66446008)(6246003)(9686003)(2906002)(54896002)(52536014)(66946007)(66556008)(55016002)(66476007)(76116006)(6436002)(256004)(25786009)(229853002)(64756008)(99286004)(53946003)(14454004)(81156014)(102836004)(7736002)(11346002)(5660300002)(66066001)(74316002)(5024004)(486006)(476003)(71200400001)(446003)(33656002)(26005)(86362001)(186003)(71190400001)(81166006)(53546011)(6506007)(30864003)(110136005)(53936002)(2201001)(19627405001)(105004)(8676002)(14444005)(8936002); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB3229; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: yqrPsGdF8VsBAB+C9S70Kj1WOrQkCksxj3x+YRgq45dMYsA3OtAJN/sx2opKgyIwtO/i9XYlsFvATq4sdJarUpviu26Ia4lz1OBCy7jDIhwjqx0o7rP2R4p2Bq1RWSMJ7kT7ld/iOwo+szKmErwvkLxIWg5VsAhufVytjlS1EBS45lByjY9fGa6rJSsVZ36M97ofWmL0afKD6HVzl4hefYXJVP93VDmNYR+a2V7Hgze7XWqNq968RWOj/6HCjYk7lAb3MJ0kcks9mBQpEP2hOqBrf5c0xwuUpafyjklfTUxsGSLJAeZ5yAgnaSS/sNDpSvsVO1d958j+M5xaeFgRq+/InP+9CqkoAIkVyRm7gWaIaXALxecCDWo3++54vj0J2XkiSYML4zm+LQv9p7+dhMhO51m2MTWt6EDjeOzoXiw=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB3279448FCFADFC5B2B6FFD97ACF30MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c3de4ec-62a1-4be0-d53a-08d70617eeab
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2019 15:53:35.3558 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3229
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-11_03:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907110178
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/LIrT-IMT1CByYeHWJgwn11c0Ta8>
Subject: Re: [Rift] Fw:Re: Re: Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 15:53:47 -0000

--_000_MWHPR05MB3279448FCFADFC5B2B6FFD97ACF30MWHPR05MB3279namp_
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64

R2VudGxlbWVuLCBjYydpbmcgdGhyb3VnaCByaWZ0IFdHLCBhbGwgY29tbXMgcGxlYXNlIHRvIHRo
ZSBsaXN0IC4uLg0KDQp3aWxsIGFsc28gaGVscCBuZXh0IGltcGxlbWVudG9ycyBsb29raW5nIEAg
QnJ1bm8ncyBjb2RlIDstKSB3aGljaCBCVFcgaXMgYSBncmVhdCwgY2xlYW4sIGludGVyLW9wJ2Vk
IHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBhbmQgdGhhdCdzIHdoeSBJIHN1Z2dlc3RlZCB0byBy
ZWZlciB0byBpdA0KDQp0aGFua3MNCg0KLS0tIHRvbnkNCg0KX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCkZyb206IHh1LmJlbmNob25nQHp0ZS5jb20uY24gPHh1LmJlbmNob25nQHp0
ZS5jb20uY24+DQpTZW50OiBUaHVyc2RheSwgSnVseSAxMSwgMjAxOSAyOjMzIEFNDQpUbzogYnJ1
bm9yaWpzbWFuQGdtYWlsLmNvbQ0KQ2M6IEFudG9uaSBQcnp5Z2llbmRhDQpTdWJqZWN0OiBGdzpS
ZTogUmU6W1JpZnRdIElwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdA0KDQoNCkhpLCBC
cnVubw0KDQpJIHJlYWQgcGFydCBvZiB5b3VyIFJJRlQgY29kZSwgdGhhbmsgeW91IGZvciB5b3Vy
IGdyZWF0IGpvYiENCg0KV2hlbiBzZW5kaW5nIExJRSBtZXNzYWdlcywgYXMgbG9uZyBhcyB0aGVy
ZSBpcyBhIHY0IGFkZHJlc3MsIHY0IHdpbGwgYmUgdXNlZCBmaXJzdCwgc28gd2Ugd2lsbCBnZXQg
djQgbmV4dCBob3AuDQoNCi0tLS0tLS0tLS0NCg0KICAgIGRlZiBhY3Rpb25fc3RhcnRfZmxvb2Rp
bmcoc2VsZik6DQoNCqGtoa0NCg0KICAgICAgICMgRm9yIHNlbmRpbmcgZmxvb2RpbmcgcGFja2V0
cywgdXNlIHdoYXRldmVyIElQdjQgb3IgSVB2NiBhZGRyZXNzIHdlIHNlZSBmaXJzdCBmb3IgdGhl
DQoNCiAgICAgICAgIyBuZWlnaGJvciwgcHJlZmVycmluZyB0aGUgSVB2NCBhZGRyZXNzIGlmIHdl
IGtub3cgYm90aC4NCg0KICAgICAgICBpZiBzZWxmLm5laWdoYm9yLmlwdjRfYWRkcmVzcyBpcyBu
b3QgTm9uZToNCg0KICAgICAgICAgICAgc2VsZi5yeF9pbmZvKCJTdGFydCBJUHY0IGZsb29kaW5n
OiBzZW5kIHRvIGFkZHJlc3MgJXMgcG9ydCAlZCIsDQoNCiAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLm5laWdoYm9yLmlwdjRfYWRkcmVzcywgdHhfZmxvb2RfcG9ydCkNCg0KICAgICAgICAg
ICAgc2VsZi5fZmxvb2RfdHhfaXB2NF9zb2NrZXQgPSBzZWxmLmNyZWF0ZV9zb2NrZXRfaXB2NF90
eF91Y2FzdCgNCg0KICAgICAgICAgICAgICAgIHJlbW90ZV9hZGRyZXNzPXNlbGYubmVpZ2hib3Iu
aXB2NF9hZGRyZXNzLA0KDQogICAgICAgICAgICAgICAgcG9ydD10eF9mbG9vZF9wb3J0KQ0KDQog
ICAgICAgIGVsc2U6DQoNCiAgICAgICAgICAgIGFzc2VydCBzZWxmLm5laWdoYm9yLmlwdjZfYWRk
cmVzcyBpcyBub3QgTm9uZQ0KDQogICAgICAgICAgICBzY29wZWRfaXB2Nl9hZGRyZXNzID0gc2Vs
Zi5uZWlnaGJvci5pcHY2X2FkZHJlc3MNCg0KICAgICAgICAgICAgaWYgIiUiIG5vdCBpbiBzZWxm
Lm5laWdoYm9yLmlwdjZfYWRkcmVzczoNCg0KICAgICAgICAgICAgICAgIHNjb3BlZF9pcHY2X2Fk
ZHJlc3MgKz0gIiUiICsgc2VsZi5waHlzaWNhbF9pbnRlcmZhY2VfbmFtZQ0KDQogICAgICAgICAg
ICBzZWxmLnJ4X2luZm8oIlN0YXJ0IElQdjYgZmxvb2Rpbmc6IHNlbmQgdG8gYWRkcmVzcyAlcyBw
b3J0ICVkIiwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlZF9pcHY2X2FkZHJlc3Ms
IHR4X2Zsb29kX3BvcnQpDQoNCiAgICAgICAgICAgIHNlbGYuX2Zsb29kX3R4X2lwdjZfc29ja2V0
ID0gc2VsZi5jcmVhdGVfc29ja2V0X2lwdjZfdHhfdWNhc3QoDQoNCiAgICAgICAgICAgICAgICBy
ZW1vdGVfYWRkcmVzcz1zY29wZWRfaXB2Nl9hZGRyZXNzLA0KDQogICAgICAgICAgICAgICAgcG9y
dD10eF9mbG9vZF9wb3J0KQ0KDQpTUEYgY2FsY3VsYXRpb24gd2lsbCBjYWxjdWxhdGUgdGhlIG5l
eHRob3Agb2YgdjQgYW5kIHY2IGF0IHRoZSBzYW1lIHRpbWUuDQoNCi0tLS0tLS0tLS0tLS0tLS0t
DQoNCiAgICBkZWYgc2V0X3NwZl9wcmVkZWNlc3NvcihzZWxmLCBkZXN0aW5hdGlvbiwgbmJyX3Rp
ZV9lbGVtZW50LCBwcmVkZWNlc3Nvcl9zeXN0ZW1faWQsDQoNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzcGZfZGlyZWN0aW9uKToNCg0KICAgICAgICBkZXN0aW5hdGlvbi5hZGRfcHJlZGVj
ZXNzb3IocHJlZGVjZXNzb3Jfc3lzdGVtX2lkKQ0KDQogICAgICAgIGlmIChuYnJfdGllX2VsZW1l
bnQgaXMgbm90IE5vbmUpIGFuZCAocHJlZGVjZXNzb3Jfc3lzdGVtX2lkID09IHNlbGYuc3lzdGVt
X2lkKToNCg0KICAgICAgICAgICAgZm9yIGxpbmtfaWRfcGFpciBpbiBuYnJfdGllX2VsZW1lbnQu
bGlua19pZHM6DQoNCiAgICAgICAgICAgICAgICBuaG9wID0gc2VsZi5pbnRlcmZhY2VfaWRfdG9f
aXB2NF9uZXh0X2hvcChsaW5rX2lkX3BhaXIubG9jYWxfaWQpDQoNCiAgICAgICAgICAgICAgICBp
ZiBuaG9wOg0KDQogICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLmFkZF9pcHY0X25leHRf
aG9wKG5ob3ApDQoNCiAgICAgICAgICAgICAgICBuaG9wID0gc2VsZi5pbnRlcmZhY2VfaWRfdG9f
aXB2Nl9uZXh0X2hvcChsaW5rX2lkX3BhaXIubG9jYWxfaWQpDQoNCiAgICAgICAgICAgICAgICBp
ZiBuaG9wOg0KDQogICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLmFkZF9pcHY2X25leHRf
aG9wKG5ob3ApDQoNCiAgICAgICAgZWxzZToNCg0KICAgICAgICAgICAgZGVzdF90YWJsZSA9IHNl
bGYuX3NwZl9kZXN0aW5hdGlvbnNbc3BmX2RpcmVjdGlvbl0NCg0KICAgICAgICAgICAgZGVzdGlu
YXRpb24uaW5oZXJpdF9uZXh0X2hvcHMoZGVzdF90YWJsZVtwcmVkZWNlc3Nvcl9zeXN0ZW1faWRd
KQ0KDQpUaGUgUklCIHRhYmxlIG9ubHkgc2VsZWN0cyB0aGUgc2FtZSBBRiBuZXh0aG9wDQoNCi0t
LS0tLS0tLS0tLS0tDQoNCiAgICBkZWYgc3BmX2luc3RhbGxfcm91dGVzX2luX3JpYihzZWxmLCBz
cGZfZGlyZWN0aW9uKToNCg0KICAgICAgICChraGtDQoNCiAgICAgICAgICAgICAgICBwcmVmaXgg
PSBkZXN0X2tleQ0KDQogICAgICAgICAgICAgICAgaWYgcHJlZml4LmlwdjRwcmVmaXggaXMgbm90
IE5vbmU6DQoNCiAgICAgICAgICAgICAgICAgICAgbmV4dF9ob3BzID0gZGVzdC5pcHY0X25leHRf
aG9wcw0KDQogICAgICAgICAgICAgICAgICAgIHJvdXRlX3RhYmxlID0gc2VsZi5faXB2NF9yaWIN
Cg0KICAgICAgICAgICAgICAgIGVsc2U6DQoNCiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHBy
ZWZpeC5pcHY2cHJlZml4IGlzIG5vdCBOb25lDQoNCiAgICAgICAgICAgICAgICAgICAgbmV4dF9o
b3BzID0gZGVzdC5pcHY2X25leHRfaG9wcw0KDQogICAgICAgICAgICAgICAgICAgIHJvdXRlX3Rh
YmxlID0gc2VsZi5faXB2Nl9yaWINCg0KICAgICAgICAgICAgICAgIGlmIG5leHRfaG9wczoNCg0K
ICAgICAgICAgICAgICAgICAgICBydGUgPSByb3V0ZS5Sb3V0ZShwcmVmaXgsIG93bmVyLCBuZXh0
X2hvcHMpDQoNCiAgICAgICAgICAgICAgICAgICAgcm91dGVfdGFibGUucHV0X3JvdXRlKHJ0ZSkN
Cg0KSXMgaXQgcG9zc2libGUgdG8gZ2VuZXJhdGUgYSB2YWxpZCB2NiByaWIgdGFibGUgYXMgbG9u
ZyBhcyB2NCBhZGRyZXNzIG9mIHRoZSBpbnRlZmFjZSBpcyB2YWxpZD8gQ2FuIGl0IHN1cHBvcnQg
aXB2NCBhbmQgaXB2NiBkb3VibGUgc3RhY2s/DQoNClRoYW5rcyENCg0KQmVuY2hvbmcNCg0KDQrU
rcq808q8/g0Kt6K8/sjLo7pBbnRvbmlQcnp5Z2llbmRhIDxwcnpAanVuaXBlci5uZXQ+DQrK1bz+
yMujutDssb6z5zEwMDY1MDUzOw0Ks63LzcjLo7pKZWZmcmV5IChaaGFvaHVpKSBaaGFuZyA8enpo
YW5nQGp1bmlwZXIubmV0PjvVxdX3MDAwMDc5NDA7cmlmdEBpZXRmLm9yZyA8cmlmdEBpZXRmLm9y
Zz47DQrI1SDG2iCjujIwMTnE6jA31MIxMcjVIDExOjUyDQrW9yDM4iCjulJlOiBSZTpbUmlmdF0g
SXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0DQpCZW5jaG9uZywgd2hhdCB5b3Ugc2Vl
bSB0byB0YWxrIGFib3V0IGlzIG9yaWdpbmF0aW5nIHBhY2tldHMgYW5kIGl0J3MgdGhlIHNvdXJj
ZSB0aGF0IGRlY2lkZXMgd2hldGhlciBpdCBzZW5kcyB2NCBvciB2NiBhbmQgdGhlIElQIGZhYnJp
YyB3aXRoIFJJRlQganVzdCBmb3J3YXJkcyB0aGUgcGFja2V0LCBpdCBjYW5ub3QgY2hhbmdlIGlu
IHRoZSBtaWRkbGUgdGhlIElQIGFkZHJlc3MgZmFtaWx5IGluIHdoaWNoIHRoZSBwYWNrZXQgaXMg
Y2FycmllZCAgb2J2aW91c2x5IHNvIHRoZXJlIGlzIG5vIGRlY2lzaW9uIHRvIGJlIG1hZGUgd2hp
Y2ggSVAgQUYgaXMgdXNlZCwgb25seSB3aGljaCBHVyBuZWVkcyB0byBiZSBpbnN0YWxsZWQgb24g
dGhlIHJvdXRlIG5leHRob3AuIEJ1dCB5ZXMsIGFuIGltcGxlbWVudGF0b24gY2FuIGNob29zZSB0
byBmb3J3YXJkIHY0IHBhY2tldHMgdXNpbmcgdGhlIE1BQyBhZGRyZXNzIG9mIGEgdjYgZ2F0ZXdh
eSwgYSBoaWdobHkgZGVzaXJhYmxlIGJlaGF2aW9yIHNpbmNlICB3aXRoIHRoYXQsIHRoZSBmYWJy
aWMgY2FuIGJlIGNvbXBsZXRlbHkgZ2xvYmFsIGFkZHJlc3MgZnJlZSB3aXRob3V0IGFueSBjb25m
aWcgKGp1c3QgTkQpIGFuZCBkbyB2NCBmaW5lLg0KDQp5ZXMsIGFuIGltcGxlbWVudGF0aW9uIG1h
eSBjaG9vc2UgdG8gcHJlZmVyIHY0IEdXIGZvciB2NCBwYWNrZXRzIGFuZCB2NiBHVyBmb3IgdjYg
cGFja2V0cyBidXQgbm9ybWFsbHkgaXQncyB0aGUgc2FtZSBNQUMgdW5sZXNzIHRoZSBkZXBsb3lt
ZW50IGlzIHZlcnkgc3RyYW5nZSBAIHdoaWNoIHBvaW50IGtub2JzIHRvIGNvbnRyb2wgdGhhdCBt
YXkgYmUgbmVjZXNzYXJ5LCBzb21ldGhpbmcgd2hpY2ggaXMgaW1wbGVtZW50YXRpb24gc3BlY2lm
aWMuDQoNClNvIFJJRlQganVzdCBmbG9vZHMgdGhlIFRJRXMgb24gYW55IEFGIHdpdGggcHJlZml4
ZXMgb2YgYWxsIEFGcywgdGhlIGNvbXB1dGF0aW9uIGNvbXB1dGVzIHRoZSByb3V0ZSB3aXRoIGRp
cmVjdGx5IGF0dGFjaGVkIG5leHQtaG9wIHdoaWNoIGhhcyB0byByZXNvbHZlIHRvIE1BQyBpbiBh
bnkgQUYgcmVhbGx5IGFuZCB0aGVuIHBhY2tldCBjYW4gYmUgZm9yd2FyZGVkIC4uLg0KDQppbXBs
ZW1lbnQgaXQgYW5kIHBsYXkgd2l0aCBpdCwgd2UgaGF2ZSBAIGxlYXN0IDIgaW1wbGVtZW50YXRp
b25zIGFscmVhZHkgdGhhdCB3b3JrIGZpbmUgZG9pbmcgdGhhdCAuLi4NCg0KWWVzLCB0aGUgY2xv
c2VzdCBhbmFsb2d5IGlzIHY0IGluIEJHUCB3aXRoIHY2IG5leHRob3BzIGlmIHlvdSByZWFsbHkg
d2FudCB0byB0aGluayB0aGF0IHdheSBidXQgUklGVCBpcyBtdWNoIHNpbXBsZXIgc2luY2UgdGhl
IG5ob3AgaXMgYWx3YXlzIGRpcmVjdGx5IGNvbm5lY3RlZCBhbmQgd2UgZG9uJ3QgdGFsayBhYm91
dCBhbnl0aGluZyBsaWtlIHY0b3Y2IG9yIHY2b3Y0IHR1bm5lbGluZyBhbmQgc28gb24gLi4uDQoN
Cm1ha2VzIHNlbnNlPw0KDQotLS0gdG9ueQ0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fDQpGcm9tOiB4dS5iZW5jaG9uZ0B6dGUuY29tLmNuIDx4dS5iZW5jaG9uZ0B6dGUuY29t
LmNuPg0KU2VudDogV2VkbmVzZGF5LCBKdWx5IDEwLCAyMDE5IDg6MzkgUE0NClRvOiBBbnRvbmkg
UHJ6eWdpZW5kYQ0KQ2M6IEplZmZyZXkgKFpoYW9odWkpIFpoYW5nOyBFWFQtemhhbmcuemhlbmdA
enRlLmNvbS5jbjsgcmlmdEBpZXRmLm9yZw0KU3ViamVjdDogUmU6W1JpZnRdIElwdjQgYW5kIGlw
djYgY29vcGVyYXRpbmcgaW4gcmlmdA0KDQpIaSB0b255DQoNClRoYW5rcyBmb3IgeW91ciBleHBs
YW5hdGlvbiwgYW5kIEkgaGF2ZSBhbHJlYWR5IHVuZGVyc3Rvb2QgeW91ciBvcGluaW9uIG9uIHY0
djYgZm9yd2FyZGluZy4NCg0KVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBSSUZUIGFuZCBvdGhlciBy
b3V0aW5nIHByb3RvY29scyBpcyB0aGUgY29uc2lzdGVuY3kgb2YgcGFja2V0cyBBRiBhbmQgcm91
dGVzIEFGLiBJc2lzIGlzIGluIEwyIGVuY2Fwc3VsYXRpb24gdGhhdCBzb2x2ZXMgZGlmZmVyZW50
IGFkZHJlc3MgZmFtaWxpZXMgdGhyb3VnaCBtdWx0aXBsZSB0b3BvbG9naWVzLiBPc3BmIGFuZCBy
aXAgYXJlIHN0cmljdGx5IGRpc3Rpbmd1aXNoZWQgaW4gdjR2Ni4gUmlmdCAgaXMgYWN0dWFsbHkg
Y2xvc2VyIHRvIEJHUC4NCg0KV2hlbiB0aGUgaW50ZXJmYWNlIGhhcyBib3RoIHY0IGFuZCB2NiBh
ZGRyZXNzZXMgKG9yIE5EIGVuYWJsZWQpLCB0aGUgcHJvdG9jb2wgdXNlcyB2NCBvciB2NiBvciB2
NHY2IGFkZHJlc3MgZW5jYXBzdWxhdGlvbi4gSXQgd2lsbCBiZSBiZXR0ZXIgaWYgcHJvdG9jb2wg
Z2F2ZSB0aGUgcmVjb21tZW5kZWQgYmVoYXZpb3IuIE90aGVyd2lzZSwgZGlmZmVyZW50IHBlb3Bs
ZSB3aWxsIGdpdmUgZGlmZmVyZW50IHNvbHV0aW9ucywgd2hpY2ggd2lsbCAgY2F1c2UgcHJvdG9j
b2wgY29uZm9ybWFuY2UgcHJvYmxlbS4NCg0KVGhlIG9wdGlvbnMgd2UgY2FuIGNob29zZSBhcmU6
DQoNCmEpIE5EIGVuYWJsZSB2NiBmaXJzdDoNCg0KSWYgdjYgYWRkcmVzcyB2YWxpZCBBTkQgTkQg
ZW5hYmxlOg0KDQogICAgIFY2IHBhY2tldA0KDQpFbHNlIGlmIHY0IGFkZHJlc3MgdmFsaWQ6DQoN
CiAgICAgVjQgcGFja2V0DQoNCmIpIHY0IGZpcnN0DQoNCklmIHY0IGFkZHJlc3MgdmFsaWQ6DQoN
CiAgICAgVjQgcGFja2V0DQoNCkVsc2UgaWYgdjYgYWRkcmVzcyB2YWxpZChBTkQgTkQgZW5hYmxl
KToNCg0KICAgICBWNiBwYWNrZXQNCg0KYykgY29leGlzdGVuY2Ugb2YgdjR2Ng0KDQpJZiB2NCBh
ZGRyZXNzIHZhbGlkOg0KDQogICAgIFY0IHBhY2tldA0KDQpJZiB2NiBhZGRyZXNzIHZhbGlkKEFO
RCBORCBlbmFibGUpOg0KDQogICAgIFY2IHBhY2tldA0KDQpDb25mdXNlZCBvbiBib3RoIHRoZSBz
ZW5kaW5nIGFuZCByZWNlaXZpbmcgc2lkZXMuDQoNCmMpIHdpbGwgZnVydGhlciBoYXZlIGEgR1cg
c2VsZWN0aW9uIHByb2JsZW0sIHByZWZlcnJpbmcgdG8gY2hvb3NlIHRoZSBuZXh0aG9wIG9mIHRo
ZSBzYW1lIGFkZHJlc3MgZmFtaWx5IHdpdGggdGhlIHByZWZpeCwgb3IgdjQgZmlyc3QuDQoNCkkn
ZCBsaWtlIHRoZSBwcm90b2NvbCByZWNvbW1lbmRzIGEgZGVmYXVsdCBiZWhhdmlvciBhbmQgbWF5
IHByb3ZpZGVzIGEgY29udHJvbCBtZXRob2QgaW4geWFuZy4NCg0KVGhhbmtzIQ0KDQpCZW5jaG9u
Zw0KDQoNCtStyrzTyrz+DQq3orz+yMujukFudG9uaVByenlnaWVuZGEgPHByekBqdW5pcGVyLm5l
dD4NCsrVvP7Iy6O60OyxvrPnMTAwNjUwNTM7DQqzrcvNyMujukplZmZyZXkgKFpoYW9odWkpIFpo
YW5nIDx6emhhbmdAanVuaXBlci5uZXQ+O9XF1fcwMDAwNzk0MDtyaWZ0QGlldGYub3JnICA8cmlm
dEBpZXRmLm9yZz47DQrI1SDG2iCjujIwMTnE6jA31MIxMMjVIDIzOjEyDQrW9yDM4iCjulJlOiBS
ZTpbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0DQpIZXkgQmVuY2hvbmcs
IHRoYXQncyBhbiBvdmVyLWludGVycHJldGF0aW9uLCB0aGUgc3BlYyBpcyBsb29zZXIgdGhhbiB0
aGF0IGJ1dCBhcyBmYXIgSSBzYXcgc3VmZmljaWVudC4gU2VjdGlvbiA1LjIuMi4NCg0KYSkgU3Bl
Y2lmaWNhdGlvbiBkb2VzIG5vdCBwcm9oaWJpdCBSSUZUIGZyb20gdXNpbmcgX2FueV8gdmFsaWQg
SVB2NiBhZGRyZXNzIG9uIHRoZSBpbnRlcmZhY2UgdG8gc2VuZCBJUHY2IExJRXMuIFRoZSByZWNl
aXZlciBpcyBzdXBwb3NlZCB0byBwaWNrIHVwIHRoYXQgc291cmNlIGFkZHJlc3MgYW5kIHVzZSBp
dCBhcyBkZXN0aW5hdGlvbiB3aGVuIHNlbmRpbmcgTElFcyBvdmVyIHY2IGFuZC9vciBUSUVzIHdp
dGggdGhlIHJlY2V2aW5nIGludGVyZmFjZSAgIGFzIGdhdGV3YXkuIFNwZWNpZmljYXRpb24gZG9l
cyBOT1Qgc3BlbGwgb3V0IHdoYXQgaGFwcGVucyBlLmcuIG9uIG1pc21hdGNoZWQgSVAgc3VibmV0
cyBvbiBib3RoIHNpZGVzIGFuZCBzbyBvbiwgc2l0dWF0aW9uIGhlcmUgaXMgc2ltaWxhciB0byBJ
U0lTIGFuZCBkaWZmZXJlbnQgc2NlbmFyaW9zIHN1Y2ggYXMgdW5udW1iZXJlZCBsaW5rcyBhbmQg
c28gb24NCmIpIElmIHlvdSB3YW50IHRoZSAibGF6aWVzdCIgcG9zc2libGUgaW1wbGVtZW50YXRp
b24gdGhlbiBpbiBmYWN0IHllcywgeW91IGNhbiBmYWxsIGJhY2sgb24NCg0KIg0KDQogICBBbGwg
UklGVCByb3V0ZXJzIE1VU1Qgc3VwcG9ydCBJUHY0IGZvcndhcmRpbmcgYW5kIE1BWSBzdXBwb3J0
IElQdjYgICAgZm9yd2FyZGluZy4gIEEgdGhyZWUgd2F5IGFkamFjZW5jeSBvdmVyIElQdjYgYWRk
cmVzc2VzIGltcGxpZXMgICAgc3VwcG9ydCBmb3IgSVB2NCBmb3J3YXJkaW5nLg0KDQoiDQoNCndo
aWNoIG1ha2VzIHY0b3Y2IGZvcndhcmRpbmcgaW5oZXJlbnQgcGFydCBvZiBSSUZULiBUaGF0IGFz
c3VtZXMgaG93ZXZlciB0aGF0IHJlY2VpdmluZyBuZWlnaGJvciBkb2VzIHN1cHBvcnQgVjYgKHdo
aWNoIHRoZSBzcGVjIGRvZXMgTk9UIG1hbmRhdGUpIGFuZCBub3RoaW5nIHdpbGwgaGFwcGVuIGlm
IGl0IGRvZXNuJ3QuIFRoZXJlZm9yZSBhbGwgUklGVCBpbXBsZW1lbnRhdGlvbiBJIHNhdyBzbyBm
YXIgc2VuZCBib3RoIHY0IGFuZCB2NiB3aGljaCAgIGFsbG93cyB0aGUgbmVpZ2hib3IgdG8gb25s
eSByZWNlaXZlIHY0IGFuZCBmb3J3YXJkIHVzaW5nIHY0IGdhdGV3YXlzIGlmIGl0IGRvZXNuJ3Qg
c3VwcG9ydCBWNi4gSW4gY2FzZSBib3RoIHY0IGFuZCB2NiBBRnMgYXJlIGVzdGFibGlzaGVkLCBp
dCBpcyB1cCB0byB0aGUgaW1wbGVtZW50YXRpb24gd2hpY2gvaG93IGl0IHJlc29sdmVzIHRoZSBn
YXRld2F5cyBhbmQgdGhlcmUgYXJlIG1hbnkgaW50ZXJlc3RpbmcgYWR2YW5jZWQgaXNzdWVzIHN1
Y2ggICBhcyBtaXh0dXJlIG9mIHNwaW5lcyB3aXRoIHY0IGFuZCB2NiBuZXh0aG9wcyBhbmQgaG93
IHRvIGZvcm0gRUNNUCBhbW9uZ3N0IHRoZW0gdGhhdCB0aGUgc3BlYyBkb2VzIG9idmlvdXNseSBu
b3QgYWRkcmVzcyBzaW5jZSBpdCdzIGFsbCB2ZXJ5IGltcGxlbWVudGF0aW9uIGFuZCBzaWxpY29u
IHNwZWNpZmljLg0KDQotLS0gdG9ueQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N
CkZyb206IHh1LmJlbmNob25nQHp0ZS5jb20uY24gPHh1LmJlbmNob25nQHp0ZS5jb20uY24+DQpT
ZW50OiBXZWRuZXNkYXksIEp1bHkgMTAsIDIwMTkgMTo1NiBBTQ0KVG86IEFudG9uaSBQcnp5Z2ll
bmRhDQpDYzogSmVmZnJleSAoWmhhb2h1aSkgWmhhbmc7IEVYVC16aGFuZy56aGVuZ0B6dGUuY29t
LmNuOyByaWZ0QGlldGYub3JnDQpTdWJqZWN0OiBSZTpbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29w
ZXJhdGluZyBpbiByaWZ0DQoNCg0KVG9ueSwgdGhhbmsgeW91IGZvciB5b3VyIHJlcGx5DQoNCkNh
biBpdCBiZSB1bmRlcnN0b29kIHRoYXQgYWZ0ZXIgdGhlIE5EIGlzIGVuYWJsZWQsIHRoZSB2NiBh
ZGRyZXNzIG5lZWRzIHRvIGJlIHVzZWQgdG8gYnVpbGQgbmVpZ2hib3I/IEluIHRoaXMgY2FzZSwg
dGhlIHJpZnQgcGFja2V0IG9mIHRoZSB2NCBoZWFkZXIgaXMgbm90IGFsbG93ZWQgdG8gYmUgc2Vu
dCBhbmQgcmVjZWl2ZWQsIGFuZCBib3RoIHY0IGFuZCB2NiByb3V0ZXMgaGF2ZSBhIHY2IEdXLg0K
DQoNCg0K1K3KvNPKvP4NCreivP7Iy6O6QW50b25pUHJ6eWdpZW5kYSA8cHJ6QGp1bmlwZXIubmV0
Pg0KytW8/sjLo7rQ7LG+s+cxMDA2NTA1MztKZWZmcmV5IChaaGFvaHVpKVpoYW5nIDx6emhhbmdA
anVuaXBlci5uZXQ+O9XF1fcwMDAwNzk0MDtyaWZ0QGlldGYub3JnICAgPHJpZnRAaWV0Zi5vcmc+
Ow0KyNUgxtogo7oyMDE5xOowN9TCMTDI1SAwMDowOQ0K1vcgzOIgo7pSZTogW1JpZnRdIElwdjQg
YW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdA0KSGV5IEJlbmNob25nLCBjYzonaW5nIGxpc3Qs
IGdvb2QgcXVlc3Rpb25zIG9idmlvdXNseSB0aGF0IHBvcCBvdXQgb24gaW1wbGVtZW50YXRpb24N
Cg0KDQogIDEuICBzZW5kaW5nIExJRSBvbmx5IHdpdGggdjQgd2lsbCBub3QgZ2l2ZSB5b3UgYSB2
NiBhZGRyZXNzIHRvIHNlbmQgdG8gKHNpbmNlIHRoZSBMSUUgc291cmNlIGFkZHJlc3MgZ2l2ZXMg
dGhlIGdhdGV3YXkgZm9yIHRoZSBBRiwgdGhhdCdzIHdoeSB3ZSBzZW5kIExJRSBwZXIgQUYpIHNv
IHlvdSB3b24ndCBoYXZlIGEgdjYgR1cgYWRkcmVzcyB0byBzZW5kIFRJRXMgdG8gOy0pDQoNCiAg
Mi4gIHllcywgZXZlcnkgaW50ZXJmYWNlIGlzIGluZGVwZW5kZW50LiBPYnNlcnZlIHRoYXQgdjYg
c3VwcG9ydCBpbXBsaWVzIHY0IGFzIHRoZSBzcGVjIHNheXMgKHNpbmNlIHlvdSBjYW4gRlcgdjQg
d2l0aG91dCBhIHY0IEdXIGlmIHlvdSBoYXZlIGEgdjYgZ2F0ZXdheSkuIEhvd2V2ZXIsIGlmIG9u
ZSBzaWRlIHNlbmRzIHY2IG9ubHkgYW5kIHRoZSBvdGhlciBzaWRlIG9ubHkgdjQgdGhleSdsbCBu
ZXZlciBnbyAzLXdheSBzaW5jZSB0aGV5IHdvbid0ICAgIGJlIGFibGUgdG8gcmVjZWl2ZS4gV2Ug
anVzdCBhZGRlZCBhIHNlbnRlbmNlIHRvIHRoZSBzcGVjIHNheWluZyB0aGF0IGlmIHlvdSBkb24n
dCBzZW5kIGFuIEFGIExJRSB5b3UgTVVTVCBOT1QgcmVjZWl2ZSB0aGUgc2FtZSBBRiBMSUUgc2lu
Y2Ugd2UgZm91bmQgdGhhdCBsb29zZSBlbmQgaW4gQnJ1bm8ncyBpbXBsZW1lbnRhdGlvbiB3aGVu
IHRlc3Rpbmcgc2VjdXJpdHkgZW52ZWxvcGVzLiAgSXQgd2lsbCBiZSBpbiAtMDcNCg0KDQo8dD5B
bGwgUklGVCByb3V0ZXJzIE1VU1Qgc3VwcG9ydCBJUHY0IGZvcndhcmRpbmcgYW5kIE1BWSBzdXBw
b3J0IElQdjYNCiAgICBmb3J3YXJkaW5nLiBBIHRocmVlIHdheSBhZGphY2VuY3kgb3ZlciBJUHY2
IGFkZHJlc3NlcyBpbXBsaWVzIHN1cHBvcnQNCiAgICBmb3IgSVB2NCBmb3J3YXJkaW5nLiBBIG5v
ZGUgdGhhdCBkb2VzIG5vdCBwcm9jZXNzIHJlY2VpdmVkIElQdjYgTElFcw0KICAgIE1VU1QgTk9U
IG9yaWdpbmF0ZSBJUHY2IExJRXMuDQogICAgPC90Pg0KDQoNCiAgMS4gIElQdjYvSVB2NCBwcmVm
aXggY2FuIGJlIG1peGVkIGluIFByZWZpeCBUSUVzLiBQcmVmaXggVElFcyBkbyBOT1QgY2FyZSB3
aGljaCBpbnRlcmZhY2UvQUYgdGhleSBhcmUgc2VudCBvdmVyLg0KDQogIDIuICBob3cgeW91IGJ1
aWxkIGZvcndhcmRpbmcgdGFibGUgYW5kIHdoaWNoIGdhdGV3YXlzIHlvdSB1c2UgaXMgaW1wbGVt
ZW5hdGlvbiBkZXBlbmRlbnQgYnV0IHllcywgeW91IGdvdCB0aGUgZmxhdm9yLiB0aG91Z2ggeW91
ciBhc3N1bXB0aW9uIG9mICJJcHY2IGRlc3RpbmF0aW9uIHdpdGggaXB2NCBuZXh0aG9wIiBpcyBv
cHRpbWlzdGljLiBldmVyeSBzaWxpY29uIGRvZXMgdjQgc28gdjYgY2FuIGltcGx5IHY0LCBpbXBs
eWluZyB2NCBmd2QnaW5nICAgIGFsbG93cyB2NiBmb3J3YXJkaW5nIGZhaWxzIG9uIGdvb2QgYW1v
dW50IG9mIHNpbGljb24uIEJ1dCBhZ2FpbiwgdGhvc2UgYXJlIGFsbCBpbXBsZW1lbnRhdGlvbiBr
bm9icywgc3BlYyBvbmx5IHNheXMgInY2IGltcGxpZXMgdjQiIHdoaWNoIG1lYW5zICJ5b3UgYmV0
dGVyIGZ3ZC4gdjQgb3ZlciB2NiBuZXh0aG9wcyBpZiB5b3Ugc2VlIHY2IExJRXMgb25seSINCg0K
T2JzZXJ2ZSB0aGF0IG5vZGUgVElFcyBhcmUgX25vdF8gY2FycnlpbmcgdGhlIHN1cHBvcnRlZCBB
RnMgb24gZWFjaCBpbnRlcmZhY2Ugc2luY2UgSSB0aGluayBpdCB3b3VsZCBsZWFkIHRvIHVuZGVz
aXJhYmxlIGF0dGVtcHRzIHRvIGRlcGxveSAoc29tZSBsaW5rcyBjYW4gZG8gdjYpIHRvcG9sb2dp
ZXMgd2hpY2ggZGVmZWF0IHRoZSBwdXJwb3NlIG9mIFpUUC9zaW1wbGljaXR5IG9mIFJJRlQuIHY2
IGltcGxpZXMgdjQsIGlmIHNvbWVvbmUgICAgd2FudHMgdG8gZndkJyB2NiBvdmVyIGEgZmFicmlj
IHdoZXJlIGNlcnRhaW4gbGlua3MgYXJlIHY0IGNvbXB1dGF0aW9ucyBnZXQgcmVhbGx5IHdlaXJk
IGFuZCBvcGVyYXRpb25hbGx5IHN1Y2ggYSB0aGluZyBpcyBwcm9iYWJseSBhIG5pZ2h0bWFyZSBh
bnl3YXkuIEFuZCBnZXR0aW5nIHY2IHdvcmtpbmcgaXMgdHJpdmlhbCwganVzdCBmbGlwIG9uIE5E
IGFuZCB5b3UncmUgaW4gYnVzaW5lc3MgKGF0IGxlYXN0IGNvbnRyb2wgcGxhbmUgd2lzZSAgOy0p
DQoNClRoZSBzcGVjIGlzIG5vaXQgZ2l2aW5nIGltcGxlbWVudGF0aW9uIGFkdmljZSwgaXQganVz
dCBzcGVjaWZpZXMgYmVoYXZpb3IuIEluIGNhc2Ugb2YgZG91YnQgbG9va3MgQCBCcnVubyc7cyBv
cGVuIHNvdXJjZS4gQnJ1bm8gaW1wbGVtZW50ZWQgdGhlIHdob2xlIExJRSB3aXRob3V0IGV2ZXIg
dGFsa2luZyB0byBtZSBhbmQgaXQgaW50ZXJvcCdlZCBkYXkgb25lIHdpdGhvdXQgcHJvYmxlbXMu
DQoNCldoZW4geW91J3JlIHJlYWR5IHdpdGggeW91ciBpbXBsZW1lbnRhdGlvbiB0byBpbnRlcm9w
LCBCcnVubydzIGNvZGUgaGFzIG5pY2UgZnJhbWV3b3JrIHlvdSBjYW4gcGx1ZyBpbiBhZ2FpbnN0
IG9wZW4gc291cmNlICYgSnVuaXBlciBpbXBsZW1lbnRhdGlvbiBlYXNpbHkNCg0KLS0tIHRvbnkN
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpGcm9tOiB4dS5iZW5jaG9uZ0B6dGUu
Y29tLmNuIDx4dS5iZW5jaG9uZ0B6dGUuY29tLmNuPg0KU2VudDogVHVlc2RheSwgSnVseSA5LCAy
MDE5IDU6MDggQU0NClRvOiBBbnRvbmkgUHJ6eWdpZW5kYTsgSmVmZnJleSAoWmhhb2h1aSkgWmhh
bmc7IEVYVC16aGFuZy56aGVuZ0B6dGUuY29tLmNuDQpTdWJqZWN0OiBbUmlmdF0gSXB2NCBhbmQg
aXB2NiBjb29wZXJhdGluZyBpbiByaWZ0DQoNCkhpDQoNCkkgaGF2ZSBzb21lIHF1ZXN0aW9ucyBh
Ym91dCBpcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQuDQoNCklwIGhlYWQgb2YgdGhl
IHJpZnQgcGFja2V0IGNhbiBiZSBWNCBvciBWNiwgYW5kIHRoZSBwcmVmaXggaW4gVElFIGFsc28g
c3Vwb3J0IFY0IG9yIHY2Lg0KDQpDYW4gaXQgc3VwcG9ydCB0aGUgZm9sbG93aW5nIHNpdHVhdGlv
bnM6DQoNCg0KMaGiQSByaWZ0IGludGVyZmFjZSB3aGljaCBzZW5kIExJRSB3aXRoIGlwdjQgaGVh
ZCByZWNlaXZpbmcgTElFIHdpdGggSVB2NiBoZWFkOw0KDQpBIHJpZnQgaW50ZXJmYWNlIHdoaWNo
IHNlbmQgTElFIHdpdGggaXB2NiBoZWFkIHJlY2VpdmluZyBMSUUgd2l0aCBJUHY0IGhlYWQ7DQoN
CkNhbiB0aGV5IGJ1aWxkIDMtV2F5IG5laWdoYm9yPw0KDQoNCjKholNvbWUgaW50ZXJmYWNlcyBp
biBhIHJpZnQgaW5zdGFuY2Ugc2VuZCBpcHY0IGhlYWQgcGFja2V0c6OsIGFuZCBvdGhlcnMgaW4g
dGhlIHNhbWUgaW5zdGFuY2Ugc2VuZCBpcHY2IGhlYWQgcGFja2V0c6O7DQoNCg0KM6GiSXB2NCBo
ZWFkIFRJRSBwYWNrZXQgZmlsbCBpcHY2IHByZWZpeKO7DQoNCiAgIElwdjYgaGVhZCBUSUUgcGFj
a2V0IGZpbGwgaXB2NCBwcmVmaXijuyhSSUZULTA2IDUuMi4yOiBBbGwgUklGVCByb3V0ZXJzIE1V
U1Qgc3VwcG9ydCBJUHY0IGZvcndhcmRpbmcgYW5kIE1BWSBzdXBwb3J0IElQdjYNCg0KICAgZm9y
d2FyZGluZy4gIEEgdGhyZWUgd2F5IGFkamFjZW5jeSBvdmVyIElQdjYgYWRkcmVzc2VzIGltcGxp
ZXMNCg0KICAgc3VwcG9ydCBmb3IgSVB2NCBmb3J3YXJkaW5nLikNCg0KDQo0oaJJbiByaWIgdGFi
bGUgb2YgdGhlIHJpZnQ6DQoNCiAgIElwdjQgZGVzdGluYXRpb24gd2l0aCBpcHY2IG5leHRob3A7
DQoNCiAgIElwdjYgZGVzdGluYXRpb24gd2l0aCBpcHY0IG5leHRob3A7DQoNCiAgIElwdjQgZGVz
dGluYXRpb24gd2l0aCBib3RoIGlwdjQgbmV4dGhvcCBhbmQgaXB2NiBuZXh0aG9wOw0KDQogICBJ
cHY2IGRlc3RpbmF0aW9uIHdpdGggYm90aCBpcHY0IG5leHRob3AgYW5kIGlwdjYgbmV4dGhvcDsN
Cg0KDQoNCjWholRoZSBpcCBoZWFkIHR5cGUodjQgb3IgdjYpIGNhbiBiZSBjb25maWd1cmVkIGlu
IHJpZnQgaW50ZXJmYWNlIG9yIGluc3RhbmNlLg0KDQoNCkl0IHdpbGwgYmUgYmV0dGVyIGlmIHRo
ZXJlIGFyZSBjbGVhciBpbnN0cnVjdGlvbnMgaW4gcmlmdCBwcm90b2NvbC4NCg0KDQpUaGFua3Oj
oQ0KDQpCZW5jaG9uZw0KDQoNCg0KDQoNCg0KDQo=

--_000_MWHPR05MB3279448FCFADFC5B2B6FFD97ACF30MWHPR05MB3279namp_
Content-Type: text/html; charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dgb2312">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Gentlemen, cc'ing through rift WG, all comms please to the list ... <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
will also help next implementors looking @ Bruno's code ;-) which BTW is a =
great, clean, inter-op'ed reference implementation and that's why I suggest=
ed to refer to it<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
thanks</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
--- tony <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> xu.benchong@zte.com.c=
n &lt;xu.benchong@zte.com.cn&gt;<br>
<b>Sent:</b> Thursday, July 11, 2019 2:33 AM<br>
<b>To:</b> brunorijsman@gmail.com<br>
<b>Cc:</b> Antoni Przygienda<br>
<b>Subject:</b> Fw:Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</font>
<div>&nbsp;</div>
</div>
<div>
<div class=3D"x_zcontentRow">
<p style=3D"font-size:14px; font-family:arial">Hi,&nbsp;<span style=3D"font=
-family:Calibri,Arial,Helvetica,sans-serif; font-size:16px; line-height:22.=
8571434020996px; background-color:rgb(255,255,255)">Bruno</span></p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:s=
ans-serif">I read part of your RIFT code, thank you for your great job!</sp=
an></p>
<p>When sending LIE messages, as long as there is a v4 address, v4 will be =
used first, so we will get v4 next hop.</p>
<p>----------</p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:C=
alibri,Arial,Helvetica,sans-serif; font-size:16px; line-height:22.857143402=
0996px; background-color:rgb(255,255,255)"></span></p>
<p>&nbsp; &nbsp; def action_start_flooding(self):</p>
<p><span class=3D"x_Apple-tab-span" style=3D"white-space:pre"></span>=A1=AD=
=A1=AD</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp;# For sending flooding packets, use whatever =
IPv4 or IPv6 address we see first for the</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; # neighbor, preferring the IPv4 address if w=
e know both.</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; if self.neighbor.ipv4_address is not None:</=
p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.rx_info(&quot;Start IPv4 =
flooding: send to address %s port %d&quot;,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp;self.neighbor.ipv4_address, tx_flood_port)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self._flood_tx_ipv4_socket =3D=
 self.create_socket_ipv4_tx_ucast(</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remote_address=
=3Dself.neighbor.ipv4_address,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; port=3Dtx_flood_=
port)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; else:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; assert self.neighbor.ipv6_addr=
ess is not None</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scoped_ipv6_address =3D self.n=
eighbor.ipv6_address</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if &quot;%&quot; not in self.n=
eighbor.ipv6_address:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scoped_ipv6_addr=
ess &#43;=3D &quot;%&quot; &#43; self.physical_interface_name</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.rx_info(&quot;Start IPv6 =
flooding: send to address %s port %d&quot;,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp;scoped_ipv6_address, tx_flood_port)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self._flood_tx_ipv6_socket =3D=
 self.create_socket_ipv6_tx_ucast(</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remote_address=
=3Dscoped_ipv6_address,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; port=3Dtx_flood_=
port)</p>
<p style=3D"font-size:14px; font-family:arial">SPF calculation will calcula=
te the nexthop of v4 and v6 at the same time.<span style=3D"font-family:Cal=
ibri,Arial,Helvetica,sans-serif; font-size:16px; line-height:22.85714340209=
96px; background-color:rgb(255,255,255)"><br>
</span></p>
<p style=3D"font-size:14px; font-family:arial">-----------------</p>
<p>&nbsp; &nbsp; def set_spf_predecessor(self, destination, nbr_tie_element=
, predecessor_system_id,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp; spf_direction):</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; destination.add_predecessor(predecessor_syst=
em_id)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; if (nbr_tie_element is not None) and (predec=
essor_system_id =3D=3D self.system_id):</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for link_id_pair in nbr_tie_el=
ement.link_ids:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nhop =3D self.in=
terface_id_to_ipv4_next_hop(link_id_pair.local_id)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if nhop:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; de=
stination.add_ipv4_next_hop(nhop)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nhop =3D self.in=
terface_id_to_ipv6_next_hop(link_id_pair.local_id)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if nhop:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; de=
stination.add_ipv6_next_hop(nhop)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; else:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dest_table =3D self._spf_desti=
nations[spf_direction]</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; destination.inherit_next_hops(=
dest_table[predecessor_system_id])</p>
<p style=3D"font-size:14px; font-family:arial">The RIB table only selects t=
he same AF nexthop</p>
<p style=3D"font-size:14px; font-family:arial">--------------</p>
<p>&nbsp; &nbsp; def spf_install_routes_in_rib(self, spf_direction):</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; =A1=AD=A1=AD</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prefix =3D dest_=
key</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if prefix.ipv4pr=
efix is not None:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ne=
xt_hops =3D dest.ipv4_next_hops</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro=
ute_table =3D self._ipv4_rib</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; as=
sert prefix.ipv6prefix is not None</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ne=
xt_hops =3D dest.ipv6_next_hops</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro=
ute_table =3D self._ipv6_rib</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if next_hops:</p=
>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rt=
e =3D route.Route(prefix, owner, next_hops)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro=
ute_table.put_route(rte)</p>
<p style=3D"font-size:14px; font-family:arial">Is it possible to generate a=
 valid v6 rib table as long as v4 address of the inteface is valid? Can it =
support ipv4 and ipv6 double stack?</p>
<p style=3D"font-size:14px; font-family:arial">Thanks!<br>
</p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:a=
rial; line-height:21px">Benchong</span></p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:a=
rial; line-height:21px"><br>
</span></p>
<div>
<div class=3D"x_zhistoryRow" style=3D"display:block">
<div class=3D"x_zhistoryDes" style=3D"width:100%; height:28px; line-height:=
28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_zwriteHistoryContainer">
<div class=3D"x_control-group x_zhistoryPanel">
<div class=3D"x_zhistoryHeader" style=3D"padding:8px; background-color:#F5F=
6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span></div>
<div><strong>=B3=AD=CB=CD=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e" style=3D"display:inline">Jeffrey (Zhaohui) Zhang &lt;zzhang@juniper.net&=
gt;;</span><span class=3D"x_zreadUserName" style=3D"display:inline">=D5=C5=
=D5=F700007940;</span><span class=3D"x_zreadUserName" style=3D"display:inli=
ne">rift@ietf.org
 &lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C211=C8=D5 11:52</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_zreadTitle"><str=
ong>Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Benchong, what you seem to talk about is originating packets and it's the s=
ource that decides whether it sends v4 or v6 and the IP fabric with RIFT ju=
st forwards the packet, it cannot change in the middle the IP address famil=
y in which the packet is carried
 &nbsp;obviously so there is no decision to be made which IP AF is used, on=
ly which GW needs to be installed on the route nexthop. But yes, an impleme=
ntaton can choose to forward v4 packets using the MAC address of a v6 gatew=
ay, a highly desirable behavior since
 &nbsp;with that, the fabric can be completely global address free without =
any config (just ND) and do v4 fine.&nbsp;
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
yes, an implementation may choose to prefer v4 GW for v4 packets and v6 GW =
for v6 packets but normally it's the same MAC unless the deployment is very=
 strange @ which point knobs to control that may be necessary, something wh=
ich is implementation specific.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
So RIFT just floods the TIEs on any AF with prefixes of all AFs, the comput=
ation computes the route with directly attached next-hop which has to resol=
ve to MAC in any AF really and then packet can be forwarded ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
implement it and play with it, we have @ least 2 implementations already th=
at work fine doing that ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Yes, the closest analogy is v4 in BGP with v6 nexthops if you really want t=
o think that way but RIFT is much simpler since the nhop is always directly=
 connected and we don't talk about anything like v4ov6 or v6ov4 tunneling a=
nd so on ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
makes sense? <br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
--- tony <br>
</div>
<br>
<div><br>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-size:11pt; font=
-family:Calibri,sans-serif; color:#000000"><strong>From:</strong> xu.bencho=
ng@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Wednesday, July 10, 2019 8:39 PM<br>
<strong>To:</strong> Antoni Przygienda<br>
<strong>Cc:</strong> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; r=
ift@ietf.org<br>
<strong>Subject:</strong> Re:[Rift] Ipv4 and ipv6 cooperating in rift</span=
> &nbsp;</div>
<div>
<div class=3D"x_x_zcontentRow">
<p style=3D"font-size:14px; font-family:arial">Hi tony</p>
<p style=3D"font-size:14px; font-family:arial">Thanks for your explanation,=
 and I have already understood your opinion on v4v6 forwarding.</p>
<p>The difference between RIFT and other routing protocols is the consisten=
cy of packets AF and routes AF. Isis is in L2 encapsulation that solves dif=
ferent address families through multiple topologies. Ospf and rip are stric=
tly distinguished in v4v6. Rift
 &nbsp;is actually closer to BGP.</p>
<p>When the interface has both v4 and v6 addresses (or ND enabled), the pro=
tocol uses v4 or v6 or v4v6 address encapsulation. It will be better if pro=
tocol gave the recommended behavior. Otherwise, different people will give =
different solutions, which will
 &nbsp;cause protocol conformance problem.&nbsp;</p>
<p>The options we can choose are:</p>
<p>a) ND enable v6 first:</p>
<p>If v6 address valid AND ND enable:</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>Else if v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>b) v4 first</p>
<p>If v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>Else if v6 address valid(AND ND enable):</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>c) coexistence of v4v6</p>
<p>If v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>If v6 address valid(AND ND enable):</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>Confused on both the sending and receiving sides.</p>
<p>c) will further have a GW selection problem, preferring to choose the ne=
xthop of the same address family with the prefix, or v4 first.</p>
<p style=3D"font-size:14px; font-family:arial">I'd like the protocol recomm=
ends a default behavior and may provides a control method in yang.</p>
<p style=3D"font-size:14px; font-family:arial">Thanks!</p>
<p style=3D"font-size:14px; font-family:arial">Benchong</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_x_zhistoryRow" style=3D"display:block">
<div class=3D"x_x_zhistoryDes" style=3D"width:100%; height:28px; line-heigh=
t:28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_x_zwriteHistoryContainer">
<div class=3D"x_x_control-group x_x_zhistoryPanel">
<div class=3D"x_x_zhistoryHeader" style=3D"padding:8px; background-color:#F=
5F6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span></div>
<div><strong>=B3=AD=CB=CD=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame" style=3D"display:inline">Jeffrey (Zhaohui) Zhang &lt;zzhang@juniper.ne=
t&gt;;</span><span class=3D"x_x_zreadUserName" style=3D"display:inline">=D5=
=C5=D5=F700007940;</span><span class=3D"x_x_zreadUserName" style=3D"display=
:inline">rift@ietf.org
 &nbsp;&lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C210=C8=D5 23:12</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_x_zreadTitle"><s=
trong>Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, that's an over-interpretation, the spec is looser than that b=
ut as far I saw sufficient. Section 5.2.2.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
a) Specification does not prohibit RIFT from using _any_ valid IPv6 address=
 on the interface to send IPv6 LIEs. The receiver is supposed to pick up th=
at source address and use it as destination when sending LIEs over v6 and/o=
r TIEs with the receving interface
 &nbsp;&nbsp;as gateway. Specification does NOT spell out what happens e.g.=
 on mismatched IP subnets on both sides and so on, situation here is simila=
r to ISIS and different scenarios such as unnumbered links and so on<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
b) If you want the &quot;laziest&quot; possible implementation then in fact=
 yes, you can fall back on
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
&quot;
<pre>   All RIFT routers MUST support IPv4 forwarding and MAY support IPv6 =
   forwarding.  A three way adjacency over IPv6 addresses implies    suppor=
t for IPv4 forwarding.</pre>
&quot;</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
which makes v4ov6 forwarding inherent part of RIFT. That assumes however th=
at receiving neighbor does support V6 (which the spec does NOT mandate) and=
 nothing will happen if it doesn't. Therefore all RIFT implementation I saw=
 so far send both v4 and v6 which
 &nbsp;&nbsp;allows the neighbor to only receive v4 and forward using v4 ga=
teways if it doesn't support V6. In case both v4 and v6 AFs are established=
, it is up to the implementation which/how it resolves the gateways and the=
re are many interesting advanced issues such
 &nbsp;&nbsp;as mixture of spines with v4 and v6 nexthops and how to form E=
CMP amongst them that the spec does obviously not address since it's all ve=
ry implementation and silicon specific.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
--- tony <br>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-family:Calibr=
i,sans-serif; font-size:11pt; color:#000000"><strong>From:</strong> xu.benc=
hong@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Wednesday, July 10, 2019 1:56 AM<br>
<strong>To:</strong> Antoni Przygienda<br>
<strong>Cc:</strong> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; r=
ift@ietf.org<br>
<strong>Subject:</strong> Re:[Rift] Ipv4 and ipv6 cooperating in rift</span=
> &nbsp;</div>
<div>
<div class=3D"x_x_x_zcontentRow">
<p><br>
</p>
<p>Tony, thank you for your reply</p>
<p>Can it be understood that after the ND is enabled, the v6 address needs =
to be used to build neighbor? In this case, the rift packet of the v4 heade=
r is not allowed to be sent and received, and both v4 and v6 routes have a =
v6 GW.</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_x_x_zhistoryRow" style=3D"display:block">
<div class=3D"x_x_x_zhistoryDes" style=3D"width:100%; height:28px; line-hei=
ght:28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_x_x_zwriteHistoryContainer">
<div class=3D"x_x_x_control-group x_x_x_zhistoryPanel">
<div class=3D"x_x_x_zhistoryHeader" style=3D"padding:8px; background-color:=
#F5F6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_x_zreadUse=
rName">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_x_zreadUse=
rName" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span><span cla=
ss=3D"x_x_x_zreadUserName" style=3D"display:inline">Jeffrey (Zhaohui)Zhang =
&lt;zzhang@juniper.net&gt;;</span><span class=3D"x_x_x_zreadUserName" style=
=3D"display:inline">=D5=C5=D5=F700007940;</span><span class=3D"x_x_x_zreadU=
serName" style=3D"display:inline">rift@ietf.org
 &nbsp;&nbsp;&lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C210=C8=D5 00:09</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_x_x_zreadTitle">=
<strong>Re: [Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_x_x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, cc:'ing list, good questions obviously that pop out on implem=
entation &nbsp;
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<ol class=3D"x_x_x_ x_x_ x_list-paddingleft-2">
<li>
<p>sending LIE only with v4 will not give you a v6 address to send to (sinc=
e the LIE source address gives the gateway for the AF, that's why we send L=
IE per AF) so you won't have a v6 GW address to send TIEs to ;-)</p>
</li><li>
<p>yes, every interface is independent. Observe that v6 support implies v4 =
as the spec says (since you can FW v4 without a v4 GW if you have a v6 gate=
way). However, if one side sends v6 only and the other side only v4 they'll=
 never go 3-way since they won't
 &nbsp;&nbsp;&nbsp;be able to receive. We just added a sentence to the spec=
 saying that if you don't send an AF LIE you MUST NOT receive the same AF L=
IE since we found that loose end in Bruno's implementation when testing sec=
urity envelopes.&nbsp; It will be in -07<br>
</p>
</li></ol>
<br>
<div>
<pre style=3D"background-color:#ffffff; color:#000000; font-family:'Menlo';=
 font-size:7.5pt"><span style=3D"background-color:#efefef">&lt;</span><span=
 style=3D"color:#000080; background-color:#efefef; font-weight:bold">t</spa=
n><span style=3D"background-color:#efefef">&gt;</span>All RIFT routers MUST=
 support IPv4 forwarding and MAY support IPv6<br>    forwarding. A three wa=
y adjacency over IPv6 addresses implies support<br>    for IPv4 forwarding.=
 <strong>A node that does not process received IPv6 LIEs<br> &nbsp; &nbsp;M=
UST NOT originate IPv6 LIEs.</strong><br>    <span style=3D"background-colo=
r:#efefef">&lt;/</span><span style=3D"color:#000080; background-color:#efef=
ef; font-weight:bold">t</span><span style=3D"background-color:#efefef">&gt;=
</span></pre>
<br>
</div>
<ol class=3D"x_x_x_ x_x_ x_list-paddingleft-2">
<li>
<p>IPv6/IPv4 prefix can be mixed in Prefix TIEs. Prefix TIEs do NOT care wh=
ich interface/AF they are sent over.
<br>
</p>
</li><li>
<p>how you build forwarding table and which gateways you use is implemenati=
on dependent but yes, you got the flavor. though your assumption of &quot;I=
pv6 destination with ipv4 nexthop&quot; is optimistic. every silicon does v=
4 so v6 can imply v4, implying v4 fwd'ing
 &nbsp;&nbsp;&nbsp;allows v6 forwarding fails on good amount of silicon. Bu=
t again, those are all implementation knobs, spec only says &quot;v6 implie=
s v4&quot; which means &quot;you better fwd. v4 over v6 nexthops if you see=
 v6 LIEs only&quot;<br>
</p>
</li></ol>
<div>Observe that node TIEs are _not_ carrying the supported AFs on each in=
terface since I think it would lead to undesirable attempts to deploy (some=
 links can do v6) topologies which defeat the purpose of ZTP/simplicity of =
RIFT. v6 implies v4, if someone
 &nbsp;&nbsp;&nbsp;wants to fwd' v6 over a fabric where certain links are v=
4 computations get really weird and operationally such a thing is probably =
a nightmare anyway. And getting v6 working is trivial, just flip on ND and =
you're in business (at least control plane wise
 &nbsp;;-)<br>
</div>
<br>
<div>The spec is noit giving implementation advice, it just specifies behav=
ior. In case of doubt looks @ Bruno';s open source. Bruno implemented the w=
hole LIE without ever talking to me and it interop'ed day one without probl=
ems.
<br>
</div>
<br>
<div>When you're ready with your implementation to interop, Bruno's code ha=
s nice framework you can plug in against open source &amp; Juniper implemen=
tation easily
<br>
</div>
<br>
<div>--- tony <br>
</div>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_x_x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-size:11pt; =
font-family:Calibri,sans-serif; color:#000000"><strong>From:</strong> xu.be=
nchong@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Tuesday, July 9, 2019 5:08 AM<br>
<strong>To:</strong> Antoni Przygienda; Jeffrey (Zhaohui) Zhang; EXT-zhang.=
zheng@zte.com.cn<br>
<strong>Subject:</strong> [Rift] Ipv4 and ipv6 cooperating in rift</span> &=
nbsp;</div>
<div>
<div class=3D"x_x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_x_zcontentRow">
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Hi<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
I have some questions about ipv4 and ipv6 cooperating in rift.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Ip head of the rift packet can be V4 or V6, and the prefix in TIE also supo=
rt V4 or v6.&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can it support the following situations:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
1=A1=A2A rift interface which&nbsp;send LIE with ipv4 head receiving LIE wi=
th IPv6 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
A rift interface which&nbsp;send LIE with ipv6 head receiving LIE with IPv4=
 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can they build 3-Way neighbor?</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
2=A1=A2Some interfaces in a rift instance send ipv4 head packets=A3=AC and =
others in the same instance send ipv6 head packets=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
3=A1=A2Ipv4 head TIE packet fill ipv6 prefix=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 head TIE packet fill ipv4 prefix=A3=BB(RIFT-06 5.2.2: All=
 RIFT routers MUST support IPv4 forwarding and MAY support IPv6</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;forwarding. &nbsp;A three way adjacency over IPv6 addresses im=
plies</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;support for IPv4 forwarding.)</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
4=A1=A2In rib table of the rift:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with ipv4 nexthop;&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
5=A1=A2The ip head type(v4 or v6) can be configured in rift interface or in=
stance.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
It will be better if there are clear instructions in rift protocol.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Thanks=A3=A1</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Benchong</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</body>
</html>

--_000_MWHPR05MB3279448FCFADFC5B2B6FFD97ACF30MWHPR05MB3279namp_--


From nobody Thu Jul 11 08:57:46 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AE203120397 for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 08:57:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 lt7pzSByXgHO for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 08:57:39 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 47DA0120383 for <rift@ietf.org>; Thu, 11 Jul 2019 08:57:32 -0700 (PDT)
Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6BFsDRL005879; Thu, 11 Jul 2019 08:57:31 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=hvGg7hslSJBRRvppDo9EVeoYzF+JMpVXKiFBNX1C0b0=; b=w3fKHCfVWKBHRxtfkfv5b5RFAi7BOb/fio0MO9d6OBkNYCBDFC2YoMwn3sxYm80H8n+Z Vl/pug6tEPvUYwl6rW/IS/An+uF9OHHa40MfWIA5py2ZCGuVYJ9BYDoiHDMDksf40cV3 +oUaZ3X3n0UMdh4N4gkONkUuQP/amamqUoHoM+VT2wVvcTzOi4NK08IDBCdI6UJ/RGre xTGHwwNa4GFHluOUff+wZX+6XBEZJTM3O213XrGl9y0GR0Pc8F8JpJzIdwEALCwdkheh 0HTbqYualsomF+KJ7i0pY7DKpIUnKmj/Slv7N+eVECzq2EZxf8VUtQ2lpVC4Fx+heDyc vA== 
Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2058.outbound.protection.outlook.com [104.47.36.58]) by mx0a-00273201.pphosted.com with ESMTP id 2tp7eegac0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 11 Jul 2019 08:57:31 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y74AeIivvAsa9fTLSdjf4PaCPjkwO0rGN2IfwVunFKmizDBTs5RTxJDHEdNucklKRCIla713WtJVh08LRCRHmoMLOgxdu3dLNCcJhniZPvWy2WsHZno800anpPNhKPxj5bcN5xv/dy4KqNQWAIJhlo8jXaYHOFa3h4q/Ulu31bqsr/XtDL7OMx6vwt7bI7nI0CUJ4lQmZ7ffRWAVHraNusgtNYLRond1PZfKeyAcpbFEs2EJ0JS5HOvJUruVC/Pf9ljT+do4onthuL4VqnXe7nQbNPDWnAJdzE6TOtmiIvYr580bpElb0oHEGEl1/o1c+1F6SXOQJobFNmjkJGJX6g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hvGg7hslSJBRRvppDo9EVeoYzF+JMpVXKiFBNX1C0b0=; b=Cn+NtihGaT3NMTpJwo0ZxePOHOzfs8/Um9b3YVV6lpRtXutMHV0eeGF77fjKIJCExMo4UAEanIuR/t3r/Bg2ElMdblVIUdsKXmDEJFoluTo1Xctm0yWx/AH2zirtPYSO5GcNc5Q/j0b/kHrJq+s5KAVxVO08FhRJW1u4AW7XeSk9901YChA171m8EMDUONPZ/iza506shLgLOVFkp8NRVh3wuJCbPQ5lSl0wlhKKQF+oz17xuiVyU2lwrNXMjEWPfL4ivRn/D7ox6MtgTh1Npdj4dXx41lIRiy3OT1bLFsYhinGeVyZ2DeZIyEZqPwoPIOJ+u/BHQVu81rFMU2GC9g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB3229.namprd05.prod.outlook.com (10.173.229.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.8; Thu, 11 Jul 2019 15:57:28 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2073.008; Thu, 11 Jul 2019 15:57:28 +0000
From: Antoni Przygienda <prz@juniper.net>
To: "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>, "brunorijsman@gmail.com" <brunorijsman@gmail.com>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: Fw:Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift
Thread-Index: AQHVN8vGZbTZZ+0IyE+CmuEc6N8hfqbFkibd
Date: Thu, 11 Jul 2019 15:57:28 +0000
Message-ID: <MWHPR05MB32799A20D113C1B541A46ABEACF30@MWHPR05MB3279.namprd05.prod.outlook.com>
References: 201907111139404022772@zte.com.cn, MWHPR05MB327920CEE377FDB606FD3D35ACF30@MWHPR05MB3279.namprd05.prod.outlook.com, <201907111733344496218@zte.com.cn>
In-Reply-To: <201907111733344496218@zte.com.cn>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [108.228.12.76]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d0a204ef-579c-4f9d-71f3-08d7061879b9
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB3229; 
x-ms-traffictypediagnostic: MWHPR05MB3229:
x-microsoft-antispam-prvs: <MWHPR05MB32294A052C6B6F68CF6ABE1CACF30@MWHPR05MB3229.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7219;
x-forefront-prvs: 0095BCF226
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(396003)(366004)(136003)(346002)(39860400002)(376002)(189003)(199004)(3846002)(76176011)(7696005)(478600001)(2501003)(6116002)(316002)(68736007)(66446008)(6246003)(9686003)(2906002)(54896002)(52536014)(66946007)(66556008)(55016002)(66476007)(76116006)(6436002)(256004)(25786009)(229853002)(64756008)(99286004)(53946003)(14454004)(81156014)(102836004)(7736002)(11346002)(5660300002)(66066001)(74316002)(5024004)(486006)(476003)(71200400001)(446003)(33656002)(26005)(86362001)(186003)(71190400001)(81166006)(53546011)(6506007)(30864003)(110136005)(53936002)(2201001)(19627405001)(105004)(8676002)(14444005)(8936002); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB3229; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: IfHLz9V2nHLgw3QlEV8IoBeegL1DH5Oh5N/B4J3ZP0Q+f61MfcXzJYlD78dldvxLZr+cM3l+fXy3u794LzpQxnF/bvmoI5QzRjBCMyS2aXCmunLvqc098N5qkdpPx/cJz6NJ7yAFUsZHSnpADATLaXhCc+IPpvwCVQxgH6Wio7EVvGHI7MNHmT3Bve/rnD/7gfWGVAwdGwatib1HRvRc2pqxLTbtlEhodaVBr2pZ2ea3Z7RZh0VvLhmv0iXEvbRfu/ovY2i21Sl1C5MMExuXjHcSZIjp90K2n3u9379wkB8TULuo9Z3SUrK7DwcLRg56kvHsjgCZ1BFNCk2nTtVrHBjjHBX1eSmZVLs90cn75O0P7j0YoLvNXo62gYfBut3tlPm53INPjD3cun5WNZ1zTq6+k/jhrpxQP6zzkw6acFM=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB32799A20D113C1B541A46ABEACF30MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: d0a204ef-579c-4f9d-71f3-08d7061879b9
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2019 15:57:28.6283 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3229
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-11_03:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907110179
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/mT45vG2SxyRRJCv57LLJEC8gOFc>
Subject: Re: [Rift] Fw:Re: Re: Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 15:57:45 -0000

--_000_MWHPR05MB32799A20D113C1B541A46ABEACF30MWHPR05MB3279namp_
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64

QmVuY2hvbmcsIGFzIHRvIHlvdXIgbGFzdCBpbnRlcnN0aW5nIHF1ZXN0aW9uOg0KDQoiDQoNCklz
IGl0IHBvc3NpYmxlIHRvIGdlbmVyYXRlIGEgdmFsaWQgdjYgcmliIHRhYmxlIGFzIGxvbmcgYXMg
djQgYWRkcmVzcyBvZiB0aGUgaW50ZWZhY2UgaXMgdmFsaWQ/IENhbiBpdCBzdXBwb3J0IGlwdjQg
YW5kIGlwdjYgZG91YmxlIHN0YWNrPw0KDQoiDQoNCmFuc3dlciBpcyAieWVzLCBidXQgcHJhY3Rp
Y2FsbHkgaWYgeW91ciBpbnRlcmZhY2UgY2FuIGZ3ZCcgSVB2NiBmcmFtZXMgaXQgYWxzbyBydW5z
IE5EIHNvIHlvdSB3aWxsIGhhdmUgYSB2NiBsaW5rIGxvY2FsIHdoaWNoIHNlZW1zIG11Y2ggbW9y
ZSBuYXR1cmFsIGFzIG5leHQtaG9wIHJhdGhlciB0aGFuIG1hbHRyZWF0IHY0IGFkZHJlc3NlcyB0
byBidWlsZCB2NiBuZXh0LWhvcHMgZnJvbSA7LSkgVW5sZXNzIHlvdSBoYXZlIHNvbWUgZnVua3kg
c2lsaWNvbiBsaW1pdGF0aW9ucyB3aGVyZSBzdWNoIGEgdGhpbmcgaXMgYSBnb29kIHRoaW5nIDst
KQ0KDQpTbywgeW91IHNlZSB3aHkgdGhlIHNwZWMgaXMgd3JpdHRlbiB0byB0aGUgcG9pbnQgaXQn
cyB3cml0dGVuIGFuZCBzaWxlbnQgb24gc3BlY2lmaWNhdGlvbiBob3cgdG8gcHJlY2lzZWx5IGJ1
aWxkIG5leHQtaG9wcy9nYXRld2F5cy4gSXQgY2FuIGJlIGltcGxlbWVudGVkIGluIGNvdXBsZSBk
aWZmZXJlbnQgd2F5cyB3aGljaCBhcmUgdmVyeSBjbG9zZSB0byBpbXBsZW1lbnRhdGlvbiB0ZWNo
bmlxdWVzL0hXIHVzZWQgc28gdHJ5aW5nIHRvIG5haWwgdGhhdCBpbiBwcm90b2NvbCBzcGVjIHdv
dWxkIGJlIG92ZXItc3BlY2lmaWNhdGlvbiB3aGljaCBpcyBhbG1vc3QgYXMgYmFkIGFzIHVuZGVy
LXNwZWNpZmljYXRpb24gLi4uDQoNCi0tLSB0b255DQpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXw0KRnJvbTogeHUuYmVuY2hvbmdAenRlLmNvbS5jbiA8eHUuYmVuY2hvbmdAenRlLmNv
bS5jbj4NClNlbnQ6IFRodXJzZGF5LCBKdWx5IDExLCAyMDE5IDI6MzMgQU0NClRvOiBicnVub3Jp
anNtYW5AZ21haWwuY29tDQpDYzogQW50b25pIFByenlnaWVuZGENClN1YmplY3Q6IEZ3OlJlOiBS
ZTpbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0DQoNCg0KSGksIEJydW5v
DQoNCkkgcmVhZCBwYXJ0IG9mIHlvdXIgUklGVCBjb2RlLCB0aGFuayB5b3UgZm9yIHlvdXIgZ3Jl
YXQgam9iIQ0KDQpXaGVuIHNlbmRpbmcgTElFIG1lc3NhZ2VzLCBhcyBsb25nIGFzIHRoZXJlIGlz
IGEgdjQgYWRkcmVzcywgdjQgd2lsbCBiZSB1c2VkIGZpcnN0LCBzbyB3ZSB3aWxsIGdldCB2NCBu
ZXh0IGhvcC4NCg0KLS0tLS0tLS0tLQ0KDQogICAgZGVmIGFjdGlvbl9zdGFydF9mbG9vZGluZyhz
ZWxmKToNCg0Koa2hrQ0KDQogICAgICAgIyBGb3Igc2VuZGluZyBmbG9vZGluZyBwYWNrZXRzLCB1
c2Ugd2hhdGV2ZXIgSVB2NCBvciBJUHY2IGFkZHJlc3Mgd2Ugc2VlIGZpcnN0IGZvciB0aGUNCg0K
ICAgICAgICAjIG5laWdoYm9yLCBwcmVmZXJyaW5nIHRoZSBJUHY0IGFkZHJlc3MgaWYgd2Uga25v
dyBib3RoLg0KDQogICAgICAgIGlmIHNlbGYubmVpZ2hib3IuaXB2NF9hZGRyZXNzIGlzIG5vdCBO
b25lOg0KDQogICAgICAgICAgICBzZWxmLnJ4X2luZm8oIlN0YXJ0IElQdjQgZmxvb2Rpbmc6IHNl
bmQgdG8gYWRkcmVzcyAlcyBwb3J0ICVkIiwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYubmVpZ2hib3IuaXB2NF9hZGRyZXNzLCB0eF9mbG9vZF9wb3J0KQ0KDQogICAgICAgICAgICBz
ZWxmLl9mbG9vZF90eF9pcHY0X3NvY2tldCA9IHNlbGYuY3JlYXRlX3NvY2tldF9pcHY0X3R4X3Vj
YXN0KA0KDQogICAgICAgICAgICAgICAgcmVtb3RlX2FkZHJlc3M9c2VsZi5uZWlnaGJvci5pcHY0
X2FkZHJlc3MsDQoNCiAgICAgICAgICAgICAgICBwb3J0PXR4X2Zsb29kX3BvcnQpDQoNCiAgICAg
ICAgZWxzZToNCg0KICAgICAgICAgICAgYXNzZXJ0IHNlbGYubmVpZ2hib3IuaXB2Nl9hZGRyZXNz
IGlzIG5vdCBOb25lDQoNCiAgICAgICAgICAgIHNjb3BlZF9pcHY2X2FkZHJlc3MgPSBzZWxmLm5l
aWdoYm9yLmlwdjZfYWRkcmVzcw0KDQogICAgICAgICAgICBpZiAiJSIgbm90IGluIHNlbGYubmVp
Z2hib3IuaXB2Nl9hZGRyZXNzOg0KDQogICAgICAgICAgICAgICAgc2NvcGVkX2lwdjZfYWRkcmVz
cyArPSAiJSIgKyBzZWxmLnBoeXNpY2FsX2ludGVyZmFjZV9uYW1lDQoNCiAgICAgICAgICAgIHNl
bGYucnhfaW5mbygiU3RhcnQgSVB2NiBmbG9vZGluZzogc2VuZCB0byBhZGRyZXNzICVzIHBvcnQg
JWQiLA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGVkX2lwdjZfYWRkcmVzcywgdHhf
Zmxvb2RfcG9ydCkNCg0KICAgICAgICAgICAgc2VsZi5fZmxvb2RfdHhfaXB2Nl9zb2NrZXQgPSBz
ZWxmLmNyZWF0ZV9zb2NrZXRfaXB2Nl90eF91Y2FzdCgNCg0KICAgICAgICAgICAgICAgIHJlbW90
ZV9hZGRyZXNzPXNjb3BlZF9pcHY2X2FkZHJlc3MsDQoNCiAgICAgICAgICAgICAgICBwb3J0PXR4
X2Zsb29kX3BvcnQpDQoNClNQRiBjYWxjdWxhdGlvbiB3aWxsIGNhbGN1bGF0ZSB0aGUgbmV4dGhv
cCBvZiB2NCBhbmQgdjYgYXQgdGhlIHNhbWUgdGltZS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0NCg0K
ICAgIGRlZiBzZXRfc3BmX3ByZWRlY2Vzc29yKHNlbGYsIGRlc3RpbmF0aW9uLCBuYnJfdGllX2Vs
ZW1lbnQsIHByZWRlY2Vzc29yX3N5c3RlbV9pZCwNCg0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNwZl9kaXJlY3Rpb24pOg0KDQogICAgICAgIGRlc3RpbmF0aW9uLmFkZF9wcmVkZWNlc3Nv
cihwcmVkZWNlc3Nvcl9zeXN0ZW1faWQpDQoNCiAgICAgICAgaWYgKG5icl90aWVfZWxlbWVudCBp
cyBub3QgTm9uZSkgYW5kIChwcmVkZWNlc3Nvcl9zeXN0ZW1faWQgPT0gc2VsZi5zeXN0ZW1faWQp
Og0KDQogICAgICAgICAgICBmb3IgbGlua19pZF9wYWlyIGluIG5icl90aWVfZWxlbWVudC5saW5r
X2lkczoNCg0KICAgICAgICAgICAgICAgIG5ob3AgPSBzZWxmLmludGVyZmFjZV9pZF90b19pcHY0
X25leHRfaG9wKGxpbmtfaWRfcGFpci5sb2NhbF9pZCkNCg0KICAgICAgICAgICAgICAgIGlmIG5o
b3A6DQoNCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24uYWRkX2lwdjRfbmV4dF9ob3Ao
bmhvcCkNCg0KICAgICAgICAgICAgICAgIG5ob3AgPSBzZWxmLmludGVyZmFjZV9pZF90b19pcHY2
X25leHRfaG9wKGxpbmtfaWRfcGFpci5sb2NhbF9pZCkNCg0KICAgICAgICAgICAgICAgIGlmIG5o
b3A6DQoNCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb24uYWRkX2lwdjZfbmV4dF9ob3Ao
bmhvcCkNCg0KICAgICAgICBlbHNlOg0KDQogICAgICAgICAgICBkZXN0X3RhYmxlID0gc2VsZi5f
c3BmX2Rlc3RpbmF0aW9uc1tzcGZfZGlyZWN0aW9uXQ0KDQogICAgICAgICAgICBkZXN0aW5hdGlv
bi5pbmhlcml0X25leHRfaG9wcyhkZXN0X3RhYmxlW3ByZWRlY2Vzc29yX3N5c3RlbV9pZF0pDQoN
ClRoZSBSSUIgdGFibGUgb25seSBzZWxlY3RzIHRoZSBzYW1lIEFGIG5leHRob3ANCg0KLS0tLS0t
LS0tLS0tLS0NCg0KICAgIGRlZiBzcGZfaW5zdGFsbF9yb3V0ZXNfaW5fcmliKHNlbGYsIHNwZl9k
aXJlY3Rpb24pOg0KDQogICAgICAgIKGtoa0NCg0KICAgICAgICAgICAgICAgIHByZWZpeCA9IGRl
c3Rfa2V5DQoNCiAgICAgICAgICAgICAgICBpZiBwcmVmaXguaXB2NHByZWZpeCBpcyBub3QgTm9u
ZToNCg0KICAgICAgICAgICAgICAgICAgICBuZXh0X2hvcHMgPSBkZXN0LmlwdjRfbmV4dF9ob3Bz
DQoNCiAgICAgICAgICAgICAgICAgICAgcm91dGVfdGFibGUgPSBzZWxmLl9pcHY0X3JpYg0KDQog
ICAgICAgICAgICAgICAgZWxzZToNCg0KICAgICAgICAgICAgICAgICAgICBhc3NlcnQgcHJlZml4
LmlwdjZwcmVmaXggaXMgbm90IE5vbmUNCg0KICAgICAgICAgICAgICAgICAgICBuZXh0X2hvcHMg
PSBkZXN0LmlwdjZfbmV4dF9ob3BzDQoNCiAgICAgICAgICAgICAgICAgICAgcm91dGVfdGFibGUg
PSBzZWxmLl9pcHY2X3JpYg0KDQogICAgICAgICAgICAgICAgaWYgbmV4dF9ob3BzOg0KDQogICAg
ICAgICAgICAgICAgICAgIHJ0ZSA9IHJvdXRlLlJvdXRlKHByZWZpeCwgb3duZXIsIG5leHRfaG9w
cykNCg0KICAgICAgICAgICAgICAgICAgICByb3V0ZV90YWJsZS5wdXRfcm91dGUocnRlKQ0KDQpJ
cyBpdCBwb3NzaWJsZSB0byBnZW5lcmF0ZSBhIHZhbGlkIHY2IHJpYiB0YWJsZSBhcyBsb25nIGFz
IHY0IGFkZHJlc3Mgb2YgdGhlIGludGVmYWNlIGlzIHZhbGlkPyBDYW4gaXQgc3VwcG9ydCBpcHY0
IGFuZCBpcHY2IGRvdWJsZSBzdGFjaz8NCg0KVGhhbmtzIQ0KDQpCZW5jaG9uZw0KDQoNCtStyrzT
yrz+DQq3orz+yMujukFudG9uaVByenlnaWVuZGEgPHByekBqdW5pcGVyLm5ldD4NCsrVvP7Iy6O6
0OyxvrPnMTAwNjUwNTM7DQqzrcvNyMujukplZmZyZXkgKFpoYW9odWkpIFpoYW5nIDx6emhhbmdA
anVuaXBlci5uZXQ+O9XF1fcwMDAwNzk0MDtyaWZ0QGlldGYub3JnIDxyaWZ0QGlldGYub3JnPjsN
CsjVIMbaIKO6MjAxOcTqMDfUwjExyNUgMTE6NTINCtb3IMziIKO6UmU6IFJlOltSaWZ0XSBJcHY0
IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQNCkJlbmNob25nLCB3aGF0IHlvdSBzZWVtIHRv
IHRhbGsgYWJvdXQgaXMgb3JpZ2luYXRpbmcgcGFja2V0cyBhbmQgaXQncyB0aGUgc291cmNlIHRo
YXQgZGVjaWRlcyB3aGV0aGVyIGl0IHNlbmRzIHY0IG9yIHY2IGFuZCB0aGUgSVAgZmFicmljIHdp
dGggUklGVCBqdXN0IGZvcndhcmRzIHRoZSBwYWNrZXQsIGl0IGNhbm5vdCBjaGFuZ2UgaW4gdGhl
IG1pZGRsZSB0aGUgSVAgYWRkcmVzcyBmYW1pbHkgaW4gd2hpY2ggdGhlIHBhY2tldCBpcyBjYXJy
aWVkICBvYnZpb3VzbHkgc28gdGhlcmUgaXMgbm8gZGVjaXNpb24gdG8gYmUgbWFkZSB3aGljaCBJ
UCBBRiBpcyB1c2VkLCBvbmx5IHdoaWNoIEdXIG5lZWRzIHRvIGJlIGluc3RhbGxlZCBvbiB0aGUg
cm91dGUgbmV4dGhvcC4gQnV0IHllcywgYW4gaW1wbGVtZW50YXRvbiBjYW4gY2hvb3NlIHRvIGZv
cndhcmQgdjQgcGFja2V0cyB1c2luZyB0aGUgTUFDIGFkZHJlc3Mgb2YgYSB2NiBnYXRld2F5LCBh
IGhpZ2hseSBkZXNpcmFibGUgYmVoYXZpb3Igc2luY2UgIHdpdGggdGhhdCwgdGhlIGZhYnJpYyBj
YW4gYmUgY29tcGxldGVseSBnbG9iYWwgYWRkcmVzcyBmcmVlIHdpdGhvdXQgYW55IGNvbmZpZyAo
anVzdCBORCkgYW5kIGRvIHY0IGZpbmUuDQoNCnllcywgYW4gaW1wbGVtZW50YXRpb24gbWF5IGNo
b29zZSB0byBwcmVmZXIgdjQgR1cgZm9yIHY0IHBhY2tldHMgYW5kIHY2IEdXIGZvciB2NiBwYWNr
ZXRzIGJ1dCBub3JtYWxseSBpdCdzIHRoZSBzYW1lIE1BQyB1bmxlc3MgdGhlIGRlcGxveW1lbnQg
aXMgdmVyeSBzdHJhbmdlIEAgd2hpY2ggcG9pbnQga25vYnMgdG8gY29udHJvbCB0aGF0IG1heSBi
ZSBuZWNlc3NhcnksIHNvbWV0aGluZyB3aGljaCBpcyBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYy4N
Cg0KU28gUklGVCBqdXN0IGZsb29kcyB0aGUgVElFcyBvbiBhbnkgQUYgd2l0aCBwcmVmaXhlcyBv
ZiBhbGwgQUZzLCB0aGUgY29tcHV0YXRpb24gY29tcHV0ZXMgdGhlIHJvdXRlIHdpdGggZGlyZWN0
bHkgYXR0YWNoZWQgbmV4dC1ob3Agd2hpY2ggaGFzIHRvIHJlc29sdmUgdG8gTUFDIGluIGFueSBB
RiByZWFsbHkgYW5kIHRoZW4gcGFja2V0IGNhbiBiZSBmb3J3YXJkZWQgLi4uDQoNCmltcGxlbWVu
dCBpdCBhbmQgcGxheSB3aXRoIGl0LCB3ZSBoYXZlIEAgbGVhc3QgMiBpbXBsZW1lbnRhdGlvbnMg
YWxyZWFkeSB0aGF0IHdvcmsgZmluZSBkb2luZyB0aGF0IC4uLg0KDQpZZXMsIHRoZSBjbG9zZXN0
IGFuYWxvZ3kgaXMgdjQgaW4gQkdQIHdpdGggdjYgbmV4dGhvcHMgaWYgeW91IHJlYWxseSB3YW50
IHRvIHRoaW5rIHRoYXQgd2F5IGJ1dCBSSUZUIGlzIG11Y2ggc2ltcGxlciBzaW5jZSB0aGUgbmhv
cCBpcyBhbHdheXMgZGlyZWN0bHkgY29ubmVjdGVkIGFuZCB3ZSBkb24ndCB0YWxrIGFib3V0IGFu
eXRoaW5nIGxpa2UgdjRvdjYgb3IgdjZvdjQgdHVubmVsaW5nIGFuZCBzbyBvbiAuLi4NCg0KbWFr
ZXMgc2Vuc2U/DQoNCi0tLSB0b255DQoNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18NCkZyb206IHh1LmJlbmNob25nQHp0ZS5jb20uY24gPHh1LmJlbmNob25nQHp0ZS5jb20uY24+
DQpTZW50OiBXZWRuZXNkYXksIEp1bHkgMTAsIDIwMTkgODozOSBQTQ0KVG86IEFudG9uaSBQcnp5
Z2llbmRhDQpDYzogSmVmZnJleSAoWmhhb2h1aSkgWmhhbmc7IEVYVC16aGFuZy56aGVuZ0B6dGUu
Y29tLmNuOyByaWZ0QGlldGYub3JnDQpTdWJqZWN0OiBSZTpbUmlmdF0gSXB2NCBhbmQgaXB2NiBj
b29wZXJhdGluZyBpbiByaWZ0DQoNCkhpIHRvbnkNCg0KVGhhbmtzIGZvciB5b3VyIGV4cGxhbmF0
aW9uLCBhbmQgSSBoYXZlIGFscmVhZHkgdW5kZXJzdG9vZCB5b3VyIG9waW5pb24gb24gdjR2NiBm
b3J3YXJkaW5nLg0KDQpUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIFJJRlQgYW5kIG90aGVyIHJvdXRp
bmcgcHJvdG9jb2xzIGlzIHRoZSBjb25zaXN0ZW5jeSBvZiBwYWNrZXRzIEFGIGFuZCByb3V0ZXMg
QUYuIElzaXMgaXMgaW4gTDIgZW5jYXBzdWxhdGlvbiB0aGF0IHNvbHZlcyBkaWZmZXJlbnQgYWRk
cmVzcyBmYW1pbGllcyB0aHJvdWdoIG11bHRpcGxlIHRvcG9sb2dpZXMuIE9zcGYgYW5kIHJpcCBh
cmUgc3RyaWN0bHkgZGlzdGluZ3Vpc2hlZCBpbiB2NHY2LiBSaWZ0ICBpcyBhY3R1YWxseSBjbG9z
ZXIgdG8gQkdQLg0KDQpXaGVuIHRoZSBpbnRlcmZhY2UgaGFzIGJvdGggdjQgYW5kIHY2IGFkZHJl
c3NlcyAob3IgTkQgZW5hYmxlZCksIHRoZSBwcm90b2NvbCB1c2VzIHY0IG9yIHY2IG9yIHY0djYg
YWRkcmVzcyBlbmNhcHN1bGF0aW9uLiBJdCB3aWxsIGJlIGJldHRlciBpZiBwcm90b2NvbCBnYXZl
IHRoZSByZWNvbW1lbmRlZCBiZWhhdmlvci4gT3RoZXJ3aXNlLCBkaWZmZXJlbnQgcGVvcGxlIHdp
bGwgZ2l2ZSBkaWZmZXJlbnQgc29sdXRpb25zLCB3aGljaCB3aWxsICBjYXVzZSBwcm90b2NvbCBj
b25mb3JtYW5jZSBwcm9ibGVtLg0KDQpUaGUgb3B0aW9ucyB3ZSBjYW4gY2hvb3NlIGFyZToNCg0K
YSkgTkQgZW5hYmxlIHY2IGZpcnN0Og0KDQpJZiB2NiBhZGRyZXNzIHZhbGlkIEFORCBORCBlbmFi
bGU6DQoNCiAgICAgVjYgcGFja2V0DQoNCkVsc2UgaWYgdjQgYWRkcmVzcyB2YWxpZDoNCg0KICAg
ICBWNCBwYWNrZXQNCg0KYikgdjQgZmlyc3QNCg0KSWYgdjQgYWRkcmVzcyB2YWxpZDoNCg0KICAg
ICBWNCBwYWNrZXQNCg0KRWxzZSBpZiB2NiBhZGRyZXNzIHZhbGlkKEFORCBORCBlbmFibGUpOg0K
DQogICAgIFY2IHBhY2tldA0KDQpjKSBjb2V4aXN0ZW5jZSBvZiB2NHY2DQoNCklmIHY0IGFkZHJl
c3MgdmFsaWQ6DQoNCiAgICAgVjQgcGFja2V0DQoNCklmIHY2IGFkZHJlc3MgdmFsaWQoQU5EIE5E
IGVuYWJsZSk6DQoNCiAgICAgVjYgcGFja2V0DQoNCkNvbmZ1c2VkIG9uIGJvdGggdGhlIHNlbmRp
bmcgYW5kIHJlY2VpdmluZyBzaWRlcy4NCg0KYykgd2lsbCBmdXJ0aGVyIGhhdmUgYSBHVyBzZWxl
Y3Rpb24gcHJvYmxlbSwgcHJlZmVycmluZyB0byBjaG9vc2UgdGhlIG5leHRob3Agb2YgdGhlIHNh
bWUgYWRkcmVzcyBmYW1pbHkgd2l0aCB0aGUgcHJlZml4LCBvciB2NCBmaXJzdC4NCg0KSSdkIGxp
a2UgdGhlIHByb3RvY29sIHJlY29tbWVuZHMgYSBkZWZhdWx0IGJlaGF2aW9yIGFuZCBtYXkgcHJv
dmlkZXMgYSBjb250cm9sIG1ldGhvZCBpbiB5YW5nLg0KDQpUaGFua3MhDQoNCkJlbmNob25nDQoN
Cg0K1K3KvNPKvP4NCreivP7Iy6O6QW50b25pUHJ6eWdpZW5kYSA8cHJ6QGp1bmlwZXIubmV0Pg0K
ytW8/sjLo7rQ7LG+s+cxMDA2NTA1MzsNCrOty83Iy6O6SmVmZnJleSAoWmhhb2h1aSkgWmhhbmcg
PHp6aGFuZ0BqdW5pcGVyLm5ldD471cXV9zAwMDA3OTQwO3JpZnRAaWV0Zi5vcmcgIDxyaWZ0QGll
dGYub3JnPjsNCsjVIMbaIKO6MjAxOcTqMDfUwjEwyNUgMjM6MTINCtb3IMziIKO6UmU6IFJlOltS
aWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQNCkhleSBCZW5jaG9uZywgdGhh
dCdzIGFuIG92ZXItaW50ZXJwcmV0YXRpb24sIHRoZSBzcGVjIGlzIGxvb3NlciB0aGFuIHRoYXQg
YnV0IGFzIGZhciBJIHNhdyBzdWZmaWNpZW50LiBTZWN0aW9uIDUuMi4yLg0KDQphKSBTcGVjaWZp
Y2F0aW9uIGRvZXMgbm90IHByb2hpYml0IFJJRlQgZnJvbSB1c2luZyBfYW55XyB2YWxpZCBJUHY2
IGFkZHJlc3Mgb24gdGhlIGludGVyZmFjZSB0byBzZW5kIElQdjYgTElFcy4gVGhlIHJlY2VpdmVy
IGlzIHN1cHBvc2VkIHRvIHBpY2sgdXAgdGhhdCBzb3VyY2UgYWRkcmVzcyBhbmQgdXNlIGl0IGFz
IGRlc3RpbmF0aW9uIHdoZW4gc2VuZGluZyBMSUVzIG92ZXIgdjYgYW5kL29yIFRJRXMgd2l0aCB0
aGUgcmVjZXZpbmcgaW50ZXJmYWNlICAgYXMgZ2F0ZXdheS4gU3BlY2lmaWNhdGlvbiBkb2VzIE5P
VCBzcGVsbCBvdXQgd2hhdCBoYXBwZW5zIGUuZy4gb24gbWlzbWF0Y2hlZCBJUCBzdWJuZXRzIG9u
IGJvdGggc2lkZXMgYW5kIHNvIG9uLCBzaXR1YXRpb24gaGVyZSBpcyBzaW1pbGFyIHRvIElTSVMg
YW5kIGRpZmZlcmVudCBzY2VuYXJpb3Mgc3VjaCBhcyB1bm51bWJlcmVkIGxpbmtzIGFuZCBzbyBv
bg0KYikgSWYgeW91IHdhbnQgdGhlICJsYXppZXN0IiBwb3NzaWJsZSBpbXBsZW1lbnRhdGlvbiB0
aGVuIGluIGZhY3QgeWVzLCB5b3UgY2FuIGZhbGwgYmFjayBvbg0KDQoiDQoNCiAgIEFsbCBSSUZU
IHJvdXRlcnMgTVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQgSVB2
NiAgICBmb3J3YXJkaW5nLiAgQSB0aHJlZSB3YXkgYWRqYWNlbmN5IG92ZXIgSVB2NiBhZGRyZXNz
ZXMgaW1wbGllcyAgICBzdXBwb3J0IGZvciBJUHY0IGZvcndhcmRpbmcuDQoNCiINCg0Kd2hpY2gg
bWFrZXMgdjRvdjYgZm9yd2FyZGluZyBpbmhlcmVudCBwYXJ0IG9mIFJJRlQuIFRoYXQgYXNzdW1l
cyBob3dldmVyIHRoYXQgcmVjZWl2aW5nIG5laWdoYm9yIGRvZXMgc3VwcG9ydCBWNiAod2hpY2gg
dGhlIHNwZWMgZG9lcyBOT1QgbWFuZGF0ZSkgYW5kIG5vdGhpbmcgd2lsbCBoYXBwZW4gaWYgaXQg
ZG9lc24ndC4gVGhlcmVmb3JlIGFsbCBSSUZUIGltcGxlbWVudGF0aW9uIEkgc2F3IHNvIGZhciBz
ZW5kIGJvdGggdjQgYW5kIHY2IHdoaWNoICAgYWxsb3dzIHRoZSBuZWlnaGJvciB0byBvbmx5IHJl
Y2VpdmUgdjQgYW5kIGZvcndhcmQgdXNpbmcgdjQgZ2F0ZXdheXMgaWYgaXQgZG9lc24ndCBzdXBw
b3J0IFY2LiBJbiBjYXNlIGJvdGggdjQgYW5kIHY2IEFGcyBhcmUgZXN0YWJsaXNoZWQsIGl0IGlz
IHVwIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiB3aGljaC9ob3cgaXQgcmVzb2x2ZXMgdGhlIGdhdGV3
YXlzIGFuZCB0aGVyZSBhcmUgbWFueSBpbnRlcmVzdGluZyBhZHZhbmNlZCBpc3N1ZXMgc3VjaCAg
IGFzIG1peHR1cmUgb2Ygc3BpbmVzIHdpdGggdjQgYW5kIHY2IG5leHRob3BzIGFuZCBob3cgdG8g
Zm9ybSBFQ01QIGFtb25nc3QgdGhlbSB0aGF0IHRoZSBzcGVjIGRvZXMgb2J2aW91c2x5IG5vdCBh
ZGRyZXNzIHNpbmNlIGl0J3MgYWxsIHZlcnkgaW1wbGVtZW50YXRpb24gYW5kIHNpbGljb24gc3Bl
Y2lmaWMuDQoNCi0tLSB0b255DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KRnJv
bTogeHUuYmVuY2hvbmdAenRlLmNvbS5jbiA8eHUuYmVuY2hvbmdAenRlLmNvbS5jbj4NClNlbnQ6
IFdlZG5lc2RheSwgSnVseSAxMCwgMjAxOSAxOjU2IEFNDQpUbzogQW50b25pIFByenlnaWVuZGEN
CkNjOiBKZWZmcmV5IChaaGFvaHVpKSBaaGFuZzsgRVhULXpoYW5nLnpoZW5nQHp0ZS5jb20uY247
IHJpZnRAaWV0Zi5vcmcNClN1YmplY3Q6IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0
aW5nIGluIHJpZnQNCg0KDQpUb255LCB0aGFuayB5b3UgZm9yIHlvdXIgcmVwbHkNCg0KQ2FuIGl0
IGJlIHVuZGVyc3Rvb2QgdGhhdCBhZnRlciB0aGUgTkQgaXMgZW5hYmxlZCwgdGhlIHY2IGFkZHJl
c3MgbmVlZHMgdG8gYmUgdXNlZCB0byBidWlsZCBuZWlnaGJvcj8gSW4gdGhpcyBjYXNlLCB0aGUg
cmlmdCBwYWNrZXQgb2YgdGhlIHY0IGhlYWRlciBpcyBub3QgYWxsb3dlZCB0byBiZSBzZW50IGFu
ZCByZWNlaXZlZCwgYW5kIGJvdGggdjQgYW5kIHY2IHJvdXRlcyBoYXZlIGEgdjYgR1cuDQoNCg0K
DQrUrcq808q8/g0Kt6K8/sjLo7pBbnRvbmlQcnp5Z2llbmRhIDxwcnpAanVuaXBlci5uZXQ+DQrK
1bz+yMujutDssb6z5zEwMDY1MDUzO0plZmZyZXkgKFpoYW9odWkpWmhhbmcgPHp6aGFuZ0BqdW5p
cGVyLm5ldD471cXV9zAwMDA3OTQwO3JpZnRAaWV0Zi5vcmcgICA8cmlmdEBpZXRmLm9yZz47DQrI
1SDG2iCjujIwMTnE6jA31MIxMMjVIDAwOjA5DQrW9yDM4iCjulJlOiBbUmlmdF0gSXB2NCBhbmQg
aXB2NiBjb29wZXJhdGluZyBpbiByaWZ0DQpIZXkgQmVuY2hvbmcsIGNjOidpbmcgbGlzdCwgZ29v
ZCBxdWVzdGlvbnMgb2J2aW91c2x5IHRoYXQgcG9wIG91dCBvbiBpbXBsZW1lbnRhdGlvbg0KDQoN
CiAgMS4gIHNlbmRpbmcgTElFIG9ubHkgd2l0aCB2NCB3aWxsIG5vdCBnaXZlIHlvdSBhIHY2IGFk
ZHJlc3MgdG8gc2VuZCB0byAoc2luY2UgdGhlIExJRSBzb3VyY2UgYWRkcmVzcyBnaXZlcyB0aGUg
Z2F0ZXdheSBmb3IgdGhlIEFGLCB0aGF0J3Mgd2h5IHdlIHNlbmQgTElFIHBlciBBRikgc28geW91
IHdvbid0IGhhdmUgYSB2NiBHVyBhZGRyZXNzIHRvIHNlbmQgVElFcyB0byA7LSkNCg0KICAyLiAg
eWVzLCBldmVyeSBpbnRlcmZhY2UgaXMgaW5kZXBlbmRlbnQuIE9ic2VydmUgdGhhdCB2NiBzdXBw
b3J0IGltcGxpZXMgdjQgYXMgdGhlIHNwZWMgc2F5cyAoc2luY2UgeW91IGNhbiBGVyB2NCB3aXRo
b3V0IGEgdjQgR1cgaWYgeW91IGhhdmUgYSB2NiBnYXRld2F5KS4gSG93ZXZlciwgaWYgb25lIHNp
ZGUgc2VuZHMgdjYgb25seSBhbmQgdGhlIG90aGVyIHNpZGUgb25seSB2NCB0aGV5J2xsIG5ldmVy
IGdvIDMtd2F5IHNpbmNlIHRoZXkgd29uJ3QgICAgYmUgYWJsZSB0byByZWNlaXZlLiBXZSBqdXN0
IGFkZGVkIGEgc2VudGVuY2UgdG8gdGhlIHNwZWMgc2F5aW5nIHRoYXQgaWYgeW91IGRvbid0IHNl
bmQgYW4gQUYgTElFIHlvdSBNVVNUIE5PVCByZWNlaXZlIHRoZSBzYW1lIEFGIExJRSBzaW5jZSB3
ZSBmb3VuZCB0aGF0IGxvb3NlIGVuZCBpbiBCcnVubydzIGltcGxlbWVudGF0aW9uIHdoZW4gdGVz
dGluZyBzZWN1cml0eSBlbnZlbG9wZXMuICBJdCB3aWxsIGJlIGluIC0wNw0KDQoNCjx0PkFsbCBS
SUZUIHJvdXRlcnMgTVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQg
SVB2Ng0KICAgIGZvcndhcmRpbmcuIEEgdGhyZWUgd2F5IGFkamFjZW5jeSBvdmVyIElQdjYgYWRk
cmVzc2VzIGltcGxpZXMgc3VwcG9ydA0KICAgIGZvciBJUHY0IGZvcndhcmRpbmcuIEEgbm9kZSB0
aGF0IGRvZXMgbm90IHByb2Nlc3MgcmVjZWl2ZWQgSVB2NiBMSUVzDQogICAgTVVTVCBOT1Qgb3Jp
Z2luYXRlIElQdjYgTElFcy4NCiAgICA8L3Q+DQoNCg0KICAxLiAgSVB2Ni9JUHY0IHByZWZpeCBj
YW4gYmUgbWl4ZWQgaW4gUHJlZml4IFRJRXMuIFByZWZpeCBUSUVzIGRvIE5PVCBjYXJlIHdoaWNo
IGludGVyZmFjZS9BRiB0aGV5IGFyZSBzZW50IG92ZXIuDQoNCiAgMi4gIGhvdyB5b3UgYnVpbGQg
Zm9yd2FyZGluZyB0YWJsZSBhbmQgd2hpY2ggZ2F0ZXdheXMgeW91IHVzZSBpcyBpbXBsZW1lbmF0
aW9uIGRlcGVuZGVudCBidXQgeWVzLCB5b3UgZ290IHRoZSBmbGF2b3IuIHRob3VnaCB5b3VyIGFz
c3VtcHRpb24gb2YgIklwdjYgZGVzdGluYXRpb24gd2l0aCBpcHY0IG5leHRob3AiIGlzIG9wdGlt
aXN0aWMuIGV2ZXJ5IHNpbGljb24gZG9lcyB2NCBzbyB2NiBjYW4gaW1wbHkgdjQsIGltcGx5aW5n
IHY0IGZ3ZCdpbmcgICAgYWxsb3dzIHY2IGZvcndhcmRpbmcgZmFpbHMgb24gZ29vZCBhbW91bnQg
b2Ygc2lsaWNvbi4gQnV0IGFnYWluLCB0aG9zZSBhcmUgYWxsIGltcGxlbWVudGF0aW9uIGtub2Jz
LCBzcGVjIG9ubHkgc2F5cyAidjYgaW1wbGllcyB2NCIgd2hpY2ggbWVhbnMgInlvdSBiZXR0ZXIg
ZndkLiB2NCBvdmVyIHY2IG5leHRob3BzIGlmIHlvdSBzZWUgdjYgTElFcyBvbmx5Ig0KDQpPYnNl
cnZlIHRoYXQgbm9kZSBUSUVzIGFyZSBfbm90XyBjYXJyeWluZyB0aGUgc3VwcG9ydGVkIEFGcyBv
biBlYWNoIGludGVyZmFjZSBzaW5jZSBJIHRoaW5rIGl0IHdvdWxkIGxlYWQgdG8gdW5kZXNpcmFi
bGUgYXR0ZW1wdHMgdG8gZGVwbG95IChzb21lIGxpbmtzIGNhbiBkbyB2NikgdG9wb2xvZ2llcyB3
aGljaCBkZWZlYXQgdGhlIHB1cnBvc2Ugb2YgWlRQL3NpbXBsaWNpdHkgb2YgUklGVC4gdjYgaW1w
bGllcyB2NCwgaWYgc29tZW9uZSAgICB3YW50cyB0byBmd2QnIHY2IG92ZXIgYSBmYWJyaWMgd2hl
cmUgY2VydGFpbiBsaW5rcyBhcmUgdjQgY29tcHV0YXRpb25zIGdldCByZWFsbHkgd2VpcmQgYW5k
IG9wZXJhdGlvbmFsbHkgc3VjaCBhIHRoaW5nIGlzIHByb2JhYmx5IGEgbmlnaHRtYXJlIGFueXdh
eS4gQW5kIGdldHRpbmcgdjYgd29ya2luZyBpcyB0cml2aWFsLCBqdXN0IGZsaXAgb24gTkQgYW5k
IHlvdSdyZSBpbiBidXNpbmVzcyAoYXQgbGVhc3QgY29udHJvbCBwbGFuZSB3aXNlICA7LSkNCg0K
VGhlIHNwZWMgaXMgbm9pdCBnaXZpbmcgaW1wbGVtZW50YXRpb24gYWR2aWNlLCBpdCBqdXN0IHNw
ZWNpZmllcyBiZWhhdmlvci4gSW4gY2FzZSBvZiBkb3VidCBsb29rcyBAIEJydW5vJztzIG9wZW4g
c291cmNlLiBCcnVubyBpbXBsZW1lbnRlZCB0aGUgd2hvbGUgTElFIHdpdGhvdXQgZXZlciB0YWxr
aW5nIHRvIG1lIGFuZCBpdCBpbnRlcm9wJ2VkIGRheSBvbmUgd2l0aG91dCBwcm9ibGVtcy4NCg0K
V2hlbiB5b3UncmUgcmVhZHkgd2l0aCB5b3VyIGltcGxlbWVudGF0aW9uIHRvIGludGVyb3AsIEJy
dW5vJ3MgY29kZSBoYXMgbmljZSBmcmFtZXdvcmsgeW91IGNhbiBwbHVnIGluIGFnYWluc3Qgb3Bl
biBzb3VyY2UgJiBKdW5pcGVyIGltcGxlbWVudGF0aW9uIGVhc2lseQ0KDQotLS0gdG9ueQ0KX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IHh1LmJlbmNob25nQHp0ZS5jb20u
Y24gPHh1LmJlbmNob25nQHp0ZS5jb20uY24+DQpTZW50OiBUdWVzZGF5LCBKdWx5IDksIDIwMTkg
NTowOCBBTQ0KVG86IEFudG9uaSBQcnp5Z2llbmRhOyBKZWZmcmV5IChaaGFvaHVpKSBaaGFuZzsg
RVhULXpoYW5nLnpoZW5nQHp0ZS5jb20uY24NClN1YmplY3Q6IFtSaWZ0XSBJcHY0IGFuZCBpcHY2
IGNvb3BlcmF0aW5nIGluIHJpZnQNCg0KSGkNCg0KSSBoYXZlIHNvbWUgcXVlc3Rpb25zIGFib3V0
IGlwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdC4NCg0KSXAgaGVhZCBvZiB0aGUgcmlm
dCBwYWNrZXQgY2FuIGJlIFY0IG9yIFY2LCBhbmQgdGhlIHByZWZpeCBpbiBUSUUgYWxzbyBzdXBv
cnQgVjQgb3IgdjYuDQoNCkNhbiBpdCBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uczoN
Cg0KDQoxoaJBIHJpZnQgaW50ZXJmYWNlIHdoaWNoIHNlbmQgTElFIHdpdGggaXB2NCBoZWFkIHJl
Y2VpdmluZyBMSUUgd2l0aCBJUHY2IGhlYWQ7DQoNCkEgcmlmdCBpbnRlcmZhY2Ugd2hpY2ggc2Vu
ZCBMSUUgd2l0aCBpcHY2IGhlYWQgcmVjZWl2aW5nIExJRSB3aXRoIElQdjQgaGVhZDsNCg0KQ2Fu
IHRoZXkgYnVpbGQgMy1XYXkgbmVpZ2hib3I/DQoNCg0KMqGiU29tZSBpbnRlcmZhY2VzIGluIGEg
cmlmdCBpbnN0YW5jZSBzZW5kIGlwdjQgaGVhZCBwYWNrZXRzo6wgYW5kIG90aGVycyBpbiB0aGUg
c2FtZSBpbnN0YW5jZSBzZW5kIGlwdjYgaGVhZCBwYWNrZXRzo7sNCg0KDQozoaJJcHY0IGhlYWQg
VElFIHBhY2tldCBmaWxsIGlwdjYgcHJlZml4o7sNCg0KICAgSXB2NiBoZWFkIFRJRSBwYWNrZXQg
ZmlsbCBpcHY0IHByZWZpeKO7KFJJRlQtMDYgNS4yLjI6IEFsbCBSSUZUIHJvdXRlcnMgTVVTVCBz
dXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQgSVB2Ng0KDQogICBmb3J3YXJk
aW5nLiAgQSB0aHJlZSB3YXkgYWRqYWNlbmN5IG92ZXIgSVB2NiBhZGRyZXNzZXMgaW1wbGllcw0K
DQogICBzdXBwb3J0IGZvciBJUHY0IGZvcndhcmRpbmcuKQ0KDQoNCjShokluIHJpYiB0YWJsZSBv
ZiB0aGUgcmlmdDoNCg0KICAgSXB2NCBkZXN0aW5hdGlvbiB3aXRoIGlwdjYgbmV4dGhvcDsNCg0K
ICAgSXB2NiBkZXN0aW5hdGlvbiB3aXRoIGlwdjQgbmV4dGhvcDsNCg0KICAgSXB2NCBkZXN0aW5h
dGlvbiB3aXRoIGJvdGggaXB2NCBuZXh0aG9wIGFuZCBpcHY2IG5leHRob3A7DQoNCiAgIElwdjYg
ZGVzdGluYXRpb24gd2l0aCBib3RoIGlwdjQgbmV4dGhvcCBhbmQgaXB2NiBuZXh0aG9wOw0KDQoN
Cg0KNaGiVGhlIGlwIGhlYWQgdHlwZSh2NCBvciB2NikgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gcmlm
dCBpbnRlcmZhY2Ugb3IgaW5zdGFuY2UuDQoNCg0KSXQgd2lsbCBiZSBiZXR0ZXIgaWYgdGhlcmUg
YXJlIGNsZWFyIGluc3RydWN0aW9ucyBpbiByaWZ0IHByb3RvY29sLg0KDQoNClRoYW5rc6OhDQoN
CkJlbmNob25nDQoNCg0KDQoNCg0KDQoNCg==

--_000_MWHPR05MB32799A20D113C1B541A46ABEACF30MWHPR05MB3279namp_
Content-Type: text/html; charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dgb2312">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Benchong, as to your last intersting question: <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
&quot;
<p style=3D"font-size:14px; font-family:Arial; margin-top:0; margin-bottom:=
0">Is it possible to generate a valid v6 rib table as long as v4 address of=
 the inteface is valid? Can it support ipv4 and ipv6 double stack?</p>
&quot;</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
answer is &quot;yes, but practically if your interface can fwd' IPv6 frames=
 it also runs ND so you will have a v6 link local which seems much more nat=
ural as next-hop rather than maltreat v4 addresses to build v6 next-hops fr=
om ;-) Unless you have some funky silicon
 limitations where such a thing is a good thing ;-) <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
So, you see why the spec is written to the point it's written and silent on=
 specification how to precisely build next-hops/gateways. It can be impleme=
nted in couple different ways which are very close to implementation techni=
ques/HW used so trying to nail that
 in protocol spec would be over-specification which is almost as bad as und=
er-specification ...
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
--- tony <br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> xu.benchong@zte.com.c=
n &lt;xu.benchong@zte.com.cn&gt;<br>
<b>Sent:</b> Thursday, July 11, 2019 2:33 AM<br>
<b>To:</b> brunorijsman@gmail.com<br>
<b>Cc:</b> Antoni Przygienda<br>
<b>Subject:</b> Fw:Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</font>
<div>&nbsp;</div>
</div>
<div>
<div class=3D"x_zcontentRow">
<p style=3D"font-size:14px; font-family:arial">Hi,&nbsp;<span style=3D"font=
-family:Calibri,Arial,Helvetica,sans-serif; font-size:16px; line-height:22.=
8571434020996px; background-color:rgb(255,255,255)">Bruno</span></p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:s=
ans-serif">I read part of your RIFT code, thank you for your great job!</sp=
an></p>
<p>When sending LIE messages, as long as there is a v4 address, v4 will be =
used first, so we will get v4 next hop.</p>
<p>----------</p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:C=
alibri,Arial,Helvetica,sans-serif; font-size:16px; line-height:22.857143402=
0996px; background-color:rgb(255,255,255)"></span></p>
<p>&nbsp; &nbsp; def action_start_flooding(self):</p>
<p><span class=3D"x_Apple-tab-span" style=3D"white-space:pre"></span>=A1=AD=
=A1=AD</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp;# For sending flooding packets, use whatever =
IPv4 or IPv6 address we see first for the</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; # neighbor, preferring the IPv4 address if w=
e know both.</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; if self.neighbor.ipv4_address is not None:</=
p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.rx_info(&quot;Start IPv4 =
flooding: send to address %s port %d&quot;,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp;self.neighbor.ipv4_address, tx_flood_port)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self._flood_tx_ipv4_socket =3D=
 self.create_socket_ipv4_tx_ucast(</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remote_address=
=3Dself.neighbor.ipv4_address,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; port=3Dtx_flood_=
port)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; else:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; assert self.neighbor.ipv6_addr=
ess is not None</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scoped_ipv6_address =3D self.n=
eighbor.ipv6_address</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if &quot;%&quot; not in self.n=
eighbor.ipv6_address:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scoped_ipv6_addr=
ess &#43;=3D &quot;%&quot; &#43; self.physical_interface_name</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.rx_info(&quot;Start IPv6 =
flooding: send to address %s port %d&quot;,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp;scoped_ipv6_address, tx_flood_port)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self._flood_tx_ipv6_socket =3D=
 self.create_socket_ipv6_tx_ucast(</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remote_address=
=3Dscoped_ipv6_address,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; port=3Dtx_flood_=
port)</p>
<p style=3D"font-size:14px; font-family:arial">SPF calculation will calcula=
te the nexthop of v4 and v6 at the same time.<span style=3D"font-family:Cal=
ibri,Arial,Helvetica,sans-serif; font-size:16px; line-height:22.85714340209=
96px; background-color:rgb(255,255,255)"><br>
</span></p>
<p style=3D"font-size:14px; font-family:arial">-----------------</p>
<p>&nbsp; &nbsp; def set_spf_predecessor(self, destination, nbr_tie_element=
, predecessor_system_id,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp; spf_direction):</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; destination.add_predecessor(predecessor_syst=
em_id)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; if (nbr_tie_element is not None) and (predec=
essor_system_id =3D=3D self.system_id):</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for link_id_pair in nbr_tie_el=
ement.link_ids:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nhop =3D self.in=
terface_id_to_ipv4_next_hop(link_id_pair.local_id)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if nhop:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; de=
stination.add_ipv4_next_hop(nhop)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nhop =3D self.in=
terface_id_to_ipv6_next_hop(link_id_pair.local_id)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if nhop:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; de=
stination.add_ipv6_next_hop(nhop)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; else:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dest_table =3D self._spf_desti=
nations[spf_direction]</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; destination.inherit_next_hops(=
dest_table[predecessor_system_id])</p>
<p style=3D"font-size:14px; font-family:arial">The RIB table only selects t=
he same AF nexthop</p>
<p style=3D"font-size:14px; font-family:arial">--------------</p>
<p>&nbsp; &nbsp; def spf_install_routes_in_rib(self, spf_direction):</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; =A1=AD=A1=AD</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prefix =3D dest_=
key</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if prefix.ipv4pr=
efix is not None:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ne=
xt_hops =3D dest.ipv4_next_hops</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro=
ute_table =3D self._ipv4_rib</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; as=
sert prefix.ipv6prefix is not None</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ne=
xt_hops =3D dest.ipv6_next_hops</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro=
ute_table =3D self._ipv6_rib</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if next_hops:</p=
>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rt=
e =3D route.Route(prefix, owner, next_hops)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro=
ute_table.put_route(rte)</p>
<p style=3D"font-size:14px; font-family:arial">Is it possible to generate a=
 valid v6 rib table as long as v4 address of the inteface is valid? Can it =
support ipv4 and ipv6 double stack?</p>
<p style=3D"font-size:14px; font-family:arial">Thanks!<br>
</p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:a=
rial; line-height:21px">Benchong</span></p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:a=
rial; line-height:21px"><br>
</span></p>
<div>
<div class=3D"x_zhistoryRow" style=3D"display:block">
<div class=3D"x_zhistoryDes" style=3D"width:100%; height:28px; line-height:=
28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_zwriteHistoryContainer">
<div class=3D"x_control-group x_zhistoryPanel">
<div class=3D"x_zhistoryHeader" style=3D"padding:8px; background-color:#F5F=
6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span></div>
<div><strong>=B3=AD=CB=CD=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e" style=3D"display:inline">Jeffrey (Zhaohui) Zhang &lt;zzhang@juniper.net&=
gt;;</span><span class=3D"x_zreadUserName" style=3D"display:inline">=D5=C5=
=D5=F700007940;</span><span class=3D"x_zreadUserName" style=3D"display:inli=
ne">rift@ietf.org
 &lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C211=C8=D5 11:52</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_zreadTitle"><str=
ong>Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Benchong, what you seem to talk about is originating packets and it's the s=
ource that decides whether it sends v4 or v6 and the IP fabric with RIFT ju=
st forwards the packet, it cannot change in the middle the IP address famil=
y in which the packet is carried
 &nbsp;obviously so there is no decision to be made which IP AF is used, on=
ly which GW needs to be installed on the route nexthop. But yes, an impleme=
ntaton can choose to forward v4 packets using the MAC address of a v6 gatew=
ay, a highly desirable behavior since
 &nbsp;with that, the fabric can be completely global address free without =
any config (just ND) and do v4 fine.&nbsp;
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
yes, an implementation may choose to prefer v4 GW for v4 packets and v6 GW =
for v6 packets but normally it's the same MAC unless the deployment is very=
 strange @ which point knobs to control that may be necessary, something wh=
ich is implementation specific.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
So RIFT just floods the TIEs on any AF with prefixes of all AFs, the comput=
ation computes the route with directly attached next-hop which has to resol=
ve to MAC in any AF really and then packet can be forwarded ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
implement it and play with it, we have @ least 2 implementations already th=
at work fine doing that ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Yes, the closest analogy is v4 in BGP with v6 nexthops if you really want t=
o think that way but RIFT is much simpler since the nhop is always directly=
 connected and we don't talk about anything like v4ov6 or v6ov4 tunneling a=
nd so on ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
makes sense? <br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
--- tony <br>
</div>
<br>
<div><br>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-size:11pt; font=
-family:Calibri,sans-serif; color:#000000"><strong>From:</strong> xu.bencho=
ng@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Wednesday, July 10, 2019 8:39 PM<br>
<strong>To:</strong> Antoni Przygienda<br>
<strong>Cc:</strong> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; r=
ift@ietf.org<br>
<strong>Subject:</strong> Re:[Rift] Ipv4 and ipv6 cooperating in rift</span=
> &nbsp;</div>
<div>
<div class=3D"x_x_zcontentRow">
<p style=3D"font-size:14px; font-family:arial">Hi tony</p>
<p style=3D"font-size:14px; font-family:arial">Thanks for your explanation,=
 and I have already understood your opinion on v4v6 forwarding.</p>
<p>The difference between RIFT and other routing protocols is the consisten=
cy of packets AF and routes AF. Isis is in L2 encapsulation that solves dif=
ferent address families through multiple topologies. Ospf and rip are stric=
tly distinguished in v4v6. Rift
 &nbsp;is actually closer to BGP.</p>
<p>When the interface has both v4 and v6 addresses (or ND enabled), the pro=
tocol uses v4 or v6 or v4v6 address encapsulation. It will be better if pro=
tocol gave the recommended behavior. Otherwise, different people will give =
different solutions, which will
 &nbsp;cause protocol conformance problem.&nbsp;</p>
<p>The options we can choose are:</p>
<p>a) ND enable v6 first:</p>
<p>If v6 address valid AND ND enable:</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>Else if v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>b) v4 first</p>
<p>If v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>Else if v6 address valid(AND ND enable):</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>c) coexistence of v4v6</p>
<p>If v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>If v6 address valid(AND ND enable):</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>Confused on both the sending and receiving sides.</p>
<p>c) will further have a GW selection problem, preferring to choose the ne=
xthop of the same address family with the prefix, or v4 first.</p>
<p style=3D"font-size:14px; font-family:arial">I'd like the protocol recomm=
ends a default behavior and may provides a control method in yang.</p>
<p style=3D"font-size:14px; font-family:arial">Thanks!</p>
<p style=3D"font-size:14px; font-family:arial">Benchong</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_x_zhistoryRow" style=3D"display:block">
<div class=3D"x_x_zhistoryDes" style=3D"width:100%; height:28px; line-heigh=
t:28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_x_zwriteHistoryContainer">
<div class=3D"x_x_control-group x_x_zhistoryPanel">
<div class=3D"x_x_zhistoryHeader" style=3D"padding:8px; background-color:#F=
5F6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span></div>
<div><strong>=B3=AD=CB=CD=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame" style=3D"display:inline">Jeffrey (Zhaohui) Zhang &lt;zzhang@juniper.ne=
t&gt;;</span><span class=3D"x_x_zreadUserName" style=3D"display:inline">=D5=
=C5=D5=F700007940;</span><span class=3D"x_x_zreadUserName" style=3D"display=
:inline">rift@ietf.org
 &nbsp;&lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C210=C8=D5 23:12</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_x_zreadTitle"><s=
trong>Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, that's an over-interpretation, the spec is looser than that b=
ut as far I saw sufficient. Section 5.2.2.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
a) Specification does not prohibit RIFT from using _any_ valid IPv6 address=
 on the interface to send IPv6 LIEs. The receiver is supposed to pick up th=
at source address and use it as destination when sending LIEs over v6 and/o=
r TIEs with the receving interface
 &nbsp;&nbsp;as gateway. Specification does NOT spell out what happens e.g.=
 on mismatched IP subnets on both sides and so on, situation here is simila=
r to ISIS and different scenarios such as unnumbered links and so on<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
b) If you want the &quot;laziest&quot; possible implementation then in fact=
 yes, you can fall back on
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
&quot;
<pre>   All RIFT routers MUST support IPv4 forwarding and MAY support IPv6 =
   forwarding.  A three way adjacency over IPv6 addresses implies    suppor=
t for IPv4 forwarding.</pre>
&quot;</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
which makes v4ov6 forwarding inherent part of RIFT. That assumes however th=
at receiving neighbor does support V6 (which the spec does NOT mandate) and=
 nothing will happen if it doesn't. Therefore all RIFT implementation I saw=
 so far send both v4 and v6 which
 &nbsp;&nbsp;allows the neighbor to only receive v4 and forward using v4 ga=
teways if it doesn't support V6. In case both v4 and v6 AFs are established=
, it is up to the implementation which/how it resolves the gateways and the=
re are many interesting advanced issues such
 &nbsp;&nbsp;as mixture of spines with v4 and v6 nexthops and how to form E=
CMP amongst them that the spec does obviously not address since it's all ve=
ry implementation and silicon specific.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
--- tony <br>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-family:Calibr=
i,sans-serif; font-size:11pt; color:#000000"><strong>From:</strong> xu.benc=
hong@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Wednesday, July 10, 2019 1:56 AM<br>
<strong>To:</strong> Antoni Przygienda<br>
<strong>Cc:</strong> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; r=
ift@ietf.org<br>
<strong>Subject:</strong> Re:[Rift] Ipv4 and ipv6 cooperating in rift</span=
> &nbsp;</div>
<div>
<div class=3D"x_x_x_zcontentRow">
<p><br>
</p>
<p>Tony, thank you for your reply</p>
<p>Can it be understood that after the ND is enabled, the v6 address needs =
to be used to build neighbor? In this case, the rift packet of the v4 heade=
r is not allowed to be sent and received, and both v4 and v6 routes have a =
v6 GW.</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_x_x_zhistoryRow" style=3D"display:block">
<div class=3D"x_x_x_zhistoryDes" style=3D"width:100%; height:28px; line-hei=
ght:28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_x_x_zwriteHistoryContainer">
<div class=3D"x_x_x_control-group x_x_x_zhistoryPanel">
<div class=3D"x_x_x_zhistoryHeader" style=3D"padding:8px; background-color:=
#F5F6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_x_zreadUse=
rName">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_x_zreadUse=
rName" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span><span cla=
ss=3D"x_x_x_zreadUserName" style=3D"display:inline">Jeffrey (Zhaohui)Zhang =
&lt;zzhang@juniper.net&gt;;</span><span class=3D"x_x_x_zreadUserName" style=
=3D"display:inline">=D5=C5=D5=F700007940;</span><span class=3D"x_x_x_zreadU=
serName" style=3D"display:inline">rift@ietf.org
 &nbsp;&nbsp;&lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C210=C8=D5 00:09</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_x_x_zreadTitle">=
<strong>Re: [Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_x_x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, cc:'ing list, good questions obviously that pop out on implem=
entation &nbsp;
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<ol class=3D"x_x_x_ x_x_ x_list-paddingleft-2">
<li>
<p>sending LIE only with v4 will not give you a v6 address to send to (sinc=
e the LIE source address gives the gateway for the AF, that's why we send L=
IE per AF) so you won't have a v6 GW address to send TIEs to ;-)</p>
</li><li>
<p>yes, every interface is independent. Observe that v6 support implies v4 =
as the spec says (since you can FW v4 without a v4 GW if you have a v6 gate=
way). However, if one side sends v6 only and the other side only v4 they'll=
 never go 3-way since they won't
 &nbsp;&nbsp;&nbsp;be able to receive. We just added a sentence to the spec=
 saying that if you don't send an AF LIE you MUST NOT receive the same AF L=
IE since we found that loose end in Bruno's implementation when testing sec=
urity envelopes.&nbsp; It will be in -07<br>
</p>
</li></ol>
<br>
<div>
<pre style=3D"background-color:#ffffff; color:#000000; font-family:'Menlo';=
 font-size:7.5pt"><span style=3D"background-color:#efefef">&lt;</span><span=
 style=3D"color:#000080; background-color:#efefef; font-weight:bold">t</spa=
n><span style=3D"background-color:#efefef">&gt;</span>All RIFT routers MUST=
 support IPv4 forwarding and MAY support IPv6<br>    forwarding. A three wa=
y adjacency over IPv6 addresses implies support<br>    for IPv4 forwarding.=
 <strong>A node that does not process received IPv6 LIEs<br> &nbsp; &nbsp;M=
UST NOT originate IPv6 LIEs.</strong><br>    <span style=3D"background-colo=
r:#efefef">&lt;/</span><span style=3D"color:#000080; background-color:#efef=
ef; font-weight:bold">t</span><span style=3D"background-color:#efefef">&gt;=
</span></pre>
<br>
</div>
<ol class=3D"x_x_x_ x_x_ x_list-paddingleft-2">
<li>
<p>IPv6/IPv4 prefix can be mixed in Prefix TIEs. Prefix TIEs do NOT care wh=
ich interface/AF they are sent over.
<br>
</p>
</li><li>
<p>how you build forwarding table and which gateways you use is implemenati=
on dependent but yes, you got the flavor. though your assumption of &quot;I=
pv6 destination with ipv4 nexthop&quot; is optimistic. every silicon does v=
4 so v6 can imply v4, implying v4 fwd'ing
 &nbsp;&nbsp;&nbsp;allows v6 forwarding fails on good amount of silicon. Bu=
t again, those are all implementation knobs, spec only says &quot;v6 implie=
s v4&quot; which means &quot;you better fwd. v4 over v6 nexthops if you see=
 v6 LIEs only&quot;<br>
</p>
</li></ol>
<div>Observe that node TIEs are _not_ carrying the supported AFs on each in=
terface since I think it would lead to undesirable attempts to deploy (some=
 links can do v6) topologies which defeat the purpose of ZTP/simplicity of =
RIFT. v6 implies v4, if someone
 &nbsp;&nbsp;&nbsp;wants to fwd' v6 over a fabric where certain links are v=
4 computations get really weird and operationally such a thing is probably =
a nightmare anyway. And getting v6 working is trivial, just flip on ND and =
you're in business (at least control plane wise
 &nbsp;;-)<br>
</div>
<br>
<div>The spec is noit giving implementation advice, it just specifies behav=
ior. In case of doubt looks @ Bruno';s open source. Bruno implemented the w=
hole LIE without ever talking to me and it interop'ed day one without probl=
ems.
<br>
</div>
<br>
<div>When you're ready with your implementation to interop, Bruno's code ha=
s nice framework you can plug in against open source &amp; Juniper implemen=
tation easily
<br>
</div>
<br>
<div>--- tony <br>
</div>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_x_x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-size:11pt; =
font-family:Calibri,sans-serif; color:#000000"><strong>From:</strong> xu.be=
nchong@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Tuesday, July 9, 2019 5:08 AM<br>
<strong>To:</strong> Antoni Przygienda; Jeffrey (Zhaohui) Zhang; EXT-zhang.=
zheng@zte.com.cn<br>
<strong>Subject:</strong> [Rift] Ipv4 and ipv6 cooperating in rift</span> &=
nbsp;</div>
<div>
<div class=3D"x_x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_x_zcontentRow">
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Hi<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
I have some questions about ipv4 and ipv6 cooperating in rift.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Ip head of the rift packet can be V4 or V6, and the prefix in TIE also supo=
rt V4 or v6.&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can it support the following situations:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
1=A1=A2A rift interface which&nbsp;send LIE with ipv4 head receiving LIE wi=
th IPv6 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
A rift interface which&nbsp;send LIE with ipv6 head receiving LIE with IPv4=
 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can they build 3-Way neighbor?</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
2=A1=A2Some interfaces in a rift instance send ipv4 head packets=A3=AC and =
others in the same instance send ipv6 head packets=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
3=A1=A2Ipv4 head TIE packet fill ipv6 prefix=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 head TIE packet fill ipv4 prefix=A3=BB(RIFT-06 5.2.2: All=
 RIFT routers MUST support IPv4 forwarding and MAY support IPv6</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;forwarding. &nbsp;A three way adjacency over IPv6 addresses im=
plies</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;support for IPv4 forwarding.)</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
4=A1=A2In rib table of the rift:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with ipv4 nexthop;&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
5=A1=A2The ip head type(v4 or v6) can be configured in rift interface or in=
stance.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
It will be better if there are clear instructions in rift protocol.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Thanks=A3=A1</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Benchong</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</body>
</html>

--_000_MWHPR05MB32799A20D113C1B541A46ABEACF30MWHPR05MB3279namp_--


From nobody Thu Jul 11 11:42:18 2019
Return-Path: <aretana.ietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 94EA4120228 for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 11:42:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.701
X-Spam-Level: 
X-Spam-Status: No, score=-0.701 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, PDS_NO_HELO_DNS=1.295, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=no 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 9uG1gFFifnh7 for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 11:42:14 -0700 (PDT)
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) (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 8BFE21200D7 for <rift@ietf.org>; Thu, 11 Jul 2019 11:42:13 -0700 (PDT)
Received: by mail-ed1-x536.google.com with SMTP id v15so6798178eds.9 for <rift@ietf.org>; Thu, 11 Jul 2019 11:42:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=QgUsDOqxvstUd9a80rxmxCU7xyjoz9hMH70xDCbwSrs=; b=k12EbDYlvS3vtWjIbazGIY/0tc3EiigSsTsG+mwjgs2iImPtwviqY5Pxn7UwLg1WXz 2kJlPYDgKDJ9EFXtN3EzR826UTyD0XHuPGFs80W7ZEDY8spDymjA1LizWit4cWLzvTDY 0Pgfs30AYD33qE+DRhX7GYfee8w4Zzk+FQXnv9eIDSX2+1wFDYB9phFncbbTSvto0eUI T5mEPbmQeWFQS0+etcDt6mAi2pfee19n0NOGYYUU45K8cBdGddWTqzRzvEriKTVxl+Zc hGkeQ1yV8e4wmzgUG3BAA6LMXqwYqEYJgtR6VXbDFzgt3LCA1Vp6RlI2KKPoahTlqnLM dgHw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=QgUsDOqxvstUd9a80rxmxCU7xyjoz9hMH70xDCbwSrs=; b=cH/55lwxEfZ66fwR6TFHQi+b7W0omn7D1czPfvz5TeBxXMERYjY5rd4cuCcsASek5p 80LDEbVIL8u/vuGHHgd1PyBMbWAE6YjB21nEjOxhZ3u6FNVG6gi6/jAJguTdyzoJnoqr U6+Z3m4xctkUtJ/TXRhSXdv0cYN9zJK7XUQykrMieYiTo95JAwwgLDNW94Riv82tPPap dyXt1MOSvq3rVqbf3bzFsr6FJCWzsCgUblm9o79pU4MiVkBramy4SCRDimqu+TgdbUSf /YY+V5WetPgI4wYroS0ZAD4Rigzn6D6JMVpl/DXQWFRK/uUnh3Tstff0qY9FRVPzMNAK KZPg==
X-Gm-Message-State: APjAAAWYH7Y6hNhgjusI58wvQzeEO8Q8IGQ6jQ+Is+5eOY6yb8Yabhdp FtdSfA0Kocch1pF3fsM0SPLa8IRlsQnH/t5C4sk=
X-Google-Smtp-Source: APXvYqyqMGoa1ghJRu9WH5BYy8Z8CYtv1EDSpdUb3ggzqJcRk0DnVO76H4enf2k+OSzvW+gJ0hvVG9864JHWkpZHrXI=
X-Received: by 2002:a17:906:505:: with SMTP id j5mr4546675eja.261.1562870532174;  Thu, 11 Jul 2019 11:42:12 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Thu, 11 Jul 2019 11:42:11 -0700
From: Alvaro Retana <aretana.ietf@gmail.com>
In-Reply-To: <MWHPR05MB3279BAF107468754E6FD72EBACF30@MWHPR05MB3279.namprd05.prod.outlook.com>
References: <201907101656125835263@zte.com.cn> <MWHPR05MB3279B78E6D9AECB771D2497FACF00@MWHPR05MB3279.namprd05.prod.outlook.com> <CAMMESsyLRtyTaMTFqzuizuNgxfRm6iuFqfun-711ayq5H4Cb8A@mail.gmail.com> <MWHPR05MB3279BAF107468754E6FD72EBACF30@MWHPR05MB3279.namprd05.prod.outlook.com>
MIME-Version: 1.0
Date: Thu, 11 Jul 2019 11:42:11 -0700
Message-ID: <CAMMESszEFviA+yEH27CsiGU3QHpCm95SHz+EPPWYL6v5sJE-wQ@mail.gmail.com>
To: Antoni Przygienda <prz@juniper.net>, "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>
Cc: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>,  "EXT-zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>, "rift@ietf.org" <rift@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000e67884058d6c26c6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/cDBmbtlEfMZ-I9-x84ls8uG22-g>
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 18:42:17 -0000

--000000000000e67884058d6c26c6
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Tony:

Hi!

As I said before, I may be jumping in without proper context=E2=80=A6. I ju=
st want
to make sure that we don=E2=80=99t end up with discussions about the charte=
r or how
much it may or may not reflect reality later in the process.  If a change
needs to be made, better sooner than later=E2=80=A6if no change is needed, =
then
we=E2=80=99re good. :-)

Alvaro.

On July 11, 2019 at 11:49:12 AM, Antoni Przygienda (prz@juniper.net) wrote:

Alvaro, protocol specification requirements and router running the protocol
requirements are AFAIS not the same thing. And the distinction is
meaningful here.

So, the protocol DOES support IPv6 and it DOES suppoort IPv4 so it does
fulfill the charter you refer to perfectly.

not to the requirements _of devices runing RIFT_:  we cannot mandate that
everyone in reality will run IPv6 forwarding on the fabric so the reality
is that every silicon does IPv4 today and some does IPv6. And then IPv4
over IPv6 is reality while IPv6 over IPv4 is not (since IPv6 does ND anyway
so why would you).  So it is very good for v6 here to basically make it an
implicit transport for v4 (by saying running v6 does _automatically_ give
you v4 forwarding) while making sure that v4
being-de-facto-what-e'one-can-do is the lowest common denominator of the
router's running RIFT. RIFT being only usable if a router/switch can do
IPv6 is simply not a practical proposition AFAIS.  We could arguably split
it into a "RIFT router/switch requirements document" but that seems just
paper bloat ...

So I think we are meeting the charter mandating protocol specification
perfectly while @ the same the spec is aligning with reality of v4ov6
forwarding without v4 addresses. We could just as well remove the sentence
and everything would work except we'd end up in lots of
discussions/possibly non-interoperable implementations in regards to v4
forwarding when no v4 addresses are present and people considering things
undeployable until all the silicon in the world does v6 and everyone runs
v6 by default everywhere. Which may happen but not in a foreseable future I
can discern ...

I hope I do make sense ...

--- tony


------------------------------
*From:* Alvaro Retana <aretana.ietf@gmail.com>
*Sent:* Thursday, July 11, 2019 8:15 AM
*To:* Antoni Przygienda; xu.benchong@zte.com.cn
*Cc:* rift@ietf.org; EXT-zhang.zheng@zte.com.cn; Jeffrey (Zhaohui) Zhang
*Subject:* Re: [Rift] Ipv4 and ipv6 cooperating in rift

On July 10, 2019 at 11:05:40 AM, Antoni Przygienda (
prz=3D40juniper.net@dmarc.ietf.org) wrote:

Hi!

I might be jumping in without proper context, but this text caught my
attention...

b) If you want the "laziest" possible implementation then in fact yes, you
can fall back on

"

All RIFT routers MUST support IPv4 forwarding and MAY support IPv6
   forwarding.  A three way adjacency over IPv6 addresses implies
   support for IPv4 forwarding.

"

=E2=80=A6because the WG Charter says that "The protocol must support IPv6 a=
nd
should also support IPv4.=E2=80=9D   So the text above contradicts the Char=
ter.

Alvaro.

--000000000000e67884058d6c26c6
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div style=3D"font-family:Helve=
tica,Arial;font-size:13px">Tony:</div><div style=3D"font-family:Helvetica,A=
rial;font-size:13px"><br></div><div style=3D"font-family:Helvetica,Arial;fo=
nt-size:13px">Hi!</div><div style=3D"font-family:Helvetica,Arial;font-size:=
13px"><br></div><div style=3D"font-family:Helvetica,Arial;font-size:13px">A=
s I said before, I may be jumping in without proper context=E2=80=A6. I jus=
t want to make sure that we don=E2=80=99t end up with discussions about the=
 charter or how much it may or may not reflect reality later in the process=
.=C2=A0 If a change needs to be made, better sooner than later=E2=80=A6if n=
o change is needed, then we=E2=80=99re good. :-)</div><div style=3D"font-fa=
mily:Helvetica,Arial;font-size:13px"><br></div><div style=3D"font-family:He=
lvetica,Arial;font-size:13px">Alvaro.</div> <br><p class=3D"airmail_on">On =
July 11, 2019 at 11:49:12 AM, Antoni Przygienda (<a href=3D"mailto:prz@juni=
per.net">prz@juniper.net</a>) wrote:</p> <blockquote type=3D"cite" class=3D=
"clean_bq"><span><div dir=3D"ltr"><div></div><div>




<title></title>


<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
Alvaro, protocol specification requirements and router running the
protocol requirements are AFAIS not the same thing. And the
distinction is meaningful here.<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
So, the protocol DOES support IPv6 and it DOES suppoort IPv4 so it
does fulfill the charter you refer to perfectly.<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
not to the requirements _of devices runing RIFT_:=C2=A0 we cannot
mandate that everyone in reality will run IPv6 forwarding on the
fabric so the reality is that every silicon does IPv4 today and
some does IPv6. And then IPv4 over IPv6 is reality while IPv6 over
IPv4 is not (since IPv6 does ND anyway so why would you).=C2=A0 So
it is very good for v6 here to basically make it an implicit
transport for v4 (by saying running v6 does _automatically_ give
you v4 forwarding) while making sure that v4
being-de-facto-what-e&#39;one-can-do is the lowest common denominator
of the router&#39;s running RIFT. RIFT being only usable if a
router/switch can do IPv6 is simply not a practical proposition
AFAIS.=C2=A0 We could arguably split it into a &quot;RIFT router/switch
requirements document&quot; but that seems just paper bloat
...<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
So I think we are meeting the charter mandating protocol
specification perfectly while @ the same the spec is aligning with
reality of v4ov6 forwarding without v4 addresses. We could just as
well remove the sentence and everything would work except we&#39;d end
up in lots of discussions/possibly non-interoperable
implementations in regards to v4 forwarding when no v4 addresses
are present and people considering things undeployable until all
the silicon in the world does v6 and everyone runs v6 by default
everywhere. Which may happen but not in a foreseable future I can
discern ...<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
I hope I do make sense ...<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
--- tony<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
<br></div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt=
;color:rgb(0,0,0)">
<br></div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Alvaro Retana
&lt;<a href=3D"mailto:aretana.ietf@gmail.com">aretana.ietf@gmail.com</a>&gt=
;<br>
<b>Sent:</b> Thursday, July 11, 2019 8:15 AM<br>
<b>To:</b> Antoni Przygienda; <a href=3D"mailto:xu.benchong@zte.com.cn">xu.=
benchong@zte.com.cn</a><br>
<b>Cc:</b> <a href=3D"mailto:rift@ietf.org">rift@ietf.org</a>; <a href=3D"m=
ailto:EXT-zhang.zheng@zte.com.cn">EXT-zhang.zheng@zte.com.cn</a>; Jeffrey
(Zhaohui) Zhang<br>
<b>Subject:</b> Re: [Rift] Ipv4 and ipv6 cooperating in rift</font>
<div>=C2=A0</div>
</div>

<div style=3D"word-wrap:break-word">
<div style=3D"margin:0px"><font face=3D"Helvetica">On July 10, 2019 at
11:05:40 AM, Antoni Przygienda (<a href=3D"mailto:prz=3D40juniper.net@dmarc=
.ietf.org">prz=3D40juniper.net@dmarc.ietf.org</a>)
wrote:</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica"><br></font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica">Hi!</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica"><br></font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica">I might be jumping
in without proper context, but this text caught my
attention...</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica"><br></font></div>
<div>
<blockquote type=3D"cite" class=3D"x_clean_bq" style=3D"font-variant-caps:n=
ormal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform=
:none;white-space:normal;word-spacing:0px">
<div>
<div style=3D"color:rgb(0,0,0);font-variant-caps:normal;letter-spacing:norm=
al;text-align:start;text-indent:0px;text-transform:none;white-space:normal;=
word-spacing:0px">
<span><font face=3D"Helvetica">b) If you want the &quot;laziest&quot; possi=
ble
implementation then in fact yes, you can fall back
on<br></font></span></div>
<div style=3D"color:rgb(0,0,0);font-variant-caps:normal;letter-spacing:norm=
al;text-align:start;text-indent:0px;text-transform:none;white-space:normal;=
word-spacing:0px">
<span><font face=3D"Helvetica"><br></font></span></div>
<div style=3D"color:rgb(0,0,0);font-variant-caps:normal;letter-spacing:norm=
al;text-align:start;text-indent:0px;text-transform:none;white-space:normal;=
word-spacing:0px">
<span><font face=3D"Helvetica">&quot;</font></span>
<pre><span><font face=3D"Helvetica">All RIFT routers MUST support IPv4 forw=
arding and MAY support IPv6
   forwarding.  A three way adjacency over IPv6 addresses implies
   support for IPv4 forwarding.</font></span></pre>
<span><font face=3D"Helvetica">&quot;</font></span></div>
</div>
</blockquote>
</div>
<p><font face=3D"Helvetica">=E2=80=A6because the WG Charter says that &quot=
;The
protocol must support IPv6 and should also support IPv4.=E2=80=9D =C2=A0 So
the text above contradicts the Charter.</font></p>
<p><font face=3D"Helvetica">Alvaro.</font></p>
<div class=3D"x_gmail_signature"></div>
</div>


</div></div></span></blockquote> <div class=3D"gmail_signature"></div></bod=
y></html>

--000000000000e67884058d6c26c6--


From nobody Thu Jul 11 11:50:57 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AD36512031B for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 11:50:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 VBoWBr03fMNt for <rift@ietfa.amsl.com>; Thu, 11 Jul 2019 11:50:51 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 A45A4120331 for <rift@ietf.org>; Thu, 11 Jul 2019 11:50:38 -0700 (PDT)
Received: from pps.filterd (m0108161.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6BInYDG020690; Thu, 11 Jul 2019 11:50:35 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=ZILuQWE06f4pccHR/ZK5Ug+tAyDtZ6iSIgabOw/Ny5E=; b=ak8ORuBaM5TvgU6r/j+dQAOtxxRcushebR4rD2zDNnOWJa9kaCI6v+EmuMPD7vh3vYo0 7tv9fM7dGT83DThJHh9SnkaqwKSyZFt1DKHXbZMR1Q1rxgk3cWGEfZLQoW1+i4tNHKnA Gufzl2wJE7TAMPEU12QpItE74pkJypp/p73vy0K8Cf4VS8XwesaONA9S3LL8jAsK4zR2 DwTEEf07wWzyo9dGDR+XMCBrzn/Ftuz8CrCn7BpQFbFWu4vNbqbBRhZrlTKkxR4DI5vd yVVTHoEmQLAdE5fmPJ0SpdvDlqomEOXz8/4YWOrm/nTkXiOyjAhDW+uc9Mo768SUxGjC 7A== 
Received: from nam02-cy1-obe.outbound.protection.outlook.com (mail-cys01nam02lp2050.outbound.protection.outlook.com [104.47.37.50]) by mx0b-00273201.pphosted.com with ESMTP id 2tp7euhsrm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 11 Jul 2019 11:50:34 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eEY+f+2fR0geWBPakozKuHCQK6vgoji5Tv+cDhA9PCnhlmmRI77d+IvHbkwN5HgBN1VNFM/BkqXGsxxRYR9r42sUuuxnKFe9PC9OZue7X+yQ+DUpMFHNiXShtJeD+yJ7OohFHrYHVpfmRMBSMEGQ7v0bG8UALwnns3qUARsr+GAk8mY9MMdFcuJP1I+ee9/S3RFaTN63cOIlmpUqo7atkod5liMVWfNSmViP3rnnngAVJJ63LtIDEJ3U22E6LFJCVBgZPoHht5FtNc9YNOOQ42JBtf+A6xQxjF6sAtcQTVO0dtG5dcr4KB0ffZad3eQaIpnnAhoQZveEE9HzRIkYFw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZILuQWE06f4pccHR/ZK5Ug+tAyDtZ6iSIgabOw/Ny5E=; b=mtCzebg08xo7BXQ+m8nhIUkvw2urtggPMv4JMWpMUSRRM64Mjl9Te/GtwB12Kc3n/s+AtMdq0ZktTnE/G5oSqB0GqkSyRQiFWbCIE3e4YzvuuGKLxHSDSQZWgvYz4Wu5ruRSJ/EJvxD64VoKJt/HHLRmCi49MFRvfQQxWyL07ymFPB/tYLYn0Bp25dWPUD3oiZtvbjPszw4bDg77I9YdH5fI+F8dx1C4NXIWusRCI/sRpXxgwxJu5fUWf61tk1GOT2BPzaCF70rVrU7upnRYLBWPdiiVgWj4bMyrrQNPY/Cz3lBJdmoLbOT7y3Z+hi2tu0e9IJnSz4nkWkpfSnU8xg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB3565.namprd05.prod.outlook.com (10.174.250.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.7; Thu, 11 Jul 2019 18:50:30 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2073.008; Thu, 11 Jul 2019 18:50:30 +0000
From: Antoni Przygienda <prz@juniper.net>
To: Alvaro Retana <aretana.ietf@gmail.com>, "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>
CC: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>, "EXT-zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: [Rift] Ipv4 and ipv6 cooperating in rift
Thread-Index: AQHVN/t2moUIktH57U6a1GLdGPIhbKbFjHe0gAA0RYCAAAGt+g==
Date: Thu, 11 Jul 2019 18:50:29 +0000
Message-ID: <MWHPR05MB32792FB475893C987B3C3395ACF30@MWHPR05MB3279.namprd05.prod.outlook.com>
References: <201907101656125835263@zte.com.cn> <MWHPR05MB3279B78E6D9AECB771D2497FACF00@MWHPR05MB3279.namprd05.prod.outlook.com> <CAMMESsyLRtyTaMTFqzuizuNgxfRm6iuFqfun-711ayq5H4Cb8A@mail.gmail.com> <MWHPR05MB3279BAF107468754E6FD72EBACF30@MWHPR05MB3279.namprd05.prod.outlook.com>, <CAMMESszEFviA+yEH27CsiGU3QHpCm95SHz+EPPWYL6v5sJE-wQ@mail.gmail.com>
In-Reply-To: <CAMMESszEFviA+yEH27CsiGU3QHpCm95SHz+EPPWYL6v5sJE-wQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [108.228.12.76]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 158a19cc-d882-44da-8fab-08d70630a57c
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB3565; 
x-ms-traffictypediagnostic: MWHPR05MB3565:
x-ld-processed: bea78b3c-4cdb-4130-854a-1d193232e5f4,ExtAddr
x-microsoft-antispam-prvs: <MWHPR05MB35658B0B1A76EBA2C230DD5EACF30@MWHPR05MB3565.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0095BCF226
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(346002)(136003)(376002)(39860400002)(366004)(396003)(189003)(199004)(11346002)(86362001)(52536014)(476003)(186003)(71190400001)(2906002)(76116006)(5660300002)(81166006)(33656002)(66066001)(81156014)(74316002)(66574012)(256004)(19627405001)(8676002)(2501003)(64756008)(14454004)(66946007)(66556008)(66476007)(486006)(66446008)(26005)(478600001)(446003)(4326008)(54906003)(236005)(55016002)(6436002)(229853002)(9686003)(105004)(3846002)(54896002)(68736007)(99286004)(71200400001)(7736002)(25786009)(6246003)(6116002)(7696005)(53546011)(6506007)(316002)(53936002)(8936002)(102836004)(110136005)(76176011); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB3565; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: sGcL4f27EfqE03TU4llie2dPi1Zwbo6LLPzB+UqeadRww6FWraWE/WU3COHFaJEwpbC0eJwOzOF28l4chFb/bMx/SI3e4xbPyrCH4eEzM3NvVJW+0dET6ARqjKPWi6ma55e54LcjaxecFM0RvFrhuwG4z2rReL6kQ4vxhLniKUe3JcbvOkNwNkWLVIRBz+i6RTr4GL4y1QGJhZIg1hXBeAicImot8jM+F7gLMzTvB3cBn1zxcf34wjVvzEkb87y5FZ7iLTLM+FCWS4tpl0KiIpku0TaAZbd+eRWD6XxLRLjh3UTVvgx12jON31FUe9Y/IVqg2t71AL3oZUynbnh0YzCbcacYhwf7deZVstJ450wrALnqVNvIXQNcXx5m1ILO8/S3Ln9gFh7Ps6KgN6bu4Wz31/KRwrywxiFdKmNux74=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB32792FB475893C987B3C3395ACF30MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 158a19cc-d882-44da-8fab-08d70630a57c
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jul 2019 18:50:29.9655 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3565
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-11_04:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907110208
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/fRBLmNmNZ524UgWfHTcA5oRxVvQ>
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 18:50:55 -0000

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

Alvaro, understood and I know you're here to guide with a loving but firm h=
and ;-) I tried to elucidate ;-) that AFAIS we follow the charter fine in t=
his case but of course I'm waiting for others to chime in if they see thing=
s differently ...

thanks

--- tony

________________________________
From: Alvaro Retana <aretana.ietf@gmail.com>
Sent: Thursday, July 11, 2019 11:42 AM
To: Antoni Przygienda; xu.benchong@zte.com.cn
Cc: Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; rift@ietf.org
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift

Tony:

Hi!

As I said before, I may be jumping in without proper context=85. I just wan=
t to make sure that we don=92t end up with discussions about the charter or=
 how much it may or may not reflect reality later in the process.  If a cha=
nge needs to be made, better sooner than later=85if no change is needed, th=
en we=92re good. :-)

Alvaro.


On July 11, 2019 at 11:49:12 AM, Antoni Przygienda (prz@juniper.net<mailto:=
prz@juniper.net>) wrote:

Alvaro, protocol specification requirements and router running the protocol=
 requirements are AFAIS not the same thing. And the distinction is meaningf=
ul here.

So, the protocol DOES support IPv6 and it DOES suppoort IPv4 so it does ful=
fill the charter you refer to perfectly.

not to the requirements _of devices runing RIFT_:  we cannot mandate that e=
veryone in reality will run IPv6 forwarding on the fabric so the reality is=
 that every silicon does IPv4 today and some does IPv6. And then IPv4 over =
IPv6 is reality while IPv6 over IPv4 is not (since IPv6 does ND anyway so w=
hy would you).  So it is very good for v6 here to basically make it an impl=
icit transport for v4 (by saying running v6 does _automatically_ give you v=
4 forwarding) while making sure that v4 being-de-facto-what-e'one-can-do is=
 the lowest common denominator of the router's running RIFT. RIFT being onl=
y usable if a router/switch can do IPv6 is simply not a practical propositi=
on AFAIS.  We could arguably split it into a "RIFT router/switch requiremen=
ts document" but that seems just paper bloat ...

So I think we are meeting the charter mandating protocol specification perf=
ectly while @ the same the spec is aligning with reality of v4ov6 forwardin=
g without v4 addresses. We could just as well remove the sentence and every=
thing would work except we'd end up in lots of discussions/possibly non-int=
eroperable implementations in regards to v4 forwarding when no v4 addresses=
 are present and people considering things undeployable until all the silic=
on in the world does v6 and everyone runs v6 by default everywhere. Which m=
ay happen but not in a foreseable future I can discern ...

I hope I do make sense ...

--- tony


________________________________
From: Alvaro Retana <aretana.ietf@gmail.com<mailto:aretana.ietf@gmail.com>>
Sent: Thursday, July 11, 2019 8:15 AM
To: Antoni Przygienda; xu.benchong@zte.com.cn<mailto:xu.benchong@zte.com.cn=
>
Cc: rift@ietf.org<mailto:rift@ietf.org>; EXT-zhang.zheng@zte.com.cn<mailto:=
EXT-zhang.zheng@zte.com.cn>; Jeffrey (Zhaohui) Zhang
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift

On July 10, 2019 at 11:05:40 AM, Antoni Przygienda (prz=3D40juniper.net@dma=
rc.ietf.org<mailto:prz=3D40juniper.net@dmarc.ietf.org>) wrote:

Hi!

I might be jumping in without proper context, but this text caught my atten=
tion...

b) If you want the "laziest" possible implementation then in fact yes, you =
can fall back on

"

All RIFT routers MUST support IPv4 forwarding and MAY support IPv6
   forwarding.  A three way adjacency over IPv6 addresses implies
   support for IPv4 forwarding.

"

=85because the WG Charter says that "The protocol must support IPv6 and sho=
uld also support IPv4.=94   So the text above contradicts the Charter.

Alvaro.

--_000_MWHPR05MB32792FB475893C987B3C3395ACF30MWHPR05MB3279namp_
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">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Alvaro, understood and I know you're here to guide with a loving but firm h=
and ;-) I tried to elucidate ;-) that AFAIS we follow the charter fine in t=
his case but of course I'm waiting for others to chime in if they see thing=
s differently ...
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
thanks <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
--- tony</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Alvaro Retana &lt;are=
tana.ietf@gmail.com&gt;<br>
<b>Sent:</b> Thursday, July 11, 2019 11:42 AM<br>
<b>To:</b> Antoni Przygienda; xu.benchong@zte.com.cn<br>
<b>Cc:</b> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; rift@ietf.o=
rg<br>
<b>Subject:</b> Re: [Rift] Ipv4 and ipv6 cooperating in rift</font>
<div>&nbsp;</div>
</div>
<style>
<!--
body
	{font-family:Helvetica,Arial;
	font-size:13px}
-->
</style>
<div style=3D"word-wrap:break-word">
<div style=3D"font-family:Helvetica,Arial; font-size:13px">Tony:</div>
<div style=3D"font-family:Helvetica,Arial; font-size:13px"><br>
</div>
<div style=3D"font-family:Helvetica,Arial; font-size:13px">Hi!</div>
<div style=3D"font-family:Helvetica,Arial; font-size:13px"><br>
</div>
<div style=3D"font-family:Helvetica,Arial; font-size:13px">As I said before=
, I may be jumping in without proper context=85. I just want to make sure t=
hat we don=92t end up with discussions about the charter or how much it may=
 or may not reflect reality later in the
 process.&nbsp; If a change needs to be made, better sooner than later=85if=
 no change is needed, then we=92re good. :-)</div>
<div style=3D"font-family:Helvetica,Arial; font-size:13px"><br>
</div>
<div style=3D"font-family:Helvetica,Arial; font-size:13px">Alvaro.</div>
<br>
<p class=3D"x_airmail_on">On July 11, 2019 at 11:49:12 AM, Antoni Przygiend=
a (<a href=3D"mailto:prz@juniper.net">prz@juniper.net</a>) wrote:</p>
<blockquote type=3D"cite" class=3D"x_clean_bq"><span>
<div dir=3D"ltr">
<div></div>
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Alvaro, protocol specification requirements and router running the protocol=
 requirements are AFAIS not the same thing. And the distinction is meaningf=
ul here.<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
So, the protocol DOES support IPv6 and it DOES suppoort IPv4 so it does ful=
fill the charter you refer to perfectly.<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
not to the requirements _of devices runing RIFT_:&nbsp; we cannot mandate t=
hat everyone in reality will run IPv6 forwarding on the fabric so the reali=
ty is that every silicon does IPv4 today and some does IPv6. And then IPv4 =
over IPv6 is reality while IPv6 over
 IPv4 is not (since IPv6 does ND anyway so why would you).&nbsp; So it is v=
ery good for v6 here to basically make it an implicit transport for v4 (by =
saying running v6 does _automatically_ give you v4 forwarding) while making=
 sure that v4 being-de-facto-what-e'one-can-do
 is the lowest common denominator of the router's running RIFT. RIFT being =
only usable if a router/switch can do IPv6 is simply not a practical propos=
ition AFAIS.&nbsp; We could arguably split it into a &quot;RIFT router/swit=
ch requirements document&quot; but that seems just
 paper bloat ...<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
So I think we are meeting the charter mandating protocol specification perf=
ectly while @ the same the spec is aligning with reality of v4ov6 forwardin=
g without v4 addresses. We could just as well remove the sentence and every=
thing would work except we'd end
 up in lots of discussions/possibly non-interoperable implementations in re=
gards to v4 forwarding when no v4 addresses are present and people consider=
ing things undeployable until all the silicon in the world does v6 and ever=
yone runs v6 by default everywhere.
 Which may happen but not in a foreseable future I can discern ...<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
I hope I do make sense ...<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
--- tony<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<br>
</div>
<div id=3D"x_appendonsend"></div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" =
color=3D"#000000" style=3D"font-size:11pt"><b>From:</b> Alvaro Retana &lt;<=
a href=3D"mailto:aretana.ietf@gmail.com">aretana.ietf@gmail.com</a>&gt;<br>
<b>Sent:</b> Thursday, July 11, 2019 8:15 AM<br>
<b>To:</b> Antoni Przygienda; <a href=3D"mailto:xu.benchong@zte.com.cn">xu.=
benchong@zte.com.cn</a><br>
<b>Cc:</b> <a href=3D"mailto:rift@ietf.org">rift@ietf.org</a>; <a href=3D"m=
ailto:EXT-zhang.zheng@zte.com.cn">
EXT-zhang.zheng@zte.com.cn</a>; Jeffrey (Zhaohui) Zhang<br>
<b>Subject:</b> Re: [Rift] Ipv4 and ipv6 cooperating in rift</font>
<div>&nbsp;</div>
</div>
<div style=3D"word-wrap:break-word">
<div style=3D"margin:0px"><font face=3D"Helvetica">On July 10, 2019 at 11:0=
5:40 AM, Antoni Przygienda (<a href=3D"mailto:prz=3D40juniper.net@dmarc.iet=
f.org">prz=3D40juniper.net@dmarc.ietf.org</a>) wrote:</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica"><br>
</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica">Hi!</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica"><br>
</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica">I might be jumping in wi=
thout proper context, but this text caught my attention...</font></div>
<div style=3D"margin:0px"><font face=3D"Helvetica"><br>
</font></div>
<div>
<blockquote type=3D"cite" class=3D"x_x_clean_bq" style=3D"font-variant-caps=
:normal; letter-spacing:normal; text-align:start; text-indent:0px; text-tra=
nsform:none; white-space:normal; word-spacing:0px">
<div>
<div style=3D"color:rgb(0,0,0); font-variant-caps:normal; letter-spacing:no=
rmal; text-align:start; text-indent:0px; text-transform:none; white-space:n=
ormal; word-spacing:0px">
<span><font face=3D"Helvetica">b) If you want the &quot;laziest&quot; possi=
ble implementation then in fact yes, you can fall back on<br>
</font></span></div>
<div style=3D"color:rgb(0,0,0); font-variant-caps:normal; letter-spacing:no=
rmal; text-align:start; text-indent:0px; text-transform:none; white-space:n=
ormal; word-spacing:0px">
<span><font face=3D"Helvetica"><br>
</font></span></div>
<div style=3D"color:rgb(0,0,0); font-variant-caps:normal; letter-spacing:no=
rmal; text-align:start; text-indent:0px; text-transform:none; white-space:n=
ormal; word-spacing:0px">
<span><font face=3D"Helvetica">&quot;</font></span>
<pre><span><font face=3D"Helvetica">All RIFT routers MUST support IPv4 forw=
arding and MAY support IPv6
   forwarding.  A three way adjacency over IPv6 addresses implies
   support for IPv4 forwarding.</font></span></pre>
<span><font face=3D"Helvetica">&quot;</font></span></div>
</div>
</blockquote>
</div>
<p><font face=3D"Helvetica">=85because the WG Charter says that &quot;The p=
rotocol must support IPv6 and should also support IPv4.=94 &nbsp; So the te=
xt above contradicts the Charter.</font></p>
<p><font face=3D"Helvetica">Alvaro.</font></p>
<div class=3D"x_x_gmail_signature"></div>
</div>
</div>
</div>
</span></blockquote>
<div class=3D"x_gmail_signature"></div>
</div>
</body>
</html>

--_000_MWHPR05MB32792FB475893C987B3C3395ACF30MWHPR05MB3279namp_--


From nobody Fri Jul 12 03:20:50 2019
Return-Path: <xu.benchong@zte.com.cn>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E87FC120169 for <rift@ietfa.amsl.com>; Fri, 12 Jul 2019 03:20:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.197
X-Spam-Level: 
X-Spam-Status: No, score=-4.197 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 YLNS51mb76Bt for <rift@ietfa.amsl.com>; Fri, 12 Jul 2019 03:20:44 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 9D5BE120113 for <rift@ietf.org>; Fri, 12 Jul 2019 03:20:43 -0700 (PDT)
Received: from mse-fl1.zte.com.cn (unknown [10.30.14.238]) by Forcepoint Email with ESMTPS id 939E93DF748173AAB9D9; Fri, 12 Jul 2019 18:20:41 +0800 (CST)
Received: from njxapp01.zte.com.cn ([10.41.132.200]) by mse-fl1.zte.com.cn with SMTP id x6CAKHoD025142; Fri, 12 Jul 2019 18:20:17 +0800 (GMT-8) (envelope-from xu.benchong@zte.com.cn)
Received: from mapi (njxapp01[null]) by mapi (Zmail) with MAPI id mid201; Fri, 12 Jul 2019 18:20:16 +0800 (CST)
Date: Fri, 12 Jul 2019 18:20:16 +0800 (CST)
X-Zmail-TransId: 2af95d285ee0287c6ed2
X-Mailer: Zmail v1.0
Message-ID: <201907121820165648357@zte.com.cn>
In-Reply-To: <MWHPR05MB32799A20D113C1B541A46ABEACF30@MWHPR05MB3279.namprd05.prod.outlook.com>
References: 201907111733344496218@zte.com.cn, MWHPR05MB32799A20D113C1B541A46ABEACF30@MWHPR05MB3279.namprd05.prod.outlook.com
Mime-Version: 1.0
From: <xu.benchong@zte.com.cn>
To: <prz@juniper.net>
Cc: <brunorijsman@gmail.com>, <rift@ietf.org>
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl1.zte.com.cn x6CAKHoD025142
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/StLQ67owMN_ymiOIwa4go8zQ3CY>
Subject: Re: [Rift]  =?utf-8?q?Fw=3ARe=3A_Re=3A_Ipv4_and_ipv6_cooperating_in_r?= =?utf-8?q?ift?=
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jul 2019 10:20:48 -0000

--=====_001_next=====
Content-Type: multipart/related;
	boundary="=====_002_next====="


--=====_002_next=====
Content-Type: multipart/alternative;
	boundary="=====_003_next====="


--=====_003_next=====
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: base64

VG9ueQ0KDQpJIGdldCB0aGUgcnVsZSBub3csIHRoYW5rIHlvdSENCg0KSXQgc2hvdWxkIHNlbmQg
bXVsdGkgbGllcyBpbiBzYW1lIGludGVyZmFjZSB3aXRoIGRpZmZlcmVudCBzb3VyY2UgYWRkcmVz
cyBpbmNsdWRlIHY0IGFuZCB2NiB3aGljaCB3ZSB3YW50IHRvIHVzZSB0aGUgYWRkcmVzcyBhcyBh
IGdhdGV3YXkuIEl0IGNvbmZ1c2VkIG1lIGluIHRoZSBwcmV2aW91cyBkaXNjdXNzaW9uIGFuZCBJ
IGRpZCd0IGZpbmQgaXQgaW4gdGhlIHByb3RvY29sLiBJdCBpcyBkaWZmZXJlbnQgd2l0aCBvdGhl
ciBwcm90b2NvbHMuIEJydW5vJ3MgY29kZSBoYXMgYWxyZWFkeSBpbXBsZW1lbnRlZC4NCg0KSW4g
dGhpcyBjYXNlLCB0aGUgMy13YXkgc3RhdGUgc3dpdGNoaW5nIGZvcndvcmQgdGhlIHJ1bGUgaW4g
NS4yLjIgDQoNCiINCg0KT2JzZXJ2ZSBmdXJ0aGVyIHRoYXQgdGhlIHByb3RvY29sIGRvZXMgTk9U
IHN1cHBvcnQgc2VsZWN0aXZlDQoNCiAgIGRpc2FibGluZyBvZiBhZGRyZXNzIGZhbWlsaWVzIG9y
IGFueSBsb2NhbCBhZGRyZXNzIGNoYW5nZXMgaW4gdGhyZWUNCg0KICAgd2F5IHN0YXRlLCBpLmUu
IGlmIGEgbGluayBoYXMgZW50ZXJlZCB0aHJlZSB3YXkgSVB2NCBhbmQvb3IgSVB2NiB3aXRoDQoN
CiAgIGEgbmVpZ2hib3Igb24gYW4gYWRqYWNlbmN5IGFuZCBpdCB3YW50cyB0byBzdG9wIHN1cHBv
cnRpbmcgb25lIG9mIHRoZQ0KDQogICBmYW1pbGllcyBvciBjaGFuZ2UgYW55IG9mIGl0cyBsb2Nh
bCBhZGRyZXNzZXMsIGl0IGhhcyB0byB0ZWFyIGRvd24NCg0KICAgYW5kIHJlYnVpbGQgdGhlIGFk
amFjZW5jeS4gIEl0IGFsc28gaGFzIHRvIHJlbW92ZSBhbnkgaW5mb3JtYXRpb24gaXQNCg0KICAg
c3RvcmVkIGFib3V0IGFkamFjZW5jeSdzJyBMSUUgc291cmNlIGFkZHJlc3NlcyBzZWVuLg0KDQoi
DQoNClRoZW4gdGhlIG5leHRob3Agc2VsZWN0aW9uIG9mIHRoZSByaWIgdGFibGUgZGVwZW5kcyBv
biB0aGUgZGV2aWNlIGl0c2VsZiBhbmQgSSBzdXBwb3J0IHRoaXMuDQoNCg0KDQoNCnRoYW5rIHlv
dSENCg0KQmVuY2hvbmcNCg0KDQoNCg0KDQoNCg0K5Y6f5aeL6YKu5Lu2DQoNCg0KDQrlj5Hku7bk
urrvvJpBbnRvbmlQcnp5Z2llbmRhIDxwcnpAanVuaXBlci5uZXQ+DQrmlLbku7bkurrvvJrlvpDm
nKzltIcxMDA2NTA1MzticnVub3JpanNtYW5AZ21haWwuY29tIDxicnVub3JpanNtYW5AZ21haWwu
Y29tPjtyaWZ0QGlldGYub3JnIDxyaWZ0QGlldGYub3JnPjsNCuaXpSDmnJ8g77yaMjAxOeW5tDA3
5pyIMTLml6UgMDA6MzgNCuS4uyDpopgg77yaUmU6IEZ3OlJlOiBSZTpbUmlmdF0gSXB2NCBhbmQg
aXB2NiBjb29wZXJhdGluZyBpbiByaWZ0DQoNCg0KDQpCZW5jaG9uZywgYXMgdG8geW91ciBsYXN0
IGludGVyc3RpbmcgcXVlc3Rpb246IA0KIA0KDQogDQoiDQpJcyBpdCBwb3NzaWJsZSB0byBnZW5l
cmF0ZSBhIHZhbGlkIHY2IHJpYiB0YWJsZSBhcyBsb25nIGFzIHY0IGFkZHJlc3Mgb2YgdGhlIGlu
dGVmYWNlIGlzIHZhbGlkPyBDYW4gaXQgc3VwcG9ydCBpcHY0IGFuZCBpcHY2IGRvdWJsZSBzdGFj
az8NCg0KIg0KDQogDQphbnN3ZXIgaXMgInllcywgYnV0IHByYWN0aWNhbGx5IGlmIHlvdXIgaW50
ZXJmYWNlIGNhbiBmd2QnIElQdjYgZnJhbWVzIGl0IGFsc28gcnVucyBORCBzbyB5b3Ugd2lsbCBo
YXZlIGEgdjYgbGluayBsb2NhbCB3aGljaCBzZWVtcyBtdWNoIG1vcmUgbmF0dXJhbCBhcyBuZXh0
LWhvcCByYXRoZXIgdGhhbiBtYWx0cmVhdCB2NCBhZGRyZXNzZXMgdG8gYnVpbGQgdjYgbmV4dC1o
b3BzIGZyb20gOy0pIFVubGVzcyB5b3UgaGF2ZSBzb21lIGZ1bmt5IHNpbGljb24gIGxpbWl0YXRp
b25zIHdoZXJlIHN1Y2ggYSB0aGluZyBpcyBhIGdvb2QgdGhpbmcgOy0pIA0KIA0KDQogDQpTbywg
eW91IHNlZSB3aHkgdGhlIHNwZWMgaXMgd3JpdHRlbiB0byB0aGUgcG9pbnQgaXQncyB3cml0dGVu
IGFuZCBzaWxlbnQgb24gc3BlY2lmaWNhdGlvbiBob3cgdG8gcHJlY2lzZWx5IGJ1aWxkIG5leHQt
aG9wcy9nYXRld2F5cy4gSXQgY2FuIGJlIGltcGxlbWVudGVkIGluIGNvdXBsZSBkaWZmZXJlbnQg
d2F5cyB3aGljaCBhcmUgdmVyeSBjbG9zZSB0byBpbXBsZW1lbnRhdGlvbiB0ZWNobmlxdWVzL0hX
IHVzZWQgc28gdHJ5aW5nIHRvIG5haWwgdGhhdCAgaW4gcHJvdG9jb2wgc3BlYyB3b3VsZCBiZSBv
dmVyLXNwZWNpZmljYXRpb24gd2hpY2ggaXMgYWxtb3N0IGFzIGJhZCBhcyB1bmRlci1zcGVjaWZp
Y2F0aW9uIC4uLiANCiANCg0KIA0KLS0tIHRvbnkgDQogDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tDQoNCkZyb206IHh1LmJlbmNob25nQHp0ZS5jb20uY24gPHh1LmJlbmNob25nQHp0ZS5jb20u
Y24+DQogU2VudDogVGh1cnNkYXksIEp1bHkgMTEsIDIwMTkgMjozMyBBTQ0KIFRvOiBicnVub3Jp
anNtYW5AZ21haWwuY29tDQogQ2M6IEFudG9uaSBQcnp5Z2llbmRhDQogU3ViamVjdDogRnc6UmU6
IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQgIA0KDQoNCkhpLCBC
cnVubw0KDQoNCkkgcmVhZCBwYXJ0IG9mIHlvdXIgUklGVCBjb2RlLCB0aGFuayB5b3UgZm9yIHlv
dXIgZ3JlYXQgam9iIQ0KDQpXaGVuIHNlbmRpbmcgTElFIG1lc3NhZ2VzLCBhcyBsb25nIGFzIHRo
ZXJlIGlzIGEgdjQgYWRkcmVzcywgdjQgd2lsbCBiZSB1c2VkIGZpcnN0LCBzbyB3ZSB3aWxsIGdl
dCB2NCBuZXh0IGhvcC4NCg0KLS0tLS0tLS0tLQ0KDQoNCg0KDQogICAgZGVmIGFjdGlvbl9zdGFy
dF9mbG9vZGluZyhzZWxmKToNCg0K4oCm4oCmDQoNCiAgICAgICAjIEZvciBzZW5kaW5nIGZsb29k
aW5nIHBhY2tldHMsIHVzZSB3aGF0ZXZlciBJUHY0IG9yIElQdjYgYWRkcmVzcyB3ZSBzZWUgZmly
c3QgZm9yIHRoZQ0KDQogICAgICAgICMgbmVpZ2hib3IsIHByZWZlcnJpbmcgdGhlIElQdjQgYWRk
cmVzcyBpZiB3ZSBrbm93IGJvdGguDQoNCiAgICAgICAgaWYgc2VsZi5uZWlnaGJvci5pcHY0X2Fk
ZHJlc3MgaXMgbm90IE5vbmU6DQoNCiAgICAgICAgICAgIHNlbGYucnhfaW5mbygiU3RhcnQgSVB2
NCBmbG9vZGluZzogc2VuZCB0byBhZGRyZXNzICVzIHBvcnQgJWQiLA0KDQogICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5uZWlnaGJvci5pcHY0X2FkZHJlc3MsIHR4X2Zsb29kX3BvcnQpDQoN
CiAgICAgICAgICAgIHNlbGYuX2Zsb29kX3R4X2lwdjRfc29ja2V0ID0gc2VsZi5jcmVhdGVfc29j
a2V0X2lwdjRfdHhfdWNhc3QoDQoNCiAgICAgICAgICAgICAgICByZW1vdGVfYWRkcmVzcz1zZWxm
Lm5laWdoYm9yLmlwdjRfYWRkcmVzcywNCg0KICAgICAgICAgICAgICAgIHBvcnQ9dHhfZmxvb2Rf
cG9ydCkNCg0KICAgICAgICBlbHNlOg0KDQogICAgICAgICAgICBhc3NlcnQgc2VsZi5uZWlnaGJv
ci5pcHY2X2FkZHJlc3MgaXMgbm90IE5vbmUNCg0KICAgICAgICAgICAgc2NvcGVkX2lwdjZfYWRk
cmVzcyA9IHNlbGYubmVpZ2hib3IuaXB2Nl9hZGRyZXNzDQoNCiAgICAgICAgICAgIGlmICIlIiBu
b3QgaW4gc2VsZi5uZWlnaGJvci5pcHY2X2FkZHJlc3M6DQoNCiAgICAgICAgICAgICAgICBzY29w
ZWRfaXB2Nl9hZGRyZXNzICs9ICIlIiArIHNlbGYucGh5c2ljYWxfaW50ZXJmYWNlX25hbWUNCg0K
ICAgICAgICAgICAgc2VsZi5yeF9pbmZvKCJTdGFydCBJUHY2IGZsb29kaW5nOiBzZW5kIHRvIGFk
ZHJlc3MgJXMgcG9ydCAlZCIsDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZWRfaXB2
Nl9hZGRyZXNzLCB0eF9mbG9vZF9wb3J0KQ0KDQogICAgICAgICAgICBzZWxmLl9mbG9vZF90eF9p
cHY2X3NvY2tldCA9IHNlbGYuY3JlYXRlX3NvY2tldF9pcHY2X3R4X3VjYXN0KA0KDQogICAgICAg
ICAgICAgICAgcmVtb3RlX2FkZHJlc3M9c2NvcGVkX2lwdjZfYWRkcmVzcywNCg0KICAgICAgICAg
ICAgICAgIHBvcnQ9dHhfZmxvb2RfcG9ydCkNCg0KDQpTUEYgY2FsY3VsYXRpb24gd2lsbCBjYWxj
dWxhdGUgdGhlIG5leHRob3Agb2YgdjQgYW5kIHY2IGF0IHRoZSBzYW1lIHRpbWUuDQogDQoNCg0K
LS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgIGRlZiBzZXRfc3BmX3ByZWRlY2Vzc29yKHNlbGYsIGRl
c3RpbmF0aW9uLCBuYnJfdGllX2VsZW1lbnQsIHByZWRlY2Vzc29yX3N5c3RlbV9pZCwNCg0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNwZl9kaXJlY3Rpb24pOg0KDQogICAgICAgIGRlc3Rp
bmF0aW9uLmFkZF9wcmVkZWNlc3NvcihwcmVkZWNlc3Nvcl9zeXN0ZW1faWQpDQoNCiAgICAgICAg
aWYgKG5icl90aWVfZWxlbWVudCBpcyBub3QgTm9uZSkgYW5kIChwcmVkZWNlc3Nvcl9zeXN0ZW1f
aWQgPT0gc2VsZi5zeXN0ZW1faWQpOg0KDQogICAgICAgICAgICBmb3IgbGlua19pZF9wYWlyIGlu
IG5icl90aWVfZWxlbWVudC5saW5rX2lkczoNCg0KICAgICAgICAgICAgICAgIG5ob3AgPSBzZWxm
LmludGVyZmFjZV9pZF90b19pcHY0X25leHRfaG9wKGxpbmtfaWRfcGFpci5sb2NhbF9pZCkNCg0K
ICAgICAgICAgICAgICAgIGlmIG5ob3A6DQoNCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRp
b24uYWRkX2lwdjRfbmV4dF9ob3AobmhvcCkNCg0KICAgICAgICAgICAgICAgIG5ob3AgPSBzZWxm
LmludGVyZmFjZV9pZF90b19pcHY2X25leHRfaG9wKGxpbmtfaWRfcGFpci5sb2NhbF9pZCkNCg0K
ICAgICAgICAgICAgICAgIGlmIG5ob3A6DQoNCiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRp
b24uYWRkX2lwdjZfbmV4dF9ob3AobmhvcCkNCg0KICAgICAgICBlbHNlOg0KDQogICAgICAgICAg
ICBkZXN0X3RhYmxlID0gc2VsZi5fc3BmX2Rlc3RpbmF0aW9uc1tzcGZfZGlyZWN0aW9uXQ0KDQog
ICAgICAgICAgICBkZXN0aW5hdGlvbi5pbmhlcml0X25leHRfaG9wcyhkZXN0X3RhYmxlW3ByZWRl
Y2Vzc29yX3N5c3RlbV9pZF0pDQoNCg0KVGhlIFJJQiB0YWJsZSBvbmx5IHNlbGVjdHMgdGhlIHNh
bWUgQUYgbmV4dGhvcA0KDQoNCi0tLS0tLS0tLS0tLS0tDQoNCiAgICBkZWYgc3BmX2luc3RhbGxf
cm91dGVzX2luX3JpYihzZWxmLCBzcGZfZGlyZWN0aW9uKToNCg0KICAgICAgICDigKbigKYNCg0K
ICAgICAgICAgICAgICAgIHByZWZpeCA9IGRlc3Rfa2V5DQoNCiAgICAgICAgICAgICAgICBpZiBw
cmVmaXguaXB2NHByZWZpeCBpcyBub3QgTm9uZToNCg0KICAgICAgICAgICAgICAgICAgICBuZXh0
X2hvcHMgPSBkZXN0LmlwdjRfbmV4dF9ob3BzDQoNCiAgICAgICAgICAgICAgICAgICAgcm91dGVf
dGFibGUgPSBzZWxmLl9pcHY0X3JpYg0KDQogICAgICAgICAgICAgICAgZWxzZToNCg0KICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgcHJlZml4LmlwdjZwcmVmaXggaXMgbm90IE5vbmUNCg0KICAg
ICAgICAgICAgICAgICAgICBuZXh0X2hvcHMgPSBkZXN0LmlwdjZfbmV4dF9ob3BzDQoNCiAgICAg
ICAgICAgICAgICAgICAgcm91dGVfdGFibGUgPSBzZWxmLl9pcHY2X3JpYg0KDQogICAgICAgICAg
ICAgICAgaWYgbmV4dF9ob3BzOg0KDQogICAgICAgICAgICAgICAgICAgIHJ0ZSA9IHJvdXRlLlJv
dXRlKHByZWZpeCwgb3duZXIsIG5leHRfaG9wcykNCg0KICAgICAgICAgICAgICAgICAgICByb3V0
ZV90YWJsZS5wdXRfcm91dGUocnRlKQ0KDQoNCklzIGl0IHBvc3NpYmxlIHRvIGdlbmVyYXRlIGEg
dmFsaWQgdjYgcmliIHRhYmxlIGFzIGxvbmcgYXMgdjQgYWRkcmVzcyBvZiB0aGUgaW50ZWZhY2Ug
aXMgdmFsaWQ/IENhbiBpdCBzdXBwb3J0IGlwdjQgYW5kIGlwdjYgZG91YmxlIHN0YWNrPw0KDQoN
ClRoYW5rcyENCiANCg0KDQpCZW5jaG9uZw0KDQoNCg0KIA0KDQoNCg0K5Y6f5aeL6YKu5Lu2DQoN
Cg0KDQrlj5Hku7bkurrvvJpBbnRvbmlQcnp5Z2llbmRhIDxwcnpAanVuaXBlci5uZXQ+DQrmlLbk
u7bkurrvvJrlvpDmnKzltIcxMDA2NTA1MzsNCuaKhOmAgeS6uu+8mkplZmZyZXkgKFpoYW9odWkp
IFpoYW5nIDx6emhhbmdAanVuaXBlci5uZXQ+O+W8oOW+gTAwMDA3OTQwO3JpZnRAaWV0Zi5vcmcg
IDxyaWZ0QGlldGYub3JnPjsNCuaXpSDmnJ8g77yaMjAxOeW5tDA35pyIMTHml6UgMTE6NTINCuS4
uyDpopgg77yaUmU6IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQN
Cg0KDQoNCkJlbmNob25nLCB3aGF0IHlvdSBzZWVtIHRvIHRhbGsgYWJvdXQgaXMgb3JpZ2luYXRp
bmcgcGFja2V0cyBhbmQgaXQncyB0aGUgc291cmNlIHRoYXQgZGVjaWRlcyB3aGV0aGVyIGl0IHNl
bmRzIHY0IG9yIHY2IGFuZCB0aGUgSVAgZmFicmljIHdpdGggUklGVCBqdXN0IGZvcndhcmRzIHRo
ZSBwYWNrZXQsIGl0IGNhbm5vdCBjaGFuZ2UgaW4gdGhlIG1pZGRsZSB0aGUgSVAgYWRkcmVzcyBm
YW1pbHkgaW4gd2hpY2ggdGhlIHBhY2tldCBpcyBjYXJyaWVkICAgb2J2aW91c2x5IHNvIHRoZXJl
IGlzIG5vIGRlY2lzaW9uIHRvIGJlIG1hZGUgd2hpY2ggSVAgQUYgaXMgdXNlZCwgb25seSB3aGlj
aCBHVyBuZWVkcyB0byBiZSBpbnN0YWxsZWQgb24gdGhlIHJvdXRlIG5leHRob3AuIEJ1dCB5ZXMs
IGFuIGltcGxlbWVudGF0b24gY2FuIGNob29zZSB0byBmb3J3YXJkIHY0IHBhY2tldHMgdXNpbmcg
dGhlIE1BQyBhZGRyZXNzIG9mIGEgdjYgZ2F0ZXdheSwgYSBoaWdobHkgZGVzaXJhYmxlIGJlaGF2
aW9yIHNpbmNlICAgd2l0aCB0aGF0LCB0aGUgZmFicmljIGNhbiBiZSBjb21wbGV0ZWx5IGdsb2Jh
bCBhZGRyZXNzIGZyZWUgd2l0aG91dCBhbnkgY29uZmlnIChqdXN0IE5EKSBhbmQgZG8gdjQgZmlu
ZS4gIA0KIA0KDQogDQp5ZXMsIGFuIGltcGxlbWVudGF0aW9uIG1heSBjaG9vc2UgdG8gcHJlZmVy
IHY0IEdXIGZvciB2NCBwYWNrZXRzIGFuZCB2NiBHVyBmb3IgdjYgcGFja2V0cyBidXQgbm9ybWFs
bHkgaXQncyB0aGUgc2FtZSBNQUMgdW5sZXNzIHRoZSBkZXBsb3ltZW50IGlzIHZlcnkgc3RyYW5n
ZSBAIHdoaWNoIHBvaW50IGtub2JzIHRvIGNvbnRyb2wgdGhhdCBtYXkgYmUgbmVjZXNzYXJ5LCBz
b21ldGhpbmcgd2hpY2ggaXMgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMuIA0KIA0KDQogDQpTbyBS
SUZUIGp1c3QgZmxvb2RzIHRoZSBUSUVzIG9uIGFueSBBRiB3aXRoIHByZWZpeGVzIG9mIGFsbCBB
RnMsIHRoZSBjb21wdXRhdGlvbiBjb21wdXRlcyB0aGUgcm91dGUgd2l0aCBkaXJlY3RseSBhdHRh
Y2hlZCBuZXh0LWhvcCB3aGljaCBoYXMgdG8gcmVzb2x2ZSB0byBNQUMgaW4gYW55IEFGIHJlYWxs
eSBhbmQgdGhlbiBwYWNrZXQgY2FuIGJlIGZvcndhcmRlZCAuLi4gDQogDQoNCiANCmltcGxlbWVu
dCBpdCBhbmQgcGxheSB3aXRoIGl0LCB3ZSBoYXZlIEAgbGVhc3QgMiBpbXBsZW1lbnRhdGlvbnMg
YWxyZWFkeSB0aGF0IHdvcmsgZmluZSBkb2luZyB0aGF0IC4uLiANCiANCg0KIA0KWWVzLCB0aGUg
Y2xvc2VzdCBhbmFsb2d5IGlzIHY0IGluIEJHUCB3aXRoIHY2IG5leHRob3BzIGlmIHlvdSByZWFs
bHkgd2FudCB0byB0aGluayB0aGF0IHdheSBidXQgUklGVCBpcyBtdWNoIHNpbXBsZXIgc2luY2Ug
dGhlIG5ob3AgaXMgYWx3YXlzIGRpcmVjdGx5IGNvbm5lY3RlZCBhbmQgd2UgZG9uJ3QgdGFsayBh
Ym91dCBhbnl0aGluZyBsaWtlIHY0b3Y2IG9yIHY2b3Y0IHR1bm5lbGluZyBhbmQgc28gb24gLi4u
IA0KIA0KDQogDQptYWtlcyBzZW5zZT8gDQogDQoNCiANCi0tLSB0b255IA0KIA0KDQogDQogDQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpGcm9tOiB4dS5iZW5jaG9uZ0B6dGUuY29tLmNuIDx4
dS5iZW5jaG9uZ0B6dGUuY29tLmNuPg0KIFNlbnQ6IFdlZG5lc2RheSwgSnVseSAxMCwgMjAxOSA4
OjM5IFBNDQogVG86IEFudG9uaSBQcnp5Z2llbmRhDQogQ2M6IEplZmZyZXkgKFpoYW9odWkpIFpo
YW5nOyBFWFQtemhhbmcuemhlbmdAenRlLmNvbS5jbjsgcmlmdEBpZXRmLm9yZw0KIFN1YmplY3Q6
IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQgIA0KDQoNCkhpIHRv
bnkNCg0KDQpUaGFua3MgZm9yIHlvdXIgZXhwbGFuYXRpb24sIGFuZCBJIGhhdmUgYWxyZWFkeSB1
bmRlcnN0b29kIHlvdXIgb3BpbmlvbiBvbiB2NHY2IGZvcndhcmRpbmcuDQoNClRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gUklGVCBhbmQgb3RoZXIgcm91dGluZyBwcm90b2NvbHMgaXMgdGhlIGNvbnNp
c3RlbmN5IG9mIHBhY2tldHMgQUYgYW5kIHJvdXRlcyBBRi4gSXNpcyBpcyBpbiBMMiBlbmNhcHN1
bGF0aW9uIHRoYXQgc29sdmVzIGRpZmZlcmVudCBhZGRyZXNzIGZhbWlsaWVzIHRocm91Z2ggbXVs
dGlwbGUgdG9wb2xvZ2llcy4gT3NwZiBhbmQgcmlwIGFyZSBzdHJpY3RseSBkaXN0aW5ndWlzaGVk
IGluIHY0djYuIFJpZnQgICBpcyBhY3R1YWxseSBjbG9zZXIgdG8gQkdQLg0KDQpXaGVuIHRoZSBp
bnRlcmZhY2UgaGFzIGJvdGggdjQgYW5kIHY2IGFkZHJlc3NlcyAob3IgTkQgZW5hYmxlZCksIHRo
ZSBwcm90b2NvbCB1c2VzIHY0IG9yIHY2IG9yIHY0djYgYWRkcmVzcyBlbmNhcHN1bGF0aW9uLiBJ
dCB3aWxsIGJlIGJldHRlciBpZiBwcm90b2NvbCBnYXZlIHRoZSByZWNvbW1lbmRlZCBiZWhhdmlv
ci4gT3RoZXJ3aXNlLCBkaWZmZXJlbnQgcGVvcGxlIHdpbGwgZ2l2ZSBkaWZmZXJlbnQgc29sdXRp
b25zLCB3aGljaCB3aWxsICAgY2F1c2UgcHJvdG9jb2wgY29uZm9ybWFuY2UgcHJvYmxlbS4gDQoN
ClRoZSBvcHRpb25zIHdlIGNhbiBjaG9vc2UgYXJlOg0KDQphKSBORCBlbmFibGUgdjYgZmlyc3Q6
DQoNCklmIHY2IGFkZHJlc3MgdmFsaWQgQU5EIE5EIGVuYWJsZToNCg0KICAgICBWNiBwYWNrZXQN
Cg0KRWxzZSBpZiB2NCBhZGRyZXNzIHZhbGlkOg0KDQogICAgIFY0IHBhY2tldA0KDQpiKSB2NCBm
aXJzdA0KDQpJZiB2NCBhZGRyZXNzIHZhbGlkOg0KDQogICAgIFY0IHBhY2tldA0KDQpFbHNlIGlm
IHY2IGFkZHJlc3MgdmFsaWQoQU5EIE5EIGVuYWJsZSk6DQoNCiAgICAgVjYgcGFja2V0DQoNCmMp
IGNvZXhpc3RlbmNlIG9mIHY0djYNCg0KSWYgdjQgYWRkcmVzcyB2YWxpZDoNCg0KICAgICBWNCBw
YWNrZXQNCg0KSWYgdjYgYWRkcmVzcyB2YWxpZChBTkQgTkQgZW5hYmxlKToNCg0KICAgICBWNiBw
YWNrZXQNCg0KQ29uZnVzZWQgb24gYm90aCB0aGUgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHNpZGVz
Lg0KDQpjKSB3aWxsIGZ1cnRoZXIgaGF2ZSBhIEdXIHNlbGVjdGlvbiBwcm9ibGVtLCBwcmVmZXJy
aW5nIHRvIGNob29zZSB0aGUgbmV4dGhvcCBvZiB0aGUgc2FtZSBhZGRyZXNzIGZhbWlseSB3aXRo
IHRoZSBwcmVmaXgsIG9yIHY0IGZpcnN0Lg0KDQoNCkknZCBsaWtlIHRoZSBwcm90b2NvbCByZWNv
bW1lbmRzIGEgZGVmYXVsdCBiZWhhdmlvciBhbmQgbWF5IHByb3ZpZGVzIGEgY29udHJvbCBtZXRo
b2QgaW4geWFuZy4NCg0KDQpUaGFua3MhDQoNCg0KQmVuY2hvbmcNCg0KDQoNCiANCg0KDQoNCuWO
n+Wni+mCruS7tg0KDQoNCg0K5Y+R5Lu25Lq677yaQW50b25pUHJ6eWdpZW5kYSA8cHJ6QGp1bmlw
ZXIubmV0Pg0K5pS25Lu25Lq677ya5b6Q5pys5bSHMTAwNjUwNTM7DQrmioTpgIHkurrvvJpKZWZm
cmV5IChaaGFvaHVpKSBaaGFuZyA8enpoYW5nQGp1bmlwZXIubmV0PjvlvKDlvoEwMDAwNzk0MDty
aWZ0QGlldGYub3JnICAgPHJpZnRAaWV0Zi5vcmc+Ow0K5pelIOacnyDvvJoyMDE55bm0MDfmnIgx
MOaXpSAyMzoxMg0K5Li7IOmimCDvvJpSZTogUmU6W1JpZnRdIElwdjQgYW5kIGlwdjYgY29vcGVy
YXRpbmcgaW4gcmlmdA0KDQoNCg0KSGV5IEJlbmNob25nLCB0aGF0J3MgYW4gb3Zlci1pbnRlcnBy
ZXRhdGlvbiwgdGhlIHNwZWMgaXMgbG9vc2VyIHRoYW4gdGhhdCBidXQgYXMgZmFyIEkgc2F3IHN1
ZmZpY2llbnQuIFNlY3Rpb24gNS4yLjIuIA0KIA0KDQogDQphKSBTcGVjaWZpY2F0aW9uIGRvZXMg
bm90IHByb2hpYml0IFJJRlQgZnJvbSB1c2luZyBfYW55XyB2YWxpZCBJUHY2IGFkZHJlc3Mgb24g
dGhlIGludGVyZmFjZSB0byBzZW5kIElQdjYgTElFcy4gVGhlIHJlY2VpdmVyIGlzIHN1cHBvc2Vk
IHRvIHBpY2sgdXAgdGhhdCBzb3VyY2UgYWRkcmVzcyBhbmQgdXNlIGl0IGFzIGRlc3RpbmF0aW9u
IHdoZW4gc2VuZGluZyBMSUVzIG92ZXIgdjYgYW5kL29yIFRJRXMgd2l0aCB0aGUgcmVjZXZpbmcg
aW50ZXJmYWNlICAgIGFzIGdhdGV3YXkuIFNwZWNpZmljYXRpb24gZG9lcyBOT1Qgc3BlbGwgb3V0
IHdoYXQgaGFwcGVucyBlLmcuIG9uIG1pc21hdGNoZWQgSVAgc3VibmV0cyBvbiBib3RoIHNpZGVz
IGFuZCBzbyBvbiwgc2l0dWF0aW9uIGhlcmUgaXMgc2ltaWxhciB0byBJU0lTIGFuZCBkaWZmZXJl
bnQgc2NlbmFyaW9zIHN1Y2ggYXMgdW5udW1iZXJlZCBsaW5rcyBhbmQgc28gb24NCiANCg0KYikg
SWYgeW91IHdhbnQgdGhlICJsYXppZXN0IiBwb3NzaWJsZSBpbXBsZW1lbnRhdGlvbiB0aGVuIGlu
IGZhY3QgeWVzLCB5b3UgY2FuIGZhbGwgYmFjayBvbiANCiANCg0KIA0KIiBBbGwgUklGVCByb3V0
ZXJzIE1VU1Qgc3VwcG9ydCBJUHY0IGZvcndhcmRpbmcgYW5kIE1BWSBzdXBwb3J0IElQdjYgZm9y
d2FyZGluZy4gQSB0aHJlZSB3YXkgYWRqYWNlbmN5IG92ZXIgSVB2NiBhZGRyZXNzZXMgaW1wbGll
cyBzdXBwb3J0IGZvciBJUHY0IGZvcndhcmRpbmcuICINCg0KIA0Kd2hpY2ggbWFrZXMgdjRvdjYg
Zm9yd2FyZGluZyBpbmhlcmVudCBwYXJ0IG9mIFJJRlQuIFRoYXQgYXNzdW1lcyBob3dldmVyIHRo
YXQgcmVjZWl2aW5nIG5laWdoYm9yIGRvZXMgc3VwcG9ydCBWNiAod2hpY2ggdGhlIHNwZWMgZG9l
cyBOT1QgbWFuZGF0ZSkgYW5kIG5vdGhpbmcgd2lsbCBoYXBwZW4gaWYgaXQgZG9lc24ndC4gVGhl
cmVmb3JlIGFsbCBSSUZUIGltcGxlbWVudGF0aW9uIEkgc2F3IHNvIGZhciBzZW5kIGJvdGggdjQg
YW5kIHY2IHdoaWNoICAgIGFsbG93cyB0aGUgbmVpZ2hib3IgdG8gb25seSByZWNlaXZlIHY0IGFu
ZCBmb3J3YXJkIHVzaW5nIHY0IGdhdGV3YXlzIGlmIGl0IGRvZXNuJ3Qgc3VwcG9ydCBWNi4gSW4g
Y2FzZSBib3RoIHY0IGFuZCB2NiBBRnMgYXJlIGVzdGFibGlzaGVkLCBpdCBpcyB1cCB0byB0aGUg
aW1wbGVtZW50YXRpb24gd2hpY2gvaG93IGl0IHJlc29sdmVzIHRoZSBnYXRld2F5cyBhbmQgdGhl
cmUgYXJlIG1hbnkgaW50ZXJlc3RpbmcgYWR2YW5jZWQgaXNzdWVzIHN1Y2ggICAgYXMgbWl4dHVy
ZSBvZiBzcGluZXMgd2l0aCB2NCBhbmQgdjYgbmV4dGhvcHMgYW5kIGhvdyB0byBmb3JtIEVDTVAg
YW1vbmdzdCB0aGVtIHRoYXQgdGhlIHNwZWMgZG9lcyBvYnZpb3VzbHkgbm90IGFkZHJlc3Mgc2lu
Y2UgaXQncyBhbGwgdmVyeSBpbXBsZW1lbnRhdGlvbiBhbmQgc2lsaWNvbiBzcGVjaWZpYy4gDQog
DQoNCiANCi0tLSB0b255IA0KIA0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpGcm9tOiB4
dS5iZW5jaG9uZ0B6dGUuY29tLmNuIDx4dS5iZW5jaG9uZ0B6dGUuY29tLmNuPg0KIFNlbnQ6IFdl
ZG5lc2RheSwgSnVseSAxMCwgMjAxOSAxOjU2IEFNDQogVG86IEFudG9uaSBQcnp5Z2llbmRhDQog
Q2M6IEplZmZyZXkgKFpoYW9odWkpIFpoYW5nOyBFWFQtemhhbmcuemhlbmdAenRlLmNvbS5jbjsg
cmlmdEBpZXRmLm9yZw0KIFN1YmplY3Q6IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0
aW5nIGluIHJpZnQgIA0KDQoNCiANCg0KVG9ueSwgdGhhbmsgeW91IGZvciB5b3VyIHJlcGx5DQoN
CkNhbiBpdCBiZSB1bmRlcnN0b29kIHRoYXQgYWZ0ZXIgdGhlIE5EIGlzIGVuYWJsZWQsIHRoZSB2
NiBhZGRyZXNzIG5lZWRzIHRvIGJlIHVzZWQgdG8gYnVpbGQgbmVpZ2hib3I/IEluIHRoaXMgY2Fz
ZSwgdGhlIHJpZnQgcGFja2V0IG9mIHRoZSB2NCBoZWFkZXIgaXMgbm90IGFsbG93ZWQgdG8gYmUg
c2VudCBhbmQgcmVjZWl2ZWQsIGFuZCBib3RoIHY0IGFuZCB2NiByb3V0ZXMgaGF2ZSBhIHY2IEdX
Lg0KDQoNCg0KIA0KDQoNCg0KIA0KDQoNCg0K5Y6f5aeL6YKu5Lu2DQoNCg0KDQrlj5Hku7bkurrv
vJpBbnRvbmlQcnp5Z2llbmRhIDxwcnpAanVuaXBlci5uZXQ+DQrmlLbku7bkurrvvJrlvpDmnKzl
tIcxMDA2NTA1MztKZWZmcmV5IChaaGFvaHVpKVpoYW5nIDx6emhhbmdAanVuaXBlci5uZXQ+O+W8
oOW+gTAwMDA3OTQwO3JpZnRAaWV0Zi5vcmcgICAgPHJpZnRAaWV0Zi5vcmc+Ow0K5pelIOacnyDv
vJoyMDE55bm0MDfmnIgxMOaXpSAwMDowOQ0K5Li7IOmimCDvvJpSZTogW1JpZnRdIElwdjQgYW5k
IGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdA0KDQoNCg0KSGV5IEJlbmNob25nLCBjYzonaW5nIGxp
c3QsIGdvb2QgcXVlc3Rpb25zIG9idmlvdXNseSB0aGF0IHBvcCBvdXQgb24gaW1wbGVtZW50YXRp
b24gICANCiANCg0KIA0Kc2VuZGluZyBMSUUgb25seSB3aXRoIHY0IHdpbGwgbm90IGdpdmUgeW91
IGEgdjYgYWRkcmVzcyB0byBzZW5kIHRvIChzaW5jZSB0aGUgTElFIHNvdXJjZSBhZGRyZXNzIGdp
dmVzIHRoZSBnYXRld2F5IGZvciB0aGUgQUYsIHRoYXQncyB3aHkgd2Ugc2VuZCBMSUUgcGVyIEFG
KSBzbyB5b3Ugd29uJ3QgaGF2ZSBhIHY2IEdXIGFkZHJlc3MgdG8gc2VuZCBUSUVzIHRvIDstKQ0K
DQp5ZXMsIGV2ZXJ5IGludGVyZmFjZSBpcyBpbmRlcGVuZGVudC4gT2JzZXJ2ZSB0aGF0IHY2IHN1
cHBvcnQgaW1wbGllcyB2NCBhcyB0aGUgc3BlYyBzYXlzIChzaW5jZSB5b3UgY2FuIEZXIHY0IHdp
dGhvdXQgYSB2NCBHVyBpZiB5b3UgaGF2ZSBhIHY2IGdhdGV3YXkpLiBIb3dldmVyLCBpZiBvbmUg
c2lkZSBzZW5kcyB2NiBvbmx5IGFuZCB0aGUgb3RoZXIgc2lkZSBvbmx5IHY0IHRoZXknbGwgbmV2
ZXIgZ28gMy13YXkgc2luY2UgdGhleSB3b24ndCAgICAgYmUgYWJsZSB0byByZWNlaXZlLiBXZSBq
dXN0IGFkZGVkIGEgc2VudGVuY2UgdG8gdGhlIHNwZWMgc2F5aW5nIHRoYXQgaWYgeW91IGRvbid0
IHNlbmQgYW4gQUYgTElFIHlvdSBNVVNUIE5PVCByZWNlaXZlIHRoZSBzYW1lIEFGIExJRSBzaW5j
ZSB3ZSBmb3VuZCB0aGF0IGxvb3NlIGVuZCBpbiBCcnVubydzIGltcGxlbWVudGF0aW9uIHdoZW4g
dGVzdGluZyBzZWN1cml0eSBlbnZlbG9wZXMuICBJdCB3aWxsIGJlIGluIC0wNw0KDQoNCg0KIDx0
PkFsbCBSSUZUIHJvdXRlcnMgTVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1
cHBvcnQgSVB2Ng0KIGZvcndhcmRpbmcuIEEgdGhyZWUgd2F5IGFkamFjZW5jeSBvdmVyIElQdjYg
YWRkcmVzc2VzIGltcGxpZXMgc3VwcG9ydA0KIGZvciBJUHY0IGZvcndhcmRpbmcuIEEgbm9kZSB0
aGF0IGRvZXMgbm90IHByb2Nlc3MgcmVjZWl2ZWQgSVB2NiBMSUVzDQogICAgTVVTVCBOT1Qgb3Jp
Z2luYXRlIElQdjYgTElFcy4NCiA8L3Q+IA0KIA0KSVB2Ni9JUHY0IHByZWZpeCBjYW4gYmUgbWl4
ZWQgaW4gUHJlZml4IFRJRXMuIFByZWZpeCBUSUVzIGRvIE5PVCBjYXJlIHdoaWNoIGludGVyZmFj
ZS9BRiB0aGV5IGFyZSBzZW50IG92ZXIuIA0KDQoNCmhvdyB5b3UgYnVpbGQgZm9yd2FyZGluZyB0
YWJsZSBhbmQgd2hpY2ggZ2F0ZXdheXMgeW91IHVzZSBpcyBpbXBsZW1lbmF0aW9uIGRlcGVuZGVu
dCBidXQgeWVzLCB5b3UgZ290IHRoZSBmbGF2b3IuIHRob3VnaCB5b3VyIGFzc3VtcHRpb24gb2Yg
IklwdjYgZGVzdGluYXRpb24gd2l0aCBpcHY0IG5leHRob3AiIGlzIG9wdGltaXN0aWMuIGV2ZXJ5
IHNpbGljb24gZG9lcyB2NCBzbyB2NiBjYW4gaW1wbHkgdjQsIGltcGx5aW5nIHY0IGZ3ZCdpbmcg
ICAgIGFsbG93cyB2NiBmb3J3YXJkaW5nIGZhaWxzIG9uIGdvb2QgYW1vdW50IG9mIHNpbGljb24u
IEJ1dCBhZ2FpbiwgdGhvc2UgYXJlIGFsbCBpbXBsZW1lbnRhdGlvbiBrbm9icywgc3BlYyBvbmx5
IHNheXMgInY2IGltcGxpZXMgdjQiIHdoaWNoIG1lYW5zICJ5b3UgYmV0dGVyIGZ3ZC4gdjQgb3Zl
ciB2NiBuZXh0aG9wcyBpZiB5b3Ugc2VlIHY2IExJRXMgb25seSINCg0KDQpPYnNlcnZlIHRoYXQg
bm9kZSBUSUVzIGFyZSBfbm90XyBjYXJyeWluZyB0aGUgc3VwcG9ydGVkIEFGcyBvbiBlYWNoIGlu
dGVyZmFjZSBzaW5jZSBJIHRoaW5rIGl0IHdvdWxkIGxlYWQgdG8gdW5kZXNpcmFibGUgYXR0ZW1w
dHMgdG8gZGVwbG95IChzb21lIGxpbmtzIGNhbiBkbyB2NikgdG9wb2xvZ2llcyB3aGljaCBkZWZl
YXQgdGhlIHB1cnBvc2Ugb2YgWlRQL3NpbXBsaWNpdHkgb2YgUklGVC4gdjYgaW1wbGllcyB2NCwg
aWYgc29tZW9uZSAgICAgd2FudHMgdG8gZndkJyB2NiBvdmVyIGEgZmFicmljIHdoZXJlIGNlcnRh
aW4gbGlua3MgYXJlIHY0IGNvbXB1dGF0aW9ucyBnZXQgcmVhbGx5IHdlaXJkIGFuZCBvcGVyYXRp
b25hbGx5IHN1Y2ggYSB0aGluZyBpcyBwcm9iYWJseSBhIG5pZ2h0bWFyZSBhbnl3YXkuIEFuZCBn
ZXR0aW5nIHY2IHdvcmtpbmcgaXMgdHJpdmlhbCwganVzdCBmbGlwIG9uIE5EIGFuZCB5b3UncmUg
aW4gYnVzaW5lc3MgKGF0IGxlYXN0IGNvbnRyb2wgcGxhbmUgd2lzZSAgIDstKQ0KIA0KDQogVGhl
IHNwZWMgaXMgbm9pdCBnaXZpbmcgaW1wbGVtZW50YXRpb24gYWR2aWNlLCBpdCBqdXN0IHNwZWNp
ZmllcyBiZWhhdmlvci4gSW4gY2FzZSBvZiBkb3VidCBsb29rcyBAIEJydW5vJztzIG9wZW4gc291
cmNlLiBCcnVubyBpbXBsZW1lbnRlZCB0aGUgd2hvbGUgTElFIHdpdGhvdXQgZXZlciB0YWxraW5n
IHRvIG1lIGFuZCBpdCBpbnRlcm9wJ2VkIGRheSBvbmUgd2l0aG91dCBwcm9ibGVtcy4gDQogDQoN
CiBXaGVuIHlvdSdyZSByZWFkeSB3aXRoIHlvdXIgaW1wbGVtZW50YXRpb24gdG8gaW50ZXJvcCwg
QnJ1bm8ncyBjb2RlIGhhcyBuaWNlIGZyYW1ld29yayB5b3UgY2FuIHBsdWcgaW4gYWdhaW5zdCBv
cGVuIHNvdXJjZSAmIEp1bmlwZXIgaW1wbGVtZW50YXRpb24gZWFzaWx5IA0KIA0KDQogLS0tIHRv
bnkgDQogDQoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KRnJvbTogeHUuYmVuY2hvbmdA
enRlLmNvbS5jbiA8eHUuYmVuY2hvbmdAenRlLmNvbS5jbj4NCiBTZW50OiBUdWVzZGF5LCBKdWx5
IDksIDIwMTkgNTowOCBBTQ0KIFRvOiBBbnRvbmkgUHJ6eWdpZW5kYTsgSmVmZnJleSAoWmhhb2h1
aSkgWmhhbmc7IEVYVC16aGFuZy56aGVuZ0B6dGUuY29tLmNuDQogU3ViamVjdDogW1JpZnRdIElw
djQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdCAgDQoNCg0KDQoNCg0KSGkgDQoNCg0KSSBo
YXZlIHNvbWUgcXVlc3Rpb25zIGFib3V0IGlwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlm
dC4NCg0KDQpJcCBoZWFkIG9mIHRoZSByaWZ0IHBhY2tldCBjYW4gYmUgVjQgb3IgVjYsIGFuZCB0
aGUgcHJlZml4IGluIFRJRSBhbHNvIHN1cG9ydCBWNCBvciB2Ni4gDQoNCg0KQ2FuIGl0IHN1cHBv
cnQgdGhlIGZvbGxvd2luZyBzaXR1YXRpb25zOg0KDQoNCiANCg0KDQox44CBQSByaWZ0IGludGVy
ZmFjZSB3aGljaCBzZW5kIExJRSB3aXRoIGlwdjQgaGVhZCByZWNlaXZpbmcgTElFIHdpdGggSVB2
NiBoZWFkOw0KDQoNCkEgcmlmdCBpbnRlcmZhY2Ugd2hpY2ggc2VuZCBMSUUgd2l0aCBpcHY2IGhl
YWQgcmVjZWl2aW5nIExJRSB3aXRoIElQdjQgaGVhZDsNCg0KDQpDYW4gdGhleSBidWlsZCAzLVdh
eSBuZWlnaGJvcj8NCg0KDQogDQoNCg0KMuOAgVNvbWUgaW50ZXJmYWNlcyBpbiBhIHJpZnQgaW5z
dGFuY2Ugc2VuZCBpcHY0IGhlYWQgcGFja2V0c++8jCBhbmQgb3RoZXJzIGluIHRoZSBzYW1lIGlu
c3RhbmNlIHNlbmQgaXB2NiBoZWFkIHBhY2tldHPvvJsNCg0KDQogDQoNCg0KM+OAgUlwdjQgaGVh
ZCBUSUUgcGFja2V0IGZpbGwgaXB2NiBwcmVmaXjvvJsNCg0KDQogICBJcHY2IGhlYWQgVElFIHBh
Y2tldCBmaWxsIGlwdjQgcHJlZml477ybKFJJRlQtMDYgNS4yLjI6IEFsbCBSSUZUIHJvdXRlcnMg
TVVTVCBzdXBwb3J0IElQdjQgZm9yd2FyZGluZyBhbmQgTUFZIHN1cHBvcnQgSVB2Ng0KDQoNCiAg
IGZvcndhcmRpbmcuICBBIHRocmVlIHdheSBhZGphY2VuY3kgb3ZlciBJUHY2IGFkZHJlc3NlcyBp
bXBsaWVzDQoNCg0KICAgc3VwcG9ydCBmb3IgSVB2NCBmb3J3YXJkaW5nLikNCg0KDQogDQoNCg0K
NOOAgUluIHJpYiB0YWJsZSBvZiB0aGUgcmlmdDoNCg0KDQogICBJcHY0IGRlc3RpbmF0aW9uIHdp
dGggaXB2NiBuZXh0aG9wOw0KDQoNCiAgIElwdjYgZGVzdGluYXRpb24gd2l0aCBpcHY0IG5leHRo
b3A7IA0KDQoNCiAgIElwdjQgZGVzdGluYXRpb24gd2l0aCBib3RoIGlwdjQgbmV4dGhvcCBhbmQg
aXB2NiBuZXh0aG9wOw0KDQoNCiAgIElwdjYgZGVzdGluYXRpb24gd2l0aCBib3RoIGlwdjQgbmV4
dGhvcCBhbmQgaXB2NiBuZXh0aG9wOw0KDQoNCiAgIA0KDQoNCjXjgIFUaGUgaXAgaGVhZCB0eXBl
KHY0IG9yIHY2KSBjYW4gYmUgY29uZmlndXJlZCBpbiByaWZ0IGludGVyZmFjZSBvciBpbnN0YW5j
ZS4NCg0KDQoNCiANCg0KDQpJdCB3aWxsIGJlIGJldHRlciBpZiB0aGVyZSBhcmUgY2xlYXIgaW5z
dHJ1Y3Rpb25zIGluIHJpZnQgcHJvdG9jb2wuDQoNCg0KIA0KDQoNClRoYW5rc++8gQ0KDQoNCkJl
bmNob25n


--=====_003_next=====
Content-Type: text/html ;
	charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBjbGFzcz0iemNvbnRlbnRSb3ciPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LWZh
bWlseTphcmlhbDsiPjxicj48L3A+PHA+VG9ueTwvcD48cD5JIGdldCB0aGUgcnVsZSBub3csIHRo
YW5rIHlvdSE8L3A+PHA+SXQgc2hvdWxkIHNlbmQgbXVsdGkgbGllcyBpbiBzYW1lIGludGVyZmFj
ZSB3aXRoIGRpZmZlcmVudCBzb3VyY2UgYWRkcmVzcyBpbmNsdWRlIHY0IGFuZCB2NiB3aGljaCB3
ZSB3YW50IHRvIHVzZSB0aGUgYWRkcmVzcyBhcyBhIGdhdGV3YXkuIEl0IGNvbmZ1c2VkIG1lIGlu
IHRoZSBwcmV2aW91cyBkaXNjdXNzaW9uIGFuZCBJIGRpZCd0IGZpbmQgaXQgaW4gdGhlIHByb3Rv
Y29sLiBJdCBpcyBkaWZmZXJlbnQgd2l0aCBvdGhlciBwcm90b2NvbHMuIEJydW5vJ3MgY29kZSBo
YXMgYWxyZWFkeSBpbXBsZW1lbnRlZC48L3A+PHA+SW4gdGhpcyBjYXNlLCB0aGUgMy13YXkgc3Rh
dGUgc3dpdGNoaW5nJm5ic3A7Zm9yd29yZCB0aGUgcnVsZSBpbiA1LjIuMiZuYnNwOzwvcD48cD4i
PC9wPjxwPk9ic2VydmUgZnVydGhlciB0aGF0IHRoZSBwcm90b2NvbCBkb2VzIE5PVCBzdXBwb3J0
IHNlbGVjdGl2ZTwvcD48cD4mbmJzcDsgJm5ic3A7ZGlzYWJsaW5nIG9mIGFkZHJlc3MgZmFtaWxp
ZXMgb3IgYW55IGxvY2FsIGFkZHJlc3MgY2hhbmdlcyBpbiB0aHJlZTwvcD48cD4mbmJzcDsgJm5i
c3A7d2F5IHN0YXRlLCBpLmUuIGlmIGEgbGluayBoYXMgZW50ZXJlZCB0aHJlZSB3YXkgSVB2NCBh
bmQvb3IgSVB2NiB3aXRoPC9wPjxwPiZuYnNwOyAmbmJzcDthIG5laWdoYm9yIG9uIGFuIGFkamFj
ZW5jeSBhbmQgaXQgd2FudHMgdG8gc3RvcCBzdXBwb3J0aW5nIG9uZSBvZiB0aGU8L3A+PHA+Jm5i
c3A7ICZuYnNwO2ZhbWlsaWVzIG9yIGNoYW5nZSBhbnkgb2YgaXRzIGxvY2FsIGFkZHJlc3Nlcywg
aXQgaGFzIHRvIHRlYXIgZG93bjwvcD48cD4mbmJzcDsgJm5ic3A7YW5kIHJlYnVpbGQgdGhlIGFk
amFjZW5jeS4gJm5ic3A7SXQgYWxzbyBoYXMgdG8gcmVtb3ZlIGFueSBpbmZvcm1hdGlvbiBpdDwv
cD48cD4mbmJzcDsgJm5ic3A7c3RvcmVkIGFib3V0IGFkamFjZW5jeSdzJyBMSUUgc291cmNlIGFk
ZHJlc3NlcyBzZWVuLjwvcD48cD4iPC9wPjxwPlRoZW4gdGhlIG5leHRob3Agc2VsZWN0aW9uIG9m
IHRoZSByaWIgdGFibGUgZGVwZW5kcyBvbiB0aGUgZGV2aWNlIGl0c2VsZiBhbmQgSSBzdXBwb3J0
IHRoaXMuPC9wPjxwPjxicj48L3A+PHA+dGhhbmsgeW91ITwvcD48cD5CZW5jaG9uZzwvcD48cCBz
dHlsZT0iZm9udC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6YXJpYWw7Ij48YnI+PC9wPjxkaXY+PGRp
diBjbGFzcz0iemhpc3RvcnlSb3ciIHN0eWxlPSJkaXNwbGF5OmJsb2NrIj48ZGl2IGNsYXNzPSJ6
aGlzdG9yeURlcyIgc3R5bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDI4cHg7IGxpbmUtaGVpZ2h0
OiAyOHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjRTBFNUU5OyBjb2xvcjogIzEzODhGRjsgdGV4dC1h
bGlnbjogY2VudGVyOyIgbGFuZ3VhZ2UtZGF0YT0iSGlzdG9yeU9yZ1R4dCI+5Y6f5aeL6YKu5Lu2
PC9kaXY+PGRpdiBpZD0iendyaXRlSGlzdG9yeUNvbnRhaW5lciI+PGRpdiBjbGFzcz0iY29udHJv
bC1ncm91cCB6aGlzdG9yeVBhbmVsIj48ZGl2IGNsYXNzPSJ6aGlzdG9yeUhlYWRlciIgc3R5bGU9
InBhZGRpbmc6IDhweDsgYmFja2dyb3VuZC1jb2xvcjogI0Y1RjZGODsiPjxkaXY+PHN0cm9uZyBs
YW5ndWFnZS1kYXRhPSJIaXN0b3J5U2VuZGVyVHh0Ij7lj5Hku7bkurrvvJo8L3N0cm9uZz48c3Bh
biBjbGFzcz0ienJlYWRVc2VyTmFtZSI+QW50b25pUHJ6eWdpZW5kYSAmbHQ7cHJ6QGp1bmlwZXIu
bmV0Jmd0Ozwvc3Bhbj48L2Rpdj48ZGl2PjxzdHJvbmcgbGFuZ3VhZ2UtZGF0YT0iSGlzdG9yeVRP
VHh0Ij7mlLbku7bkurrvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ienJlYWRVc2VyTmFtZSIgc3R5
bGU9ImRpc3BsYXk6IGlubGluZTsiPuW+kOacrOW0hzEwMDY1MDUzOzwvc3Bhbj48c3BhbiBjbGFz
cz0ienJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsiPmJydW5vcmlqc21hbkBn
bWFpbC5jb20gJmx0O2JydW5vcmlqc21hbkBnbWFpbC5jb20mZ3Q7Ozwvc3Bhbj48c3BhbiBjbGFz
cz0ienJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsiPnJpZnRAaWV0Zi5vcmcg
Jmx0O3JpZnRAaWV0Zi5vcmcmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2PjxzdHJvbmcgbGFuZ3VhZ2Ut
ZGF0YT0iSGlzdG9yeURhdGVUeHQiPuaXpSDmnJ8g77yaPC9zdHJvbmc+PHNwYW4gY2xhc3M9IiI+
MjAxOeW5tDA35pyIMTLml6UgMDA6Mzg8L3NwYW4+PC9kaXY+PGRpdj48c3Ryb25nIGxhbmd1YWdl
LWRhdGE9Ikhpc3RvcnlTdWJqZWN0VHh0Ij7kuLsg6aKYIO+8mjwvc3Ryb25nPjxzcGFuIGNsYXNz
PSJ6cmVhZFRpdGxlIj48c3Ryb25nPlJlOiBGdzpSZTogUmU6W1JpZnRdIElwdjQgYW5kIGlwdjYg
Y29vcGVyYXRpbmcgaW4gcmlmdDwvc3Ryb25nPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNz
PSJ6aGlzdG9yeUNvbnRlbnQiPjxkaXY+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBj
b250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9Z2IyMzEyIj48ZGl2IHN0eWxlPSJmb250LWZhbWls
eTogQ2FsaWJyaSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0
OyBjb2xvcjogcmdiKDAsIDAsIDApOyI+QmVuY2hvbmcsIGFzIHRvIHlvdXIgbGFzdCBpbnRlcnN0
aW5nIHF1ZXN0aW9uOiA8YnI+IDwvZGl2Pjxicj4gPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IENh
bGlicmksIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTJwdDsgY29s
b3I6IHJnYigwLCAwLCAwKTsiPiI8cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5
OkFyaWFsOyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1ib3R0b206MCI+SXMgaXQgcG9zc2libGUgdG8g
Z2VuZXJhdGUgYSB2YWxpZCB2NiByaWIgdGFibGUgYXMgbG9uZyBhcyB2NCBhZGRyZXNzIG9mIHRo
ZSBpbnRlZmFjZSBpcyB2YWxpZD8gQ2FuIGl0IHN1cHBvcnQgaXB2NCBhbmQgaXB2NiBkb3VibGUg
c3RhY2s/PC9wPiI8L2Rpdj48YnI+IDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBDYWxpYnJpLCBB
cmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2Io
MCwgMCwgMCk7Ij5hbnN3ZXIgaXMgInllcywgYnV0IHByYWN0aWNhbGx5IGlmIHlvdXIgaW50ZXJm
YWNlIGNhbiBmd2QnIElQdjYgZnJhbWVzIGl0IGFsc28gcnVucyBORCBzbyB5b3Ugd2lsbCBoYXZl
IGEgdjYgbGluayBsb2NhbCB3aGljaCBzZWVtcyBtdWNoIG1vcmUgbmF0dXJhbCBhcyBuZXh0LWhv
cCByYXRoZXIgdGhhbiBtYWx0cmVhdCB2NCBhZGRyZXNzZXMgdG8gYnVpbGQgdjYgbmV4dC1ob3Bz
IGZyb20gOy0pIFVubGVzcyB5b3UgaGF2ZSBzb21lIGZ1bmt5IHNpbGljb24gJm5ic3A7bGltaXRh
dGlvbnMgd2hlcmUgc3VjaCBhIHRoaW5nIGlzIGEgZ29vZCB0aGluZyA7LSkgPGJyPiA8L2Rpdj48
YnI+IDxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBDYWxpYnJpLCBBcmlhbCwgSGVsdmV0aWNhLCBz
YW5zLXNlcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiByZ2IoMCwgMCwgMCk7Ij5TbywgeW91
IHNlZSB3aHkgdGhlIHNwZWMgaXMgd3JpdHRlbiB0byB0aGUgcG9pbnQgaXQncyB3cml0dGVuIGFu
ZCBzaWxlbnQgb24gc3BlY2lmaWNhdGlvbiBob3cgdG8gcHJlY2lzZWx5IGJ1aWxkIG5leHQtaG9w
cy9nYXRld2F5cy4gSXQgY2FuIGJlIGltcGxlbWVudGVkIGluIGNvdXBsZSBkaWZmZXJlbnQgd2F5
cyB3aGljaCBhcmUgdmVyeSBjbG9zZSB0byBpbXBsZW1lbnRhdGlvbiB0ZWNobmlxdWVzL0hXIHVz
ZWQgc28gdHJ5aW5nIHRvIG5haWwgdGhhdCAmbmJzcDtpbiBwcm90b2NvbCBzcGVjIHdvdWxkIGJl
IG92ZXItc3BlY2lmaWNhdGlvbiB3aGljaCBpcyBhbG1vc3QgYXMgYmFkIGFzIHVuZGVyLXNwZWNp
ZmljYXRpb24gLi4uIDxicj4gPC9kaXY+PGJyPiA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTogQ2Fs
aWJyaSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyBjb2xv
cjogcmdiKDAsIDAsIDApOyI+LS0tIHRvbnkgPGJyPiA8L2Rpdj48aHIgc3R5bGU9ImRpc3BsYXk6
aW5saW5lLWJsb2NrO3dpZHRoOjk4JSIgdGFiaW5kZXg9Ii0xIj48ZGl2IGlkPSJkaXZScGx5Rndk
TXNnIiBkaXI9Imx0ciI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNhbGlicmksIHNhbnMtc2Vy
aWY7Zm9udC1zaXplOjExcHQ7Y29sb3I6IzAwMDAwMCI+PHN0cm9uZz5Gcm9tOjwvc3Ryb25nPiB4
dS5iZW5jaG9uZ0B6dGUuY29tLmNuICZsdDt4dS5iZW5jaG9uZ0B6dGUuY29tLmNuJmd0Ozxicj4g
PHN0cm9uZz5TZW50Ojwvc3Ryb25nPiBUaHVyc2RheSwgSnVseSAxMSwgMjAxOSAyOjMzIEFNPGJy
PiA8c3Ryb25nPlRvOjwvc3Ryb25nPiBicnVub3JpanNtYW5AZ21haWwuY29tPGJyPiA8c3Ryb25n
PkNjOjwvc3Ryb25nPiBBbnRvbmkgUHJ6eWdpZW5kYTxicj4gPHN0cm9uZz5TdWJqZWN0Ojwvc3Ry
b25nPiBGdzpSZTogUmU6W1JpZnRdIElwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdDwv
c3Bhbj4gJm5ic3A7PC9kaXY+PGRpdj48ZGl2IGNsYXNzPSJ4X3pjb250ZW50Um93Ij48cCBzdHls
ZT0iZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OmFyaWFsIj5IaSwmbmJzcDs8c3BhbiBzdHls
ZT0iZm9udC1mYW1pbHk6Q2FsaWJyaSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1z
aXplOjE2cHg7IGxpbmUtaGVpZ2h0OjIyLjg1NzE0MzQwMjA5OTZweDsgYmFja2dyb3VuZC1jb2xv
cjpyZ2IoMjU1LDI1NSwyNTUpIj5CcnVubzwvc3Bhbj48L3A+PHAgc3R5bGU9ImZvbnQtc2l6ZTox
NHB4OyBmb250LWZhbWlseTphcmlhbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OnNhbnMtc2Vy
aWYiPkkgcmVhZCBwYXJ0IG9mIHlvdXIgUklGVCBjb2RlLCB0aGFuayB5b3UgZm9yIHlvdXIgZ3Jl
YXQgam9iITwvc3Bhbj48L3A+PHA+V2hlbiBzZW5kaW5nIExJRSBtZXNzYWdlcywgYXMgbG9uZyBh
cyB0aGVyZSBpcyBhIHY0IGFkZHJlc3MsIHY0IHdpbGwgYmUgdXNlZCBmaXJzdCwgc28gd2Ugd2ls
bCBnZXQgdjQgbmV4dCBob3AuPC9wPjxwPi0tLS0tLS0tLS08L3A+PHAgc3R5bGU9ImZvbnQtc2l6
ZToxNHB4OyBmb250LWZhbWlseTphcmlhbCI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNhbGli
cmksQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxNnB4OyBsaW5lLWhlaWdo
dDoyMi44NTcxNDM0MDIwOTk2cHg7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+
PC9zcGFuPjwvcD48cD4mbmJzcDsgJm5ic3A7IGRlZiBhY3Rpb25fc3RhcnRfZmxvb2Rpbmcoc2Vs
Zik6PC9wPjxwPjxzcGFuIGNsYXNzPSJ4X0FwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3Bh
Y2U6cHJlIj48L3NwYW4+4oCm4oCmPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyMg
Rm9yIHNlbmRpbmcgZmxvb2RpbmcgcGFja2V0cywgdXNlIHdoYXRldmVyIElQdjQgb3IgSVB2NiBh
ZGRyZXNzIHdlIHNlZSBmaXJzdCBmb3IgdGhlPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAjIG5laWdoYm9yLCBwcmVmZXJyaW5nIHRoZSBJUHY0IGFkZHJlc3MgaWYgd2Uga25vdyBi
b3RoLjwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgaWYgc2VsZi5uZWlnaGJvci5p
cHY0X2FkZHJlc3MgaXMgbm90IE5vbmU6PC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7IHNlbGYucnhfaW5mbygiU3RhcnQgSVB2NCBmbG9vZGluZzogc2VuZCB0
byBhZGRyZXNzICVzIHBvcnQgJWQiLDwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDtzZWxmLm5laWdoYm9yLmlwdjRfYWRkcmVzcywgdHhfZmxvb2RfcG9ydCk8L3A+PHA+Jm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc2VsZi5fZmxvb2RfdHhfaXB2
NF9zb2NrZXQgPSBzZWxmLmNyZWF0ZV9zb2NrZXRfaXB2NF90eF91Y2FzdCg8L3A+PHA+Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyByZW1vdGVf
YWRkcmVzcz1zZWxmLm5laWdoYm9yLmlwdjRfYWRkcmVzcyw8L3A+PHA+Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBwb3J0PXR4X2Zsb29kX3Bv
cnQpPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBlbHNlOjwvcD48cD4mbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhc3NlcnQgc2VsZi5uZWlnaGJvci5p
cHY2X2FkZHJlc3MgaXMgbm90IE5vbmU8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgc2NvcGVkX2lwdjZfYWRkcmVzcyA9IHNlbGYubmVpZ2hib3IuaXB2Nl9h
ZGRyZXNzPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGlm
ICIlIiBub3QgaW4gc2VsZi5uZWlnaGJvci5pcHY2X2FkZHJlc3M6PC9wPjxwPiZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc2NvcGVkX2lwdjZf
YWRkcmVzcyArPSAiJSIgKyBzZWxmLnBoeXNpY2FsX2ludGVyZmFjZV9uYW1lPC9wPjxwPiZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHNlbGYucnhfaW5mbygiU3RhcnQg
SVB2NiBmbG9vZGluZzogc2VuZCB0byBhZGRyZXNzICVzIHBvcnQgJWQiLDwvcD48cD4mbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzY29wZWRfaXB2Nl9hZGRyZXNzLCB0eF9mbG9vZF9w
b3J0KTwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBzZWxm
Ll9mbG9vZF90eF9pcHY2X3NvY2tldCA9IHNlbGYuY3JlYXRlX3NvY2tldF9pcHY2X3R4X3VjYXN0
KDwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IHJlbW90ZV9hZGRyZXNzPXNjb3BlZF9pcHY2X2FkZHJlc3MsPC9wPjxwPiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcG9ydD10eF9m
bG9vZF9wb3J0KTwvcD48cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OmFyaWFs
Ij5TUEYgY2FsY3VsYXRpb24gd2lsbCBjYWxjdWxhdGUgdGhlIG5leHRob3Agb2YgdjQgYW5kIHY2
IGF0IHRoZSBzYW1lIHRpbWUuPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkNhbGlicmksQXJpYWws
SGVsdmV0aWNhLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxNnB4OyBsaW5lLWhlaWdodDoyMi44NTcx
NDM0MDIwOTk2cHg7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+PGJyPiA8L3Nw
YW4+PC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDsgZm9udC1mYW1pbHk6YXJpYWwiPi0tLS0t
LS0tLS0tLS0tLS0tPC9wPjxwPiZuYnNwOyAmbmJzcDsgZGVmIHNldF9zcGZfcHJlZGVjZXNzb3Io
c2VsZiwgZGVzdGluYXRpb24sIG5icl90aWVfZWxlbWVudCwgcHJlZGVjZXNzb3Jfc3lzdGVtX2lk
LDwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHNwZl9kaXJl
Y3Rpb24pOjwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZGVzdGluYXRpb24uYWRk
X3ByZWRlY2Vzc29yKHByZWRlY2Vzc29yX3N5c3RlbV9pZCk8L3A+PHA+Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7IGlmIChuYnJfdGllX2VsZW1lbnQgaXMgbm90IE5vbmUpIGFuZCAocHJlZGVj
ZXNzb3Jfc3lzdGVtX2lkID09IHNlbGYuc3lzdGVtX2lkKTo8L3A+PHA+Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZm9yIGxpbmtfaWRfcGFpciBpbiBuYnJfdGllX2Vs
ZW1lbnQubGlua19pZHM6PC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgbmhvcCA9IHNlbGYuaW50ZXJmYWNlX2lkX3RvX2lwdjRfbmV4
dF9ob3AobGlua19pZF9wYWlyLmxvY2FsX2lkKTwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGlmIG5ob3A6PC9wPjxwPiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyBkZXN0aW5hdGlvbi5hZGRfaXB2NF9uZXh0X2hvcChuaG9wKTwvcD48cD4mbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IG5ob3AgPSBzZWxm
LmludGVyZmFjZV9pZF90b19pcHY2X25leHRfaG9wKGxpbmtfaWRfcGFpci5sb2NhbF9pZCk8L3A+
PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyBpZiBuaG9wOjwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZGVzdGluYXRpb24uYWRkX2lwdjZfbmV4dF9o
b3AobmhvcCk8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGVsc2U6PC9wPjxwPiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGRlc3RfdGFibGUgPSBzZWxm
Ll9zcGZfZGVzdGluYXRpb25zW3NwZl9kaXJlY3Rpb25dPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGRlc3RpbmF0aW9uLmluaGVyaXRfbmV4dF9ob3BzKGRl
c3RfdGFibGVbcHJlZGVjZXNzb3Jfc3lzdGVtX2lkXSk8L3A+PHAgc3R5bGU9ImZvbnQtc2l6ZTox
NHB4OyBmb250LWZhbWlseTphcmlhbCI+VGhlIFJJQiB0YWJsZSBvbmx5IHNlbGVjdHMgdGhlIHNh
bWUgQUYgbmV4dGhvcDwvcD48cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OmFy
aWFsIj4tLS0tLS0tLS0tLS0tLTwvcD48cD4mbmJzcDsgJm5ic3A7IGRlZiBzcGZfaW5zdGFsbF9y
b3V0ZXNfaW5fcmliKHNlbGYsIHNwZl9kaXJlY3Rpb24pOjwvcD48cD4mbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsg4oCm4oCmPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcHJlZml4ID0gZGVzdF9rZXk8L3A+PHA+Jm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBpZiBwcmVmaXgu
aXB2NHByZWZpeCBpcyBub3QgTm9uZTo8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IG5leHRfaG9wcyA9IGRl
c3QuaXB2NF9uZXh0X2hvcHM8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHJvdXRlX3RhYmxlID0gc2VsZi5f
aXB2NF9yaWI8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyBlbHNlOjwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgYXNzZXJ0IHByZWZpeC5pcHY2
cHJlZml4IGlzIG5vdCBOb25lPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBuZXh0X2hvcHMgPSBkZXN0Lmlw
djZfbmV4dF9ob3BzPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyByb3V0ZV90YWJsZSA9IHNlbGYuX2lwdjZf
cmliPC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgaWYgbmV4dF9ob3BzOjwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcnRlID0gcm91dGUuUm91
dGUocHJlZml4LCBvd25lciwgbmV4dF9ob3BzKTwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcm91dGVfdGFi
bGUucHV0X3JvdXRlKHJ0ZSk8L3A+PHAgc3R5bGU9ImZvbnQtc2l6ZToxNHB4OyBmb250LWZhbWls
eTphcmlhbCI+SXMgaXQgcG9zc2libGUgdG8gZ2VuZXJhdGUgYSB2YWxpZCB2NiByaWIgdGFibGUg
YXMgbG9uZyBhcyB2NCBhZGRyZXNzIG9mIHRoZSBpbnRlZmFjZSBpcyB2YWxpZD8gQ2FuIGl0IHN1
cHBvcnQgaXB2NCBhbmQgaXB2NiBkb3VibGUgc3RhY2s/PC9wPjxwIHN0eWxlPSJmb250LXNpemU6
MTRweDsgZm9udC1mYW1pbHk6YXJpYWwiPlRoYW5rcyE8YnI+IDwvcD48cCBzdHlsZT0iZm9udC1z
aXplOjE0cHg7IGZvbnQtZmFtaWx5OmFyaWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6YXJp
YWw7IGxpbmUtaGVpZ2h0OjIxcHgiPkJlbmNob25nPC9zcGFuPjwvcD48cCBzdHlsZT0iZm9udC1z
aXplOjE0cHg7IGZvbnQtZmFtaWx5OmFyaWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6YXJp
YWw7IGxpbmUtaGVpZ2h0OjIxcHgiPjxicj4gPC9zcGFuPjwvcD48ZGl2PjxkaXYgY2xhc3M9Inhf
emhpc3RvcnlSb3ciIHN0eWxlPSJkaXNwbGF5OmJsb2NrIj48ZGl2IGNsYXNzPSJ4X3poaXN0b3J5
RGVzIiBzdHlsZT0id2lkdGg6MTAwJTsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjI4cHg7IGJh
Y2tncm91bmQtY29sb3I6I0UwRTVFOTsgY29sb3I6IzEzODhGRjsgdGV4dC1hbGlnbjpjZW50ZXIi
PuWOn+Wni+mCruS7tjwvZGl2PjxkaXYgaWQ9InhfendyaXRlSGlzdG9yeUNvbnRhaW5lciI+PGRp
diBjbGFzcz0ieF9jb250cm9sLWdyb3VwIHhfemhpc3RvcnlQYW5lbCI+PGRpdiBjbGFzcz0ieF96
aGlzdG9yeUhlYWRlciIgc3R5bGU9InBhZGRpbmc6OHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNGNUY2
RjgiPjxkaXY+PHN0cm9uZz7lj5Hku7bkurrvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ieF96cmVh
ZFVzZXJOYW1lIj5BbnRvbmlQcnp5Z2llbmRhICZsdDtwcnpAanVuaXBlci5uZXQmZ3Q7PC9zcGFu
PjwvZGl2PjxkaXY+PHN0cm9uZz7mlLbku7bkurrvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ieF96
cmVhZFVzZXJOYW1lIiBzdHlsZT0iZGlzcGxheTppbmxpbmUiPuW+kOacrOW0hzEwMDY1MDUzOzwv
c3Bhbj48L2Rpdj48ZGl2PjxzdHJvbmc+5oqE6YCB5Lq677yaPC9zdHJvbmc+PHNwYW4gY2xhc3M9
InhfenJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj5KZWZmcmV5IChaaGFvaHVp
KSBaaGFuZyAmbHQ7enpoYW5nQGp1bmlwZXIubmV0Jmd0Ozs8L3NwYW4+PHNwYW4gY2xhc3M9Inhf
enJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj7lvKDlvoEwMDAwNzk0MDs8L3Nw
YW4+PHNwYW4gY2xhc3M9InhfenJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj5y
aWZ0QGlldGYub3JnICZuYnNwOyZsdDtyaWZ0QGlldGYub3JnJmd0Ozs8L3NwYW4+PC9kaXY+PGRp
dj48c3Ryb25nPuaXpSDmnJ8g77yaPC9zdHJvbmc+PHNwYW4gY2xhc3M9IiI+MjAxOeW5tDA35pyI
MTHml6UgMTE6NTI8L3NwYW4+PC9kaXY+PGRpdj48c3Ryb25nPuS4uyDpopgg77yaPC9zdHJvbmc+
PHNwYW4gY2xhc3M9InhfenJlYWRUaXRsZSI+PHN0cm9uZz5SZTogUmU6W1JpZnRdIElwdjQgYW5k
IGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdDwvc3Ryb25nPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2
IGNsYXNzPSJ4X3poaXN0b3J5Q29udGVudCI+PGRpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTpD
YWxpYnJpLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJwdDsgY29sb3I6
cmdiKDAsMCwwKSI+QmVuY2hvbmcsIHdoYXQgeW91IHNlZW0gdG8gdGFsayBhYm91dCBpcyBvcmln
aW5hdGluZyBwYWNrZXRzIGFuZCBpdCdzIHRoZSBzb3VyY2UgdGhhdCBkZWNpZGVzIHdoZXRoZXIg
aXQgc2VuZHMgdjQgb3IgdjYgYW5kIHRoZSBJUCBmYWJyaWMgd2l0aCBSSUZUIGp1c3QgZm9yd2Fy
ZHMgdGhlIHBhY2tldCwgaXQgY2Fubm90IGNoYW5nZSBpbiB0aGUgbWlkZGxlIHRoZSBJUCBhZGRy
ZXNzIGZhbWlseSBpbiB3aGljaCB0aGUgcGFja2V0IGlzIGNhcnJpZWQgJm5ic3A7Jm5ic3A7b2J2
aW91c2x5IHNvIHRoZXJlIGlzIG5vIGRlY2lzaW9uIHRvIGJlIG1hZGUgd2hpY2ggSVAgQUYgaXMg
dXNlZCwgb25seSB3aGljaCBHVyBuZWVkcyB0byBiZSBpbnN0YWxsZWQgb24gdGhlIHJvdXRlIG5l
eHRob3AuIEJ1dCB5ZXMsIGFuIGltcGxlbWVudGF0b24gY2FuIGNob29zZSB0byBmb3J3YXJkIHY0
IHBhY2tldHMgdXNpbmcgdGhlIE1BQyBhZGRyZXNzIG9mIGEgdjYgZ2F0ZXdheSwgYSBoaWdobHkg
ZGVzaXJhYmxlIGJlaGF2aW9yIHNpbmNlICZuYnNwOyZuYnNwO3dpdGggdGhhdCwgdGhlIGZhYnJp
YyBjYW4gYmUgY29tcGxldGVseSBnbG9iYWwgYWRkcmVzcyBmcmVlIHdpdGhvdXQgYW55IGNvbmZp
ZyAoanVzdCBORCkgYW5kIGRvIHY0IGZpbmUuJm5ic3A7IDxicj4gPC9kaXY+PGJyPiA8ZGl2IHN0
eWxlPSJmb250LWZhbWlseTpDYWxpYnJpLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250
LXNpemU6MTJwdDsgY29sb3I6cmdiKDAsMCwwKSI+eWVzLCBhbiBpbXBsZW1lbnRhdGlvbiBtYXkg
Y2hvb3NlIHRvIHByZWZlciB2NCBHVyBmb3IgdjQgcGFja2V0cyBhbmQgdjYgR1cgZm9yIHY2IHBh
Y2tldHMgYnV0IG5vcm1hbGx5IGl0J3MgdGhlIHNhbWUgTUFDIHVubGVzcyB0aGUgZGVwbG95bWVu
dCBpcyB2ZXJ5IHN0cmFuZ2UgQCB3aGljaCBwb2ludCBrbm9icyB0byBjb250cm9sIHRoYXQgbWF5
IGJlIG5lY2Vzc2FyeSwgc29tZXRoaW5nIHdoaWNoIGlzIGltcGxlbWVudGF0aW9uIHNwZWNpZmlj
LiA8YnI+IDwvZGl2Pjxicj4gPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6Q2FsaWJyaSxBcmlhbCxI
ZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOjEycHQ7IGNvbG9yOnJnYigwLDAsMCkiPlNv
IFJJRlQganVzdCBmbG9vZHMgdGhlIFRJRXMgb24gYW55IEFGIHdpdGggcHJlZml4ZXMgb2YgYWxs
IEFGcywgdGhlIGNvbXB1dGF0aW9uIGNvbXB1dGVzIHRoZSByb3V0ZSB3aXRoIGRpcmVjdGx5IGF0
dGFjaGVkIG5leHQtaG9wIHdoaWNoIGhhcyB0byByZXNvbHZlIHRvIE1BQyBpbiBhbnkgQUYgcmVh
bGx5IGFuZCB0aGVuIHBhY2tldCBjYW4gYmUgZm9yd2FyZGVkIC4uLiA8YnI+IDwvZGl2Pjxicj4g
PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6Q2FsaWJyaSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJp
ZjsgZm9udC1zaXplOjEycHQ7IGNvbG9yOnJnYigwLDAsMCkiPmltcGxlbWVudCBpdCBhbmQgcGxh
eSB3aXRoIGl0LCB3ZSBoYXZlIEAgbGVhc3QgMiBpbXBsZW1lbnRhdGlvbnMgYWxyZWFkeSB0aGF0
IHdvcmsgZmluZSBkb2luZyB0aGF0IC4uLiA8YnI+IDwvZGl2Pjxicj4gPGRpdiBzdHlsZT0iZm9u
dC1mYW1pbHk6Q2FsaWJyaSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOjEy
cHQ7IGNvbG9yOnJnYigwLDAsMCkiPlllcywgdGhlIGNsb3Nlc3QgYW5hbG9neSBpcyB2NCBpbiBC
R1Agd2l0aCB2NiBuZXh0aG9wcyBpZiB5b3UgcmVhbGx5IHdhbnQgdG8gdGhpbmsgdGhhdCB3YXkg
YnV0IFJJRlQgaXMgbXVjaCBzaW1wbGVyIHNpbmNlIHRoZSBuaG9wIGlzIGFsd2F5cyBkaXJlY3Rs
eSBjb25uZWN0ZWQgYW5kIHdlIGRvbid0IHRhbGsgYWJvdXQgYW55dGhpbmcgbGlrZSB2NG92NiBv
ciB2Nm92NCB0dW5uZWxpbmcgYW5kIHNvIG9uIC4uLiA8YnI+IDwvZGl2Pjxicj4gPGRpdiBzdHls
ZT0iZm9udC1mYW1pbHk6Q2FsaWJyaSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgZm9udC1z
aXplOjEycHQ7IGNvbG9yOnJnYigwLDAsMCkiPm1ha2VzIHNlbnNlPyA8YnI+IDwvZGl2Pjxicj4g
PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6Q2FsaWJyaSxBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJp
ZjsgZm9udC1zaXplOjEycHQ7IGNvbG9yOnJnYigwLDAsMCkiPi0tLSB0b255IDxicj4gPC9kaXY+
PGJyPiA8ZGl2Pjxicj4gPGhyIHRhYmluZGV4PSItMSIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJs
b2NrOyB3aWR0aDo5OCUiPjxkaXYgaWQ9InhfZGl2UnBseUZ3ZE1zZyIgZGlyPSJsdHIiPjxzcGFu
IHN0eWxlPSJmb250LXNpemU6MTFwdDsgZm9udC1mYW1pbHk6Q2FsaWJyaSxzYW5zLXNlcmlmOyBj
b2xvcjojMDAwMDAwIj48c3Ryb25nPkZyb206PC9zdHJvbmc+IHh1LmJlbmNob25nQHp0ZS5jb20u
Y24gJmx0O3h1LmJlbmNob25nQHp0ZS5jb20uY24mZ3Q7PGJyPiA8c3Ryb25nPlNlbnQ6PC9zdHJv
bmc+IFdlZG5lc2RheSwgSnVseSAxMCwgMjAxOSA4OjM5IFBNPGJyPiA8c3Ryb25nPlRvOjwvc3Ry
b25nPiBBbnRvbmkgUHJ6eWdpZW5kYTxicj4gPHN0cm9uZz5DYzo8L3N0cm9uZz4gSmVmZnJleSAo
Wmhhb2h1aSkgWmhhbmc7IEVYVC16aGFuZy56aGVuZ0B6dGUuY29tLmNuOyByaWZ0QGlldGYub3Jn
PGJyPiA8c3Ryb25nPlN1YmplY3Q6PC9zdHJvbmc+IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNv
b3BlcmF0aW5nIGluIHJpZnQ8L3NwYW4+ICZuYnNwOzwvZGl2PjxkaXY+PGRpdiBjbGFzcz0ieF94
X3pjb250ZW50Um93Ij48cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OmFyaWFs
Ij5IaSB0b255PC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDsgZm9udC1mYW1pbHk6YXJpYWwi
PlRoYW5rcyBmb3IgeW91ciBleHBsYW5hdGlvbiwgYW5kIEkgaGF2ZSBhbHJlYWR5IHVuZGVyc3Rv
b2QgeW91ciBvcGluaW9uIG9uIHY0djYgZm9yd2FyZGluZy48L3A+PHA+VGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiBSSUZUIGFuZCBvdGhlciByb3V0aW5nIHByb3RvY29scyBpcyB0aGUgY29uc2lzdGVu
Y3kgb2YgcGFja2V0cyBBRiBhbmQgcm91dGVzIEFGLiBJc2lzIGlzIGluIEwyIGVuY2Fwc3VsYXRp
b24gdGhhdCBzb2x2ZXMgZGlmZmVyZW50IGFkZHJlc3MgZmFtaWxpZXMgdGhyb3VnaCBtdWx0aXBs
ZSB0b3BvbG9naWVzLiBPc3BmIGFuZCByaXAgYXJlIHN0cmljdGx5IGRpc3Rpbmd1aXNoZWQgaW4g
djR2Ni4gUmlmdCAmbmJzcDsmbmJzcDtpcyBhY3R1YWxseSBjbG9zZXIgdG8gQkdQLjwvcD48cD5X
aGVuIHRoZSBpbnRlcmZhY2UgaGFzIGJvdGggdjQgYW5kIHY2IGFkZHJlc3NlcyAob3IgTkQgZW5h
YmxlZCksIHRoZSBwcm90b2NvbCB1c2VzIHY0IG9yIHY2IG9yIHY0djYgYWRkcmVzcyBlbmNhcHN1
bGF0aW9uLiBJdCB3aWxsIGJlIGJldHRlciBpZiBwcm90b2NvbCBnYXZlIHRoZSByZWNvbW1lbmRl
ZCBiZWhhdmlvci4gT3RoZXJ3aXNlLCBkaWZmZXJlbnQgcGVvcGxlIHdpbGwgZ2l2ZSBkaWZmZXJl
bnQgc29sdXRpb25zLCB3aGljaCB3aWxsICZuYnNwOyZuYnNwO2NhdXNlIHByb3RvY29sIGNvbmZv
cm1hbmNlIHByb2JsZW0uJm5ic3A7PC9wPjxwPlRoZSBvcHRpb25zIHdlIGNhbiBjaG9vc2UgYXJl
OjwvcD48cD5hKSBORCBlbmFibGUgdjYgZmlyc3Q6PC9wPjxwPklmIHY2IGFkZHJlc3MgdmFsaWQg
QU5EIE5EIGVuYWJsZTo8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDtWNiBwYWNrZXQ8L3A+PHA+
RWxzZSBpZiB2NCBhZGRyZXNzIHZhbGlkOjwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwO1Y0IHBh
Y2tldDwvcD48cD5iKSB2NCBmaXJzdDwvcD48cD5JZiB2NCBhZGRyZXNzIHZhbGlkOjwvcD48cD4m
bmJzcDsgJm5ic3A7ICZuYnNwO1Y0IHBhY2tldDwvcD48cD5FbHNlIGlmIHY2IGFkZHJlc3MgdmFs
aWQoQU5EIE5EIGVuYWJsZSk6PC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7VjYgcGFja2V0PC9w
PjxwPmMpIGNvZXhpc3RlbmNlIG9mIHY0djY8L3A+PHA+SWYgdjQgYWRkcmVzcyB2YWxpZDo8L3A+
PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDtWNCBwYWNrZXQ8L3A+PHA+SWYgdjYgYWRkcmVzcyB2YWxp
ZChBTkQgTkQgZW5hYmxlKTo8L3A+PHA+Jm5ic3A7ICZuYnNwOyAmbmJzcDtWNiBwYWNrZXQ8L3A+
PHA+Q29uZnVzZWQgb24gYm90aCB0aGUgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHNpZGVzLjwvcD48
cD5jKSB3aWxsIGZ1cnRoZXIgaGF2ZSBhIEdXIHNlbGVjdGlvbiBwcm9ibGVtLCBwcmVmZXJyaW5n
IHRvIGNob29zZSB0aGUgbmV4dGhvcCBvZiB0aGUgc2FtZSBhZGRyZXNzIGZhbWlseSB3aXRoIHRo
ZSBwcmVmaXgsIG9yIHY0IGZpcnN0LjwvcD48cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7IGZvbnQt
ZmFtaWx5OmFyaWFsIj5JJ2QgbGlrZSB0aGUgcHJvdG9jb2wgcmVjb21tZW5kcyBhIGRlZmF1bHQg
YmVoYXZpb3IgYW5kIG1heSBwcm92aWRlcyBhIGNvbnRyb2wgbWV0aG9kIGluIHlhbmcuPC9wPjxw
IHN0eWxlPSJmb250LXNpemU6MTRweDsgZm9udC1mYW1pbHk6YXJpYWwiPlRoYW5rcyE8L3A+PHAg
c3R5bGU9ImZvbnQtc2l6ZToxNHB4OyBmb250LWZhbWlseTphcmlhbCI+QmVuY2hvbmc8L3A+PHAg
c3R5bGU9ImZvbnQtc2l6ZToxNHB4OyBmb250LWZhbWlseTphcmlhbCI+PGJyPiA8L3A+PGRpdj48
ZGl2IGNsYXNzPSJ4X3hfemhpc3RvcnlSb3ciIHN0eWxlPSJkaXNwbGF5OmJsb2NrIj48ZGl2IGNs
YXNzPSJ4X3hfemhpc3RvcnlEZXMiIHN0eWxlPSJ3aWR0aDoxMDAlOyBoZWlnaHQ6MjhweDsgbGlu
ZS1oZWlnaHQ6MjhweDsgYmFja2dyb3VuZC1jb2xvcjojRTBFNUU5OyBjb2xvcjojMTM4OEZGOyB0
ZXh0LWFsaWduOmNlbnRlciI+5Y6f5aeL6YKu5Lu2PC9kaXY+PGRpdiBpZD0ieF94X3p3cml0ZUhp
c3RvcnlDb250YWluZXIiPjxkaXYgY2xhc3M9InhfeF9jb250cm9sLWdyb3VwIHhfeF96aGlzdG9y
eVBhbmVsIj48ZGl2IGNsYXNzPSJ4X3hfemhpc3RvcnlIZWFkZXIiIHN0eWxlPSJwYWRkaW5nOjhw
eDsgYmFja2dyb3VuZC1jb2xvcjojRjVGNkY4Ij48ZGl2PjxzdHJvbmc+5Y+R5Lu25Lq677yaPC9z
dHJvbmc+PHNwYW4gY2xhc3M9InhfeF96cmVhZFVzZXJOYW1lIj5BbnRvbmlQcnp5Z2llbmRhICZs
dDtwcnpAanVuaXBlci5uZXQmZ3Q7PC9zcGFuPjwvZGl2PjxkaXY+PHN0cm9uZz7mlLbku7bkurrv
vJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ieF94X3pyZWFkVXNlck5hbWUiIHN0eWxlPSJkaXNwbGF5
OmlubGluZSI+5b6Q5pys5bSHMTAwNjUwNTM7PC9zcGFuPjwvZGl2PjxkaXY+PHN0cm9uZz7mioTp
gIHkurrvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ieF94X3pyZWFkVXNlck5hbWUiIHN0eWxlPSJk
aXNwbGF5OmlubGluZSI+SmVmZnJleSAoWmhhb2h1aSkgWmhhbmcgJmx0O3p6aGFuZ0BqdW5pcGVy
Lm5ldCZndDs7PC9zcGFuPjxzcGFuIGNsYXNzPSJ4X3hfenJlYWRVc2VyTmFtZSIgc3R5bGU9ImRp
c3BsYXk6aW5saW5lIj7lvKDlvoEwMDAwNzk0MDs8L3NwYW4+PHNwYW4gY2xhc3M9InhfeF96cmVh
ZFVzZXJOYW1lIiBzdHlsZT0iZGlzcGxheTppbmxpbmUiPnJpZnRAaWV0Zi5vcmcgJm5ic3A7Jm5i
c3A7Jmx0O3JpZnRAaWV0Zi5vcmcmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2PjxzdHJvbmc+5pelIOac
nyDvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0iIj4yMDE55bm0MDfmnIgxMOaXpSAyMzoxMjwvc3Bh
bj48L2Rpdj48ZGl2PjxzdHJvbmc+5Li7IOmimCDvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ieF94
X3pyZWFkVGl0bGUiPjxzdHJvbmc+UmU6IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0
aW5nIGluIHJpZnQ8L3N0cm9uZz48L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ieF94X3po
aXN0b3J5Q29udGVudCI+PGRpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTpDYWxpYnJpLEFyaWFs
LEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJwdDsgY29sb3I6cmdiKDAsMCwwKSI+
SGV5IEJlbmNob25nLCB0aGF0J3MgYW4gb3Zlci1pbnRlcnByZXRhdGlvbiwgdGhlIHNwZWMgaXMg
bG9vc2VyIHRoYW4gdGhhdCBidXQgYXMgZmFyIEkgc2F3IHN1ZmZpY2llbnQuIFNlY3Rpb24gNS4y
LjIuIDxicj4gPC9kaXY+PGJyPiA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpDYWxpYnJpLEFyaWFs
LEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJwdDsgY29sb3I6cmdiKDAsMCwwKSI+
YSkgU3BlY2lmaWNhdGlvbiBkb2VzIG5vdCBwcm9oaWJpdCBSSUZUIGZyb20gdXNpbmcgX2FueV8g
dmFsaWQgSVB2NiBhZGRyZXNzIG9uIHRoZSBpbnRlcmZhY2UgdG8gc2VuZCBJUHY2IExJRXMuIFRo
ZSByZWNlaXZlciBpcyBzdXBwb3NlZCB0byBwaWNrIHVwIHRoYXQgc291cmNlIGFkZHJlc3MgYW5k
IHVzZSBpdCBhcyBkZXN0aW5hdGlvbiB3aGVuIHNlbmRpbmcgTElFcyBvdmVyIHY2IGFuZC9vciBU
SUVzIHdpdGggdGhlIHJlY2V2aW5nIGludGVyZmFjZSAmbmJzcDsmbmJzcDsmbmJzcDthcyBnYXRl
d2F5LiBTcGVjaWZpY2F0aW9uIGRvZXMgTk9UIHNwZWxsIG91dCB3aGF0IGhhcHBlbnMgZS5nLiBv
biBtaXNtYXRjaGVkIElQIHN1Ym5ldHMgb24gYm90aCBzaWRlcyBhbmQgc28gb24sIHNpdHVhdGlv
biBoZXJlIGlzIHNpbWlsYXIgdG8gSVNJUyBhbmQgZGlmZmVyZW50IHNjZW5hcmlvcyBzdWNoIGFz
IHVubnVtYmVyZWQgbGlua3MgYW5kIHNvIG9uPGJyPiA8L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZh
bWlseTpDYWxpYnJpLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJwdDsg
Y29sb3I6cmdiKDAsMCwwKSI+YikgSWYgeW91IHdhbnQgdGhlICJsYXppZXN0IiBwb3NzaWJsZSBp
bXBsZW1lbnRhdGlvbiB0aGVuIGluIGZhY3QgeWVzLCB5b3UgY2FuIGZhbGwgYmFjayBvbiA8YnI+
IDwvZGl2Pjxicj4gPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6Q2FsaWJyaSxBcmlhbCxIZWx2ZXRp
Y2Esc2Fucy1zZXJpZjsgZm9udC1zaXplOjEycHQ7IGNvbG9yOnJnYigwLDAsMCkiPiIgPHByZT4g
ICBBbGwgUklGVCByb3V0ZXJzIE1VU1Qgc3VwcG9ydCBJUHY0IGZvcndhcmRpbmcgYW5kIE1BWSBz
dXBwb3J0IElQdjYgICAgZm9yd2FyZGluZy4gIEEgdGhyZWUgd2F5IGFkamFjZW5jeSBvdmVyIElQ
djYgYWRkcmVzc2VzIGltcGxpZXMgICAgc3VwcG9ydCBmb3IgSVB2NCBmb3J3YXJkaW5nLjwvcHJl
PiAiPC9kaXY+PGJyPiA8ZGl2IHN0eWxlPSJmb250LWZhbWlseTpDYWxpYnJpLEFyaWFsLEhlbHZl
dGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJwdDsgY29sb3I6cmdiKDAsMCwwKSI+d2hpY2gg
bWFrZXMgdjRvdjYgZm9yd2FyZGluZyBpbmhlcmVudCBwYXJ0IG9mIFJJRlQuIFRoYXQgYXNzdW1l
cyBob3dldmVyIHRoYXQgcmVjZWl2aW5nIG5laWdoYm9yIGRvZXMgc3VwcG9ydCBWNiAod2hpY2gg
dGhlIHNwZWMgZG9lcyBOT1QgbWFuZGF0ZSkgYW5kIG5vdGhpbmcgd2lsbCBoYXBwZW4gaWYgaXQg
ZG9lc24ndC4gVGhlcmVmb3JlIGFsbCBSSUZUIGltcGxlbWVudGF0aW9uIEkgc2F3IHNvIGZhciBz
ZW5kIGJvdGggdjQgYW5kIHY2IHdoaWNoICZuYnNwOyZuYnNwOyZuYnNwO2FsbG93cyB0aGUgbmVp
Z2hib3IgdG8gb25seSByZWNlaXZlIHY0IGFuZCBmb3J3YXJkIHVzaW5nIHY0IGdhdGV3YXlzIGlm
IGl0IGRvZXNuJ3Qgc3VwcG9ydCBWNi4gSW4gY2FzZSBib3RoIHY0IGFuZCB2NiBBRnMgYXJlIGVz
dGFibGlzaGVkLCBpdCBpcyB1cCB0byB0aGUgaW1wbGVtZW50YXRpb24gd2hpY2gvaG93IGl0IHJl
c29sdmVzIHRoZSBnYXRld2F5cyBhbmQgdGhlcmUgYXJlIG1hbnkgaW50ZXJlc3RpbmcgYWR2YW5j
ZWQgaXNzdWVzIHN1Y2ggJm5ic3A7Jm5ic3A7Jm5ic3A7YXMgbWl4dHVyZSBvZiBzcGluZXMgd2l0
aCB2NCBhbmQgdjYgbmV4dGhvcHMgYW5kIGhvdyB0byBmb3JtIEVDTVAgYW1vbmdzdCB0aGVtIHRo
YXQgdGhlIHNwZWMgZG9lcyBvYnZpb3VzbHkgbm90IGFkZHJlc3Mgc2luY2UgaXQncyBhbGwgdmVy
eSBpbXBsZW1lbnRhdGlvbiBhbmQgc2lsaWNvbiBzcGVjaWZpYy4gPGJyPiA8L2Rpdj48YnI+IDxk
aXYgc3R5bGU9ImZvbnQtZmFtaWx5OkNhbGlicmksQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7
IGZvbnQtc2l6ZToxMnB0OyBjb2xvcjpyZ2IoMCwwLDApIj4tLS0gdG9ueSA8YnI+IDwvZGl2Pjxo
ciB0YWJpbmRleD0iLTEiIHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jazsgd2lkdGg6OTglIj48
ZGl2IGlkPSJ4X3hfZGl2UnBseUZ3ZE1zZyIgZGlyPSJsdHIiPjxzcGFuIHN0eWxlPSJmb250LWZh
bWlseTpDYWxpYnJpLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxMXB0OyBjb2xvcjojMDAwMDAwIj48
c3Ryb25nPkZyb206PC9zdHJvbmc+IHh1LmJlbmNob25nQHp0ZS5jb20uY24gJmx0O3h1LmJlbmNo
b25nQHp0ZS5jb20uY24mZ3Q7PGJyPiA8c3Ryb25nPlNlbnQ6PC9zdHJvbmc+IFdlZG5lc2RheSwg
SnVseSAxMCwgMjAxOSAxOjU2IEFNPGJyPiA8c3Ryb25nPlRvOjwvc3Ryb25nPiBBbnRvbmkgUHJ6
eWdpZW5kYTxicj4gPHN0cm9uZz5DYzo8L3N0cm9uZz4gSmVmZnJleSAoWmhhb2h1aSkgWmhhbmc7
IEVYVC16aGFuZy56aGVuZ0B6dGUuY29tLmNuOyByaWZ0QGlldGYub3JnPGJyPiA8c3Ryb25nPlN1
YmplY3Q6PC9zdHJvbmc+IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJp
ZnQ8L3NwYW4+ICZuYnNwOzwvZGl2PjxkaXY+PGRpdiBjbGFzcz0ieF94X3hfemNvbnRlbnRSb3ci
PjxwPjxicj4gPC9wPjxwPlRvbnksIHRoYW5rIHlvdSBmb3IgeW91ciByZXBseTwvcD48cD5DYW4g
aXQgYmUgdW5kZXJzdG9vZCB0aGF0IGFmdGVyIHRoZSBORCBpcyBlbmFibGVkLCB0aGUgdjYgYWRk
cmVzcyBuZWVkcyB0byBiZSB1c2VkIHRvIGJ1aWxkIG5laWdoYm9yPyBJbiB0aGlzIGNhc2UsIHRo
ZSByaWZ0IHBhY2tldCBvZiB0aGUgdjQgaGVhZGVyIGlzIG5vdCBhbGxvd2VkIHRvIGJlIHNlbnQg
YW5kIHJlY2VpdmVkLCBhbmQgYm90aCB2NCBhbmQgdjYgcm91dGVzIGhhdmUgYSB2NiBHVy48L3A+
PHAgc3R5bGU9ImZvbnQtc2l6ZToxNHB4OyBmb250LWZhbWlseTphcmlhbCI+PGJyPiA8L3A+PHAg
c3R5bGU9ImZvbnQtc2l6ZToxNHB4OyBmb250LWZhbWlseTphcmlhbCI+PGJyPiA8L3A+PGRpdj48
ZGl2IGNsYXNzPSJ4X3hfeF96aGlzdG9yeVJvdyIgc3R5bGU9ImRpc3BsYXk6YmxvY2siPjxkaXYg
Y2xhc3M9InhfeF94X3poaXN0b3J5RGVzIiBzdHlsZT0id2lkdGg6MTAwJTsgaGVpZ2h0OjI4cHg7
IGxpbmUtaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQtY29sb3I6I0UwRTVFOTsgY29sb3I6IzEzODhG
RjsgdGV4dC1hbGlnbjpjZW50ZXIiPuWOn+Wni+mCruS7tjwvZGl2PjxkaXYgaWQ9InhfeF94X3p3
cml0ZUhpc3RvcnlDb250YWluZXIiPjxkaXYgY2xhc3M9InhfeF94X2NvbnRyb2wtZ3JvdXAgeF94
X3hfemhpc3RvcnlQYW5lbCI+PGRpdiBjbGFzcz0ieF94X3hfemhpc3RvcnlIZWFkZXIiIHN0eWxl
PSJwYWRkaW5nOjhweDsgYmFja2dyb3VuZC1jb2xvcjojRjVGNkY4Ij48ZGl2PjxzdHJvbmc+5Y+R
5Lu25Lq677yaPC9zdHJvbmc+PHNwYW4gY2xhc3M9InhfeF94X3pyZWFkVXNlck5hbWUiPkFudG9u
aVByenlnaWVuZGEgJmx0O3ByekBqdW5pcGVyLm5ldCZndDs8L3NwYW4+PC9kaXY+PGRpdj48c3Ry
b25nPuaUtuS7tuS6uu+8mjwvc3Ryb25nPjxzcGFuIGNsYXNzPSJ4X3hfeF96cmVhZFVzZXJOYW1l
IiBzdHlsZT0iZGlzcGxheTppbmxpbmUiPuW+kOacrOW0hzEwMDY1MDUzOzwvc3Bhbj48c3BhbiBj
bGFzcz0ieF94X3hfenJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj5KZWZmcmV5
IChaaGFvaHVpKVpoYW5nICZsdDt6emhhbmdAanVuaXBlci5uZXQmZ3Q7Ozwvc3Bhbj48c3BhbiBj
bGFzcz0ieF94X3hfenJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj7lvKDlvoEw
MDAwNzk0MDs8L3NwYW4+PHNwYW4gY2xhc3M9InhfeF94X3pyZWFkVXNlck5hbWUiIHN0eWxlPSJk
aXNwbGF5OmlubGluZSI+cmlmdEBpZXRmLm9yZyAmbmJzcDsmbmJzcDsmbmJzcDsmbHQ7cmlmdEBp
ZXRmLm9yZyZndDs7PC9zcGFuPjwvZGl2PjxkaXY+PHN0cm9uZz7ml6Ug5pyfIO+8mjwvc3Ryb25n
PjxzcGFuIGNsYXNzPSIiPjIwMTnlubQwN+aciDEw5pelIDAwOjA5PC9zcGFuPjwvZGl2PjxkaXY+
PHN0cm9uZz7kuLsg6aKYIO+8mjwvc3Ryb25nPjxzcGFuIGNsYXNzPSJ4X3hfeF96cmVhZFRpdGxl
Ij48c3Ryb25nPlJlOiBbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0PC9z
dHJvbmc+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InhfeF94X3poaXN0b3J5Q29udGVu
dCI+PGRpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTpDYWxpYnJpLEFyaWFsLEhlbHZldGljYSxz
YW5zLXNlcmlmOyBmb250LXNpemU6MTJwdDsgY29sb3I6cmdiKDAsMCwwKSI+SGV5IEJlbmNob25n
LCBjYzonaW5nIGxpc3QsIGdvb2QgcXVlc3Rpb25zIG9idmlvdXNseSB0aGF0IHBvcCBvdXQgb24g
aW1wbGVtZW50YXRpb24gJm5ic3A7IDxicj4gPC9kaXY+PGJyPiA8ZGl2IHN0eWxlPSJmb250LWZh
bWlseTpDYWxpYnJpLEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmOyBmb250LXNpemU6MTJwdDsg
Y29sb3I6cmdiKDAsMCwwKSI+PG9sIGNsYXNzPSJ4X3hfeF8geF94XyB4XyBsaXN0LXBhZGRpbmds
ZWZ0LTIiPjxsaT48cD5zZW5kaW5nIExJRSBvbmx5IHdpdGggdjQgd2lsbCBub3QgZ2l2ZSB5b3Ug
YSB2NiBhZGRyZXNzIHRvIHNlbmQgdG8gKHNpbmNlIHRoZSBMSUUgc291cmNlIGFkZHJlc3MgZ2l2
ZXMgdGhlIGdhdGV3YXkgZm9yIHRoZSBBRiwgdGhhdCdzIHdoeSB3ZSBzZW5kIExJRSBwZXIgQUYp
IHNvIHlvdSB3b24ndCBoYXZlIGEgdjYgR1cgYWRkcmVzcyB0byBzZW5kIFRJRXMgdG8gOy0pPC9w
PjwvbGk+PGxpPjxwPnllcywgZXZlcnkgaW50ZXJmYWNlIGlzIGluZGVwZW5kZW50LiBPYnNlcnZl
IHRoYXQgdjYgc3VwcG9ydCBpbXBsaWVzIHY0IGFzIHRoZSBzcGVjIHNheXMgKHNpbmNlIHlvdSBj
YW4gRlcgdjQgd2l0aG91dCBhIHY0IEdXIGlmIHlvdSBoYXZlIGEgdjYgZ2F0ZXdheSkuIEhvd2V2
ZXIsIGlmIG9uZSBzaWRlIHNlbmRzIHY2IG9ubHkgYW5kIHRoZSBvdGhlciBzaWRlIG9ubHkgdjQg
dGhleSdsbCBuZXZlciBnbyAzLXdheSBzaW5jZSB0aGV5IHdvbid0ICZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwO2JlIGFibGUgdG8gcmVjZWl2ZS4gV2UganVzdCBhZGRlZCBhIHNlbnRlbmNlIHRvIHRo
ZSBzcGVjIHNheWluZyB0aGF0IGlmIHlvdSBkb24ndCBzZW5kIGFuIEFGIExJRSB5b3UgTVVTVCBO
T1QgcmVjZWl2ZSB0aGUgc2FtZSBBRiBMSUUgc2luY2Ugd2UgZm91bmQgdGhhdCBsb29zZSBlbmQg
aW4gQnJ1bm8ncyBpbXBsZW1lbnRhdGlvbiB3aGVuIHRlc3Rpbmcgc2VjdXJpdHkgZW52ZWxvcGVz
LiZuYnNwOyBJdCB3aWxsIGJlIGluIC0wNzxicj48L3A+PC9saT48L29sPjxicj4gPGRpdj48cHJl
IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IGZvbnQtZmFt
aWx5OidNZW5sbyc7IGZvbnQtc2l6ZTo3LjVwdCI+PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6I2VmZWZlZiI+Jmx0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IzAwMDA4MDsgYmFja2dy
b3VuZC1jb2xvcjojZWZlZmVmOyBmb250LXdlaWdodDpib2xkIj50PC9zcGFuPjxzcGFuIHN0eWxl
PSJiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWYiPiZndDs8L3NwYW4+QWxsIFJJRlQgcm91dGVycyBN
VVNUIHN1cHBvcnQgSVB2NCBmb3J3YXJkaW5nIGFuZCBNQVkgc3VwcG9ydCBJUHY2PGJyPiAgICBm
b3J3YXJkaW5nLiBBIHRocmVlIHdheSBhZGphY2VuY3kgb3ZlciBJUHY2IGFkZHJlc3NlcyBpbXBs
aWVzIHN1cHBvcnQ8YnI+ICAgIGZvciBJUHY0IGZvcndhcmRpbmcuIDxzdHJvbmc+QSBub2RlIHRo
YXQgZG9lcyBub3QgcHJvY2VzcyByZWNlaXZlZCBJUHY2IExJRXM8YnI+ICZuYnNwOyAmbmJzcDtN
VVNUIE5PVCBvcmlnaW5hdGUgSVB2NiBMSUVzLjwvc3Ryb25nPjxicj4gICAgPHNwYW4gc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6I2VmZWZlZiI+Jmx0Oy88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9y
OiMwMDAwODA7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgZm9udC13ZWlnaHQ6Ym9sZCI+dDwv
c3Bhbj48c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZWZlZmVmIj4mZ3Q7PC9zcGFuPjwv
cHJlPiA8YnI+IDwvZGl2PjxvbCBjbGFzcz0ieF94X3hfIHhfeF8geF8gbGlzdC1wYWRkaW5nbGVm
dC0yIj48bGk+PHA+SVB2Ni9JUHY0IHByZWZpeCBjYW4gYmUgbWl4ZWQgaW4gUHJlZml4IFRJRXMu
IFByZWZpeCBUSUVzIGRvIE5PVCBjYXJlIHdoaWNoIGludGVyZmFjZS9BRiB0aGV5IGFyZSBzZW50
IG92ZXIuIDxicj48L3A+PC9saT48bGk+PHA+aG93IHlvdSBidWlsZCBmb3J3YXJkaW5nIHRhYmxl
IGFuZCB3aGljaCBnYXRld2F5cyB5b3UgdXNlIGlzIGltcGxlbWVuYXRpb24gZGVwZW5kZW50IGJ1
dCB5ZXMsIHlvdSBnb3QgdGhlIGZsYXZvci4gdGhvdWdoIHlvdXIgYXNzdW1wdGlvbiBvZiAiSXB2
NiBkZXN0aW5hdGlvbiB3aXRoIGlwdjQgbmV4dGhvcCIgaXMgb3B0aW1pc3RpYy4gZXZlcnkgc2ls
aWNvbiBkb2VzIHY0IHNvIHY2IGNhbiBpbXBseSB2NCwgaW1wbHlpbmcgdjQgZndkJ2luZyAmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDthbGxvd3MgdjYgZm9yd2FyZGluZyBmYWlscyBvbiBnb29kIGFt
b3VudCBvZiBzaWxpY29uLiBCdXQgYWdhaW4sIHRob3NlIGFyZSBhbGwgaW1wbGVtZW50YXRpb24g
a25vYnMsIHNwZWMgb25seSBzYXlzICJ2NiBpbXBsaWVzIHY0IiB3aGljaCBtZWFucyAieW91IGJl
dHRlciBmd2QuIHY0IG92ZXIgdjYgbmV4dGhvcHMgaWYgeW91IHNlZSB2NiBMSUVzIG9ubHkiPGJy
PjwvcD48L2xpPjwvb2w+PGRpdj5PYnNlcnZlIHRoYXQgbm9kZSBUSUVzIGFyZSBfbm90XyBjYXJy
eWluZyB0aGUgc3VwcG9ydGVkIEFGcyBvbiBlYWNoIGludGVyZmFjZSBzaW5jZSBJIHRoaW5rIGl0
IHdvdWxkIGxlYWQgdG8gdW5kZXNpcmFibGUgYXR0ZW1wdHMgdG8gZGVwbG95IChzb21lIGxpbmtz
IGNhbiBkbyB2NikgdG9wb2xvZ2llcyB3aGljaCBkZWZlYXQgdGhlIHB1cnBvc2Ugb2YgWlRQL3Np
bXBsaWNpdHkgb2YgUklGVC4gdjYgaW1wbGllcyB2NCwgaWYgc29tZW9uZSAmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDt3YW50cyB0byBmd2QnIHY2IG92ZXIgYSBmYWJyaWMgd2hlcmUgY2VydGFpbiBs
aW5rcyBhcmUgdjQgY29tcHV0YXRpb25zIGdldCByZWFsbHkgd2VpcmQgYW5kIG9wZXJhdGlvbmFs
bHkgc3VjaCBhIHRoaW5nIGlzIHByb2JhYmx5IGEgbmlnaHRtYXJlIGFueXdheS4gQW5kIGdldHRp
bmcgdjYgd29ya2luZyBpcyB0cml2aWFsLCBqdXN0IGZsaXAgb24gTkQgYW5kIHlvdSdyZSBpbiBi
dXNpbmVzcyAoYXQgbGVhc3QgY29udHJvbCBwbGFuZSB3aXNlICZuYnNwOyZuYnNwOzstKTxicj4g
PC9kaXY+PGJyPiA8ZGl2PlRoZSBzcGVjIGlzIG5vaXQgZ2l2aW5nIGltcGxlbWVudGF0aW9uIGFk
dmljZSwgaXQganVzdCBzcGVjaWZpZXMgYmVoYXZpb3IuIEluIGNhc2Ugb2YgZG91YnQgbG9va3Mg
QCBCcnVubyc7cyBvcGVuIHNvdXJjZS4gQnJ1bm8gaW1wbGVtZW50ZWQgdGhlIHdob2xlIExJRSB3
aXRob3V0IGV2ZXIgdGFsa2luZyB0byBtZSBhbmQgaXQgaW50ZXJvcCdlZCBkYXkgb25lIHdpdGhv
dXQgcHJvYmxlbXMuIDxicj4gPC9kaXY+PGJyPiA8ZGl2PldoZW4geW91J3JlIHJlYWR5IHdpdGgg
eW91ciBpbXBsZW1lbnRhdGlvbiB0byBpbnRlcm9wLCBCcnVubydzIGNvZGUgaGFzIG5pY2UgZnJh
bWV3b3JrIHlvdSBjYW4gcGx1ZyBpbiBhZ2FpbnN0IG9wZW4gc291cmNlICZhbXA7IEp1bmlwZXIg
aW1wbGVtZW50YXRpb24gZWFzaWx5IDxicj4gPC9kaXY+PGJyPiA8ZGl2Pi0tLSB0b255IDxicj4g
PC9kaXY+PC9kaXY+PGhyIHRhYmluZGV4PSItMSIgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2Nr
OyB3aWR0aDo5OCUiPjxkaXYgaWQ9InhfeF94X2RpdlJwbHlGd2RNc2ciIGRpcj0ibHRyIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExcHQ7IGZvbnQtZmFtaWx5OkNhbGlicmksc2Fucy1zZXJpZjsg
Y29sb3I6IzAwMDAwMCI+PHN0cm9uZz5Gcm9tOjwvc3Ryb25nPiB4dS5iZW5jaG9uZ0B6dGUuY29t
LmNuICZsdDt4dS5iZW5jaG9uZ0B6dGUuY29tLmNuJmd0Ozxicj4gPHN0cm9uZz5TZW50Ojwvc3Ry
b25nPiBUdWVzZGF5LCBKdWx5IDksIDIwMTkgNTowOCBBTTxicj4gPHN0cm9uZz5Ubzo8L3N0cm9u
Zz4gQW50b25pIFByenlnaWVuZGE7IEplZmZyZXkgKFpoYW9odWkpIFpoYW5nOyBFWFQtemhhbmcu
emhlbmdAenRlLmNvbS5jbjxicj4gPHN0cm9uZz5TdWJqZWN0Ojwvc3Ryb25nPiBbUmlmdF0gSXB2
NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0PC9zcGFuPiAmbmJzcDs8L2Rpdj48ZGl2Pjxk
aXYgY2xhc3M9InhfeF94X3hfemNvbnRlbnRSb3ciPjxkaXY+PGRpdiBjbGFzcz0ieF94X3hfeF96
Y29udGVudFJvdyI+PGRpdj48ZGl2IGNsYXNzPSJ4X3hfeF94X3pjb250ZW50Um93Ij48ZGl2Pjxk
aXYgY2xhc3M9InhfeF94X3hfemNvbnRlbnRSb3ciPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsg
bWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7
IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsg
bGluZS1oZWlnaHQ6MjBweDsgZm9udC1mYW1pbHk6YXJpYWw7IG91dGxpbmU6MHB4IWltcG9ydGFu
dDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj5IaTxiciBzdHlsZT0iYm94LXNp
emluZzpib3JkZXItYm94OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQiPiA8L3A+PHAgc3R5bGU9Im1h
cmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBt
YXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWlu
LWhlaWdodDoxNHB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LWZhbWlseTphcmlhbDsgb3V0bGlu
ZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPkkgaGF2
ZSBzb21lIHF1ZXN0aW9ucyBhYm91dCBpcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQu
PC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXpp
bmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1z
cGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdN
aWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Es
c2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNr
Z3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPklwIGhlYWQgb2YgdGhlIHJpZnQgcGFja2V0
IGNhbiBiZSBWNCBvciBWNiwgYW5kIHRoZSBwcmVmaXggaW4gVElFIGFsc28gc3Vwb3J0IFY0IG9y
IHY2LiZuYnNwOzwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4
OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBw
eDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFs
LOWui+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEs
SGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9y
dGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj5DYW4gaXQgc3VwcG9ydCB0
aGUgZm9sbG93aW5nIHNpdHVhdGlvbnM6PC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFy
Z2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1h
cmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9u
dC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxW
ZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0
bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjxi
ciBzdHlsZT0iYm94LXNpemluZzpib3JkZXItYm94OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQiPiA8
L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemlu
Zzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNw
YWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01p
Y3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxz
YW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tn
cm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+MeOAgUEgcmlmdCBpbnRlcmZhY2Ugd2hpY2gm
bmJzcDtzZW5kIExJRSB3aXRoIGlwdjQgaGVhZCByZWNlaXZpbmcgTElFIHdpdGggSVB2NiBoZWFk
OzwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBib3gtc2l6
aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUt
c3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywn
TWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNh
LHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFj
a2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj5BIHJpZnQgaW50ZXJmYWNlIHdoaWNoJm5i
c3A7c2VuZCBMSUUgd2l0aCBpcHY2IGhlYWQgcmVjZWl2aW5nIExJRSB3aXRoIElQdjQgaGVhZDs8
L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemlu
Zzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNw
YWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01p
Y3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxz
YW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tn
cm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Q2FuIHRoZXkgYnVpbGQgMy1XYXkgbmVpZ2hi
b3I/PC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1z
aXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0
ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2T
LCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRp
Y2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBi
YWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjxiciBzdHlsZT0iYm94LXNpemluZzpi
b3JkZXItYm94OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQiPiA8L3A+PHAgc3R5bGU9Im1hcmdpbi10
b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4t
dG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdo
dDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lk
YSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdo
dDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwy
NTUsMjU1KSI+MuOAgVNvbWUgaW50ZXJmYWNlcyBpbiBhIHJpZnQgaW5zdGFuY2Ugc2VuZCBpcHY0
IGhlYWQgcGFja2V0c++8jCBhbmQgb3RoZXJzIGluIHRoZSBzYW1lIGluc3RhbmNlIHNlbmQgaXB2
NiBoZWFkIHBhY2tldHPvvJs8L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90
dG9tOjBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJv
dHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWls
eTpBcmlhbCzlrovkvZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEs
THVjaWRhLEhlbHZldGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBw
eCFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+PGJyIHN0eWxl
PSJib3gtc2l6aW5nOmJvcmRlci1ib3g7IG91dGxpbmU6MHB4IWltcG9ydGFudCI+IDwvcD48cCBz
dHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBib3gtc2l6aW5nOmJvcmRl
ci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9y
bWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0
IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2Vy
aWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1j
b2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj4z44CBSXB2NCBoZWFkIFRJRSBwYWNrZXQgZmlsbCBpcHY2
IHByZWZpeO+8mzwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4
OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBw
eDsgd2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFs
LOWui+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEs
SGVsdmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9y
dGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj4mbmJzcDsgJm5ic3A7SXB2
NiBoZWFkIFRJRSBwYWNrZXQgZmlsbCBpcHY0IHByZWZpeO+8myhSSUZULTA2IDUuMi4yOiBBbGwg
UklGVCByb3V0ZXJzIE1VU1Qgc3VwcG9ydCBJUHY0IGZvcndhcmRpbmcgYW5kIE1BWSBzdXBwb3J0
IElQdjY8L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94
LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdo
aXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovk
vZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZl
dGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7
IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Jm5ic3A7ICZuYnNwO2ZvcndhcmRp
bmcuICZuYnNwO0EgdGhyZWUgd2F5IGFkamFjZW5jeSBvdmVyIElQdjYgYWRkcmVzc2VzIGltcGxp
ZXM8L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNp
emluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRl
LXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMs
J01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGlj
YSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJh
Y2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Jm5ic3A7ICZuYnNwO3N1cHBvcnQgZm9y
IElQdjQgZm9yd2FyZGluZy4pPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJv
dHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1i
b3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1p
bHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5h
LEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTow
cHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjxiciBzdHls
ZT0iYm94LXNpemluZzpib3JkZXItYm94OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQiPiA8L3A+PHAg
c3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpib3Jk
ZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5v
cm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01pY3Jvc29m
dCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxzYW5zLXNl
cmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91bmQt
Y29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+NOOAgUluIHJpYiB0YWJsZSBvZiB0aGUgcmlmdDo8L3A+
PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpi
b3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNl
Om5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJ01pY3Jv
c29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRhbmEsTHVjaWRhLEhlbHZldGljYSxzYW5z
LXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91
bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Jm5ic3A7ICZuYnNwO0lwdjQgZGVzdGluYXRpb24g
d2l0aCBpcHY2IG5leHRob3A7PC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJv
dHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1i
b3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1p
bHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5h
LEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTow
cHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPiZuYnNwOyAm
bmJzcDtJcHY2IGRlc3RpbmF0aW9uIHdpdGggaXB2NCBuZXh0aG9wOyZuYnNwOzwvcD48cCBzdHls
ZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBib3gtc2l6aW5nOmJvcmRlci1i
b3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3BhY2U6bm9ybWFs
OyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWui+S9kywnTWljcm9zb2Z0IFlh
aGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNhbnMtc2VyaWY7
IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xv
cjpyZ2IoMjU1LDI1NSwyNTUpIj4mbmJzcDsgJm5ic3A7SXB2NCBkZXN0aW5hdGlvbiB3aXRoIGJv
dGggaXB2NCBuZXh0aG9wIGFuZCBpcHY2IG5leHRob3A7PC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9w
OjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRv
cDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6
MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEg
R3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6
MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1
LDI1NSkiPiZuYnNwOyAmbmJzcDtJcHY2IGRlc3RpbmF0aW9uIHdpdGggYm90aCBpcHY0IG5leHRo
b3AgYW5kIGlwdjYgbmV4dGhvcDs8L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4t
Ym90dG9tOjBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFyZ2lu
LWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBmb250LWZh
bWlseTpBcmlhbCzlrovkvZMsJ01pY3Jvc29mdCBZYWhlaScsJ0x1Y2lkYSBHcmFuZGUnLFZlcmRh
bmEsTHVjaWRhLEhlbHZldGljYSxzYW5zLXNlcmlmOyBsaW5lLWhlaWdodDoyMHB4OyBvdXRsaW5l
OjBweCFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KSI+Jm5ic3A7
ICZuYnNwOzwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBi
b3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsg
d2hpdGUtc3BhY2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGZvbnQtZmFtaWx5OkFyaWFsLOWu
i+S9kywnTWljcm9zb2Z0IFlhaGVpJywnTHVjaWRhIEdyYW5kZScsVmVyZGFuYSxMdWNpZGEsSGVs
dmV0aWNhLHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OjIwcHg7IG91dGxpbmU6MHB4IWltcG9ydGFu
dDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj4144CBVGhlIGlwIGhlYWQgdHlw
ZSh2NCBvciB2NikgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gcmlmdCBpbnRlcmZhY2Ugb3IgaW5zdGFu
Y2UuPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1z
aXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0
ZS1zcGFjZTpub3JtYWw7IG1pbi1oZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2T
LCdNaWNyb3NvZnQgWWFoZWknLCdMdWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRp
Y2Esc2Fucy1zZXJpZjsgbGluZS1oZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBi
YWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjxicj4gPC9wPjxwIHN0eWxlPSJtYXJn
aW4tdG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFy
Z2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyB3aGl0ZS1zcGFjZTpub3JtYWw7IG1pbi1o
ZWlnaHQ6MTRweDsgZm9udC1mYW1pbHk6QXJpYWws5a6L5L2TLCdNaWNyb3NvZnQgWWFoZWknLCdM
dWNpZGEgR3JhbmRlJyxWZXJkYW5hLEx1Y2lkYSxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsgbGluZS1o
ZWlnaHQ6MjBweDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigy
NTUsMjU1LDI1NSkiPkl0IHdpbGwgYmUgYmV0dGVyIGlmIHRoZXJlIGFyZSBjbGVhciBpbnN0cnVj
dGlvbnMgaW4gcmlmdCBwcm90b2NvbC48L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJn
aW4tYm90dG9tOjBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tdG9wOjBweDsgbWFy
Z2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdodDoxNHB4OyBsaW5l
LWhlaWdodDoyMHB4OyBmb250LWZhbWlseTphcmlhbDsgb3V0bGluZTowcHghaW1wb3J0YW50OyBi
YWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPjxiciBzdHlsZT0iYm94LXNpemluZzpi
b3JkZXItYm94OyBvdXRsaW5lOjBweCFpbXBvcnRhbnQiPiA8L3A+PHAgc3R5bGU9Im1hcmdpbi10
b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4t
dG9wOjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdoaXRlLXNwYWNlOm5vcm1hbDsgbWluLWhlaWdo
dDoxNHB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LWZhbWlseTphcmlhbDsgb3V0bGluZTowcHgh
aW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSkiPlRoYW5rc++8gTwv
cD48cCBzdHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBib3gtc2l6aW5n
OmJvcmRlci1ib3g7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgd2hpdGUtc3Bh
Y2U6bm9ybWFsOyBtaW4taGVpZ2h0OjE0cHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtZmFtaWx5
OmFyaWFsOyBvdXRsaW5lOjBweCFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwy
NTUsMjU1KSI+QmVuY2hvbmc8L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90
dG9tOjBweDsgZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OmFyaWFsIj48YnI+IDwvcD48cCBz
dHlsZT0ibWFyZ2luLXRvcDowcHg7IG1hcmdpbi1ib3R0b206MHB4OyBmb250LXNpemU6MTRweDsg
Zm9udC1mYW1pbHk6YXJpYWwiPjxicj4gPC9wPjxwIHN0eWxlPSJtYXJnaW4tdG9wOjBweDsgbWFy
Z2luLWJvdHRvbTowcHg7IGZvbnQtc2l6ZToxNHB4OyBmb250LWZhbWlseTphcmlhbCI+PGJyPiA8
L3A+PHAgc3R5bGU9Im1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOjBweDsgZm9udC1zaXpl
OjE0cHg7IGZvbnQtZmFtaWx5OmFyaWFsIj48YnI+IDwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rp
dj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48
L2Rpdj48cD48YnI+IDwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rp
dj48L2Rpdj48cD48YnI+IDwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48
L2Rpdj48L2Rpdj48L2Rpdj48cD48YnI+IDwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rp
dj48L2Rpdj48L2Rpdj48L2Rpdj48cD48YnI+PC9wPjwvZGl2Pg==


--=====_003_next=====--

--=====_002_next=====--

--=====_001_next=====--


From nobody Fri Jul 12 06:40:00 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 015521200CD for <rift@ietfa.amsl.com>; Fri, 12 Jul 2019 06:39:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.702
X-Spam-Level: 
X-Spam-Status: No, score=-0.702 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, PDS_NO_HELO_DNS=1.295, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no 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 ptLcG7oI5C8f for <rift@ietfa.amsl.com>; Fri, 12 Jul 2019 06:39:55 -0700 (PDT)
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) (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 99498120026 for <rift@ietf.org>; Fri, 12 Jul 2019 06:39:54 -0700 (PDT)
Received: by mail-ed1-x533.google.com with SMTP id v15so9250581eds.9 for <rift@ietf.org>; Fri, 12 Jul 2019 06:39:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=JaLtHFmIGxmE28TSl5sCsVvBmdK4ZgM6kJy6Gl7nnbQ=; b=s5pRYPjO78enZ+6VqBOd/nHhLptbTdJnaOvv0dJcdafZnAyu9SiCxAGlEuPc6+XfXe iNDAkcJEoS3j5FvChlJ+4nza7yARqCqCm4Fv4oVmwvYGiYXdiEV+LwTmjhkT1PFEbXVN /sxlHP+FUIeeQRMPNzdPTkhQzHoc1O2menbVF0mtDNjrXXhsdKgw3Sq9iOOC6Tv9B2zm iwHt3ifKf+4MzEw961wA0xfO/422pVJhtv6iIy8Xr8ZM77T/ViSEyuiLVv3+giQ5/ocr Xc0hn6BKgxSRTh///kM553S7b8LdSC+IsVIvxsRi7qwUd8+ivyaADpP2o6MW0C/5fz2T If9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=JaLtHFmIGxmE28TSl5sCsVvBmdK4ZgM6kJy6Gl7nnbQ=; b=tigGYqTzU5HXN8nrl25fz4D/AAPtEbHA6gICjB0+IVXhIIqdsaj2sffAeExqp0NSJv oK3IgdqTniZ+U20l6zTTH6fundZOiJnGaNSAoPXZYtGUr0IsX/qf9bdvb7//fJOnBjGs uHIIRa5PnTPYYKn1z6sgK7p/OPtb7x0DIQitJQkcM137wQ3zu16NVA67/SdPjBWKwwzb Dfwy1xPPykSymEzHLx6SbyCqTsJnHSPDZ0GnOFmJCLXApsjukEzmtyquv8TajLtzy+eA QCKfJ9nxghaT28PBFGfDOLv5XQs6B408geBEvLAdfgR1Er1tMJCZ9BjKkCWkbBeiyLWz IKRg==
X-Gm-Message-State: APjAAAW8CtfHkr6TVLizy5iIoJ6Cu/pBTVzDPTzhYngvG4d3gp62vFE6 0Ng9hZYbo6MtUz4CGxAZ/Mw=
X-Google-Smtp-Source: APXvYqztK/JuzdR1gjcLx/i5pehdJ2JlmGtmk9Kbx6c/i1/my2qgOt1rVip/RTJpHPK7PUcBRqMLEQ==
X-Received: by 2002:a17:906:2b47:: with SMTP id b7mr8190776ejg.117.1562938792885;  Fri, 12 Jul 2019 06:39:52 -0700 (PDT)
Received: from [192.168.1.19] (35-5-201-31.ftth.glasoperator.nl. [31.201.5.35]) by smtp.gmail.com with ESMTPSA id x11sm1848067eju.26.2019.07.12.06.39.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Jul 2019 06:39:52 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <A3E1D157-A1C8-4A7B-B80C-5AA2EBEB038B@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_9E6FD321-4084-4951-9BC4-75A07794C672"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Fri, 12 Jul 2019 15:39:48 +0200
In-Reply-To: <201907111733344496218@zte.com.cn>
Cc: Antoni Przygienda <prz@juniper.net>, rift@ietf.org
To: xu.benchong@zte.com.cn
References: <201907111139404022772@zte.com.cn, MWHPR05MB327920CEE377FDB606FD3D35ACF30@MWHPR05MB3279.namprd05.prod.outlook.com> <201907111733344496218@zte.com.cn>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/LETuZGU6purFh3aej7qgTvDJWBg>
Subject: Re: [Rift] Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jul 2019 13:39:59 -0000

--Apple-Mail=_9E6FD321-4084-4951-9BC4-75A07794C672
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hello Benchong,

Thank you!

RE> Is it possible to generate a valid v6 rib table as long as v4 =
address of the inteface is valid?=20

My code needs an IPv6 address on the interface (which is allowed to be a =
link-local address) to install routes with an IPv6 destination prefix =
into the IPv6 RIB, because those routes currently need an IPv6 next-hop =
in my implementation.

And my code needs an IPv4 address on the interface to install routes =
with IPv4 prefixes into the IPv4 RIB, because those routes currently =
need an IPv4 next-hop in my implementation.

My code currently does not support installing routes with an IPv4 =
destination prefix into the IPv4 RIB with an IPv6 next-hop or vice =
versa, even on some hardware platforms that is technically feasible, =
albeit not very common.=20

On some platforms you can install an IPv4 route with an IPv6 next-hop =
and the platform will resolve the IPv6 next-hop to an Ethernet MAC =
address which is then used to install the IPv4 route into the hardware =
(again - my code currently does not support this).

My code does support flooding IPv4 prefixes in a TIE packet which is =
carried in an IPv6 packet.  And vice versa, it also supports flooding =
IPv6 prefixes in aTIE packet which is carried in an IPv4 packet.

My code will always send both IPv4 and IPv6 LIEs on all adjacencies. =
Note that there is only one instance of the LIE finite state machine, =
not two (this is tricky corner of the protocol).

But for TIE flooding my code will send TIE/TIDE/TIRE packets either IPv4 =
or IPv6 on any given adjacency, depending on which LIEs it has seen from =
the neighbor. If it has seen both IPv4 and IPv6 LIEs from the neighbor, =
it will prefer IPv4.

RE> Can it support ipv4 and ipv6 double stack?

Yes, RIFT-Python can run on a dual-stack system that runs both IPv4 and =
IPv6. It can also run on an IPv4-only system as well as on an IPv6-only =
system.

As mentioned above, LIE packets will always be sent using IPv4 *and* =
IPv6, whereas flooding (TIDE/TIRE/TIE packets) will be sent *either* =
using IPv4 *or* IPv6, but either way the TIE packets will cary *both* =
IPv4 *and* IPv6 prefixes.

=E2=80=94 Bruno


> On Jul 11, 2019, at 11:33 AM, xu.benchong@zte.com.cn wrote:
>=20
> Hi, Bruno
>=20
> I read part of your RIFT code, thank you for your great job!
>=20
> When sending LIE messages, as long as there is a v4 address, v4 will =
be used first, so we will get v4 next hop.
>=20
> ----------
>=20
>=20
>     def action_start_flooding(self):
>=20
> 	=E2=80=A6=E2=80=A6
>=20
>        # For sending flooding packets, use whatever IPv4 or IPv6 =
address we see first for the
>=20
>         # neighbor, preferring the IPv4 address if we know both.
>=20
>         if self.neighbor.ipv4_address is not None:
>=20
>             self.rx_info("Start IPv4 flooding: send to address %s port =
%d",
>=20
>                          self.neighbor.ipv4_address, tx_flood_port)
>=20
>             self._flood_tx_ipv4_socket =3D =
self.create_socket_ipv4_tx_ucast(
>=20
>                 remote_address=3Dself.neighbor.ipv4_address,
>=20
>                 port=3Dtx_flood_port)
>=20
>         else:
>=20
>             assert self.neighbor.ipv6_address is not None
>=20
>             scoped_ipv6_address =3D self.neighbor.ipv6_address
>=20
>             if "%" not in self.neighbor.ipv6_address:
>=20
>                 scoped_ipv6_address +=3D "%" + =
self.physical_interface_name
>=20
>             self.rx_info("Start IPv6 flooding: send to address %s port =
%d",
>=20
>                          scoped_ipv6_address, tx_flood_port)
>=20
>             self._flood_tx_ipv6_socket =3D =
self.create_socket_ipv6_tx_ucast(
>=20
>                 remote_address=3Dscoped_ipv6_address,
>=20
>                 port=3Dtx_flood_port)
>=20
> SPF calculation will calculate the nexthop of v4 and v6 at the same =
time.
>=20
> -----------------
>=20
>     def set_spf_predecessor(self, destination, nbr_tie_element, =
predecessor_system_id,
>=20
>                             spf_direction):
>=20
>         destination.add_predecessor(predecessor_system_id)
>=20
>         if (nbr_tie_element is not None) and (predecessor_system_id =3D=3D=
 self.system_id):
>=20
>             for link_id_pair in nbr_tie_element.link_ids:
>=20
>                 nhop =3D =
self.interface_id_to_ipv4_next_hop(link_id_pair.local_id)
>=20
>                 if nhop:
>=20
>                     destination.add_ipv4_next_hop(nhop)
>=20
>                 nhop =3D =
self.interface_id_to_ipv6_next_hop(link_id_pair.local_id)
>=20
>                 if nhop:
>=20
>                     destination.add_ipv6_next_hop(nhop)
>=20
>         else:
>=20
>             dest_table =3D self._spf_destinations[spf_direction]
>=20
>             =
destination.inherit_next_hops(dest_table[predecessor_system_id])
>=20
> The RIB table only selects the same AF nexthop
>=20
> --------------
>=20
>     def spf_install_routes_in_rib(self, spf_direction):
>=20
>         =E2=80=A6=E2=80=A6
>=20
>                 prefix =3D dest_key
>=20
>                 if prefix.ipv4prefix is not None:
>=20
>                     next_hops =3D dest.ipv4_next_hops
>=20
>                     route_table =3D self._ipv4_rib
>=20
>                 else:
>=20
>                     assert prefix.ipv6prefix is not None
>=20
>                     next_hops =3D dest.ipv6_next_hops
>=20
>                     route_table =3D self._ipv6_rib
>=20
>                 if next_hops:
>=20
>                     rte =3D route.Route(prefix, owner, next_hops)
>=20
>                     route_table.put_route(rte)
>=20
> Is it possible to generate a valid v6 rib table as long as v4 address =
of the inteface is valid? Can it support ipv4 and ipv6 double stack?
>=20
> Thanks!
>=20
> Benchong
>=20
>=20
>=20
> =E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6
> =E5=8F=91=E4=BB=B6=E4=BA=BA=EF=BC=9AAntoniPrzygienda <prz@juniper.net>
> =E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=9A=E5=BE=90=E6=9C=AC=E5=B4=8710065053;=

> =E6=8A=84=E9=80=81=E4=BA=BA=EF=BC=9AJeffrey (Zhaohui) Zhang =
<zzhang@juniper.net>;=E5=BC=A0=E5=BE=8100007940;rift@ietf.org =
<rift@ietf.org>;
> =E6=97=A5 =E6=9C=9F =EF=BC=9A2019=E5=B9=B407=E6=9C=8811=E6=97=A5 11:52
> =E4=B8=BB =E9=A2=98 =EF=BC=9ARe: Re:[Rift] Ipv4 and ipv6 cooperating =
in rift
> Benchong, what you seem to talk about is originating packets and it's =
the source that decides whether it sends v4 or v6 and the IP fabric with =
RIFT just forwards the packet, it cannot change in the middle the IP =
address family in which the packet is carried  obviously so there is no =
decision to be made which IP AF is used, only which GW needs to be =
installed on the route nexthop. But yes, an implementaton can choose to =
forward v4 packets using the MAC address of a v6 gateway, a highly =
desirable behavior since  with that, the fabric can be completely global =
address free without any config (just ND) and do v4 fine. =20
>=20
> yes, an implementation may choose to prefer v4 GW for v4 packets and =
v6 GW for v6 packets but normally it's the same MAC unless the =
deployment is very strange @ which point knobs to control that may be =
necessary, something which is implementation specific.=20
>=20
> So RIFT just floods the TIEs on any AF with prefixes of all AFs, the =
computation computes the route with directly attached next-hop which has =
to resolve to MAC in any AF really and then packet can be forwarded ...=20=

>=20
> implement it and play with it, we have @ least 2 implementations =
already that work fine doing that ...=20
>=20
> Yes, the closest analogy is v4 in BGP with v6 nexthops if you really =
want to think that way but RIFT is much simpler since the nhop is always =
directly connected and we don't talk about anything like v4ov6 or v6ov4 =
tunneling and so on ...=20
>=20
> makes sense?=20
>=20
> --- tony=20
>=20
>=20
> From: xu.benchong@zte.com.cn <xu.benchong@zte.com.cn>
> Sent: Wednesday, July 10, 2019 8:39 PM
> To: Antoni Przygienda
> Cc: Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; rift@ietf.org
> Subject: Re:[Rift] Ipv4 and ipv6 cooperating in rift =20
> Hi tony
>=20
> Thanks for your explanation, and I have already understood your =
opinion on v4v6 forwarding.
>=20
> The difference between RIFT and other routing protocols is the =
consistency of packets AF and routes AF. Isis is in L2 encapsulation =
that solves different address families through multiple topologies. Ospf =
and rip are strictly distinguished in v4v6. Rift  is actually closer to =
BGP.
>=20
> When the interface has both v4 and v6 addresses (or ND enabled), the =
protocol uses v4 or v6 or v4v6 address encapsulation. It will be better =
if protocol gave the recommended behavior. Otherwise, different people =
will give different solutions, which will  cause protocol conformance =
problem.=20
>=20
> The options we can choose are:
>=20
> a) ND enable v6 first:
>=20
> If v6 address valid AND ND enable:
>=20
>      V6 packet
>=20
> Else if v4 address valid:
>=20
>      V4 packet
>=20
> b) v4 first
>=20
> If v4 address valid:
>=20
>      V4 packet
>=20
> Else if v6 address valid(AND ND enable):
>=20
>      V6 packet
>=20
> c) coexistence of v4v6
>=20
> If v4 address valid:
>=20
>      V4 packet
>=20
> If v6 address valid(AND ND enable):
>=20
>      V6 packet
>=20
> Confused on both the sending and receiving sides.
>=20
> c) will further have a GW selection problem, preferring to choose the =
nexthop of the same address family with the prefix, or v4 first.
>=20
> I'd like the protocol recommends a default behavior and may provides a =
control method in yang.
>=20
> Thanks!
>=20
> Benchong
>=20
>=20
>=20
> =E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6
> =E5=8F=91=E4=BB=B6=E4=BA=BA=EF=BC=9AAntoniPrzygienda <prz@juniper.net>
> =E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=9A=E5=BE=90=E6=9C=AC=E5=B4=8710065053;=

> =E6=8A=84=E9=80=81=E4=BA=BA=EF=BC=9AJeffrey (Zhaohui) Zhang =
<zzhang@juniper.net>;=E5=BC=A0=E5=BE=8100007940;rift@ietf.org  =
<rift@ietf.org>;
> =E6=97=A5 =E6=9C=9F =EF=BC=9A2019=E5=B9=B407=E6=9C=8810=E6=97=A5 23:12
> =E4=B8=BB =E9=A2=98 =EF=BC=9ARe: Re:[Rift] Ipv4 and ipv6 cooperating =
in rift
> Hey Benchong, that's an over-interpretation, the spec is looser than =
that but as far I saw sufficient. Section 5.2.2.=20
>=20
> a) Specification does not prohibit RIFT from using _any_ valid IPv6 =
address on the interface to send IPv6 LIEs. The receiver is supposed to =
pick up that source address and use it as destination when sending LIEs =
over v6 and/or TIEs with the receving interface   as gateway. =
Specification does NOT spell out what happens e.g. on mismatched IP =
subnets on both sides and so on, situation here is similar to ISIS and =
different scenarios such as unnumbered links and so on
> b) If you want the "laziest" possible implementation then in fact yes, =
you can fall back on=20
>=20
> "
>    All RIFT routers MUST support IPv4 forwarding and MAY support IPv6  =
  forwarding.  A three way adjacency over IPv6 addresses implies    =
support for IPv4 forwarding.
> "
>=20
> which makes v4ov6 forwarding inherent part of RIFT. That assumes =
however that receiving neighbor does support V6 (which the spec does NOT =
mandate) and nothing will happen if it doesn't. Therefore all RIFT =
implementation I saw so far send both v4 and v6 which   allows the =
neighbor to only receive v4 and forward using v4 gateways if it doesn't =
support V6. In case both v4 and v6 AFs are established, it is up to the =
implementation which/how it resolves the gateways and there are many =
interesting advanced issues such   as mixture of spines with v4 and v6 =
nexthops and how to form ECMP amongst them that the spec does obviously =
not address since it's all very implementation and silicon specific.=20
>=20
> --- tony=20
> From: xu.benchong@zte.com.cn <xu.benchong@zte.com.cn>
> Sent: Wednesday, July 10, 2019 1:56 AM
> To: Antoni Przygienda
> Cc: Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; rift@ietf.org
> Subject: Re:[Rift] Ipv4 and ipv6 cooperating in rift =20
>=20
>=20
> Tony, thank you for your reply
>=20
> Can it be understood that after the ND is enabled, the v6 address =
needs to be used to build neighbor? In this case, the rift packet of the =
v4 header is not allowed to be sent and received, and both v4 and v6 =
routes have a v6 GW.
>=20
>=20
>=20
>=20
>=20
> =E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6
> =E5=8F=91=E4=BB=B6=E4=BA=BA=EF=BC=9AAntoniPrzygienda <prz@juniper.net>
> =E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=9A=E5=BE=90=E6=9C=AC=E5=B4=8710065053;=
Jeffrey (Zhaohui)Zhang <zzhang@juniper.net>;=E5=BC=A0=E5=BE=8100007940;rif=
t@ietf.org   <rift@ietf.org>;
> =E6=97=A5 =E6=9C=9F =EF=BC=9A2019=E5=B9=B407=E6=9C=8810=E6=97=A5 00:09
> =E4=B8=BB =E9=A2=98 =EF=BC=9ARe: [Rift] Ipv4 and ipv6 cooperating in =
rift
> Hey Benchong, cc:'ing list, good questions obviously that pop out on =
implementation  =20
>=20
> sending LIE only with v4 will not give you a v6 address to send to =
(since the LIE source address gives the gateway for the AF, that's why =
we send LIE per AF) so you won't have a v6 GW address to send TIEs to =
;-)
>=20
> yes, every interface is independent. Observe that v6 support implies =
v4 as the spec says (since you can FW v4 without a v4 GW if you have a =
v6 gateway). However, if one side sends v6 only and the other side only =
v4 they'll never go 3-way since they won't    be able to receive. We =
just added a sentence to the spec saying that if you don't send an AF =
LIE you MUST NOT receive the same AF LIE since we found that loose end =
in Bruno's implementation when testing security envelopes.  It will be =
in -07
>=20
>=20
> <t>All RIFT routers MUST support IPv4 forwarding and MAY support IPv6
>     forwarding. A three way adjacency over IPv6 addresses implies =
support
>     for IPv4 forwarding. A node that does not process received IPv6 =
LIEs
>     MUST NOT originate IPv6 LIEs.
>     </t>
>=20
> IPv6/IPv4 prefix can be mixed in Prefix TIEs. Prefix TIEs do NOT care =
which interface/AF they are sent over.=20
>=20
> how you build forwarding table and which gateways you use is =
implemenation dependent but yes, you got the flavor. though your =
assumption of "Ipv6 destination with ipv4 nexthop" is optimistic. every =
silicon does v4 so v6 can imply v4, implying v4 fwd'ing    allows v6 =
forwarding fails on good amount of silicon. But again, those are all =
implementation knobs, spec only says "v6 implies v4" which means "you =
better fwd. v4 over v6 nexthops if you see v6 LIEs only"
>=20
> Observe that node TIEs are _not_ carrying the supported AFs on each =
interface since I think it would lead to undesirable attempts to deploy =
(some links can do v6) topologies which defeat the purpose of =
ZTP/simplicity of RIFT. v6 implies v4, if someone    wants to fwd' v6 =
over a fabric where certain links are v4 computations get really weird =
and operationally such a thing is probably a nightmare anyway. And =
getting v6 working is trivial, just flip on ND and you're in business =
(at least control plane wise  ;-)
>=20
> The spec is noit giving implementation advice, it just specifies =
behavior. In case of doubt looks @ Bruno';s open source. Bruno =
implemented the whole LIE without ever talking to me and it interop'ed =
day one without problems.=20
>=20
> When you're ready with your implementation to interop, Bruno's code =
has nice framework you can plug in against open source & Juniper =
implementation easily=20
>=20
> --- tony=20
> From: xu.benchong@zte.com.cn <xu.benchong@zte.com.cn>
> Sent: Tuesday, July 9, 2019 5:08 AM
> To: Antoni Przygienda; Jeffrey (Zhaohui) Zhang; =
EXT-zhang.zheng@zte.com.cn
> Subject: [Rift] Ipv4 and ipv6 cooperating in rift =20
> Hi
> I have some questions about ipv4 and ipv6 cooperating in rift.
> Ip head of the rift packet can be V4 or V6, and the prefix in TIE also =
suport V4 or v6.=20
> Can it support the following situations:
>=20
> 1=E3=80=81A rift interface which send LIE with ipv4 head receiving LIE =
with IPv6 head;
> A rift interface which send LIE with ipv6 head receiving LIE with IPv4 =
head;
> Can they build 3-Way neighbor?
>=20
> 2=E3=80=81Some interfaces in a rift instance send ipv4 head packets=EF=BC=
=8C and others in the same instance send ipv6 head packets=EF=BC=9B
>=20
> 3=E3=80=81Ipv4 head TIE packet fill ipv6 prefix=EF=BC=9B
>    Ipv6 head TIE packet fill ipv4 prefix=EF=BC=9B(RIFT-06 5.2.2: All =
RIFT routers MUST support IPv4 forwarding and MAY support IPv6
>    forwarding.  A three way adjacency over IPv6 addresses implies
>    support for IPv4 forwarding.)
>=20
> 4=E3=80=81In rib table of the rift:
>    Ipv4 destination with ipv6 nexthop;
>    Ipv6 destination with ipv4 nexthop;=20
>    Ipv4 destination with both ipv4 nexthop and ipv6 nexthop;
>    Ipv6 destination with both ipv4 nexthop and ipv6 nexthop;
>   =20
> 5=E3=80=81The ip head type(v4 or v6) can be configured in rift =
interface or instance.
>=20
> It will be better if there are clear instructions in rift protocol.
>=20
> Thanks=EF=BC=81
> Benchong
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20


--Apple-Mail=_9E6FD321-4084-4951-9BC4-75A07794C672
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><font=
 face=3D"Avenir-Book" style=3D"font-size: 14px;" class=3D"">Hello =
Benchong,</font><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Avenir-Book" style=3D"font-size: 14px;" =
class=3D"">Thank you!</font></div><div class=3D""><font =
face=3D"Avenir-Book" style=3D"font-size: 14px;" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D""><i class=3D"">RE&gt;&nbsp;Is it =
possible to generate a valid v6 rib table as long as v4 address of the =
inteface is valid?&nbsp;</i></font></div><div class=3D""><font =
face=3D"Avenir-Book" style=3D"font-size: 14px;" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Avenir-Book" =
class=3D""><span style=3D"font-size: 14px;" class=3D"">My code needs an =
IPv6 address on the interface (which is allowed to be a link-local =
address) to install routes with an IPv6 destination prefix into the IPv6 =
RIB, because those routes currently need an IPv6&nbsp;next-hop in my =
implementation.</span></font></div><div class=3D""><font =
face=3D"Avenir-Book" style=3D"font-size: 14px;" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D"">And my code needs an IPv4 address =
on the interface to install routes with IPv4 prefixes into the IPv4 RIB, =
because those routes currently need an IPv4 next-hop&nbsp;</font><span =
style=3D"font-family: Avenir-Book; font-size: 14px;" class=3D"">in my =
implementation.</span></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Avenir-Book" class=3D""><span style=3D"font-size:=
 14px;" class=3D"">My code currently does not support installing routes =
with an IPv4 destination prefix into the IPv4 RIB with an IPv6 next-hop =
or vice versa, even on some hardware platforms that is technically =
feasible, albeit not very common.&nbsp;</span></font></div><div =
class=3D""><font face=3D"Avenir-Book" class=3D""><span style=3D"font-size:=
 14px;" class=3D""><br class=3D""></span></font></div><div =
class=3D""><font face=3D"Avenir-Book" class=3D""><span style=3D"font-size:=
 14px;" class=3D"">On some platforms&nbsp;you can install an IPv4 route =
with an IPv6 next-hop and the platform will resolve the IPv6 next-hop to =
an Ethernet MAC address which is then used to install the IPv4 route =
into the hardware (again - my code currently does not support =
this).</span></font></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Avenir-Book" style=3D"font-size: 14px;" =
class=3D"">My code does support flooding IPv4 prefixes in a TIE packet =
which is carried in an IPv6 packet. &nbsp;And vice versa, it also =
supports flooding IPv6 prefixes in aTIE packet which is carried in an =
IPv4 packet.</font></div><div class=3D""><br class=3D""></div><div =
class=3D""><span style=3D"font-family: Avenir-Book; font-size: 14px;" =
class=3D"">My code will always send both IPv4 and IPv6 LIEs on all =
adjacencies. Note that there is only one instance of the LIE finite =
state machine, not two (this is tricky corner of the =
protocol).</span></div><div class=3D""><span style=3D"font-family: =
Avenir-Book; font-size: 14px;" class=3D""><br class=3D""></span></div><div=
 class=3D""><font face=3D"Avenir-Book" class=3D""><span =
style=3D"font-size: 14px;" class=3D"">But for TIE flooding my code will =
send TIE/TIDE/TIRE packets&nbsp;</span><i style=3D"font-size: 14px;" =
class=3D"">either</i><span style=3D"font-size: 14px; font-style: =
normal;" class=3D"">&nbsp;IPv4 </span><i style=3D"font-size: 14px;" =
class=3D"">or</i><span style=3D"font-size: 14px;" class=3D"">&nbsp;IPv6 =
on any given adjacency, depending on which LIEs it has seen from =
the&nbsp;neighbor. If it has seen both IPv4 and IPv6 LIEs from the =
neighbor, it will prefer IPv4.</span></font></div><div class=3D""><br =
class=3D""></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D"">RE&gt; Can it support ipv4 and =
ipv6 double stack?</font></div><div class=3D""><font face=3D"Avenir-Book" =
style=3D"font-size: 14px;" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Avenir-Book" style=3D"font-size: 14px;" =
class=3D"">Yes, RIFT-Python can run on a dual-stack system that runs =
both IPv4 and IPv6. It can also run on an IPv4-only system as well as on =
an IPv6-only system.</font></div><div class=3D""><font =
face=3D"Avenir-Book" style=3D"font-size: 14px;" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Avenir-Book" =
class=3D""><span style=3D"font-size: 14px;" class=3D"">As mentioned =
above, LIE packets will always be sent using IPv4 *and* IPv6, =
whereas&nbsp;flooding (TIDE/TIRE/TIE packets) will be sent *either* =
using IPv4 *or* IPv6, but either way the TIE packets will cary *both* =
IPv4 *and* IPv6 prefixes.</span></font></div><div class=3D""><font =
face=3D"Avenir-Book" class=3D""><span style=3D"font-size: 14px;" =
class=3D""><br class=3D""></span></font></div><div class=3D""><font =
face=3D"Avenir-Book" class=3D""><span style=3D"font-size: 14px;" =
class=3D"">=E2=80=94 Bruno</span></font></div><div class=3D""><font =
face=3D"arial" class=3D""><span style=3D"font-size: 14px;" class=3D""><br =
class=3D""></span></font><div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">On Jul 11, 2019, at 11:33 AM, <a =
href=3D"mailto:xu.benchong@zte.com.cn" =
class=3D"">xu.benchong@zte.com.cn</a> wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"zcontentRow"><p style=3D"font-size:14px;font-family:arial;" =
class=3D"">Hi,&nbsp;<span style=3D"font-family: Calibri, Arial, =
Helvetica, sans-serif; font-size: 16px; line-height: 22.8571434020996px; =
background-color: rgb(255, 255, 255);" class=3D"">Bruno</span></p><p =
style=3D"font-size:14px;font-family:arial;" class=3D""><span =
style=3D"font-family: sans-serif;" class=3D"">I read part of your RIFT =
code, thank you for your great job!</span></p><p class=3D"">When sending =
LIE messages, as long as there is a v4 address, v4 will be used first, =
so we will get v4 next hop.</p><p class=3D"">----------</p><div =
style=3D"font-size: 14px; font-family: arial;" class=3D""><span =
style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size: =
16px; line-height: 22.8571434020996px; background-color: rgb(255, 255, =
255);" class=3D""></span><br class=3D"webkit-block-placeholder"></div><p =
class=3D"">&nbsp; &nbsp; def action_start_flooding(self):</p><p =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>=E2=80=A6=E2=80=A6</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp;# =
For sending flooding packets, use whatever IPv4 or IPv6 address we see =
first for the</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; # neighbor, =
preferring the IPv4 address if we know both.</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; if self.neighbor.ipv4_address is not None:</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.rx_info("Start =
IPv4 flooding: send to address %s port %d",</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;self.neighbor.ipv4_address, tx_flood_port)</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
self._flood_tx_ipv4_socket =3D self.create_socket_ipv4_tx_ucast(</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
remote_address=3Dself.neighbor.ipv4_address,</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
port=3Dtx_flood_port)</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
else:</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; assert =
self.neighbor.ipv6_address is not None</p><p class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; scoped_ipv6_address =3D =
self.neighbor.ipv6_address</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; if "%" not in self.neighbor.ipv6_address:</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
scoped_ipv6_address +=3D "%" + self.physical_interface_name</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.rx_info("Start =
IPv6 flooding: send to address %s port %d",</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;scoped_ipv6_address, tx_flood_port)</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self._flood_tx_ipv6_socket =3D =
self.create_socket_ipv6_tx_ucast(</p><p class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
remote_address=3Dscoped_ipv6_address,</p><p class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; port=3Dtx_flood_port)</p><p =
style=3D"font-size:14px;font-family:arial;" class=3D"">SPF calculation =
will calculate the nexthop of v4 and v6 at the same time.<span =
style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size: =
16px; line-height: 22.8571434020996px; background-color: rgb(255, 255, =
255);" class=3D""><br class=3D""></span></p><p =
style=3D"font-size:14px;font-family:arial;" =
class=3D"">-----------------</p><p class=3D"">&nbsp; &nbsp; def =
set_spf_predecessor(self, destination, nbr_tie_element, =
predecessor_system_id,</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
spf_direction):</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
destination.add_predecessor(predecessor_system_id)</p><p class=3D"">&nbsp;=
 &nbsp; &nbsp; &nbsp; if (nbr_tie_element is not None) and =
(predecessor_system_id =3D=3D self.system_id):</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for link_id_pair in =
nbr_tie_element.link_ids:</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; nhop =3D =
self.interface_id_to_ipv4_next_hop(link_id_pair.local_id)</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if =
nhop:</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; destination.add_ipv4_next_hop(nhop)</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nhop =
=3D self.interface_id_to_ipv6_next_hop(link_id_pair.local_id)</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if =
nhop:</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; destination.add_ipv6_next_hop(nhop)</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; else:</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dest_table =3D =
self._spf_destinations[spf_direction]</p><p class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
destination.inherit_next_hops(dest_table[predecessor_system_id])</p><p =
style=3D"font-size:14px;font-family:arial;" class=3D"">The RIB table =
only selects the same AF nexthop</p><p =
style=3D"font-size:14px;font-family:arial;" =
class=3D"">--------------</p><p class=3D"">&nbsp; &nbsp; def =
spf_install_routes_in_rib(self, spf_direction):</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; =E2=80=A6=E2=80=A6</p><p class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prefix =3D dest_key</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if =
prefix.ipv4prefix is not None:</p><p class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; next_hops =3D =
dest.ipv4_next_hops</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; route_table =3D self._ipv4_rib</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
else:</p><p class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; assert prefix.ipv6prefix is not None</p><p =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; next_hops =3D dest.ipv6_next_hops</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
route_table =3D self._ipv6_rib</p><p class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if next_hops:</p><p class=3D"">&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rte =3D =
route.Route(prefix, owner, next_hops)</p><p class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
route_table.put_route(rte)</p><p =
style=3D"font-size:14px;font-family:arial;" class=3D"">Is it possible to =
generate a valid v6 rib table as long as v4 address of the inteface is =
valid? Can it support ipv4 and ipv6 double stack?</p><p =
style=3D"font-size:14px;font-family:arial;" class=3D"">Thanks!<br =
class=3D""></p><p style=3D"font-size:14px;font-family:arial;" =
class=3D""><span style=3D"font-family: arial; line-height: 21px;" =
class=3D"">Benchong</span></p><p =
style=3D"font-size:14px;font-family:arial;" class=3D""><span =
style=3D"font-family: arial; line-height: 21px;" class=3D""><br =
class=3D""></span></p><div class=3D""><div class=3D"zhistoryRow" =
style=3D"display:block"><div class=3D"zhistoryDes" style=3D"width: 100%; =
height: 28px; line-height: 28px; background-color: #E0E5E9; color: =
#1388FF; text-align: center;" =
language-data=3D"HistoryOrgTxt">=E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6</div>=
<div id=3D"zwriteHistoryContainer" class=3D""><div class=3D"zhistoryPanel =
control-group"><div class=3D"zhistoryHeader" style=3D"padding: 8px; =
background-color: #F5F6F8;"><div class=3D""><strong =
language-data=3D"HistorySenderTxt" class=3D"">=E5=8F=91=E4=BB=B6=E4=BA=BA=EF=
=BC=9A</strong><span class=3D"zreadUserName">AntoniPrzygienda &lt;<a =
href=3D"mailto:prz@juniper.net" =
class=3D"">prz@juniper.net</a>&gt;</span></div><div class=3D""><strong =
language-data=3D"HistoryTOTxt" class=3D"">=E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=
=9A</strong><span class=3D"zreadUserName" style=3D"display: =
inline;">=E5=BE=90=E6=9C=AC=E5=B4=8710065053;</span></div><div =
class=3D""><strong language-data=3D"HistoryCCTxt" =
class=3D"">=E6=8A=84=E9=80=81=E4=BA=BA=EF=BC=9A</strong><span =
class=3D"zreadUserName" style=3D"display: inline;">Jeffrey (Zhaohui) =
Zhang &lt;<a href=3D"mailto:zzhang@juniper.net" =
class=3D"">zzhang@juniper.net</a>&gt;;</span><span class=3D"zreadUserName"=
 style=3D"display: inline;">=E5=BC=A0=E5=BE=8100007940;</span><span =
class=3D"zreadUserName" style=3D"display: inline;"><a =
href=3D"mailto:rift@ietf.org" class=3D"">rift@ietf.org</a> &lt;<a =
href=3D"mailto:rift@ietf.org" =
class=3D"">rift@ietf.org</a>&gt;;</span></div><div class=3D""><strong =
language-data=3D"HistoryDateTxt" class=3D"">=E6=97=A5 =E6=9C=9F =
=EF=BC=9A</strong><span class=3D"">2019=E5=B9=B407=E6=9C=8811=E6=97=A5 =
11:52</span></div><div class=3D""><strong =
language-data=3D"HistorySubjectTxt" class=3D"">=E4=B8=BB =E9=A2=98 =
=EF=BC=9A</strong><span class=3D"zreadTitle"><strong class=3D"">Re: =
Re:[Rift] Ipv4 and ipv6 cooperating in =
rift</strong></span></div></div><div class=3D"zhistoryContent"><div =
class=3D""><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dgb2312" class=3D""><div style=3D"font-family: Calibri, Arial, =
Helvetica, sans-serif; font-size: 12pt;" class=3D"">Benchong, what you =
seem to talk about is originating packets and it's the source that =
decides whether it sends v4 or v6 and the IP fabric with RIFT just =
forwards the packet, it cannot change in the middle the IP address =
family in which the packet is carried &nbsp;obviously so there is no =
decision to be made which IP AF is used, only which GW needs to be =
installed on the route nexthop. But yes, an implementaton can choose to =
forward v4 packets using the MAC address of a v6 gateway, a highly =
desirable behavior since &nbsp;with that, the fabric can be completely =
global address free without any config (just ND) and do v4 fine.&nbsp; =
<br class=3D""> </div><br class=3D""> <div style=3D"font-family: =
Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=3D"">yes, =
an implementation may choose to prefer v4 GW for v4 packets and v6 GW =
for v6 packets but normally it's the same MAC unless the deployment is =
very strange @ which point knobs to control that may be necessary, =
something which is implementation specific. <br class=3D""> </div><br =
class=3D""> <div style=3D"font-family: Calibri, Arial, Helvetica, =
sans-serif; font-size: 12pt;" class=3D"">So RIFT just floods the TIEs on =
any AF with prefixes of all AFs, the computation computes the route with =
directly attached next-hop which has to resolve to MAC in any AF really =
and then packet can be forwarded ... <br class=3D""> </div><br class=3D"">=
 <div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; =
font-size: 12pt;" class=3D"">implement it and play with it, we have @ =
least 2 implementations already that work fine doing that ... <br =
class=3D""> </div><br class=3D""> <div style=3D"font-family: Calibri, =
Arial, Helvetica, sans-serif; font-size: 12pt;" class=3D"">Yes, the =
closest analogy is v4 in BGP with v6 nexthops if you really want to =
think that way but RIFT is much simpler since the nhop is always =
directly connected and we don't talk about anything like v4ov6 or v6ov4 =
tunneling and so on ... <br class=3D""> </div><br class=3D""> <div =
style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size: =
12pt;" class=3D"">makes sense? <br class=3D""> </div><br class=3D""> =
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; =
font-size: 12pt;" class=3D"">--- tony <br class=3D""> </div><br =
class=3D""> <div class=3D""><br class=3D""> <hr tabindex=3D"-1" =
style=3D"display:inline-block; width:98%" class=3D""><div =
id=3D"divRplyFwdMsg" dir=3D"ltr" class=3D""><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D""><strong =
class=3D"">From:</strong> <a href=3D"mailto:xu.benchong@zte.com.cn" =
class=3D"">xu.benchong@zte.com.cn</a> &lt;<a =
href=3D"mailto:xu.benchong@zte.com.cn" =
class=3D"">xu.benchong@zte.com.cn</a>&gt;<br class=3D""> <strong =
class=3D"">Sent:</strong> Wednesday, July 10, 2019 8:39 PM<br class=3D""> =
<strong class=3D"">To:</strong> Antoni Przygienda<br class=3D""> <strong =
class=3D"">Cc:</strong> Jeffrey (Zhaohui) Zhang; <a =
href=3D"mailto:EXT-zhang.zheng@zte.com.cn" =
class=3D"">EXT-zhang.zheng@zte.com.cn</a>; <a =
href=3D"mailto:rift@ietf.org" class=3D"">rift@ietf.org</a><br class=3D""> =
<strong class=3D"">Subject:</strong> Re:[Rift] Ipv4 and ipv6 cooperating =
in rift</span> &nbsp;</div><div class=3D""><div class=3D"x_zcontentRow"><p=
 style=3D"font-size:14px; font-family:arial" class=3D"">Hi tony</p><p =
style=3D"font-size:14px; font-family:arial" class=3D"">Thanks for your =
explanation, and I have already understood your opinion on v4v6 =
forwarding.</p><p class=3D"">The difference between RIFT and other =
routing protocols is the consistency of packets AF and routes AF. Isis =
is in L2 encapsulation that solves different address families through =
multiple topologies. Ospf and rip are strictly distinguished in v4v6. =
Rift &nbsp;is actually closer to BGP.</p><p class=3D"">When the =
interface has both v4 and v6 addresses (or ND enabled), the protocol =
uses v4 or v6 or v4v6 address encapsulation. It will be better if =
protocol gave the recommended behavior. Otherwise, different people will =
give different solutions, which will &nbsp;cause protocol conformance =
problem.&nbsp;</p><p class=3D"">The options we can choose are:</p><p =
class=3D"">a) ND enable v6 first:</p><p class=3D"">If v6 address valid =
AND ND enable:</p><p class=3D"">&nbsp; &nbsp; &nbsp;V6 packet</p><p =
class=3D"">Else if v4 address valid:</p><p class=3D"">&nbsp; &nbsp; =
&nbsp;V4 packet</p><p class=3D"">b) v4 first</p><p class=3D"">If v4 =
address valid:</p><p class=3D"">&nbsp; &nbsp; &nbsp;V4 packet</p><p =
class=3D"">Else if v6 address valid(AND ND enable):</p><p =
class=3D"">&nbsp; &nbsp; &nbsp;V6 packet</p><p class=3D"">c) coexistence =
of v4v6</p><p class=3D"">If v4 address valid:</p><p class=3D"">&nbsp; =
&nbsp; &nbsp;V4 packet</p><p class=3D"">If v6 address valid(AND ND =
enable):</p><p class=3D"">&nbsp; &nbsp; &nbsp;V6 packet</p><p =
class=3D"">Confused on both the sending and receiving sides.</p><p =
class=3D"">c) will further have a GW selection problem, preferring to =
choose the nexthop of the same address family with the prefix, or v4 =
first.</p><p style=3D"font-size:14px; font-family:arial" class=3D"">I'd =
like the protocol recommends a default behavior and may provides a =
control method in yang.</p><p style=3D"font-size:14px; =
font-family:arial" class=3D"">Thanks!</p><p style=3D"font-size:14px; =
font-family:arial" class=3D"">Benchong</p><p style=3D"font-size:14px; =
font-family:arial" class=3D""><br class=3D""> </p><div class=3D""><div =
class=3D"x_zhistoryRow" style=3D"display:block"><div =
class=3D"x_zhistoryDes" style=3D"width:100%; height:28px; =
line-height:28px; background-color:#E0E5E9; color:#1388FF; =
text-align:center">=E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6</div><div =
id=3D"x_zwriteHistoryContainer" class=3D""><div class=3D"x_control-group =
x_zhistoryPanel"><div class=3D"x_zhistoryHeader" style=3D"padding:8px; =
background-color:#F5F6F8"><div class=3D""><strong =
class=3D"">=E5=8F=91=E4=BB=B6=E4=BA=BA=EF=BC=9A</strong><span =
class=3D"x_zreadUserName">AntoniPrzygienda &lt;<a =
href=3D"mailto:prz@juniper.net" =
class=3D"">prz@juniper.net</a>&gt;</span></div><div class=3D""><strong =
class=3D"">=E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=9A</strong><span =
class=3D"x_zreadUserName" =
style=3D"display:inline">=E5=BE=90=E6=9C=AC=E5=B4=8710065053;</span></div>=
<div class=3D""><strong class=3D"">=E6=8A=84=E9=80=81=E4=BA=BA=EF=BC=9A</s=
trong><span class=3D"x_zreadUserName" style=3D"display:inline">Jeffrey =
(Zhaohui) Zhang &lt;<a href=3D"mailto:zzhang@juniper.net" =
class=3D"">zzhang@juniper.net</a>&gt;;</span><span =
class=3D"x_zreadUserName" =
style=3D"display:inline">=E5=BC=A0=E5=BE=8100007940;</span><span =
class=3D"x_zreadUserName" style=3D"display:inline"><a =
href=3D"mailto:rift@ietf.org" class=3D"">rift@ietf.org</a> &nbsp;&lt;<a =
href=3D"mailto:rift@ietf.org" =
class=3D"">rift@ietf.org</a>&gt;;</span></div><div class=3D""><strong =
class=3D"">=E6=97=A5 =E6=9C=9F =EF=BC=9A</strong><span =
class=3D"">2019=E5=B9=B407=E6=9C=8810=E6=97=A5 23:12</span></div><div =
class=3D""><strong class=3D"">=E4=B8=BB =E9=A2=98 =EF=BC=9A</strong><span =
class=3D"x_zreadTitle"><strong class=3D"">Re: Re:[Rift] Ipv4 and ipv6 =
cooperating in rift</strong></span></div></div><div =
class=3D"x_zhistoryContent"><div class=3D""><div style=3D"font-family: =
Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=3D"">Hey =
Benchong, that's an over-interpretation, the spec is looser than that =
but as far I saw sufficient. Section 5.2.2. <br class=3D""> </div><br =
class=3D""> <div style=3D"font-family: Calibri, Arial, Helvetica, =
sans-serif; font-size: 12pt;" class=3D"">a) Specification does not =
prohibit RIFT from using _any_ valid IPv6 address on the interface to =
send IPv6 LIEs. The receiver is supposed to pick up that source address =
and use it as destination when sending LIEs over v6 and/or TIEs with the =
receving interface &nbsp;&nbsp;as gateway. Specification does NOT spell =
out what happens e.g. on mismatched IP subnets on both sides and so on, =
situation here is similar to ISIS and different scenarios such as =
unnumbered links and so on<br class=3D""> </div><div style=3D"font-family:=
 Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=3D"">b) =
If you want the "laziest" possible implementation then in fact yes, you =
can fall back on <br class=3D""> </div><br class=3D""> <div =
style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size: =
12pt;" class=3D"">" <pre class=3D"">   All RIFT routers MUST support =
IPv4 forwarding and MAY support IPv6    forwarding.  A three way =
adjacency over IPv6 addresses implies    support for IPv4 =
forwarding.</pre> "</div><br class=3D""> <div style=3D"font-family: =
Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=3D"">which =
makes v4ov6 forwarding inherent part of RIFT. That assumes however that =
receiving neighbor does support V6 (which the spec does NOT mandate) and =
nothing will happen if it doesn't. Therefore all RIFT implementation I =
saw so far send both v4 and v6 which &nbsp;&nbsp;allows the neighbor to =
only receive v4 and forward using v4 gateways if it doesn't support V6. =
In case both v4 and v6 AFs are established, it is up to the =
implementation which/how it resolves the gateways and there are many =
interesting advanced issues such &nbsp;&nbsp;as mixture of spines with =
v4 and v6 nexthops and how to form ECMP amongst them that the spec does =
obviously not address since it's all very implementation and silicon =
specific. <br class=3D""> </div><br class=3D""> <div style=3D"font-family:=
 Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=3D"">--- =
tony <br class=3D""> </div><hr tabindex=3D"-1" =
style=3D"display:inline-block; width:98%" class=3D""><div =
id=3D"x_divRplyFwdMsg" dir=3D"ltr" class=3D""><span style=3D"font-family: =
Calibri, sans-serif; font-size: 11pt;" class=3D""><strong =
class=3D"">From:</strong> <a href=3D"mailto:xu.benchong@zte.com.cn" =
class=3D"">xu.benchong@zte.com.cn</a> &lt;<a =
href=3D"mailto:xu.benchong@zte.com.cn" =
class=3D"">xu.benchong@zte.com.cn</a>&gt;<br class=3D""> <strong =
class=3D"">Sent:</strong> Wednesday, July 10, 2019 1:56 AM<br class=3D""> =
<strong class=3D"">To:</strong> Antoni Przygienda<br class=3D""> <strong =
class=3D"">Cc:</strong> Jeffrey (Zhaohui) Zhang; <a =
href=3D"mailto:EXT-zhang.zheng@zte.com.cn" =
class=3D"">EXT-zhang.zheng@zte.com.cn</a>; <a =
href=3D"mailto:rift@ietf.org" class=3D"">rift@ietf.org</a><br class=3D""> =
<strong class=3D"">Subject:</strong> Re:[Rift] Ipv4 and ipv6 cooperating =
in rift</span> &nbsp;</div><div class=3D""><div =
class=3D"x_x_zcontentRow"><p class=3D""><br class=3D""> </p><p =
class=3D"">Tony, thank you for your reply</p><p class=3D"">Can it be =
understood that after the ND is enabled, the v6 address needs to be used =
to build neighbor? In this case, the rift packet of the v4 header is not =
allowed to be sent and received, and both v4 and v6 routes have a v6 =
GW.</p><p style=3D"font-size:14px; font-family:arial" class=3D""><br =
class=3D""> </p><p style=3D"font-size:14px; font-family:arial" =
class=3D""><br class=3D""> </p><div class=3D""><div =
class=3D"x_x_zhistoryRow" style=3D"display:block"><div =
class=3D"x_x_zhistoryDes" style=3D"width:100%; height:28px; =
line-height:28px; background-color:#E0E5E9; color:#1388FF; =
text-align:center">=E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6</div><div =
id=3D"x_x_zwriteHistoryContainer" class=3D""><div =
class=3D"x_x_control-group x_x_zhistoryPanel"><div =
class=3D"x_x_zhistoryHeader" style=3D"padding:8px; =
background-color:#F5F6F8"><div class=3D""><strong =
class=3D"">=E5=8F=91=E4=BB=B6=E4=BA=BA=EF=BC=9A</strong><span =
class=3D"x_x_zreadUserName">AntoniPrzygienda &lt;<a =
href=3D"mailto:prz@juniper.net" =
class=3D"">prz@juniper.net</a>&gt;</span></div><div class=3D""><strong =
class=3D"">=E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=9A</strong><span =
class=3D"x_x_zreadUserName" =
style=3D"display:inline">=E5=BE=90=E6=9C=AC=E5=B4=8710065053;</span><span =
class=3D"x_x_zreadUserName" style=3D"display:inline">Jeffrey =
(Zhaohui)Zhang &lt;<a href=3D"mailto:zzhang@juniper.net" =
class=3D"">zzhang@juniper.net</a>&gt;;</span><span =
class=3D"x_x_zreadUserName" =
style=3D"display:inline">=E5=BC=A0=E5=BE=8100007940;</span><span =
class=3D"x_x_zreadUserName" style=3D"display:inline"><a =
href=3D"mailto:rift@ietf.org" class=3D"">rift@ietf.org</a> =
&nbsp;&nbsp;&lt;<a href=3D"mailto:rift@ietf.org" =
class=3D"">rift@ietf.org</a>&gt;;</span></div><div class=3D""><strong =
class=3D"">=E6=97=A5 =E6=9C=9F =EF=BC=9A</strong><span =
class=3D"">2019=E5=B9=B407=E6=9C=8810=E6=97=A5 00:09</span></div><div =
class=3D""><strong class=3D"">=E4=B8=BB =E9=A2=98 =EF=BC=9A</strong><span =
class=3D"x_x_zreadTitle"><strong class=3D"">Re: [Rift] Ipv4 and ipv6 =
cooperating in rift</strong></span></div></div><div =
class=3D"x_x_zhistoryContent"><div class=3D""><div style=3D"font-family: =
Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;" class=3D"">Hey =
Benchong, cc:'ing list, good questions obviously that pop out on =
implementation &nbsp; <br class=3D""> </div><br class=3D""> <div =
style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size: =
12pt;" class=3D""><ol class=3D"x_x_ list-paddingleft-2 x_"><li =
class=3D""><p class=3D"">sending LIE only with v4 will not give you a v6 =
address to send to (since the LIE source address gives the gateway for =
the AF, that's why we send LIE per AF) so you won't have a v6 GW address =
to send TIEs to ;-)</p></li><li class=3D""><p class=3D"">yes, every =
interface is independent. Observe that v6 support implies v4 as the spec =
says (since you can FW v4 without a v4 GW if you have a v6 gateway). =
However, if one side sends v6 only and the other side only v4 they'll =
never go 3-way since they won't &nbsp;&nbsp;&nbsp;be able to receive. We =
just added a sentence to the spec saying that if you don't send an AF =
LIE you MUST NOT receive the same AF LIE since we found that loose end =
in Bruno's implementation when testing security envelopes.&nbsp; It will =
be in -07<br class=3D""></p></li></ol><br class=3D""> <div class=3D""><pre=
 style=3D"background-color: rgb(255, 255, 255); font-family: Menlo; =
font-size: 7.5pt;" class=3D""><span style=3D"background-color:#efefef" =
class=3D"">&lt;</span><span style=3D"color:#000080; =
background-color:#efefef; font-weight:bold" class=3D"">t</span><span =
style=3D"background-color:#efefef" class=3D"">&gt;</span>All RIFT =
routers MUST support IPv4 forwarding and MAY support IPv6<br class=3D""> =
   forwarding. A three way adjacency over IPv6 addresses implies =
support<br class=3D"">    for IPv4 forwarding. <strong class=3D"">A node =
that does not process received IPv6 LIEs<br class=3D""> &nbsp; =
&nbsp;MUST NOT originate IPv6 LIEs.</strong><br class=3D"">    <span =
style=3D"background-color:#efefef" class=3D"">&lt;/</span><span =
style=3D"color:#000080; background-color:#efefef; font-weight:bold" =
class=3D"">t</span><span style=3D"background-color:#efefef" =
class=3D"">&gt;</span></pre> <br class=3D""> </div><ol class=3D"x_x_ =
list-paddingleft-2 x_"><li class=3D""><p class=3D"">IPv6/IPv4 prefix can =
be mixed in Prefix TIEs. Prefix TIEs do NOT care which interface/AF they =
are sent over. <br class=3D""></p></li><li class=3D""><p class=3D"">how =
you build forwarding table and which gateways you use is implemenation =
dependent but yes, you got the flavor. though your assumption of "Ipv6 =
destination with ipv4 nexthop" is optimistic. every silicon does v4 so =
v6 can imply v4, implying v4 fwd'ing &nbsp;&nbsp;&nbsp;allows v6 =
forwarding fails on good amount of silicon. But again, those are all =
implementation knobs, spec only says "v6 implies v4" which means "you =
better fwd. v4 over v6 nexthops if you see v6 LIEs only"<br =
class=3D""></p></li></ol><div class=3D"">Observe that node TIEs are =
_not_ carrying the supported AFs on each interface since I think it =
would lead to undesirable attempts to deploy (some links can do v6) =
topologies which defeat the purpose of ZTP/simplicity of RIFT. v6 =
implies v4, if someone &nbsp;&nbsp;&nbsp;wants to fwd' v6 over a fabric =
where certain links are v4 computations get really weird and =
operationally such a thing is probably a nightmare anyway. And getting =
v6 working is trivial, just flip on ND and you're in business (at least =
control plane wise &nbsp;;-)<br class=3D""> </div><br class=3D""> <div =
class=3D"">The spec is noit giving implementation advice, it just =
specifies behavior. In case of doubt looks @ Bruno';s open source. Bruno =
implemented the whole LIE without ever talking to me and it interop'ed =
day one without problems. <br class=3D""> </div><br class=3D""> <div =
class=3D"">When you're ready with your implementation to interop, =
Bruno's code has nice framework you can plug in against open source =
&amp; Juniper implementation easily <br class=3D""> </div><br class=3D""> =
<div class=3D"">--- tony <br class=3D""> </div></div><hr tabindex=3D"-1" =
style=3D"display:inline-block; width:98%" class=3D""><div =
id=3D"x_x_divRplyFwdMsg" dir=3D"ltr" class=3D""><span style=3D"font-size: =
11pt; font-family: Calibri, sans-serif;" class=3D""><strong =
class=3D"">From:</strong> <a href=3D"mailto:xu.benchong@zte.com.cn" =
class=3D"">xu.benchong@zte.com.cn</a> &lt;<a =
href=3D"mailto:xu.benchong@zte.com.cn" =
class=3D"">xu.benchong@zte.com.cn</a>&gt;<br class=3D""> <strong =
class=3D"">Sent:</strong> Tuesday, July 9, 2019 5:08 AM<br class=3D""> =
<strong class=3D"">To:</strong> Antoni Przygienda; Jeffrey (Zhaohui) =
Zhang; <a href=3D"mailto:EXT-zhang.zheng@zte.com.cn" =
class=3D"">EXT-zhang.zheng@zte.com.cn</a><br class=3D""> <strong =
class=3D"">Subject:</strong> [Rift] Ipv4 and ipv6 cooperating in =
rift</span> &nbsp;</div><div class=3D""><div =
class=3D"x_x_x_zcontentRow"><div class=3D""><div =
class=3D"x_x_x_zcontentRow"><div class=3D""><div =
class=3D"x_x_x_zcontentRow"><div class=3D""><div =
class=3D"x_x_x_zcontentRow"><div style=3D"box-sizing: border-box; =
margin-top: 0px; margin-bottom: 0px; white-space: normal; min-height: =
14px; line-height: 20px; font-family: arial; background-color: rgb(255, =
255, 255); outline: 0px !important;" class=3D"">Hi<br =
style=3D"box-sizing:border-box; outline:0px!important" class=3D""> =
</div><div style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 0px; white-space: normal; min-height: 14px; line-height: =
20px; font-family: arial; background-color: rgb(255, 255, 255); outline: =
0px !important;" class=3D"">I have some questions about ipv4 and ipv6 =
cooperating in rift.</div><div style=3D"box-sizing: border-box; =
margin-top: 0px; margin-bottom: 0px; white-space: normal; min-height: =
14px; font-family: Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft =
Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, Lucida, Helvetica, =
sans-serif; line-height: 20px; background-color: rgb(255, 255, 255); =
outline: 0px !important;" class=3D"">Ip head of the rift packet can be =
V4 or V6, and the prefix in TIE also suport V4 or v6.&nbsp;</div><div =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; =
white-space: normal; min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=
=93, &quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, =
Lucida, Helvetica, sans-serif; line-height: 20px; background-color: =
rgb(255, 255, 255); outline: 0px !important;" class=3D"">Can it support =
the following situations:</div><div style=3D"box-sizing: border-box; =
margin-top: 0px; margin-bottom: 0px; white-space: normal; min-height: =
14px; font-family: Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft =
Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, Lucida, Helvetica, =
sans-serif; line-height: 20px; background-color: rgb(255, 255, 255); =
outline: 0px !important;" class=3D""><br style=3D"box-sizing:border-box; =
outline:0px!important" class=3D""> </div><div style=3D"box-sizing: =
border-box; margin-top: 0px; margin-bottom: 0px; white-space: normal; =
min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=93, =
&quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, Lucida, =
Helvetica, sans-serif; line-height: 20px; background-color: rgb(255, =
255, 255); outline: 0px !important;" class=3D"">1=E3=80=81A rift =
interface which&nbsp;send LIE with ipv4 head receiving LIE with IPv6 =
head;</div><div style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 0px; white-space: normal; min-height: 14px; font-family: =
Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft Yahei&quot;, &quot;Lucida =
Grande&quot;, Verdana, Lucida, Helvetica, sans-serif; line-height: 20px; =
background-color: rgb(255, 255, 255); outline: 0px !important;" =
class=3D"">A rift interface which&nbsp;send LIE with ipv6 head receiving =
LIE with IPv4 head;</div><div style=3D"box-sizing: border-box; =
margin-top: 0px; margin-bottom: 0px; white-space: normal; min-height: =
14px; font-family: Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft =
Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, Lucida, Helvetica, =
sans-serif; line-height: 20px; background-color: rgb(255, 255, 255); =
outline: 0px !important;" class=3D"">Can they build 3-Way =
neighbor?</div><div style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 0px; white-space: normal; min-height: 14px; font-family: =
Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft Yahei&quot;, &quot;Lucida =
Grande&quot;, Verdana, Lucida, Helvetica, sans-serif; line-height: 20px; =
background-color: rgb(255, 255, 255); outline: 0px !important;" =
class=3D""><br style=3D"box-sizing:border-box; outline:0px!important" =
class=3D""> </div><div style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 0px; white-space: normal; min-height: 14px; font-family: =
Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft Yahei&quot;, &quot;Lucida =
Grande&quot;, Verdana, Lucida, Helvetica, sans-serif; line-height: 20px; =
background-color: rgb(255, 255, 255); outline: 0px !important;" =
class=3D"">2=E3=80=81Some interfaces in a rift instance send ipv4 head =
packets=EF=BC=8C and others in the same instance send ipv6 head =
packets=EF=BC=9B</div><div style=3D"box-sizing: border-box; margin-top: =
0px; margin-bottom: 0px; white-space: normal; min-height: 14px; =
font-family: Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft Yahei&quot;, =
&quot;Lucida Grande&quot;, Verdana, Lucida, Helvetica, sans-serif; =
line-height: 20px; background-color: rgb(255, 255, 255); outline: 0px =
!important;" class=3D""><br style=3D"box-sizing:border-box; =
outline:0px!important" class=3D""> </div><div style=3D"box-sizing: =
border-box; margin-top: 0px; margin-bottom: 0px; white-space: normal; =
min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=93, =
&quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, Lucida, =
Helvetica, sans-serif; line-height: 20px; background-color: rgb(255, =
255, 255); outline: 0px !important;" class=3D"">3=E3=80=81Ipv4 head TIE =
packet fill ipv6 prefix=EF=BC=9B</div><div style=3D"box-sizing: =
border-box; margin-top: 0px; margin-bottom: 0px; white-space: normal; =
min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=93, =
&quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, Lucida, =
Helvetica, sans-serif; line-height: 20px; background-color: rgb(255, =
255, 255); outline: 0px !important;" class=3D"">&nbsp; &nbsp;Ipv6 head =
TIE packet fill ipv4 prefix=EF=BC=9B(RIFT-06 5.2.2: All RIFT routers =
MUST support IPv4 forwarding and MAY support IPv6</div><div =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; =
white-space: normal; min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=
=93, &quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, =
Lucida, Helvetica, sans-serif; line-height: 20px; background-color: =
rgb(255, 255, 255); outline: 0px !important;" class=3D"">&nbsp; =
&nbsp;forwarding. &nbsp;A three way adjacency over IPv6 addresses =
implies</div><div style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 0px; white-space: normal; min-height: 14px; font-family: =
Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft Yahei&quot;, &quot;Lucida =
Grande&quot;, Verdana, Lucida, Helvetica, sans-serif; line-height: 20px; =
background-color: rgb(255, 255, 255); outline: 0px !important;" =
class=3D"">&nbsp; &nbsp;support for IPv4 forwarding.)</div><div =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; =
white-space: normal; min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=
=93, &quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, =
Lucida, Helvetica, sans-serif; line-height: 20px; background-color: =
rgb(255, 255, 255); outline: 0px !important;" class=3D""><br =
style=3D"box-sizing:border-box; outline:0px!important" class=3D""> =
</div><div style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 0px; white-space: normal; min-height: 14px; font-family: =
Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft Yahei&quot;, &quot;Lucida =
Grande&quot;, Verdana, Lucida, Helvetica, sans-serif; line-height: 20px; =
background-color: rgb(255, 255, 255); outline: 0px !important;" =
class=3D"">4=E3=80=81In rib table of the rift:</div><div =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; =
white-space: normal; min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=
=93, &quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, =
Lucida, Helvetica, sans-serif; line-height: 20px; background-color: =
rgb(255, 255, 255); outline: 0px !important;" class=3D"">&nbsp; =
&nbsp;Ipv4 destination with ipv6 nexthop;</div><div style=3D"box-sizing: =
border-box; margin-top: 0px; margin-bottom: 0px; white-space: normal; =
min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=93, =
&quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, Lucida, =
Helvetica, sans-serif; line-height: 20px; background-color: rgb(255, =
255, 255); outline: 0px !important;" class=3D"">&nbsp; &nbsp;Ipv6 =
destination with ipv4 nexthop;&nbsp;</div><div style=3D"box-sizing: =
border-box; margin-top: 0px; margin-bottom: 0px; white-space: normal; =
min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=93, =
&quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, Lucida, =
Helvetica, sans-serif; line-height: 20px; background-color: rgb(255, =
255, 255); outline: 0px !important;" class=3D"">&nbsp; &nbsp;Ipv4 =
destination with both ipv4 nexthop and ipv6 nexthop;</div><div =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; =
white-space: normal; min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=
=93, &quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, =
Lucida, Helvetica, sans-serif; line-height: 20px; background-color: =
rgb(255, 255, 255); outline: 0px !important;" class=3D"">&nbsp; =
&nbsp;Ipv6 destination with both ipv4 nexthop and ipv6 nexthop;</div><p =
style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; =
margin-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; =
font-family:Arial,=E5=AE=8B=E4=BD=93,'Microsoft Yahei','Lucida =
Grande',Verdana,Lucida,Helvetica,sans-serif; line-height:20px; =
outline:0px!important; background-color:rgb(255,255,255)" =
class=3D"">&nbsp; &nbsp;<br class=3D"webkit-block-placeholder"></p><div =
style=3D"box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; =
white-space: normal; min-height: 14px; font-family: Arial, =E5=AE=8B=E4=BD=
=93, &quot;Microsoft Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, =
Lucida, Helvetica, sans-serif; line-height: 20px; background-color: =
rgb(255, 255, 255); outline: 0px !important;" class=3D"">5=E3=80=81The =
ip head type(v4 or v6) can be configured in rift interface or =
instance.</div><div style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 0px; white-space: normal; min-height: 14px; font-family: =
Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft Yahei&quot;, &quot;Lucida =
Grande&quot;, Verdana, Lucida, Helvetica, sans-serif; line-height: 20px; =
background-color: rgb(255, 255, 255); outline: 0px !important;" =
class=3D""><br class=3D""> </div><div style=3D"box-sizing: border-box; =
margin-top: 0px; margin-bottom: 0px; white-space: normal; min-height: =
14px; font-family: Arial, =E5=AE=8B=E4=BD=93, &quot;Microsoft =
Yahei&quot;, &quot;Lucida Grande&quot;, Verdana, Lucida, Helvetica, =
sans-serif; line-height: 20px; background-color: rgb(255, 255, 255); =
outline: 0px !important;" class=3D"">It will be better if there are =
clear instructions in rift protocol.</div><div style=3D"box-sizing: =
border-box; margin-top: 0px; margin-bottom: 0px; white-space: normal; =
min-height: 14px; line-height: 20px; font-family: arial; =
background-color: rgb(255, 255, 255); outline: 0px !important;" =
class=3D""><br style=3D"box-sizing:border-box; outline:0px!important" =
class=3D""> </div><div style=3D"box-sizing: border-box; margin-top: 0px; =
margin-bottom: 0px; white-space: normal; min-height: 14px; line-height: =
20px; font-family: arial; background-color: rgb(255, 255, 255); outline: =
0px !important;" class=3D"">Thanks=EF=BC=81</div><div style=3D"box-sizing:=
 border-box; margin-top: 0px; margin-bottom: 0px; white-space: normal; =
min-height: 14px; line-height: 20px; font-family: arial; =
background-color: rgb(255, 255, 255); outline: 0px !important;" =
class=3D"">Benchong</div><div style=3D"margin-top: 0px; margin-bottom: =
0px; font-size: 14px; font-family: arial;" class=3D""><br class=3D""> =
</div><div style=3D"margin-top: 0px; margin-bottom: 0px; font-size: =
14px; font-family: arial;" class=3D""><br class=3D""> </div><div =
style=3D"margin-top: 0px; margin-bottom: 0px; font-size: 14px; =
font-family: arial;" class=3D""><br class=3D""> </div><div =
style=3D"margin-top: 0px; margin-bottom: 0px; font-size: 14px; =
font-family: arial;" class=3D""><br class=3D""> =
</div></div></div></div></div></div></div></div></div></div></div></div></=
div></div></div><p class=3D""><br class=3D""> =
</p></div></div></div></div></div></div></div></div><p class=3D""><br =
class=3D""> </p></div></div></div></div></div></div></div></div></div><p =
class=3D""><br class=3D""></p></div></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_9E6FD321-4084-4951-9BC4-75A07794C672--


From nobody Fri Jul 12 07:02:47 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 48DBC1200E7 for <rift@ietfa.amsl.com>; Fri, 12 Jul 2019 07:02:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 3XBcvvG2Hoi3 for <rift@ietfa.amsl.com>; Fri, 12 Jul 2019 07:02:41 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 F1F091200CD for <rift@ietf.org>; Fri, 12 Jul 2019 07:02:40 -0700 (PDT)
Received: from pps.filterd (m0108157.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6CDxDSf027857; Fri, 12 Jul 2019 07:02:38 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=13EyqMV7LOzDckcKMIWmKEwla2Hrj8bRbkj6mq8h8tE=; b=2Xvw/4djhyQPrKoHIiiW5o7DooJbY5kEu512ossLpiaq7DHv+YenWEa0qliPIZ9KtyJR N/caqIouaMlfmwQ/CmsrLahO1iYZ1iCfQOjLdJcfirFL3Mnv4aCJz6vzXr0F77zvM++T XulMizeaXPcZDwjr7VMrqz24aSUxxD62RldOVGzj/WabXEsCfq5yc5ecx3/K+nXIEm2q 7CL8WeiUReOBFR+UAuypaD305nl6D7oN200PKvCcbJD5dRrs8irsc/f/rweq+ovE3izE IX3D0QHwg9aXp1F/lykxhYoVI+r7D5bkf1bzmphxP3cvmQu28URxgOrEl4qOTEuudvDs xQ== 
Received: from nam02-bl2-obe.outbound.protection.outlook.com (mail-bl2nam02lp2055.outbound.protection.outlook.com [104.47.38.55]) by mx0a-00273201.pphosted.com with ESMTP id 2tpswer5p8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 12 Jul 2019 07:02:38 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jt3qac99x4LURlEL6cqMKjNUWpSDL53ggiGZwvsbYOtQ7VFtfDDJSzl5avE61OfShZqmP2c4SfPsap5ZxLYcAy4WpOroNMC2KE8DME0ny2nogmWUf7lpaXyfTpK9pyEMWP2NDBSaP0a3X+JrsZLnHOE036DCDGb0OSBg6T+sKVi9dsjIe76MGcrGtb4f1tuP6p1X0IXI0eVuFL3odyTVIw1Py04aUOWv/jlhC2xc7wogysm6g8kX0CYuklhUSWbTPim700qst+tyuDLSa0VFq2ev9NmqIbs6Hnoa/CCiufFtn7SSHr9P9WiVVU5TKpM0dQH+yRXDvLi94NIUgRaH7g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=13EyqMV7LOzDckcKMIWmKEwla2Hrj8bRbkj6mq8h8tE=; b=iOAPZYAwHEWzBOz5flBlmcw9H/JsmXksTvSUnhjfOElK16rUbU3/9lSFGJjPdP0u3VEA4vqn46IqoVzbeH6aXxVaClTDLaBDoGLNIrFe7BBfe6basD8GdqLpXvCPiZFOxrbH65fFJOpGFYYddGE+3F39FaGXu7CtYk/BMfEDvb+g5U8l+Loqt8iPDsfLwt5txrm/MRtJ5wbyXVqiEqKJwEaVEnPlqZJDqU7vSp1ap27x5cylH9EQMmvT401MCDZTY36qlX1Xkl4eNNu8Yf7TGeJAFtFLFW+082aeCBWl0XVZLd9itBOHl4NAA6ZWnDIkIwukUrXcZA1HdvMY5kyLRQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB3439.namprd05.prod.outlook.com (10.174.248.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2094.6; Fri, 12 Jul 2019 14:02:30 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2073.008; Fri, 12 Jul 2019 14:02:30 +0000
From: Antoni Przygienda <prz@juniper.net>
To: "xu.benchong@zte.com.cn" <xu.benchong@zte.com.cn>
CC: "brunorijsman@gmail.com" <brunorijsman@gmail.com>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: Re:Fw:Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift
Thread-Index: AQHVN8vGZbTZZ+0IyE+CmuEc6N8hfqbFkibdgAE1DgCAADxeqg==
Date: Fri, 12 Jul 2019 14:02:30 +0000
Message-ID: <MWHPR05MB3279A23783994C80FE41F577ACF20@MWHPR05MB3279.namprd05.prod.outlook.com>
References: 201907111733344496218@zte.com.cn, MWHPR05MB32799A20D113C1B541A46ABEACF30@MWHPR05MB3279.namprd05.prod.outlook.com, <201907121820165648357@zte.com.cn>
In-Reply-To: <201907121820165648357@zte.com.cn>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [108.228.12.76]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 895ed6cd-99c3-4763-dfa9-08d706d19475
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB3439; 
x-ms-traffictypediagnostic: MWHPR05MB3439:
x-microsoft-antispam-prvs: <MWHPR05MB3439C84F7DD988107B1605F5ACF20@MWHPR05MB3439.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6108;
x-forefront-prvs: 00963989E5
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(39860400002)(346002)(396003)(366004)(136003)(376002)(189003)(199004)(478600001)(71190400001)(71200400001)(4326008)(7696005)(76176011)(53546011)(2501003)(229853002)(30864003)(2906002)(102836004)(14454004)(6116002)(2351001)(6916009)(186003)(52536014)(66066001)(3846002)(26005)(8676002)(486006)(7736002)(74316002)(11346002)(99286004)(25786009)(5640700003)(5660300002)(6246003)(76116006)(53936002)(19627405001)(6436002)(53946003)(68736007)(66446008)(33656002)(6506007)(5024004)(14444005)(256004)(476003)(81166006)(81156014)(66946007)(8936002)(54906003)(54896002)(9686003)(86362001)(105004)(446003)(316002)(64756008)(66556008)(66476007)(55016002)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB3439; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: c7dT7vHSqjvP/IWzPb1vX6PLwOAtoOkzghPV9UrpNO5WW+KO9pQrPP+x1zO072ZENNNhUTGHzfe8twHcxp23BVsFGITcmtfN3lv7rzD4F+5djJZwTgHsVo7LITh6GkZMrxfZv6LTFO3yuxPixhdqZrnEozb9K0HCohUwpA4TWHhDxXebM9ckrtL4d/niJ/sCNsuX7iVN2CQ/7h3WMjGXv50e+7BmnVwXp6XRt2/xdyZRaOZlNIUotdHIkBrGCZ+32LqobUkH5irKOl10pu67s0Qp1PQ8AYmXHWQZlQRNl0VgbSfNBA2lqnomGdyKVBWamN9Wx6YXx/DU0BGKLORsHc4Fh/ci9ZPx75vt5c8Cn8ctmHSXZpUFXdmsGrbFfnYxUVQlqVPkKx5IHLyKfpN/s3mtihNB1PzIeKBYD7N28NU=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB3279A23783994C80FE41F577ACF20MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 895ed6cd-99c3-4763-dfa9-08d706d19475
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jul 2019 14:02:30.3749 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3439
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-12_04:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907120152
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/IjYgO8Y28x28TJbxOK7nyp6xupw>
Subject: Re: [Rift] Fw:Re: Re: Ipv4 and ipv6 cooperating in rift
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jul 2019 14:02:45 -0000

--_000_MWHPR05MB3279A23783994C80FE41F577ACF20MWHPR05MB3279namp_
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64

QmVuY2hvbmcsIG9rLCB3ZSdyZSBpbiBzeW5jIHRoZW4uDQoNCkl0IHNlZW1lZCBvYnZpb3VzIHRv
IHVzIHRoYXQgc2VuZGluZyBhIHY0IExJRSB3aWxsIGluY2x1ZGUgYSB2NCBzb3VyY2UgYWRkcmVz
cyBhbmQgdjYgZXF1aXZhbGVudGx5IGEgdjYgc291cmNlIGFkZHJlc3MgKHRoZXJlIGlzIG5vIG90
aGVyIHdheSkgYW5kIG9idmlvdXNseSB0aG9zZSBhcmUgdGhlIGRpcmVjdGx5IGNvbm5lY3RlZCBz
byBJIG9taXR0ZWQgYWxsIHRoYXQgaW4gdGhlIHNwZWMuDQoNClNvIHNwZWMgc2F5cyBJTU8gZW5v
dWdoIGFzIGl0IGlzIGFib3V0IHRoZSBMSUUgaXNzdWVzIGluY2x1ZGluZyB0YWxraW5nIGFib3V0
IHNhbWUgbGluayBsb2NhbHMgb24gbXVsdGlwbGUgbGlua3MNCg0KIg0KDQpBbiBpbXBsZW1lbnRh
dGlvbiBNQVkgbGlzdGVuIGFuZCBzZW5kIExJRXMgb24gSVB2NCBhbmQvb3INCklQdjYgbXVsdGlj
YXN0IGFkZHJlc3Nlcy4gIExJRXMgb24gc2FtZSBsaW5rIGFyZSBjb25zaWRlcmVkDQpwYXJ0IG9m
IHRoZSBzYW1lIG5lZ290aWF0aW9uIGluZGVwZW5kZW50IG9uIHRoZSBhZGRyZXNzIGZhbWlseQ0K
dGhleSBhcnJpdmUgb24uIE9ic2VydmUgZnVydGhlcg0KdGhhdCB0aGUgTElFIHNvdXJjZSBhZGRy
ZXNzIG1heSBub3QgaWRlbnRpZnkNCnRoZSBwZWVyIHVuaXF1ZWx5IGluIHVubnVtYmVyZWQgb3Ig
bGluay1sb2NhbCBhZGRyZXNzIGNhc2VzIHNvDQp0aGUgcmVzcG9uc2UgdHJhbnNtaXNzaW9uIE1V
U1Qgb2NjdXIgb3ZlciB0aGUgc2FtZSBpbnRlcmZhY2UgdGhlIExJRXMgaGF2ZSBiZWVuDQpyZWNl
aXZlZCBvbi4gQSBub2RlIENBTiB1c2UgYW55IG9mIHRoZSBhZGphY2VuY3kncyBzb3VyY2UgYWRk
cmVzc2VzIGl0DQpzYXcgaW4NCkxJRXMgb24gdGhlIHNwZWNpZmljIGludGVyZmFjZSBkdXJpbmcg
YWRqYWNlbmN5IGZvcm1hdGlvbiB0byBzZW5kIFRJRXMuDQpUaGF0IGltcGxpZXMgdGhhdCBhbiBp
bXBsZW1lbnRhdGlvbiBNVVNUIGJlIHJlYWR5IHRvIGFjY2VwdCBUSUVzIG9uDQphbGwgYWRkcmVz
c2VzIGl0IHVzZWQgYXMgc291cmNlIG9mIExJRSBmcmFtZXMuDQoNCiINCg0KWWVzLCBkeW5hbWlj
IHdpdGhkcmF3YWwgb2YgQUZzIGlzIGEgcmF0aG9sZSBJIHdvdWxkIGVuY291cmFnZSBlJ29uZSB0
byBzdGF5IGF3YXkgZnJvbS4gSWYgQUYgZ29lcyBhd2F5LCB3ZSByZXNldCB0aGUgYWRqYWNlbmN5
Lg0KDQotLS0gdG9ueQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IHh1
LmJlbmNob25nQHp0ZS5jb20uY24gPHh1LmJlbmNob25nQHp0ZS5jb20uY24+DQpTZW50OiBGcmlk
YXksIEp1bHkgMTIsIDIwMTkgMzoyMCBBTQ0KVG86IEFudG9uaSBQcnp5Z2llbmRhDQpDYzogYnJ1
bm9yaWpzbWFuQGdtYWlsLmNvbTsgcmlmdEBpZXRmLm9yZw0KU3ViamVjdDogUmU6Rnc6UmU6IFJl
OltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQNCg0KDQoNClRvbnkNCg0K
SSBnZXQgdGhlIHJ1bGUgbm93LCB0aGFuayB5b3UhDQoNCkl0IHNob3VsZCBzZW5kIG11bHRpIGxp
ZXMgaW4gc2FtZSBpbnRlcmZhY2Ugd2l0aCBkaWZmZXJlbnQgc291cmNlIGFkZHJlc3MgaW5jbHVk
ZSB2NCBhbmQgdjYgd2hpY2ggd2Ugd2FudCB0byB1c2UgdGhlIGFkZHJlc3MgYXMgYSBnYXRld2F5
LiBJdCBjb25mdXNlZCBtZSBpbiB0aGUgcHJldmlvdXMgZGlzY3Vzc2lvbiBhbmQgSSBkaWQndCBm
aW5kIGl0IGluIHRoZSBwcm90b2NvbC4gSXQgaXMgZGlmZmVyZW50IHdpdGggb3RoZXIgcHJvdG9j
b2xzLiBCcnVubydzIGNvZGUgaGFzIGFscmVhZHkgaW1wbGVtZW50ZWQuDQoNCkluIHRoaXMgY2Fz
ZSwgdGhlIDMtd2F5IHN0YXRlIHN3aXRjaGluZyBmb3J3b3JkIHRoZSBydWxlIGluIDUuMi4yDQoN
CiINCg0KT2JzZXJ2ZSBmdXJ0aGVyIHRoYXQgdGhlIHByb3RvY29sIGRvZXMgTk9UIHN1cHBvcnQg
c2VsZWN0aXZlDQoNCiAgIGRpc2FibGluZyBvZiBhZGRyZXNzIGZhbWlsaWVzIG9yIGFueSBsb2Nh
bCBhZGRyZXNzIGNoYW5nZXMgaW4gdGhyZWUNCg0KICAgd2F5IHN0YXRlLCBpLmUuIGlmIGEgbGlu
ayBoYXMgZW50ZXJlZCB0aHJlZSB3YXkgSVB2NCBhbmQvb3IgSVB2NiB3aXRoDQoNCiAgIGEgbmVp
Z2hib3Igb24gYW4gYWRqYWNlbmN5IGFuZCBpdCB3YW50cyB0byBzdG9wIHN1cHBvcnRpbmcgb25l
IG9mIHRoZQ0KDQogICBmYW1pbGllcyBvciBjaGFuZ2UgYW55IG9mIGl0cyBsb2NhbCBhZGRyZXNz
ZXMsIGl0IGhhcyB0byB0ZWFyIGRvd24NCg0KICAgYW5kIHJlYnVpbGQgdGhlIGFkamFjZW5jeS4g
IEl0IGFsc28gaGFzIHRvIHJlbW92ZSBhbnkgaW5mb3JtYXRpb24gaXQNCg0KICAgc3RvcmVkIGFi
b3V0IGFkamFjZW5jeSdzJyBMSUUgc291cmNlIGFkZHJlc3NlcyBzZWVuLg0KDQoiDQoNClRoZW4g
dGhlIG5leHRob3Agc2VsZWN0aW9uIG9mIHRoZSByaWIgdGFibGUgZGVwZW5kcyBvbiB0aGUgZGV2
aWNlIGl0c2VsZiBhbmQgSSBzdXBwb3J0IHRoaXMuDQoNCg0KdGhhbmsgeW91IQ0KDQpCZW5jaG9u
Zw0KDQoNCtStyrzTyrz+DQq3orz+yMujukFudG9uaVByenlnaWVuZGEgPHByekBqdW5pcGVyLm5l
dD4NCsrVvP7Iy6O60OyxvrPnMTAwNjUwNTM7YnJ1bm9yaWpzbWFuQGdtYWlsLmNvbSA8YnJ1bm9y
aWpzbWFuQGdtYWlsLmNvbT47cmlmdEBpZXRmLm9yZyA8cmlmdEBpZXRmLm9yZz47DQrI1SDG2iCj
ujIwMTnE6jA31MIxMsjVIDAwOjM4DQrW9yDM4iCjulJlOiBGdzpSZTogUmU6W1JpZnRdIElwdjQg
YW5kIGlwdjYgY29vcGVyYXRpbmcgaW4gcmlmdA0KQmVuY2hvbmcsIGFzIHRvIHlvdXIgbGFzdCBp
bnRlcnN0aW5nIHF1ZXN0aW9uOg0KDQoiDQoNCklzIGl0IHBvc3NpYmxlIHRvIGdlbmVyYXRlIGEg
dmFsaWQgdjYgcmliIHRhYmxlIGFzIGxvbmcgYXMgdjQgYWRkcmVzcyBvZiB0aGUgaW50ZWZhY2Ug
aXMgdmFsaWQ/IENhbiBpdCBzdXBwb3J0IGlwdjQgYW5kIGlwdjYgZG91YmxlIHN0YWNrPw0KDQoi
DQoNCmFuc3dlciBpcyAieWVzLCBidXQgcHJhY3RpY2FsbHkgaWYgeW91ciBpbnRlcmZhY2UgY2Fu
IGZ3ZCcgSVB2NiBmcmFtZXMgaXQgYWxzbyBydW5zIE5EIHNvIHlvdSB3aWxsIGhhdmUgYSB2NiBs
aW5rIGxvY2FsIHdoaWNoIHNlZW1zIG11Y2ggbW9yZSBuYXR1cmFsIGFzIG5leHQtaG9wIHJhdGhl
ciB0aGFuIG1hbHRyZWF0IHY0IGFkZHJlc3NlcyB0byBidWlsZCB2NiBuZXh0LWhvcHMgZnJvbSA7
LSkgVW5sZXNzIHlvdSBoYXZlIHNvbWUgZnVua3kgc2lsaWNvbiAgbGltaXRhdGlvbnMgd2hlcmUg
c3VjaCBhIHRoaW5nIGlzIGEgZ29vZCB0aGluZyA7LSkNCg0KU28sIHlvdSBzZWUgd2h5IHRoZSBz
cGVjIGlzIHdyaXR0ZW4gdG8gdGhlIHBvaW50IGl0J3Mgd3JpdHRlbiBhbmQgc2lsZW50IG9uIHNw
ZWNpZmljYXRpb24gaG93IHRvIHByZWNpc2VseSBidWlsZCBuZXh0LWhvcHMvZ2F0ZXdheXMuIEl0
IGNhbiBiZSBpbXBsZW1lbnRlZCBpbiBjb3VwbGUgZGlmZmVyZW50IHdheXMgd2hpY2ggYXJlIHZl
cnkgY2xvc2UgdG8gaW1wbGVtZW50YXRpb24gdGVjaG5pcXVlcy9IVyB1c2VkIHNvIHRyeWluZyB0
byBuYWlsIHRoYXQgIGluIHByb3RvY29sIHNwZWMgd291bGQgYmUgb3Zlci1zcGVjaWZpY2F0aW9u
IHdoaWNoIGlzIGFsbW9zdCBhcyBiYWQgYXMgdW5kZXItc3BlY2lmaWNhdGlvbiAuLi4NCg0KLS0t
IHRvbnkNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpGcm9tOiB4dS5iZW5jaG9u
Z0B6dGUuY29tLmNuIDx4dS5iZW5jaG9uZ0B6dGUuY29tLmNuPg0KU2VudDogVGh1cnNkYXksIEp1
bHkgMTEsIDIwMTkgMjozMyBBTQ0KVG86IGJydW5vcmlqc21hbkBnbWFpbC5jb20NCkNjOiBBbnRv
bmkgUHJ6eWdpZW5kYQ0KU3ViamVjdDogRnc6UmU6IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNv
b3BlcmF0aW5nIGluIHJpZnQNCg0KSGksIEJydW5vDQoNCkkgcmVhZCBwYXJ0IG9mIHlvdXIgUklG
VCBjb2RlLCB0aGFuayB5b3UgZm9yIHlvdXIgZ3JlYXQgam9iIQ0KDQpXaGVuIHNlbmRpbmcgTElF
IG1lc3NhZ2VzLCBhcyBsb25nIGFzIHRoZXJlIGlzIGEgdjQgYWRkcmVzcywgdjQgd2lsbCBiZSB1
c2VkIGZpcnN0LCBzbyB3ZSB3aWxsIGdldCB2NCBuZXh0IGhvcC4NCg0KLS0tLS0tLS0tLQ0KDQog
ICAgZGVmIGFjdGlvbl9zdGFydF9mbG9vZGluZyhzZWxmKToNCg0Koa2hrQ0KDQogICAgICAgIyBG
b3Igc2VuZGluZyBmbG9vZGluZyBwYWNrZXRzLCB1c2Ugd2hhdGV2ZXIgSVB2NCBvciBJUHY2IGFk
ZHJlc3Mgd2Ugc2VlIGZpcnN0IGZvciB0aGUNCg0KICAgICAgICAjIG5laWdoYm9yLCBwcmVmZXJy
aW5nIHRoZSBJUHY0IGFkZHJlc3MgaWYgd2Uga25vdyBib3RoLg0KDQogICAgICAgIGlmIHNlbGYu
bmVpZ2hib3IuaXB2NF9hZGRyZXNzIGlzIG5vdCBOb25lOg0KDQogICAgICAgICAgICBzZWxmLnJ4
X2luZm8oIlN0YXJ0IElQdjQgZmxvb2Rpbmc6IHNlbmQgdG8gYWRkcmVzcyAlcyBwb3J0ICVkIiwN
Cg0KICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubmVpZ2hib3IuaXB2NF9hZGRyZXNzLCB0
eF9mbG9vZF9wb3J0KQ0KDQogICAgICAgICAgICBzZWxmLl9mbG9vZF90eF9pcHY0X3NvY2tldCA9
IHNlbGYuY3JlYXRlX3NvY2tldF9pcHY0X3R4X3VjYXN0KA0KDQogICAgICAgICAgICAgICAgcmVt
b3RlX2FkZHJlc3M9c2VsZi5uZWlnaGJvci5pcHY0X2FkZHJlc3MsDQoNCiAgICAgICAgICAgICAg
ICBwb3J0PXR4X2Zsb29kX3BvcnQpDQoNCiAgICAgICAgZWxzZToNCg0KICAgICAgICAgICAgYXNz
ZXJ0IHNlbGYubmVpZ2hib3IuaXB2Nl9hZGRyZXNzIGlzIG5vdCBOb25lDQoNCiAgICAgICAgICAg
IHNjb3BlZF9pcHY2X2FkZHJlc3MgPSBzZWxmLm5laWdoYm9yLmlwdjZfYWRkcmVzcw0KDQogICAg
ICAgICAgICBpZiAiJSIgbm90IGluIHNlbGYubmVpZ2hib3IuaXB2Nl9hZGRyZXNzOg0KDQogICAg
ICAgICAgICAgICAgc2NvcGVkX2lwdjZfYWRkcmVzcyArPSAiJSIgKyBzZWxmLnBoeXNpY2FsX2lu
dGVyZmFjZV9uYW1lDQoNCiAgICAgICAgICAgIHNlbGYucnhfaW5mbygiU3RhcnQgSVB2NiBmbG9v
ZGluZzogc2VuZCB0byBhZGRyZXNzICVzIHBvcnQgJWQiLA0KDQogICAgICAgICAgICAgICAgICAg
ICAgICAgc2NvcGVkX2lwdjZfYWRkcmVzcywgdHhfZmxvb2RfcG9ydCkNCg0KICAgICAgICAgICAg
c2VsZi5fZmxvb2RfdHhfaXB2Nl9zb2NrZXQgPSBzZWxmLmNyZWF0ZV9zb2NrZXRfaXB2Nl90eF91
Y2FzdCgNCg0KICAgICAgICAgICAgICAgIHJlbW90ZV9hZGRyZXNzPXNjb3BlZF9pcHY2X2FkZHJl
c3MsDQoNCiAgICAgICAgICAgICAgICBwb3J0PXR4X2Zsb29kX3BvcnQpDQoNClNQRiBjYWxjdWxh
dGlvbiB3aWxsIGNhbGN1bGF0ZSB0aGUgbmV4dGhvcCBvZiB2NCBhbmQgdjYgYXQgdGhlIHNhbWUg
dGltZS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgIGRlZiBzZXRfc3BmX3ByZWRlY2Vzc29y
KHNlbGYsIGRlc3RpbmF0aW9uLCBuYnJfdGllX2VsZW1lbnQsIHByZWRlY2Vzc29yX3N5c3RlbV9p
ZCwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZl9kaXJlY3Rpb24pOg0KDQogICAg
ICAgIGRlc3RpbmF0aW9uLmFkZF9wcmVkZWNlc3NvcihwcmVkZWNlc3Nvcl9zeXN0ZW1faWQpDQoN
CiAgICAgICAgaWYgKG5icl90aWVfZWxlbWVudCBpcyBub3QgTm9uZSkgYW5kIChwcmVkZWNlc3Nv
cl9zeXN0ZW1faWQgPT0gc2VsZi5zeXN0ZW1faWQpOg0KDQogICAgICAgICAgICBmb3IgbGlua19p
ZF9wYWlyIGluIG5icl90aWVfZWxlbWVudC5saW5rX2lkczoNCg0KICAgICAgICAgICAgICAgIG5o
b3AgPSBzZWxmLmludGVyZmFjZV9pZF90b19pcHY0X25leHRfaG9wKGxpbmtfaWRfcGFpci5sb2Nh
bF9pZCkNCg0KICAgICAgICAgICAgICAgIGlmIG5ob3A6DQoNCiAgICAgICAgICAgICAgICAgICAg
ZGVzdGluYXRpb24uYWRkX2lwdjRfbmV4dF9ob3AobmhvcCkNCg0KICAgICAgICAgICAgICAgIG5o
b3AgPSBzZWxmLmludGVyZmFjZV9pZF90b19pcHY2X25leHRfaG9wKGxpbmtfaWRfcGFpci5sb2Nh
bF9pZCkNCg0KICAgICAgICAgICAgICAgIGlmIG5ob3A6DQoNCiAgICAgICAgICAgICAgICAgICAg
ZGVzdGluYXRpb24uYWRkX2lwdjZfbmV4dF9ob3AobmhvcCkNCg0KICAgICAgICBlbHNlOg0KDQog
ICAgICAgICAgICBkZXN0X3RhYmxlID0gc2VsZi5fc3BmX2Rlc3RpbmF0aW9uc1tzcGZfZGlyZWN0
aW9uXQ0KDQogICAgICAgICAgICBkZXN0aW5hdGlvbi5pbmhlcml0X25leHRfaG9wcyhkZXN0X3Rh
YmxlW3ByZWRlY2Vzc29yX3N5c3RlbV9pZF0pDQoNClRoZSBSSUIgdGFibGUgb25seSBzZWxlY3Rz
IHRoZSBzYW1lIEFGIG5leHRob3ANCg0KLS0tLS0tLS0tLS0tLS0NCg0KICAgIGRlZiBzcGZfaW5z
dGFsbF9yb3V0ZXNfaW5fcmliKHNlbGYsIHNwZl9kaXJlY3Rpb24pOg0KDQogICAgICAgIKGtoa0N
Cg0KICAgICAgICAgICAgICAgIHByZWZpeCA9IGRlc3Rfa2V5DQoNCiAgICAgICAgICAgICAgICBp
ZiBwcmVmaXguaXB2NHByZWZpeCBpcyBub3QgTm9uZToNCg0KICAgICAgICAgICAgICAgICAgICBu
ZXh0X2hvcHMgPSBkZXN0LmlwdjRfbmV4dF9ob3BzDQoNCiAgICAgICAgICAgICAgICAgICAgcm91
dGVfdGFibGUgPSBzZWxmLl9pcHY0X3JpYg0KDQogICAgICAgICAgICAgICAgZWxzZToNCg0KICAg
ICAgICAgICAgICAgICAgICBhc3NlcnQgcHJlZml4LmlwdjZwcmVmaXggaXMgbm90IE5vbmUNCg0K
ICAgICAgICAgICAgICAgICAgICBuZXh0X2hvcHMgPSBkZXN0LmlwdjZfbmV4dF9ob3BzDQoNCiAg
ICAgICAgICAgICAgICAgICAgcm91dGVfdGFibGUgPSBzZWxmLl9pcHY2X3JpYg0KDQogICAgICAg
ICAgICAgICAgaWYgbmV4dF9ob3BzOg0KDQogICAgICAgICAgICAgICAgICAgIHJ0ZSA9IHJvdXRl
LlJvdXRlKHByZWZpeCwgb3duZXIsIG5leHRfaG9wcykNCg0KICAgICAgICAgICAgICAgICAgICBy
b3V0ZV90YWJsZS5wdXRfcm91dGUocnRlKQ0KDQpJcyBpdCBwb3NzaWJsZSB0byBnZW5lcmF0ZSBh
IHZhbGlkIHY2IHJpYiB0YWJsZSBhcyBsb25nIGFzIHY0IGFkZHJlc3Mgb2YgdGhlIGludGVmYWNl
IGlzIHZhbGlkPyBDYW4gaXQgc3VwcG9ydCBpcHY0IGFuZCBpcHY2IGRvdWJsZSBzdGFjaz8NCg0K
VGhhbmtzIQ0KDQpCZW5jaG9uZw0KDQoNCtStyrzTyrz+DQq3orz+yMujukFudG9uaVByenlnaWVu
ZGEgPHByekBqdW5pcGVyLm5ldD4NCsrVvP7Iy6O60OyxvrPnMTAwNjUwNTM7DQqzrcvNyMujukpl
ZmZyZXkgKFpoYW9odWkpIFpoYW5nIDx6emhhbmdAanVuaXBlci5uZXQ+O9XF1fcwMDAwNzk0MDty
aWZ0QGlldGYub3JnICA8cmlmdEBpZXRmLm9yZz47DQrI1SDG2iCjujIwMTnE6jA31MIxMcjVIDEx
OjUyDQrW9yDM4iCjulJlOiBSZTpbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiBy
aWZ0DQpCZW5jaG9uZywgd2hhdCB5b3Ugc2VlbSB0byB0YWxrIGFib3V0IGlzIG9yaWdpbmF0aW5n
IHBhY2tldHMgYW5kIGl0J3MgdGhlIHNvdXJjZSB0aGF0IGRlY2lkZXMgd2hldGhlciBpdCBzZW5k
cyB2NCBvciB2NiBhbmQgdGhlIElQIGZhYnJpYyB3aXRoIFJJRlQganVzdCBmb3J3YXJkcyB0aGUg
cGFja2V0LCBpdCBjYW5ub3QgY2hhbmdlIGluIHRoZSBtaWRkbGUgdGhlIElQIGFkZHJlc3MgZmFt
aWx5IGluIHdoaWNoIHRoZSBwYWNrZXQgaXMgY2FycmllZCAgIG9idmlvdXNseSBzbyB0aGVyZSBp
cyBubyBkZWNpc2lvbiB0byBiZSBtYWRlIHdoaWNoIElQIEFGIGlzIHVzZWQsIG9ubHkgd2hpY2gg
R1cgbmVlZHMgdG8gYmUgaW5zdGFsbGVkIG9uIHRoZSByb3V0ZSBuZXh0aG9wLiBCdXQgeWVzLCBh
biBpbXBsZW1lbnRhdG9uIGNhbiBjaG9vc2UgdG8gZm9yd2FyZCB2NCBwYWNrZXRzIHVzaW5nIHRo
ZSBNQUMgYWRkcmVzcyBvZiBhIHY2IGdhdGV3YXksIGEgaGlnaGx5IGRlc2lyYWJsZSBiZWhhdmlv
ciBzaW5jZSAgIHdpdGggdGhhdCwgdGhlIGZhYnJpYyBjYW4gYmUgY29tcGxldGVseSBnbG9iYWwg
YWRkcmVzcyBmcmVlIHdpdGhvdXQgYW55IGNvbmZpZyAoanVzdCBORCkgYW5kIGRvIHY0IGZpbmUu
DQoNCnllcywgYW4gaW1wbGVtZW50YXRpb24gbWF5IGNob29zZSB0byBwcmVmZXIgdjQgR1cgZm9y
IHY0IHBhY2tldHMgYW5kIHY2IEdXIGZvciB2NiBwYWNrZXRzIGJ1dCBub3JtYWxseSBpdCdzIHRo
ZSBzYW1lIE1BQyB1bmxlc3MgdGhlIGRlcGxveW1lbnQgaXMgdmVyeSBzdHJhbmdlIEAgd2hpY2gg
cG9pbnQga25vYnMgdG8gY29udHJvbCB0aGF0IG1heSBiZSBuZWNlc3NhcnksIHNvbWV0aGluZyB3
aGljaCBpcyBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYy4NCg0KU28gUklGVCBqdXN0IGZsb29kcyB0
aGUgVElFcyBvbiBhbnkgQUYgd2l0aCBwcmVmaXhlcyBvZiBhbGwgQUZzLCB0aGUgY29tcHV0YXRp
b24gY29tcHV0ZXMgdGhlIHJvdXRlIHdpdGggZGlyZWN0bHkgYXR0YWNoZWQgbmV4dC1ob3Agd2hp
Y2ggaGFzIHRvIHJlc29sdmUgdG8gTUFDIGluIGFueSBBRiByZWFsbHkgYW5kIHRoZW4gcGFja2V0
IGNhbiBiZSBmb3J3YXJkZWQgLi4uDQoNCmltcGxlbWVudCBpdCBhbmQgcGxheSB3aXRoIGl0LCB3
ZSBoYXZlIEAgbGVhc3QgMiBpbXBsZW1lbnRhdGlvbnMgYWxyZWFkeSB0aGF0IHdvcmsgZmluZSBk
b2luZyB0aGF0IC4uLg0KDQpZZXMsIHRoZSBjbG9zZXN0IGFuYWxvZ3kgaXMgdjQgaW4gQkdQIHdp
dGggdjYgbmV4dGhvcHMgaWYgeW91IHJlYWxseSB3YW50IHRvIHRoaW5rIHRoYXQgd2F5IGJ1dCBS
SUZUIGlzIG11Y2ggc2ltcGxlciBzaW5jZSB0aGUgbmhvcCBpcyBhbHdheXMgZGlyZWN0bHkgY29u
bmVjdGVkIGFuZCB3ZSBkb24ndCB0YWxrIGFib3V0IGFueXRoaW5nIGxpa2UgdjRvdjYgb3IgdjZv
djQgdHVubmVsaW5nIGFuZCBzbyBvbiAuLi4NCg0KbWFrZXMgc2Vuc2U/DQoNCi0tLSB0b255DQoN
Cg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCkZyb206IHh1LmJlbmNob25nQHp0
ZS5jb20uY24gPHh1LmJlbmNob25nQHp0ZS5jb20uY24+DQpTZW50OiBXZWRuZXNkYXksIEp1bHkg
MTAsIDIwMTkgODozOSBQTQ0KVG86IEFudG9uaSBQcnp5Z2llbmRhDQpDYzogSmVmZnJleSAoWmhh
b2h1aSkgWmhhbmc7IEVYVC16aGFuZy56aGVuZ0B6dGUuY29tLmNuOyByaWZ0QGlldGYub3JnDQpT
dWJqZWN0OiBSZTpbUmlmdF0gSXB2NCBhbmQgaXB2NiBjb29wZXJhdGluZyBpbiByaWZ0DQoNCkhp
IHRvbnkNCg0KVGhhbmtzIGZvciB5b3VyIGV4cGxhbmF0aW9uLCBhbmQgSSBoYXZlIGFscmVhZHkg
dW5kZXJzdG9vZCB5b3VyIG9waW5pb24gb24gdjR2NiBmb3J3YXJkaW5nLg0KDQpUaGUgZGlmZmVy
ZW5jZSBiZXR3ZWVuIFJJRlQgYW5kIG90aGVyIHJvdXRpbmcgcHJvdG9jb2xzIGlzIHRoZSBjb25z
aXN0ZW5jeSBvZiBwYWNrZXRzIEFGIGFuZCByb3V0ZXMgQUYuIElzaXMgaXMgaW4gTDIgZW5jYXBz
dWxhdGlvbiB0aGF0IHNvbHZlcyBkaWZmZXJlbnQgYWRkcmVzcyBmYW1pbGllcyB0aHJvdWdoIG11
bHRpcGxlIHRvcG9sb2dpZXMuIE9zcGYgYW5kIHJpcCBhcmUgc3RyaWN0bHkgZGlzdGluZ3Vpc2hl
ZCBpbiB2NHY2LiBSaWZ0ICAgaXMgYWN0dWFsbHkgY2xvc2VyIHRvIEJHUC4NCg0KV2hlbiB0aGUg
aW50ZXJmYWNlIGhhcyBib3RoIHY0IGFuZCB2NiBhZGRyZXNzZXMgKG9yIE5EIGVuYWJsZWQpLCB0
aGUgcHJvdG9jb2wgdXNlcyB2NCBvciB2NiBvciB2NHY2IGFkZHJlc3MgZW5jYXBzdWxhdGlvbi4g
SXQgd2lsbCBiZSBiZXR0ZXIgaWYgcHJvdG9jb2wgZ2F2ZSB0aGUgcmVjb21tZW5kZWQgYmVoYXZp
b3IuIE90aGVyd2lzZSwgZGlmZmVyZW50IHBlb3BsZSB3aWxsIGdpdmUgZGlmZmVyZW50IHNvbHV0
aW9ucywgd2hpY2ggd2lsbCAgIGNhdXNlIHByb3RvY29sIGNvbmZvcm1hbmNlIHByb2JsZW0uDQoN
ClRoZSBvcHRpb25zIHdlIGNhbiBjaG9vc2UgYXJlOg0KDQphKSBORCBlbmFibGUgdjYgZmlyc3Q6
DQoNCklmIHY2IGFkZHJlc3MgdmFsaWQgQU5EIE5EIGVuYWJsZToNCg0KICAgICBWNiBwYWNrZXQN
Cg0KRWxzZSBpZiB2NCBhZGRyZXNzIHZhbGlkOg0KDQogICAgIFY0IHBhY2tldA0KDQpiKSB2NCBm
aXJzdA0KDQpJZiB2NCBhZGRyZXNzIHZhbGlkOg0KDQogICAgIFY0IHBhY2tldA0KDQpFbHNlIGlm
IHY2IGFkZHJlc3MgdmFsaWQoQU5EIE5EIGVuYWJsZSk6DQoNCiAgICAgVjYgcGFja2V0DQoNCmMp
IGNvZXhpc3RlbmNlIG9mIHY0djYNCg0KSWYgdjQgYWRkcmVzcyB2YWxpZDoNCg0KICAgICBWNCBw
YWNrZXQNCg0KSWYgdjYgYWRkcmVzcyB2YWxpZChBTkQgTkQgZW5hYmxlKToNCg0KICAgICBWNiBw
YWNrZXQNCg0KQ29uZnVzZWQgb24gYm90aCB0aGUgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHNpZGVz
Lg0KDQpjKSB3aWxsIGZ1cnRoZXIgaGF2ZSBhIEdXIHNlbGVjdGlvbiBwcm9ibGVtLCBwcmVmZXJy
aW5nIHRvIGNob29zZSB0aGUgbmV4dGhvcCBvZiB0aGUgc2FtZSBhZGRyZXNzIGZhbWlseSB3aXRo
IHRoZSBwcmVmaXgsIG9yIHY0IGZpcnN0Lg0KDQpJJ2QgbGlrZSB0aGUgcHJvdG9jb2wgcmVjb21t
ZW5kcyBhIGRlZmF1bHQgYmVoYXZpb3IgYW5kIG1heSBwcm92aWRlcyBhIGNvbnRyb2wgbWV0aG9k
IGluIHlhbmcuDQoNClRoYW5rcyENCg0KQmVuY2hvbmcNCg0KDQrUrcq808q8/g0Kt6K8/sjLo7pB
bnRvbmlQcnp5Z2llbmRhIDxwcnpAanVuaXBlci5uZXQ+DQrK1bz+yMujutDssb6z5zEwMDY1MDUz
Ow0Ks63LzcjLo7pKZWZmcmV5IChaaGFvaHVpKSBaaGFuZyA8enpoYW5nQGp1bmlwZXIubmV0PjvV
xdX3MDAwMDc5NDA7cmlmdEBpZXRmLm9yZyAgIDxyaWZ0QGlldGYub3JnPjsNCsjVIMbaIKO6MjAx
OcTqMDfUwjEwyNUgMjM6MTINCtb3IMziIKO6UmU6IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNv
b3BlcmF0aW5nIGluIHJpZnQNCkhleSBCZW5jaG9uZywgdGhhdCdzIGFuIG92ZXItaW50ZXJwcmV0
YXRpb24sIHRoZSBzcGVjIGlzIGxvb3NlciB0aGFuIHRoYXQgYnV0IGFzIGZhciBJIHNhdyBzdWZm
aWNpZW50LiBTZWN0aW9uIDUuMi4yLg0KDQphKSBTcGVjaWZpY2F0aW9uIGRvZXMgbm90IHByb2hp
Yml0IFJJRlQgZnJvbSB1c2luZyBfYW55XyB2YWxpZCBJUHY2IGFkZHJlc3Mgb24gdGhlIGludGVy
ZmFjZSB0byBzZW5kIElQdjYgTElFcy4gVGhlIHJlY2VpdmVyIGlzIHN1cHBvc2VkIHRvIHBpY2sg
dXAgdGhhdCBzb3VyY2UgYWRkcmVzcyBhbmQgdXNlIGl0IGFzIGRlc3RpbmF0aW9uIHdoZW4gc2Vu
ZGluZyBMSUVzIG92ZXIgdjYgYW5kL29yIFRJRXMgd2l0aCB0aGUgcmVjZXZpbmcgaW50ZXJmYWNl
ICAgIGFzIGdhdGV3YXkuIFNwZWNpZmljYXRpb24gZG9lcyBOT1Qgc3BlbGwgb3V0IHdoYXQgaGFw
cGVucyBlLmcuIG9uIG1pc21hdGNoZWQgSVAgc3VibmV0cyBvbiBib3RoIHNpZGVzIGFuZCBzbyBv
biwgc2l0dWF0aW9uIGhlcmUgaXMgc2ltaWxhciB0byBJU0lTIGFuZCBkaWZmZXJlbnQgc2NlbmFy
aW9zIHN1Y2ggYXMgdW5udW1iZXJlZCBsaW5rcyBhbmQgc28gb24NCmIpIElmIHlvdSB3YW50IHRo
ZSAibGF6aWVzdCIgcG9zc2libGUgaW1wbGVtZW50YXRpb24gdGhlbiBpbiBmYWN0IHllcywgeW91
IGNhbiBmYWxsIGJhY2sgb24NCg0KIg0KDQogICBBbGwgUklGVCByb3V0ZXJzIE1VU1Qgc3VwcG9y
dCBJUHY0IGZvcndhcmRpbmcgYW5kIE1BWSBzdXBwb3J0IElQdjYgICAgZm9yd2FyZGluZy4gIEEg
dGhyZWUgd2F5IGFkamFjZW5jeSBvdmVyIElQdjYgYWRkcmVzc2VzIGltcGxpZXMgICAgc3VwcG9y
dCBmb3IgSVB2NCBmb3J3YXJkaW5nLg0KDQoiDQoNCndoaWNoIG1ha2VzIHY0b3Y2IGZvcndhcmRp
bmcgaW5oZXJlbnQgcGFydCBvZiBSSUZULiBUaGF0IGFzc3VtZXMgaG93ZXZlciB0aGF0IHJlY2Vp
dmluZyBuZWlnaGJvciBkb2VzIHN1cHBvcnQgVjYgKHdoaWNoIHRoZSBzcGVjIGRvZXMgTk9UIG1h
bmRhdGUpIGFuZCBub3RoaW5nIHdpbGwgaGFwcGVuIGlmIGl0IGRvZXNuJ3QuIFRoZXJlZm9yZSBh
bGwgUklGVCBpbXBsZW1lbnRhdGlvbiBJIHNhdyBzbyBmYXIgc2VuZCBib3RoIHY0IGFuZCB2NiB3
aGljaCAgICBhbGxvd3MgdGhlIG5laWdoYm9yIHRvIG9ubHkgcmVjZWl2ZSB2NCBhbmQgZm9yd2Fy
ZCB1c2luZyB2NCBnYXRld2F5cyBpZiBpdCBkb2Vzbid0IHN1cHBvcnQgVjYuIEluIGNhc2UgYm90
aCB2NCBhbmQgdjYgQUZzIGFyZSBlc3RhYmxpc2hlZCwgaXQgaXMgdXAgdG8gdGhlIGltcGxlbWVu
dGF0aW9uIHdoaWNoL2hvdyBpdCByZXNvbHZlcyB0aGUgZ2F0ZXdheXMgYW5kIHRoZXJlIGFyZSBt
YW55IGludGVyZXN0aW5nIGFkdmFuY2VkIGlzc3VlcyBzdWNoICAgIGFzIG1peHR1cmUgb2Ygc3Bp
bmVzIHdpdGggdjQgYW5kIHY2IG5leHRob3BzIGFuZCBob3cgdG8gZm9ybSBFQ01QIGFtb25nc3Qg
dGhlbSB0aGF0IHRoZSBzcGVjIGRvZXMgb2J2aW91c2x5IG5vdCBhZGRyZXNzIHNpbmNlIGl0J3Mg
YWxsIHZlcnkgaW1wbGVtZW50YXRpb24gYW5kIHNpbGljb24gc3BlY2lmaWMuDQoNCi0tLSB0b255
DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KRnJvbTogeHUuYmVuY2hvbmdAenRl
LmNvbS5jbiA8eHUuYmVuY2hvbmdAenRlLmNvbS5jbj4NClNlbnQ6IFdlZG5lc2RheSwgSnVseSAx
MCwgMjAxOSAxOjU2IEFNDQpUbzogQW50b25pIFByenlnaWVuZGENCkNjOiBKZWZmcmV5IChaaGFv
aHVpKSBaaGFuZzsgRVhULXpoYW5nLnpoZW5nQHp0ZS5jb20uY247IHJpZnRAaWV0Zi5vcmcNClN1
YmplY3Q6IFJlOltSaWZ0XSBJcHY0IGFuZCBpcHY2IGNvb3BlcmF0aW5nIGluIHJpZnQNCg0KDQpU
b255LCB0aGFuayB5b3UgZm9yIHlvdXIgcmVwbHkNCg0KQ2FuIGl0IGJlIHVuZGVyc3Rvb2QgdGhh
dCBhZnRlciB0aGUgTkQgaXMgZW5hYmxlZCwgdGhlIHY2IGFkZHJlc3MgbmVlZHMgdG8gYmUgdXNl
ZCB0byBidWlsZCBuZWlnaGJvcj8gSW4gdGhpcyBjYXNlLCB0aGUgcmlmdCBwYWNrZXQgb2YgdGhl
IHY0IGhlYWRlciBpcyBub3QgYWxsb3dlZCB0byBiZSBzZW50IGFuZCByZWNlaXZlZCwgYW5kIGJv
dGggdjQgYW5kIHY2IHJvdXRlcyBoYXZlIGEgdjYgR1cuDQoNCg0KDQrUrcq808q8/g0Kt6K8/sjL
o7pBbnRvbmlQcnp5Z2llbmRhIDxwcnpAanVuaXBlci5uZXQ+DQrK1bz+yMujutDssb6z5zEwMDY1
MDUzO0plZmZyZXkgKFpoYW9odWkpWmhhbmcgPHp6aGFuZ0BqdW5pcGVyLm5ldD471cXV9zAwMDA3
OTQwO3JpZnRAaWV0Zi5vcmcgICAgPHJpZnRAaWV0Zi5vcmc+Ow0KyNUgxtogo7oyMDE5xOowN9TC
MTDI1SAwMDowOQ0K1vcgzOIgo7pSZTogW1JpZnRdIElwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcg
aW4gcmlmdA0KSGV5IEJlbmNob25nLCBjYzonaW5nIGxpc3QsIGdvb2QgcXVlc3Rpb25zIG9idmlv
dXNseSB0aGF0IHBvcCBvdXQgb24gaW1wbGVtZW50YXRpb24NCg0KDQogIDEuICBzZW5kaW5nIExJ
RSBvbmx5IHdpdGggdjQgd2lsbCBub3QgZ2l2ZSB5b3UgYSB2NiBhZGRyZXNzIHRvIHNlbmQgdG8g
KHNpbmNlIHRoZSBMSUUgc291cmNlIGFkZHJlc3MgZ2l2ZXMgdGhlIGdhdGV3YXkgZm9yIHRoZSBB
RiwgdGhhdCdzIHdoeSB3ZSBzZW5kIExJRSBwZXIgQUYpIHNvIHlvdSB3b24ndCBoYXZlIGEgdjYg
R1cgYWRkcmVzcyB0byBzZW5kIFRJRXMgdG8gOy0pDQoNCiAgMi4gIHllcywgZXZlcnkgaW50ZXJm
YWNlIGlzIGluZGVwZW5kZW50LiBPYnNlcnZlIHRoYXQgdjYgc3VwcG9ydCBpbXBsaWVzIHY0IGFz
IHRoZSBzcGVjIHNheXMgKHNpbmNlIHlvdSBjYW4gRlcgdjQgd2l0aG91dCBhIHY0IEdXIGlmIHlv
dSBoYXZlIGEgdjYgZ2F0ZXdheSkuIEhvd2V2ZXIsIGlmIG9uZSBzaWRlIHNlbmRzIHY2IG9ubHkg
YW5kIHRoZSBvdGhlciBzaWRlIG9ubHkgdjQgdGhleSdsbCBuZXZlciBnbyAzLXdheSBzaW5jZSB0
aGV5IHdvbid0ICAgICBiZSBhYmxlIHRvIHJlY2VpdmUuIFdlIGp1c3QgYWRkZWQgYSBzZW50ZW5j
ZSB0byB0aGUgc3BlYyBzYXlpbmcgdGhhdCBpZiB5b3UgZG9uJ3Qgc2VuZCBhbiBBRiBMSUUgeW91
IE1VU1QgTk9UIHJlY2VpdmUgdGhlIHNhbWUgQUYgTElFIHNpbmNlIHdlIGZvdW5kIHRoYXQgbG9v
c2UgZW5kIGluIEJydW5vJ3MgaW1wbGVtZW50YXRpb24gd2hlbiB0ZXN0aW5nIHNlY3VyaXR5IGVu
dmVsb3Blcy4gIEl0IHdpbGwgYmUgaW4gLTA3DQoNCg0KPHQ+QWxsIFJJRlQgcm91dGVycyBNVVNU
IHN1cHBvcnQgSVB2NCBmb3J3YXJkaW5nIGFuZCBNQVkgc3VwcG9ydCBJUHY2DQogICAgZm9yd2Fy
ZGluZy4gQSB0aHJlZSB3YXkgYWRqYWNlbmN5IG92ZXIgSVB2NiBhZGRyZXNzZXMgaW1wbGllcyBz
dXBwb3J0DQogICAgZm9yIElQdjQgZm9yd2FyZGluZy4gQSBub2RlIHRoYXQgZG9lcyBub3QgcHJv
Y2VzcyByZWNlaXZlZCBJUHY2IExJRXMNCiAgICBNVVNUIE5PVCBvcmlnaW5hdGUgSVB2NiBMSUVz
Lg0KICAgIDwvdD4NCg0KDQogIDEuICBJUHY2L0lQdjQgcHJlZml4IGNhbiBiZSBtaXhlZCBpbiBQ
cmVmaXggVElFcy4gUHJlZml4IFRJRXMgZG8gTk9UIGNhcmUgd2hpY2ggaW50ZXJmYWNlL0FGIHRo
ZXkgYXJlIHNlbnQgb3Zlci4NCg0KICAyLiAgaG93IHlvdSBidWlsZCBmb3J3YXJkaW5nIHRhYmxl
IGFuZCB3aGljaCBnYXRld2F5cyB5b3UgdXNlIGlzIGltcGxlbWVuYXRpb24gZGVwZW5kZW50IGJ1
dCB5ZXMsIHlvdSBnb3QgdGhlIGZsYXZvci4gdGhvdWdoIHlvdXIgYXNzdW1wdGlvbiBvZiAiSXB2
NiBkZXN0aW5hdGlvbiB3aXRoIGlwdjQgbmV4dGhvcCIgaXMgb3B0aW1pc3RpYy4gZXZlcnkgc2ls
aWNvbiBkb2VzIHY0IHNvIHY2IGNhbiBpbXBseSB2NCwgaW1wbHlpbmcgdjQgZndkJ2luZyAgICAg
YWxsb3dzIHY2IGZvcndhcmRpbmcgZmFpbHMgb24gZ29vZCBhbW91bnQgb2Ygc2lsaWNvbi4gQnV0
IGFnYWluLCB0aG9zZSBhcmUgYWxsIGltcGxlbWVudGF0aW9uIGtub2JzLCBzcGVjIG9ubHkgc2F5
cyAidjYgaW1wbGllcyB2NCIgd2hpY2ggbWVhbnMgInlvdSBiZXR0ZXIgZndkLiB2NCBvdmVyIHY2
IG5leHRob3BzIGlmIHlvdSBzZWUgdjYgTElFcyBvbmx5Ig0KDQpPYnNlcnZlIHRoYXQgbm9kZSBU
SUVzIGFyZSBfbm90XyBjYXJyeWluZyB0aGUgc3VwcG9ydGVkIEFGcyBvbiBlYWNoIGludGVyZmFj
ZSBzaW5jZSBJIHRoaW5rIGl0IHdvdWxkIGxlYWQgdG8gdW5kZXNpcmFibGUgYXR0ZW1wdHMgdG8g
ZGVwbG95IChzb21lIGxpbmtzIGNhbiBkbyB2NikgdG9wb2xvZ2llcyB3aGljaCBkZWZlYXQgdGhl
IHB1cnBvc2Ugb2YgWlRQL3NpbXBsaWNpdHkgb2YgUklGVC4gdjYgaW1wbGllcyB2NCwgaWYgc29t
ZW9uZSAgICAgd2FudHMgdG8gZndkJyB2NiBvdmVyIGEgZmFicmljIHdoZXJlIGNlcnRhaW4gbGlu
a3MgYXJlIHY0IGNvbXB1dGF0aW9ucyBnZXQgcmVhbGx5IHdlaXJkIGFuZCBvcGVyYXRpb25hbGx5
IHN1Y2ggYSB0aGluZyBpcyBwcm9iYWJseSBhIG5pZ2h0bWFyZSBhbnl3YXkuIEFuZCBnZXR0aW5n
IHY2IHdvcmtpbmcgaXMgdHJpdmlhbCwganVzdCBmbGlwIG9uIE5EIGFuZCB5b3UncmUgaW4gYnVz
aW5lc3MgKGF0IGxlYXN0IGNvbnRyb2wgcGxhbmUgd2lzZSAgIDstKQ0KDQpUaGUgc3BlYyBpcyBu
b2l0IGdpdmluZyBpbXBsZW1lbnRhdGlvbiBhZHZpY2UsIGl0IGp1c3Qgc3BlY2lmaWVzIGJlaGF2
aW9yLiBJbiBjYXNlIG9mIGRvdWJ0IGxvb2tzIEAgQnJ1bm8nO3Mgb3BlbiBzb3VyY2UuIEJydW5v
IGltcGxlbWVudGVkIHRoZSB3aG9sZSBMSUUgd2l0aG91dCBldmVyIHRhbGtpbmcgdG8gbWUgYW5k
IGl0IGludGVyb3AnZWQgZGF5IG9uZSB3aXRob3V0IHByb2JsZW1zLg0KDQpXaGVuIHlvdSdyZSBy
ZWFkeSB3aXRoIHlvdXIgaW1wbGVtZW50YXRpb24gdG8gaW50ZXJvcCwgQnJ1bm8ncyBjb2RlIGhh
cyBuaWNlIGZyYW1ld29yayB5b3UgY2FuIHBsdWcgaW4gYWdhaW5zdCBvcGVuIHNvdXJjZSAmIEp1
bmlwZXIgaW1wbGVtZW50YXRpb24gZWFzaWx5DQoNCi0tLSB0b255DQpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXw0KRnJvbTogeHUuYmVuY2hvbmdAenRlLmNvbS5jbiA8eHUuYmVuY2hv
bmdAenRlLmNvbS5jbj4NClNlbnQ6IFR1ZXNkYXksIEp1bHkgOSwgMjAxOSA1OjA4IEFNDQpUbzog
QW50b25pIFByenlnaWVuZGE7IEplZmZyZXkgKFpoYW9odWkpIFpoYW5nOyBFWFQtemhhbmcuemhl
bmdAenRlLmNvbS5jbg0KU3ViamVjdDogW1JpZnRdIElwdjQgYW5kIGlwdjYgY29vcGVyYXRpbmcg
aW4gcmlmdA0KDQpIaQ0KDQpJIGhhdmUgc29tZSBxdWVzdGlvbnMgYWJvdXQgaXB2NCBhbmQgaXB2
NiBjb29wZXJhdGluZyBpbiByaWZ0Lg0KDQpJcCBoZWFkIG9mIHRoZSByaWZ0IHBhY2tldCBjYW4g
YmUgVjQgb3IgVjYsIGFuZCB0aGUgcHJlZml4IGluIFRJRSBhbHNvIHN1cG9ydCBWNCBvciB2Ni4N
Cg0KQ2FuIGl0IHN1cHBvcnQgdGhlIGZvbGxvd2luZyBzaXR1YXRpb25zOg0KDQoNCjGhokEgcmlm
dCBpbnRlcmZhY2Ugd2hpY2ggc2VuZCBMSUUgd2l0aCBpcHY0IGhlYWQgcmVjZWl2aW5nIExJRSB3
aXRoIElQdjYgaGVhZDsNCg0KQSByaWZ0IGludGVyZmFjZSB3aGljaCBzZW5kIExJRSB3aXRoIGlw
djYgaGVhZCByZWNlaXZpbmcgTElFIHdpdGggSVB2NCBoZWFkOw0KDQpDYW4gdGhleSBidWlsZCAz
LVdheSBuZWlnaGJvcj8NCg0KDQoyoaJTb21lIGludGVyZmFjZXMgaW4gYSByaWZ0IGluc3RhbmNl
IHNlbmQgaXB2NCBoZWFkIHBhY2tldHOjrCBhbmQgb3RoZXJzIGluIHRoZSBzYW1lIGluc3RhbmNl
IHNlbmQgaXB2NiBoZWFkIHBhY2tldHOjuw0KDQoNCjOhoklwdjQgaGVhZCBUSUUgcGFja2V0IGZp
bGwgaXB2NiBwcmVmaXijuw0KDQogICBJcHY2IGhlYWQgVElFIHBhY2tldCBmaWxsIGlwdjQgcHJl
Zml4o7soUklGVC0wNiA1LjIuMjogQWxsIFJJRlQgcm91dGVycyBNVVNUIHN1cHBvcnQgSVB2NCBm
b3J3YXJkaW5nIGFuZCBNQVkgc3VwcG9ydCBJUHY2DQoNCiAgIGZvcndhcmRpbmcuICBBIHRocmVl
IHdheSBhZGphY2VuY3kgb3ZlciBJUHY2IGFkZHJlc3NlcyBpbXBsaWVzDQoNCiAgIHN1cHBvcnQg
Zm9yIElQdjQgZm9yd2FyZGluZy4pDQoNCg0KNKGiSW4gcmliIHRhYmxlIG9mIHRoZSByaWZ0Og0K
DQogICBJcHY0IGRlc3RpbmF0aW9uIHdpdGggaXB2NiBuZXh0aG9wOw0KDQogICBJcHY2IGRlc3Rp
bmF0aW9uIHdpdGggaXB2NCBuZXh0aG9wOw0KDQogICBJcHY0IGRlc3RpbmF0aW9uIHdpdGggYm90
aCBpcHY0IG5leHRob3AgYW5kIGlwdjYgbmV4dGhvcDsNCg0KICAgSXB2NiBkZXN0aW5hdGlvbiB3
aXRoIGJvdGggaXB2NCBuZXh0aG9wIGFuZCBpcHY2IG5leHRob3A7DQoNCg0KDQo1oaJUaGUgaXAg
aGVhZCB0eXBlKHY0IG9yIHY2KSBjYW4gYmUgY29uZmlndXJlZCBpbiByaWZ0IGludGVyZmFjZSBv
ciBpbnN0YW5jZS4NCg0KDQpJdCB3aWxsIGJlIGJldHRlciBpZiB0aGVyZSBhcmUgY2xlYXIgaW5z
dHJ1Y3Rpb25zIGluIHJpZnQgcHJvdG9jb2wuDQoNCg0KVGhhbmtzo6ENCg0KQmVuY2hvbmcNCg0K
DQoNCg0KDQoNCg0KDQo=

--_000_MWHPR05MB3279A23783994C80FE41F577ACF20MWHPR05MB3279namp_
Content-Type: text/html; charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dgb2312">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Benchong, ok, we're in sync then. <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
It seemed obvious to us that sending a v4 LIE will include a v4 source addr=
ess and v6 equivalently a v6 source address (there is no other way) and obv=
iously those are the directly connected so I omitted all that in the spec.<=
/div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
So spec says IMO enough as it is about the LIE issues including talking abo=
ut same link locals on multiple links<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
&quot;</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<pre style=3D"background-color:#ffffff; color:#000000; font-family:'Menlo';=
 font-size:7.5pt">An implementation MAY listen and send LIEs on IPv4 and/or=
<br>IPv6 multicast addresses.  LIEs on same link are considered<br>part of =
the same negotiation independent on the address family<br>they arrive on. O=
bserve further<br>that the LIE source address may not identify<br>the peer =
uniquely in unnumbered or link-local address cases so<br>the response trans=
mission MUST occur over the same interface the LIEs have been<br>received o=
n. A node CAN use any of the adjacency's source addresses it<br>saw in<br>L=
IEs on the specific interface during adjacency formation to send TIEs.<br>T=
hat implies that an implementation MUST be ready to accept TIEs on<br>all a=
ddresses it used as source of LIE frames.</pre>
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
&quot;<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Yes, dynamic withdrawal of AFs is a rathole I would encourage e'one to stay=
 away from. If AF goes away, we reset the adjacency.
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
--- tony <br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> xu.benchong@zte.com.c=
n &lt;xu.benchong@zte.com.cn&gt;<br>
<b>Sent:</b> Friday, July 12, 2019 3:20 AM<br>
<b>To:</b> Antoni Przygienda<br>
<b>Cc:</b> brunorijsman@gmail.com; rift@ietf.org<br>
<b>Subject:</b> Re:Fw:Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</font=
>
<div>&nbsp;</div>
</div>
<div>
<div class=3D"x_zcontentRow">
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<p>Tony</p>
<p>I get the rule now, thank you!</p>
<p>It should send multi lies in same interface with different source addres=
s include v4 and v6 which we want to use the address as a gateway. It confu=
sed me in the previous discussion and I did't find it in the protocol. It i=
s different with other protocols.
 Bruno's code has already implemented.</p>
<p>In this case, the 3-way state switching&nbsp;forword the rule in 5.2.2&n=
bsp;</p>
<p>&quot;</p>
<p>Observe further that the protocol does NOT support selective</p>
<p>&nbsp; &nbsp;disabling of address families or any local address changes =
in three</p>
<p>&nbsp; &nbsp;way state, i.e. if a link has entered three way IPv4 and/or=
 IPv6 with</p>
<p>&nbsp; &nbsp;a neighbor on an adjacency and it wants to stop supporting =
one of the</p>
<p>&nbsp; &nbsp;families or change any of its local addresses, it has to te=
ar down</p>
<p>&nbsp; &nbsp;and rebuild the adjacency. &nbsp;It also has to remove any =
information it</p>
<p>&nbsp; &nbsp;stored about adjacency's' LIE source addresses seen.</p>
<p>&quot;</p>
<p>Then the nexthop selection of the rib table depends on the device itself=
 and I support this.</p>
<p><br>
</p>
<p>thank you!</p>
<p>Benchong</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_zhistoryRow" style=3D"display:block">
<div class=3D"x_zhistoryDes" style=3D"width:100%; height:28px; line-height:=
28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_zwriteHistoryContainer">
<div class=3D"x_control-group x_zhistoryPanel">
<div class=3D"x_zhistoryHeader" style=3D"padding:8px; background-color:#F5F=
6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_zreadUserNam=
e" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span><span class=
=3D"x_zreadUserName" style=3D"display:inline">brunorijsman@gmail.com &lt;br=
unorijsman@gmail.com&gt;;</span><span class=3D"x_zreadUserName" style=3D"di=
splay:inline">rift@ietf.org
 &lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C212=C8=D5 00:38</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_zreadTitle"><str=
ong>Re: Fw:Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</strong></span><=
/div>
</div>
<div class=3D"x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Benchong, as to your last intersting question: <br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
&quot;
<p style=3D"font-size:14px; font-family:Arial; margin-top:0; margin-bottom:=
0">Is it possible to generate a valid v6 rib table as long as v4 address of=
 the inteface is valid? Can it support ipv4 and ipv6 double stack?</p>
&quot;</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
answer is &quot;yes, but practically if your interface can fwd' IPv6 frames=
 it also runs ND so you will have a v6 link local which seems much more nat=
ural as next-hop rather than maltreat v4 addresses to build v6 next-hops fr=
om ;-) Unless you have some funky silicon
 &nbsp;limitations where such a thing is a good thing ;-) <br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
So, you see why the spec is written to the point it's written and silent on=
 specification how to precisely build next-hops/gateways. It can be impleme=
nted in couple different ways which are very close to implementation techni=
ques/HW used so trying to nail that
 &nbsp;in protocol spec would be over-specification which is almost as bad =
as under-specification ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
--- tony <br>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-family:Calibri,=
sans-serif; font-size:11pt; color:#000000"><strong>From:</strong> xu.bencho=
ng@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Thursday, July 11, 2019 2:33 AM<br>
<strong>To:</strong> brunorijsman@gmail.com<br>
<strong>Cc:</strong> Antoni Przygienda<br>
<strong>Subject:</strong> Fw:Re: Re:[Rift] Ipv4 and ipv6 cooperating in rif=
t</span> &nbsp;</div>
<div>
<div class=3D"x_x_zcontentRow">
<p style=3D"font-size:14px; font-family:arial">Hi,&nbsp;<span style=3D"font=
-family:Calibri,Arial,Helvetica,sans-serif; font-size:16px; line-height:22.=
8571434020996px; background-color:rgb(255,255,255)">Bruno</span></p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:s=
ans-serif">I read part of your RIFT code, thank you for your great job!</sp=
an></p>
<p>When sending LIE messages, as long as there is a v4 address, v4 will be =
used first, so we will get v4 next hop.</p>
<p>----------</p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:C=
alibri,Arial,Helvetica,sans-serif; font-size:16px; line-height:22.857143402=
0996px; background-color:rgb(255,255,255)"></span></p>
<p>&nbsp; &nbsp; def action_start_flooding(self):</p>
<p><span class=3D"x_x_Apple-tab-span" style=3D"white-space:pre"></span>=A1=
=AD=A1=AD</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp;# For sending flooding packets, use whatever =
IPv4 or IPv6 address we see first for the</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; # neighbor, preferring the IPv4 address if w=
e know both.</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; if self.neighbor.ipv4_address is not None:</=
p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.rx_info(&quot;Start IPv4 =
flooding: send to address %s port %d&quot;,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp;self.neighbor.ipv4_address, tx_flood_port)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self._flood_tx_ipv4_socket =3D=
 self.create_socket_ipv4_tx_ucast(</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remote_address=
=3Dself.neighbor.ipv4_address,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; port=3Dtx_flood_=
port)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; else:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; assert self.neighbor.ipv6_addr=
ess is not None</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scoped_ipv6_address =3D self.n=
eighbor.ipv6_address</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if &quot;%&quot; not in self.n=
eighbor.ipv6_address:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scoped_ipv6_addr=
ess &#43;=3D &quot;%&quot; &#43; self.physical_interface_name</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self.rx_info(&quot;Start IPv6 =
flooding: send to address %s port %d&quot;,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp;scoped_ipv6_address, tx_flood_port)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self._flood_tx_ipv6_socket =3D=
 self.create_socket_ipv6_tx_ucast(</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; remote_address=
=3Dscoped_ipv6_address,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; port=3Dtx_flood_=
port)</p>
<p style=3D"font-size:14px; font-family:arial">SPF calculation will calcula=
te the nexthop of v4 and v6 at the same time.<span style=3D"font-family:Cal=
ibri,Arial,Helvetica,sans-serif; font-size:16px; line-height:22.85714340209=
96px; background-color:rgb(255,255,255)"><br>
</span></p>
<p style=3D"font-size:14px; font-family:arial">-----------------</p>
<p>&nbsp; &nbsp; def set_spf_predecessor(self, destination, nbr_tie_element=
, predecessor_system_id,</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n=
bsp; &nbsp; &nbsp; &nbsp; spf_direction):</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; destination.add_predecessor(predecessor_syst=
em_id)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; if (nbr_tie_element is not None) and (predec=
essor_system_id =3D=3D self.system_id):</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for link_id_pair in nbr_tie_el=
ement.link_ids:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nhop =3D self.in=
terface_id_to_ipv4_next_hop(link_id_pair.local_id)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if nhop:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; de=
stination.add_ipv4_next_hop(nhop)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nhop =3D self.in=
terface_id_to_ipv6_next_hop(link_id_pair.local_id)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if nhop:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; de=
stination.add_ipv6_next_hop(nhop)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; else:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dest_table =3D self._spf_desti=
nations[spf_direction]</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; destination.inherit_next_hops(=
dest_table[predecessor_system_id])</p>
<p style=3D"font-size:14px; font-family:arial">The RIB table only selects t=
he same AF nexthop</p>
<p style=3D"font-size:14px; font-family:arial">--------------</p>
<p>&nbsp; &nbsp; def spf_install_routes_in_rib(self, spf_direction):</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; =A1=AD=A1=AD</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prefix =3D dest_=
key</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if prefix.ipv4pr=
efix is not None:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ne=
xt_hops =3D dest.ipv4_next_hops</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro=
ute_table =3D self._ipv4_rib</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else:</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; as=
sert prefix.ipv6prefix is not None</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ne=
xt_hops =3D dest.ipv6_next_hops</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro=
ute_table =3D self._ipv6_rib</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if next_hops:</p=
>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rt=
e =3D route.Route(prefix, owner, next_hops)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ro=
ute_table.put_route(rte)</p>
<p style=3D"font-size:14px; font-family:arial">Is it possible to generate a=
 valid v6 rib table as long as v4 address of the inteface is valid? Can it =
support ipv4 and ipv6 double stack?</p>
<p style=3D"font-size:14px; font-family:arial">Thanks!<br>
</p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:a=
rial; line-height:21px">Benchong</span></p>
<p style=3D"font-size:14px; font-family:arial"><span style=3D"font-family:a=
rial; line-height:21px"><br>
</span></p>
<div>
<div class=3D"x_x_zhistoryRow" style=3D"display:block">
<div class=3D"x_x_zhistoryDes" style=3D"width:100%; height:28px; line-heigh=
t:28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_x_zwriteHistoryContainer">
<div class=3D"x_x_control-group x_x_zhistoryPanel">
<div class=3D"x_x_zhistoryHeader" style=3D"padding:8px; background-color:#F=
5F6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span></div>
<div><strong>=B3=AD=CB=CD=C8=CB=A3=BA</strong><span class=3D"x_x_zreadUserN=
ame" style=3D"display:inline">Jeffrey (Zhaohui) Zhang &lt;zzhang@juniper.ne=
t&gt;;</span><span class=3D"x_x_zreadUserName" style=3D"display:inline">=D5=
=C5=D5=F700007940;</span><span class=3D"x_x_zreadUserName" style=3D"display=
:inline">rift@ietf.org
 &nbsp;&lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C211=C8=D5 11:52</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_x_zreadTitle"><s=
trong>Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div>
</div>
<div class=3D"x_x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Benchong, what you seem to talk about is originating packets and it's the s=
ource that decides whether it sends v4 or v6 and the IP fabric with RIFT ju=
st forwards the packet, it cannot change in the middle the IP address famil=
y in which the packet is carried
 &nbsp;&nbsp;obviously so there is no decision to be made which IP AF is us=
ed, only which GW needs to be installed on the route nexthop. But yes, an i=
mplementaton can choose to forward v4 packets using the MAC address of a v6=
 gateway, a highly desirable behavior since
 &nbsp;&nbsp;with that, the fabric can be completely global address free wi=
thout any config (just ND) and do v4 fine.&nbsp;
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
yes, an implementation may choose to prefer v4 GW for v4 packets and v6 GW =
for v6 packets but normally it's the same MAC unless the deployment is very=
 strange @ which point knobs to control that may be necessary, something wh=
ich is implementation specific.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
So RIFT just floods the TIEs on any AF with prefixes of all AFs, the comput=
ation computes the route with directly attached next-hop which has to resol=
ve to MAC in any AF really and then packet can be forwarded ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
implement it and play with it, we have @ least 2 implementations already th=
at work fine doing that ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Yes, the closest analogy is v4 in BGP with v6 nexthops if you really want t=
o think that way but RIFT is much simpler since the nhop is always directly=
 connected and we don't talk about anything like v4ov6 or v6ov4 tunneling a=
nd so on ...
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
makes sense? <br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
--- tony <br>
</div>
<br>
<div><br>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-size:11pt; fo=
nt-family:Calibri,sans-serif; color:#000000"><strong>From:</strong> xu.benc=
hong@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Wednesday, July 10, 2019 8:39 PM<br>
<strong>To:</strong> Antoni Przygienda<br>
<strong>Cc:</strong> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; r=
ift@ietf.org<br>
<strong>Subject:</strong> Re:[Rift] Ipv4 and ipv6 cooperating in rift</span=
> &nbsp;</div>
<div>
<div class=3D"x_x_x_zcontentRow">
<p style=3D"font-size:14px; font-family:arial">Hi tony</p>
<p style=3D"font-size:14px; font-family:arial">Thanks for your explanation,=
 and I have already understood your opinion on v4v6 forwarding.</p>
<p>The difference between RIFT and other routing protocols is the consisten=
cy of packets AF and routes AF. Isis is in L2 encapsulation that solves dif=
ferent address families through multiple topologies. Ospf and rip are stric=
tly distinguished in v4v6. Rift
 &nbsp;&nbsp;is actually closer to BGP.</p>
<p>When the interface has both v4 and v6 addresses (or ND enabled), the pro=
tocol uses v4 or v6 or v4v6 address encapsulation. It will be better if pro=
tocol gave the recommended behavior. Otherwise, different people will give =
different solutions, which will
 &nbsp;&nbsp;cause protocol conformance problem.&nbsp;</p>
<p>The options we can choose are:</p>
<p>a) ND enable v6 first:</p>
<p>If v6 address valid AND ND enable:</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>Else if v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>b) v4 first</p>
<p>If v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>Else if v6 address valid(AND ND enable):</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>c) coexistence of v4v6</p>
<p>If v4 address valid:</p>
<p>&nbsp; &nbsp; &nbsp;V4 packet</p>
<p>If v6 address valid(AND ND enable):</p>
<p>&nbsp; &nbsp; &nbsp;V6 packet</p>
<p>Confused on both the sending and receiving sides.</p>
<p>c) will further have a GW selection problem, preferring to choose the ne=
xthop of the same address family with the prefix, or v4 first.</p>
<p style=3D"font-size:14px; font-family:arial">I'd like the protocol recomm=
ends a default behavior and may provides a control method in yang.</p>
<p style=3D"font-size:14px; font-family:arial">Thanks!</p>
<p style=3D"font-size:14px; font-family:arial">Benchong</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_x_x_zhistoryRow" style=3D"display:block">
<div class=3D"x_x_x_zhistoryDes" style=3D"width:100%; height:28px; line-hei=
ght:28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_x_x_zwriteHistoryContainer">
<div class=3D"x_x_x_control-group x_x_x_zhistoryPanel">
<div class=3D"x_x_x_zhistoryHeader" style=3D"padding:8px; background-color:=
#F5F6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_x_zreadUse=
rName">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_x_zreadUse=
rName" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span></div>
<div><strong>=B3=AD=CB=CD=C8=CB=A3=BA</strong><span class=3D"x_x_x_zreadUse=
rName" style=3D"display:inline">Jeffrey (Zhaohui) Zhang &lt;zzhang@juniper.=
net&gt;;</span><span class=3D"x_x_x_zreadUserName" style=3D"display:inline"=
>=D5=C5=D5=F700007940;</span><span class=3D"x_x_x_zreadUserName" style=3D"d=
isplay:inline">rift@ietf.org
 &nbsp;&nbsp;&lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C210=C8=D5 23:12</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_x_x_zreadTitle">=
<strong>Re: Re:[Rift] Ipv4 and ipv6 cooperating in rift</strong></span></di=
v>
</div>
<div class=3D"x_x_x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, that's an over-interpretation, the spec is looser than that b=
ut as far I saw sufficient. Section 5.2.2.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
a) Specification does not prohibit RIFT from using _any_ valid IPv6 address=
 on the interface to send IPv6 LIEs. The receiver is supposed to pick up th=
at source address and use it as destination when sending LIEs over v6 and/o=
r TIEs with the receving interface
 &nbsp;&nbsp;&nbsp;as gateway. Specification does NOT spell out what happen=
s e.g. on mismatched IP subnets on both sides and so on, situation here is =
similar to ISIS and different scenarios such as unnumbered links and so on<=
br>
</div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
b) If you want the &quot;laziest&quot; possible implementation then in fact=
 yes, you can fall back on
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
&quot;
<pre>   All RIFT routers MUST support IPv4 forwarding and MAY support IPv6 =
   forwarding.  A three way adjacency over IPv6 addresses implies    suppor=
t for IPv4 forwarding.</pre>
&quot;</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
which makes v4ov6 forwarding inherent part of RIFT. That assumes however th=
at receiving neighbor does support V6 (which the spec does NOT mandate) and=
 nothing will happen if it doesn't. Therefore all RIFT implementation I saw=
 so far send both v4 and v6 which
 &nbsp;&nbsp;&nbsp;allows the neighbor to only receive v4 and forward using=
 v4 gateways if it doesn't support V6. In case both v4 and v6 AFs are estab=
lished, it is up to the implementation which/how it resolves the gateways a=
nd there are many interesting advanced issues such
 &nbsp;&nbsp;&nbsp;as mixture of spines with v4 and v6 nexthops and how to =
form ECMP amongst them that the spec does obviously not address since it's =
all very implementation and silicon specific.
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
--- tony <br>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_x_x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-family:Cali=
bri,sans-serif; font-size:11pt; color:#000000"><strong>From:</strong> xu.be=
nchong@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Wednesday, July 10, 2019 1:56 AM<br>
<strong>To:</strong> Antoni Przygienda<br>
<strong>Cc:</strong> Jeffrey (Zhaohui) Zhang; EXT-zhang.zheng@zte.com.cn; r=
ift@ietf.org<br>
<strong>Subject:</strong> Re:[Rift] Ipv4 and ipv6 cooperating in rift</span=
> &nbsp;</div>
<div>
<div class=3D"x_x_x_x_zcontentRow">
<p><br>
</p>
<p>Tony, thank you for your reply</p>
<p>Can it be understood that after the ND is enabled, the v6 address needs =
to be used to build neighbor? In this case, the rift packet of the v4 heade=
r is not allowed to be sent and received, and both v4 and v6 routes have a =
v6 GW.</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<p style=3D"font-size:14px; font-family:arial"><br>
</p>
<div>
<div class=3D"x_x_x_x_zhistoryRow" style=3D"display:block">
<div class=3D"x_x_x_x_zhistoryDes" style=3D"width:100%; height:28px; line-h=
eight:28px; background-color:#E0E5E9; color:#1388FF; text-align:center">
=D4=AD=CA=BC=D3=CA=BC=FE</div>
<div id=3D"x_x_x_x_zwriteHistoryContainer">
<div class=3D"x_x_x_x_control-group x_x_x_x_zhistoryPanel">
<div class=3D"x_x_x_x_zhistoryHeader" style=3D"padding:8px; background-colo=
r:#F5F6F8">
<div><strong>=B7=A2=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_x_x_zreadU=
serName">AntoniPrzygienda &lt;prz@juniper.net&gt;</span></div>
<div><strong>=CA=D5=BC=FE=C8=CB=A3=BA</strong><span class=3D"x_x_x_x_zreadU=
serName" style=3D"display:inline">=D0=EC=B1=BE=B3=E710065053;</span><span c=
lass=3D"x_x_x_x_zreadUserName" style=3D"display:inline">Jeffrey (Zhaohui)Zh=
ang &lt;zzhang@juniper.net&gt;;</span><span class=3D"x_x_x_x_zreadUserName"=
 style=3D"display:inline">=D5=C5=D5=F700007940;</span><span class=3D"x_x_x_=
x_zreadUserName" style=3D"display:inline">rift@ietf.org
 &nbsp;&nbsp;&nbsp;&lt;rift@ietf.org&gt;;</span></div>
<div><strong>=C8=D5 =C6=DA =A3=BA</strong><span class=3D"">2019=C4=EA07=D4=
=C210=C8=D5 00:09</span></div>
<div><strong>=D6=F7 =CC=E2 =A3=BA</strong><span class=3D"x_x_x_x_zreadTitle=
"><strong>Re: [Rift] Ipv4 and ipv6 cooperating in rift</strong></span></div=
>
</div>
<div class=3D"x_x_x_x_zhistoryContent">
<div>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
Hey Benchong, cc:'ing list, good questions obviously that pop out on implem=
entation &nbsp;
<br>
</div>
<br>
<div style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12p=
t; color:rgb(0,0,0)">
<ol class=3D"x_x_x_x_ x_x_x_ x_x_ x_list-paddingleft-2">
<li>
<p>sending LIE only with v4 will not give you a v6 address to send to (sinc=
e the LIE source address gives the gateway for the AF, that's why we send L=
IE per AF) so you won't have a v6 GW address to send TIEs to ;-)</p>
</li><li>
<p>yes, every interface is independent. Observe that v6 support implies v4 =
as the spec says (since you can FW v4 without a v4 GW if you have a v6 gate=
way). However, if one side sends v6 only and the other side only v4 they'll=
 never go 3-way since they won't
 &nbsp;&nbsp;&nbsp;&nbsp;be able to receive. We just added a sentence to th=
e spec saying that if you don't send an AF LIE you MUST NOT receive the sam=
e AF LIE since we found that loose end in Bruno's implementation when testi=
ng security envelopes.&nbsp; It will be in -07<br>
</p>
</li></ol>
<br>
<div>
<pre style=3D"background-color:#ffffff; color:#000000; font-family:'Menlo';=
 font-size:7.5pt"><span style=3D"background-color:#efefef">&lt;</span><span=
 style=3D"color:#000080; background-color:#efefef; font-weight:bold">t</spa=
n><span style=3D"background-color:#efefef">&gt;</span>All RIFT routers MUST=
 support IPv4 forwarding and MAY support IPv6<br>    forwarding. A three wa=
y adjacency over IPv6 addresses implies support<br>    for IPv4 forwarding.=
 <strong>A node that does not process received IPv6 LIEs<br> &nbsp; &nbsp;M=
UST NOT originate IPv6 LIEs.</strong><br>    <span style=3D"background-colo=
r:#efefef">&lt;/</span><span style=3D"color:#000080; background-color:#efef=
ef; font-weight:bold">t</span><span style=3D"background-color:#efefef">&gt;=
</span></pre>
<br>
</div>
<ol class=3D"x_x_x_x_ x_x_x_ x_x_ x_list-paddingleft-2">
<li>
<p>IPv6/IPv4 prefix can be mixed in Prefix TIEs. Prefix TIEs do NOT care wh=
ich interface/AF they are sent over.
<br>
</p>
</li><li>
<p>how you build forwarding table and which gateways you use is implemenati=
on dependent but yes, you got the flavor. though your assumption of &quot;I=
pv6 destination with ipv4 nexthop&quot; is optimistic. every silicon does v=
4 so v6 can imply v4, implying v4 fwd'ing
 &nbsp;&nbsp;&nbsp;&nbsp;allows v6 forwarding fails on good amount of silic=
on. But again, those are all implementation knobs, spec only says &quot;v6 =
implies v4&quot; which means &quot;you better fwd. v4 over v6 nexthops if y=
ou see v6 LIEs only&quot;<br>
</p>
</li></ol>
<div>Observe that node TIEs are _not_ carrying the supported AFs on each in=
terface since I think it would lead to undesirable attempts to deploy (some=
 links can do v6) topologies which defeat the purpose of ZTP/simplicity of =
RIFT. v6 implies v4, if someone
 &nbsp;&nbsp;&nbsp;&nbsp;wants to fwd' v6 over a fabric where certain links=
 are v4 computations get really weird and operationally such a thing is pro=
bably a nightmare anyway. And getting v6 working is trivial, just flip on N=
D and you're in business (at least control plane wise
 &nbsp;&nbsp;;-)<br>
</div>
<br>
<div>The spec is noit giving implementation advice, it just specifies behav=
ior. In case of doubt looks @ Bruno';s open source. Bruno implemented the w=
hole LIE without ever talking to me and it interop'ed day one without probl=
ems.
<br>
</div>
<br>
<div>When you're ready with your implementation to interop, Bruno's code ha=
s nice framework you can plug in against open source &amp; Juniper implemen=
tation easily
<br>
</div>
<br>
<div>--- tony <br>
</div>
</div>
<hr tabindex=3D"-1" style=3D"display:inline-block; width:98%">
<div id=3D"x_x_x_x_divRplyFwdMsg" dir=3D"ltr"><span style=3D"font-size:11pt=
; font-family:Calibri,sans-serif; color:#000000"><strong>From:</strong> xu.=
benchong@zte.com.cn &lt;xu.benchong@zte.com.cn&gt;<br>
<strong>Sent:</strong> Tuesday, July 9, 2019 5:08 AM<br>
<strong>To:</strong> Antoni Przygienda; Jeffrey (Zhaohui) Zhang; EXT-zhang.=
zheng@zte.com.cn<br>
<strong>Subject:</strong> [Rift] Ipv4 and ipv6 cooperating in rift</span> &=
nbsp;</div>
<div>
<div class=3D"x_x_x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_x_x_zcontentRow">
<div>
<div class=3D"x_x_x_x_x_zcontentRow">
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Hi<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
I have some questions about ipv4 and ipv6 cooperating in rift.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Ip head of the rift packet can be V4 or V6, and the prefix in TIE also supo=
rt V4 or v6.&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can it support the following situations:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
1=A1=A2A rift interface which&nbsp;send LIE with ipv4 head receiving LIE wi=
th IPv6 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
A rift interface which&nbsp;send LIE with ipv6 head receiving LIE with IPv4=
 head;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
Can they build 3-Way neighbor?</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
2=A1=A2Some interfaces in a rift instance send ipv4 head packets=A3=AC and =
others in the same instance send ipv6 head packets=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
3=A1=A2Ipv4 head TIE packet fill ipv6 prefix=A3=BB</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 head TIE packet fill ipv4 prefix=A3=BB(RIFT-06 5.2.2: All=
 RIFT routers MUST support IPv4 forwarding and MAY support IPv6</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;forwarding. &nbsp;A three way adjacency over IPv6 addresses im=
plies</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;support for IPv4 forwarding.)</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
4=A1=A2In rib table of the rift:</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with ipv4 nexthop;&nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv4 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;Ipv6 destination with both ipv4 nexthop and ipv6 nexthop;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
&nbsp; &nbsp;</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
5=A1=A2The ip head type(v4 or v6) can be configured in rift interface or in=
stance.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
<br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; font-fam=
ily:Arial,=CB=CE=CC=E5,'Microsoft Yahei','Lucida Grande',Verdana,Lucida,Hel=
vetica,sans-serif; line-height:20px; outline:0px!important; background-colo=
r:rgb(255,255,255)">
It will be better if there are clear instructions in rift protocol.</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
<br style=3D"box-sizing:border-box; outline:0px!important">
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Thanks=A3=A1</p>
<p style=3D"margin-top:0px; margin-bottom:0px; box-sizing:border-box; margi=
n-top:0px; margin-bottom:0px; white-space:normal; min-height:14px; line-hei=
ght:20px; font-family:arial; outline:0px!important; background-color:rgb(25=
5,255,255)">
Benchong</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
<p style=3D"margin-top:0px; margin-bottom:0px; font-size:14px; font-family:=
arial"><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p><br>
</p>
</div>
</div>
</body>
</html>

--_000_MWHPR05MB3279A23783994C80FE41F577ACF20MWHPR05MB3279namp_--


From nobody Tue Jul 16 11:14:59 2019
Return-Path: <jefftant.ietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0CF1120C94 for <rift@ietfa.amsl.com>; Tue, 16 Jul 2019 11:14:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 DC69IymVBvk2 for <rift@ietfa.amsl.com>; Tue, 16 Jul 2019 11:14:56 -0700 (PDT)
Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) (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 C976B120C8D for <rift@ietf.org>; Tue, 16 Jul 2019 11:14:50 -0700 (PDT)
Received: by mail-pf1-x42f.google.com with SMTP id r1so9481111pfq.12 for <rift@ietf.org>; Tue, 16 Jul 2019 11:14:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version; bh=gEPGxiQo+0c7sY6PJJuZXMkqNJsMQu4Y9x5SzbSdX9A=; b=ShTXdH5x5wvxfXyYlWE6gSwSIPROsCQz2WKGNoCbISs6jwwzb8ufTVJTiqd2PxZVH9 uKAs0Im8J6aG/r8mVSQZw6TVH0VbwCoo6diEGbhymWh9664OeMOHVr/WLJ3Ewnx2cfz8 quBi1/vJK3cUfYTO0wZnBd0z1IJXzn6bJh6/UlrmpcasHe6b8I1WqGXTkyzld+rqsQAQ AnbYYBrwzhi36SZep3gopSJkuM8zbiI7TiTDOqjUrkGMfdYX5LTIYcXQwwAMagnfZrY6 vdD780B6ECK4pZdxAiRsD1uQxu8bpVohADy6n7jIQKL/Dk0nkPyNtWZQ1IR5S8/YtO4Q cXdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:message-id:in-reply-to :references:subject:mime-version; bh=gEPGxiQo+0c7sY6PJJuZXMkqNJsMQu4Y9x5SzbSdX9A=; b=tzAuJKCePuzBkHEAd6CidJlm98v7X/xTJTmNpwZZ4DxrEyiyPWWHRsi3Ljah19SPBJ i61APZgAt6xOXgckxnqTZuD5lf1y0a/w7kEPQ3DMg6k5h//zJ9Qd9OC2Y1XiEYS+59sW WREs3FKdBqpwU4tbHz9Ze92K7HYIpYPVlOO8FgtJ5l3vRr/psNOb+CYzcJwFQrDVM0l1 BtmR/3qjwFrq9u8soP3W7/goP5uwtkjwDgtpzbFJdPVnEjWADyV2zNG/qSdUvtnRyQZ6 vgLYJPZt/pQGfJWvHL0R+dzLJ1JUfymXqsg3bGttj7byPGZIGClf3a6pSYgGbUiEP74u rdig==
X-Gm-Message-State: APjAAAXcBK4B6I0yCJW0fHuwpRr5osrZSDM44YReIenHaJkUdBbBHfA+ FLzG5E+3CcXqohz2zb+s3W4=
X-Google-Smtp-Source: APXvYqwxskx3MrkX2fGOewsjaN9992oX427rnzD9xFBgm885waOA+meyMfsUTkw4Y/wnLxkaos3vdQ==
X-Received: by 2002:a63:dc50:: with SMTP id f16mr36183979pgj.447.1563300890270;  Tue, 16 Jul 2019 11:14:50 -0700 (PDT)
Received: from [10.5.5.194] ([50.235.77.202]) by smtp.gmail.com with ESMTPSA id i15sm22990599pfd.160.2019.07.16.11.14.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Jul 2019 11:14:49 -0700 (PDT)
Date: Tue, 16 Jul 2019 11:14:39 -0700
From: Jeff Tantsura <jefftant.ietf@gmail.com>
To: "Jeffrey (Zhaohui) Zhang" <zzhang=40juniper.net@dmarc.ietf.org>,  Bruno Rijsman <brunorijsman@gmail.com>
Cc: "=?utf-8?Q?rift=40ietf.org?=" <rift@ietf.org>
Message-ID: <67041994-c5a2-491d-895f-6bcdcc7d79c4@Spark>
In-Reply-To: <EE9BA6F5-0E72-4E8C-99A0-9D210F2A4D88@gmail.com>
References: <DM5PR05MB354843C3810BEFE86BF79CECD4F80@DM5PR05MB3548.namprd05.prod.outlook.com> <EE9BA6F5-0E72-4E8C-99A0-9D210F2A4D88@gmail.com>
X-Readdle-Message-ID: 67041994-c5a2-491d-895f-6bcdcc7d79c4@Spark
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="5d2e1416_1cfac1a_c7f7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/IjCJ1zqDyy3wAekFNDxGgl4vDow>
Subject: Re: [Rift] Agenda slot requests for Montreal meeting
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Jul 2019 18:14:58 -0000

--5d2e1416_1cfac1a_c7f7
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Jeffrey,

Looks good to me=21

Cheers,
Jeff
On Jul 3, 2019, 12:50 AM -0700, Bruno Rijsman <brunorijsman=40gmail.com>,=
 wrote:
> Short (10 min=3F) slot for update on RI=46T-Python implementation:
> 1) Security envelope
> 2) =46looding reduction
> 3) Positive disaggregation
> 4) Efficient TIE propagation (without decode and re-encode)
> 5) RI=46T-Juniper - RI=46T-Python interop testing
>
> As usual, I will be attending remotely and Tony (or other volunteer) wi=
ll present on my behalf.
>
> =E2=80=94 Bruno
>
> > On Jul 2, 2019, at 7:14 PM, Jeffrey (Zhaohui) Zhang <zzhang=3D40junip=
er.net=40dmarc.ietf.org> wrote:
> >
> > Hi,
> >
> > We=E2=80=99re meeting on Thursday 7/25, 15:50-17:20.
> > Please send us your slot requests, with presenter name, draft name, a=
nd desired time.
> >
> > Thanks=21
> > Jeff & Jeffrey
> >
> > Juniper Business Use Only
> > =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
> > RI=46T mailing list
> > RI=46T=40ietf.org
> > https://www.ietf.org/mailman/listinfo/rift
>

--5d2e1416_1cfac1a_c7f7
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

<html xmlns=3D=22http://www.w3.org/1999/xhtml=22>
<head>
<title></title>
</head>
<body>
<div name=3D=22messageBodySection=22>
<div dir=3D=22auto=22>Jeffrey,
<div dir=3D=22auto=22><br /></div>
<div dir=3D=22auto=22>Looks good to me=21</div>
</div>
</div>
<div name=3D=22messageSignatureSection=22><br />
<div class=3D=22match=46ont=22>Cheers,
<div>Jeff</div>
</div>
</div>
<div name=3D=22messageReplySection=22>On Jul 3, 2019, 12:50 AM -0700, Bru=
no Rijsman &lt;brunorijsman=40gmail.com&gt;, wrote:<br />
<blockquote type=3D=22cite=22 class=3D=22spark=5Fquote=22 style=3D=22marg=
in: 5px 5px; padding-left: 10px; border-left: thin solid =231abc9c;=22>Sh=
ort (10 min=3F) slot for update on RI=46T-Python implementation:
<div class=3D=22=22>1) Security envelope</div>
<div class=3D=22=22>2) =46looding reduction</div>
<div class=3D=22=22>3) Positive disaggregation</div>
<div class=3D=22=22>4) Efficient TIE propagation (without decode and re-e=
ncode)</div>
<div class=3D=22=22>5) RI=46T-Juniper - RI=46T-Python interop testing<br =
class=3D=22=22 />
<div class=3D=22=22><br class=3D=22=22 /></div>
<div class=3D=22=22>As usual, I will be attending remotely and Tony (or o=
ther volunteer) will present on my behalf.
<div class=3D=22=22><br class=3D=22=22 /></div>
<div class=3D=22=22>=E2=80=94 Bruno<br class=3D=22=22 />
<div><br class=3D=22=22 />
<blockquote type=3D=22cite=22 class=3D=22spark=5Fquote=22 style=3D=22marg=
in: 5px 5px; padding-left: 10px; border-left: thin solid =23e67e22;=22>
<div class=3D=22=22>On Jul 2, 2019, at 7:14 PM, Jeffrey (Zhaohui) Zhang &=
lt;<a href=3D=22mailto:zzhang=3D40juniper.net=40dmarc.ietf.org=22 class=3D=
=22=22>zzhang=3D40juniper.net=40dmarc.ietf.org</a>&gt; wrote:</div>
<br class=3D=22Apple-interchange-newline=22 />
<div class=3D=22=22>
<div class=3D=22WordSection1=22 style=3D=22page: WordSection1; caret-colo=
r: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: nor=
mal; font-variant-caps: normal; font-weight: normal; letter-spacing: norm=
al; text-align: start; text-indent: 0px; text-transform: none; white-spac=
e: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decora=
tion: none;=22>
<div style=3D=22margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: C=
alibri, sans-serif;=22 class=3D=22=22>Hi,</div>
<div style=3D=22margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: C=
alibri, sans-serif;=22 class=3D=22=22>&=23160;</div>
<div style=3D=22margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: C=
alibri, sans-serif;=22 class=3D=22=22>We=E2=80=99re meeting on Thursday 7=
/25, 15:50-17:20.</div>
<div style=3D=22margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: C=
alibri, sans-serif;=22 class=3D=22=22>Please send us your slot requests, =
with presenter name, draft name, and desired time.</div>
<div style=3D=22margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: C=
alibri, sans-serif;=22 class=3D=22=22>&=23160;</div>
<div style=3D=22margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: C=
alibri, sans-serif;=22 class=3D=22=22>Thanks=21</div>
<div style=3D=22margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: C=
alibri, sans-serif;=22 class=3D=22=22>Jeff &amp; Jeffrey</div>
<br class=3D=22=22 />
<div style=3D=22margin: 0px;=22 class=3D=22=22><span style=3D=22font-size=
: 7pt; font-family: Calibri;=22 class=3D=22=22>Juniper Business Use Only<=
/span></div>
</div>
<span style=3D=22caret-color: rgb(0, 0, 0); font-family: Helvetica; font-=
size: 12px; font-style: normal; font-variant-caps: normal; font-weight: n=
ormal; letter-spacing: normal; text-align: start; text-indent: 0px; text-=
transform: none; white-space: normal; word-spacing: 0px; -webkit-text-str=
oke-width: 0px; text-decoration: none; float: none; display: inline =21im=
portant;=22 class=3D=22=22>=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F</span><br style=3D=22caret-color: rgb(0, 0, 0); font-f=
amily: Helvetica; font-size: 12px; font-style: normal; font-variant-caps:=
 normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; word-spacing=
: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;=22 class=3D=
=22=22 />
<span style=3D=22caret-color: rgb(0, 0, 0); font-family: Helvetica; font-=
size: 12px; font-style: normal; font-variant-caps: normal; font-weight: n=
ormal; letter-spacing: normal; text-align: start; text-indent: 0px; text-=
transform: none; white-space: normal; word-spacing: 0px; -webkit-text-str=
oke-width: 0px; text-decoration: none; float: none; display: inline =21im=
portant;=22 class=3D=22=22>RI=46T mailing list</span><br style=3D=22caret=
-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style=
: normal; font-variant-caps: normal; font-weight: normal; letter-spacing:=
 normal; text-align: start; text-indent: 0px; text-transform: none; white=
-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-d=
ecoration: none;=22 class=3D=22=22 />
<a href=3D=22mailto:RI=46T=40ietf.org=22 style=3D=22color: rgb(149, 79, 1=
14); text-decoration: underline; font-family: Helvetica; font-size: 12px;=
 font-style: normal; font-variant-caps: normal; font-weight: normal; lett=
er-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; t=
ext-transform: none; white-space: normal; widows: auto; word-spacing: 0px=
; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;=22 clas=
s=3D=22=22>RI=46T=40ietf.org</a><br style=3D=22caret-color: rgb(0, 0, 0);=
 font-family: Helvetica; font-size: 12px; font-style: normal; font-varian=
t-caps: normal; font-weight: normal; letter-spacing: normal; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; word-=
spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;=22 c=
lass=3D=22=22 />
<a href=3D=22https://www.ietf.org/mailman/listinfo/rift=22 style=3D=22col=
or: rgb(149, 79, 114); text-decoration: underline; font-family: Helvetica=
; font-size: 12px; font-style: normal; font-variant-caps: normal; font-we=
ight: normal; letter-spacing: normal; orphans: auto; text-align: start; t=
ext-indent: 0px; text-transform: none; white-space: normal; widows: auto;=
 word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-w=
idth: 0px;=22 class=3D=22=22>https://www.ietf.org/mailman/listinfo/rift</=
a></div>
</blockquote>
</div>
<br class=3D=22=22 /></div>
</div>
</div>
</blockquote>
</div>
</body>
</html>

--5d2e1416_1cfac1a_c7f7--


From nobody Tue Jul 16 11:31:39 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 233D2120119 for <rift@ietfa.amsl.com>; Tue, 16 Jul 2019 11:31:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable 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 PZn9nV-Pnq_9 for <rift@ietfa.amsl.com>; Tue, 16 Jul 2019 11:31:35 -0700 (PDT)
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) (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 945631200FB for <rift@ietf.org>; Tue, 16 Jul 2019 11:31:35 -0700 (PDT)
Received: by mail-ed1-x535.google.com with SMTP id d4so21417693edr.13 for <rift@ietf.org>; Tue, 16 Jul 2019 11:31:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=bBOz/tmZs32k3j4zWfJpVXuf49RjgZRwIvlLPJT2iiA=; b=ZwLfOUUUpUf7ASQpRl+sfqaeoch/ESm2v6PBa3PBDRxhkgXGdNjCXz1qC/bUtTijNM 3wqo6T7At6Bhs0kIF1y8vwfDjcftAaPPg6R19hQf1sBHLG0Bu7hF28a7SDuzfU6q1Pdk J3RNCFxFbI6gY4lquWReaUw4n8Y/9wNdupJoDZt10GRWqrqaykvWrOis6cup86VPFtdZ 74iKSrnr6ydyy64UTnTpeffJ9LmfClp7FR18De83lUpquNkwS03uONf/2ZmWdlIH1mTK iy325uX3zv+mUNYaTX+zT7odyzrwOpDAu/de/IQayaF1vU3vxkGGe70W+azVQKWj02ZS Brag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=bBOz/tmZs32k3j4zWfJpVXuf49RjgZRwIvlLPJT2iiA=; b=T9Wg4826RRtk3RCF2rLPOPEIKdc27U9K8G60fHOmHZh74sEyUTd1Pt7Y2ykhG0qzSE H+TCRLNiHkWaWYrX9gwpNP9Z2kyGcrS0ONYzUyA+RWkUB4an/7xbMMCd623HOIb9YY4E +gJxFgKlL9Vn3KSc+HG0ldzcMvlcpunyPf14PfzKOm7LdC+dZ5TBd3ikm+O1D/jYe9X5 3aBxvPj95H9GAHvI+i52V84pX2xhba4yqyNWPdJaHtiODH8MyCqFCZqBY1NpXclKu7Bl PrKM+bavQ6RKE3xwf5VVfCehO12NUV9PiDSaadQPcdKcUqFd2HUHYKiYPTH68ceRKhlS ErWQ==
X-Gm-Message-State: APjAAAWd/oWhxHOmPACyZwI2cEIuxXbN1wjrPxFPxLfFnEjv2J0+2w89 tEV7Ili1/2ySdfIwEvX6uEVDfV00Q3tIuQ0/hFE=
X-Google-Smtp-Source: APXvYqw1gomKrFHABSoZW6NbSiuEAwEH9jIh8EYrN5hK04M6GyUTapkiD9MzF0Hz8WT9d+1lMzvGIL9zHXPyN7ZJ/4w=
X-Received: by 2002:a50:b87c:: with SMTP id k57mr30262354ede.226.1563301894139;  Tue, 16 Jul 2019 11:31:34 -0700 (PDT)
MIME-Version: 1.0
References: <DM5PR05MB354843C3810BEFE86BF79CECD4F80@DM5PR05MB3548.namprd05.prod.outlook.com> <EE9BA6F5-0E72-4E8C-99A0-9D210F2A4D88@gmail.com> <67041994-c5a2-491d-895f-6bcdcc7d79c4@Spark>
In-Reply-To: <67041994-c5a2-491d-895f-6bcdcc7d79c4@Spark>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Tue, 16 Jul 2019 11:30:57 -0700
Message-ID: <CA+wi2hMQS21JK_heaQd8fsmK2n8mLfVxeGEQTg_A8baqWa28cw@mail.gmail.com>
To: Jeff Tantsura <jefftant.ietf@gmail.com>
Cc: "Jeffrey (Zhaohui) Zhang" <zzhang=40juniper.net@dmarc.ietf.org>,  Bruno Rijsman <brunorijsman@gmail.com>, "rift@ietf.org" <rift@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000013b3d3058dd0968e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/3kknwPRIbVRgD62ceJPjX9C2_1k>
Subject: Re: [Rift] Agenda slot requests for Montreal meeting
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Jul 2019 18:31:38 -0000

--00000000000013b3d3058dd0968e
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I'm good, I'm expecting basically rehash the interim last spec update items
we did before this one

more than glad to present Bruno's interop stuff since I was involved of
course ...

--- tony



On Tue, Jul 16, 2019 at 11:15 AM Jeff Tantsura <jefftant.ietf@gmail.com>
wrote:

> Jeffrey,
>
> Looks good to me!
>
> Cheers,
> Jeff
> On Jul 3, 2019, 12:50 AM -0700, Bruno Rijsman <brunorijsman@gmail.com>,
> wrote:
>
> Short (10 min?) slot for update on RIFT-Python implementation:
> 1) Security envelope
> 2) Flooding reduction
> 3) Positive disaggregation
> 4) Efficient TIE propagation (without decode and re-encode)
> 5) RIFT-Juniper - RIFT-Python interop testing
>
> As usual, I will be attending remotely and Tony (or other volunteer) will
> present on my behalf.
>
> =E2=80=94 Bruno
>
> On Jul 2, 2019, at 7:14 PM, Jeffrey (Zhaohui) Zhang <
> zzhang=3D40juniper.net@dmarc.ietf.org> wrote:
>
> Hi,
>
> We=E2=80=99re meeting on Thursday 7/25, 15:50-17:20.
> Please send us your slot requests, with presenter name, draft name, and
> desired time.
>
> Thanks!
> Jeff & Jeffrey
>
> Juniper Business Use Only
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>
>
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>

--00000000000013b3d3058dd0968e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>I&#39;m good, I&#39;m expecting basically rehash the =
interim last spec update items we did before this one</div><div><br></div><=
div>more than glad to present Bruno&#39;s interop stuff since I was involve=
d of course ... <br></div><div><br></div><div>--- tony <br></div><div><br><=
/div><div><br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" c=
lass=3D"gmail_attr">On Tue, Jul 16, 2019 at 11:15 AM Jeff Tantsura &lt;<a h=
ref=3D"mailto:jefftant.ietf@gmail.com">jefftant.ietf@gmail.com</a>&gt; wrot=
e:<br></div><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>
<div name=3D"messageBodySection">
<div dir=3D"auto">Jeffrey,
<div dir=3D"auto"><br></div>
<div dir=3D"auto">Looks good to me!</div>
</div>
</div>
<div name=3D"messageSignatureSection"><br>
<div class=3D"gmail-m_4751206160054263369matchFont">Cheers,
<div>Jeff</div>
</div>
</div>
<div name=3D"messageReplySection">On Jul 3, 2019, 12:50 AM -0700, Bruno Rij=
sman &lt;<a href=3D"mailto:brunorijsman@gmail.com" target=3D"_blank">brunor=
ijsman@gmail.com</a>&gt;, wrote:<br>
<blockquote type=3D"cite" class=3D"gmail-m_4751206160054263369spark_quote" =
style=3D"margin:5px;padding-left:10px;border-left:thin solid rgb(26,188,156=
)">Short (10 min?) slot for update on RIFT-Python implementation:
<div>1) Security envelope</div>
<div>2) Flooding reduction</div>
<div>3) Positive disaggregation</div>
<div>4) Efficient TIE propagation (without decode and re-encode)</div>
<div>5) RIFT-Juniper - RIFT-Python interop testing<br>
<div><br></div>
<div>As usual, I will be attending remotely and Tony (or other volunteer) w=
ill present on my behalf.
<div><br></div>
<div>=E2=80=94 Bruno<br>
<div><br>
<blockquote type=3D"cite" class=3D"gmail-m_4751206160054263369spark_quote" =
style=3D"margin:5px;padding-left:10px;border-left:thin solid rgb(230,126,34=
)">
<div>On Jul 2, 2019, at 7:14 PM, Jeffrey (Zhaohui) Zhang &lt;<a href=3D"mai=
lto:zzhang=3D40juniper.net@dmarc.ietf.org" target=3D"_blank">zzhang=3D40jun=
iper.net@dmarc.ietf.org</a>&gt; wrote:</div>
<br class=3D"gmail-m_4751206160054263369Apple-interchange-newline">
<div>
<div class=3D"gmail-m_4751206160054263369WordSection1" style=3D"font-family=
:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-w=
eight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-tr=
ansform:none;white-space:normal;word-spacing:0px;text-decoration:none">
<div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sa=
ns-serif">Hi,</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sa=
ns-serif">We=E2=80=99re meeting on Thursday 7/25, 15:50-17:20.</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sa=
ns-serif">Please send us your slot requests, with presenter name, draft nam=
e, and desired time.</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sa=
ns-serif">=C2=A0</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sa=
ns-serif">Thanks!</div>
<div style=3D"margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sa=
ns-serif">Jeff &amp; Jeffrey</div>
<br>
<div style=3D"margin:0px"><span style=3D"font-size:7pt;font-family:Calibri"=
>Juniper Business Use Only</span></div>
</div>
<span style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-=
variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:sta=
rt;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;=
text-decoration:none;float:none;display:inline">___________________________=
____________________</span><br style=3D"font-family:Helvetica;font-size:12p=
x;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spac=
ing:normal;text-align:start;text-indent:0px;text-transform:none;white-space=
:normal;word-spacing:0px;text-decoration:none">
<span style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-=
variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:sta=
rt;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;=
text-decoration:none;float:none;display:inline">RIFT mailing list</span><br=
 style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-varia=
nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;te=
xt-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-=
decoration:none">
<a href=3D"mailto:RIFT@ietf.org" style=3D"color:rgb(149,79,114);text-decora=
tion:underline;font-family:Helvetica;font-size:12px;font-style:normal;font-=
variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:sta=
rt;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"=
 target=3D"_blank">RIFT@ietf.org</a><br style=3D"font-family:Helvetica;font=
-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;le=
tter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;wh=
ite-space:normal;word-spacing:0px;text-decoration:none">
<a href=3D"https://www.ietf.org/mailman/listinfo/rift" style=3D"color:rgb(1=
49,79,114);text-decoration:underline;font-family:Helvetica;font-size:12px;f=
ont-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing=
:normal;text-align:start;text-indent:0px;text-transform:none;white-space:no=
rmal;word-spacing:0px" target=3D"_blank">https://www.ietf.org/mailman/listi=
nfo/rift</a></div>
</blockquote>
</div>
<br></div>
</div>
</div>
</blockquote>
</div>
</div>

_______________________________________________<br>
RIFT mailing list<br>
<a href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/rift" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/rift</a><br>
</blockquote></div>

--00000000000013b3d3058dd0968e--


From nobody Wed Jul 17 05:41:20 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 089A21200DE for <rift@ietfa.amsl.com>; Wed, 17 Jul 2019 05:41:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 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_HELO_NONE=0.001, 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 sNCNG5sM8wzz for <rift@ietfa.amsl.com>; Wed, 17 Jul 2019 05:41:17 -0700 (PDT)
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) (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 340C21200C3 for <rift@ietf.org>; Wed, 17 Jul 2019 05:41:17 -0700 (PDT)
Received: by mail-ed1-x530.google.com with SMTP id e3so25423897edr.10 for <rift@ietf.org>; Wed, 17 Jul 2019 05:41:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:content-transfer-encoding:mime-version:date:subject:cc:to :message-id; bh=NEFbLSbRZVzaLnyr4udnG4DzSCfFtz+TJwv5Tcr3ny8=; b=nBI9YaGnkcSDU/6mafflYU4ypLJKDPcf7zJHl7S/MznrYUBFVQjPqaqQoY0spR7JB3 SBims5iB/kEntNxEdyYME9ihQUVtr78KxlmJYz1WO0l8Ym6vePyfMmwBTKQji8O0Rkcv WbEW4RUPGRJeN+cKgC7IFL34h9Exp2tVUB349jRXb9utnwDO+8xN00dUejzsbRG062Nw M8AJcgnUUQfmRPsDbZweAAhC5+c2iGHEh0XlJ13qeSNZERS24j0ZsuB1hTFrWHIjHJEh q4rcd2oPxPlN263s2X0hDrOerFWIHYh8TXaET0Ea+ppwPNG6i5Z1FEv1uWfYx7QbJgMd Cpug==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:content-transfer-encoding:mime-version:date :subject:cc:to:message-id; bh=NEFbLSbRZVzaLnyr4udnG4DzSCfFtz+TJwv5Tcr3ny8=; b=Ie7GLxvhQt6Q4gPSEvut1LYXI6tMsFnfHsjiVzYZRpDtSd1McO/u9qyRGy2CGabkVE 4La8iBcJOU9rowL5Iii2GsGrZ2p4r6WpujCk8B2OKXLHIO2Pjcy5Ax2hHnhc2eYaajaF HwnNMx0rV3y3f80lcOZOCcRsJRCoj5fv1DWBfqL2uz6zLHI7GNvojVFGp5rA2oHsw8uK GRIcKiAwIbFMG1TBQU5Qsz1oUSYTOSrWmCD5aGG7knWeoFfCsN4io43QwWpFE/7ricyg k/q4k5G9HkHW6EhCyHzklnBr6su5bwqhMoIgbfzOo7TKnRG9HP5Gt28DKHsJ2XEyvoFm IIjw==
X-Gm-Message-State: APjAAAXXbxlvkmyxkmGZ5JjXiyUyR+7prL21y2SlaNqvVl8ZsPGXN3qQ TYw55UWr6Nwa/sG60/BpNv4=
X-Google-Smtp-Source: APXvYqxTDpk73R1hweNKRAnj6rJEdbPBQwoETZSXvJyFP5l5APoqyX4M0n8tYhn93AjvYfFvBk6B1A==
X-Received: by 2002:aa7:cd17:: with SMTP id b23mr34887922edw.278.1563367275642;  Wed, 17 Jul 2019 05:41:15 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-47-155.ip.prioritytelecom.net. [213.127.47.155]) by smtp.gmail.com with ESMTPSA id rv16sm4950699ejb.79.2019.07.17.05.41.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Jul 2019 05:41:14 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Wed, 17 Jul 2019 14:41:11 +0200
Cc: rift@ietf.org
To: Tony Przygienda <tonysietf@gmail.com>
Message-Id: <0DEC8C31-BFEE-42B9-B8D2-9F0A7ED88756@gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/VuDBMgntiWS1EFJUkGsntoW7rEw>
Subject: [Rift] Status update on security interop testing between RIFT-Juniper and RIFT-Python
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Jul 2019 12:41:19 -0000

Status update on security interop testing between RIFT-Juniper and =
RIFT-Python:

The outer keys are now interoperating fine.

(A) As expected, the adjacency between RIFT-Juniper and RIFT-Python =
comes up to state 3way, when=20

  (A1) authentication is disabled or

  (A2) authentication is enabled with the same active keys or=20

  (A3) authentication is enabled with different active keys and =
corresponding accept keys.

(B) As expected, the adjacency between RIFT-Juniper and RIFT-Python does =
not come up to state 3way, when=20

  (B1) Authentication is enabled on one side but not the other side

  (B2) Authentication is enabled with different active keys and without =
corresponding accept keys

Challenges along the way:

  (C1) Juniper uses SHA-256(key + payload) whereas RIFT-Python uses =
HMAC-SHA-256(key, payload).  Solution: add support for SHA-256(key + =
payload) to RIFT-Python (in addition to HMAC-SHA-256).

  (C2) RIFT-Juniper used different YAML configuration keywords than =
RIFT-Python.  Solution: change RIFT-Python to use the same configuration =
keywords.

  (C3) RIFT-Juniper only support configuration of outer keys on a =
per-interface basis, whereas RIFT-Python support configuring the outer =
keys on a per-node and per-interface basis with an inheritance rule.  =
Solution: for interop testing, only use per-interface configuration.

  (C4) RIFT-Juniper only supports SHA-256, whereas RIFT-Python also =
supports other key lengths (e.g. SHA-224, SHA-384, and more).  Solution: =
limit interop testing to SHA-256.

All four of these issues are implementation issues, and none of these =
issues require any changes to the draft.

Next step: finish interop testing for the origin keys. (I plan to do =
this Thursday  morning, Netherlands time)

=E2=80=94 Bruno


From nobody Wed Jul 17 05:58:14 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 53884120404 for <rift@ietfa.amsl.com>; Wed, 17 Jul 2019 05:58:06 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 r6AbCN6SvYW5 for <rift@ietfa.amsl.com>; Wed, 17 Jul 2019 05:58:04 -0700 (PDT)
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) (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 A87CC1203F7 for <rift@ietf.org>; Wed, 17 Jul 2019 05:58:03 -0700 (PDT)
Received: by mail-ed1-x52e.google.com with SMTP id e3so25502077edr.10 for <rift@ietf.org>; Wed, 17 Jul 2019 05:58:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=CKiPCy7UKWOsYH3o2Iz5joIWj4IRtcvDMLat4SB81Mw=; b=ZWfB7lJ/yjji4i1cGsQbh80OK1BLk71NLw6ilagts5eFPfEozz34F7x7hBZzt7Bl63 Ivv5F0DPB4k7tAezqyOHveWbTZKVh6gUCrp6+QMhUX4wp1KEQ70eFgZVczQES4RRmama KC9T78lN5fnTHEe8z1EpI/z0XVbeaRw6VcqyRn8kI3a6BxyDy+MRw2qC9ziFPIQWgB88 Yv8c5wowhxzF2qAu5EpQ3hIZVHYO2yQAL+qHQcdJW93cbmpWoFTepnUhPa2Qfx5vjNtM S+Fk7WXIux6HkCSAL/eJBTIYUO05CFN+/GLYjeKaUAHEGCYMAWdHiEyQANIq0vwMHDuj Nn0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=CKiPCy7UKWOsYH3o2Iz5joIWj4IRtcvDMLat4SB81Mw=; b=HLRQ+/EPZoZYmer15ACftUeXj1Hlvtw8EvoYcDo+GFktGIiAoqiH0Mf8DTqSWQlGlU A/Aclm1/Udmu9ljOyBROjzkeJzeaW3FzbAm6Whk4EsMflrKhTLFIufxYBcyBv3pR5RR8 lHYspR7UwDCd/rsfA/CWoyvjBYQJfaCczvlBZSFaURu51yQM6mEHWcZZyDdb0Q3aPhOe zTG+KvJyuC/lYxNB0To/mf6hWRvprxzaJZoEv7jHFKl1shCVhlEQpWtt8UtkwHIGoUTK eioDVil3ZGjBxSziJc4oyL0YgSBGBuvyVhDhstTxBm/IEm5luH/o3og2erCkRzfhVW6b rI1w==
X-Gm-Message-State: APjAAAV8Y4oVlXSvCBEoy8ozigvtIGWPwhr6/bkkxgusHnHFAjqRliuY SeZ/vJgX5HR/99UgNprdhDRpBsm3rJfQSwS87N4=
X-Google-Smtp-Source: APXvYqzzJ00tSG7P7+8EJy8bmo+Tq/AP6WZdwzRNDltIKvdWFNnsm8Uqj+l85bBGH54XSygRZxSd6z1Xa6yac9O8m5w=
X-Received: by 2002:a17:906:684e:: with SMTP id a14mr31237048ejs.156.1563368282253;  Wed, 17 Jul 2019 05:58:02 -0700 (PDT)
MIME-Version: 1.0
References: <0DEC8C31-BFEE-42B9-B8D2-9F0A7ED88756@gmail.com>
In-Reply-To: <0DEC8C31-BFEE-42B9-B8D2-9F0A7ED88756@gmail.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Wed, 17 Jul 2019 05:57:26 -0700
Message-ID: <CA+wi2hO_6bU0MuPGJaZMUdBrneDwHjZph2DMVB-XxhnsG7ui5A@mail.gmail.com>
To: Bruno Rijsman <brunorijsman@gmail.com>
Cc: rift@ietf.org
Content-Type: multipart/alternative; boundary="0000000000001def43058de00b9c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/5eZOCL8d47HOKko743DfvaFzl68>
Subject: Re: [Rift] Status update on security interop testing between RIFT-Juniper and RIFT-Python
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Jul 2019 12:58:13 -0000

--0000000000001def43058de00b9c
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

splendid & as usual thanks for the work Bruno ;-)  Zero protocol
interop-problems result speaks for itself as to quality of the spec I guess
[albeit to be honest we had a chat about the nonces, I'll update folks @
IETF] ;-) For me as matter of interest if any security person cares to
chime in; how important is HMAC-SHA-256 vs. SHA-256 ? I looked @ trade-offs
on SHA-224 ... SHA-512 and looks like SHA-256 was about the sweet-spot in
size/security/library support on all kind of systems, that's why I went for
it in first iteration.

I know that I changed yaml file keywords but I realized that we'll have a
clash in the future with key/value implementation in RIFT itself if we call
security-keys just "keys" so it was better eating crow now ...

The per-interface vs. node model on outer key is largely convienence. I
prefer to an outer configuration system/model like YANG or NETCONF to
support that kind of inheritance hierarchy from experience since it
complicates very quickly protocol implementation itself otherwise given
possible semantic contradictions and so on ...

--- tony


On Wed, Jul 17, 2019 at 5:41 AM Bruno Rijsman <brunorijsman@gmail.com>
wrote:

> Status update on security interop testing between RIFT-Juniper and
> RIFT-Python:
>
> The outer keys are now interoperating fine.
>
> (A) As expected, the adjacency between RIFT-Juniper and RIFT-Python comes
> up to state 3way, when
>
>   (A1) authentication is disabled or
>
>   (A2) authentication is enabled with the same active keys or
>
>   (A3) authentication is enabled with different active keys and
> corresponding accept keys.
>
> (B) As expected, the adjacency between RIFT-Juniper and RIFT-Python does
> not come up to state 3way, when
>
>   (B1) Authentication is enabled on one side but not the other side
>
>   (B2) Authentication is enabled with different active keys and without
> corresponding accept keys
>
> Challenges along the way:
>
>   (C1) Juniper uses SHA-256(key + payload) whereas RIFT-Python uses
> HMAC-SHA-256(key, payload).  Solution: add support for SHA-256(key +
> payload) to RIFT-Python (in addition to HMAC-SHA-256).
>
>   (C2) RIFT-Juniper used different YAML configuration keywords than
> RIFT-Python.  Solution: change RIFT-Python to use the same configuration
> keywords.
>
>   (C3) RIFT-Juniper only support configuration of outer keys on a
> per-interface basis, whereas RIFT-Python support configuring the outer ke=
ys
> on a per-node and per-interface basis with an inheritance rule.  Solution=
:
> for interop testing, only use per-interface configuration.
>
>   (C4) RIFT-Juniper only supports SHA-256, whereas RIFT-Python also
> supports other key lengths (e.g. SHA-224, SHA-384, and more).  Solution:
> limit interop testing to SHA-256.
>
> All four of these issues are implementation issues, and none of these
> issues require any changes to the draft.
>
> Next step: finish interop testing for the origin keys. (I plan to do this
> Thursday  morning, Netherlands time)
>
> =E2=80=94 Bruno
>
>

--0000000000001def43058de00b9c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>splendid &amp; as usual thanks for the work Bruno ;-)=
=C2=A0 Zero protocol interop-problems result speaks for itself as to qualit=
y of the spec I guess [albeit to be honest we had a chat about the nonces, =
I&#39;ll update folks @ IETF] ;-) For me as matter of interest if any secur=
ity person cares to chime in; how important is HMAC-SHA-256 vs. SHA-256 ? I=
 looked @ trade-offs on SHA-224 ... SHA-512 and looks like SHA-256 was abou=
t the sweet-spot in size/security/library support on all kind of systems, t=
hat&#39;s why I went for it in first iteration. <br></div><div><br></div><d=
iv>I know that I changed yaml file keywords but I realized that we&#39;ll h=
ave a clash in the future with key/value implementation in RIFT itself if w=
e call security-keys just &quot;keys&quot; so it was better eating crow now=
 ... <br></div><div><br></div><div>The per-interface vs. node model on oute=
r key is largely convienence. I prefer to an outer configuration system/mod=
el like YANG or NETCONF to support that kind of inheritance hierarchy from =
experience since it complicates very quickly protocol implementation itself=
 otherwise given possible semantic contradictions and so on ... <br></div><=
div><br></div><div>--- tony <br></div><div><br></div></div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Jul 17, 2019=
 at 5:41 AM Bruno Rijsman &lt;<a href=3D"mailto:brunorijsman@gmail.com">bru=
norijsman@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204)=
;padding-left:1ex">Status update on security interop testing between RIFT-J=
uniper and RIFT-Python:<br>
<br>
The outer keys are now interoperating fine.<br>
<br>
(A) As expected, the adjacency between RIFT-Juniper and RIFT-Python comes u=
p to state 3way, when <br>
<br>
=C2=A0 (A1) authentication is disabled or<br>
<br>
=C2=A0 (A2) authentication is enabled with the same active keys or <br>
<br>
=C2=A0 (A3) authentication is enabled with different active keys and corres=
ponding accept keys.<br>
<br>
(B) As expected, the adjacency between RIFT-Juniper and RIFT-Python does no=
t come up to state 3way, when <br>
<br>
=C2=A0 (B1) Authentication is enabled on one side but not the other side<br=
>
<br>
=C2=A0 (B2) Authentication is enabled with different active keys and withou=
t corresponding accept keys<br>
<br>
Challenges along the way:<br>
<br>
=C2=A0 (C1) Juniper uses SHA-256(key + payload) whereas RIFT-Python uses HM=
AC-SHA-256(key, payload).=C2=A0 Solution: add support for SHA-256(key + pay=
load) to RIFT-Python (in addition to HMAC-SHA-256).<br>
<br>
=C2=A0 (C2) RIFT-Juniper used different YAML configuration keywords than RI=
FT-Python.=C2=A0 Solution: change RIFT-Python to use the same configuration=
 keywords.<br>
<br>
=C2=A0 (C3) RIFT-Juniper only support configuration of outer keys on a per-=
interface basis, whereas RIFT-Python support configuring the outer keys on =
a per-node and per-interface basis with an inheritance rule.=C2=A0 Solution=
: for interop testing, only use per-interface configuration.<br>
<br>
=C2=A0 (C4) RIFT-Juniper only supports SHA-256, whereas RIFT-Python also su=
pports other key lengths (e.g. SHA-224, SHA-384, and more).=C2=A0 Solution:=
 limit interop testing to SHA-256.<br>
<br>
All four of these issues are implementation issues, and none of these issue=
s require any changes to the draft.<br>
<br>
Next step: finish interop testing for the origin keys. (I plan to do this T=
hursday=C2=A0 morning, Netherlands time)<br>
<br>
=E2=80=94 Bruno<br>
<br>
</blockquote></div>

--0000000000001def43058de00b9c--


From nobody Wed Jul 17 06:20:37 2019
Return-Path: <zzhang@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 45050120156 for <rift@ietfa.amsl.com>; Wed, 17 Jul 2019 06:20:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 8qsM8QmahZtq for <rift@ietfa.amsl.com>; Wed, 17 Jul 2019 06:20:32 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 6A2E5120098 for <rift@ietf.org>; Wed, 17 Jul 2019 06:20:32 -0700 (PDT)
Received: from pps.filterd (m0108162.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6HDEKia003735 for <rift@ietf.org>; Wed, 17 Jul 2019 06:20:31 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : content-type : mime-version; s=PPS1017; bh=tAOxygddUllqWrW8xBhsiiujYrqE66PFOioTc9GKVmU=; b=HJYFATdtGPG26u7WVmD73h8nabG97i0GV3RBxEkroP90EzvH29fcf2uo4lhLyPNRH//l 5U1ji8s8moLD4Ey4ClwAaWThPzvkdSxzEUbC7l0g3gkvu5bGwcXsWE+OeQff0zB5wpjo c0h7UN0bgRzLlPl8E3qClLUUHOQBGSpwf3qiyJMG6zb0d6iWqiTET30vOtYXhol30Xya 4K7yyCg8hjYh9xsbLNTpFJzfNSXlWs2R+8vm+9kxzPKB/rAl77B9nUsi2TCvi1TQTYjL 4HMZP7Z27i1EdswdqsxJOl91GyUYKW/icgFY9rQl1EljgeNpLpzc+wkqhBxQ6d1PqA2O XQ== 
Received: from nam02-cy1-obe.outbound.protection.outlook.com (mail-cys01nam02lp2058.outbound.protection.outlook.com [104.47.37.58]) by mx0b-00273201.pphosted.com with ESMTP id 2tt09m8cxe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for <rift@ietf.org>; Wed, 17 Jul 2019 06:20:30 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cO6v/5e+aNs5v82JGngLx3VyTcuzq1/nJLzBJ88ftjXqgxOjWujEqPHBD2q1C/PPYabKWxRg0+ydp55X5jN4lwRdMkA79NMGXphvpFbGf79W8jJZUlMPpjQN8EBoBhMSsUQ/QbVEyd04a/ULDW+49SL3g/yTJ18zZDfe1BIntlr7Vx3pz2FPEs19T2EouFzIrZ2zfA0Y0UpcuzyK3kG8ug3Fb1wo+oONpzY7n2dBH7Yx4tUYbXv0OyrJ4PcQnCCjkqhIJechTmAXkFo1dNQ1BmCG1++iD7yOEGKGIDWM4d8hYVJvdL6p5RQWLibd4PYsZ6BQYyVNrG81bRknLPUnAA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tAOxygddUllqWrW8xBhsiiujYrqE66PFOioTc9GKVmU=; b=k1vlVC62c3wx8nXGqDOXywAFzEvUSmqI9aIDkCJX87JAxZWZV1KtPy3UKFy0sLL6j2bwnEFKi18ooam2KsS/HYV8cdRKEvp5rvX4cAKLdabF/KiToE4jTiq5zhzRNHV9hakj7OoEmzfY6YPyyH/ixYOX/WY0CVwfjlwBpITHT7v6qBAELSSXodbMTFJNZoXj4wr3wPs7snMaVNKPEpCIl+PkI5V4ZBVtB5O9XwSTtj9/w8KRH9RgQPZkJTdGfVYiQCgo1rj5Qx1kwl2HbvRXRX+DcYPNagXuiMq82xE4H4OwQpHIrpjOdABmFEWu2hF5A2kWgJp1X2GxTn7RDIne5w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from DM5PR05MB3548.namprd05.prod.outlook.com (10.174.242.153) by DM5PR05MB3577.namprd05.prod.outlook.com (10.174.242.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2094.7; Wed, 17 Jul 2019 13:20:28 +0000
Received: from DM5PR05MB3548.namprd05.prod.outlook.com ([fe80::c890:e1c9:8d87:8d5f]) by DM5PR05MB3548.namprd05.prod.outlook.com ([fe80::c890:e1c9:8d87:8d5f%6]) with mapi id 15.20.2094.009; Wed, 17 Jul 2019 13:20:28 +0000
From: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>
To: "rift@ietf.org" <rift@ietf.org>
Thread-Topic: RIFT agenda for IETF105
Thread-Index: AdU8oiw2gzmJXk02TN+jJuP2x03WLQ==
Content-Class: 
Date: Wed, 17 Jul 2019 13:20:28 +0000
Message-ID: <DM5PR05MB3548365A8ECFBFC0E97B73C5D4C90@DM5PR05MB3548.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-product: dlpe-windows
dlp-version: 11.2.0.14
dlp-reaction: no-action
msip_labels: MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=True; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Owner=zzhang@juniper.net; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SetDate=2019-07-17T13:20:25.9960300Z; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Name=Juniper Business Use Only; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Application=Microsoft Azure Information Protection; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ActionId=2a2b1fe5-3961-4c86-a7f3-eebb695ac990; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Extended_MSFT_Method=Automatic
x-originating-ip: [66.129.241.14]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: bc40a1c6-23d3-48ac-865a-08d70ab9894e
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM5PR05MB3577; 
x-ms-traffictypediagnostic: DM5PR05MB3577:
x-ms-exchange-purlcount: 3
x-microsoft-antispam-prvs: <DM5PR05MB3577A7821580EC9353C9D858D4C90@DM5PR05MB3577.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:2803;
x-forefront-prvs: 01018CB5B3
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(376002)(346002)(396003)(136003)(366004)(39860400002)(189003)(199004)(71200400001)(71190400001)(8936002)(478600001)(55016002)(53936002)(5640700003)(81166006)(81156014)(1730700003)(2351001)(66066001)(2501003)(486006)(66476007)(66556008)(4744005)(64756008)(76116006)(66946007)(236005)(66446008)(6436002)(6916009)(6306002)(8676002)(86362001)(5660300002)(966005)(256004)(14444005)(9686003)(476003)(52536014)(25786009)(7736002)(74316002)(33656002)(316002)(606006)(2906002)(68736007)(3846002)(6116002)(790700001)(14454004)(9326002)(7696005)(99286004)(6506007)(102836004)(26005)(186003); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR05MB3577; H:DM5PR05MB3548.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: rwOm7AAgYq7kMo4jGcQAdMxR+VkdQEAp1hZs2c46N6foecmXxa2MCCCX0lxWzca87jNZTnLH6vWTkUL0VSZ9KYPT1DHkL1wgQFnfVVXDK0dhcXY+3qKriYeYJPRGYU87zFCC19vGlfDQ+CKgc/pU5EfZxerCru+fE6xHH8nt/DjVhaPCCxkhjZdtY0YEi2nRI0MQ3mspyeFGxFkygs7u9ZiETQ5B62acQkWVc2A2/M7tBX4/KV2cGOKZOxK76zyKKQOwvvusjWbiBZZUCEazVqmAqIGogFqYnebQpcFOcTGXoplnx4mfqk716tqlJhhkh2kFaYpIds3VGCUphNW7lPhvFbvxnuUVu6CUTxQiQ71nz0Ra0PvyA7bOniu9t95geacqY+q/8dzIjvlYY1tKGWfo1TXPW/fpD2MeMnFNYG0=
Content-Type: multipart/alternative; boundary="_000_DM5PR05MB3548365A8ECFBFC0E97B73C5D4C90DM5PR05MB3548namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: bc40a1c6-23d3-48ac-865a-08d70ab9894e
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jul 2019 13:20:28.3467 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zzhang@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR05MB3577
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-17_05:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=885 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907170161
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/jwS67Z_yFjNcXl6r1VRqXpT-NdE>
Subject: [Rift] RIFT agenda for IETF105
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Jul 2019 13:20:35 -0000

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

Hi,

This is our agenda https://datatracker.ietf.org/meeting/105/materials/agend=
a-105-rift-00:

-       Base protocol spec update, 20 ~ 30 minutes, Tony
-       Python implementation update, 10 ~ 15 minutes, Bruno & Tony
-       draft-wei-rift-applicability-01, 10 ~ 15 minutes, Yuehua/Sandy
-       tentative - multicast update, 10 minutes, Jeffrey/Pascal
-       WG status & plan 5 ~ 10 minutes

Thanks!

Jeff & Jeffrey


Juniper Business Use Only

--_000_DM5PR05MB3548365A8ECFBFC0E97B73C5D4C90DM5PR05MB3548namp_
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:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
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.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New";}
.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"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">This is our agenda <a href=3D"https://datatracker.ie=
tf.org/meeting/105/materials/agenda-105-rift-00">
https://datatracker.ietf.org/meeting/105/materials/agenda-105-rift-00</a>:<=
o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;;color:black">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Base pro=
tocol spec update, 20 ~ 30 minutes, Tony<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;;color:black">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Python i=
mplementation update, 10 ~ 15 minutes, Bruno &amp; Tony<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;;color:black">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; draft-we=
i-rift-applicability-01, 10 ~ 15 minutes, Yuehua/Sandy<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;;color:black">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tentativ=
e &#8211; multicast update, 10 minutes, Jeffrey/Pascal<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;;color:black">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WG statu=
s &amp; plan 5 ~ 10 minutes<o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Thanks!<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Jeff &amp; Jeffrey<o:p></o:p></p>
<br>
<p class=3D"msipfooter30b3d538" align=3D"Center" style=3D"margin:0"><span s=
tyle=3D"font-size:7.0pt;font-family:Calibri;color:#000000">Juniper Business=
 Use Only</span></p>
</div>
</body>
</html>

--_000_DM5PR05MB3548365A8ECFBFC0E97B73C5D4C90DM5PR05MB3548namp_--


From nobody Wed Jul 17 21:42:35 2019
Return-Path: <swmike@swm.pp.se>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 057521200D5 for <rift@ietfa.amsl.com>; Wed, 17 Jul 2019 21:42:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.299
X-Spam-Level: 
X-Spam-Status: No, score=-4.299 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=swm.pp.se
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 dzvFWu1QBhny for <rift@ietfa.amsl.com>; Wed, 17 Jul 2019 21:42:31 -0700 (PDT)
Received: from uplift.swm.pp.se (ipv6.swm.pp.se [IPv6:2a00:801::f]) (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 A271E120025 for <rift@ietf.org>; Wed, 17 Jul 2019 21:42:31 -0700 (PDT)
Received: by uplift.swm.pp.se (Postfix, from userid 501) id CA0F4B2; Thu, 18 Jul 2019 06:42:28 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=swm.pp.se; s=mail; t=1563424948; bh=P12SfpltPa66AFxK2uKrl7CgEfu1xUZk5V+ebNbrUi0=; h=Date:From:To:Subject:From; b=JrSMI995ErWECHEz8h2e3deLVytrdtVEo6tmYqXFw3R3xL0UZY0p6WDnPZqhJz1yN 8g0keNITa5TM5auJzUkFmhloZdKfBkZN170c0/MHlV6MNzcWPuln0xd0qgUnnMBBum yrCjzBfIWHeP3DejpB8gnFz91UnQ4IHeMoGDOQXk=
Received: from localhost (localhost [127.0.0.1]) by uplift.swm.pp.se (Postfix) with ESMTP id C674BB0 for <rift@ietf.org>; Thu, 18 Jul 2019 06:42:28 +0200 (CEST)
Date: Thu, 18 Jul 2019 06:42:28 +0200 (CEST)
From: Mikael Abrahamsson <swmike@swm.pp.se>
To: rift@ietf.org
Message-ID: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se>
User-Agent: Alpine 2.20 (DEB 67 2015-01-07)
Organization: People's Front Against WWW
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset=US-ASCII
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/luuVwB3a_kCb09R6v4Fx03P5aN8>
Subject: [Rift] IPv4 vs IPv6
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jul 2019 04:42:34 -0000

Hi,

Reading https://tools.ietf.org/html/draft-ietf-rift-rift-06, I came across 
this:

"All RIFT routers MUST support IPv4 forwarding and MAY support IPv6 
forwarding."

Reading the charter on https://datatracker.ietf.org/wg/rift/about/ :

"The protocol must support IPv6 and should also support IPv4."

So while I see that technically these two statements aren't in violation 
of each other, it seems the "MAY" for IPv6 in the main architecture 
document seems to violate the spirit of the charter and IPv6 focus in the 
IETF as of the past 5 years.

Could someone please explain the rationale for this?

-- 
Mikael Abrahamsson    email: swmike@swm.pp.se


From nobody Thu Jul 18 09:27:07 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 79DBF120898 for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 09:27:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 El_cRh0oTU0p for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 09:27:03 -0700 (PDT)
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) (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 63548120897 for <rift@ietf.org>; Thu, 18 Jul 2019 09:27:03 -0700 (PDT)
Received: by mail-ed1-x530.google.com with SMTP id i11so30931380edq.0 for <rift@ietf.org>; Thu, 18 Jul 2019 09:27:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=HdDTUAh5VWYvg5AULZBVgA9Z13/MG306zX+WP+s7acE=; b=Af9Xzv/9nZXVEfNLbO5NYAfMcWcL8oJ2JY1zD0qteKSD5SZGYZ7c5Rqv6XMfBk5yiY 7pevsjayHRNoulvAuyg7St9M8PXStvEJ3Ft9bnaL1wpSW8VS1SfDI8N7HNZfcSFsSyC3 /O0jsTYySC7Lwi/7w3zg/Ufu6CP3SGZz9EQiNCOTZWYPde2Al1DDDpaaICZpFCXMQMPT T/zhGfGq5qU/GG43XM5tv/r8jN+ZPerZ68lHUcF8a1MrYUJBY6Gwk0P+UXNBQYvAnkLO rROXgx9ZaHp22DCQu9At27DSf4NI4qyGlSpEMSq/2jfBFsS7w8pFu/M8AAEDd4Zuzn/k b7Aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=HdDTUAh5VWYvg5AULZBVgA9Z13/MG306zX+WP+s7acE=; b=fKED+A8kFVpWBqZ2dwjZ1j7AIUz6Ln1b/7WXFl1PPqucme6i//OuzMY651evlbaaY5 dGWOwDN6p0q6gFaIv1FnIISUJ2uwCiwZb8XrrFGeiG1ZvW7jRc8ZpNLz6k2MDvMWeawa Z4oW5zK/5soR9/NDjPSY3Jv51o40hIdX/vyLxA3BJh0Sv2wjCNMYqxpLn3WVfkRAK+IP x2v7BcRURkIstTwlfgsqk+DMvP/bMIZ6+cBaQ/aVHxi183qpnzOIQeiERSLKOdIx87aK LOh5g1JeGcUEn0ie88wQUhM2H8FDj/EGrteWvloK1p9cGI88Y5KG/okOcSmVS5rQbXNY XxPg==
X-Gm-Message-State: APjAAAWxNhoh7vyyhRXUKdUiRLBt+DZ4atnwwkulCppTm00Ig5/Yf6Lf S8kC9RIfzgbvYvsXj+0jNMwW3rea2oivAoXaG7jDgA==
X-Google-Smtp-Source: APXvYqxfB6UvPwF4gfKH5f97iPM241orL1Lz28nj1vPQMuyJbGatVUaM1/V2L7np8NFum3o3RVL3X1er9eDJaV+br3M=
X-Received: by 2002:a17:906:4bcb:: with SMTP id x11mr37033351ejv.1.1563467221995;  Thu, 18 Jul 2019 09:27:01 -0700 (PDT)
MIME-Version: 1.0
References: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se>
In-Reply-To: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Thu, 18 Jul 2019 12:26:25 -0400
Message-ID: <CA+wi2hP6K3Or7ynOUzKovxkx8ZtvnTUdKVDvjRcB8=4yjFD6aQ@mail.gmail.com>
To: Mikael Abrahamsson <swmike@swm.pp.se>
Cc: rift@ietf.org
Content-Type: multipart/alternative; boundary="000000000000629605058df7141b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/FYBHkshoiNnyev2qFf06IOokEZY>
Subject: Re: [Rift] IPv4 vs IPv6
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jul 2019 16:27:06 -0000

--000000000000629605058df7141b
Content-Type: text/plain; charset="UTF-8"

Please dig out the archive where that discussion was brought up by Alvaro
and follow up there if you still have doubts.

In short: the protocol DOES support v6 and it DOES support v6

every router running RIFT MUST support v4 and MAY support v6. Rationale for
this on the mentioned thread.

--- tony

On Thu, Jul 18, 2019 at 12:42 AM Mikael Abrahamsson <swmike@swm.pp.se>
wrote:

>
> Hi,
>
> Reading https://tools.ietf.org/html/draft-ietf-rift-rift-06, I came
> across
> this:
>
> "All RIFT routers MUST support IPv4 forwarding and MAY support IPv6
> forwarding."
>
> Reading the charter on https://datatracker.ietf.org/wg/rift/about/ :
>
> "The protocol must support IPv6 and should also support IPv4."
>
> So while I see that technically these two statements aren't in violation
> of each other, it seems the "MAY" for IPv6 in the main architecture
> document seems to violate the spirit of the charter and IPv6 focus in the
> IETF as of the past 5 years.
>
> Could someone please explain the rationale for this?
>
> --
> Mikael Abrahamsson    email: swmike@swm.pp.se
>
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>

--000000000000629605058df7141b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Please dig out the archive where that discussion was =
brought up by Alvaro and follow up there if you still have doubts. <br></di=
v><div><br></div><div>In short: the protocol DOES support v6 and it DOES su=
pport v6<br></div><div><br></div><div>every router running RIFT MUST suppor=
t v4 and MAY support v6. Rationale for this on the mentioned thread. <br></=
div><div><br></div><div>--- tony <br></div></div><br><div class=3D"gmail_qu=
ote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jul 18, 2019 at 12:42 AM=
 Mikael Abrahamsson &lt;<a href=3D"mailto:swmike@swm.pp.se">swmike@swm.pp.s=
e</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"=
><br>
Hi,<br>
<br>
Reading <a href=3D"https://tools.ietf.org/html/draft-ietf-rift-rift-06" rel=
=3D"noreferrer" target=3D"_blank">https://tools.ietf.org/html/draft-ietf-ri=
ft-rift-06</a>, I came across <br>
this:<br>
<br>
&quot;All RIFT routers MUST support IPv4 forwarding and MAY support IPv6 <b=
r>
forwarding.&quot;<br>
<br>
Reading the charter on <a href=3D"https://datatracker.ietf.org/wg/rift/abou=
t/" rel=3D"noreferrer" target=3D"_blank">https://datatracker.ietf.org/wg/ri=
ft/about/</a> :<br>
<br>
&quot;The protocol must support IPv6 and should also support IPv4.&quot;<br=
>
<br>
So while I see that technically these two statements aren&#39;t in violatio=
n <br>
of each other, it seems the &quot;MAY&quot; for IPv6 in the main architectu=
re <br>
document seems to violate the spirit of the charter and IPv6 focus in the <=
br>
IETF as of the past 5 years.<br>
<br>
Could someone please explain the rationale for this?<br>
<br>
-- <br>
Mikael Abrahamsson=C2=A0 =C2=A0 email: <a href=3D"mailto:swmike@swm.pp.se" =
target=3D"_blank">swmike@swm.pp.se</a><br>
<br>
_______________________________________________<br>
RIFT mailing list<br>
<a href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/rift" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/rift</a><br>
</blockquote></div>

--000000000000629605058df7141b--


From nobody Thu Jul 18 11:22:31 2019
Return-Path: <swmike@swm.pp.se>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1DD4012006B for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 11:22:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.299
X-Spam-Level: 
X-Spam-Status: No, score=-4.299 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=swm.pp.se
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 SRILORbe1yqr for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 11:22:28 -0700 (PDT)
Received: from uplift.swm.pp.se (swm.pp.se [212.247.200.143]) (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 0899D120B3E for <rift@ietf.org>; Thu, 18 Jul 2019 11:22:28 -0700 (PDT)
Received: by uplift.swm.pp.se (Postfix, from userid 501) id C95E4B2; Thu, 18 Jul 2019 20:22:25 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=swm.pp.se; s=mail; t=1563474145; bh=r6j33bjq23zxpzhYqKzfp+ep96CdPuulBD/ZHvmHWP8=; h=Date:From:To:cc:Subject:In-Reply-To:References:From; b=aT7ONpdsK2oYNia4DlUQu+7LZ/jlkjMGUAob2IMHmRb/3KIivMftWZNUUx3BWLRQP UoBptb694qOYpUbilFQyzjuUT/6djU23VNnJRrLI+pUgjvXSpdb+eBhXH2KoV+j7dC eaJzagAl+mZYRxuxycHzdmI/Mgp6nwqQRBeL8zEc=
Received: from localhost (localhost [127.0.0.1]) by uplift.swm.pp.se (Postfix) with ESMTP id C7491B0; Thu, 18 Jul 2019 20:22:25 +0200 (CEST)
Date: Thu, 18 Jul 2019 20:22:25 +0200 (CEST)
From: Mikael Abrahamsson <swmike@swm.pp.se>
To: Tony Przygienda <tonysietf@gmail.com>
cc: rift@ietf.org
In-Reply-To: <CA+wi2hP6K3Or7ynOUzKovxkx8ZtvnTUdKVDvjRcB8=4yjFD6aQ@mail.gmail.com>
Message-ID: <alpine.DEB.2.20.1907182001590.19225@uplift.swm.pp.se>
References: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se> <CA+wi2hP6K3Or7ynOUzKovxkx8ZtvnTUdKVDvjRcB8=4yjFD6aQ@mail.gmail.com>
User-Agent: Alpine 2.20 (DEB 67 2015-01-07)
Organization: People's Front Against WWW
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII; format=flowed
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/MFikT8ZVIFzlHrF6O7G60hHVp5M>
Subject: Re: [Rift] IPv4 vs IPv6
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jul 2019 18:22:30 -0000

On Thu, 18 Jul 2019, Tony Przygienda wrote:

> Please dig out the archive where that discussion was brought up by Alvaro
> and follow up there if you still have doubts.

Since I cannot reply to that thread (I just subscribed to the list so I 
don't have an original email to reply to), that's hard.

Anyhow, I think the IPv4 MUST should be removed. It's 2019 now, we should 
not mandate IPv4 support in anything.

> not to the requirements _of devices runing RIFT_:  we cannot mandate 
> that everyone in reality will run IPv6 forwarding on the fabric so the 
> reality is that every silicon does IPv4 today and some does IPv6. And

This fact doesn't warrant making IPv4 a MUST. Think 5-10 years down the 
line, there might be IPv6 only silicon and control plane. Why should 
future implementors be required to implement IPv4 if they do not want to?

> then IPv4 over IPv6 is reality while IPv6 over IPv4 is not (since IPv6 
> does ND anyway so why would you).  So it is very good for v6 here to 
> basically make it an implicit transport for v4 (by saying running v6 
> does _automatically_ give you v4 forwarding) while making sure that v4 
> being-de-facto-what-e'one-can-do is the lowest common denominator of the 
> router's running RIFT. RIFT being only usable if a router/switch can do 
> IPv6 is simply not a practical proposition AFAIS.  We could arguably 
> split it into a "RIFT router/switch requirements document" but that 
> seems just paper bloat ...

I am not proposing making IPv6 a MUST, but I am against making IPv4 a 
MUST. Better to be silent on the matter in that case so future 
implementors can decide for themselves.

I just made me cringe when I read the IPv4 MUST in the document.

-- 
Mikael Abrahamsson    email: swmike@swm.pp.se


From nobody Thu Jul 18 11:50:30 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 70CD0120892 for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 11:50:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 hplNHdLIkGpR for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 11:50:27 -0700 (PDT)
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) (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 5640112006B for <rift@ietf.org>; Thu, 18 Jul 2019 11:50:27 -0700 (PDT)
Received: by mail-ed1-x536.google.com with SMTP id m10so31560837edv.6 for <rift@ietf.org>; Thu, 18 Jul 2019 11:50:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dfZ8nO9r5iPk7a6nfnHAGo+B2vv2EJRXB/3hGgndS80=; b=lIrHr0QMulF75aDTVRhbNZn7llYhTf5/r+02EQ1gn56W5QWGPymoyq2poOL+p2rY5q bs6K864SoZ4wi+G3qyRLwbBvQ6nY9eGCYeYa7cD7IFDSrYNXoY04mktQuf0d5up6rGKO oMdwYtJHRRUarsijgy0393DvgLDTVfti1WcDq1x+SM15JwJfY4+KrCXyRayLsenmXEcG o8oUFvU8Ik5GSlwuRsUQJ7IcXpjpuVlV2KJodRD0IKb/mRa+5mbrF9sGw5EaRybbA21S UfQCJH0hQtbmukdNQkUFqHVw0Jk64cHE4HVRTjbjOWqDSCvlwOmT34hRX4h+hGNeRX9y VMjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dfZ8nO9r5iPk7a6nfnHAGo+B2vv2EJRXB/3hGgndS80=; b=kW8YbNtWzyjLM2z2DcEL1SalN9pIR2Gd2KyeadHywzv/JXTYzKK5moBPvrbJx7sI+e WyhCBws7PY9eGMRTRkR38jjDzx6IzfdkZj9CACtx/R0JMO+C0M6u+ohCbb9PIKuucddN NSrKAXqkAuP71lVtFfFX0BUTAQGdM9XQROeFaUS38HmQ5YREstyDIpXCrToqGtPUGHer 2f1nKlBtowl0f+whcEleqcy6oXVvZZnyRNJYK8hKmtsnIwFUWCxFghmeR/bIN58bMOCx 3eaCjzZk70pgQUPgz4a1j6is4omFiKgzPW4DTqC4mBI6wExQ+kM3mSCMFauSeO92mQYs pKAA==
X-Gm-Message-State: APjAAAW3j50HKQWjxmcPuzMvXx9UVBskyquD1QN0ktSQXP73dhXe0r29 ef3FKmAkKaXfWutDAssmcdJHhOP46MCcWNTQ5E4=
X-Google-Smtp-Source: APXvYqx6sm0zkURpNL4NSvlUlRZl9nBMlnXt2E2tdxYKw/6hvzhfh5vkgCVm8/UrVFfKMUsPdHOfPbomt9t0U89oucw=
X-Received: by 2002:a50:9177:: with SMTP id f52mr42381715eda.294.1563475825991;  Thu, 18 Jul 2019 11:50:25 -0700 (PDT)
MIME-Version: 1.0
References: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se> <CA+wi2hP6K3Or7ynOUzKovxkx8ZtvnTUdKVDvjRcB8=4yjFD6aQ@mail.gmail.com> <alpine.DEB.2.20.1907182001590.19225@uplift.swm.pp.se>
In-Reply-To: <alpine.DEB.2.20.1907182001590.19225@uplift.swm.pp.se>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Thu, 18 Jul 2019 14:49:49 -0400
Message-ID: <CA+wi2hOkZH0O44yTikfabmDpJSqZN+_qmZnDBA1gsyFoVhzYuQ@mail.gmail.com>
To: Mikael Abrahamsson <swmike@swm.pp.se>
Cc: rift@ietf.org
Content-Type: multipart/alternative; boundary="0000000000003924e0058df9153b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/pZiTAl_AjRoWggrf-yn_ApbG9qc>
Subject: Re: [Rift] IPv4 vs IPv6
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jul 2019 18:50:30 -0000

--0000000000003924e0058df9153b
Content-Type: text/plain; charset="UTF-8"

Aha ok, what you say is reasonable. I was steered here originally by the
fact the even cheapest stuff today does v4 and if we have v6 support on the
fabric v4 forwarding over v6 nexthops is possible at basically zero config
cost and you have a great v4 to v6 migration story. but with the angle you
propose I see that writing "SHOULD support v4" would be better assuming
silicon will become v6 only over years and v4 will vanish.

We can't write of course "MUST support v6" since that makes the stuff
undeployable in foreseable future albeit we all wish the world would have
moved on for last 20 years :-}

Other opinions?

--- tony

"

On Thu, Jul 18, 2019 at 2:22 PM Mikael Abrahamsson <swmike@swm.pp.se> wrote:

> On Thu, 18 Jul 2019, Tony Przygienda wrote:
>
> > Please dig out the archive where that discussion was brought up by Alvaro
> > and follow up there if you still have doubts.
>
> Since I cannot reply to that thread (I just subscribed to the list so I
> don't have an original email to reply to), that's hard.
>
> Anyhow, I think the IPv4 MUST should be removed. It's 2019 now, we should
> not mandate IPv4 support in anything.
>
> > not to the requirements _of devices runing RIFT_:  we cannot mandate
> > that everyone in reality will run IPv6 forwarding on the fabric so the
> > reality is that every silicon does IPv4 today and some does IPv6. And
>
> This fact doesn't warrant making IPv4 a MUST. Think 5-10 years down the
> line, there might be IPv6 only silicon and control plane. Why should
> future implementors be required to implement IPv4 if they do not want to?
>
> > then IPv4 over IPv6 is reality while IPv6 over IPv4 is not (since IPv6
> > does ND anyway so why would you).  So it is very good for v6 here to
> > basically make it an implicit transport for v4 (by saying running v6
> > does _automatically_ give you v4 forwarding) while making sure that v4
> > being-de-facto-what-e'one-can-do is the lowest common denominator of the
> > router's running RIFT. RIFT being only usable if a router/switch can do
> > IPv6 is simply not a practical proposition AFAIS.  We could arguably
> > split it into a "RIFT router/switch requirements document" but that
> > seems just paper bloat ...
>
> I am not proposing making IPv6 a MUST, but I am against making IPv4 a
> MUST. Better to be silent on the matter in that case so future
> implementors can decide for themselves.
>
> I just made me cringe when I read the IPv4 MUST in the document.
>
> --
> Mikael Abrahamsson    email: swmike@swm.pp.se
>

--0000000000003924e0058df9153b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Aha ok, what you say is reasonable. I was steered her=
e originally by the fact the even cheapest stuff today does v4 and if we ha=
ve v6 support on the fabric v4 forwarding over v6 nexthops is possible at b=
asically zero config cost and you have a great v4 to v6 migration story. bu=
t with the angle you propose I see that writing &quot;SHOULD support v4&quo=
t; would be better assuming silicon will become v6 only over years and v4 w=
ill vanish. <br></div><div><br></div><div>We can&#39;t write of course &quo=
t;MUST support v6&quot; since that makes the stuff undeployable in foreseab=
le future albeit we all wish the world would have moved on for last 20 year=
s :-}<br></div><div><br></div><div>Other opinions?</div><div><br></div><div=
>--- tony <br></div><div><br></div><div>&quot;<br></div><br><div class=3D"g=
mail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jul 18, 2019 at 2=
:22 PM Mikael Abrahamsson &lt;<a href=3D"mailto:swmike@swm.pp.se">swmike@sw=
m.pp.se</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"=
margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-lef=
t:1ex">On Thu, 18 Jul 2019, Tony Przygienda wrote:<br>
<br>
&gt; Please dig out the archive where that discussion was brought up by Alv=
aro<br>
&gt; and follow up there if you still have doubts.<br>
<br>
Since I cannot reply to that thread (I just subscribed to the list so I <br=
>
don&#39;t have an original email to reply to), that&#39;s hard.<br>
<br>
Anyhow, I think the IPv4 MUST should be removed. It&#39;s 2019 now, we shou=
ld <br>
not mandate IPv4 support in anything.<br>
<br>
&gt; not to the requirements _of devices runing RIFT_:=C2=A0 we cannot mand=
ate <br>
&gt; that everyone in reality will run IPv6 forwarding on the fabric so the=
 <br>
&gt; reality is that every silicon does IPv4 today and some does IPv6. And<=
br>
<br>
This fact doesn&#39;t warrant making IPv4 a MUST. Think 5-10 years down the=
 <br>
line, there might be IPv6 only silicon and control plane. Why should <br>
future implementors be required to implement IPv4 if they do not want to?<b=
r>
<br>
&gt; then IPv4 over IPv6 is reality while IPv6 over IPv4 is not (since IPv6=
 <br>
&gt; does ND anyway so why would you).=C2=A0 So it is very good for v6 here=
 to <br>
&gt; basically make it an implicit transport for v4 (by saying running v6 <=
br>
&gt; does _automatically_ give you v4 forwarding) while making sure that v4=
 <br>
&gt; being-de-facto-what-e&#39;one-can-do is the lowest common denominator =
of the <br>
&gt; router&#39;s running RIFT. RIFT being only usable if a router/switch c=
an do <br>
&gt; IPv6 is simply not a practical proposition AFAIS.=C2=A0 We could argua=
bly <br>
&gt; split it into a &quot;RIFT router/switch requirements document&quot; b=
ut that <br>
&gt; seems just paper bloat ...<br>
<br>
I am not proposing making IPv6 a MUST, but I am against making IPv4 a <br>
MUST. Better to be silent on the matter in that case so future <br>
implementors can decide for themselves.<br>
<br>
I just made me cringe when I read the IPv4 MUST in the document.<br>
<br>
-- <br>
Mikael Abrahamsson=C2=A0 =C2=A0 email: <a href=3D"mailto:swmike@swm.pp.se" =
target=3D"_blank">swmike@swm.pp.se</a><br>
</blockquote></div></div>

--0000000000003924e0058df9153b--


From nobody Thu Jul 18 13:39:52 2019
Return-Path: <aretana.ietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7E45E120074 for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 13:39:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.997
X-Spam-Level: 
X-Spam-Status: No, score=-0.997 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, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=no 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 w-Jw9pGHD_ID for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 13:39:49 -0700 (PDT)
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) (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 E039A120033 for <rift@ietf.org>; Thu, 18 Jul 2019 13:39:48 -0700 (PDT)
Received: by mail-ed1-x530.google.com with SMTP id r12so32002647edo.5 for <rift@ietf.org>; Thu, 18 Jul 2019 13:39:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=MJlYXZ4VUSLkRgR/hW1xQFOiHvYFpuO3jpcLqZL2oz4=; b=gJiBCa7p9Kyb7UPzggCSqEqBgAtbPDUMrchrpQcawDpSZGnW/W/U+7WXbXmXukfVwe Y7VVHp5uXTgwbr/nnm4zgCKWGj7vc6tYkO1a0nexTaFhwbcE1y63RCHmYAqMffZjvbUn WMtMe0os8MU7bHOhcDD18QYx0CrX9FJUTKz6gksdpzy9/ikWWbPviaVia+iX5dGgrP2g KpiMlYMsd4aMz+HHUXbG379pkT2KCy4q7zhT5VDmNlmlzTVUMeSewOB3oz9hyHbjN6NP jWey2lwVk68SBPyIjTUWeBGbBNwgVNaUyQJDdqulod/LOGUM8ozGCKGdY0aEv159kv8H iM9A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=MJlYXZ4VUSLkRgR/hW1xQFOiHvYFpuO3jpcLqZL2oz4=; b=RCKPzRKKd4rSFHOiLXL8cgPmcdQLm8xp4oEvAEVRJcFmul9GsvEb18w4qMFRJ67lRt 2BYghgRbleii7Jc771H5yCxs7YzhIGRjAvAZHPwSJ9yzCh9F45MNKT+tuXBWxbjXynnH TgY2An7W0jI55W7Etnko8GeYGW/JXwH5S0Xso+4d5fXqS9HoLCjhTZmkkyUW/eapx8h0 G9bFElc7EbjM0KtlsufFEMk20urwU5C31vjcQTp9f1ZiZ0dRvlSCVgHONB1A9rqRfsNW teQxH7NMW3NUntSeNcnIS0VWG+1zRvVsEYMHg4MQ9wgSfry+k9a64xxufepdKii1NPyw JFRg==
X-Gm-Message-State: APjAAAV/Q+1mGDJaVuD8SbiMDU5x7V32nKI/Drj8ow19XKank4oUqndg JEV6b4JgQ+PC7oUmHQ9anwert3uMia2nueNJMa0=
X-Google-Smtp-Source: APXvYqyVSnagxteMsKqNpuYhCvzjznrSl5qYPuW5wL5ci1oCEZevJVq8md6x3VO89pFTDLV+w34Fp08O1b8qoqR6/FA=
X-Received: by 2002:a50:b561:: with SMTP id z30mr42841517edd.87.1563482387524;  Thu, 18 Jul 2019 13:39:47 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Thu, 18 Jul 2019 13:39:46 -0700
From: Alvaro Retana <aretana.ietf@gmail.com>
In-Reply-To: <CA+wi2hOkZH0O44yTikfabmDpJSqZN+_qmZnDBA1gsyFoVhzYuQ@mail.gmail.com>
References: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se> <CA+wi2hP6K3Or7ynOUzKovxkx8ZtvnTUdKVDvjRcB8=4yjFD6aQ@mail.gmail.com> <alpine.DEB.2.20.1907182001590.19225@uplift.swm.pp.se> <CA+wi2hOkZH0O44yTikfabmDpJSqZN+_qmZnDBA1gsyFoVhzYuQ@mail.gmail.com>
MIME-Version: 1.0
Date: Thu, 18 Jul 2019 13:39:46 -0700
Message-ID: <CAMMESsznSPyS7zEKQNE2Ey8uZh-64P2MFE+fJt1054oaScyJtw@mail.gmail.com>
To: Mikael Abrahamsson <swmike@swm.pp.se>, Tony Przygienda <tonysietf@gmail.com>
Cc: rift@ietf.org
Content-Type: multipart/alternative; boundary="000000000000523286058dfa9cc5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/tx1K46Huscz30dt-zXJvvMKd6hw>
Subject: Re: [Rift] IPv4 vs IPv6
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jul 2019 20:39:51 -0000

--000000000000523286058dfa9cc5
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On July 18, 2019 at 3:50:34 PM, Tony Przygienda (tonysietf@gmail.com) wrote=
:

[Speaking as a WG member.]

Aha ok, what you say is reasonable. I was steered here originally by the
fact the even cheapest stuff today <http://airmail.calendar/2019-07-18
12:00:00 GMT-3> does v4 and if we have v6 support on the fabric v4
forwarding over v6 nexthops is possible at basically zero config cost and
you have a great v4 to v6 migration story. but with the angle you propose I
see that writing "SHOULD support v4" would be better assuming silicon will
become v6 only over years and v4 will vanish.

We can't write of course "MUST support v6" since that makes the stuff
undeployable in foreseable future albeit we all wish the world would have
moved on for last 20 years :-}

Other opinions?

I would go all the way and not make specific support Normative.  Even a
=E2=80=9CSHOULD support IPv4=E2=80=9D could raise a lot of questions.

My 2c.

Alvaro.

--000000000000523286058dfa9cc5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style>=
</head><body style=3D"word-wrap:break-word"><div style=3D"font-family:Helve=
tica,Arial;font-size:13px">On July 18, 2019 at 3:50:34 PM, Tony Przygienda =
(<a href=3D"mailto:tonysietf@gmail.com">tonysietf@gmail.com</a>) wrote:</di=
v><div style=3D"font-family:Helvetica,Arial;font-size:13px"><br></div><div =
style=3D"font-family:Helvetica,Arial;font-size:13px">[Speaking as a WG memb=
er.]</div><div style=3D"font-family:Helvetica,Arial;font-size:13px"><br></d=
iv> <div><blockquote type=3D"cite" class=3D"clean_bq" style=3D"font-family:=
Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;f=
ont-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;te=
xt-transform:none;white-space:normal;word-spacing:0px"><span><div><div styl=
e=3D"color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-s=
ize:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;lett=
er-spacing:normal;text-align:start;text-indent:0px;text-transform:none;whit=
e-space:normal;word-spacing:0px">Aha ok, what you say is reasonable. I was =
steered here originally by the fact the even cheapest stuff<span class=3D"A=
pple-converted-space">=C2=A0</span><a href=3D"http://airmail.calendar/2019-=
07-18 12:00:00 GMT-3" style=3D"word-wrap:break-word;word-break:break-word">=
today</a><span class=3D"Apple-converted-space">=C2=A0</span>does v4 and if =
we have v6 support on the fabric v4 forwarding over v6 nexthops is possible=
 at basically zero config cost and you have a great v4 to v6 migration stor=
y. but with the angle you propose I see that writing &quot;SHOULD support v=
4&quot; would be better assuming silicon will become v6 only over years and=
 v4 will vanish.<br></div><div style=3D"color:rgb(0,0,0);font-family:&#39;h=
elvetica Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-=
caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-=
indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></d=
iv><div style=3D"color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helv=
etica;font-size:14px;font-style:normal;font-variant-caps:normal;font-weight=
:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transfo=
rm:none;white-space:normal;word-spacing:0px">We can&#39;t write of course &=
quot;MUST support v6&quot; since that makes the stuff undeployable in fores=
eable future albeit we all wish the world would have moved on for last 20 y=
ears :-}<br></div><div style=3D"color:rgb(0,0,0);font-family:&#39;helvetica=
 Neue&#39;,helvetica;font-size:14px;font-style:normal;font-variant-caps:nor=
mal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0=
px;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div =
style=3D"color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;fo=
nt-size:14px;font-style:normal;font-variant-caps:normal;font-weight:normal;=
letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;=
white-space:normal;word-spacing:0px">Other opinions?</div></div></span></bl=
ockquote></div><p>I would go all the way and not make specific support Norm=
ative.=C2=A0 Even a =E2=80=9CSHOULD support IPv4=E2=80=9D could raise a lot=
 of questions.</p><p>My 2c.</p><p>Alvaro.</p><div><br class=3D"Apple-interc=
hange-newline"></div> <div class=3D"gmail_signature"></div></body></html>

--000000000000523286058dfa9cc5--


From nobody Thu Jul 18 13:54:33 2019
Return-Path: <randy@psg.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BF845120124 for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 13:54:31 -0700 (PDT)
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, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, 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 nmxne7O4f1_y for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 13:54:30 -0700 (PDT)
Received: from ran.psg.com (ran.psg.com [IPv6:2001:418:8006::18]) (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 7607C1200E0 for <rift@ietf.org>; Thu, 18 Jul 2019 13:54:30 -0700 (PDT)
Received: from localhost ([127.0.0.1] helo=ryuu.rg.net) by ran.psg.com with esmtp (Exim 4.90_1) (envelope-from <randy@psg.com>) id 1hoDQ2-0003oR-Ul; Thu, 18 Jul 2019 20:54:27 +0000
Date: Thu, 18 Jul 2019 13:54:26 -0700
Message-ID: <m2k1cf9i7x.wl-randy@psg.com>
From: Randy Bush <randy@psg.com>
To: Alvaro Retana <aretana.ietf@gmail.com>
Cc: Mikael Abrahamsson <swmike@swm.pp.se>, Tony Przygienda <tonysietf@gmail.com>, rift@ietf.org
In-Reply-To: <CAMMESsznSPyS7zEKQNE2Ey8uZh-64P2MFE+fJt1054oaScyJtw@mail.gmail.com>
References: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se> <CA+wi2hP6K3Or7ynOUzKovxkx8ZtvnTUdKVDvjRcB8=4yjFD6aQ@mail.gmail.com> <alpine.DEB.2.20.1907182001590.19225@uplift.swm.pp.se> <CA+wi2hOkZH0O44yTikfabmDpJSqZN+_qmZnDBA1gsyFoVhzYuQ@mail.gmail.com> <CAMMESsznSPyS7zEKQNE2Ey8uZh-64P2MFE+fJt1054oaScyJtw@mail.gmail.com>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/26.2 Mule/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=US-ASCII
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/KHUulqOcd7af_94vQlUm2GsceBI>
Subject: Re: [Rift] IPv4 vs IPv6
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jul 2019 20:54:32 -0000

SHOULD support ipv4 and ipv6.  MUST support at least one.

randy


From nobody Thu Jul 18 19:46:03 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9BE001200B4 for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 19:46:01 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 U6rz6qlddIL9 for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 19:45:59 -0700 (PDT)
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) (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 9DD8E12014F for <rift@ietf.org>; Thu, 18 Jul 2019 19:45:59 -0700 (PDT)
Received: by mail-ed1-x534.google.com with SMTP id m10so33089779edv.6 for <rift@ietf.org>; Thu, 18 Jul 2019 19:45:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7KGFKhMQMGRLo5BOkOtAWF5lL05dC6WWVQTjcWxHkoA=; b=tB2np++wxJ+FrERqJC+vhjhT/iTvqHpMHN17Tz+3tocrQmz+8K38cV+gqJdimpVY2w B0nAV9TSub86GGUQWMv7InN+lY3mNgDcEN0D048XjZaEOBUIkzfH1T82dcUoUgH9fCis nJfhnA6e1knrcp7dBHbQkpQsZcoAnlGc4it4ghAYeJlID+h1yrt7hGz01XwZ03cwk5sP SBiolFhBBYoedcSIV8oPMvcEH3cgmpeCiNbyNgLcAF7EWH8/SakHiUnmH7zHR/n3XlNS wPC/jqjo1/XmUQB030aJC8Ucv2XncIEIq2Wp0Gxy+SrUwcZtPQMWSr8hETVuyk2OdH/g vQlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=7KGFKhMQMGRLo5BOkOtAWF5lL05dC6WWVQTjcWxHkoA=; b=cEU9w2BQSIOXcSO0/8SU9bZ/7GepEW6K8kdK+pfORn+DMlOwJgx/pFG/KkT5NibUUt N5t2rHFaLXBo2p9B5JW83bIXvYLGw738O5bwnW2dyLy3lAFb6j+Mjjrs2GyPqZhAWLqV e1Bip8p1KinhMI6ergvcQyo4GN+z5Uj9i6dSt8OBB3esd5dnoblU1Yh2pDQx/9mro0L7 yQz5FuAQglRA7CNuVDR/WWikB0RZHEunDAj6GpLCoQnznXoL4v/a0c6ODW2iHvE7iHx2 F/uUrZFcZxmMFvL7YQ27DbSGqoNIs9u78saR84AZppV5uAjPR2TqKKMDUVxqJIKuMNpN TvuQ==
X-Gm-Message-State: APjAAAUcnQ0EzW4UDDnFwgsq8y7eiIcMbemViu+4/dSaLpPrg5Q/s58q RmQRxU4V/atweK3PiH49RWuzRhqiiK3Oz2L1Lq8=
X-Google-Smtp-Source: APXvYqwpunRUjU2retzABZDSxOmf5ZHdEK6SW8Ocju8GLZpLuQ7rJ39P+0H9zPYp6Vlk9Atu93WWyItfRbyCX+iddIk=
X-Received: by 2002:a17:906:1e85:: with SMTP id e5mr38397336ejj.200.1563504358265;  Thu, 18 Jul 2019 19:45:58 -0700 (PDT)
MIME-Version: 1.0
References: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se> <CA+wi2hP6K3Or7ynOUzKovxkx8ZtvnTUdKVDvjRcB8=4yjFD6aQ@mail.gmail.com> <alpine.DEB.2.20.1907182001590.19225@uplift.swm.pp.se> <CA+wi2hOkZH0O44yTikfabmDpJSqZN+_qmZnDBA1gsyFoVhzYuQ@mail.gmail.com> <CAMMESsznSPyS7zEKQNE2Ey8uZh-64P2MFE+fJt1054oaScyJtw@mail.gmail.com>
In-Reply-To: <CAMMESsznSPyS7zEKQNE2Ey8uZh-64P2MFE+fJt1054oaScyJtw@mail.gmail.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Thu, 18 Jul 2019 22:45:22 -0400
Message-ID: <CA+wi2hPSa7HAijtNAd4niWEZ0muGikkvp=8SDFUiHRbYBL2WYg@mail.gmail.com>
To: Alvaro Retana <aretana.ietf@gmail.com>
Cc: Mikael Abrahamsson <swmike@swm.pp.se>, rift@ietf.org
Content-Type: multipart/alternative; boundary="000000000000e1171e058dffb934"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/Ie4T88ZMKYlCGgFQY6VZCb1sW9Q>
Subject: Re: [Rift] IPv4 vs IPv6
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 02:46:02 -0000

--000000000000e1171e058dffb934
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

If the consensus is that we should be dropping the sentence completely in
the next versions and not specify any RIFT router requirements, I think
that's perfectly reasonable as well.

--- tony

On Thu, Jul 18, 2019 at 4:39 PM Alvaro Retana <aretana.ietf@gmail.com>
wrote:

> On July 18, 2019 at 3:50:34 PM, Tony Przygienda (tonysietf@gmail.com)
> wrote:
>
> [Speaking as a WG member.]
>
> Aha ok, what you say is reasonable. I was steered here originally by the
> fact the even cheapest stuff today
> <http://airmail.calendar/2019-07-18%2012:00:00%20GMT-3> does v4 and if we
> have v6 support on the fabric v4 forwarding over v6 nexthops is possible =
at
> basically zero config cost and you have a great v4 to v6 migration story.
> but with the angle you propose I see that writing "SHOULD support v4" wou=
ld
> be better assuming silicon will become v6 only over years and v4 will
> vanish.
>
> We can't write of course "MUST support v6" since that makes the stuff
> undeployable in foreseable future albeit we all wish the world would have
> moved on for last 20 years :-}
>
> Other opinions?
>
> I would go all the way and not make specific support Normative.  Even a
> =E2=80=9CSHOULD support IPv4=E2=80=9D could raise a lot of questions.
>
> My 2c.
>
> Alvaro.
>
>

--000000000000e1171e058dffb934
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>If the consensus is that we should be dropping the se=
ntence completely in the next versions and not specify any RIFT router requ=
irements, I think that&#39;s perfectly reasonable as well. <br></div><div><=
br></div><div>--- tony <br></div></div><br><div class=3D"gmail_quote"><div =
dir=3D"ltr" class=3D"gmail_attr">On Thu, Jul 18, 2019 at 4:39 PM Alvaro Ret=
ana &lt;<a href=3D"mailto:aretana.ietf@gmail.com">aretana.ietf@gmail.com</a=
>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><di=
v style=3D"overflow-wrap: break-word;"><div style=3D"font-family:Helvetica,=
Arial;font-size:13px">On July 18, 2019 at 3:50:34 PM, Tony Przygienda (<a h=
ref=3D"mailto:tonysietf@gmail.com" target=3D"_blank">tonysietf@gmail.com</a=
>) wrote:</div><div style=3D"font-family:Helvetica,Arial;font-size:13px"><b=
r></div><div style=3D"font-family:Helvetica,Arial;font-size:13px">[Speaking=
 as a WG member.]</div><div style=3D"font-family:Helvetica,Arial;font-size:=
13px"><br></div> <div><blockquote type=3D"cite" class=3D"gmail-m_1399211662=
630522654clean_bq" style=3D"font-family:Helvetica,Arial;font-size:13px;font=
-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:no=
rmal;text-align:start;text-indent:0px;text-transform:none;white-space:norma=
l;word-spacing:0px"><span><div><div style=3D"color:rgb(0,0,0);font-family:&=
quot;helvetica Neue&quot;,helvetica;font-size:14px;font-style:normal;font-v=
ariant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:star=
t;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">=
Aha ok, what you say is reasonable. I was steered here originally by the fa=
ct the even cheapest stuff<span class=3D"gmail-m_1399211662630522654Apple-c=
onverted-space">=C2=A0</span><a href=3D"http://airmail.calendar/2019-07-18%=
2012:00:00%20GMT-3" style=3D"word-break:break-word" target=3D"_blank">today=
</a><span class=3D"gmail-m_1399211662630522654Apple-converted-space">=C2=A0=
</span>does v4 and if we have v6 support on the fabric v4 forwarding over v=
6 nexthops is possible at basically zero config cost and you have a great v=
4 to v6 migration story. but with the angle you propose I see that writing =
&quot;SHOULD support v4&quot; would be better assuming silicon will become =
v6 only over years and v4 will vanish.<br></div><div style=3D"color:rgb(0,0=
,0);font-family:&quot;helvetica Neue&quot;,helvetica;font-size:14px;font-st=
yle:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:norma=
l;text-align:start;text-indent:0px;text-transform:none;white-space:normal;w=
ord-spacing:0px"><br></div><div style=3D"color:rgb(0,0,0);font-family:&quot=
;helvetica Neue&quot;,helvetica;font-size:14px;font-style:normal;font-varia=
nt-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;te=
xt-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">We c=
an&#39;t write of course &quot;MUST support v6&quot; since that makes the s=
tuff undeployable in foreseable future albeit we all wish the world would h=
ave moved on for last 20 years :-}<br></div><div style=3D"color:rgb(0,0,0);=
font-family:&quot;helvetica Neue&quot;,helvetica;font-size:14px;font-style:=
normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;te=
xt-align:start;text-indent:0px;text-transform:none;white-space:normal;word-=
spacing:0px"><br></div><div style=3D"color:rgb(0,0,0);font-family:&quot;hel=
vetica Neue&quot;,helvetica;font-size:14px;font-style:normal;font-variant-c=
aps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-i=
ndent:0px;text-transform:none;white-space:normal;word-spacing:0px">Other op=
inions?</div></div></span></blockquote></div><p>I would go all the way and =
not make specific support Normative.=C2=A0 Even a =E2=80=9CSHOULD support I=
Pv4=E2=80=9D could raise a lot of questions.</p><p>My 2c.</p><p>Alvaro.</p>=
<div><br class=3D"gmail-m_1399211662630522654Apple-interchange-newline"></d=
iv> <div class=3D"gmail-m_1399211662630522654gmail_signature"></div></div>
</blockquote></div>

--000000000000e1171e058dffb934--


From nobody Thu Jul 18 21:30:58 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9C9781201EB for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 21:30:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.998
X-Spam-Level: 
X-Spam-Status: No, score=-0.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, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no 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 uSNm710eG4-3 for <rift@ietfa.amsl.com>; Thu, 18 Jul 2019 21:30:52 -0700 (PDT)
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) (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 65C1812015F for <rift@ietf.org>; Thu, 18 Jul 2019 21:30:52 -0700 (PDT)
Received: by mail-ed1-x52b.google.com with SMTP id v15so33298683eds.9 for <rift@ietf.org>; Thu, 18 Jul 2019 21:30:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=dg4trlxQRDxuEJaFH9IOYo6jxb0OHf9CFzX5tflInqI=; b=TF+4BNtRavRwr9lXBqzirnmodaPEjKNSuZXbuVD67bW1FUzcmcPKrTUrLoIjpGgQ2+ c7VxnyEU7A68cCETdAuQPRVH/9UxGcP3hJKoK3BplIFghiQQbOjOG971OBKzVw+8jmcI CPE+lQ03MHYLRr4J5YDefFb8dFN273iP7KHsk94jlWZHxhmXSrq6EdTp5/RzWd7m0qgq LSTOjER9mbcipmgdZ+byVIv8Bu1Q8sr6B3HQFTEsawm7tSPpUWUma1f3ewCwfEHL5xZs WVi2dk1FA0YF9OsesoHqTzUpTnxqq72smZNbVKo6zYykWvqqDp3691R53R/uYoSSha3o S8CA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=dg4trlxQRDxuEJaFH9IOYo6jxb0OHf9CFzX5tflInqI=; b=staBejHsjFYUQ0iyBLkCvJruX22K2mlFNNTiZ9dwimYrQWnPJzfYSHkUfl8l2W4ApQ vcW48U7CNroYZk0UxGLHpDIjQn/N43cuP/77O2vdSI5wcTugHrbUWVvC5bl5cXcuM9YK +WWAUdM6HcylhZQbZRune1pufMJXhLMFoAIMVdKyNQGWiEkz79cSLose17M80wy7Zz2x 19hv5lbEYcNIauHkRrWpxCKjjUj6Gj6TTPbw1POcRsYEPd8BZlaJqENJdhfpX6MUzTrW RiT867K1OhRTxGPXHMaMf5UWEO31JKNDtzgg1H0nbODPHNnG2QRF1hDYmPAKgYkk9F6V Qfew==
X-Gm-Message-State: APjAAAWV+yPL8Hv5UWdCwuJ9yR/ytkhxTg/mpY3lV45QLnxL4JLcwk8T heHU0dS0LUajM9KVZTHMl2w=
X-Google-Smtp-Source: APXvYqz9iDh7oIj1TDiO3ppKArE+k98DkP1Y43WHIsGbgfrXlaBnGmtjlJMXqwwUNlzdNLAidYF47w==
X-Received: by 2002:aa7:d845:: with SMTP id f5mr44319287eds.78.1563510650764;  Thu, 18 Jul 2019 21:30:50 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-48-174.ip.prioritytelecom.net. [213.127.48.174]) by smtp.gmail.com with ESMTPSA id c49sm8602856eda.74.2019.07.18.21.30.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jul 2019 21:30:50 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <741E9BFC-1516-4E49-936A-FB096ECAFE8D@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_A849B41B-DD4F-4025-BC5D-E8CE3E16C413"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Fri, 19 Jul 2019 06:30:48 +0200
In-Reply-To: <CA+wi2hPSa7HAijtNAd4niWEZ0muGikkvp=8SDFUiHRbYBL2WYg@mail.gmail.com>
Cc: Alvaro Retana <aretana.ietf@gmail.com>, rift@ietf.org, Mikael Abrahamsson <swmike@swm.pp.se>
To: Tony Przygienda <tonysietf@gmail.com>
References: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se> <CA+wi2hP6K3Or7ynOUzKovxkx8ZtvnTUdKVDvjRcB8=4yjFD6aQ@mail.gmail.com> <alpine.DEB.2.20.1907182001590.19225@uplift.swm.pp.se> <CA+wi2hOkZH0O44yTikfabmDpJSqZN+_qmZnDBA1gsyFoVhzYuQ@mail.gmail.com> <CAMMESsznSPyS7zEKQNE2Ey8uZh-64P2MFE+fJt1054oaScyJtw@mail.gmail.com> <CA+wi2hPSa7HAijtNAd4niWEZ0muGikkvp=8SDFUiHRbYBL2WYg@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/9-LjRy0zWIK4zESgYxsD2dYJozw>
Subject: Re: [Rift] IPv4 vs IPv6
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 04:30:56 -0000

--Apple-Mail=_A849B41B-DD4F-4025-BC5D-E8CE3E16C413
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

That would be my vote.

AFAIK the protocol supports v4-only, v6-only, and v4-and-v6.

I don=E2=80=99t see a need to put a requirement in the spec that a =
router must support a specific subset of those options.  That is up to =
the implementor / operator.

=E2=80=94 Bruno

> On Jul 19, 2019, at 4:45 AM, Tony Przygienda <tonysietf@gmail.com> =
wrote:
>=20
> If the consensus is that we should be dropping the sentence completely =
in the next versions and not specify any RIFT router requirements, I =
think that's perfectly reasonable as well.=20
>=20
> --- tony=20
>=20
> On Thu, Jul 18, 2019 at 4:39 PM Alvaro Retana <aretana.ietf@gmail.com =
<mailto:aretana.ietf@gmail.com>> wrote:
> On July 18, 2019 at 3:50:34 PM, Tony Przygienda (tonysietf@gmail.com =
<mailto:tonysietf@gmail.com>) wrote:
>=20
> [Speaking as a WG member.]
>=20
>> Aha ok, what you say is reasonable. I was steered here originally by =
the fact the even cheapest stuff today =
<http://airmail.calendar/2019-07-18%2012:00:00%20GMT-3> does v4 and if =
we have v6 support on the fabric v4 forwarding over v6 nexthops is =
possible at basically zero config cost and you have a great v4 to v6 =
migration story. but with the angle you propose I see that writing =
"SHOULD support v4" would be better assuming silicon will become v6 only =
over years and v4 will vanish.
>>=20
>> We can't write of course "MUST support v6" since that makes the stuff =
undeployable in foreseable future albeit we all wish the world would =
have moved on for last 20 years :-}
>>=20
>> Other opinions?
>=20
> I would go all the way and not make specific support Normative.  Even =
a =E2=80=9CSHOULD support IPv4=E2=80=9D could raise a lot of questions.
>=20
> My 2c.
>=20
> Alvaro.
>=20
>=20
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift


--Apple-Mail=_A849B41B-DD4F-4025-BC5D-E8CE3E16C413
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">That =
would be my vote.<div class=3D""><br class=3D""></div><div =
class=3D"">AFAIK the protocol supports v4-only, v6-only, and =
v4-and-v6.</div><div class=3D""><br class=3D""></div><div class=3D"">I =
don=E2=80=99t see a need to put a requirement in the spec that a router =
must support a specific subset of those options. &nbsp;That is up to the =
implementor / operator.</div><div class=3D""><br class=3D""></div><div =
class=3D"">=E2=80=94 Bruno<br class=3D""><div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D"">On Jul 19, 2019, at 4:45 AM, =
Tony Przygienda &lt;<a href=3D"mailto:tonysietf@gmail.com" =
class=3D"">tonysietf@gmail.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D""><div class=3D"">If the consensus is that we should be =
dropping the sentence completely in the next versions and not specify =
any RIFT router requirements, I think that's perfectly reasonable as =
well. <br class=3D""></div><div class=3D""><br class=3D""></div><div =
class=3D"">--- tony <br class=3D""></div></div><br class=3D""><div =
class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jul =
18, 2019 at 4:39 PM Alvaro Retana &lt;<a =
href=3D"mailto:aretana.ietf@gmail.com" =
class=3D"">aretana.ietf@gmail.com</a>&gt; wrote:<br =
class=3D""></div><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 style=3D"overflow-wrap: =
break-word;" class=3D""><div =
style=3D"font-family:Helvetica,Arial;font-size:13px" class=3D"">On July =
18, 2019 at 3:50:34 PM, Tony Przygienda (<a =
href=3D"mailto:tonysietf@gmail.com" target=3D"_blank" =
class=3D"">tonysietf@gmail.com</a>) wrote:</div><div =
style=3D"font-family:Helvetica,Arial;font-size:13px" class=3D""><br =
class=3D""></div><div style=3D"font-family:Helvetica,Arial;font-size:13px"=
 class=3D"">[Speaking as a WG member.]</div><div =
style=3D"font-family:Helvetica,Arial;font-size:13px" class=3D""><br =
class=3D""></div> <div class=3D""><blockquote type=3D"cite" =
class=3D"gmail-m_1399211662630522654clean_bq" =
style=3D"font-family:Helvetica,Arial;font-size:13px;font-style:normal;font=
-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:s=
tart;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0=
px"><span class=3D""><div class=3D""><div style=3D"font-family: =
&quot;helvetica Neue&quot;, helvetica; font-size: 14px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px;" class=3D"">Aha ok, what you say =
is reasonable. I was steered here originally by the fact the even =
cheapest stuff<span =
class=3D"gmail-m_1399211662630522654Apple-converted-space">&nbsp;</span><a=
 href=3D"http://airmail.calendar/2019-07-18%2012:00:00%20GMT-3" =
style=3D"word-break:break-word" target=3D"_blank" =
class=3D"">today</a><span =
class=3D"gmail-m_1399211662630522654Apple-converted-space">&nbsp;</span>do=
es v4 and if we have v6 support on the fabric v4 forwarding over v6 =
nexthops is possible at basically zero config cost and you have a great =
v4 to v6 migration story. but with the angle you propose I see that =
writing "SHOULD support v4" would be better assuming silicon will become =
v6 only over years and v4 will vanish.<br class=3D""></div><div =
style=3D"font-family: &quot;helvetica Neue&quot;, helvetica; font-size: =
14px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px;" =
class=3D""><br class=3D""></div><div style=3D"font-family: =
&quot;helvetica Neue&quot;, helvetica; font-size: 14px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px;" class=3D"">We can't write of =
course "MUST support v6" since that makes the stuff undeployable in =
foreseable future albeit we all wish the world would have moved on for =
last 20 years :-}<br class=3D""></div><div style=3D"font-family: =
&quot;helvetica Neue&quot;, helvetica; font-size: 14px; font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px;" class=3D""><br =
class=3D""></div><div style=3D"font-family: &quot;helvetica Neue&quot;, =
helvetica; font-size: 14px; font-style: normal; font-variant-caps: =
normal; font-weight: normal; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px;" class=3D"">Other =
opinions?</div></div></span></blockquote></div><p class=3D"">I would go =
all the way and not make specific support Normative.&nbsp; Even a =
=E2=80=9CSHOULD support IPv4=E2=80=9D could raise a lot of =
questions.</p><p class=3D"">My 2c.</p><p class=3D"">Alvaro.</p><div =
class=3D""><br =
class=3D"gmail-m_1399211662630522654Apple-interchange-newline"></div> =
<div class=3D"gmail-m_1399211662630522654gmail_signature"></div></div>
</blockquote></div>
_______________________________________________<br class=3D"">RIFT =
mailing list<br class=3D""><a href=3D"mailto:RIFT@ietf.org" =
class=3D"">RIFT@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/rift<br =
class=3D""></div></blockquote></div><br class=3D""></div></body></html>=

--Apple-Mail=_A849B41B-DD4F-4025-BC5D-E8CE3E16C413--


From nobody Fri Jul 19 03:52:16 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1F25D1200B6 for <rift@ietfa.amsl.com>; Fri, 19 Jul 2019 03:52:15 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 sZbRn8D6vYvJ for <rift@ietfa.amsl.com>; Fri, 19 Jul 2019 03:52:12 -0700 (PDT)
Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) (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 4F47812001A for <rift@ietf.org>; Fri, 19 Jul 2019 03:52:12 -0700 (PDT)
Received: by mail-ed1-x536.google.com with SMTP id x19so28179687eda.12 for <rift@ietf.org>; Fri, 19 Jul 2019 03:52:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:subject:from:in-reply-to:date:cc:message-id:references :to; bh=zRUuMkboxZT/r8+nEWbUlaDMqEP3NL9/Hg1caa+GL5w=; b=Ug+neiyHdWcdL+Z0Nz2Ij0hjtvqXNTpAikjEuRz7f52X0nkAbll6pnHCL2AGDVbbIx QOl6n4dH0mYTy8JuCN4LF+HDcbyWQuU1HcQ2Krt1ITH6F/wjY2BBT05mC2C+C2HS0jV1 i6mD/xVjSDzLxDC5OWhngDGK/x36tTf25iFOlpbSMW13Me3F/4c1a0tfjwFRIKQPMuI2 xCW3bnQBchN+jClLrkDD+ER9coCClX4d3v7p6pqAuEQ2KGUgahF52xN2cTIqDrmTfwhH 7gKjDI8ArlJgfkiLMU/uHOXq2M9qlEctGipYDYfSSu/eWoZKAjvuWLL0kAKIVbx4a9oL ptWQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=zRUuMkboxZT/r8+nEWbUlaDMqEP3NL9/Hg1caa+GL5w=; b=TL8xTQqTrJ1pVwMlFTgHpOd1YQ+2c5DSzUGzs/o/dCjqawyDXTIWKNPaEXhfPDs2Q3 TIzT6P2tdrBm1bzm9FJAsxnKX6iApOnguUOxENgiiwH+9yRgvuLvi6luG1LRRxVRMy8I GvEWvz92AIV7mBOogwcJpx41INVXrM3F3USCqn/1PJZC31SCSa1mIr/elEZYi8bepddm tbV8tkJEFk6DgCymPaNVSIEBo+rsu+jmMRyqgVYzK3A9Tj1/CIVSrUVbpW5pspQO6yCN zebngqR9Q49A9QuazqcFMiOkXeyA1nB13Uwl5ODpVTIdC389CcED82BivtQMtViJ9iRO XBcw==
X-Gm-Message-State: APjAAAUoNcBXBr71pNJZuP0deMW6dlNqOchCbUU8L4+raRr0rrjjt7kO LkIFs4HtsBFwDIf66DFXxNI=
X-Google-Smtp-Source: APXvYqyV/vIlhT4qSv1D+FPkdYflw4L+JmaKhjK7nCh5Bt8OD3/SSGjxH0LQs9Hs4t01jXYj+fLndg==
X-Received: by 2002:a50:9f4e:: with SMTP id b72mr45559734edf.252.1563533530629;  Fri, 19 Jul 2019 03:52:10 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-48-174.ip.prioritytelecom.net. [213.127.48.174]) by smtp.gmail.com with ESMTPSA id j10sm6142674ejk.23.2019.07.19.03.52.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Jul 2019 03:52:10 -0700 (PDT)
Content-Type: multipart/alternative; boundary="Apple-Mail=_8020FE13-F45D-486C-B8DE-D8FE3E29BE9E"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
From: Bruno Rijsman <brunorijsman@gmail.com>
In-Reply-To: <0DEC8C31-BFEE-42B9-B8D2-9F0A7ED88756@gmail.com>
Date: Fri, 19 Jul 2019 12:52:08 +0200
Cc: rift@ietf.org, Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <0DB7371D-EF03-4DEB-9A26-0193AD4D57FE@gmail.com>
References: <0DEC8C31-BFEE-42B9-B8D2-9F0A7ED88756@gmail.com>
To: Tony Przygienda <tonysietf@gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/pXH4fLNmiCJyNN5Gd4I9paqr26g>
Subject: [Rift] Security interop testing between RIFT-Juniper and RIFT-Python successfully completed
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 10:52:15 -0000

--Apple-Mail=_8020FE13-F45D-486C-B8DE-D8FE3E29BE9E
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

I am happy to report that I have successfully completed interop testing =
of RIFT security between RIFT-Juniper and RIFT-Python [1].

In my earlier e-mail I had already reported that interoperability was =
achieved for the outer security envelope.

Now, interoperability for origin security envelope is also working. As =
before, interop testing included both positive and negative test cases. =
This completes the interop testing of RIFT security.

We did not find any issues that require changes in the draft. (There was =
only one very minor implementation issue which was quickly fixed.)

For an updated feature guide of security in RIFT-Python see [2] (many =
enhancements were added during interop testing).

Much has changed since I wrote the "RIFT Security Review" document [3] =
and, as a result, it is now out of date. I will update it to reflect the =
changes in the draft since May and the recent experiences from interop =
testing. I hope to post the updated version before the RIFT meeting at =
the IETF-105 in Montreal.

[1] https://github.com/brunorijsman/rift-python =
<https://github.com/brunorijsman/rift-python>

[2] http://bit.ly/rift-python-security-feature-guide =
<http://bit.ly/rift-python-security-feature-guide>

[3] http://bit.ly/rift-security-review =
<http://bit.ly/rift-security-review>

=E2=80=94 Bruno

PS: The interoperability tests are fully automated using the =
=E2=80=9Cinterop.py=E2=80=9D script in the RIFT-Python repository. The =
results can easily be reproduced by anyone with access to the =
RIFT-Python code (which is publicly available in GitHub), the =
RIFT-Juniper executable, and an AWS instance or physical Ubuntu server.


> On Jul 17, 2019, at 2:41 PM, Bruno Rijsman <brunorijsman@gmail.com> =
wrote:
>=20
> Status update on security interop testing between RIFT-Juniper and =
RIFT-Python:
>=20
> The outer keys are now interoperating fine.
>=20
> (A) As expected, the adjacency between RIFT-Juniper and RIFT-Python =
comes up to state 3way, when=20
>=20
>  (A1) authentication is disabled or
>=20
>  (A2) authentication is enabled with the same active keys or=20
>=20
>  (A3) authentication is enabled with different active keys and =
corresponding accept keys.
>=20
> (B) As expected, the adjacency between RIFT-Juniper and RIFT-Python =
does not come up to state 3way, when=20
>=20
>  (B1) Authentication is enabled on one side but not the other side
>=20
>  (B2) Authentication is enabled with different active keys and without =
corresponding accept keys
>=20
> Challenges along the way:
>=20
>  (C1) Juniper uses SHA-256(key + payload) whereas RIFT-Python uses =
HMAC-SHA-256(key, payload).  Solution: add support for SHA-256(key + =
payload) to RIFT-Python (in addition to HMAC-SHA-256).
>=20
>  (C2) RIFT-Juniper used different YAML configuration keywords than =
RIFT-Python.  Solution: change RIFT-Python to use the same configuration =
keywords.
>=20
>  (C3) RIFT-Juniper only support configuration of outer keys on a =
per-interface basis, whereas RIFT-Python support configuring the outer =
keys on a per-node and per-interface basis with an inheritance rule.  =
Solution: for interop testing, only use per-interface configuration.
>=20
>  (C4) RIFT-Juniper only supports SHA-256, whereas RIFT-Python also =
supports other key lengths (e.g. SHA-224, SHA-384, and more).  Solution: =
limit interop testing to SHA-256.
>=20
> All four of these issues are implementation issues, and none of these =
issues require any changes to the draft.
>=20
> Next step: finish interop testing for the origin keys. (I plan to do =
this Thursday  morning, Netherlands time)
>=20
> =E2=80=94 Bruno
>=20


--Apple-Mail=_8020FE13-F45D-486C-B8DE-D8FE3E29BE9E
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><div =
class=3D"">I am happy to report that I have successfully completed =
interop testing of RIFT security between RIFT-Juniper and RIFT-Python =
[1].</div><div class=3D""><br class=3D""></div><div class=3D"">In my =
earlier e-mail I had already reported that interoperability was achieved =
for the outer security envelope.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Now, interoperability for origin =
security&nbsp;envelope&nbsp;is also working. As before, interop testing =
included both positive and negative test cases. This completes the =
interop testing of RIFT security.</div><div class=3D""><br =
class=3D""></div><div class=3D"">We did not find any issues that require =
changes in the draft. (There was only one very minor implementation =
issue which was quickly fixed.)</div><div class=3D""><br =
class=3D""></div><div class=3D"">For an updated feature guide of =
security in RIFT-Python see [2] (many enhancements were added during =
interop testing).</div><div class=3D""><br class=3D""></div><div =
class=3D"">Much has changed since I wrote the "RIFT Security Review" =
document [3] and, as a result, it is now out of date. I will update it =
to reflect the changes in the draft since May and the recent experiences =
from interop testing. I hope to post the updated version before the RIFT =
meeting at the IETF-105 in Montreal.</div><div class=3D""><br =
class=3D""></div><div class=3D"">[1] <a =
href=3D"https://github.com/brunorijsman/rift-python" =
class=3D"">https://github.com/brunorijsman/rift-python</a></div><div =
class=3D""><br class=3D""></div><div class=3D"">[2]&nbsp;<a =
href=3D"http://bit.ly/rift-python-security-feature-guide" =
class=3D"">http://bit.ly/rift-python-security-feature-guide</a></div><div =
class=3D""><br class=3D""></div><div class=3D"">[3] <a =
href=3D"http://bit.ly/rift-security-review" =
class=3D"">http://bit.ly/rift-security-review</a></div><div class=3D""><br=
 class=3D""></div><div class=3D"">=E2=80=94 Bruno</div><div class=3D""><br=
 class=3D""></div><div class=3D"">PS: The interoperability tests are =
fully automated using the =E2=80=9Cinterop.py=E2=80=9D script in the =
RIFT-Python repository. The results can easily be reproduced by anyone =
with access to the RIFT-Python code (which is publicly available in =
GitHub), the RIFT-Juniper executable, and an AWS instance or physical =
Ubuntu server.</div><div class=3D""><br class=3D""></div><div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D"">On Jul =
17, 2019, at 2:41 PM, Bruno Rijsman &lt;<a =
href=3D"mailto:brunorijsman@gmail.com" =
class=3D"">brunorijsman@gmail.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div class=3D"">Status=
 update on security interop testing between RIFT-Juniper and =
RIFT-Python:<br class=3D""><br class=3D"">The outer keys are now =
interoperating fine.<br class=3D""><br class=3D"">(A) As expected, the =
adjacency between RIFT-Juniper and RIFT-Python comes up to state 3way, =
when <br class=3D""><br class=3D""> &nbsp;(A1) authentication is =
disabled or<br class=3D""><br class=3D""> &nbsp;(A2) authentication is =
enabled with the same active keys or <br class=3D""><br class=3D""> =
&nbsp;(A3) authentication is enabled with different active keys and =
corresponding accept keys.<br class=3D""><br class=3D"">(B) As expected, =
the adjacency between RIFT-Juniper and RIFT-Python does not come up to =
state 3way, when <br class=3D""><br class=3D""> &nbsp;(B1) =
Authentication is enabled on one side but not the other side<br =
class=3D""><br class=3D""> &nbsp;(B2) Authentication is enabled with =
different active keys and without corresponding accept keys<br =
class=3D""><br class=3D"">Challenges along the way:<br class=3D""><br =
class=3D""> &nbsp;(C1) Juniper uses SHA-256(key + payload) whereas =
RIFT-Python uses HMAC-SHA-256(key, payload). &nbsp;Solution: add support =
for SHA-256(key + payload) to RIFT-Python (in addition to =
HMAC-SHA-256).<br class=3D""><br class=3D""> &nbsp;(C2) RIFT-Juniper =
used different YAML configuration keywords than RIFT-Python. =
&nbsp;Solution: change RIFT-Python to use the same configuration =
keywords.<br class=3D""><br class=3D""> &nbsp;(C3) RIFT-Juniper only =
support configuration of outer keys on a per-interface basis, whereas =
RIFT-Python support configuring the outer keys on a per-node and =
per-interface basis with an inheritance rule. &nbsp;Solution: for =
interop testing, only use per-interface configuration.<br class=3D""><br =
class=3D""> &nbsp;(C4) RIFT-Juniper only supports SHA-256, whereas =
RIFT-Python also supports other key lengths (e.g. SHA-224, SHA-384, and =
more). &nbsp;Solution: limit interop testing to SHA-256.<br class=3D""><br=
 class=3D"">All four of these issues are implementation issues, and none =
of these issues require any changes to the draft.<br class=3D""><br =
class=3D"">Next step: finish interop testing for the origin keys. (I =
plan to do this Thursday &nbsp;morning, Netherlands time)<br =
class=3D""><br class=3D"">=E2=80=94 Bruno<br class=3D""><br =
class=3D""></div></div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_8020FE13-F45D-486C-B8DE-D8FE3E29BE9E--


From nobody Fri Jul 19 06:02:04 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BD49E12012A for <rift@ietfa.amsl.com>; Fri, 19 Jul 2019 06:02:02 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 q7Le1r0kRbp1 for <rift@ietfa.amsl.com>; Fri, 19 Jul 2019 06:02:00 -0700 (PDT)
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) (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 9543C120052 for <rift@ietf.org>; Fri, 19 Jul 2019 06:01:59 -0700 (PDT)
Received: by mail-ed1-x52e.google.com with SMTP id k21so34454472edq.3 for <rift@ietf.org>; Fri, 19 Jul 2019 06:01:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=axpGXxAqT7uG1NxDYEiPB47f7OnC5n9VFU3wr4OL2f4=; b=sFvaaKN7U2XNYU/4hrFlf88TEopgKUDQtIO07+Sxa8yaXMO2dLso7CWiG0doJeCJwI D1ABVhmiz79ntQMx46WiPkFj/G3xHAhMWsojQmxp4TxiDLfhdu13Thc5UKZI3NdnKZI0 OX7ep+5JEIx01ddF8M1EPgTo5iUIt/mJNdGDiLe1DwuFVt5d77TqhR7dtbX5E+lZKalN AT945xNP159vrpizyy+wwC+ZN7BHKt0pVSTsyIPs2mDhyHuTw+xJedCRJfTPTShOZRjY lOWnMB+4zmi0uZlu+YsCu4FtmhqbmqYf81iqdspUohEE5fqdgGOFS6ULx1vhaUiLobri Uktg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=axpGXxAqT7uG1NxDYEiPB47f7OnC5n9VFU3wr4OL2f4=; b=Gmw4UOGe3hN/q9QqsC032CscPwk6TcP4FOocGAuvqy37+htwRMdndoKq06KwhCRPow 1ljFNN1p8uvasV7tyf5X6Y11Y4lYhiMAHthvDKa+vcaog1WH3PMLoMp5CiKhHhXvIGOO L/OEjtwoL1mL0Wbf04Lu7Y1VYyGYwJcFX63tSG1CRytM5AL7WA+OsGht1axocbaRB4xQ ginjq4Os++JJ31UFrdDL+z3P54MLYMxBMm1TxBli4N+XBfx0+B7C0xQrV0hryJ4co1dn PWa/HdL0so70CYgB/32inSJKX270SLCSYIeicWzRKVgMn3oIeOV4QCKDCo/oZjD9hIiS RwJA==
X-Gm-Message-State: APjAAAUsrrvIpXyDyvEb2yw1vIYioeWL/VT5nVLguq67hoRGxiBRi836 9KkK90ipPMs/wCnfVrVrdL0hRetJ0VLCs3Fi48U=
X-Google-Smtp-Source: APXvYqxPWSG7c0fkQGuQc+4ZKexTYDuAomUro03Zhwugw23dFigosgw3TZ/EU86hU3+VJMtO86l1co6ZupMxE020EBI=
X-Received: by 2002:a50:b13b:: with SMTP id k56mr47628667edd.192.1563541318184;  Fri, 19 Jul 2019 06:01:58 -0700 (PDT)
MIME-Version: 1.0
References: <0DEC8C31-BFEE-42B9-B8D2-9F0A7ED88756@gmail.com> <0DB7371D-EF03-4DEB-9A26-0193AD4D57FE@gmail.com>
In-Reply-To: <0DB7371D-EF03-4DEB-9A26-0193AD4D57FE@gmail.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Fri, 19 Jul 2019 09:01:22 -0400
Message-ID: <CA+wi2hOREpe6BF6A=r6gpshRK51JwGB11vcXTZQpqH9ThHS8RA@mail.gmail.com>
To: Bruno Rijsman <brunorijsman@gmail.com>
Cc: rift@ietf.org
Content-Type: multipart/alternative; boundary="000000000000dcb1f2058e0854d4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/8v1x9SeX4xCKLp0mshw70ZiblV4>
Subject: Re: [Rift] Security interop testing between RIFT-Juniper and RIFT-Python successfully completed
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 13:02:03 -0000

--000000000000dcb1f2058e0854d4
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Bruno, <thumbs direction=3D"up"/> and as usual thanks for the work. If you
manage some material, great, otherwise I strip 2 viewgraphs when giving
update to the group

with that we have 2 working interop'ed implementation of the spec

BTW, the juniper binary is not on the free download yet (0.10.* is without
sec envelope) but I'll be prep'ing 0.11 download Bruno was using in the
next 2 weeks here (as I mentioned previously, with much more material
around it included than previously given we're pretty much done with the
spec and schemas) ...

thanks, see you all in CA

-- tony

On Fri, Jul 19, 2019 at 6:52 AM Bruno Rijsman <brunorijsman@gmail.com>
wrote:

> I am happy to report that I have successfully completed interop testing o=
f
> RIFT security between RIFT-Juniper and RIFT-Python [1].
>
> In my earlier e-mail I had already reported that interoperability was
> achieved for the outer security envelope.
>
> Now, interoperability for origin security envelope is also working. As
> before, interop testing included both positive and negative test cases.
> This completes the interop testing of RIFT security.
>
> We did not find any issues that require changes in the draft. (There was
> only one very minor implementation issue which was quickly fixed.)
>
> For an updated feature guide of security in RIFT-Python see [2] (many
> enhancements were added during interop testing).
>
> Much has changed since I wrote the "RIFT Security Review" document [3]
> and, as a result, it is now out of date. I will update it to reflect the
> changes in the draft since May and the recent experiences from interop
> testing. I hope to post the updated version before the RIFT meeting at th=
e
> IETF-105 in Montreal.
>
> [1] https://github.com/brunorijsman/rift-python
>
> [2] http://bit.ly/rift-python-security-feature-guide
>
> [3] http://bit.ly/rift-security-review
>
> =E2=80=94 Bruno
>
> PS: The interoperability tests are fully automated using the =E2=80=9Cint=
erop.py=E2=80=9D
> script in the RIFT-Python repository. The results can easily be reproduce=
d
> by anyone with access to the RIFT-Python code (which is publicly availabl=
e
> in GitHub), the RIFT-Juniper executable, and an AWS instance or physical
> Ubuntu server.
>
>
> On Jul 17, 2019, at 2:41 PM, Bruno Rijsman <brunorijsman@gmail.com> wrote=
:
>
> Status update on security interop testing between RIFT-Juniper and
> RIFT-Python:
>
> The outer keys are now interoperating fine.
>
> (A) As expected, the adjacency between RIFT-Juniper and RIFT-Python comes
> up to state 3way, when
>
>  (A1) authentication is disabled or
>
>  (A2) authentication is enabled with the same active keys or
>
>  (A3) authentication is enabled with different active keys and
> corresponding accept keys.
>
> (B) As expected, the adjacency between RIFT-Juniper and RIFT-Python does
> not come up to state 3way, when
>
>  (B1) Authentication is enabled on one side but not the other side
>
>  (B2) Authentication is enabled with different active keys and without
> corresponding accept keys
>
> Challenges along the way:
>
>  (C1) Juniper uses SHA-256(key + payload) whereas RIFT-Python uses
> HMAC-SHA-256(key, payload).  Solution: add support for SHA-256(key +
> payload) to RIFT-Python (in addition to HMAC-SHA-256).
>
>  (C2) RIFT-Juniper used different YAML configuration keywords than
> RIFT-Python.  Solution: change RIFT-Python to use the same configuration
> keywords.
>
>  (C3) RIFT-Juniper only support configuration of outer keys on a
> per-interface basis, whereas RIFT-Python support configuring the outer ke=
ys
> on a per-node and per-interface basis with an inheritance rule.  Solution=
:
> for interop testing, only use per-interface configuration.
>
>  (C4) RIFT-Juniper only supports SHA-256, whereas RIFT-Python also
> supports other key lengths (e.g. SHA-224, SHA-384, and more).  Solution:
> limit interop testing to SHA-256.
>
> All four of these issues are implementation issues, and none of these
> issues require any changes to the draft.
>
> Next step: finish interop testing for the origin keys. (I plan to do this
> Thursday  morning, Netherlands time)
>
> =E2=80=94 Bruno
>
>
>

--000000000000dcb1f2058e0854d4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Bruno, &lt;thumbs direction=3D&quot;up&quot;/&gt; and=
 as usual thanks for the work. If you manage some material, great, otherwis=
e I strip 2 viewgraphs when giving update to the group <br></div><div><br><=
/div><div>with that we have 2 working interop&#39;ed implementation of the =
spec <br></div><div><br></div><div>BTW, the juniper binary is not on the fr=
ee download yet (0.10.* is without sec envelope) but I&#39;ll be prep&#39;i=
ng 0.11 download Bruno was using in the next 2 weeks here (as I mentioned p=
reviously, with much more material around it included than previously given=
 we&#39;re pretty much done with the spec and schemas) ... <br></div><div><=
br></div><div>thanks, see you all in CA<br></div><div><br></div><div>-- ton=
y <br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"=
gmail_attr">On Fri, Jul 19, 2019 at 6:52 AM Bruno Rijsman &lt;<a href=3D"ma=
ilto:brunorijsman@gmail.com">brunorijsman@gmail.com</a>&gt; wrote:<br></div=
><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 style=3D"overflow-w=
rap: break-word;"><div>I am happy to report that I have successfully comple=
ted interop testing of RIFT security between RIFT-Juniper and RIFT-Python [=
1].</div><div><br></div><div>In my earlier e-mail I had already reported th=
at interoperability was achieved for the outer security envelope.</div><div=
><br></div><div>Now, interoperability for origin security=C2=A0envelope=C2=
=A0is also working. As before, interop testing included both positive and n=
egative test cases. This completes the interop testing of RIFT security.</d=
iv><div><br></div><div>We did not find any issues that require changes in t=
he draft. (There was only one very minor implementation issue which was qui=
ckly fixed.)</div><div><br></div><div>For an updated feature guide of secur=
ity in RIFT-Python see [2] (many enhancements were added during interop tes=
ting).</div><div><br></div><div>Much has changed since I wrote the &quot;RI=
FT Security Review&quot; document [3] and, as a result, it is now out of da=
te. I will update it to reflect the changes in the draft since May and the =
recent experiences from interop testing. I hope to post the updated version=
 before the RIFT meeting at the IETF-105 in Montreal.</div><div><br></div><=
div>[1] <a href=3D"https://github.com/brunorijsman/rift-python" target=3D"_=
blank">https://github.com/brunorijsman/rift-python</a></div><div><br></div>=
<div>[2]=C2=A0<a href=3D"http://bit.ly/rift-python-security-feature-guide" =
target=3D"_blank">http://bit.ly/rift-python-security-feature-guide</a></div=
><div><br></div><div>[3] <a href=3D"http://bit.ly/rift-security-review" tar=
get=3D"_blank">http://bit.ly/rift-security-review</a></div><div><br></div><=
div>=E2=80=94 Bruno</div><div><br></div><div>PS: The interoperability tests=
 are fully automated using the =E2=80=9Cinterop.py=E2=80=9D script in the R=
IFT-Python repository. The results can easily be reproduced by anyone with =
access to the RIFT-Python code (which is publicly available in GitHub), the=
 RIFT-Juniper executable, and an AWS instance or physical Ubuntu server.</d=
iv><div><br></div><div><br><blockquote type=3D"cite"><div>On Jul 17, 2019, =
at 2:41 PM, Bruno Rijsman &lt;<a href=3D"mailto:brunorijsman@gmail.com" tar=
get=3D"_blank">brunorijsman@gmail.com</a>&gt; wrote:</div><br class=3D"gmai=
l-m_-2935513673670050300Apple-interchange-newline"><div><div>Status update =
on security interop testing between RIFT-Juniper and RIFT-Python:<br><br>Th=
e outer keys are now interoperating fine.<br><br>(A) As expected, the adjac=
ency between RIFT-Juniper and RIFT-Python comes up to state 3way, when <br>=
<br> =C2=A0(A1) authentication is disabled or<br><br> =C2=A0(A2) authentica=
tion is enabled with the same active keys or <br><br> =C2=A0(A3) authentica=
tion is enabled with different active keys and corresponding accept keys.<b=
r><br>(B) As expected, the adjacency between RIFT-Juniper and RIFT-Python d=
oes not come up to state 3way, when <br><br> =C2=A0(B1) Authentication is e=
nabled on one side but not the other side<br><br> =C2=A0(B2) Authentication=
 is enabled with different active keys and without corresponding accept key=
s<br><br>Challenges along the way:<br><br> =C2=A0(C1) Juniper uses SHA-256(=
key + payload) whereas RIFT-Python uses HMAC-SHA-256(key, payload).=C2=A0 S=
olution: add support for SHA-256(key + payload) to RIFT-Python (in addition=
 to HMAC-SHA-256).<br><br> =C2=A0(C2) RIFT-Juniper used different YAML conf=
iguration keywords than RIFT-Python.=C2=A0 Solution: change RIFT-Python to =
use the same configuration keywords.<br><br> =C2=A0(C3) RIFT-Juniper only s=
upport configuration of outer keys on a per-interface basis, whereas RIFT-P=
ython support configuring the outer keys on a per-node and per-interface ba=
sis with an inheritance rule.=C2=A0 Solution: for interop testing, only use=
 per-interface configuration.<br><br> =C2=A0(C4) RIFT-Juniper only supports=
 SHA-256, whereas RIFT-Python also supports other key lengths (e.g. SHA-224=
, SHA-384, and more).=C2=A0 Solution: limit interop testing to SHA-256.<br>=
<br>All four of these issues are implementation issues, and none of these i=
ssues require any changes to the draft.<br><br>Next step: finish interop te=
sting for the origin keys. (I plan to do this Thursday =C2=A0morning, Nethe=
rlands time)<br><br>=E2=80=94 Bruno<br><br></div></div></blockquote></div><=
br></div></blockquote></div>

--000000000000dcb1f2058e0854d4--


From nobody Fri Jul 19 06:03:57 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7FC45120191 for <rift@ietfa.amsl.com>; Fri, 19 Jul 2019 06:03:55 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 o2MYkmU9fhts for <rift@ietfa.amsl.com>; Fri, 19 Jul 2019 06:03:52 -0700 (PDT)
Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) (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 6F3C912012A for <rift@ietf.org>; Fri, 19 Jul 2019 06:03:52 -0700 (PDT)
Received: by mail-ed1-x52c.google.com with SMTP id k21so34460447edq.3 for <rift@ietf.org>; Fri, 19 Jul 2019 06:03:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=iNyGcqongFoX8X87m1cu43C2P7lMhWBYlqf/D5unPz8=; b=EMaxdO4nFb+pJEMtlR0iD08DUy4Fsxs9VwSP4EIJGoAFDdy+ERat+HwC81u8V1S+jr 9PMZ5Xr6D2fXeZ62Ydvc99PZqxn2yWikVLdAIc9u9GxfTn2ERUGwXQPtUiFVnBzh1dqM O5WE7rIRmXcskJXrIzn/NrVhy9+69uLyTaYb66X3l+qy08UaPnK8Wz9V2adKAmertLMk tP538d+zQidT8jqXzf8JvAU8oeGc74lUFTE9bRjZNjVmoP4xz9nkprGsEb3s/X8HLhez UfBXqzfugpTxuy+2nFR7MFko/uVT5QOcYPPXQsrKdZ4Ipn3beOoAmt0Zze6Zu0ovaOzl 8LHA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=iNyGcqongFoX8X87m1cu43C2P7lMhWBYlqf/D5unPz8=; b=qs4CThm5n8utRPNDuqjpebrdjJyLInP2fPEo1ENB2eOIoTZ9mPqv3219onG81OP8kL 3QEqi2P96RPTq4XIvpfvB1Xap4+QNut7YIwnaMGt2KuqUj/kclqx9TNfqfENAFvZxl1V b0WZHpV8il0cb4/9ekeJYY7yLZ/dfYKlH/70VUiLmhQ4AtqWYn8+9cvwACWcBtvm4gcB Lh5XnrZgLr8R3sagZxA30fJhIfr06efSHvJd1T7ZLfAfY27+HIvzbYYSgBhkFWlhHIQ6 stlMjYOX/RrXz7GPbHlF81sAHup457fBhDY13mJrEoa4zpVJeHQcFjSwrxAlODRjmQDd M3dQ==
X-Gm-Message-State: APjAAAWnbWFWAA4jAQ5wAHTwrAw0x8kP9m0GxwJwQk159CFUlCaT8zVJ oPDw9P49k/Uf635RLJNuuaQ=
X-Google-Smtp-Source: APXvYqxF+6WGXUtU9jjob+FCcKY2i9dLfJNXTqURyHGb1gOwSrWV0h2bDs2FTCPhGXfQ+XbUMCyohA==
X-Received: by 2002:a50:996e:: with SMTP id l43mr46959378edb.187.1563541430774;  Fri, 19 Jul 2019 06:03:50 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-48-174.ip.prioritytelecom.net. [213.127.48.174]) by smtp.gmail.com with ESMTPSA id h10sm8151675edn.86.2019.07.19.06.03.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Jul 2019 06:03:50 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <BCAFEC74-0D66-4B2F-850F-88D056372712@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_1CAD4408-B509-4E91-A11A-5BDCEFFCF01A"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Fri, 19 Jul 2019 15:03:48 +0200
In-Reply-To: <CA+wi2hOREpe6BF6A=r6gpshRK51JwGB11vcXTZQpqH9ThHS8RA@mail.gmail.com>
Cc: rift@ietf.org
To: Tony Przygienda <tonysietf@gmail.com>
References: <0DEC8C31-BFEE-42B9-B8D2-9F0A7ED88756@gmail.com> <0DB7371D-EF03-4DEB-9A26-0193AD4D57FE@gmail.com> <CA+wi2hOREpe6BF6A=r6gpshRK51JwGB11vcXTZQpqH9ThHS8RA@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/we3Kq1-zaNvGSMbPbsQSvLP0RsY>
Subject: Re: [Rift] Security interop testing between RIFT-Juniper and RIFT-Python successfully completed
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 13:03:55 -0000

--Apple-Mail=_1CAD4408-B509-4E91-A11A-5BDCEFFCF01A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Tony,

I will have an =E2=80=9Copen source update" slide deck for you to =
present. Already a work in progress. I will be ready before the RIFT WG =
meeting. I will attend remotely.

=E2=80=94 Bruno

> On Jul 19, 2019, at 3:01 PM, Tony Przygienda <tonysietf@gmail.com> =
wrote:
>=20
> Bruno, <thumbs direction=3D"up"/> and as usual thanks for the work. If =
you manage some material, great, otherwise I strip 2 viewgraphs when =
giving update to the group=20
>=20
> with that we have 2 working interop'ed implementation of the spec=20
>=20
> BTW, the juniper binary is not on the free download yet (0.10.* is =
without sec envelope) but I'll be prep'ing 0.11 download Bruno was using =
in the next 2 weeks here (as I mentioned previously, with much more =
material around it included than previously given we're pretty much done =
with the spec and schemas) ...=20
>=20
> thanks, see you all in CA
>=20
> -- tony=20
>=20
> On Fri, Jul 19, 2019 at 6:52 AM Bruno Rijsman <brunorijsman@gmail.com =
<mailto:brunorijsman@gmail.com>> wrote:
> I am happy to report that I have successfully completed interop =
testing of RIFT security between RIFT-Juniper and RIFT-Python [1].
>=20
> In my earlier e-mail I had already reported that interoperability was =
achieved for the outer security envelope.
>=20
> Now, interoperability for origin security envelope is also working. As =
before, interop testing included both positive and negative test cases. =
This completes the interop testing of RIFT security.
>=20
> We did not find any issues that require changes in the draft. (There =
was only one very minor implementation issue which was quickly fixed.)
>=20
> For an updated feature guide of security in RIFT-Python see [2] (many =
enhancements were added during interop testing).
>=20
> Much has changed since I wrote the "RIFT Security Review" document [3] =
and, as a result, it is now out of date. I will update it to reflect the =
changes in the draft since May and the recent experiences from interop =
testing. I hope to post the updated version before the RIFT meeting at =
the IETF-105 in Montreal.
>=20
> [1] https://github.com/brunorijsman/rift-python =
<https://github.com/brunorijsman/rift-python>
>=20
> [2] http://bit.ly/rift-python-security-feature-guide =
<http://bit.ly/rift-python-security-feature-guide>
>=20
> [3] http://bit.ly/rift-security-review =
<http://bit.ly/rift-security-review>
>=20
> =E2=80=94 Bruno
>=20
> PS: The interoperability tests are fully automated using the =
=E2=80=9Cinterop.py=E2=80=9D script in the RIFT-Python repository. The =
results can easily be reproduced by anyone with access to the =
RIFT-Python code (which is publicly available in GitHub), the =
RIFT-Juniper executable, and an AWS instance or physical Ubuntu server.
>=20
>=20
>> On Jul 17, 2019, at 2:41 PM, Bruno Rijsman <brunorijsman@gmail.com =
<mailto:brunorijsman@gmail.com>> wrote:
>>=20
>> Status update on security interop testing between RIFT-Juniper and =
RIFT-Python:
>>=20
>> The outer keys are now interoperating fine.
>>=20
>> (A) As expected, the adjacency between RIFT-Juniper and RIFT-Python =
comes up to state 3way, when=20
>>=20
>>  (A1) authentication is disabled or
>>=20
>>  (A2) authentication is enabled with the same active keys or=20
>>=20
>>  (A3) authentication is enabled with different active keys and =
corresponding accept keys.
>>=20
>> (B) As expected, the adjacency between RIFT-Juniper and RIFT-Python =
does not come up to state 3way, when=20
>>=20
>>  (B1) Authentication is enabled on one side but not the other side
>>=20
>>  (B2) Authentication is enabled with different active keys and =
without corresponding accept keys
>>=20
>> Challenges along the way:
>>=20
>>  (C1) Juniper uses SHA-256(key + payload) whereas RIFT-Python uses =
HMAC-SHA-256(key, payload).  Solution: add support for SHA-256(key + =
payload) to RIFT-Python (in addition to HMAC-SHA-256).
>>=20
>>  (C2) RIFT-Juniper used different YAML configuration keywords than =
RIFT-Python.  Solution: change RIFT-Python to use the same configuration =
keywords.
>>=20
>>  (C3) RIFT-Juniper only support configuration of outer keys on a =
per-interface basis, whereas RIFT-Python support configuring the outer =
keys on a per-node and per-interface basis with an inheritance rule.  =
Solution: for interop testing, only use per-interface configuration.
>>=20
>>  (C4) RIFT-Juniper only supports SHA-256, whereas RIFT-Python also =
supports other key lengths (e.g. SHA-224, SHA-384, and more).  Solution: =
limit interop testing to SHA-256.
>>=20
>> All four of these issues are implementation issues, and none of these =
issues require any changes to the draft.
>>=20
>> Next step: finish interop testing for the origin keys. (I plan to do =
this Thursday  morning, Netherlands time)
>>=20
>> =E2=80=94 Bruno
>>=20
>=20


--Apple-Mail=_1CAD4408-B509-4E91-A11A-5BDCEFFCF01A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">Hi =
Tony,<div class=3D""><br class=3D""></div><div class=3D"">I will have an =
=E2=80=9Copen source update" slide deck for you to present. Already a =
work in progress. I will be ready before the RIFT WG meeting. I will =
attend remotely.</div><div class=3D""><br class=3D""></div><div =
class=3D"">=E2=80=94 Bruno<br class=3D""><div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D"">On Jul 19, 2019, at 3:01 PM, =
Tony Przygienda &lt;<a href=3D"mailto:tonysietf@gmail.com" =
class=3D"">tonysietf@gmail.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D""><div class=3D"">Bruno, &lt;thumbs direction=3D"up"/&gt; and =
as usual thanks for the work. If you manage some material, great, =
otherwise I strip 2 viewgraphs when giving update to the group <br =
class=3D""></div><div class=3D""><br class=3D""></div><div class=3D"">with=
 that we have 2 working interop'ed implementation of the spec <br =
class=3D""></div><div class=3D""><br class=3D""></div><div class=3D"">BTW,=
 the juniper binary is not on the free download yet (0.10.* is without =
sec envelope) but I'll be prep'ing 0.11 download Bruno was using in the =
next 2 weeks here (as I mentioned previously, with much more material =
around it included than previously given we're pretty much done with the =
spec and schemas) ... <br class=3D""></div><div class=3D""><br =
class=3D""></div><div class=3D"">thanks, see you all in CA<br =
class=3D""></div><div class=3D""><br class=3D""></div><div class=3D"">-- =
tony <br class=3D""></div></div><br class=3D""><div =
class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, Jul =
19, 2019 at 6:52 AM Bruno Rijsman &lt;<a =
href=3D"mailto:brunorijsman@gmail.com" =
class=3D"">brunorijsman@gmail.com</a>&gt; wrote:<br =
class=3D""></div><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 style=3D"overflow-wrap: =
break-word;" class=3D""><div class=3D"">I am happy to report that I have =
successfully completed interop testing of RIFT security between =
RIFT-Juniper and RIFT-Python [1].</div><div class=3D""><br =
class=3D""></div><div class=3D"">In my earlier e-mail I had already =
reported that interoperability was achieved for the outer security =
envelope.</div><div class=3D""><br class=3D""></div><div class=3D"">Now, =
interoperability for origin security&nbsp;envelope&nbsp;is also working. =
As before, interop testing included both positive and negative test =
cases. This completes the interop testing of RIFT security.</div><div =
class=3D""><br class=3D""></div><div class=3D"">We did not find any =
issues that require changes in the draft. (There was only one very minor =
implementation issue which was quickly fixed.)</div><div class=3D""><br =
class=3D""></div><div class=3D"">For an updated feature guide of =
security in RIFT-Python see [2] (many enhancements were added during =
interop testing).</div><div class=3D""><br class=3D""></div><div =
class=3D"">Much has changed since I wrote the "RIFT Security Review" =
document [3] and, as a result, it is now out of date. I will update it =
to reflect the changes in the draft since May and the recent experiences =
from interop testing. I hope to post the updated version before the RIFT =
meeting at the IETF-105 in Montreal.</div><div class=3D""><br =
class=3D""></div><div class=3D"">[1] <a =
href=3D"https://github.com/brunorijsman/rift-python" target=3D"_blank" =
class=3D"">https://github.com/brunorijsman/rift-python</a></div><div =
class=3D""><br class=3D""></div><div class=3D"">[2]&nbsp;<a =
href=3D"http://bit.ly/rift-python-security-feature-guide" =
target=3D"_blank" =
class=3D"">http://bit.ly/rift-python-security-feature-guide</a></div><div =
class=3D""><br class=3D""></div><div class=3D"">[3] <a =
href=3D"http://bit.ly/rift-security-review" target=3D"_blank" =
class=3D"">http://bit.ly/rift-security-review</a></div><div class=3D""><br=
 class=3D""></div><div class=3D"">=E2=80=94 Bruno</div><div class=3D""><br=
 class=3D""></div><div class=3D"">PS: The interoperability tests are =
fully automated using the =E2=80=9Cinterop.py=E2=80=9D script in the =
RIFT-Python repository. The results can easily be reproduced by anyone =
with access to the RIFT-Python code (which is publicly available in =
GitHub), the RIFT-Juniper executable, and an AWS instance or physical =
Ubuntu server.</div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Jul 17, 2019, at 2:41 PM, Bruno Rijsman &lt;<a =
href=3D"mailto:brunorijsman@gmail.com" target=3D"_blank" =
class=3D"">brunorijsman@gmail.com</a>&gt; wrote:</div><br =
class=3D"gmail-m_-2935513673670050300Apple-interchange-newline"><div =
class=3D""><div class=3D"">Status update on security interop testing =
between RIFT-Juniper and RIFT-Python:<br class=3D""><br class=3D"">The =
outer keys are now interoperating fine.<br class=3D""><br class=3D"">(A) =
As expected, the adjacency between RIFT-Juniper and RIFT-Python comes up =
to state 3way, when <br class=3D""><br class=3D""> &nbsp;(A1) =
authentication is disabled or<br class=3D""><br class=3D""> &nbsp;(A2) =
authentication is enabled with the same active keys or <br class=3D""><br =
class=3D""> &nbsp;(A3) authentication is enabled with different active =
keys and corresponding accept keys.<br class=3D""><br class=3D"">(B) As =
expected, the adjacency between RIFT-Juniper and RIFT-Python does not =
come up to state 3way, when <br class=3D""><br class=3D""> &nbsp;(B1) =
Authentication is enabled on one side but not the other side<br =
class=3D""><br class=3D""> &nbsp;(B2) Authentication is enabled with =
different active keys and without corresponding accept keys<br =
class=3D""><br class=3D"">Challenges along the way:<br class=3D""><br =
class=3D""> &nbsp;(C1) Juniper uses SHA-256(key + payload) whereas =
RIFT-Python uses HMAC-SHA-256(key, payload).&nbsp; Solution: add support =
for SHA-256(key + payload) to RIFT-Python (in addition to =
HMAC-SHA-256).<br class=3D""><br class=3D""> &nbsp;(C2) RIFT-Juniper =
used different YAML configuration keywords than RIFT-Python.&nbsp; =
Solution: change RIFT-Python to use the same configuration keywords.<br =
class=3D""><br class=3D""> &nbsp;(C3) RIFT-Juniper only support =
configuration of outer keys on a per-interface basis, whereas =
RIFT-Python support configuring the outer keys on a per-node and =
per-interface basis with an inheritance rule.&nbsp; Solution: for =
interop testing, only use per-interface configuration.<br class=3D""><br =
class=3D""> &nbsp;(C4) RIFT-Juniper only supports SHA-256, whereas =
RIFT-Python also supports other key lengths (e.g. SHA-224, SHA-384, and =
more).&nbsp; Solution: limit interop testing to SHA-256.<br class=3D""><br=
 class=3D"">All four of these issues are implementation issues, and none =
of these issues require any changes to the draft.<br class=3D""><br =
class=3D"">Next step: finish interop testing for the origin keys. (I =
plan to do this Thursday &nbsp;morning, Netherlands time)<br =
class=3D""><br class=3D"">=E2=80=94 Bruno<br class=3D""><br =
class=3D""></div></div></blockquote></div><br =
class=3D""></div></blockquote></div>
</div></blockquote></div><br class=3D""></div></body></html>=

--Apple-Mail=_1CAD4408-B509-4E91-A11A-5BDCEFFCF01A--


From nobody Fri Jul 19 08:17:55 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 652B21205FD for <rift@ietfa.amsl.com>; Fri, 19 Jul 2019 08:17:54 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 esWczpsmWYJL for <rift@ietfa.amsl.com>; Fri, 19 Jul 2019 08:17:51 -0700 (PDT)
Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) (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 4EA101205FE for <rift@ietf.org>; Fri, 19 Jul 2019 08:17:51 -0700 (PDT)
Received: by mail-ed1-x535.google.com with SMTP id e3so34834832edr.10 for <rift@ietf.org>; Fri, 19 Jul 2019 08:17:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=t/lxRGtzcE8DP8cGwBobxMzSTFhwljXDNzfYQZ/wsnQ=; b=tLxlWY8LbOvOb2m0ZA707LMxJkbnlrbWyZAtGr7nEomQHBeudqnqQTm6exM91V3zZV Tn0liW3Pt5/W5iLHVcujArTyFoR8j3NVedZCVOs/qWCPdFyLuGs+r8VrenMbe5lfxU+g M4QMEgmDShJxo13jghGA6IfKCRgGrmVgOSqKwC/XpHmELRPVphOCkAjGkz08kDi1cU2/ dSAmhJvIxqfSYNbhi5zCXYmSTwsAbW3c+P/71qNQB02Va2mEY0e/XCKQP+RbajqaruW9 FZzLol3BPYctrWy9vMVv6ru9uvuBzIb1rMja0Md/MCU8C4ly54xUgjlucJpKdGR8uN0P CrNQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=t/lxRGtzcE8DP8cGwBobxMzSTFhwljXDNzfYQZ/wsnQ=; b=qCaldE6P9q9AfANww2nLVi1zxIZHzwN/NuAml3O711QII+RH5hP2gTB8ZnnGQwcWG+ J4ZDNIFzbIljfGXVv1zQKm+79922Cz1yTaY9fZyG84Pz2TKBTc2xkhl+St2cq0mBvWdw qkQIsUDaQC+8Qcl0aAFF6P77hVMwcp6HZhCLQcsElQPUKZeVQG24PhFqpV6nXPmIdldr JHwlYc4YufgUP++L/1mIChHNM0VnNJVOtEHfNjYhoZZqR228OOTbTVrNnK/Cx0KrAYV+ 1B2TowiVtJ+cwgy8JUCf+hggU7fZEp8XSYwywqyEmaHNBhbMq4wkgO6jgiCxzJIuX1Wc VleA==
X-Gm-Message-State: APjAAAWE1uTUNm1+Vee6ix7eHRquJY2uoWSOkOovtSqDM6rPLkmgnMj+ xF7kHRf/EO+X9E22zoBi5dJEucPMZCkjqF1mdfg=
X-Google-Smtp-Source: APXvYqwi09KuqCQh/WIrAr4j0Fnbcq0vl0GEWTYUGOpfASprXTFBKCCM8O+NWwlCAW8YkfLmdMC2PGXr2bPg6P74LJ0=
X-Received: by 2002:a50:b13b:: with SMTP id k56mr48377585edd.192.1563549469941;  Fri, 19 Jul 2019 08:17:49 -0700 (PDT)
MIME-Version: 1.0
References: <alpine.DEB.2.20.1907180636330.19225@uplift.swm.pp.se> <CA+wi2hP6K3Or7ynOUzKovxkx8ZtvnTUdKVDvjRcB8=4yjFD6aQ@mail.gmail.com> <alpine.DEB.2.20.1907182001590.19225@uplift.swm.pp.se> <CA+wi2hOkZH0O44yTikfabmDpJSqZN+_qmZnDBA1gsyFoVhzYuQ@mail.gmail.com> <CAMMESsznSPyS7zEKQNE2Ey8uZh-64P2MFE+fJt1054oaScyJtw@mail.gmail.com> <CA+wi2hPSa7HAijtNAd4niWEZ0muGikkvp=8SDFUiHRbYBL2WYg@mail.gmail.com> <741E9BFC-1516-4E49-936A-FB096ECAFE8D@gmail.com>
In-Reply-To: <741E9BFC-1516-4E49-936A-FB096ECAFE8D@gmail.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Fri, 19 Jul 2019 11:17:13 -0400
Message-ID: <CA+wi2hPXjFYeGardqVc1XXNUEFFdoCHFvKUm0YXWakN7m=AoEg@mail.gmail.com>
To: Bruno Rijsman <brunorijsman@gmail.com>
Cc: Alvaro Retana <aretana.ietf@gmail.com>, rift@ietf.org,  Mikael Abrahamsson <swmike@swm.pp.se>
Content-Type: multipart/alternative; boundary="000000000000bea4bc058e0a3ae8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/nAGbh42jzAgpJmfwvD7GOrR3ihI>
Subject: Re: [Rift] IPv4 vs IPv6
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 15:17:54 -0000

--000000000000bea4bc058e0a3ae8
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

good, let's remove the sentence but we have to resolve the following
scenario now.

v6 LIEs are exchanged, with that we have v6 gateways

now, if v4 addresses are not present, no v4 LIEs can be exchanged but a
node may be able to forward v4 over v6 gateways (in fact highly desirable).
How do we know whether v4 can or cannot be forwarded over the link?

A possible solution is to send on the adjacency which address families can
be forwarded like this

/* Link capabilities */

struct LinkCapabilities {
    /* indicates that the link's `local ID` can be used as its BFD
       discriminator and the link is supporting BFD */
    1: optional bool                           bfd =3D
            common.bfd_default;


*    2: optional bool                           v4_forwarding_capable =3D t=
rue;*}

which will allow a node to decide whether it installs the v4 route v6
nexthop with v6 gateways on this link if it does not have a v4 address. Or
we just say "v4 can be forwarded over RIFT links even if only v6 LIEs have
been exchanged?" ...

-- tony



On Fri, Jul 19, 2019 at 12:30 AM Bruno Rijsman <brunorijsman@gmail.com>
wrote:

> That would be my vote.
>
> AFAIK the protocol supports v4-only, v6-only, and v4-and-v6.
>
> I don=E2=80=99t see a need to put a requirement in the spec that a router=
 must
> support a specific subset of those options.  That is up to the implemento=
r
> / operator.
>
> =E2=80=94 Bruno
>
> On Jul 19, 2019, at 4:45 AM, Tony Przygienda <tonysietf@gmail.com> wrote:
>
> If the consensus is that we should be dropping the sentence completely in
> the next versions and not specify any RIFT router requirements, I think
> that's perfectly reasonable as well.
>
> --- tony
>
> On Thu, Jul 18, 2019 at 4:39 PM Alvaro Retana <aretana.ietf@gmail.com>
> wrote:
>
>> On July 18, 2019 at 3:50:34 PM, Tony Przygienda (tonysietf@gmail.com)
>> wrote:
>>
>> [Speaking as a WG member.]
>>
>> Aha ok, what you say is reasonable. I was steered here originally by the
>> fact the even cheapest stuff today
>> <http://airmail.calendar/2019-07-18%2012:00:00%20GMT-3> does v4 and if
>> we have v6 support on the fabric v4 forwarding over v6 nexthops is possi=
ble
>> at basically zero config cost and you have a great v4 to v6 migration
>> story. but with the angle you propose I see that writing "SHOULD support
>> v4" would be better assuming silicon will become v6 only over years and =
v4
>> will vanish.
>>
>> We can't write of course "MUST support v6" since that makes the stuff
>> undeployable in foreseable future albeit we all wish the world would hav=
e
>> moved on for last 20 years :-}
>>
>> Other opinions?
>>
>> I would go all the way and not make specific support Normative.  Even a
>> =E2=80=9CSHOULD support IPv4=E2=80=9D could raise a lot of questions.
>>
>> My 2c.
>>
>> Alvaro.
>>
>> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>
>
>

--000000000000bea4bc058e0a3ae8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>good, let&#39;s remove the sentence but we have to re=
solve the following scenario now. <br></div><div><br></div><div>v6 LIEs are=
 exchanged, with that we have v6 gateways</div><div><br></div><div>now, if =
v4 addresses are not present, no v4 LIEs can be exchanged but a node may be=
 able to forward v4 over v6 gateways (in fact highly desirable). How do we =
know whether v4 can or cannot be forwarded over the link?<br></div><div><br=
></div><div>A possible solution is to send on the adjacency which address f=
amilies can be forwarded like this <br></div><div><span style=3D"color:rgb(=
128,128,128);font-style:italic"><br></span></div><div><span style=3D"color:=
rgb(128,128,128);font-style:italic">/* Link capabilities */</span><br><span=
 style=3D"color:rgb(128,128,128);font-style:italic"></span></div><div><pre =
style=3D"background-color:rgb(255,255,255);color:rgb(0,0,0);font-family:&qu=
ot;Menlo&quot;;font-size:7.5pt"><span style=3D"color:rgb(0,0,128);font-weig=
ht:bold">struct </span>LinkCapabilities {<br>    <span style=3D"color:rgb(1=
28,128,128);font-style:italic">/* indicates that the link&#39;s `local ID` =
can be used as its BFD<br></span><span style=3D"color:rgb(128,128,128);font=
-style:italic">       discriminator and the link is supporting BFD */<br></=
span><span style=3D"color:rgb(128,128,128);font-style:italic">    </span><s=
pan style=3D"color:rgb(0,0,255)">1</span>: <span style=3D"color:rgb(0,0,128=
);font-weight:bold">optional bool                           </span>bfd =3D<=
br>          =C2=A0 common.bfd_default;<br></pre><pre style=3D"background-c=
olor:rgb(255,255,255);color:rgb(0,0,0);font-family:&quot;Menlo&quot;;font-s=
ize:7.5pt"><u><b>    2: optional bool                           v4_forwardi=
ng_capable =3D true;<br></b></u>}</pre></div><div>which will allow a node t=
o decide whether it installs the v4 route v6 nexthop with v6 gateways on th=
is link if it does not have a v4 address. Or we just say &quot;v4 can be fo=
rwarded over RIFT links even if only v6 LIEs have been exchanged?&quot; ...=
 <br></div><div><br></div><div>-- tony <br></div><div><br></div><div><br></=
div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_at=
tr">On Fri, Jul 19, 2019 at 12:30 AM Bruno Rijsman &lt;<a href=3D"mailto:br=
unorijsman@gmail.com">brunorijsman@gmail.com</a>&gt; wrote:<br></div><block=
quote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1=
px solid rgb(204,204,204);padding-left:1ex"><div style=3D"overflow-wrap: br=
eak-word;">That would be my vote.<div><br></div><div>AFAIK the protocol sup=
ports v4-only, v6-only, and v4-and-v6.</div><div><br></div><div>I don=E2=80=
=99t see a need to put a requirement in the spec that a router must support=
 a specific subset of those options.=C2=A0 That is up to the implementor / =
operator.</div><div><br></div><div>=E2=80=94 Bruno<br><div><br><blockquote =
type=3D"cite"><div>On Jul 19, 2019, at 4:45 AM, Tony Przygienda &lt;<a href=
=3D"mailto:tonysietf@gmail.com" target=3D"_blank">tonysietf@gmail.com</a>&g=
t; wrote:</div><br class=3D"gmail-m_8343917830038726188Apple-interchange-ne=
wline"><div><div dir=3D"ltr"><div>If the consensus is that we should be dro=
pping the sentence completely in the next versions and not specify any RIFT=
 router requirements, I think that&#39;s perfectly reasonable as well. <br>=
</div><div><br></div><div>--- tony <br></div></div><br><div class=3D"gmail_=
quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jul 18, 2019 at 4:39 P=
M Alvaro Retana &lt;<a href=3D"mailto:aretana.ietf@gmail.com" target=3D"_bl=
ank">aretana.ietf@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex"><div><div style=3D"font-family:Helvetica,Arial;f=
ont-size:13px">On July 18, 2019 at 3:50:34 PM, Tony Przygienda (<a href=3D"=
mailto:tonysietf@gmail.com" target=3D"_blank">tonysietf@gmail.com</a>) wrot=
e:</div><div style=3D"font-family:Helvetica,Arial;font-size:13px"><br></div=
><div style=3D"font-family:Helvetica,Arial;font-size:13px">[Speaking as a W=
G member.]</div><div style=3D"font-family:Helvetica,Arial;font-size:13px"><=
br></div> <div><blockquote type=3D"cite" class=3D"gmail-m_83439178300387261=
88gmail-m_1399211662630522654clean_bq" style=3D"font-family:Helvetica,Arial=
;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:norm=
al;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:no=
ne;white-space:normal;word-spacing:0px"><span><div><div style=3D"font-famil=
y:&quot;helvetica Neue&quot;,helvetica;font-size:14px;font-style:normal;fon=
t-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:s=
tart;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0p=
x">Aha ok, what you say is reasonable. I was steered here originally by the=
 fact the even cheapest stuff<span class=3D"gmail-m_8343917830038726188gmai=
l-m_1399211662630522654Apple-converted-space">=C2=A0</span><a href=3D"http:=
//airmail.calendar/2019-07-18%2012:00:00%20GMT-3" style=3D"word-break:break=
-word" target=3D"_blank">today</a><span class=3D"gmail-m_834391783003872618=
8gmail-m_1399211662630522654Apple-converted-space">=C2=A0</span>does v4 and=
 if we have v6 support on the fabric v4 forwarding over v6 nexthops is poss=
ible at basically zero config cost and you have a great v4 to v6 migration =
story. but with the angle you propose I see that writing &quot;SHOULD suppo=
rt v4&quot; would be better assuming silicon will become v6 only over years=
 and v4 will vanish.<br></div><div style=3D"font-family:&quot;helvetica Neu=
e&quot;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal=
;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;=
text-transform:none;white-space:normal;word-spacing:0px"><br></div><div sty=
le=3D"font-family:&quot;helvetica Neue&quot;,helvetica;font-size:14px;font-=
style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:nor=
mal;text-align:start;text-indent:0px;text-transform:none;white-space:normal=
;word-spacing:0px">We can&#39;t write of course &quot;MUST support v6&quot;=
 since that makes the stuff undeployable in foreseable future albeit we all=
 wish the world would have moved on for last 20 years :-}<br></div><div sty=
le=3D"font-family:&quot;helvetica Neue&quot;,helvetica;font-size:14px;font-=
style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:nor=
mal;text-align:start;text-indent:0px;text-transform:none;white-space:normal=
;word-spacing:0px"><br></div><div style=3D"font-family:&quot;helvetica Neue=
&quot;,helvetica;font-size:14px;font-style:normal;font-variant-caps:normal;=
font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;t=
ext-transform:none;white-space:normal;word-spacing:0px">Other opinions?</di=
v></div></span></blockquote></div><p>I would go all the way and not make sp=
ecific support Normative.=C2=A0 Even a =E2=80=9CSHOULD support IPv4=E2=80=
=9D could raise a lot of questions.</p><p>My 2c.</p><p>Alvaro.</p><div><br =
class=3D"gmail-m_8343917830038726188gmail-m_1399211662630522654Apple-interc=
hange-newline"></div> <div class=3D"gmail-m_8343917830038726188gmail-m_1399=
211662630522654gmail_signature"></div></div>
</blockquote></div>
_______________________________________________<br>RIFT mailing list<br><a =
href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br><a hre=
f=3D"https://www.ietf.org/mailman/listinfo/rift" target=3D"_blank">https://=
www.ietf.org/mailman/listinfo/rift</a><br></div></blockquote></div><br></di=
v></div></blockquote></div>

--000000000000bea4bc058e0a3ae8--


From nobody Sun Jul 21 02:35:09 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D05751200DB for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 02:35:07 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 4RqBaZ-XZLAx for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 02:35:06 -0700 (PDT)
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) (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 C547B1200C1 for <rift@ietf.org>; Sun, 21 Jul 2019 02:35:05 -0700 (PDT)
Received: by mail-ed1-x52a.google.com with SMTP id k8so38077925eds.7 for <rift@ietf.org>; Sun, 21 Jul 2019 02:35:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:mime-version:date:subject:cc:to:message-id; bh=JcuDtIjeG/W/1VuM/dd0RzuXrur4TAS6Ut/5uhicbvo=; b=g3iBagj6gvb2McijEsGzJexV+SVMeOUifKKKwo8Pj65rFbj2hu+zHGN8uQ8md+BEoh ASA91ITqsmbXZkaKBCQZrPoBNh1GtP2DBWz/RgPtcfP4fZC6KIuyLCCsC6DbDK24XaOi mnYnLar59I1FaeMIl+TfC53xglWe7dX1gmjBYAL0ny+DYvtApnyO6BHVHoyip0Cq1vc5 kpQkoaB9oPvsV6MmMctZ0U7XqqHiJQPgFFDTSCqNMbL9R6eI3HrgJzUZLCFeZGIq3E5n kEptZj0b121QOtZ4FZbrlUY0nw7zphjBS1nYkTGSSnr4sTjVv8ywWIHdo3zZl2upcPfn L4DQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:date:subject:cc:to:message-id; bh=JcuDtIjeG/W/1VuM/dd0RzuXrur4TAS6Ut/5uhicbvo=; b=DcDtmcjphidxF4g3mvmOnC2k0mn0bSxOGTq+IGXLoMNATF+tlghEbRC52sCWQGrvr9 jUTQ90c9WuJVctKQJyvkqjEtrJ2Jk3qi2oraJJTwSVNHESU6m496xsEynsFk25sXTcPa UBT6v4vNmkJP9LKL2WTUevqaE+hsg3kJ/9xoOJFu4V2LxdwNzy0ljUvbngNXNQVo/Fwb QU30BXGnr+vQ+m30fuKHGP03519KcdHMBJYsjrwbPRA6MTJysyT3Z8TVlXPV23EqrtRb GtU/secjq8Kln63+7tTTNtCwEQXD56zk0dA0t+wt8uFsSyCbjiABd89Yy37m4ZWy5N4b P1Ig==
X-Gm-Message-State: APjAAAWN0LeToslR/ZhbfiFm/qcXDx2xW3OlFZ36e2TehKv8RuCQ21Ju 5pELojoWf8v3qqga9tJSGh4=
X-Google-Smtp-Source: APXvYqxYnegXT5F9w0ppRaoosA4LFPn0Pe0BC9gtqKz1mOLwMWL0ynArGy5I2DN/G82WyMege3fTxA==
X-Received: by 2002:a50:9273:: with SMTP id j48mr55733003eda.285.1563701704215;  Sun, 21 Jul 2019 02:35:04 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-48-174.ip.prioritytelecom.net. [213.127.48.174]) by smtp.gmail.com with ESMTPSA id e21sm7184561eje.55.2019.07.21.02.35.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Jul 2019 02:35:03 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_75185DDC-3C64-4739-A126-3C1C6FDB466F"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sun, 21 Jul 2019 11:35:01 +0200
Cc: rift@ietf.org
To: Tony Przygienda <tonysietf@gmail.com>
Message-Id: <CF366357-79EA-4395-9024-09A371795695@gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/41nax-Ka_T89X4wt_FfnjRw92MM>
Subject: [Rift] RIFT fingerprint coverage
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Jul 2019 09:35:08 -0000

--Apple-Mail=_75185DDC-3C64-4739-A126-3C1C6FDB466F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Tony and others,

I just noticed that the RIFT fingerprints do not cover the key-id nor =
the fingerprint-length nor the major-version.

This means that if an adversary changes the key-id, fingerprint-length, =
or major-version, it will not be detected by the fingerprint.

I cannot think of an immediate attack vector (maybe force a weaker =
algorithm by changing the key-id), but "it feels wrong".

I wonder whether we should expand the coverage of fingerprints slightly, =
as shown below?

Note that AFAIK in OSPF (for example) the digest does cover the key-id =
and auth-data-len.

Suggested change:

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

      UDP Header:
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           Source Port         |       RIFT destination port   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           UDP Length          |        UDP Checksum           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Outer Security Envelope Header:
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           RIFT MAGIC          |         Packet Number         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Reserved   |  RIFT Major   | Outer Key ID  |    Outer      |
      |               |    Version    |               | Fingerprint   |
      |               |               |               |    Length     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~  Outer Security Fingerprint covers all content starting       ~
      |  at the Reserved field in the Outer Security Envelope Header  |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Weak Nonce Local              | Weak Nonce Remote             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |            Remaining TIE Lifetime (all 1s in case of LIE)     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      TIE Origin Security Envelope Header:
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                               |  TIE Origin   |
      |              TIE Origin Key ID                |  Fingerprint  |
      |                                               |    Length     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~  TIE Origin Security Fingerprint covers all content starting  ~
      |  at the TIE Origin Key ID field                               |
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Serialized RIFT Model Object
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                Serialized RIFT Model Object                   ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

PS 1: I know that the rift-magic and packet-nr fields are left out of =
the fingerprint coverege on purpose, so I left it that way.

PS 2: I also updated the names have a clearer distinction between the =
two fingerprints.

=E2=80=94 Bruno=

--Apple-Mail=_75185DDC-3C64-4739-A126-3C1C6FDB466F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><div =
class=3D"">Hi Tony and others,</div><div class=3D""><br =
class=3D""></div><div class=3D"">I just noticed that the RIFT =
fingerprints do not cover the key-id nor the fingerprint-length nor the =
major-version.</div><div class=3D""><br class=3D""></div><div =
class=3D"">This means that if an adversary changes the key-id, =
fingerprint-length, or major-version, it will not be detected by the =
fingerprint.</div><div class=3D""><br class=3D""></div><div class=3D"">I =
cannot think of an immediate attack vector (maybe force a weaker =
algorithm by changing the key-id), but "it feels wrong".</div><div =
class=3D""><br class=3D""></div><div class=3D"">I wonder whether we =
should expand the coverage of fingerprints slightly, as shown =
below?</div><div class=3D""><br class=3D""></div><div class=3D"">Note =
that AFAIK in OSPF (for example) the digest does cover the key-id and =
auth-data-len.</div><div class=3D""><br class=3D""></div><div =
class=3D"">Suggested change:</div><div class=3D""><br =
class=3D""></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; 3</font></div><div class=3D""><font face=3D"Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp;0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 =
5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
UDP Header:</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Source Port &nbsp; &nbsp; =
&nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; RIFT destination port &nbsp; =
|</font></div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;=
 &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UDP Length &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp;UDP Checksum &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; |</font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; Outer Security Envelope =
Header:</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RIFT MAGIC &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; Packet Number &nbsp; =
&nbsp; &nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp;Reserved &nbsp; | &nbsp;RIFT Major &nbsp; | Outer =
Key ID &nbsp;| &nbsp; &nbsp;Outer &nbsp; &nbsp; &nbsp;|</font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp;Version =
&nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | =
Fingerprint &nbsp; |</font></div><div class=3D""><font face=3D"Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp;Length =
&nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; ~ &nbsp;Outer Security Fingerprint =
covers all content starting &nbsp; &nbsp; &nbsp; ~</font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | =
&nbsp;at the Reserved field in the Outer Security Envelope Header =
&nbsp;|</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | Weak Nonce Local &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;| Weak Nonce Remote &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|</font></div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;=
 &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Remaining TIE Lifetime =
(all 1s in case of LIE) &nbsp; &nbsp; |</font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; TIE Origin Security Envelope =
Header:</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;TIE Origin &nbsp; |</font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TIE Origin Key ID &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;Fingerprint =
&nbsp;|</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; =
&nbsp;Length &nbsp; &nbsp; |</font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; ~ &nbsp;TIE Origin Security Fingerprint =
covers all content starting &nbsp;~</font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | &nbsp;at the TIE =
Origin Key ID field &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|</font></div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;=
 &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; Serialized RIFT Model =
Object</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; ~ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;Serialized RIFT Model Object &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ~</font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><br class=3D""></div><div class=3D"">PS 1: I know =
that the rift-magic and packet-nr fields are left out of the fingerprint =
coverege on purpose, so I left it that way.</div><div class=3D""><br =
class=3D""></div><div class=3D"">PS 2: I also updated the names have a =
clearer distinction between the two fingerprints.</div><div class=3D""><br=
 class=3D""></div><div class=3D"">=E2=80=94 Bruno</div></body></html>=

--Apple-Mail=_75185DDC-3C64-4739-A126-3C1C6FDB466F--


From nobody Sun Jul 21 03:40:03 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 21408120071 for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 03:40:02 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 6_PnqK46k5qa for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 03:40:00 -0700 (PDT)
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) (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 82D7F12004A for <rift@ietf.org>; Sun, 21 Jul 2019 03:39:59 -0700 (PDT)
Received: by mail-ed1-x52a.google.com with SMTP id d4so38199658edr.13 for <rift@ietf.org>; Sun, 21 Jul 2019 03:39:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:subject:from:in-reply-to:date:cc:message-id:references :to; bh=XlSid/JR+T8uHOhKECMzzfJlGRpgrsTrZwHUAXWxipU=; b=L3ymwoPGt/XaIKBUv84au8omjd0+A5bqCeUo3kXnagMhd+BoqQrp9St3+8gNWg4ZsR bKk/U7jt85y4O1VYDUmgV8KeMcYIe+ruc6d5ovjrmUbZJtXOrjjouQgRyy7klymY/9Ht Rn+3MoyxI2iyEQU2WI+C/1cXZMuEjX2J0dT+1kALz5dmvzWDFp+ytKi16jwW2BP1Jkau bj4lJs13iOd/CAg0rXGjF5uVp7JR77ZoPvZhAiTIiyhWfdTR66Eq4ZEleYgguTEr4Evy fZie2AdBjRt0MQVs+8AcRZ87IMz+bueCw3FExZcvCjCawRUx0ZWUHc51G7aF0n2dYy+8 GUNg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=XlSid/JR+T8uHOhKECMzzfJlGRpgrsTrZwHUAXWxipU=; b=IslHVU6WDaf+YrKsqMvPMKXtSwaeAVY1+9f0B/SUM0pJpmpOuEYDHYzEBr7Zl7oAS6 CULCjJ+HVj7wgHLNM74X+gE7/6Ab8ofrpkOw0u2dvVKWmLU8E1l0mVkyhWyHT3uGowza cvcWPIYm6s/aoErQP9ikGgXrLZt/Yo2HyRZAX66VoJ+iFvdIlbBvQwI+aIG9ok9BeZnE FLcadGP7RR84ddk8zQEtC0KSXb5vHcra9bKKKkm4GKWVNT9hjTatA3tLo/MoESt+Tigd KMi3rewiqtHp59cZb/HDMUwW42clp0IBR3EYtg+rKNVraeQxrhadC+1sOSwcps46v9H9 Dh3A==
X-Gm-Message-State: APjAAAUJedEZYV9r7pe71DPOrqPehBl0ZQFjeGmfJrPUB3EE5aZjgavS pM8/+h5Iy6pH2pMwLQgvYjsE++9q1JI=
X-Google-Smtp-Source: APXvYqy6LAM+XEl+ikLQS9aIXoaNMi4LdhB1VSxm2A54y8V7uJvJ/iBELHEjZ4DNU2vuj4KICYRpmw==
X-Received: by 2002:a17:906:7281:: with SMTP id b1mr49455703ejl.63.1563705598017;  Sun, 21 Jul 2019 03:39:58 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-48-174.ip.prioritytelecom.net. [213.127.48.174]) by smtp.gmail.com with ESMTPSA id g18sm7233689ejo.3.2019.07.21.03.39.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Jul 2019 03:39:57 -0700 (PDT)
Content-Type: multipart/alternative; boundary="Apple-Mail=_39A4AA1C-7307-4798-80D6-A541F3D5E9A4"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
From: Bruno Rijsman <brunorijsman@gmail.com>
In-Reply-To: <CF366357-79EA-4395-9024-09A371795695@gmail.com>
Date: Sun, 21 Jul 2019 12:39:55 +0200
Cc: rift@ietf.org
Message-Id: <F165CA6D-3537-4310-8453-77B069F69414@gmail.com>
References: <CF366357-79EA-4395-9024-09A371795695@gmail.com>
To: Tony Przygienda <tonysietf@gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/wcjsF25alTbCv9HErGR5MhZVjyE>
Subject: Re: [Rift] RIFT fingerprint coverage
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Jul 2019 10:40:02 -0000

--Apple-Mail=_39A4AA1C-7307-4798-80D6-A541F3D5E9A4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Fixing one important mistake in bold red below:


> On Jul 21, 2019, at 11:35 AM, Bruno Rijsman <brunorijsman@gmail.com> =
wrote:
>=20
> Hi Tony and others,
>=20
> I just noticed that the RIFT fingerprints do not cover the key-id nor =
the fingerprint-length nor the major-version.
>=20
> This means that if an adversary changes the key-id, =
fingerprint-length, or major-version, it will not be detected by the =
fingerprint.
>=20
> I cannot think of an immediate attack vector (maybe force a weaker =
algorithm by changing the key-id), but "it feels wrong".
>=20
> I wonder whether we should expand the coverage of fingerprints =
slightly, as shown below?
>=20
> Note that AFAIK in OSPF (for example) the digest does cover the key-id =
and auth-data-len.
>=20
> Suggested change:
>=20
>        0                   1                   2                   3
>        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>=20
>       UDP Header:
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |           Source Port         |       RIFT destination port   =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |           UDP Length          |        UDP Checksum           =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>=20
>       Outer Security Envelope Header:
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |           RIFT MAGIC          |         Packet Number         =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |    Reserved   |  RIFT Major   | Outer Key ID  |    Outer      =
|
>       |               |    Version    |               | Fingerprint   =
|
>       |               |               |               |    Length     =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |                                                               =
|
>       ~  Outer Security Fingerprint covers all content starting       =
~
>       |  at the Reserved field in the Outer Security Envelope Header  =
|
>       |  but excluding this fingerprint                               =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       | Weak Nonce Local              | Weak Nonce Remote             =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |            Remaining TIE Lifetime (all 1s in case of LIE)     =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>=20
>       TIE Origin Security Envelope Header:
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |                                               |  TIE Origin   =
|
>       |              TIE Origin Key ID                |  Fingerprint  =
|
>       |                                               |    Length     =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |                                                               =
|
>       ~  TIE Origin Security Fingerprint covers all content starting  =
~
>       |  at the TIE Origin Key ID field but excluding this =
fingerprint|
>       |                                                               =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>=20
>       Serialized RIFT Model Object
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |                                                               =
|
>       ~                Serialized RIFT Model Object                   =
~
>       |                                                               =
|
>       =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>=20
> PS 1: I know that the rift-magic and packet-nr fields are left out of =
the fingerprint coverege on purpose, so I left it that way.
>=20
> PS 2: I also updated the names have a clearer distinction between the =
two fingerprints.
>=20
> =E2=80=94 Bruno


--Apple-Mail=_39A4AA1C-7307-4798-80D6-A541F3D5E9A4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" =
class=3D"">Fixing one important mistake in <b class=3D""><font =
color=3D"#ff2600" class=3D"">bold red</font> </b>below:<div class=3D""><br=
 class=3D""><div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Jul 21, 2019, at 11:35 AM, Bruno Rijsman &lt;<a =
href=3D"mailto:brunorijsman@gmail.com" =
class=3D"">brunorijsman@gmail.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><meta =
http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" =
class=3D""><div style=3D"word-wrap: break-word; -webkit-nbsp-mode: =
space; line-break: after-white-space;" class=3D""><div class=3D"">Hi =
Tony and others,</div><div class=3D""><br class=3D""></div><div =
class=3D"">I just noticed that the RIFT fingerprints do not cover the =
key-id nor the fingerprint-length nor the major-version.</div><div =
class=3D""><br class=3D""></div><div class=3D"">This means that if an =
adversary changes the key-id, fingerprint-length, or major-version, it =
will not be detected by the fingerprint.</div><div class=3D""><br =
class=3D""></div><div class=3D"">I cannot think of an immediate attack =
vector (maybe force a weaker algorithm by changing the key-id), but "it =
feels wrong".</div><div class=3D""><br class=3D""></div><div class=3D"">I =
wonder whether we should expand the coverage of fingerprints slightly, =
as shown below?</div><div class=3D""><br class=3D""></div><div =
class=3D"">Note that AFAIK in OSPF (for example) the digest does cover =
the key-id and auth-data-len.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Suggested change:</div><div =
class=3D""><br class=3D""></div><div class=3D""><font face=3D"Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp;0 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; 3</font></div><div class=3D""><font face=3D"Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp;0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 =
5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1</font></div><div class=3D""><font =
face=3D"Courier New" class=3D""><br class=3D""></font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
UDP Header:</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Source Port &nbsp; &nbsp; =
&nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; RIFT destination port &nbsp; =
|</font></div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;=
 &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UDP Length &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp;UDP Checksum &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; |</font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; Outer Security Envelope =
Header:</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RIFT MAGIC &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; Packet Number &nbsp; =
&nbsp; &nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp;Reserved &nbsp; | &nbsp;RIFT Major &nbsp; | Outer =
Key ID &nbsp;| &nbsp; &nbsp;Outer &nbsp; &nbsp; &nbsp;|</font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp;Version =
&nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | =
Fingerprint &nbsp; |</font></div><div class=3D""><font face=3D"Courier =
New" class=3D"">&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp;Length =
&nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; ~ &nbsp;Outer Security Fingerprint =
covers all content starting &nbsp; &nbsp; &nbsp; ~</font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | =
&nbsp;at the Reserved field in the Outer Security Envelope Header =
&nbsp;|</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; | &nbsp;<b class=3D""><font =
color=3D"#ff2600" class=3D"">but excluding this =
fingerprint</font></b>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;|</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | Weak Nonce Local &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;| Weak Nonce Remote &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|</font></div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;=
 &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Remaining TIE Lifetime =
(all 1s in case of LIE) &nbsp; &nbsp; |</font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; TIE Origin Security Envelope =
Header:</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;TIE Origin &nbsp; |</font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TIE Origin Key ID &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;Fingerprint =
&nbsp;|</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; =
&nbsp;Length &nbsp; &nbsp; |</font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; ~ &nbsp;TIE Origin Security Fingerprint =
covers all content starting &nbsp;~</font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | &nbsp;at the TIE =
Origin Key ID field <b class=3D""><font color=3D"#ff2600" class=3D"">but =
excluding this fingerprint</font></b>|</font></div><div class=3D""><font =
face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
|</font></div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;=
 &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D""><br =
class=3D""></font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; Serialized RIFT Model =
Object</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; =
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; ~ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;Serialized RIFT Model Object &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ~</font></div><div =
class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; | =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; |</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">&nbsp; &nbsp; &nbsp; =
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</font></=
div><div class=3D""><br class=3D""></div><div class=3D"">PS 1: I know =
that the rift-magic and packet-nr fields are left out of the fingerprint =
coverege on purpose, so I left it that way.</div><div class=3D""><br =
class=3D""></div><div class=3D"">PS 2: I also updated the names have a =
clearer distinction between the two fingerprints.</div><div class=3D""><br=
 class=3D""></div><div class=3D"">=E2=80=94 =
Bruno</div></div></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_39A4AA1C-7307-4798-80D6-A541F3D5E9A4--


From nobody Sun Jul 21 05:59:41 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C2FBD1200B1 for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 05:59:39 -0700 (PDT)
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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 8elnDltvPZO6 for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 05:59:37 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 93E2F120020 for <rift@ietf.org>; Sun, 21 Jul 2019 05:59:37 -0700 (PDT)
Received: from pps.filterd (m0108162.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6LCxatD030812; Sun, 21 Jul 2019 05:59:36 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=I6uKJTx+UXPqVDztyffX/F6tuErCdCl7YUXoI7GDUiY=; b=jcbRSFYIVajAT6rcxYBdtfthM3wWSHxpEzzfNA2FFD3WrJRynHU3i1aH2I28D4BLurlt WfAoEFbJ2C0noxmcUMNLSGghpVYa2J6tRkkV/n1U4zKoLVsAUI8EXKpv891lb0Z5I5Sb US1+Sl5ciHlxhIA21R47Wtog3E3gKm9ggeI9apFKcOkOwHjTqdVZ3UVXKY+YfP4YNMXR ZgLktgXPMMH8gA+WZM3tDpRtRg2vxEE9Uo9K5gJ236sasJm/dJvXuZ4fgRutJfLnwOJT U0U95ww/L5Nm90JoF7VokMT4F6O86QTw2B6O2KDRJj/tX9lqEWb8O3BbJky/CapFDuW+ cw== 
Received: from nam04-bn3-obe.outbound.protection.outlook.com (mail-bn3nam04lp2058.outbound.protection.outlook.com [104.47.46.58]) by mx0b-00273201.pphosted.com with ESMTP id 2tvpa4r3pn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 21 Jul 2019 05:59:36 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fJyyJvSQ70/VPu+Wy8IFXXzGXnSkwZTq2/YMw/GIR1M4Ih6U3MlPsmBqEJkV/6OOuUajuTAWhQThCrBrqz1ZICU1qto8JW65baM0BCIDHJvvjJ2F/SKKGv7gfKZBw7yTFmkBz+IKkiEKuNaSFEVykoKHFL59g6ymXXovT6IZq8TS666RvJVHiLpnI5QvdM+bph7t1tLZJybFo6yfDQcahztRRJh+w2cwEq5oThoyqmx9Sj67+0zfiFI2UIT0PpD7cOkKcfz//yBczSfjHwzpq/2HTWfIOKULnVXWgvGM0iovq8gLgL8lrCj45Mydkrn+DTNFoG9h2s9EeG56YFWp3g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I6uKJTx+UXPqVDztyffX/F6tuErCdCl7YUXoI7GDUiY=; b=ZHrdiDCtnekTxJ8Of9sKBndFTx30AoMx0eaIjtFplM3mm+A3AZM8BPTT0myiOZPkpifm4KrXXATnz0l15H74+lqDD8FE5OPTH9nNpOOsjJtogROwM9egFEsIq3pJFxvz4+2fV7sXzCsACPKPqNfphmNWWOFDT9kPD40bS7CncD56ip4/mNMyv+fU85bojaNR+TflZr2E8dybd4p1W6OweTImvQqMsmZcCFKRcHJMqjTEJlbkdU3eI3bVF62mTNYbJYXkcBQ6FWyz91sWxGQAM33jq+HBgxVobqiBDo61IcmeeNymglcD3o6ygLQO3Ds98Ft8zsbkufHOTQMmO4yw1g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB3022.namprd05.prod.outlook.com (10.168.246.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2115.8; Sun, 21 Jul 2019 12:59:34 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2115.005; Sun, 21 Jul 2019 12:59:34 +0000
From: Antoni Przygienda <prz@juniper.net>
To: Bruno Rijsman <brunorijsman@gmail.com>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: Nitpicks on RIFT model
Thread-Index: AQHVPs/9GfnFIIHuBEqI+O6tXeyW0abUFIxJgAAGQvGAAL5ogIAAL9j6
Date: Sun, 21 Jul 2019 12:59:34 +0000
Message-ID: <MWHPR05MB3279069A2B268C16B31C32FFACC50@MWHPR05MB3279.namprd05.prod.outlook.com>
References: <5CD6BA3D-951D-4677-BA74-D11E198ADA95@gmail.com> <CY4PR05MB3271BC169D5D3DCA35CCD2BEACCA0@CY4PR05MB3271.namprd05.prod.outlook.com> <CY4PR05MB3271E00A28F622D24F383358ACCA0@CY4PR05MB3271.namprd05.prod.outlook.com>, <C086B82A-EFEF-40BE-8B17-4B92C1B3C86D@gmail.com>
In-Reply-To: <C086B82A-EFEF-40BE-8B17-4B92C1B3C86D@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [107.1.192.66]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: f26be3ee-a403-4e75-f18c-08d70ddb4781
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB3022; 
x-ms-traffictypediagnostic: MWHPR05MB3022:
x-microsoft-antispam-prvs: <MWHPR05MB30226D0E8F5863CA56A32C98ACC50@MWHPR05MB3022.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7219;
x-forefront-prvs: 0105DAA385
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(366004)(376002)(346002)(396003)(39860400002)(136003)(199004)(189003)(53546011)(6506007)(14454004)(2501003)(99286004)(2906002)(11346002)(446003)(102836004)(76176011)(19627405001)(7696005)(186003)(105004)(8676002)(476003)(68736007)(81156014)(26005)(8936002)(33656002)(3846002)(6116002)(561944003)(81166006)(316002)(3480700005)(110136005)(71200400001)(71190400001)(236005)(9686003)(54896002)(6246003)(53936002)(229853002)(55016002)(66066001)(76116006)(478600001)(66446008)(66476007)(66556008)(64756008)(66946007)(5660300002)(256004)(14444005)(52536014)(486006)(86362001)(74316002)(7736002)(25786009)(6436002); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB3022; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: LXCJUKe4HuVL+Jd5hLnApbfsbPy6NGfTwhe3SAvn6wS5HgvsuPGdYaNbnbPe+5UwvaW095d4zgsg1cOs0tY2B6DjMLnk/56mClpsR/HlZCk8cKnpwBeOTTvpMD2LmCL/C96Lu+h0yH/g526O4f7CXDQfyNDexJIjIKPcylcypoWcqq1v/1ZH80kvb/MZx/fL+p+GJgQ+Yq6rexQF50FWrbLL7AlvFsYbGOBOsrwYwwC9gYX/cZSHJc+uyiS6AdHcG8h5LcVtpSjmiD86fxNOfxW4KA5EXiAvCbz1a05TBUGkLrPOp16hEBWtg3s+jAT3LZneB2yYOhXJTYt7+f0i6M251Br8DSMwCNbWg33f8nKwv5KuMfYDqJt/20mCieo6vcIf6OotluTLGekd5XDvY02GNC1f7xoCL4oEzi3lhQQ=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB3279069A2B268C16B31C32FFACC50MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: f26be3ee-a403-4e75-f18c-08d70ddb4781
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jul 2019 12:59:34.3902 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3022
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-21_10:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907210157
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/zLAdooe5LirUOPva4N8WaZBbkYI>
Subject: Re: [Rift] Nitpicks on RIFT model
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Jul 2019 12:59:40 -0000

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

cc:'ing rift list in case anyone else likes to obsess a bit about it ;-)

yes, we can do that except I will still call things inner security key. I p=
refered to have one constant but yes, I was fudging one is u8 the other is =
u24 really so what you suggest is cleaner

--- tony
________________________________
From: Bruno Rijsman <brunorijsman@gmail.com>
Sent: Sunday, July 21, 2019 6:02 AM
To: Antoni Przygienda <prz@juniper.net>
Subject: Re: Nitpicks on RIFT model

At least in the model that I am looking at, there is no SecurityKeyID, ther=
e is only OuterSecurityID, InnerSecurityKeyID, and TIESecurityKeyID.

IMHO the following would be the most correct (note correct typing, names co=
nsistent with rest of draft, and more consistent underscore_naming vs Camel=
CaseNaming):

/** outer security key id (must be treated as unsigned) */
typedef i8 OuterSecurityKeyID

/** undefined outer security key id */
const OuterSecurityKeyID undefined_outer_security_key_id =3D 0;

/** TIE origin security key id (must be treated as unsigned) */
typedef i32 TIEOriginSecurityKeyID

/** undefined tie origin security key id */
const TIEOriginSecurityKeyID undefined_tie_origin_security_key_id =3D 0;

=97 Bruno

PS: For the sake of openness and letting the area directors know that discu=
ssion is happening, start CC=92ing the mailing list?

On Jul 21, 2019, at 12:41 AM, Antoni Przygienda <prz@juniper.net<mailto:prz=
@juniper.net>> wrote:

done, will be in -07, no version changes

I left in the SEcurtykeyid to suport the undefined_key constant which is im=
portant

--- tony

________________________________
From: Antoni Przygienda <prz@juniper.net<mailto:prz@juniper.net>>
Sent: Saturday, July 20, 2019 6:25 PM
To: Bruno Rijsman <brunorijsman@gmail.com<mailto:brunorijsman@gmail.com>>
Subject: Re: Nitpicks on RIFT model

aha, careful reading


  1.  ok, I'll clean up the types incl. unsigned
  2.  the keys have been added so you can check on top of the fabric whethe=
r the links have been secured and by which key. Now, I consider normal mode=
l would be for people to secure whole fabric and check that e.g. key roll-o=
vers worked that way but if one assumes e.g. the ToF can be compromised the=
n yes, it presents a risk to a degree. Your proposal otherwise? and yes, lo=
cal significance is clera, just like we flood local link IDs the outer key =
is local

________________________________
From: Bruno Rijsman <brunorijsman@gmail.com<mailto:brunorijsman@gmail.com>>
Sent: Saturday, July 20, 2019 3:51 AM
To: Antoni Przygienda <prz@juniper.net<mailto:prz@juniper.net>>
Subject: Nitpicks on RIFT model

Hey Tony,

I just noticed something new in draft-ietf-rift-rift-06 (relative to draft-=
ietf-rift-rift-05):

  /** outer security key id */
  typedef i8            OuterSecurityKeyID
  /** outer security key id */
  typedef i32           InnerSecurityKeyID
  /** security key id */
  typedef i32           TIESecurityKeyID

The InnerSecurityKeyID is not used anywhere else in the model, and should p=
robably be removed, since the concept of an inner key has been replaced by =
the concept of a TIE origin key.

The TIESecurityKeyID is not also used anywhere else in the mode. It should =
probably also be removed, but if it needs to be kept for some reason, the c=
omment should be updated (TIE origin security key id), the name should be u=
pdated (TIEOrigin instead of TIE for the sake of consistency) and the comme=
nt should mention it is unsigned 24 bits.

We should probably also explicitly mention that all the KeyID types should =
be treated as unsigned as well (since we do that in other places where inte=
gers should be treated as unsigned).

And a more subtle and much more nit-picky comment: adding OuterSecurityKeyI=
D to LinkIDPair is little bit dangerous because outer security key IDs coul=
d be locally significant (that is why 8 bits instead of 24 bits is enough).=
 So, if we flood that =93this link uses outer key id 17=94 over the entire =
network, then there is no guarantee that =93outer key id 17=94 means the sa=
me thing everything in the network: outer key id 17 could mean key =93this-=
is-top-secret=94 on one link, and the same outer key id 17 could mean key =
=93my-fantastic-password=94 on another node in the same network (at least h=
ypothetically - but we could say =93don=92t do that=94).

Question: why was OuterSecurityKeyID added to LinkIDPair in the fist place?=
 Just for easier debugging or something more than that?

=97 Bruno


--_000_MWHPR05MB3279069A2B268C16B31C32FFACC50MWHPR05MB3279namp_
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">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
cc:'ing rift list in case anyone else likes to obsess a bit about it ;-)<br=
>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
yes, we can do that except I will still call things inner security key. I p=
refered to have one constant but yes, I was fudging one is u8 the other is =
u24 really so what you suggest is cleaner
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
--- tony <br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Bruno Rijsman &lt;bru=
norijsman@gmail.com&gt;<br>
<b>Sent:</b> Sunday, July 21, 2019 6:02 AM<br>
<b>To:</b> Antoni Przygienda &lt;prz@juniper.net&gt;<br>
<b>Subject:</b> Re: Nitpicks on RIFT model</font>
<div>&nbsp;</div>
</div>
<div class=3D"" style=3D"word-wrap:break-word; line-break:after-white-space=
">
<div class=3D"">At least in the model that I am looking at, there is no Sec=
urityKeyID, there is only OuterSecurityID, InnerSecurityKeyID, and TIESecur=
ityKeyID.</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">IMHO the following would be the most correct (note correct =
typing, names consistent with rest of draft, and more consistent underscore=
_naming vs CamelCaseNaming):</div>
<div class=3D""><br class=3D"">
<div class=3D"">
<div class=3D""><font face=3D"Courier New" class=3D"">/** outer security ke=
y id (must be treated as unsigned) */</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">typedef i8 OuterSecur=
ityKeyID</font></div>
<div class=3D""><font face=3D"Courier New" class=3D""><br class=3D"">
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">/** undefined outer s=
ecurity key id */</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">const OuterSecurityKe=
yID undefined_outer_security_key_id =3D 0;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D""><br class=3D"">
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">/** TIE origin securi=
ty key id (must be treated as unsigned) */</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">typedef i32 TIEOrigin=
SecurityKeyID</font></div>
<div class=3D""><font face=3D"Courier New" class=3D""><br class=3D"">
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">/** undefined tie ori=
gin security key id */</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">const TIEOriginSecuri=
tyKeyID undefined_tie_origin_security_key_id =3D 0;</font></div>
<div class=3D""><br class=3D"">
</div>
</div>
<div class=3D"">=97 Bruno</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">PS: For the sake of openness and letting the area directors=
 know that discussion is happening, start CC=92ing the mailing list?</div>
<div class=3D"">
<div><br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">On Jul 21, 2019, at 12:41 AM, Antoni Przygienda &lt;<a href=
=3D"mailto:prz@juniper.net" class=3D"">prz@juniper.net</a>&gt; wrote:</div>
<br class=3D"x_Apple-interchange-newline">
<div class=3D"">
<div class=3D"" style=3D"font-style:normal; font-variant-caps:normal; font-=
weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; te=
xt-transform:none; white-space:normal; word-spacing:0px; text-decoration:no=
ne; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
done, will be in -07, no version changes</div>
<div class=3D"" style=3D"font-style:normal; font-variant-caps:normal; font-=
weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; te=
xt-transform:none; white-space:normal; word-spacing:0px; text-decoration:no=
ne; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<br class=3D"">
</div>
<div class=3D"" style=3D"font-style:normal; font-variant-caps:normal; font-=
weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; te=
xt-transform:none; white-space:normal; word-spacing:0px; text-decoration:no=
ne; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
I left in the SEcurtykeyid to suport the undefined_key constant which is im=
portant<span class=3D"x_Apple-converted-space">&nbsp;</span><br class=3D"">
</div>
<div class=3D"" style=3D"font-style:normal; font-variant-caps:normal; font-=
weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; te=
xt-transform:none; white-space:normal; word-spacing:0px; text-decoration:no=
ne; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<br class=3D"">
</div>
<div class=3D"" style=3D"font-style:normal; font-variant-caps:normal; font-=
weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; te=
xt-transform:none; white-space:normal; word-spacing:0px; text-decoration:no=
ne; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
--- tony<span class=3D"x_Apple-converted-space">&nbsp;</span><br class=3D""=
>
</div>
<div class=3D"" style=3D"font-style:normal; font-variant-caps:normal; font-=
weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; te=
xt-transform:none; white-space:normal; word-spacing:0px; text-decoration:no=
ne; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<br class=3D"">
</div>
<div id=3D"x_appendonsend" class=3D"" style=3D"font-family:Helvetica; font-=
size:12px; font-style:normal; font-variant-caps:normal; font-weight:normal;=
 letter-spacing:normal; text-align:start; text-indent:0px; text-transform:n=
one; white-space:normal; word-spacing:0px; text-decoration:none">
</div>
<hr tabindex=3D"-1" class=3D"" style=3D"font-family:Helvetica; font-size:12=
px; font-style:normal; font-variant-caps:normal; font-weight:normal; letter=
-spacing:normal; text-align:start; text-indent:0px; text-transform:none; wh=
ite-space:normal; word-spacing:0px; text-decoration:none; display:inline-bl=
ock; width:672.265625px">
<span class=3D"" style=3D"font-family:Helvetica; font-size:12px; font-style=
:normal; font-variant-caps:normal; font-weight:normal; letter-spacing:norma=
l; text-align:start; text-indent:0px; text-transform:none; white-space:norm=
al; word-spacing:0px; text-decoration:none; float:none; display:inline!impo=
rtant"></span>
<div id=3D"x_divRplyFwdMsg" dir=3D"ltr" class=3D"" style=3D"font-family:Hel=
vetica; font-size:12px; font-style:normal; font-variant-caps:normal; font-w=
eight:normal; letter-spacing:normal; text-align:start; text-indent:0px; tex=
t-transform:none; white-space:normal; word-spacing:0px; text-decoration:non=
e">
<font face=3D"Calibri, sans-serif" class=3D"" style=3D"font-size:11pt"><b c=
lass=3D"">From:</b><span class=3D"x_Apple-converted-space">&nbsp;</span>Ant=
oni Przygienda &lt;<a href=3D"mailto:prz@juniper.net" class=3D"">prz@junipe=
r.net</a>&gt;<br class=3D"">
<b class=3D"">Sent:</b><span class=3D"x_Apple-converted-space">&nbsp;</span=
>Saturday, July 20, 2019 6:25 PM<br class=3D"">
<b class=3D"">To:</b><span class=3D"x_Apple-converted-space">&nbsp;</span>B=
runo Rijsman &lt;<a href=3D"mailto:brunorijsman@gmail.com" class=3D"">bruno=
rijsman@gmail.com</a>&gt;<br class=3D"">
<b class=3D"">Subject:</b><span class=3D"x_Apple-converted-space">&nbsp;</s=
pan>Re: Nitpicks on RIFT model</font>
<div class=3D"">&nbsp;</div>
</div>
<div dir=3D"ltr" class=3D"" style=3D"font-family:Helvetica; font-size:12px;=
 font-style:normal; font-variant-caps:normal; font-weight:normal; letter-sp=
acing:normal; text-align:start; text-indent:0px; text-transform:none; white=
-space:normal; word-spacing:0px; text-decoration:none">
<div class=3D"" style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; fo=
nt-size:12pt">
aha, careful reading<span class=3D"x_Apple-converted-space">&nbsp;</span><b=
r class=3D"">
</div>
<div class=3D"" style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; fo=
nt-size:12pt">
<br class=3D"">
</div>
<div class=3D"" style=3D"font-family:Calibri,Arial,Helvetica,sans-serif; fo=
nt-size:12pt">
<ol class=3D"">
<li class=3D"">ok, I'll clean up the types incl. unsigned<span class=3D"x_A=
pple-converted-space">&nbsp;</span><br class=3D"">
</li><li class=3D"">the keys have been added so you can check on top of the=
 fabric whether the links have been secured and by which key. Now, I consid=
er normal model would be for people to secure whole fabric and check that e=
.g. key roll-overs worked that way but
 if one assumes e.g. the ToF can be compromised then yes, it presents a ris=
k to a degree. Your proposal otherwise? and yes, local significance is cler=
a, just like we flood local link IDs the outer key is local<br class=3D"">
</li></ol>
</div>
<div id=3D"x_x_appendonsend" class=3D""></div>
<hr tabindex=3D"-1" class=3D"" style=3D"display:inline-block; width:672.265=
625px">
<div id=3D"x_x_divRplyFwdMsg" dir=3D"ltr" class=3D""><font face=3D"Calibri,=
 sans-serif" class=3D"" style=3D"font-size:11pt"><b class=3D"">From:</b><sp=
an class=3D"x_Apple-converted-space">&nbsp;</span>Bruno Rijsman &lt;<a href=
=3D"mailto:brunorijsman@gmail.com" class=3D"">brunorijsman@gmail.com</a>&gt=
;<br class=3D"">
<b class=3D"">Sent:</b><span class=3D"x_Apple-converted-space">&nbsp;</span=
>Saturday, July 20, 2019 3:51 AM<br class=3D"">
<b class=3D"">To:</b><span class=3D"x_Apple-converted-space">&nbsp;</span>A=
ntoni Przygienda &lt;<a href=3D"mailto:prz@juniper.net" class=3D"">prz@juni=
per.net</a>&gt;<br class=3D"">
<b class=3D"">Subject:</b><span class=3D"x_Apple-converted-space">&nbsp;</s=
pan>Nitpicks on RIFT model</font>
<div class=3D"">&nbsp;</div>
</div>
<div class=3D"" style=3D"word-wrap:break-word; line-break:after-white-space=
">
<div class=3D"">Hey Tony,</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">I just noticed something new in draft-ietf-rift-rift-06 (re=
lative to draft-ietf-rift-rift-05):</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;<span class=3D"=
x_x_x_Apple-tab-span" style=3D"white-space:pre">
</span>/** outer security key id */<span class=3D"x_x_x_Apple-tab-span" sty=
le=3D"white-space:pre">
</span></font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;<span class=3D"=
x_x_x_Apple-tab-span" style=3D"white-space:pre">
</span>typedef i8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;OuterSecurityKey=
ID<span class=3D"x_x_x_Apple-tab-span" style=3D"white-space:pre">
</span></font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;<span class=3D"=
x_x_x_Apple-tab-span" style=3D"white-space:pre">
</span>/** outer security key id */<span class=3D"x_x_x_Apple-tab-span" sty=
le=3D"white-space:pre">
</span></font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp;<span class=3D"=
x_x_x_Apple-tab-span" style=3D"white-space:pre">
</span>typedef i32 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; InnerSecurityKeyID</f=
ont></div>
</div>
<div class=3D""><font face=3D"Courier New" class=3D"">
<div class=3D"">&nbsp;<span class=3D"x_x_x_Apple-tab-span" style=3D"white-s=
pace:pre"> </span>
/** security key id */<span class=3D"x_x_x_Apple-tab-span" style=3D"white-s=
pace:pre">
</span></div>
<div class=3D"">&nbsp;<span class=3D"x_x_x_Apple-tab-span" style=3D"white-s=
pace:pre"> </span>
typedef i32 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TIESecurityKeyID<span class=
=3D"x_x_x_Apple-tab-span" style=3D"white-space:pre">
</span></div>
</font></div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">The InnerSecurityKeyID is not used anywhere else in the mod=
el, and should probably be removed, since the concept of an inner key has b=
een replaced by the concept of a TIE origin key.</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">The TIESecurityKeyID is not also used anywhere else in the =
mode. It should probably also be removed, but if it needs to be kept for so=
me reason, the comment should be updated (TIE origin security key id), the =
name should be updated (TIEOrigin
 instead of TIE for the sake of consistency) and the comment should mention=
 it is unsigned 24 bits. &nbsp;</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">We should probably also explicitly mention that all the Key=
ID types should be treated as unsigned as well (since we do that in other p=
laces where integers should be treated as unsigned).</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">And a more subtle and much more nit-picky comment: adding O=
uterSecurityKeyID to LinkIDPair is little bit dangerous because outer secur=
ity key IDs could be locally significant (that is why 8 bits instead of 24 =
bits is enough). So, if we flood that
 =93this link uses outer key id 17=94 over the entire network, then there i=
s no guarantee that =93outer key id 17=94 means the same thing everything i=
n the network: outer key id 17 could mean key =93this-is-top-secret=94 on o=
ne link, and the same outer key id 17 could
 mean key =93my-fantastic-password=94 on another node in the same network (=
at least hypothetically - but we could say =93don=92t do that=94).</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Question: why was OuterSecurityKeyID added to LinkIDPair in=
 the fist place? Just for easier debugging or something more than that?</di=
v>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">=97 Bruno</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class=3D"">
</div>
</div>
</div>
</body>
</html>

--_000_MWHPR05MB3279069A2B268C16B31C32FFACC50MWHPR05MB3279namp_--


From nobody Sun Jul 21 07:22:52 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C50A9120176 for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 07:22:43 -0700 (PDT)
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, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 cPTbw6mDHg_m for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 07:22:41 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (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 05B911201D5 for <rift@ietf.org>; Sun, 21 Jul 2019 07:22:40 -0700 (PDT)
Received: from pps.filterd (m0108163.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6LEK3Zp027120; Sun, 21 Jul 2019 07:22:39 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=Z6yjKFDo2sPJhv33Eo2mdgG0YhtlJxHiibQbE6W6Ls0=; b=ok3Dl4ko5PZQmEfg9V9pZthtnFr+QvlE1Rlafyxy5tQ3RDLf2uXX9ZwwwoUdrScFx1lU tshpLPA93M4xWL1q03hQOH1nAK0aFF/rFsYpKMsFU+SIzySSntydrLPtpjYG5LLrggk6 7bAHdqkW7JPCo5rQ5yCn2uziGLvYFPnK+Nt8c/uFnuh8I3gL6bfytEwpzdVBDT9E0buo dBCpcXFi6N/kXWqG8oXYAXLDCjGyZhGoQXn+sqXXQOI65rzIROf0ofVuxibMDevc1SxD wtem3N3Afa4FcBBNMEuOhMNya20QfMZECCgIk7XFU+eoEHUC3M594EWP5N0eiy38mNg/ Lg== 
Received: from nam03-co1-obe.outbound.protection.outlook.com (mail-co1nam03lp2053.outbound.protection.outlook.com [104.47.40.53]) by mx0b-00273201.pphosted.com with ESMTP id 2tux6q1dpv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 21 Jul 2019 07:22:39 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WSZOnGGwSyc/37JL9RJe/d7IZ7NOGccK1LmKYHL0DvFLRsUDvjL7MLRg4SHaZEz/CGtcVNeuOMQC4sl1mSzlGNDZ7fEWTTwvRE7yGZPwAvBkON0Dy9RPtSeCDPyxh2vOsKdKzQ7I+V17AUB7X6I6xH7rW9jfjlxd0olBdxu82t4tUBAm6RcCSOEj41E8ePVMEdKIyCxLOnhE5EdL7TM4me+byDm4CtzrEUo+V0Tb4f1Hpxjfw1Dg8wAqpbt9KB/a7tUi9qp9LXEc+u/dWreKbAygban4KKZLrPD/KeiB0ko4TNDJQxzVbYOzbSIXhJ4JiQVGSxQEhAZzpad47KmT3w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z6yjKFDo2sPJhv33Eo2mdgG0YhtlJxHiibQbE6W6Ls0=; b=D4uznfp92b5u+wL9KliJK60No1Ps7Ye6zlhkFRmAGx/g+tn61eci/4v8hD9t/8Fr66CZJV+TYez2/nb8zQ9r2WSObYcNrH7+A1USig8Fqw2cBKwYrKpz8yxYFtSjyFzC+6iu8Isv7IK+NGv2E6oXxgnRTsHaL7N/iACt7XP3DNpgOCbaWCVu9FtEVcCwIS0DCbwN7Wck+LbdTJqNVcAJ2TUAhCmgrGEXH5uPSi2Xub+sF5zbWIAgZpDZG2M61HAShb6fmmC7D2rsX9eitjuQahIPeVHOJXojcpI+FfOmpHC8HHgBki1uRh2+wjlclMnnoGcGaNgwfWVFkOwgz7kJVw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from MWHPR05MB3279.namprd05.prod.outlook.com (10.173.229.20) by MWHPR05MB3087.namprd05.prod.outlook.com (10.173.235.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2094.8; Sun, 21 Jul 2019 14:22:35 +0000
Received: from MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0]) by MWHPR05MB3279.namprd05.prod.outlook.com ([fe80::37:4711:1630:3ff0%10]) with mapi id 15.20.2115.005; Sun, 21 Jul 2019 14:22:35 +0000
From: Antoni Przygienda <prz@juniper.net>
To: Bruno Rijsman <brunorijsman@gmail.com>, Tony Przygienda <tonysietf@gmail.com>
CC: "rift@ietf.org" <rift@ietf.org>
Thread-Topic: RIFT fingerprint coverage
Thread-Index: AQHVP6eYezbRLceY0U6gavGzd3xvM6bU4fWAgAA7aKE=
Date: Sun, 21 Jul 2019 14:22:35 +0000
Message-ID: <MWHPR05MB32795B106572C9AD42A30DCFACC50@MWHPR05MB3279.namprd05.prod.outlook.com>
References: <CF366357-79EA-4395-9024-09A371795695@gmail.com>, <F165CA6D-3537-4310-8453-77B069F69414@gmail.com>
In-Reply-To: <F165CA6D-3537-4310-8453-77B069F69414@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [66.129.241.11]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 6b77a8f7-5c8f-44d8-63d1-08d70de6e074
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:MWHPR05MB3087; 
x-ms-traffictypediagnostic: MWHPR05MB3087:
x-microsoft-antispam-prvs: <MWHPR05MB30878EBAEBCC7393952CD7A5ACC50@MWHPR05MB3087.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0105DAA385
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(39860400002)(136003)(396003)(366004)(376002)(346002)(189003)(199004)(53546011)(8676002)(66066001)(7696005)(8936002)(76176011)(81166006)(6506007)(52536014)(26005)(486006)(66556008)(74316002)(7116003)(236005)(102836004)(14444005)(14454004)(186003)(2906002)(316002)(66446008)(64756008)(66946007)(66476007)(6116002)(110136005)(76116006)(256004)(6436002)(3846002)(54896002)(11346002)(446003)(53936002)(71200400001)(81156014)(25786009)(476003)(9686003)(6246003)(229853002)(5660300002)(99286004)(7736002)(478600001)(19627405001)(105004)(55016002)(4326008)(86362001)(71190400001)(3480700005)(33656002)(68736007); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR05MB3087; H:MWHPR05MB3279.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: arFnJLa/D1tSfN5A5mx/rbGG01JeNiBYrn8a5QYBUyBLb2B5nGzi1S2BAm9XEAgfJ+DvdIgXEgrYaulPABsi5gga/oGS5hIQPqgFJvginBp/u7ndhkehWhIjOfi7Xn2DFFhcHdT7JO/haFWVM6PU2vD/nm0x8c+ttt0LdcBeg9ezeY1JufLz3+P9xd5q77wyjqQNQnRXGkh5kN00THHOkyMoEKD3fZOfAOLU5EOhKUkRCnUAmGfA6LMIGL7ZMdXAxRpUj/PfeSRx12cyHK7gX/rNd+ERijd3Dgqv6dITeUH9Hem+ueK57pimu+Vbnw0zwX74rz5mQU0OT35tLaLQbsD3PHKlg+EDRPyC5R3qFkhtjAZgeAyCNprYXg4Tur+XrfxFdOJZbYPGk8opqAthZxS8srpDYsGmTkfPDGBPDU4=
Content-Type: multipart/alternative; boundary="_000_MWHPR05MB32795B106572C9AD42A30DCFACC50MWHPR05MB3279namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 6b77a8f7-5c8f-44d8-63d1-08d70de6e074
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jul 2019 14:22:35.4378 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR05MB3087
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-21_11:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907210172
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/tIgr-4gzPdwzLIGNaR6Py8A2bOs>
Subject: Re: [Rift] RIFT fingerprint coverage
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Jul 2019 14:22:51 -0000

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

  1.  I don't like the change of inner security key name, we may one day pr=
otect something else than TIEs with it and on top it makes the naming less =
intuitive, the outer and inner works really well IMO
  2.  first, you can't extend the protection the way you like unless we hav=
e a complicated procedure where you protec with fingerprint 0, then you wri=
te fingerprint and on the other side you ahve to 0 out the fingerprint to c=
heck and so on. I wrote such code over protocols and it's very fragile.
  3.  second, even if we do I don't think we improve the attack envelope or=
 actually worsen it. Let's go through it
     *   major version is attacked, any change will drop the packet due to =
mismatch. if we protect it, we calculate the hash and it fails and outcome =
is the same modulo we can be computationally overrun
     *   outer key id is attacked/fingerprint length is attacked, all same =
outcome ...

now, you can argue that an attacker can modify stuff _behind_ the fingerpri=
nt and with that attack protocol computationally but there is no way around=
 that, we won't detect modification otherwise wheeras modifying major versi=
on/key id/fingerprint lenght basically leads to drops on any change and pro=
tecting them only exposes us computationally for no benefit

There is a very weird case where one could record version X, wait until pro=
tocol runs X+1 and having matched the nonces (age of the universe probably =
not enough to get all those conditions in place), modify packets recorded w=
ith X to major version X+1 and see whether the parser will croak. Given the=
 parser is model-based and we saw that it deals with the issue of umatching=
 models fine by omitting, filling in defaults etc even that is not really a=
 viable attack

--- tony
________________________________
From: Bruno Rijsman <brunorijsman@gmail.com>
Sent: Sunday, July 21, 2019 6:39 AM
To: Tony Przygienda <tonysietf@gmail.com>
Cc: rift@ietf.org <rift@ietf.org>
Subject: Re: RIFT fingerprint coverage

Fixing one important mistake in bold red below:


On Jul 21, 2019, at 11:35 AM, Bruno Rijsman <brunorijsman@gmail.com<mailto:=
brunorijsman@gmail.com>> wrote:

Hi Tony and others,

I just noticed that the RIFT fingerprints do not cover the key-id nor the f=
ingerprint-length nor the major-version.

This means that if an adversary changes the key-id, fingerprint-length, or =
major-version, it will not be detected by the fingerprint.

I cannot think of an immediate attack vector (maybe force a weaker algorith=
m by changing the key-id), but "it feels wrong".

I wonder whether we should expand the coverage of fingerprints slightly, as=
 shown below?

Note that AFAIK in OSPF (for example) the digest does cover the key-id and =
auth-data-len.

Suggested change:

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

      UDP Header:
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           Source Port         |       RIFT destination port   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           UDP Length          |        UDP Checksum           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Outer Security Envelope Header:
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |           RIFT MAGIC          |         Packet Number         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Reserved   |  RIFT Major   | Outer Key ID  |    Outer      |
      |               |    Version    |               | Fingerprint   |
      |               |               |               |    Length     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~  Outer Security Fingerprint covers all content starting       ~
      |  at the Reserved field in the Outer Security Envelope Header  |
      |  but excluding this fingerprint                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Weak Nonce Local              | Weak Nonce Remote             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |            Remaining TIE Lifetime (all 1s in case of LIE)     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      TIE Origin Security Envelope Header:
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                               |  TIE Origin   |
      |              TIE Origin Key ID                |  Fingerprint  |
      |                                               |    Length     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~  TIE Origin Security Fingerprint covers all content starting  ~
      |  at the TIE Origin Key ID field but excluding this fingerprint|
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Serialized RIFT Model Object
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      ~                Serialized RIFT Model Object                   ~
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

PS 1: I know that the rift-magic and packet-nr fields are left out of the f=
ingerprint coverege on purpose, so I left it that way.

PS 2: I also updated the names have a clearer distinction between the two f=
ingerprints.

=97 Bruno


--_000_MWHPR05MB32795B106572C9AD42A30DCFACC50MWHPR05MB3279namp_
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">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<ol>
<li>I don't like the change of inner security key name, we may one day prot=
ect something else than TIEs with it and on top it makes the naming less in=
tuitive, the outer and inner works really well IMO</li><li>first, you can't=
 extend the protection the way you like unless we have a complicated proced=
ure where you protec with fingerprint 0, then you write fingerprint and on =
the other side you ahve to 0 out the fingerprint to check and so on. I wrot=
e such code
 over protocols and it's very fragile. <br>
</li><li>second, even if we do I don't think we improve the attack envelope=
 or actually worsen it. Let's go through it&nbsp;</li><ol style=3D"list-sty=
le: outside none lower-alpha;">
<li>major version is attacked, any change will drop the packet due to misma=
tch. if we protect it, we calculate the hash and it fails and outcome is th=
e same modulo we can be computationally overrun
<br>
</li><li>outer key id is attacked/fingerprint length is attacked, all same =
outcome ...</li></ol>
</ol>
<div>now, you can argue that an attacker can modify stuff _behind_ the fing=
erprint and with that attack protocol computationally but there is no way a=
round that, we won't detect modification otherwise wheeras modifying major =
version/key id/fingerprint lenght
 basically leads to drops on any change and protecting them only exposes us=
 computationally for no benefit<br>
</div>
<div><br>
</div>
<div>There is a very weird case where one could record version X, wait unti=
l protocol runs X&#43;1 and having matched the nonces (age of the universe =
probably not enough to get all those conditions in place), modify packets r=
ecorded with X to major version X&#43;1
 and see whether the parser will croak. Given the parser is model-based and=
 we saw that it deals with the issue of umatching models fine by omitting, =
filling in defaults etc even that is not really a viable attack
<br>
</div>
<div><br>
</div>
<div>--- tony <br>
</div>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Bruno Rijsman &lt;bru=
norijsman@gmail.com&gt;<br>
<b>Sent:</b> Sunday, July 21, 2019 6:39 AM<br>
<b>To:</b> Tony Przygienda &lt;tonysietf@gmail.com&gt;<br>
<b>Cc:</b> rift@ietf.org &lt;rift@ietf.org&gt;<br>
<b>Subject:</b> Re: RIFT fingerprint coverage</font>
<div>&nbsp;</div>
</div>
<div class=3D"" style=3D"word-wrap:break-word; line-break:after-white-space=
">Fixing one important mistake in
<b class=3D""><font color=3D"#ff2600" class=3D"">bold red</font> </b>below:
<div class=3D""><br class=3D"">
<div><br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">On Jul 21, 2019, at 11:35 AM, Bruno Rijsman &lt;<a href=3D"=
mailto:brunorijsman@gmail.com" class=3D"">brunorijsman@gmail.com</a>&gt; wr=
ote:</div>
<br class=3D"x_Apple-interchange-newline">
<div class=3D"">
<div class=3D"" style=3D"word-wrap:break-word; line-break:after-white-space=
">
<div class=3D"">Hi Tony and others,</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">I just noticed that the RIFT fingerprints do not cover the =
key-id nor the fingerprint-length nor the major-version.</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">This means that if an adversary changes the key-id, fingerp=
rint-length, or major-version, it will not be detected by the fingerprint.<=
/div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">I cannot think of an immediate attack vector (maybe force a=
 weaker algorithm by changing the key-id), but &quot;it feels wrong&quot;.<=
/div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">I wonder whether we should expand the coverage of fingerpri=
nts slightly, as shown below?</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Note that AFAIK in OSPF (for example) the digest does cover=
 the key-id and auth-data-len.</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Suggested change:</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 &n=
bsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 &nbsp; &nbsp=
; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1</font=
></div>
<div class=3D""><font face=3D"Courier New" class=3D""><br class=3D"">
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
UDP Header:</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Source Port &nbsp; &nbsp; &nbsp; &nbsp=
; | &nbsp; &nbsp; &nbsp; RIFT destination port &nbsp; |</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; UDP Length &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp;UDP Checksum &nbsp; &nbsp; &nbsp; &nbsp=
; &nbsp; |</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D""><br class=3D"">
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
Outer Security Envelope Header:</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RIFT MAGIC &nbsp; &nbsp; &nbsp; &nbsp;=
 &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; Packet Number &nbsp; &nbsp; &nbsp; &nb=
sp; |</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp;Reserved &nbsp; | &nbsp;RIFT Major &nbsp; | Outer Key ID &nb=
sp;| &nbsp; &nbsp;Outer &nbsp; &nbsp; &nbsp;|</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp;Version &=
nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | Fingerprin=
t &nbsp; |</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbs=
p; | &nbsp; &nbsp;Length &nbsp; &nbsp; |</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</fon=
t></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
~ &nbsp;Outer Security Fingerprint covers all content starting &nbsp; &nbsp=
; &nbsp; ~</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp;at the Reserved field in the Outer Security Envelope Header &nbsp;|=
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp;<b class=3D""><font color=3D"#ff2600" class=3D"">but excluding this=
 fingerprint</font></b>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| Weak Nonce Local &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| Weak N=
once Remote &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Remaining TIE Lifetime (all 1s i=
n case of LIE) &nbsp; &nbsp; |</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D""><br class=3D"">
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
TIE Origin Security Envelope Header:</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; | &nbsp;TIE Origin &nbsp; |</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;TIE Origin Key ID &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp;Fingerprint &nbsp;|=
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; | &nbsp; &nbsp;Length &nbsp; &nbsp; |</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</fon=
t></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
~ &nbsp;TIE Origin Security Fingerprint covers all content starting &nbsp;~=
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp;at the TIE Origin Key ID field
<b class=3D""><font color=3D"#ff2600" class=3D"">but excluding this fingerp=
rint</font></b>|</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</fon=
t></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D""><br class=3D"">
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
Serialized RIFT Model Object</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</fon=
t></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
~ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Serialized RIFT Mo=
del Object &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ~=
</font></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |</fon=
t></div>
<div class=3D""><font face=3D"Courier New" class=3D"">&nbsp; &nbsp; &nbsp; =
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#4=
3;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-=
&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;-&#43;</font></div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">PS 1: I know that the rift-magic and packet-nr fields are l=
eft out of the fingerprint coverege on purpose, so I left it that way.</div=
>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">PS 2: I also updated the names have a clearer distinction b=
etween the two fingerprints.</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">=97 Bruno</div>
</div>
</div>
</blockquote>
</div>
<br class=3D"">
</div>
</div>
</body>
</html>

--_000_MWHPR05MB32795B106572C9AD42A30DCFACC50MWHPR05MB3279namp_--


From nobody Sun Jul 21 08:31:36 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CB39120020 for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 08:31:35 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 UXbbXYM8Q2Yy for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 08:31:33 -0700 (PDT)
Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) (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 143EF120019 for <rift@ietf.org>; Sun, 21 Jul 2019 08:31:33 -0700 (PDT)
Received: by mail-ed1-x530.google.com with SMTP id w20so38477355edd.2 for <rift@ietf.org>; Sun, 21 Jul 2019 08:31:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=/n5ROHILOp09XQezJE4Z6QtoBY0uBx/JnGFwytqKwz8=; b=Mz4ldHbIYapmQ/U94bMlUg7wwsDzww0uhZsL3WhgISrpNu1g7M8+9xuO0a6/Hgbel2 mUfd5EmbmXZHsUYJMvPUTTsWxYE/PIeFhUQkvV5928VIgKvdoDJlcin5PZv5Rh7mgvgQ 2cJqczmfXaU+ZgAdSWSscVfUptcO0rb+zXlhXRCH8EL/74sCAAgkFrrz8m+sNlvDrZt1 pGce2BkPHbjp7TyZtoEu6Ungz8N7GiasCKdMY6SlpbxU/zuo2JUgDD4DU8b/uCBMjw1R Z/JnO3NlRBzBkzkhMgv2ybqKfOh6B8J6W99li8Asz5tKa+3zxWGtrv6NtbwpsBv6CqWB hwbA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=/n5ROHILOp09XQezJE4Z6QtoBY0uBx/JnGFwytqKwz8=; b=FG4IFWfiyRTKlcpdhzK8nTBogric8TFq+hhnDtZGAGAYui2b6A3LgHbhD73grgm1/j l8DtY9kZQ/uIIrv98UFbtlBthWhYueQpJs6okWeYri2i0Qoz4dYYPxpBWkYeyvOzLNqQ cWXR81WrnzfUUbHhVkGvKWyhgUDXj+nZCs+12di9qjCMr0dISYjhChIOqmcolUM1vW1a HOYKZITSpjXMNDmJU2r2H/ZvAW4Lj9UmYP2O3I6UYPalgFE+zxLe4/RR2mNPS9Uaj0Oi zN9l49nsahsDmOSeFG3nlaqIzMTM/p92C/Q2Cf3mzq9ltAz+Lhy8u8JGF8sm61HEKhmi JHjg==
X-Gm-Message-State: APjAAAVtU2w/kUK6yDaDc5qpcEfk78G/b9y3tNVSKPntT7IJspykBxT6 VmIVmUWG5E/m7ESrD5fLHNs=
X-Google-Smtp-Source: APXvYqxboK2Hhiz92UWuuHvs8GCNr8RpmfE9tIwCif/9HfeHK0YVFg3+7Xb0+gNWk1oqKAND+p7gQg==
X-Received: by 2002:a17:906:7281:: with SMTP id b1mr50347276ejl.63.1563723091483;  Sun, 21 Jul 2019 08:31:31 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-48-174.ip.prioritytelecom.net. [213.127.48.174]) by smtp.gmail.com with ESMTPSA id b30sm10431406ede.88.2019.07.21.08.31.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Jul 2019 08:31:30 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <4B539684-6FB8-4EDA-9CC5-70099440684B@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_BE08B7AE-78F2-41CB-A4FC-C96C77437945"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sun, 21 Jul 2019 17:31:29 +0200
In-Reply-To: <MWHPR05MB32795B106572C9AD42A30DCFACC50@MWHPR05MB3279.namprd05.prod.outlook.com>
Cc: Tony Przygienda <tonysietf@gmail.com>, "rift@ietf.org" <rift@ietf.org>
To: Antoni Przygienda <prz@juniper.net>
References: <CF366357-79EA-4395-9024-09A371795695@gmail.com> <F165CA6D-3537-4310-8453-77B069F69414@gmail.com> <MWHPR05MB32795B106572C9AD42A30DCFACC50@MWHPR05MB3279.namprd05.prod.outlook.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/7qEmZX65NDZ6WP9r1PToMTUs7fU>
Subject: Re: [Rift] RIFT fingerprint coverage
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Jul 2019 15:31:35 -0000

--Apple-Mail=_BE08B7AE-78F2-41CB-A4FC-C96C77437945
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> I don't like the change of inner security key name, we may one day =
protect something else than TIEs with it and on top it makes the naming =
less intuitive, the outer and inner works really well IMO

I am perfectly fine with calling it inner security key instead of TIE =
origin security key.  Actually, I also like that better.

I only called it TIE origin security key because it is part of what is =
currently called (and AFAIK has always been called) the TIE Origin =
Security Envelope Header.  So, I was just trying to be consistent with =
what was already there.

Soooo=E2=80=A6. if we agree to call it inner security key then we should =
consistently call it inner security key / inner security key id / inner =
security fingerprint / inner security envelope header everywhere and =
purge any mention of TIE origin key / TIE origin key id / TIE origin =
security fingerprint / TIE origin security envelope header completely =
from the draft (and code for that matter, at least the CLI and yaml =
files).

Speaking of consistency: we should decide whether it is =E2=80=9Cinner =
key=E2=80=9D or =E2=80=9Cinner security key=E2=80=9D or =E2=80=9Cinner =
authentication key=E2=80=9D and be consistent about that as well.  In =
RIFT-Python followed your RIFT-Juniper example and used =
=E2=80=9Cauthentication key=E2=80=9D instead of just =E2=80=9Ckey=E2=80=9D=
 or =E2=80=9Csecurity key=E2=80=9D.

I propose we use the following going forward:

outer authentication key
outer authentication key id
outer authentication fingerprint
outer authentication envelope (or "outer authentication envelope =
header=E2=80=9D but that seems redundant)

inner authentication key
inner authentication key id
inner authentication fingerprint
inner authentication envelope (or =E2=80=9Cinner authentication envelope =
header=E2=80=9D but that seems redundant)

Final obsessive compulsive nitpick :-) :  in the Thrift data model we =
should be consistent in CamelCaseNamingStyle for types and =
underscore_naming_style for variables (for example: type =
InnerAuthenticationKeyID and constant =
invalid_inner_authentication_key_id).

=E2=80=94 Bruno



--Apple-Mail=_BE08B7AE-78F2-41CB-A4FC-C96C77437945
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><div =
dir=3D"auto" style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
line-break: after-white-space;" class=3D""><br class=3D""><div><blockquote=
 type=3D"cite" class=3D""><div class=3D""><div style=3D"font-style: =
normal; font-variant-caps: normal; font-weight: normal; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; font-family: Calibri, Arial, Helvetica, =
sans-serif; font-size: 12pt;" class=3D""><ol class=3D""><li class=3D"">I =
don't like the change of inner security key name, we may one day protect =
something else than TIEs with it and on top it makes the naming less =
intuitive, the outer and inner works really well =
IMO</li></ol></div></div></blockquote><br class=3D""></div><div>I am =
perfectly fine with calling it inner security key instead of TIE origin =
security key. &nbsp;Actually, I also like that better.</div><div><br =
class=3D""></div><div>I only called it TIE origin security key because =
it is part of what is currently called (and AFAIK has always been =
called) the TIE Origin Security Envelope Header. &nbsp;So, I was just =
trying to be consistent with what was already there.</div><div><br =
class=3D""></div><div>Soooo=E2=80=A6. if we agree to call it inner =
security key then we should consistently call it inner security key / =
inner security key id / inner security fingerprint / inner security =
envelope header everywhere and purge any mention of TIE origin key / TIE =
origin key id / TIE origin security fingerprint / TIE origin security =
envelope header completely from the draft (and code for that matter, at =
least the CLI and yaml files).</div><div><br =
class=3D""></div><div>Speaking of consistency: we should decide whether =
it is =E2=80=9Cinner key=E2=80=9D or =E2=80=9Cinner security key=E2=80=9D =
or =E2=80=9Cinner authentication key=E2=80=9D and be consistent about =
that as well. &nbsp;In RIFT-Python followed your RIFT-Juniper example =
and used =E2=80=9Cauthentication key=E2=80=9D instead of just =E2=80=9Ckey=
=E2=80=9D or =E2=80=9Csecurity key=E2=80=9D.</div><div><br =
class=3D""></div><div>I propose we use the following going =
forward:</div><div><br class=3D""></div><div>outer authentication =
key</div><div>outer authentication key id</div><div>outer authentication =
fingerprint</div><div>outer authentication envelope (or "outer =
authentication envelope header=E2=80=9D but that seems =
redundant)</div><div><br class=3D""></div><div>inner authentication =
key</div><div>inner authentication key id</div><div>inner authentication =
fingerprint</div><div><div><div><div>inner authentication envelope (or =
=E2=80=9Cinner authentication envelope header=E2=80=9D but that seems =
redundant)</div><div><br class=3D""></div><div><div>Final obsessive =
compulsive nitpick :-) : &nbsp;in the Thrift data model we should be =
consistent in CamelCaseNamingStyle for types and underscore_naming_style =
for variables (for example: type InnerAuthenticationKeyID and constant =
invalid_inner_authentication_key_id).</div><div><br =
class=3D""></div><div>=E2=80=94 Bruno</div><div><br =
class=3D""></div></div></div></div><div><br =
class=3D""></div></div></div></body></html>=

--Apple-Mail=_BE08B7AE-78F2-41CB-A4FC-C96C77437945--


From nobody Sun Jul 21 08:52:24 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F02371201AA for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 08:52:19 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 4ESN0K9Ae1ih for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 08:52:18 -0700 (PDT)
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) (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 BAA61120157 for <rift@ietf.org>; Sun, 21 Jul 2019 08:52:17 -0700 (PDT)
Received: by mail-ed1-x52b.google.com with SMTP id w13so38554181eds.4 for <rift@ietf.org>; Sun, 21 Jul 2019 08:52:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=SKPhCwH1FVm2j25iDYUcBl81bs3yvEvI64IVDI9cG6c=; b=FLo+a1JErLizqYMHIN/DtT3Xq80EOafwLyheQn4xI52bSM8OiEQ3yWvxzvqag78Da+ cCJUZ3XUNPXCabWuKnX468HfPHe5WESTkCuLfynhQLAyP5o+gvqM3qtYoMC5z1tG6gjJ xKBJkLVF78RHsX0hubWjNz/hxBzMSFINJEEckxUYVx0QroDrz9ACxqtUa12d2iyl7x8G yBIRXIn3WV/dvkqjJv9tQrpGIuysPKQNzu5Yta4ROjCY4nQsxJcTd275HeSqT0UbcoMQ wq5ftzsSK4eAaPIo5f4aUBK5VLdbMi3b17bvbs1VBRwoEmlmUdy+cSi3tSUmCKpOYDJ0 hAzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=SKPhCwH1FVm2j25iDYUcBl81bs3yvEvI64IVDI9cG6c=; b=gD+LYdXGwWEHsvZKZgu+WKHvmFiyuwn8kIga3TzbocCmCwRr8XwkyfRXc2sEjJedsM 50HKEZGo5M5EyQOHL0psnT8WUaFcm1tuuU1lMarIM46sj0SXjCJbJ+GFzbqJDDNlPgzA a/lGd9PYWmijM390vbq9Tzs5JpZiStpJnqBqbou0/lkfVc76StQk7G+wnVvos23UobTo Xv+bv/xTanAU3ax+1WOLB/dwwN10M1FelwRRTVKLIojCaK01DN8Xct0v4R7+jZLsVPK3 yuSSgI7gZFNaThyW3dBWmABq+27IO+KbwFNHEgYjgnes9fk4uj+NBPMen9JzXD6TM6R0 JqHw==
X-Gm-Message-State: APjAAAVaKOwrsKO6lvi7ahSQ42bGUoqIpS1xND3C91LSYPTH+0O8Bc6l nY39L0qRQQJDA+ban9tVEqpk+qMBmbU=
X-Google-Smtp-Source: APXvYqwg/bFDIfWmd0GhLWInswU3p48GX+FjmrF0kqsAjfep3dJo3EeW96P5L2kbyX2Aiq3/Rg7/0g==
X-Received: by 2002:a17:906:2b47:: with SMTP id b7mr49283006ejg.117.1563724336236;  Sun, 21 Jul 2019 08:52:16 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-48-174.ip.prioritytelecom.net. [213.127.48.174]) by smtp.gmail.com with ESMTPSA id o21sm9970711edt.26.2019.07.21.08.52.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Jul 2019 08:52:15 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <6FC83580-E58B-4F6D-96B7-F420A8164C0C@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4E77DA6A-6469-473A-989B-8EA838F2E3BE"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sun, 21 Jul 2019 17:52:13 +0200
In-Reply-To: <MWHPR05MB32795B106572C9AD42A30DCFACC50@MWHPR05MB3279.namprd05.prod.outlook.com>
Cc: Tony Przygienda <tonysietf@gmail.com>, "rift@ietf.org" <rift@ietf.org>
To: Antoni Przygienda <prz@juniper.net>
References: <CF366357-79EA-4395-9024-09A371795695@gmail.com> <F165CA6D-3537-4310-8453-77B069F69414@gmail.com> <MWHPR05MB32795B106572C9AD42A30DCFACC50@MWHPR05MB3279.namprd05.prod.outlook.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/Vzwhe2XfKHNVRHFgF-sBxd-81Bs>
Subject: Re: [Rift] RIFT fingerprint coverage
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Jul 2019 15:52:23 -0000

--Apple-Mail=_4E77DA6A-6469-473A-989B-8EA838F2E3BE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


> On Jul 21, 2019, at 4:22 PM, Antoni Przygienda <prz@juniper.net> =
wrote:

> 2. first, you can't extend the protection the way you like unless we =
have a complicated procedure where you protec with fingerprint 0, then =
you write fingerprint and on the other side you ahve to 0 out the =
fingerprint to check and so on. I wrote such code over protocols and =
it's very fragile.=20


I think we should focus on whether it is a security issue or not (which =
was #3 of your response) rather than whether the implementation is =
difficult or not.

That said, the implementation is actually quite trivial and not fragile.=20=


Every signing library that I ever worked with has an update method that =
allows you to incrementally compute a digest.

Python provides hmac.update() and hashlib.update(). Rust provides =
hmac.input().

Python example:

import hmac
packet =3D b'Just imagine for a second that this is a protocol packet.'
signer =3D hmac.new(key=3Db'top-secret', digestmod=3D'sha256')
signer.update(packet[5:10])  # Digest over bytes 5-10
signer.update(packet[15:20]) # and also bytes 15-20
signer.update(packet[25:30]) # and also bytes 25-30
print(signer.digest())

You can use this feature to make re-computing the outer fingerprint for =
TIEs that are stored in the TIE database much cheaper, knowing that you =
have already computed (and saved the signer for) the inner fingerprint.=

--Apple-Mail=_4E77DA6A-6469-473A-989B-8EA838F2E3BE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><br =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">On =
Jul 21, 2019, at 4:22 PM, Antoni Przygienda &lt;<a =
href=3D"mailto:prz@juniper.net" class=3D"">prz@juniper.net</a>&gt; =
wrote:</div></blockquote><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D""><span style=3D"font-family: Calibri, Arial, =
Helvetica, sans-serif; font-size: 16px;" class=3D"">2. first, you can't =
extend the protection the way you like unless we have a complicated =
procedure where you protec with fingerprint 0, then you write =
fingerprint and on the other side you ahve to 0 out the fingerprint to =
check and so on. I wrote such code over protocols and it's very =
fragile.</span>&nbsp;</div></blockquote></div><div class=3D""><br =
class=3D""></div><div class=3D"">I think we should focus on whether it =
is a security issue or not (which was #3 of your response) rather than =
whether the implementation is difficult or not.</div><div class=3D""><br =
class=3D""></div><div class=3D"">That said, the implementation is =
actually quite trivial and not fragile.&nbsp;</div><div class=3D""><br =
class=3D""></div><div class=3D"">Every signing library that I ever =
worked with has an update method that allows you to incrementally =
compute a digest.</div><div class=3D""><br class=3D""></div><div =
class=3D"">Python provides hmac.update() and hashlib.update(). Rust =
provides hmac.input().</div><div class=3D""><br class=3D""></div><div =
class=3D"">Python example:</div><div class=3D""><br class=3D""></div><div =
class=3D""><font face=3D"Courier New" class=3D"">import =
hmac</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">packet =3D b'Just imagine for a second that this is a =
protocol packet.'</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">signer =3D hmac.new(key=3Db'top-secret', =
digestmod=3D'sha256')</font></div><div class=3D""><font face=3D"Courier =
New" class=3D"">signer.update(packet[5:10]) &nbsp;# Digest over bytes =
5-10</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">signer.update(packet[15:20]) # and also bytes =
15-20</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">signer.update(packet[25:30]) # and also bytes =
25-30</font></div><div class=3D""><font face=3D"Courier New" =
class=3D"">print(signer.digest())</font></div><div class=3D""><br =
class=3D""></div><div class=3D"">You can use this feature to make =
re-computing the outer fingerprint for TIEs that are stored in the TIE =
database <i class=3D"">much</i> cheaper, knowing that you have already =
computed (and saved the signer for) the inner =
fingerprint.</div></body></html>=

--Apple-Mail=_4E77DA6A-6469-473A-989B-8EA838F2E3BE--


From nobody Sun Jul 21 09:04:07 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 06B5F1200B6 for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 09:04:05 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 j6mt4gPtVBXF for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 09:04:03 -0700 (PDT)
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) (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 EAB60120075 for <rift@ietf.org>; Sun, 21 Jul 2019 09:04:02 -0700 (PDT)
Received: by mail-ed1-x533.google.com with SMTP id i11so38545157edq.0 for <rift@ietf.org>; Sun, 21 Jul 2019 09:04:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=RvVeD+9LkElmFaZ3VpU0gkQmZGSN9PFFexetzJMsE8I=; b=mwWUFagx/LE/qptDb523v9oiQcg/51u6n0soOWeeiBh+x/pM6FePAx7l8L8joF1mvt lTbR0AFKCeMCfY9SM7dbVQoNP8BFzuR/S7DxORVzsv0nr1K6rU4wAzw6wnANH5sSdF6G 1Hn2mM/P6SgyrFs2CIimHShpK0ROC5Phl86MH06egZsA+8jLbAza7EhIpZqTlEFeqJ52 0uw7lPtzvDCLg+0gjP8XvxKea2gD0Sd8FBdI9J+WtXzhn11ggdBoHPoK4g5xoSmkRZ9j eTeIJD6zhF49IEw08Im2fdd+Xo6Mc5VHc+OOVXWGqz5ofPVjMV6UbOrHoveZwR+pRfHy znMA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=RvVeD+9LkElmFaZ3VpU0gkQmZGSN9PFFexetzJMsE8I=; b=GA7eOIahOlZv4tHFyMI8XIz5/1BkWbX2qqwwPFlsHEMmTJzRMqXuNtnZb8crEEHjBb TJOvtH0DlFwTlrUIYZzaeNZ7uNLUD3QBQAClRdv9BZhKM5z/FEzCjSsZ+JLhXM0vIAvo cEgKiZZ0yUqTGFltnMQ/UTsGsKK58lcbReaSXkAZbXmWIEzIko+7t7mC9QXyxSdTo23t Uv0Ouq8s7KgyZu6SowqthNt2FY8hU7QzaMVbh2nHBQfedPKMCgBClZUOYohjBsyOp1dR +KCP8YfJEDRtllPJSCY0HOf+PRyelpksegaauB/Vh0KQoGzlPIV16fXgi81RTbYqUTmh A2fQ==
X-Gm-Message-State: APjAAAXzRAJzdZQc++FP4AIGnIWbHysJZx6EfMsNnofuHYDl6xdEKrEP Jx4YwuaG6gsVbKjYM5bhlS0=
X-Google-Smtp-Source: APXvYqwrK8fZ8t7c4TbkiH523A1I9IpvGU34kl8ylM1qpmK49fEuVTT5L31tFK+lV7bLQc+8X/vCPw==
X-Received: by 2002:a17:907:2091:: with SMTP id pv17mr49553225ejb.152.1563725041315;  Sun, 21 Jul 2019 09:04:01 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-48-174.ip.prioritytelecom.net. [213.127.48.174]) by smtp.gmail.com with ESMTPSA id o18sm10157723edq.18.2019.07.21.09.04.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 21 Jul 2019 09:04:00 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <55967EF3-3612-4173-80AB-44AB530FB338@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_BEBC2FDB-9797-41B2-8BD0-3478C4241830"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sun, 21 Jul 2019 18:03:59 +0200
In-Reply-To: <MWHPR05MB32795B106572C9AD42A30DCFACC50@MWHPR05MB3279.namprd05.prod.outlook.com>
Cc: Tony Przygienda <tonysietf@gmail.com>, "rift@ietf.org" <rift@ietf.org>
To: Antoni Przygienda <prz@juniper.net>
References: <CF366357-79EA-4395-9024-09A371795695@gmail.com> <F165CA6D-3537-4310-8453-77B069F69414@gmail.com> <MWHPR05MB32795B106572C9AD42A30DCFACC50@MWHPR05MB3279.namprd05.prod.outlook.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/BcMLB1wqszg0OL7ABepSlOdeRmM>
Subject: Re: [Rift] RIFT fingerprint coverage
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Jul 2019 16:04:05 -0000

--Apple-Mail=_BEBC2FDB-9797-41B2-8BD0-3478C4241830
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8



> On Jul 21, 2019, at 4:22 PM, Antoni Przygienda <prz@juniper.net> =
wrote:


> 3. second, even if we do I don't think we improve the attack envelope =
or actually worsen it. Let's go through it=20
> major version is attacked, any change will drop the packet due to =
mismatch. if we protect it, we calculate the hash and it fails and =
outcome is the same modulo we can be computationally overrun=20
> outer key id is attacked/fingerprint length is attacked, all same =
outcome ...
> now, you can argue that an attacker can modify stuff _behind_ the =
fingerprint and with that attack protocol computationally but there is =
no way around that, we won't detect modification otherwise wheeras =
modifying major version/key id/fingerprint lenght basically leads to =
drops on any change and protecting them only exposes us computationally =
for no benefit

The receiving RIFT router can drop packets with the wrong major version, =
with a wrong key-id (not in the accept key set), or a wrong =
fingerprint-length, without validating the fingerprint first.

This is for the same reason that a RIFT router can drop a packet with an =
out-of-range weak-nonce without validating the fingerprint first.

In general, it is safe to reject a packet when any field has some =
unacceptable value without validating the fingerprint first.

So, protecting these additional fields does not open up any new CPU =
denial of service attacks.

If a RIFT router is planning to accept a packet because all fields have =
an acceptable value, then it must validate the fingerprint first before =
doing so.

Or if a RIFT router is going to reject a packet but take some protocol =
action based on some field in that rejected packet anyway, then it would =
have to validate the fingerprint as well (happily, which currently =
don=E2=80=99t have this scenario in RIFT, as long as the packet-nr is =
truly only used for debugging and not for flow-control, for example).

So, the real question is: how sure are you that leaving the =
major-version, key-id, and fingerprint-lengths fields unprotected will =
not lead to some problems down the road?  (To quote Dirty Harry: =E2=80=9C=
Do you feel lucky? Well, do ya, punk? :-)

=E2=80=94 Bruno


--Apple-Mail=_BEBC2FDB-9797-41B2-8BD0-3478C4241830
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><br =
class=3D""><div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Jul 21, 2019, at 4:22 PM, Antoni Przygienda &lt;<a =
href=3D"mailto:prz@juniper.net" class=3D"">prz@juniper.net</a>&gt; =
wrote:</div></blockquote><div><br class=3D""></div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><span =
style=3D"font-size: 12pt; font-family: Calibri, Arial, Helvetica, =
sans-serif;" class=3D"">3. second, even if we do I don't think we =
improve the attack envelope or actually worsen it. Let's go through =
it&nbsp;</span></div><div class=3D""><div style=3D"font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; font-family: Calibri, Arial, Helvetica, =
sans-serif; font-size: 12pt;" class=3D""><ol class=3D""><ol class=3D""><li=
 class=3D"">major version is attacked, any change will drop the packet =
due to mismatch. if we protect it, we calculate the hash and it fails =
and outcome is the same modulo we can be computationally overrun<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""></li><li =
class=3D"">outer key id is attacked/fingerprint length is attacked, all =
same outcome ...</li></ol></ol><div class=3D"">now, you can argue that =
an attacker can modify stuff _behind_ the fingerprint and with that =
attack protocol computationally but there is no way around that, we =
won't detect modification otherwise wheeras modifying major version/key =
id/fingerprint lenght basically leads to drops on any change and =
protecting them only exposes us computationally for no benefit<br =
class=3D""></div></div></div></blockquote><br class=3D""></div><div>The =
receiving RIFT router can drop packets with the wrong major version, =
with a wrong key-id (not in the accept key set), or a wrong =
fingerprint-length, <b class=3D"">without</b>&nbsp;validating the =
fingerprint first.</div><div><br class=3D""></div><div>This is for the =
same reason that a RIFT router can drop a packet with an out-of-range =
weak-nonce <b class=3D"">without</b> validating the fingerprint =
first.</div><div><br class=3D""></div><div><div>In general, it is safe =
to reject a packet when any field has some unacceptable value <b =
class=3D"">without</b>&nbsp;validating the fingerprint =
first.</div></div><div><br class=3D""></div><div><div>So, protecting =
these additional fields does not open up any new CPU denial of service =
attacks.</div><div class=3D""><br class=3D""></div></div><div><div>If a =
RIFT router is planning to accept a packet because all fields have an =
acceptable value, then it must validate the fingerprint first before =
doing so.</div><div><br class=3D""></div><div>Or if a RIFT router is =
going to reject a packet but take some protocol action based on some =
field in that rejected packet anyway, then it would have to validate the =
fingerprint as well (happily, which currently don=E2=80=99t have this =
scenario in RIFT, as long as the packet-nr is truly only used for =
debugging and not for flow-control, for example).</div><div class=3D""><br=
 class=3D""></div></div><div>So, the real question is: how sure are you =
that leaving the major-version, key-id, and fingerprint-lengths fields =
unprotected will not lead to some problems down the road? &nbsp;(To =
quote Dirty Harry: =E2=80=9CDo you feel lucky? Well, do ya, punk? =
:-)</div><div><br class=3D""></div><div>=E2=80=94 Bruno</div><br =
class=3D""></body></html>=

--Apple-Mail=_BEBC2FDB-9797-41B2-8BD0-3478C4241830--


From nobody Sun Jul 21 20:30:18 2019
Return-Path: <prz@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 74EE81201DC for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 20:30:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level: 
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net
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 UuiGsjHpm1X6 for <rift@ietfa.amsl.com>; Sun, 21 Jul 2019 20:30:13 -0700 (PDT)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 E31BD1201D5 for <rift@ietf.org>; Sun, 21 Jul 2019 20:30:12 -0700 (PDT)
Received: from pps.filterd (m0108156.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x6M3TkcY024784; Sun, 21 Jul 2019 20:30:12 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=jItJZosCbeLlWyFrm4Hbw1xxkOC0Rm5QMOCEOFFoTmo=; b=oSqVFjaf7ZSco9aZaeEuXBRv0ngGJQ4LNCyfVSk1B1JrS5/14eSzoA5Z873s3pYV3hzn tQSWDJHf/ZnlL5mprHnLvg21sTTKcqzHajPBrk9tLtHJp5+jgbE1ZtOq0wYLyJ1y3LN2 WaVOxVqoJwmh8rpue29iUJIa7dYcwF5VgZiKI2S/bb01D6GKhuxRvxsctl5ulldRYsqZ UFCKZOrQKpChxmAgVyvnmueHMZ+j/MaS5DoyglhT/8jTAlK16jXbJX+ctu2oqKm2jNvg z8GviWYEgoFTP1Kvk5pXzuwWyl1PkOtTsNRPxm3iC7pPxkLz/Dlz+nCsXPGRkSptnqeA Ag== 
Received: from nam01-by2-obe.outbound.protection.outlook.com (mail-by2nam01lp2052.outbound.protection.outlook.com [104.47.34.52]) by mx0a-00273201.pphosted.com with ESMTP id 2tvvb2gfn7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 21 Jul 2019 20:30:11 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CKKMRVOI+tzjgH9Lp8UnLAJbd0p7DL2RB3yLkpLJZXiOflSEs2537sbbjd66GhNiL7GG8NEISUiZZjpJ5EX3Lm/x7+be0ywsdeQYnhkcJFtDIuooWKSokEKvETk+WH7TjXZAtLI74nHMSycnEl71Tb/7ynA68rhNYcFOOI8og6IJRkZLj0TnObQmCGDABlS6+iSqgvS7wUoGFijnIbB5OxGCQPBo4/G+fvlZZlWNmtwHbI4Zvj46p4o8GAex4gDPRO09fctHhaBz+lkOQJBLVXSMBMiOBaQMoVuSVpGG6gX+5QtLwEcfbvw2Z2UPmNOSJdHIGSYVEeNnF0oq0E5LKA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jItJZosCbeLlWyFrm4Hbw1xxkOC0Rm5QMOCEOFFoTmo=; b=QfUgCICOJZuEAvizw+bivPOZ243bVhORBCZPjoyim+KceAgz6c5xV0DAvpqr8JR/Z5oc9IVY0TWOzCSWtOKhvBpYsXPsXlsM+59KG7TjulzbEcUOqc8YjweuTyptkpcxjPbJ3mVgMq7JpIXEHLWwgaR/ul0UOuUmtnGb2DSe49gZUlZZuXXzEh3MaE4OBO2qtYwKH1G/T15iqqqyW9Ab1j3faTFUWZbS4y5YvnS6t9CcswR6DQY2BAkf/ED1DHQJWriPcQs74I+Gcn/a9tlkFjw7MyIWJkoTqppJ/ygXyKkKrR/e5LWNKqWZ4Nyhy6oW3Gq+22GR4rG045ardIyk3Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=juniper.net;dmarc=pass action=none header.from=juniper.net;dkim=pass header.d=juniper.net;arc=none
Received: from SN6PR05MB5613.namprd05.prod.outlook.com (52.135.109.221) by SN6PR05MB4302.namprd05.prod.outlook.com (52.135.73.29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2115.10; Mon, 22 Jul 2019 03:30:10 +0000
Received: from SN6PR05MB5613.namprd05.prod.outlook.com ([fe80::b46a:d1e7:df44:c60a]) by SN6PR05MB5613.namprd05.prod.outlook.com ([fe80::b46a:d1e7:df44:c60a%7]) with mapi id 15.20.2115.005; Mon, 22 Jul 2019 03:30:10 +0000
From: Antoni Przygienda <prz@juniper.net>
To: Bruno Rijsman <brunorijsman@gmail.com>
CC: Tony Przygienda <tonysietf@gmail.com>, "rift@ietf.org" <rift@ietf.org>
Thread-Topic: RIFT fingerprint coverage
Thread-Index: AQHVP6eYezbRLceY0U6gavGzd3xvM6bU4fWAgAA7aKGAAB8jgIAAu+1s
Date: Mon, 22 Jul 2019 03:30:09 +0000
Message-ID: <SN6PR05MB5613CD53440AF7F6BD32D4D7ACC40@SN6PR05MB5613.namprd05.prod.outlook.com>
References: <CF366357-79EA-4395-9024-09A371795695@gmail.com> <F165CA6D-3537-4310-8453-77B069F69414@gmail.com> <MWHPR05MB32795B106572C9AD42A30DCFACC50@MWHPR05MB3279.namprd05.prod.outlook.com>, <55967EF3-3612-4173-80AB-44AB530FB338@gmail.com>
In-Reply-To: <55967EF3-3612-4173-80AB-44AB530FB338@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [193.110.49.11]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: eaf2b2c2-f11f-4d8e-18e4-08d70e54e655
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:SN6PR05MB4302; 
x-ms-traffictypediagnostic: SN6PR05MB4302:
x-microsoft-antispam-prvs: <SN6PR05MB43025E34871BCEEF0A51AB36ACC40@SN6PR05MB4302.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 01068D0A20
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(39850400004)(396003)(366004)(136003)(376002)(346002)(199004)(189003)(52314003)(33656002)(6916009)(99286004)(53546011)(6506007)(14444005)(256004)(76176011)(105004)(2906002)(53936002)(6246003)(316002)(486006)(54906003)(14454004)(19627405001)(26005)(229853002)(81156014)(81166006)(186003)(8936002)(8676002)(102836004)(7696005)(478600001)(25786009)(4326008)(236005)(6436002)(74316002)(86362001)(66476007)(66556008)(64756008)(66446008)(66574012)(66066001)(446003)(5660300002)(7116003)(52536014)(476003)(3480700005)(71190400001)(71200400001)(9686003)(6116002)(68736007)(54896002)(1411001)(55016002)(7736002)(3846002)(11346002)(76116006)(91956017)(66946007); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR05MB4302; H:SN6PR05MB5613.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 0k3C4MNXJ+y+0Sl9ieb8HyoOPqdohpJT/32UJa1FRFoc3//O6dL4x4XhdTkR3D3hQLXfMXs0wc8Bu/s5Vibfcdz2d6/cLVV5pHjYdkijsq1hiP+VKYvfLDdFj7zJHBsISh7uJN2fujI5PtxmF5dTh3c4tlLP21JSUlpuQaYPOIe6EPnMr0faT2v7nDUHUxGJsQ5SP4H2Oop+RHnnfv0n//M7Ql7Xdkn17R3vffnEK0GBgQmbIIuYkuT4BVlc9I/NSOSz3LXWSPexvJr2uhSCrP3jnVPzpDCZX8B7SQglBpkUlihSVKn5N02wg0BSGWw0VH4E+NkHZUt3YQVtU8rdN4j/v/U3acCfEb/LDxr/AwZA9zO7+LFUP9sERYhVqVRt5psO2IYeEZS59pA5gdmUlltG37JGm8ceazAy0Iveoew=
Content-Type: multipart/alternative; boundary="_000_SN6PR05MB5613CD53440AF7F6BD32D4D7ACC40SN6PR05MB5613namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: eaf2b2c2-f11f-4d8e-18e4-08d70e54e655
X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2019 03:30:09.9103 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: prz@juniper.net
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR05MB4302
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-07-22_03:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907220040
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/5w1JeXCCtBG7K6e0oJYAw6B9dAU>
Subject: Re: [Rift] RIFT fingerprint coverage
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Jul 2019 03:30:16 -0000

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

So dropping the "burden of proof" logical fallacy @ the end ;-) the only ef=
fect right now is to increase the difficulty of the implementation without =
a known attack if you access those fields without checking fingerprint firs=
t anyway. I can only imagine a very far fetched attack where someone is rec=
ording another version, matching up nonces and then wait for a major protoc=
ol version change and change version on old recordings to attack. Again, mo=
st likely as likely as age of universe to happen ;-)

Looking for more opinions ...

--- tony


________________________________
From: Bruno Rijsman <brunorijsman@gmail.com>
Sent: Sunday, July 21, 2019 12:03 PM
To: Antoni Przygienda <prz@juniper.net>
Cc: Tony Przygienda <tonysietf@gmail.com>; rift@ietf.org <rift@ietf.org>
Subject: Re: RIFT fingerprint coverage



On Jul 21, 2019, at 4:22 PM, Antoni Przygienda <prz@juniper.net<mailto:prz@=
juniper.net>> wrote:


3. second, even if we do I don't think we improve the attack envelope or ac=
tually worsen it. Let's go through it

     *   major version is attacked, any change will drop the packet due to =
mismatch. if we protect it, we calculate the hash and it fails and outcome =
is the same modulo we can be computationally overrun
     *   outer key id is attacked/fingerprint length is attacked, all same =
outcome ...

now, you can argue that an attacker can modify stuff _behind_ the fingerpri=
nt and with that attack protocol computationally but there is no way around=
 that, we won't detect modification otherwise wheeras modifying major versi=
on/key id/fingerprint lenght basically leads to drops on any change and pro=
tecting them only exposes us computationally for no benefit

The receiving RIFT router can drop packets with the wrong major version, wi=
th a wrong key-id (not in the accept key set), or a wrong fingerprint-lengt=
h, without validating the fingerprint first.

This is for the same reason that a RIFT router can drop a packet with an ou=
t-of-range weak-nonce without validating the fingerprint first.

In general, it is safe to reject a packet when any field has some unaccepta=
ble value without validating the fingerprint first.

So, protecting these additional fields does not open up any new CPU denial =
of service attacks.

If a RIFT router is planning to accept a packet because all fields have an =
acceptable value, then it must validate the fingerprint first before doing =
so.

Or if a RIFT router is going to reject a packet but take some protocol acti=
on based on some field in that rejected packet anyway, then it would have t=
o validate the fingerprint as well (happily, which currently don=92t have t=
his scenario in RIFT, as long as the packet-nr is truly only used for debug=
ging and not for flow-control, for example).

So, the real question is: how sure are you that leaving the major-version, =
key-id, and fingerprint-lengths fields unprotected will not lead to some pr=
oblems down the road?  (To quote Dirty Harry: =93Do you feel lucky? Well, d=
o ya, punk? :-)

=97 Bruno


--_000_SN6PR05MB5613CD53440AF7F6BD32D4D7ACC40SN6PR05MB5613namp_
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">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
So dropping the &quot;burden of proof&quot; logical fallacy @ the end ;-) t=
he only effect right now is to increase the difficulty of the implementatio=
n without a known attack if you access those fields without checking finger=
print first anyway. I can only imagine a very
 far fetched attack where someone is recording another version, matching up=
 nonces and then wait for a major protocol version change and change versio=
n on old recordings to attack. Again, most likely as likely as age of unive=
rse to happen ;-)
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
Looking for more opinions ... <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
--- tony <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Bruno Rijsman &lt;bru=
norijsman@gmail.com&gt;<br>
<b>Sent:</b> Sunday, July 21, 2019 12:03 PM<br>
<b>To:</b> Antoni Przygienda &lt;prz@juniper.net&gt;<br>
<b>Cc:</b> Tony Przygienda &lt;tonysietf@gmail.com&gt;; rift@ietf.org &lt;r=
ift@ietf.org&gt;<br>
<b>Subject:</b> Re: RIFT fingerprint coverage</font>
<div>&nbsp;</div>
</div>
<div class=3D"" style=3D"word-wrap:break-word; line-break:after-white-space=
"><br class=3D"">
<div><br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D"">On Jul 21, 2019, at 4:22 PM, Antoni Przygienda &lt;<a href=
=3D"mailto:prz@juniper.net" class=3D"">prz@juniper.net</a>&gt; wrote:</div>
</blockquote>
<div><br class=3D"">
</div>
<br class=3D"">
<blockquote type=3D"cite" class=3D"">
<div class=3D""><span class=3D"" style=3D"font-size:12pt; font-family:Calib=
ri,Arial,Helvetica,sans-serif">3. second, even if we do I don't think we im=
prove the attack envelope or actually worsen it. Let's go through it&nbsp;<=
/span></div>
<div class=3D"">
<div class=3D"" style=3D"font-style:normal; font-variant-caps:normal; font-=
weight:normal; letter-spacing:normal; text-align:start; text-indent:0px; te=
xt-transform:none; white-space:normal; word-spacing:0px; text-decoration:no=
ne; font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt">
<ol class=3D"">
<ol class=3D"">
<li class=3D"">major version is attacked, any change will drop the packet d=
ue to mismatch. if we protect it, we calculate the hash and it fails and ou=
tcome is the same modulo we can be computationally overrun<span class=3D"x_=
Apple-converted-space">&nbsp;</span><br class=3D"">
</li><li class=3D"">outer key id is attacked/fingerprint length is attacked=
, all same outcome ...</li></ol>
</ol>
<div class=3D"">now, you can argue that an attacker can modify stuff _behin=
d_ the fingerprint and with that attack protocol computationally but there =
is no way around that, we won't detect modification otherwise wheeras modif=
ying major version/key id/fingerprint
 lenght basically leads to drops on any change and protecting them only exp=
oses us computationally for no benefit<br class=3D"">
</div>
</div>
</div>
</blockquote>
<br class=3D"">
</div>
<div>The receiving RIFT router can drop packets with the wrong major versio=
n, with a wrong key-id (not in the accept key set), or a wrong fingerprint-=
length,
<b class=3D"">without</b>&nbsp;validating the fingerprint first.</div>
<div><br class=3D"">
</div>
<div>This is for the same reason that a RIFT router can drop a packet with =
an out-of-range weak-nonce
<b class=3D"">without</b> validating the fingerprint first.</div>
<div><br class=3D"">
</div>
<div>
<div>In general, it is safe to reject a packet when any field has some unac=
ceptable value
<b class=3D"">without</b>&nbsp;validating the fingerprint first.</div>
</div>
<div><br class=3D"">
</div>
<div>
<div>So, protecting these additional fields does not open up any new CPU de=
nial of service attacks.</div>
<div class=3D""><br class=3D"">
</div>
</div>
<div>
<div>If a RIFT router is planning to accept a packet because all fields hav=
e an acceptable value, then it must validate the fingerprint first before d=
oing so.</div>
<div><br class=3D"">
</div>
<div>Or if a RIFT router is going to reject a packet but take some protocol=
 action based on some field in that rejected packet anyway, then it would h=
ave to validate the fingerprint as well (happily, which currently don=92t h=
ave this scenario in RIFT, as long
 as the packet-nr is truly only used for debugging and not for flow-control=
, for example).</div>
<div class=3D""><br class=3D"">
</div>
</div>
<div>So, the real question is: how sure are you that leaving the major-vers=
ion, key-id, and fingerprint-lengths fields unprotected will not lead to so=
me problems down the road? &nbsp;(To quote Dirty Harry: =93Do you feel luck=
y? Well, do ya, punk? :-)</div>
<div><br class=3D"">
</div>
<div>=97 Bruno</div>
<br class=3D"">
</div>
</body>
</html>

--_000_SN6PR05MB5613CD53440AF7F6BD32D4D7ACC40SN6PR05MB5613namp_--


From nobody Mon Jul 22 07:11:20 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C16F512017D for <rift@ietfa.amsl.com>; Mon, 22 Jul 2019 07:11:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 LVwJxUeBd0FS for <rift@ietfa.amsl.com>; Mon, 22 Jul 2019 07:11:16 -0700 (PDT)
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) (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 D231B1201E2 for <rift@ietf.org>; Mon, 22 Jul 2019 07:11:13 -0700 (PDT)
Received: by mail-ed1-x52b.google.com with SMTP id i11so40755816edq.0 for <rift@ietf.org>; Mon, 22 Jul 2019 07:11:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Z/B6zh93lPhrTMR5GRpWtIz7SA1N2hiltH3ePQhq7SI=; b=T32znastLYpAnMh7mDsLP4vDLSoIq2+EA9XFUUa7A796C/FobdoYiLofqn1pM+MrOI 7rznkmT2g9FpZXqJXxgYsVzex8IztUCXKZoY4UF1YRnsJxP+NTiLFlZt5pdhHSm/f1RK /KP+LK8nuTKNQpPszVm9yKjLQ13qDVObIgcxWlXznHchGguQGuXLYrR5PoP39WLr6HmQ OV6e3gq6x7xvua9PuBMpQdISpPsEvE4m/9mzLCo4tbVuqZqscW6AME46mncbxO+cXH5e EZG5Dw0rqEa6ahk3EUpa2x8ll6qJU1+u9uhfAD3gG6P24aiT8hNjc5hY9FewdyUUMtYi ZgnQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Z/B6zh93lPhrTMR5GRpWtIz7SA1N2hiltH3ePQhq7SI=; b=Pt2lNhPxObr87igqmJPcwRB/T5koGSEFMHpeK5oYRN5NPVv6drLXMxfrtCQ2l4gaKs NYxdx+ZB6Ey6Kvz8avskXrZ1GD8rArjRWOrGlTAJtQweHsNKn5uqO9scOKCLw0ppAzag Y8QjKbuONadXMHJTjRdAGnw02J1d3j0RHrz4S4UqGV4i7fnu33by7SgFf+dUMqB/ZBBO HNf1hR1stUFwET6pfbeP6t6ClsRlZQ0+EwooDOrDSUICB+w02H3DSirXVUHDnRSXEs3P d24Cb/0+pgNu1kKBPBynZFritXdNgvMdZc5JIcW26mx8St+Mo3ZIQ3vai4zwtseIg7+v nZdA==
X-Gm-Message-State: APjAAAX32OgVxKB+WdZj/UVyFkur7SlKe/Jygrw0ZMd26iE9KSgAIi9A SwjS08lnDbQjwwV+jjLXfCuwfaT5ZXhciBliCUg=
X-Google-Smtp-Source: APXvYqxPbtde6LUlr9/XT4p6fVJFSy+cuMgmTdSL2PGA+Tyu/voNEvaigYLNjK/bW68Ggu4PwsMuw7mn1gEkaI7gMPo=
X-Received: by 2002:a17:906:7f91:: with SMTP id f17mr51919855ejr.250.1563804672428;  Mon, 22 Jul 2019 07:11:12 -0700 (PDT)
MIME-Version: 1.0
References: <CF366357-79EA-4395-9024-09A371795695@gmail.com> <F165CA6D-3537-4310-8453-77B069F69414@gmail.com> <MWHPR05MB32795B106572C9AD42A30DCFACC50@MWHPR05MB3279.namprd05.prod.outlook.com> <55967EF3-3612-4173-80AB-44AB530FB338@gmail.com>
In-Reply-To: <55967EF3-3612-4173-80AB-44AB530FB338@gmail.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Mon, 22 Jul 2019 10:10:38 -0400
Message-ID: <CA+wi2hOSwmi1zTd6UvtMGjZxEH8nh9-wLrfd_-CiZP0o9v06vg@mail.gmail.com>
To: Bruno Rijsman <brunorijsman@gmail.com>
Cc: Antoni Przygienda <prz@juniper.net>, "rift@ietf.org" <rift@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000ff8e2f058e45a5f4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/NH6p06PiAMRij2dNd2xcK2ls3NM>
Subject: Re: [Rift] RIFT fingerprint coverage
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Jul 2019 14:11:19 -0000

--000000000000ff8e2f058e45a5f4
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I think we misunderstood. If you validate things _before_ a fingerprint
(which we have here, without lenght in front of fingerprint we don't know
where to find it) you normally compute the fingerprint over empty
fingerprint & you have to validate the same way. This is normally the place
where problems occur due to unusal logic necessary in the right sequence

I agree, the discussion is is there an attack worth doing the extra work, I
don't see one + as I say we not really protect anything since we access the
fields before fingerprint anyway and any change, if not failing before
fingerprint will make fingerprint invalid anyway ...

--- tony


On Sun, Jul 21, 2019 at 12:04 PM Bruno Rijsman <brunorijsman@gmail.com>
wrote:

>
>
> On Jul 21, 2019, at 4:22 PM, Antoni Przygienda <prz@juniper.net> wrote:
>
>
>
> 3. second, even if we do I don't think we improve the attack envelope or
> actually worsen it. Let's go through it
>
>    1. major version is attacked, any change will drop the packet due to
>       mismatch. if we protect it, we calculate the hash and it fails and =
outcome
>       is the same modulo we can be computationally overrun
>       2. outer key id is attacked/fingerprint length is attacked, all
>       same outcome ...
>
> now, you can argue that an attacker can modify stuff _behind_ the
> fingerprint and with that attack protocol computationally but there is no
> way around that, we won't detect modification otherwise wheeras modifying
> major version/key id/fingerprint lenght basically leads to drops on any
> change and protecting them only exposes us computationally for no benefit
>
>
> The receiving RIFT router can drop packets with the wrong major version,
> with a wrong key-id (not in the accept key set), or a wrong
> fingerprint-length, *without* validating the fingerprint first.
>
> This is for the same reason that a RIFT router can drop a packet with an
> out-of-range weak-nonce *without* validating the fingerprint first.
>
> In general, it is safe to reject a packet when any field has some
> unacceptable value *without* validating the fingerprint first.
>
> So, protecting these additional fields does not open up any new CPU denia=
l
> of service attacks.
>
> If a RIFT router is planning to accept a packet because all fields have a=
n
> acceptable value, then it must validate the fingerprint first before doin=
g
> so.
>
> Or if a RIFT router is going to reject a packet but take some protocol
> action based on some field in that rejected packet anyway, then it would
> have to validate the fingerprint as well (happily, which currently don=E2=
=80=99t
> have this scenario in RIFT, as long as the packet-nr is truly only used f=
or
> debugging and not for flow-control, for example).
>
> So, the real question is: how sure are you that leaving the major-version=
,
> key-id, and fingerprint-lengths fields unprotected will not lead to some
> problems down the road?  (To quote Dirty Harry: =E2=80=9CDo you feel luck=
y? Well,
> do ya, punk? :-)
>
> =E2=80=94 Bruno
>
>

--000000000000ff8e2f058e45a5f4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>I think we misunderstood. If you validate things _bef=
ore_ a fingerprint (which we have here, without lenght in front of fingerpr=
int we don&#39;t know where to find it) you normally compute the fingerprin=
t over empty fingerprint &amp; you have to validate the same way. This is n=
ormally the place where problems occur due to unusal logic necessary in the=
 right sequence</div><div><br></div><div>I agree, the discussion is is ther=
e an attack worth doing the extra work, I don&#39;t see one + as I say we n=
ot really protect anything since we access the fields before fingerprint an=
yway and any change, if not failing before fingerprint will make fingerprin=
t invalid anyway ... <br></div><div><br></div><div>--- tony <br></div><div>=
<br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gm=
ail_attr">On Sun, Jul 21, 2019 at 12:04 PM Bruno Rijsman &lt;<a href=3D"mai=
lto:brunorijsman@gmail.com">brunorijsman@gmail.com</a>&gt; wrote:<br></div>=
<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 style=3D"overflow-wr=
ap: break-word;"><br><div><br><blockquote type=3D"cite"><div>On Jul 21, 201=
9, at 4:22 PM, Antoni Przygienda &lt;<a href=3D"mailto:prz@juniper.net" tar=
get=3D"_blank">prz@juniper.net</a>&gt; wrote:</div></blockquote><div><br></=
div><br><blockquote type=3D"cite"><div><span style=3D"font-size:12pt;font-f=
amily:Calibri,Arial,Helvetica,sans-serif">3. second, even if we do I don&#3=
9;t think we improve the attack envelope or actually worsen it. Let&#39;s g=
o through it=C2=A0</span></div><div><div style=3D"font-style:normal;font-va=
riant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start=
;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;te=
xt-decoration:none;font-family:Calibri,Arial,Helvetica,sans-serif;font-size=
:12pt"><ol><ol><li>major version is attacked, any change will drop the pack=
et due to mismatch. if we protect it, we calculate the hash and it fails an=
d outcome is the same modulo we can be computationally overrun<span class=
=3D"gmail-m_-2897627292344751284Apple-converted-space">=C2=A0</span><br></l=
i><li>outer key id is attacked/fingerprint length is attacked, all same out=
come ...</li></ol></ol><div>now, you can argue that an attacker can modify =
stuff _behind_ the fingerprint and with that attack protocol computationall=
y but there is no way around that, we won&#39;t detect modification otherwi=
se wheeras modifying major version/key id/fingerprint lenght basically lead=
s to drops on any change and protecting them only exposes us computationall=
y for no benefit<br></div></div></div></blockquote><br></div><div>The recei=
ving RIFT router can drop packets with the wrong major version, with a wron=
g key-id (not in the accept key set), or a wrong fingerprint-length, <b>wit=
hout</b>=C2=A0validating the fingerprint first.</div><div><br></div><div>Th=
is is for the same reason that a RIFT router can drop a packet with an out-=
of-range weak-nonce <b>without</b> validating the fingerprint first.</div><=
div><br></div><div><div>In general, it is safe to reject a packet when any =
field has some unacceptable value <b>without</b>=C2=A0validating the finger=
print first.</div></div><div><br></div><div><div>So, protecting these addit=
ional fields does not open up any new CPU denial of service attacks.</div><=
div><br></div></div><div><div>If a RIFT router is planning to accept a pack=
et because all fields have an acceptable value, then it must validate the f=
ingerprint first before doing so.</div><div><br></div><div>Or if a RIFT rou=
ter is going to reject a packet but take some protocol action based on some=
 field in that rejected packet anyway, then it would have to validate the f=
ingerprint as well (happily, which currently don=E2=80=99t have this scenar=
io in RIFT, as long as the packet-nr is truly only used for debugging and n=
ot for flow-control, for example).</div><div><br></div></div><div>So, the r=
eal question is: how sure are you that leaving the major-version, key-id, a=
nd fingerprint-lengths fields unprotected will not lead to some problems do=
wn the road? =C2=A0(To quote Dirty Harry: =E2=80=9CDo you feel lucky? Well,=
 do ya, punk? :-)</div><div><br></div><div>=E2=80=94 Bruno</div><br></div><=
/blockquote></div>

--000000000000ff8e2f058e45a5f4--


From nobody Tue Jul 23 12:33:55 2019
Return-Path: <russ@riw.us>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8FDEE12090C; Tue, 23 Jul 2019 12:33:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=messagingengine.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 nGq2N2e8ol10; Tue, 23 Jul 2019 12:33:37 -0700 (PDT)
Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com [64.147.123.21]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 38E7C12084D; Tue, 23 Jul 2019 12:33:36 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 85A1261F; Tue, 23 Jul 2019 15:33:35 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Tue, 23 Jul 2019 15:33:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=76vP4D 3jRRMRNNRnjPEbmSY8KOURTZJRL1GYuJd8UKM=; b=cPsihbD6t17CZPV9lpO1Pe /12BkC+bQRUfzlUwUMcpUEdWkzn7Rj+UmzMbvPi4Rq793AiffeFLN54A4vSXjaI0 8yNZ7ZBQWT/IvC45kUrp9SxzOdddzFcz1RNkbFvlMIL9aEQlJNp0d7/3ICPoJfJo zBpIgvGdMoyn0zhnl7sIIA6psK8iqpgYiNxkAbcjOOPLJkNKJFKZMzeq2AGlcE0G 7TRjp0YC+E0CGBziUZgycLyTF3XSuPFR9fUFQNlN2NQPfQmH4xqz8RVtt1ble+eW P+d4dZ/SZZdGjta7b1W6ClTi5upBFa/8GkRlZBDVXlpQNDrPOxi0Oq5f8ER6SDnw ==
X-ME-Sender: <xms:DmE3XW_622iSGVHnpy9BlygR87T17PP7OHorlEaYPckkps4II9r3IQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduvddrjeekgddufeekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkgggtgffothesthhqgh dtvddtjeenucfhrhhomhepoehruhhsshesrhhifidruhhsqeenucffohhmrghinhepihgv thhfrdhorhhgnecukfhppeefuddrudeffedrudefkedrudeijeenucfrrghrrghmpehmrg hilhhfrhhomheprhhushhssehrihifrdhushenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:DmE3XTHb3aktbtKeAce9i-w9NiUvUzfrAGL0GTYdEsfGYGBtTbIVVQ> <xmx:DmE3XQfrS3gobAgTSQP--91yCjp9oUX3sTfwKlSrnCYSk3KFX9IXkg> <xmx:DmE3XclwJLG-JzdHP1mEHaHgx5iv7LxaEKC4hAAkokEyBhmJ7PzYvg> <xmx:D2E3XZZddOXV_Wl4F5v6mR4vMeBl93FllOYsyGcuxUdPtTsMSyCqxQ>
Received: from RussPC (dhcp-8aa7.meeting.ietf.org [31.133.138.167]) by mail.messagingengine.com (Postfix) with ESMTPA id 7A67080060; Tue, 23 Jul 2019 15:33:34 -0400 (EDT)
From: <russ@riw.us>
To: <rtg-wg-chairs@ietf.org>, <draft-ietf-rift-rift@ietf.org>
Cc: <rtg-dir@ietf.org>, <rift@ietf.org>
Date: Tue, 23 Jul 2019 15:33:34 -0400
Message-ID: <097e01d5418d$847ee300$8d7ca900$@riw.us>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AdVBjP5d4GzHvFj0ReaDFe2tM6C8FA==
Content-Language: en-us
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/ng76ClJP4-wkKWCKzEeuhX4gSR4>
Subject: [Rift] RtgDir Early review: draft-ietf-rift-rift-06
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Jul 2019 19:33:48 -0000

Hello

I have been selected to do a routing directorate =E2=80=9Cearly=E2=80=9D =
review of this draft.=20
=E2=80=8Bhttps://datatracker.ietf.org/doc/draft-foo-name/

The routing directorate will, on request from the working group chair, =
perform an =E2=80=9Cearly=E2=80=9D review of a draft before it is =
submitted for publication to the IESG. The early review can be performed =
at any time during the draft=E2=80=99s lifetime as a working group =
document. The purpose of the early review depends on the stage that the =
document has reached.

As this document has recently been adopted by the working group, my =
focus for the review is on providing a new perspective on the work, with =
the intention of catching any issues early on in the document's life =
cycle.

For more information about the Routing Directorate, please see =
=E2=80=8Bhttp://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir

Document: draft-ietf-rift-rift-06
Reviewer: Russ White
Review Date: 23 July 2019
Intended Status: Standards Track

Summary:=20

I have significant concerns about this document. It needs more work =
before being submitted to the IESG.

Comments:

Overall this draft is very readable, although I have suggested wording =
changes below. The protocol described is useful and interesting. I =
largely have questions about the structure and wording of the draft, =
although there are a couple of technical questions in the comments below =
(probably just things I missed the explanation for, however).

Structurally, this document almost feels like two different documents. =
The first specifies a set of use cases and requirements, while the =
second specifies a protocol. I wonder if it wouldn't be better to split =
this document into two pieces, making each one more specific, and =
possibly a bit easier to read? We might too late in the process to make =
such a change -- if so, that's okay, just thought it might be worth =
considering.

Throughout -- "fat tree," "Clos," and other terms are used in various =
places. As a reader, given the different meanings for these terms, I =
found this a bit confusing. It might be better to use "spine and leaf" =
throughout.

Throughout -- the term "folded" has two very different meanings... The =
first is a multistage fabric on which traffic flows bi-directionally, =
the second is a way of drawing spine and leaf fabrics in blocks. It =
might be useful to clarify this from the beginning somehow, so readers =
who are expecting one meaning don't misread things because a different =
meaning is intended (?). I think it's always used here in the "way of =
drawing a spine and leaf fabric" here.

=3D=3D
Page 9

The definitions of the various forms of TIE might be better if they =
clearly differentiated between topology and reachability information =
(?). The OSPF router LSA, for instance, contains both kinds of =
information. In IS-IS, adjacencies, which are called Node TIES (I think) =
are tlv22, while the Prefix TIE would be a tlv128 and 236. I don't think =
there is an equivalent separation between topology (reachable neighbors) =
and reachability (reachable prefixes) in OSPF.=20

=3D=3D
REQ13: "Taking a path through the spine in cases where a shorter path is =
available is highly undesirable."

This doesn't seem to be related to the previous statements in the =
requirement... Not certain this needs to be included? Or maybe it wants =
to be someplace else in the list?

=3D=3D
REQ10 and REQ13 both seem to say the same thing -- although REQ13 is =
better worded. Maybe both of these are not needed?

=3D=3D
REQ15: "...links of a single node having same addresses." -- might be =
better as "...links of a single node sharing the same address."

=3D=3D
REQ18: "...security mechanisms that allow to restrict nodes, especially =
leafs without proper credentials from forming three-way adjacencies."

Might be better as:

"...security mechanisms that allow the operator to restrict nodes, =
especially leaf nodes without proper credentials, from forming a =
three-way adjacency."

=3D=3D
PEND2: 500,000 seems way too small for the scale numbers I've heard in =
the past -- especially if we are including the underlay protocol running =
on the hosts in the mix. If there are 300k ports is at least 1 prefix =
per edge port, and potentially 10-15 prefixes per edge port. If you =
guess around 20% of the workloads attached to the fabric might be =
mobile, then the number here is more likely 1 million at the base, with =
a top end of around 2-3 million prefixes. It might be worth adjusting =
this number a bit larger (?).

=3D=3D
Section 5, paragraph after the header

"...when "pointing north" and path vector [RFC4271] protocol when =
"pointing south". While this is an unusual combination,..."

Elsewhere in the document "distance-vector" is used. It might be better =
to be consistent?

=3D=3D
Section 5.1.1

In the first paragraph ("The most singular property..."), omitting =
east-west control plane information flow is mentioned twice; could =
probably just be once.

The first sentence in the second paragraph is a bit of a run-on; might =
be best to omit some of this, or break it into two sentences.

Second paragraph: "The application of those principle lead to RIFT..." =
doesn't seem right. Might be better as: "The application of these =
principles lead to RIFT..."

=3D=3D
Section 5.1.2, paragraph beginning: "Given the difficulty of visualizing =
multi plane design which are..." First, this is one long sentence. =
Second, what's illustrated looks like a crossbar, but it's not a =
crossbar. I find this a little confusing (?). The problem is -- I don't =
know of another term to use here.

=3D=3D
Section 5.1.2, paragraph beginning: "The typical topology for which RIFT =
is defined is built of a number P..." This seems to describe a five =
stage butterfly or pod-and-spine fabric, but does not seem to describe a =
seven stage (?).

Overall -- I'm not certain trying to describe these topologies at this =
level in a protocol specification draft is all that useful. The =
terminology is fluid (used by different people in different ways), and =
this depth of explanation does not seem to be useful to describe the =
protocol operation. This is one place where splitting the document into =
two pieces might be helpful.

=3D=3D
Paragraph beginning: "It is critical at this junction that the concept =
and the picture of..." What is shown is not really a crossbar fabric... =
I'm not certain calling this a crossbar is helpful here (?).

=3D=3D
Section 5.1.4: "This happens naturally in single plane design but needs =
additional considerations in multiplane fabrics." When aggregation is =
used, as well -- but not when no aggregation of reachability information =
is deployed in the fabric. It might be worth adding that qualification =
here.

=3D=3D
Section 5.1.4

Sentence beginning: "In more detail, by reserving two ports on each =
Top-of-Fabric node it is possible to connect them together in an =
interplane bi-directional ring as illustrated in Figure 13..."

I might have missed it, but this document does not seem to address how =
traffic will be prevented from flowing through these links. It's =
probably important to note either that traffic will flow along these =
links, hence they need to be sized appropriately, or how traffic is =
prevented from flowing along these links.=20

=3D=3D
Section 5.1.5

Sentence beginning: "The effect of a positive disaggregation..." If =
positive deaggregation takes place, it could draw all the traffic to the =
deaggregated destinations along a small set of links, causing a hot spot =
in the fabric. This might be taken care of "naturally" in the way RIFT =
does positive deaggregation, but it might be good to explain this in the =
document.

A more general observation: positive deaggregation, as described in the =
document, can potentially cause cascading failures where a group of =
links or nodes fail, causing a lot of new information to be pushed into =
lower levels rather quickly, which could potentially cause those nodes =
to overrun their table or processing space and fail in turn, causing =
more information to be dumped into the control plane, etc. It may be =
worth connsidering having some form of "hysteresis," timer or other =
mechanism to prevent cascading failures of this kind.

=3D=3D
Section 5.2.2

"All RIFT routers MUST support IPv4 forwarding and MAY support IPv6..."

So an IPv6 only fabric is not possible?=20

=3D=3D
Section 5.2.6

"After the SPF is run, it is necessary to attach according prefixes."

I think this might want to mean --

"After SPF is run, it is necessary to attach the resulting reachability =
information in the form of prefixes."=20

(?)

=3D=3D
Section 5.2.6

It seems like the first and third paragraphs describe the same =
procedure? Are both descriptions necessary?

=3D=3D
Section 5.2.6

"An exemplary implementation..." should probably be "an example =
implementation..." ??

=3D=3D
Section 5.2.6

"After the positive prefixes are attached and tie-broken, negative =
prefixes are attached and used in case of northbound computation, =
ideally from the shortest length to the longest."

It seems like the prefixes should be "tie-broken" before being attached. =
This sentence is generally confusing, perhaps:

"After the positive prefixes have been attached, the negative prefixes =
will be attached in their prefix-length order (from the shortest to the =
longest). These negative prefixes will only be used when computing =
northbound reachability."

=3D=3D
Section 5.2.6

"Observe that despite seeming quite computationally expensive the =
operations are only necessary if the only available advertisements for a =
prefix are negative since tie-breaking always prefers positive =
information for the prefix which stops any kind of recursion since =
positive information never inherits next hops."

Just because something is not done all that often does not mean it's not =
computationally expensive. :-) Maybe something like this would be =
better:

"Although these operations can be computationally expensive, the overall =
load on devices in the network is low because these computations are not =
run very often, as positive route advertisements are always preferred =
over negative ones. This prevents recursion in most cases because =
positive reachability information never inherits next hops."

Or something like this?

=3D=3D
Section 5.2.6

"Negative 2001:db8::/32 entry inherits from"

Probably wants to be "The negative 2001:db8::/32 entry..."

=3D=3D
Section 5.2.6

"Finally, let us look at the case where S3 becomes available again as =
default gateway, ..."

"...the default gateway..." or "...a default gateway..."

=3D=3D
Section 5.2.7

"Each RIFT node can optionally operate in zero touch provisioning..."

"optionally" is not needed here

=3D=3D
Section 5.2.7.2

"RIFT identifies each node via a SystemID which is a 64 bits wide =
integer. It is relatively simple to derive a, for all practical purposes =
collision free, value for each node on startup. For that purpose, a node =
MUST use as system ID EUI-64 MA-L format [EUI64] where the =
organizationally governed 24 bits can be used to generate system IDs for =
multiple RIFT instances running on the system."

This seems too wordy -- maybe:

"RIFT nodes require a 64 bit SystemID in the EUI-64 MA-L format formed =
as described in [EUI64]. The organizationally goverened portion of this =
ID  (24 bits) can be used to generate multiple IDs if required to =
indicate more than one RIFT instance."

=3D=3D
Section 5.3.1

"Overload Bit MUST be respected..."

should be=20

"The overload bit MUST be respected..."

=3D=3D
Section 5.3.2

"Since the leafs do see only "one hop away" they do not need to run a =
full SPF but can simply gather prefix candidates from their neighbors =
and build the according routing table."

Seems like this should be=20

"Since leaf nodes only have one hop of topology information, they do not =
need to run SPF. Instead, they can gather the available prefix =
candidates and build the routing table accordingly."

=3D=3D
Section 5.3.3

"time stamp: With this method, the infrastructure memorizes the..."

I think the correct word here is "records," rather than "memorizes" (?)

=3D=3D
Section 5.3.3

"sequence counter: With this method, a mobile node notifies its =
point..."

Another problem here is the node might not "know" it has been moved from =
one location to another in the fabric, particularly if a layer 2 only =
attached process is moved along with it's ARP cache, and something like =
the EVPN default MAC is used to enable the move. I don't know if this is =
worth mentioning, but it does seem like a case that needs to be thought =
about to make certain it works with the process described.

=3D=3D
Section 5.3.3

"The leaf node MUST advertise a time stamp of the latest sighting..."

Is this for all prefixes, or just for prefixes that are somehow marked =
or configured as potentially mobile on the fabric?

=3D=3D
Section 5.3.3

"RIFT also defines an abstract negative clock (ANSC) that compares as =
less than any other clock."

Does this mean lower priority, or always older than any other clock? It =
seems like this means "older" based on 5.3.3.1, but the language could =
probably be clearer.

=3D=3D
Section 5.3.3

One thing not covered here is what happens if some workload moves =
between two RIFT fabrics interconnected via some other protocol, such as =
BGP. It seems the most obvious solution is to have RIFT treat =
redistributed destinations the same as directly attached destinations in =
terms of clocks, etc., but this is not called out in the document. It =
might be worth mentioning.

=3D=3D
Section 5.3.3.3

This section seems a little ... muddled? You want to both have the =
ability to use only the most recently available versions of any anycast =
destination, while also not requiring all the anycast advertisements to =
have the same time stamp (?). I'm not certain this section entirely =
solves that problem. This sentence might be creating the confusion in my =
reading of the section, as I don't really understand what it is saying:=20

"An anycast prefix does not carry a clock or all clock attributes MUST =
be the same under the rules of Section 5.3.3.1."

MUST be treated the same as prefixes advertised under the rules of =
5.3.3.1? I'm not certain.

=3D=3D
Section 5.3.3.4

"RIFT is agnostic whether any overlay technology like [MIP, LISP, VxLAN, =
NVO3] and the associated signaling is deployed over it. But it is =
expected that leaf nodes, and possibly Top-of-Fabric nodes can perform =
the according encapsulation."

"according" should be "correct," I think.=20

=3D=3D
Section 5.3.6.1

"All the multiplications and additions are saturating, i.e. when =
exceeding range of the bandwidth type are set to highest possible value =
of the type."

Maybe better:

"If a calculation produces a result exceeding the range of the type, the =
result is set to the highest possible value for that type."




From nobody Tue Jul 23 13:27:31 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BB10E120950; Tue, 23 Jul 2019 13:27:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 kN5_U66O6vty; Tue, 23 Jul 2019 13:27:17 -0700 (PDT)
Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) (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 C82331203C2; Tue, 23 Jul 2019 13:27:13 -0700 (PDT)
Received: by mail-ed1-x52b.google.com with SMTP id s49so10309358edb.1; Tue, 23 Jul 2019 13:27:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GwyPMv1j9avH8Vnfm3Rmt3e1Fpn0qM+URyG5VmS8ZRw=; b=MXAh9Uk/uDFl0zGFzjX9HuNF3HgsVD1uauZHLlCQ5VVtaNVNz/+xIomYbbi+e/hJ27 DXoxPPw+aZpNqb06iApLWOAq8aajEz+McqaLa0tbwHc3px4NCeLXRgk7SlrcAodJa5BF nx06GIcHlycLIfYj1rKPsLQfC174r6MKZX3vCEnzrJEc8ld6MDUABnxhd7XYeWCLMqbW cDrW++MondNQ0UvpII/psj6NLHFBXwOjDE40RCE1uTiCFelHYDc601LeOwckXjejMSrI tRlcL7Dt3eujYTeLeWG9TdcjUdH32Q/LEEwqulTR4yxFbqb8yYM489FeMcY3wyomd59N u9Eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GwyPMv1j9avH8Vnfm3Rmt3e1Fpn0qM+URyG5VmS8ZRw=; b=V+MNFQvbjMQgpB/oXNJq6M7VxQasVUCj7gcLxBQy2pb/4qbdsOz8rE4U1IdjYgaXiV bdc2/lJ+csUQ8a03JWI2SEeaUjoUl26ojtWP8HUbvL7mjRo2/PHT+4yDWxxK8hd5WZ7i Tzb/BqVatw34Swrk6HJ1lbgfRZ0hb/1x4dzASHcZPIxReLbi+nmsMcKheW4C6ju8eS7o c71VNuF6/J3cxs5DSTWYwsum0RLT7pt7pMrHgZ5kseksXl//RxIASLfRHJa3pBR1mzSF 3OF+76PxF5sMkEXyJDXUa5wDyYSTZeLUeZIkSNMczqhEU8VRplYL+EcYe65xEO5h+ov1 cNNw==
X-Gm-Message-State: APjAAAWXBmXHc99TVe2x6x6iKiBXbwoJVvwyNxF+YGXaiu/4/KS0ppEk jerpNPwj9ogy5WCcO/zhySKHOuICbnBCgfGYFDqGZQEECwE=
X-Google-Smtp-Source: APXvYqxZ46g02b/rhNnbkW561ppp1yj7jIQ1i0b82DaEKS7fLfQyLIHEGF9gfKQBIEzF1n/kU7H2muf19UY8HUV/U3U=
X-Received: by 2002:a50:b87c:: with SMTP id k57mr66624955ede.226.1563913632155;  Tue, 23 Jul 2019 13:27:12 -0700 (PDT)
MIME-Version: 1.0
References: <097e01d5418d$847ee300$8d7ca900$@riw.us>
In-Reply-To: <097e01d5418d$847ee300$8d7ca900$@riw.us>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Tue, 23 Jul 2019 16:26:35 -0400
Message-ID: <CA+wi2hO0SMadg1LHNvORCxD37kkriA9LUJEbevSURbcNTvk3hQ@mail.gmail.com>
To: Russ White <russ@riw.us>
Cc: rtg-wg-chairs@ietf.org, draft-ietf-rift-rift@ietf.org, rtg-dir@ietf.org,  rift@ietf.org
Content-Type: multipart/alternative; boundary="000000000000810aab058e5f044a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/WfceSWboY4G1kyJRkp6u1AyZkC8>
Subject: Re: [Rift] RtgDir Early review: draft-ietf-rift-rift-06
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Jul 2019 20:27:22 -0000

--000000000000810aab058e5f044a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

thanks for quick review, Russ. Flew over it. most stuff seems clarification
and editorials to me. Let's sit with authors in the bar and go over it, I
have -07 pending anyway right after IETF due to the v4/v6 router
requirement comments and bruno's interop so this is a great time in fact to
file off the last rough edges ...

--- tony


On Tue, Jul 23, 2019 at 3:33 PM <russ@riw.us> wrote:

> Hello
>
> I have been selected to do a routing directorate =E2=80=9Cearly=E2=80=9D =
review of this
> draft.
> =E2=80=8Bhttps://datatracker.ietf.org/doc/draft-foo-name/
>
> The routing directorate will, on request from the working group chair,
> perform an =E2=80=9Cearly=E2=80=9D review of a draft before it is submitt=
ed for publication
> to the IESG. The early review can be performed at any time during the
> draft=E2=80=99s lifetime as a working group document. The purpose of the =
early
> review depends on the stage that the document has reached.
>
> As this document has recently been adopted by the working group, my focus
> for the review is on providing a new perspective on the work, with the
> intention of catching any issues early on in the document's life cycle.
>
> For more information about the Routing Directorate, please see =E2=80=8B
> http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir
>
> Document: draft-ietf-rift-rift-06
> Reviewer: Russ White
> Review Date: 23 July 2019
> Intended Status: Standards Track
>
> Summary:
>
> I have significant concerns about this document. It needs more work befor=
e
> being submitted to the IESG.
>
> Comments:
>
> Overall this draft is very readable, although I have suggested wording
> changes below. The protocol described is useful and interesting. I largel=
y
> have questions about the structure and wording of the draft, although the=
re
> are a couple of technical questions in the comments below (probably just
> things I missed the explanation for, however).
>
> Structurally, this document almost feels like two different documents. Th=
e
> first specifies a set of use cases and requirements, while the second
> specifies a protocol. I wonder if it wouldn't be better to split this
> document into two pieces, making each one more specific, and possibly a b=
it
> easier to read? We might too late in the process to make such a change --
> if so, that's okay, just thought it might be worth considering.
>
> Throughout -- "fat tree," "Clos," and other terms are used in various
> places. As a reader, given the different meanings for these terms, I foun=
d
> this a bit confusing. It might be better to use "spine and leaf" througho=
ut.
>
> Throughout -- the term "folded" has two very different meanings... The
> first is a multistage fabric on which traffic flows bi-directionally, the
> second is a way of drawing spine and leaf fabrics in blocks. It might be
> useful to clarify this from the beginning somehow, so readers who are
> expecting one meaning don't misread things because a different meaning is
> intended (?). I think it's always used here in the "way of drawing a spin=
e
> and leaf fabric" here.
>
> =3D=3D
> Page 9
>
> The definitions of the various forms of TIE might be better if they
> clearly differentiated between topology and reachability information (?).
> The OSPF router LSA, for instance, contains both kinds of information. In
> IS-IS, adjacencies, which are called Node TIES (I think) are tlv22, while
> the Prefix TIE would be a tlv128 and 236. I don't think there is an
> equivalent separation between topology (reachable neighbors) and
> reachability (reachable prefixes) in OSPF.
>
> =3D=3D
> REQ13: "Taking a path through the spine in cases where a shorter path is
> available is highly undesirable."
>
> This doesn't seem to be related to the previous statements in the
> requirement... Not certain this needs to be included? Or maybe it wants t=
o
> be someplace else in the list?
>
> =3D=3D
> REQ10 and REQ13 both seem to say the same thing -- although REQ13 is
> better worded. Maybe both of these are not needed?
>
> =3D=3D
> REQ15: "...links of a single node having same addresses." -- might be
> better as "...links of a single node sharing the same address."
>
> =3D=3D
> REQ18: "...security mechanisms that allow to restrict nodes, especially
> leafs without proper credentials from forming three-way adjacencies."
>
> Might be better as:
>
> "...security mechanisms that allow the operator to restrict nodes,
> especially leaf nodes without proper credentials, from forming a three-wa=
y
> adjacency."
>
> =3D=3D
> PEND2: 500,000 seems way too small for the scale numbers I've heard in th=
e
> past -- especially if we are including the underlay protocol running on t=
he
> hosts in the mix. If there are 300k ports is at least 1 prefix per edge
> port, and potentially 10-15 prefixes per edge port. If you guess around 2=
0%
> of the workloads attached to the fabric might be mobile, then the number
> here is more likely 1 million at the base, with a top end of around 2-3
> million prefixes. It might be worth adjusting this number a bit larger (?=
).
>
> =3D=3D
> Section 5, paragraph after the header
>
> "...when "pointing north" and path vector [RFC4271] protocol when
> "pointing south". While this is an unusual combination,..."
>
> Elsewhere in the document "distance-vector" is used. It might be better t=
o
> be consistent?
>
> =3D=3D
> Section 5.1.1
>
> In the first paragraph ("The most singular property..."), omitting
> east-west control plane information flow is mentioned twice; could probab=
ly
> just be once.
>
> The first sentence in the second paragraph is a bit of a run-on; might be
> best to omit some of this, or break it into two sentences.
>
> Second paragraph: "The application of those principle lead to RIFT..."
> doesn't seem right. Might be better as: "The application of these
> principles lead to RIFT..."
>
> =3D=3D
> Section 5.1.2, paragraph beginning: "Given the difficulty of visualizing
> multi plane design which are..." First, this is one long sentence. Second=
,
> what's illustrated looks like a crossbar, but it's not a crossbar. I find
> this a little confusing (?). The problem is -- I don't know of another te=
rm
> to use here.
>
> =3D=3D
> Section 5.1.2, paragraph beginning: "The typical topology for which RIFT
> is defined is built of a number P..." This seems to describe a five stage
> butterfly or pod-and-spine fabric, but does not seem to describe a seven
> stage (?).
>
> Overall -- I'm not certain trying to describe these topologies at this
> level in a protocol specification draft is all that useful. The terminolo=
gy
> is fluid (used by different people in different ways), and this depth of
> explanation does not seem to be useful to describe the protocol operation=
.
> This is one place where splitting the document into two pieces might be
> helpful.
>
> =3D=3D
> Paragraph beginning: "It is critical at this junction that the concept an=
d
> the picture of..." What is shown is not really a crossbar fabric... I'm n=
ot
> certain calling this a crossbar is helpful here (?).
>
> =3D=3D
> Section 5.1.4: "This happens naturally in single plane design but needs
> additional considerations in multiplane fabrics." When aggregation is use=
d,
> as well -- but not when no aggregation of reachability information is
> deployed in the fabric. It might be worth adding that qualification here.
>
> =3D=3D
> Section 5.1.4
>
> Sentence beginning: "In more detail, by reserving two ports on each
> Top-of-Fabric node it is possible to connect them together in an interpla=
ne
> bi-directional ring as illustrated in Figure 13..."
>
> I might have missed it, but this document does not seem to address how
> traffic will be prevented from flowing through these links. It's probably
> important to note either that traffic will flow along these links, hence
> they need to be sized appropriately, or how traffic is prevented from
> flowing along these links.
>
> =3D=3D
> Section 5.1.5
>
> Sentence beginning: "The effect of a positive disaggregation..." If
> positive deaggregation takes place, it could draw all the traffic to the
> deaggregated destinations along a small set of links, causing a hot spot =
in
> the fabric. This might be taken care of "naturally" in the way RIFT does
> positive deaggregation, but it might be good to explain this in the
> document.
>
> A more general observation: positive deaggregation, as described in the
> document, can potentially cause cascading failures where a group of links
> or nodes fail, causing a lot of new information to be pushed into lower
> levels rather quickly, which could potentially cause those nodes to overr=
un
> their table or processing space and fail in turn, causing more informatio=
n
> to be dumped into the control plane, etc. It may be worth connsidering
> having some form of "hysteresis," timer or other mechanism to prevent
> cascading failures of this kind.
>
> =3D=3D
> Section 5.2.2
>
> "All RIFT routers MUST support IPv4 forwarding and MAY support IPv6..."
>
> So an IPv6 only fabric is not possible?
>
> =3D=3D
> Section 5.2.6
>
> "After the SPF is run, it is necessary to attach according prefixes."
>
> I think this might want to mean --
>
> "After SPF is run, it is necessary to attach the resulting reachability
> information in the form of prefixes."
>
> (?)
>
> =3D=3D
> Section 5.2.6
>
> It seems like the first and third paragraphs describe the same procedure?
> Are both descriptions necessary?
>
> =3D=3D
> Section 5.2.6
>
> "An exemplary implementation..." should probably be "an example
> implementation..." ??
>
> =3D=3D
> Section 5.2.6
>
> "After the positive prefixes are attached and tie-broken, negative
> prefixes are attached and used in case of northbound computation, ideally
> from the shortest length to the longest."
>
> It seems like the prefixes should be "tie-broken" before being attached.
> This sentence is generally confusing, perhaps:
>
> "After the positive prefixes have been attached, the negative prefixes
> will be attached in their prefix-length order (from the shortest to the
> longest). These negative prefixes will only be used when computing
> northbound reachability."
>
> =3D=3D
> Section 5.2.6
>
> "Observe that despite seeming quite computationally expensive the
> operations are only necessary if the only available advertisements for a
> prefix are negative since tie-breaking always prefers positive informatio=
n
> for the prefix which stops any kind of recursion since positive informati=
on
> never inherits next hops."
>
> Just because something is not done all that often does not mean it's not
> computationally expensive. :-) Maybe something like this would be better:
>
> "Although these operations can be computationally expensive, the overall
> load on devices in the network is low because these computations are not
> run very often, as positive route advertisements are always preferred ove=
r
> negative ones. This prevents recursion in most cases because positive
> reachability information never inherits next hops."
>
> Or something like this?
>
> =3D=3D
> Section 5.2.6
>
> "Negative 2001:db8::/32 entry inherits from"
>
> Probably wants to be "The negative 2001:db8::/32 entry..."
>
> =3D=3D
> Section 5.2.6
>
> "Finally, let us look at the case where S3 becomes available again as
> default gateway, ..."
>
> "...the default gateway..." or "...a default gateway..."
>
> =3D=3D
> Section 5.2.7
>
> "Each RIFT node can optionally operate in zero touch provisioning..."
>
> "optionally" is not needed here
>
> =3D=3D
> Section 5.2.7.2
>
> "RIFT identifies each node via a SystemID which is a 64 bits wide integer=
.
> It is relatively simple to derive a, for all practical purposes collision
> free, value for each node on startup. For that purpose, a node MUST use a=
s
> system ID EUI-64 MA-L format [EUI64] where the organizationally governed =
24
> bits can be used to generate system IDs for multiple RIFT instances runni=
ng
> on the system."
>
> This seems too wordy -- maybe:
>
> "RIFT nodes require a 64 bit SystemID in the EUI-64 MA-L format formed as
> described in [EUI64]. The organizationally goverened portion of this ID
> (24 bits) can be used to generate multiple IDs if required to indicate mo=
re
> than one RIFT instance."
>
> =3D=3D
> Section 5.3.1
>
> "Overload Bit MUST be respected..."
>
> should be
>
> "The overload bit MUST be respected..."
>
> =3D=3D
> Section 5.3.2
>
> "Since the leafs do see only "one hop away" they do not need to run a ful=
l
> SPF but can simply gather prefix candidates from their neighbors and buil=
d
> the according routing table."
>
> Seems like this should be
>
> "Since leaf nodes only have one hop of topology information, they do not
> need to run SPF. Instead, they can gather the available prefix candidates
> and build the routing table accordingly."
>
> =3D=3D
> Section 5.3.3
>
> "time stamp: With this method, the infrastructure memorizes the..."
>
> I think the correct word here is "records," rather than "memorizes" (?)
>
> =3D=3D
> Section 5.3.3
>
> "sequence counter: With this method, a mobile node notifies its point..."
>
> Another problem here is the node might not "know" it has been moved from
> one location to another in the fabric, particularly if a layer 2 only
> attached process is moved along with it's ARP cache, and something like t=
he
> EVPN default MAC is used to enable the move. I don't know if this is wort=
h
> mentioning, but it does seem like a case that needs to be thought about t=
o
> make certain it works with the process described.
>
> =3D=3D
> Section 5.3.3
>
> "The leaf node MUST advertise a time stamp of the latest sighting..."
>
> Is this for all prefixes, or just for prefixes that are somehow marked or
> configured as potentially mobile on the fabric?
>
> =3D=3D
> Section 5.3.3
>
> "RIFT also defines an abstract negative clock (ANSC) that compares as les=
s
> than any other clock."
>
> Does this mean lower priority, or always older than any other clock? It
> seems like this means "older" based on 5.3.3.1, but the language could
> probably be clearer.
>
> =3D=3D
> Section 5.3.3
>
> One thing not covered here is what happens if some workload moves between
> two RIFT fabrics interconnected via some other protocol, such as BGP. It
> seems the most obvious solution is to have RIFT treat redistributed
> destinations the same as directly attached destinations in terms of clock=
s,
> etc., but this is not called out in the document. It might be worth
> mentioning.
>
> =3D=3D
> Section 5.3.3.3
>
> This section seems a little ... muddled? You want to both have the abilit=
y
> to use only the most recently available versions of any anycast
> destination, while also not requiring all the anycast advertisements to
> have the same time stamp (?). I'm not certain this section entirely solve=
s
> that problem. This sentence might be creating the confusion in my reading
> of the section, as I don't really understand what it is saying:
>
> "An anycast prefix does not carry a clock or all clock attributes MUST be
> the same under the rules of Section 5.3.3.1."
>
> MUST be treated the same as prefixes advertised under the rules of
> 5.3.3.1? I'm not certain.
>
> =3D=3D
> Section 5.3.3.4
>
> "RIFT is agnostic whether any overlay technology like [MIP, LISP, VxLAN,
> NVO3] and the associated signaling is deployed over it. But it is expecte=
d
> that leaf nodes, and possibly Top-of-Fabric nodes can perform the accordi=
ng
> encapsulation."
>
> "according" should be "correct," I think.
>
> =3D=3D
> Section 5.3.6.1
>
> "All the multiplications and additions are saturating, i.e. when exceedin=
g
> range of the bandwidth type are set to highest possible value of the type=
."
>
> Maybe better:
>
> "If a calculation produces a result exceeding the range of the type, the
> result is set to the highest possible value for that type."
>
>
>
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>

--000000000000810aab058e5f044a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>thanks for quick review, Russ. Flew over it. most stu=
ff seems clarification and editorials to me. Let&#39;s sit with authors in =
the bar and go over it, I have -07 pending anyway right after IETF due to t=
he v4/v6 router requirement comments and bruno&#39;s interop so this is a g=
reat time in fact to file off the last rough edges ... <br></div><div><br><=
/div><div>--- tony <br></div><div><br></div></div><br><div class=3D"gmail_q=
uote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jul 23, 2019 at 3:33 PM=
 &lt;<a href=3D"mailto:russ@riw.us">russ@riw.us</a>&gt; wrote:<br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">Hello<br>
<br>
I have been selected to do a routing directorate =E2=80=9Cearly=E2=80=9D re=
view of this draft. <br>
=E2=80=8B<a href=3D"https://datatracker.ietf.org/doc/draft-foo-name/" rel=
=3D"noreferrer" target=3D"_blank">https://datatracker.ietf.org/doc/draft-fo=
o-name/</a><br>
<br>
The routing directorate will, on request from the working group chair, perf=
orm an =E2=80=9Cearly=E2=80=9D review of a draft before it is submitted for=
 publication to the IESG. The early review can be performed at any time dur=
ing the draft=E2=80=99s lifetime as a working group document. The purpose o=
f the early review depends on the stage that the document has reached.<br>
<br>
As this document has recently been adopted by the working group, my focus f=
or the review is on providing a new perspective on the work, with the inten=
tion of catching any issues early on in the document&#39;s life cycle.<br>
<br>
For more information about the Routing Directorate, please see =E2=80=8B<a =
href=3D"http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir" rel=3D"norefe=
rrer" target=3D"_blank">http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDi=
r</a><br>
<br>
Document: draft-ietf-rift-rift-06<br>
Reviewer: Russ White<br>
Review Date: 23 July 2019<br>
Intended Status: Standards Track<br>
<br>
Summary: <br>
<br>
I have significant concerns about this document. It needs more work before =
being submitted to the IESG.<br>
<br>
Comments:<br>
<br>
Overall this draft is very readable, although I have suggested wording chan=
ges below. The protocol described is useful and interesting. I largely have=
 questions about the structure and wording of the draft, although there are=
 a couple of technical questions in the comments below (probably just thing=
s I missed the explanation for, however).<br>
<br>
Structurally, this document almost feels like two different documents. The =
first specifies a set of use cases and requirements, while the second speci=
fies a protocol. I wonder if it wouldn&#39;t be better to split this docume=
nt into two pieces, making each one more specific, and possibly a bit easie=
r to read? We might too late in the process to make such a change -- if so,=
 that&#39;s okay, just thought it might be worth considering.<br>
<br>
Throughout -- &quot;fat tree,&quot; &quot;Clos,&quot; and other terms are u=
sed in various places. As a reader, given the different meanings for these =
terms, I found this a bit confusing. It might be better to use &quot;spine =
and leaf&quot; throughout.<br>
<br>
Throughout -- the term &quot;folded&quot; has two very different meanings..=
. The first is a multistage fabric on which traffic flows bi-directionally,=
 the second is a way of drawing spine and leaf fabrics in blocks. It might =
be useful to clarify this from the beginning somehow, so readers who are ex=
pecting one meaning don&#39;t misread things because a different meaning is=
 intended (?). I think it&#39;s always used here in the &quot;way of drawin=
g a spine and leaf fabric&quot; here.<br>
<br>
=3D=3D<br>
Page 9<br>
<br>
The definitions of the various forms of TIE might be better if they clearly=
 differentiated between topology and reachability information (?). The OSPF=
 router LSA, for instance, contains both kinds of information. In IS-IS, ad=
jacencies, which are called Node TIES (I think) are tlv22, while the Prefix=
 TIE would be a tlv128 and 236. I don&#39;t think there is an equivalent se=
paration between topology (reachable neighbors) and reachability (reachable=
 prefixes) in OSPF. <br>
<br>
=3D=3D<br>
REQ13: &quot;Taking a path through the spine in cases where a shorter path =
is available is highly undesirable.&quot;<br>
<br>
This doesn&#39;t seem to be related to the previous statements in the requi=
rement... Not certain this needs to be included? Or maybe it wants to be so=
meplace else in the list?<br>
<br>
=3D=3D<br>
REQ10 and REQ13 both seem to say the same thing -- although REQ13 is better=
 worded. Maybe both of these are not needed?<br>
<br>
=3D=3D<br>
REQ15: &quot;...links of a single node having same addresses.&quot; -- migh=
t be better as &quot;...links of a single node sharing the same address.&qu=
ot;<br>
<br>
=3D=3D<br>
REQ18: &quot;...security mechanisms that allow to restrict nodes, especiall=
y leafs without proper credentials from forming three-way adjacencies.&quot=
;<br>
<br>
Might be better as:<br>
<br>
&quot;...security mechanisms that allow the operator to restrict nodes, esp=
ecially leaf nodes without proper credentials, from forming a three-way adj=
acency.&quot;<br>
<br>
=3D=3D<br>
PEND2: 500,000 seems way too small for the scale numbers I&#39;ve heard in =
the past -- especially if we are including the underlay protocol running on=
 the hosts in the mix. If there are 300k ports is at least 1 prefix per edg=
e port, and potentially 10-15 prefixes per edge port. If you guess around 2=
0% of the workloads attached to the fabric might be mobile, then the number=
 here is more likely 1 million at the base, with a top end of around 2-3 mi=
llion prefixes. It might be worth adjusting this number a bit larger (?).<b=
r>
<br>
=3D=3D<br>
Section 5, paragraph after the header<br>
<br>
&quot;...when &quot;pointing north&quot; and path vector [RFC4271] protocol=
 when &quot;pointing south&quot;. While this is an unusual combination,...&=
quot;<br>
<br>
Elsewhere in the document &quot;distance-vector&quot; is used. It might be =
better to be consistent?<br>
<br>
=3D=3D<br>
Section 5.1.1<br>
<br>
In the first paragraph (&quot;The most singular property...&quot;), omittin=
g east-west control plane information flow is mentioned twice; could probab=
ly just be once.<br>
<br>
The first sentence in the second paragraph is a bit of a run-on; might be b=
est to omit some of this, or break it into two sentences.<br>
<br>
Second paragraph: &quot;The application of those principle lead to RIFT...&=
quot; doesn&#39;t seem right. Might be better as: &quot;The application of =
these principles lead to RIFT...&quot;<br>
<br>
=3D=3D<br>
Section 5.1.2, paragraph beginning: &quot;Given the difficulty of visualizi=
ng multi plane design which are...&quot; First, this is one long sentence. =
Second, what&#39;s illustrated looks like a crossbar, but it&#39;s not a cr=
ossbar. I find this a little confusing (?). The problem is -- I don&#39;t k=
now of another term to use here.<br>
<br>
=3D=3D<br>
Section 5.1.2, paragraph beginning: &quot;The typical topology for which RI=
FT is defined is built of a number P...&quot; This seems to describe a five=
 stage butterfly or pod-and-spine fabric, but does not seem to describe a s=
even stage (?).<br>
<br>
Overall -- I&#39;m not certain trying to describe these topologies at this =
level in a protocol specification draft is all that useful. The terminology=
 is fluid (used by different people in different ways), and this depth of e=
xplanation does not seem to be useful to describe the protocol operation. T=
his is one place where splitting the document into two pieces might be help=
ful.<br>
<br>
=3D=3D<br>
Paragraph beginning: &quot;It is critical at this junction that the concept=
 and the picture of...&quot; What is shown is not really a crossbar fabric.=
.. I&#39;m not certain calling this a crossbar is helpful here (?).<br>
<br>
=3D=3D<br>
Section 5.1.4: &quot;This happens naturally in single plane design but need=
s additional considerations in multiplane fabrics.&quot; When aggregation i=
s used, as well -- but not when no aggregation of reachability information =
is deployed in the fabric. It might be worth adding that qualification here=
.<br>
<br>
=3D=3D<br>
Section 5.1.4<br>
<br>
Sentence beginning: &quot;In more detail, by reserving two ports on each To=
p-of-Fabric node it is possible to connect them together in an interplane b=
i-directional ring as illustrated in Figure 13...&quot;<br>
<br>
I might have missed it, but this document does not seem to address how traf=
fic will be prevented from flowing through these links. It&#39;s probably i=
mportant to note either that traffic will flow along these links, hence the=
y need to be sized appropriately, or how traffic is prevented from flowing =
along these links. <br>
<br>
=3D=3D<br>
Section 5.1.5<br>
<br>
Sentence beginning: &quot;The effect of a positive disaggregation...&quot; =
If positive deaggregation takes place, it could draw all the traffic to the=
 deaggregated destinations along a small set of links, causing a hot spot i=
n the fabric. This might be taken care of &quot;naturally&quot; in the way =
RIFT does positive deaggregation, but it might be good to explain this in t=
he document.<br>
<br>
A more general observation: positive deaggregation, as described in the doc=
ument, can potentially cause cascading failures where a group of links or n=
odes fail, causing a lot of new information to be pushed into lower levels =
rather quickly, which could potentially cause those nodes to overrun their =
table or processing space and fail in turn, causing more information to be =
dumped into the control plane, etc. It may be worth connsidering having som=
e form of &quot;hysteresis,&quot; timer or other mechanism to prevent casca=
ding failures of this kind.<br>
<br>
=3D=3D<br>
Section 5.2.2<br>
<br>
&quot;All RIFT routers MUST support IPv4 forwarding and MAY support IPv6...=
&quot;<br>
<br>
So an IPv6 only fabric is not possible? <br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;After the SPF is run, it is necessary to attach according prefixes.&q=
uot;<br>
<br>
I think this might want to mean --<br>
<br>
&quot;After SPF is run, it is necessary to attach the resulting reachabilit=
y information in the form of prefixes.&quot; <br>
<br>
(?)<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
It seems like the first and third paragraphs describe the same procedure? A=
re both descriptions necessary?<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;An exemplary implementation...&quot; should probably be &quot;an exam=
ple implementation...&quot; ??<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;After the positive prefixes are attached and tie-broken, negative pre=
fixes are attached and used in case of northbound computation, ideally from=
 the shortest length to the longest.&quot;<br>
<br>
It seems like the prefixes should be &quot;tie-broken&quot; before being at=
tached. This sentence is generally confusing, perhaps:<br>
<br>
&quot;After the positive prefixes have been attached, the negative prefixes=
 will be attached in their prefix-length order (from the shortest to the lo=
ngest). These negative prefixes will only be used when computing northbound=
 reachability.&quot;<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;Observe that despite seeming quite computationally expensive the oper=
ations are only necessary if the only available advertisements for a prefix=
 are negative since tie-breaking always prefers positive information for th=
e prefix which stops any kind of recursion since positive information never=
 inherits next hops.&quot;<br>
<br>
Just because something is not done all that often does not mean it&#39;s no=
t computationally expensive. :-) Maybe something like this would be better:=
<br>
<br>
&quot;Although these operations can be computationally expensive, the overa=
ll load on devices in the network is low because these computations are not=
 run very often, as positive route advertisements are always preferred over=
 negative ones. This prevents recursion in most cases because positive reac=
hability information never inherits next hops.&quot;<br>
<br>
Or something like this?<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;Negative 2001:db8::/32 entry inherits from&quot;<br>
<br>
Probably wants to be &quot;The negative 2001:db8::/32 entry...&quot;<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;Finally, let us look at the case where S3 becomes available again as =
default gateway, ...&quot;<br>
<br>
&quot;...the default gateway...&quot; or &quot;...a default gateway...&quot=
;<br>
<br>
=3D=3D<br>
Section 5.2.7<br>
<br>
&quot;Each RIFT node can optionally operate in zero touch provisioning...&q=
uot;<br>
<br>
&quot;optionally&quot; is not needed here<br>
<br>
=3D=3D<br>
Section 5.2.7.2<br>
<br>
&quot;RIFT identifies each node via a SystemID which is a 64 bits wide inte=
ger. It is relatively simple to derive a, for all practical purposes collis=
ion free, value for each node on startup. For that purpose, a node MUST use=
 as system ID EUI-64 MA-L format [EUI64] where the organizationally governe=
d 24 bits can be used to generate system IDs for multiple RIFT instances ru=
nning on the system.&quot;<br>
<br>
This seems too wordy -- maybe:<br>
<br>
&quot;RIFT nodes require a 64 bit SystemID in the EUI-64 MA-L format formed=
 as described in [EUI64]. The organizationally goverened portion of this ID=
=C2=A0 (24 bits) can be used to generate multiple IDs if required to indica=
te more than one RIFT instance.&quot;<br>
<br>
=3D=3D<br>
Section 5.3.1<br>
<br>
&quot;Overload Bit MUST be respected...&quot;<br>
<br>
should be <br>
<br>
&quot;The overload bit MUST be respected...&quot;<br>
<br>
=3D=3D<br>
Section 5.3.2<br>
<br>
&quot;Since the leafs do see only &quot;one hop away&quot; they do not need=
 to run a full SPF but can simply gather prefix candidates from their neigh=
bors and build the according routing table.&quot;<br>
<br>
Seems like this should be <br>
<br>
&quot;Since leaf nodes only have one hop of topology information, they do n=
ot need to run SPF. Instead, they can gather the available prefix candidate=
s and build the routing table accordingly.&quot;<br>
<br>
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;time stamp: With this method, the infrastructure memorizes the...&quo=
t;<br>
<br>
I think the correct word here is &quot;records,&quot; rather than &quot;mem=
orizes&quot; (?)<br>
<br>
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;sequence counter: With this method, a mobile node notifies its point.=
..&quot;<br>
<br>
Another problem here is the node might not &quot;know&quot; it has been mov=
ed from one location to another in the fabric, particularly if a layer 2 on=
ly attached process is moved along with it&#39;s ARP cache, and something l=
ike the EVPN default MAC is used to enable the move. I don&#39;t know if th=
is is worth mentioning, but it does seem like a case that needs to be thoug=
ht about to make certain it works with the process described.<br>
<br>
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;The leaf node MUST advertise a time stamp of the latest sighting...&q=
uot;<br>
<br>
Is this for all prefixes, or just for prefixes that are somehow marked or c=
onfigured as potentially mobile on the fabric?<br>
<br>
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;RIFT also defines an abstract negative clock (ANSC) that compares as =
less than any other clock.&quot;<br>
<br>
Does this mean lower priority, or always older than any other clock? It see=
ms like this means &quot;older&quot; based on 5.3.3.1, but the language cou=
ld probably be clearer.<br>
<br>
=3D=3D<br>
Section 5.3.3<br>
<br>
One thing not covered here is what happens if some workload moves between t=
wo RIFT fabrics interconnected via some other protocol, such as BGP. It see=
ms the most obvious solution is to have RIFT treat redistributed destinatio=
ns the same as directly attached destinations in terms of clocks, etc., but=
 this is not called out in the document. It might be worth mentioning.<br>
<br>
=3D=3D<br>
Section 5.3.3.3<br>
<br>
This section seems a little ... muddled? You want to both have the ability =
to use only the most recently available versions of any anycast destination=
, while also not requiring all the anycast advertisements to have the same =
time stamp (?). I&#39;m not certain this section entirely solves that probl=
em. This sentence might be creating the confusion in my reading of the sect=
ion, as I don&#39;t really understand what it is saying: <br>
<br>
&quot;An anycast prefix does not carry a clock or all clock attributes MUST=
 be the same under the rules of Section 5.3.3.1.&quot;<br>
<br>
MUST be treated the same as prefixes advertised under the rules of 5.3.3.1?=
 I&#39;m not certain.<br>
<br>
=3D=3D<br>
Section 5.3.3.4<br>
<br>
&quot;RIFT is agnostic whether any overlay technology like [MIP, LISP, VxLA=
N, NVO3] and the associated signaling is deployed over it. But it is expect=
ed that leaf nodes, and possibly Top-of-Fabric nodes can perform the accord=
ing encapsulation.&quot;<br>
<br>
&quot;according&quot; should be &quot;correct,&quot; I think. <br>
<br>
=3D=3D<br>
Section 5.3.6.1<br>
<br>
&quot;All the multiplications and additions are saturating, i.e. when excee=
ding range of the bandwidth type are set to highest possible value of the t=
ype.&quot;<br>
<br>
Maybe better:<br>
<br>
&quot;If a calculation produces a result exceeding the range of the type, t=
he result is set to the highest possible value for that type.&quot;<br>
<br>
<br>
<br>
_______________________________________________<br>
RIFT mailing list<br>
<a href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/rift" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/rift</a><br>
</blockquote></div>

--000000000000810aab058e5f044a--


From nobody Tue Jul 23 15:03:27 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 21F5912097B for <rift@ietfa.amsl.com>; Tue, 23 Jul 2019 15:03:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.996
X-Spam-Level: 
X-Spam-Status: No, score=-1.996 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_FONT_FACE_BAD=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 mxuE007sgWVC for <rift@ietfa.amsl.com>; Tue, 23 Jul 2019 15:03:16 -0700 (PDT)
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) (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 049151209AA for <rift@ietf.org>; Tue, 23 Jul 2019 15:03:16 -0700 (PDT)
Received: by mail-ed1-x531.google.com with SMTP id x19so39398438eda.12 for <rift@ietf.org>; Tue, 23 Jul 2019 15:03:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:mime-version:subject:message-id:date:to; bh=d5+KKCKyMSmZ4J7L9hMKqd33D9Q1WpuC90xHGUl78A8=; b=KODkm/OoG5asMNgIg0eged+QJV32riBDqxO8rXr5MflOekicXvW7O6UyBoej2TVQN5 W7YC+gb8tR5CN2q7h0jMwWI2B+gYRabJzsmtrZxAVMQX5drJH5O+xT/FrOl6+4UM3KDL rC3zOJZFY2eDOMv1X/e2/PqwtI7Fw3AOlyMXcXMre1QLFqgD48TMvmxDywYGebl9pvE7 dfls/XGGRFqo5accPkzPUcK5AOCqqrJt7EQgyxdmXeWFYie3D9sEVtVE7+eBL5lvd4iU BXe7UhNrgizkUcbQOrxt0tFF4sz4ThhRC1zAKKZC/xRuCDcLNRHwHtsOTEsg4eiboZBY wDIg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:to; bh=d5+KKCKyMSmZ4J7L9hMKqd33D9Q1WpuC90xHGUl78A8=; b=mnX5cwabYh9D7Uk0lZ4bpSZ8/SaWgweKJT0ZNqD5Qxr6MQMcGoJGguB9zd1pB/dZ6m YjZtlGWNi3b8B9Jj/1A+9kYgITSoVnVSIdjET2pjyZ0Y9MJvLJ4dDqbQJ6Nc3PWSxX/l zETBON++PDChrYReBfTWRx+G+4se/QSzBmYbsSvSGwLwUTzn99ZcXn5bGZWWTnSggAxp edLddecZMQN3fbg2j5y+iFjzfntDbHTaCKDvDfMjbO6B/nUr1+hqfHF7wiP5LPudGjJL WIJMcxCRRMD56NU4Ultjx+GDAj1JDLQrPk4rcGo6YWSSbV//HCLToz1BpizTpjRMVNiw Mdtg==
X-Gm-Message-State: APjAAAWkwweELwlFXl65J44PFiVeLgsYbrcBlmckPY/oO4Ea5GNmfrQm sqXTqu6md+94k9nbMXPcbhhvmSwlkbo=
X-Google-Smtp-Source: APXvYqxOGHIXAscPEETCsQTU67/1TtQjhSgIYl2s6FBQtPUUnp9jfUna0cRvfDXJ8Cm8+uzWkBOHug==
X-Received: by 2002:a50:a544:: with SMTP id z4mr67228358edb.71.1563919393979;  Tue, 23 Jul 2019 15:03:13 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-48-162.ip.prioritytelecom.net. [213.127.48.162]) by smtp.gmail.com with ESMTPSA id l50sm12563904edb.77.2019.07.23.15.03.11 for <rift@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jul 2019 15:03:11 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_67DC856B-1A15-4CF4-8B17-0E7C0D14A33F"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Message-Id: <078F87AF-1F6B-4859-9743-67A300BA9588@gmail.com>
Date: Wed, 24 Jul 2019 00:03:10 +0200
To: rift@ietf.org
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/639Z9z6Z9hbIc7tWPpt0iWCITqU>
Subject: [Rift] RIFT-Python flooding reduction feature guide
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Jul 2019 22:03:27 -0000

--Apple-Mail=_67DC856B-1A15-4CF4-8B17-0E7C0D14A33F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

I just posted the feature guide for RIFT-Python flooding reduction: =
http://bit.ly/flooding-reduction-feature-guide =
<http://bit.ly/flooding-reduction-feature-guide>. This was implemented =
some time ago already, but I finally got around to documenting it in =
preparation for the RIFT working group meeting on Thursday.

Comments / corrections / pull requests welcome.

=E2=80=94 Bruno=

--Apple-Mail=_67DC856B-1A15-4CF4-8B17-0E7C0D14A33F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><span=
 id=3D"ember88" class=3D"ember-view" style=3D"box-sizing: inherit; =
outline: 0px; margin: 0px; padding: 0px; border: 0px; font-size: 14px; =
vertical-align: baseline; background-color: rgb(255, 255, 255); color: =
rgba(0, 0, 0, 0.901961); font-family: -apple-system, system-ui, =
system-ui, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica Neue&quot;, =
&quot;Fira Sans&quot;, Ubuntu, Oxygen, &quot;Oxygen Sans&quot;, =
Cantarell, &quot;Droid Sans&quot;, &quot;Apple Color Emoji&quot;, =
&quot;Segoe UI Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI =
Symbol&quot;, &quot;Lucida Grande&quot;, Helvetica, Arial, sans-serif; =
font-variant-ligatures: normal; orphans: 2; white-space: pre-wrap; =
widows: 2; line-height: inherit !important; background-position: 0px =
0px; background-repeat: initial initial;"><span style=3D"box-sizing: =
inherit; outline: 0px; margin: 0px; padding: 0px; border: 0px; =
vertical-align: baseline; line-height: inherit !important; =
background-position: 0px 0px; background-repeat: initial initial;" =
class=3D"">I just posted the feature guide for RIFT-Python flooding =
reduction: <a href=3D"http://bit.ly/flooding-reduction-feature-guide" =
class=3D"">http://bit.ly/flooding-reduction-feature-guide</a>.</span></spa=
n><span id=3D"ember96" class=3D"ember-view" style=3D"box-sizing: =
inherit; outline: 0px; margin: 0px; padding: 0px; border: 0px; =
font-size: 14px; vertical-align: baseline; background-color: rgb(255, =
255, 255); color: rgba(0, 0, 0, 0.901961); font-family: -apple-system, =
system-ui, system-ui, &quot;Segoe UI&quot;, Roboto, &quot;Helvetica =
Neue&quot;, &quot;Fira Sans&quot;, Ubuntu, Oxygen, &quot;Oxygen =
Sans&quot;, Cantarell, &quot;Droid Sans&quot;, &quot;Apple Color =
Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe UI Emoji&quot;, =
&quot;Segoe UI Symbol&quot;, &quot;Lucida Grande&quot;, Helvetica, =
Arial, sans-serif; font-variant-ligatures: normal; orphans: 2; =
white-space: pre-wrap; widows: 2; line-height: inherit !important; =
background-position: 0px 0px; background-repeat: initial initial;"><span =
style=3D"box-sizing: inherit; outline: 0px; margin: 0px; padding: 0px; =
border: 0px; vertical-align: baseline; line-height: inherit !important; =
background-position: 0px 0px; background-repeat: initial initial;" =
class=3D""> This was implemented some time ago already, but I finally =
got around to documenting it in preparation for the RIFT working group =
meeting on Thursday.</span></span><div class=3D""><div style=3D"orphans: =
2; widows: 2;" class=3D""><font face=3D"-apple-system, system-ui, =
system-ui, Segoe UI, Roboto, Helvetica Neue, Fira Sans, Ubuntu, Oxygen, =
Oxygen Sans, Cantarell, Droid Sans, Apple Color Emoji, Segoe UI Emoji, =
Segoe UI Emoji, Segoe UI Symbol, Lucida Grande, Helvetica, Arial, =
sans-serif" class=3D""><span style=3D"caret-color: rgba(0, 0, 0, =
0.901961); color: rgba(0, 0, 0, 0.901961); font-size: 14px; white-space: =
pre-wrap; background-color: rgb(255, 255, 255);" class=3D""><br =
class=3D""></span></font></div><div style=3D"orphans: 2; widows: 2;" =
class=3D""><font face=3D"-apple-system, system-ui, system-ui, Segoe UI, =
Roboto, Helvetica Neue, Fira Sans, Ubuntu, Oxygen, Oxygen Sans, =
Cantarell, Droid Sans, Apple Color Emoji, Segoe UI Emoji, Segoe UI =
Emoji, Segoe UI Symbol, Lucida Grande, Helvetica, Arial, sans-serif" =
class=3D""><span style=3D"caret-color: rgba(0, 0, 0, 0.901961); color: =
rgba(0, 0, 0, 0.901961); font-size: 14px; white-space: pre-wrap; =
background-color: rgb(255, 255, 255);" class=3D"">Comments / corrections =
/ pull requests welcome.</span></font></div><div class=3D""><span =
class=3D"ember-view" style=3D"box-sizing: inherit; outline: 0px; margin: =
0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: =
baseline; background-color: rgb(255, 255, 255); color: rgba(0, 0, 0, =
0.901961); font-family: -apple-system, system-ui, system-ui, &quot;Segoe =
UI&quot;, Roboto, &quot;Helvetica Neue&quot;, &quot;Fira Sans&quot;, =
Ubuntu, Oxygen, &quot;Oxygen Sans&quot;, Cantarell, &quot;Droid =
Sans&quot;, &quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, =
&quot;Segoe UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Lucida =
Grande&quot;, Helvetica, Arial, sans-serif; font-variant-ligatures: =
normal; orphans: 2; white-space: pre-wrap; widows: 2; line-height: =
inherit !important; background-position: 0px 0px; background-repeat: =
initial initial;"><span style=3D"box-sizing: inherit; outline: 0px; =
margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; =
line-height: inherit !important; background-position: 0px 0px; =
background-repeat: initial initial;" class=3D""><br =
class=3D""></span></span></div><div class=3D""><span class=3D"ember-view" =
style=3D"box-sizing: inherit; outline: 0px; margin: 0px; padding: 0px; =
border: 0px; font-size: 14px; vertical-align: baseline; =
background-color: rgb(255, 255, 255); color: rgba(0, 0, 0, 0.901961); =
font-family: -apple-system, system-ui, system-ui, &quot;Segoe UI&quot;, =
Roboto, &quot;Helvetica Neue&quot;, &quot;Fira Sans&quot;, Ubuntu, =
Oxygen, &quot;Oxygen Sans&quot;, Cantarell, &quot;Droid Sans&quot;, =
&quot;Apple Color Emoji&quot;, &quot;Segoe UI Emoji&quot;, &quot;Segoe =
UI Emoji&quot;, &quot;Segoe UI Symbol&quot;, &quot;Lucida Grande&quot;, =
Helvetica, Arial, sans-serif; font-variant-ligatures: normal; orphans: =
2; white-space: pre-wrap; widows: 2; line-height: inherit !important; =
background-position: 0px 0px; background-repeat: initial initial;"><span =
style=3D"box-sizing: inherit; outline: 0px; margin: 0px; padding: 0px; =
border: 0px; vertical-align: baseline; line-height: inherit !important; =
background-position: 0px 0px; background-repeat: initial initial;" =
class=3D"">=E2=80=94 Bruno</span></span></div></div></body></html>=

--Apple-Mail=_67DC856B-1A15-4CF4-8B17-0E7C0D14A33F--


From nobody Thu Jul 25 06:40:53 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5678E120043; Thu, 25 Jul 2019 06:40:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 GbsYP5JF6n-b; Thu, 25 Jul 2019 06:40:46 -0700 (PDT)
Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) (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 4330D12001A; Thu, 25 Jul 2019 06:40:43 -0700 (PDT)
Received: by mail-ed1-x532.google.com with SMTP id x19so44355868eda.12; Thu, 25 Jul 2019 06:40:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=oUb1qtgcmU21pwuyMeXdv8hkdKayYjZUgNfEU8GknKQ=; b=dz+L4TXK4BR+fuJqI4QGn6NY8bM9Rwl7gSMO6L0dIemyyWnRZD5z+HwZRT10uPLgTv vXzk1B0vYltXRZnDBBnyMvrKNWBpEiHTxjzrvqsfFu1QVAia9QoQ1/Zmqzhe/BBgBHpy I48MC3Q693IXDwap33KEW06iwFnMqw4h8eBfhSppHWK7Gnqo+InqbvV2QfcQlPxP30+Z +Pv6faZBerj+WhRAFOIsfQnRgYMY5kpjJjl5IC3EETvQq6RWddJB2qYMPDIGu6adq1cN xxgWqjRkb2ZeozYNsnAVk9HCOQPtASll+vf0IJ4ukLnLAGwq7apTnOhu8FAh8DbagUmJ pYYA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=oUb1qtgcmU21pwuyMeXdv8hkdKayYjZUgNfEU8GknKQ=; b=gCInfxMYQPxdRhNadsFmuM3LwvmaNrj9A8I8VZ1hwWUHzesfNGMb1hCQVf0qK+az22 e6VYpmAa6No0eKy4aMgdqWdoBvZWAfBNO0FCLs4c/Cc5Y2Bo/2HU4g+/Lut5HAj+EY+v u2o5lygJ+KbGblHg0Evrcg0Npa160K08WtOrTNVEOby1/bE8wJvT56Y0/22TTQGeHfzL 5ESuwPOCs/mNbFjj7CBq0DUachsAZ9M0U+/R1kM5a7NJDYWBEDNy+kOhSKnN5+abkuT8 BUJ+SvD+15cX2nrYJ3E/XG/CI6NDsc78roC8Xx0xLw8SlQz/b/iFivy4mRhsG8jqetdz E4+g==
X-Gm-Message-State: APjAAAVZsV4ut5krnJwo1Nzf0nmHwMzsjirw55D5c431dyJZQOraokd+ vIW08br5ocjqGcIIhEGkAhMcwjZ23zC7zQryBe0Fs8Y0TgElFg==
X-Google-Smtp-Source: APXvYqzJvujZe67fJBr5mZWS4cKWnbAk8nqmQXFZ82w2PiOXRAN05eZO8ehc3yEQhNMh2qssZWGNKq5VgScp1RsE8SU=
X-Received: by 2002:a50:ad0c:: with SMTP id y12mr75646811edc.25.1564062041717;  Thu, 25 Jul 2019 06:40:41 -0700 (PDT)
MIME-Version: 1.0
References: <097e01d5418d$847ee300$8d7ca900$@riw.us>
In-Reply-To: <097e01d5418d$847ee300$8d7ca900$@riw.us>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Thu, 25 Jul 2019 09:40:05 -0400
Message-ID: <CA+wi2hO8_-u64-4vo-64GY7KZtdL4s-qKprvLzcjoSmn2jC7XA@mail.gmail.com>
To: Russ White <russ@riw.us>
Cc: rtg-wg-chairs@ietf.org, draft-ietf-rift-rift@ietf.org, rtg-dir@ietf.org,  rift@ietf.org
Content-Type: multipart/alternative; boundary="000000000000674425058e81923f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/iPCWgtN7DDDHQofwt4KBvc5g6FU>
Subject: Re: [Rift] RtgDir Early review: draft-ietf-rift-rift-06
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jul 2019 13:40:51 -0000

--000000000000674425058e81923f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Meeting minutes of the author/review meet on the comments

On Tue, Jul 23, 2019 at 3:33 PM <russ@riw.us> wrote:

> Hello
>
> I have been selected to do a routing directorate =E2=80=9Cearly=E2=80=9D =
review of this
> draft.
> https://datatracker.ietf.org/doc/draft-foo-name/
>
> The routing directorate will, on request from the working group chair,
> perform an =E2=80=9Cearly=E2=80=9D review of a draft before it is submitt=
ed for publication
> to the IESG. The early review can be performed at any time during the
> draft=E2=80=99s lifetime as a working group document. The purpose of the =
early
> review depends on the stage that the document has reached.
>
> As this document has recently been adopted by the working group, my focus
> for the review is on providing a new perspective on the work, with the
> intention of catching any issues early on in the document's life cycle.
>
> For more information about the Routing Directorate, please see
> http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir
>
> Document: draft-ietf-rift-rift-06
> Reviewer: Russ White
> Review Date: 23 July 2019
> Intended Status: Standards Track
>
> Summary:
>
> I have significant concerns about this document. It needs more work befor=
e
> being submitted to the IESG.
>
> Comments:
>
> Overall this draft is very readable, although I have suggested wording
> changes below. The protocol described is useful and interesting. I largel=
y
> have questions about the structure and wording of the draft, although the=
re
> are a couple of technical questions in the comments below (probably just
> things I missed the explanation for, however).
>
> Structurally, this document almost feels like two different documents. Th=
e
> first specifies a set of use cases and requirements, while the second
> specifies a protocol. I wonder if it wouldn't be better to split this
> document into two pieces, making each one more specific, and possibly a b=
it
> easier to read? We might too late in the process to make such a change --
> if so, that's okay, just thought it might be worth considering.
>

On the intro add sentence "this doc encompasses reqs, secs and specs"


>
> Throughout -- "fat tree," "Clos," and other terms are used in various
> places. As a reader, given the different meanings for these terms, I foun=
d
> this a bit confusing. It might be better to use "spine and leaf" througho=
ut.
>

Add to glossary: When we use term Clos we mean by it variants of Clos such
as multi-plane and what is loosely called Fat Tree and even more generic
spine-and-leaf designs.


> Throughout -- the term "folded" has two very different meanings... The
> first is a multistage fabric on which traffic flows bi-directionally, the
> second is a way of drawing spine and leaf fabrics in blocks. It might be
> useful to clarify this from the beginning somehow, so readers who are
> expecting one meaning don't misread things because a different meaning is
> intended (?). I think it's always used here in the "way of drawing a spin=
e
> and leaf fabric" here.
>

add to glossary: folded for us is drawing with spines on the top and
implicitly assuming bi-directionality on all leafs.


>
> =3D=3D
> Page 9
>
> The definitions of the various forms of TIE might be better if they
> clearly differentiated between topology and reachability information (?).
> The OSPF router LSA, for instance, contains both kinds of information. In
> IS-IS, adjacencies, which are called Node TIES (I think) are tlv22, while
> the Prefix TIE would be a tlv128 and 236. I don't think there is an
> equivalent separation between topology (reachable neighbors) and
> reachability (reachable prefixes) in OSPF.
>

remove the "largely equivalent to OSPF Router LSA" part


>
> =3D=3D
> REQ13: "Taking a path through the spine in cases where a shorter path is
> available is highly undesirable."
>
> This doesn't seem to be related to the previous statements in the
> requirement... Not certain this needs to be included? Or maybe it wants t=
o
> be someplace else in the list?
>

Split off the sentence


> =3D=3D
> REQ10 and REQ13 both seem to say the same thing -- although REQ13 is
> better worded. Maybe both of these are not needed?
>

no action


> =3D=3D
> REQ15: "...links of a single node having same addresses." -- might be
> better as "...links of a single node sharing the same address."
>
>
accepted


> =3D=3D
> REQ18: "...security mechanisms that allow to restrict nodes, especially
> leafs without proper credentials from forming three-way adjacencies."
>
> Might be better as:
>
> "...security mechanisms that allow the operator to restrict nodes,
> especially leaf nodes without proper credentials, from forming a three-wa=
y
> adjacency."
>
>
accepted

=3D=3D
> PEND2: 500,000 seems way too small for the scale numbers I've heard in th=
e
> past -- especially if we are including the underlay protocol running on t=
he
> hosts in the mix. If there are 300k ports is at least 1 prefix per edge
> port, and potentially 10-15 prefixes per edge port. If you guess around 2=
0%
> of the workloads attached to the fabric might be mobile, then the number
> here is more likely 1 million at the base, with a top end of around 2-3
> million prefixes. It might be worth adjusting this number a bit larger (?=
).
>
>
PEND2 to be killed


> =3D=3D
> Section 5, paragraph after the header
>
> "...when "pointing north" and path vector [RFC4271] protocol when
> "pointing south". While this is an unusual combination,..."
>
> Elsewhere in the document "distance-vector" is used. It might be better t=
o
> be consistent?
>
>
replace with distance vector


> =3D=3D
> Section 5.1.1
>
> In the first paragraph ("The most singular property..."), omitting
> east-west control plane information flow is mentioned twice; could probab=
ly
> just be once.
>

Consult with Deborah whether we should tighten the prose or make it
"looser" ?


> The first sentence in the second paragraph is a bit of a run-on; might be
> best to omit some of this, or break it into two sentences.
>
> Second paragraph: "The application of those principle lead to RIFT..."
> doesn't seem right. Might be better as: "The application of these
> principles lead to RIFT..."
>

accepted


>
> =3D=3D
> Section 5.1.2, paragraph beginning: "Given the difficulty of visualizing
> multi plane design which are..." First, this is one long sentence. Second=
,
> what's illustrated looks like a crossbar, but it's not a crossbar. I find
> this a little confusing (?). The problem is -- I don't know of another te=
rm
> to use here.
>

sentence needs splitting

crossbar stands


>
> =3D=3D
> Section 5.1.2, paragraph beginning: "The typical topology for which RIFT
> is defined is built of a number P..." This seems to describe a five stage
> butterfly or pod-and-spine fabric, but does not seem to describe a seven
> stage (?).
>

by a number of "top of fabric" nodes ...


>
> Overall -- I'm not certain trying to describe these topologies at this
> level in a protocol specification draft is all that useful. The terminolo=
gy
> is fluid (used by different people in different ways), and this depth of
> explanation does not seem to be useful to describe the protocol operation=
.
> This is one place where splitting the document into two pieces might be
> helpful.
>

Word of caution sentence: please follow the glossary tightly, you get lost
quickly otherwise ...


>
> =3D=3D
> Paragraph beginning: "It is critical at this junction that the concept an=
d
> the picture of..." What is shown is not really a crossbar fabric... I'm n=
ot
> certain calling this a crossbar is helpful here (?).
>

add crossbar to glossary:  physical arrangement of ports in a switching
matrix without implying any further scheduling or buffering disciplines


> =3D=3D
> Section 5.1.4: "This happens naturally in single plane design but needs
> additional considerations in multiplane fabrics." When aggregation is use=
d,
> as well -- but not when no aggregation of reachability information is
> deployed in the fabric. It might be worth adding that qualification here.
>

when aggregation is used


>
> =3D=3D
> Section 5.1.4
>
> Sentence beginning: "In more detail, by reserving two ports on each
> Top-of-Fabric node it is possible to connect them together in an interpla=
ne
> bi-directional ring as illustrated in Figure 13..."
>
> I might have missed it, but this document does not seem to address how
> traffic will be prevented from flowing through these links. It's probably
> important to note either that traffic will flow along these links, hence
> they need to be sized appropriately, or how traffic is prevented from
> flowing along these links.
>
>
defect: spec the computation or "the computation has to prevent" . Enhace
section 5.2.4 by explaining how ToFs MUST not use the ring @ the top to
forward"


> =3D=3D
> Section 5.1.5
>
> Sentence beginning: "The effect of a positive disaggregation..." If
> positive deaggregation takes place, it could draw all the traffic to the
> deaggregated destinations along a small set of links, causing a hot spot =
in
> the fabric. This might be taken care of "naturally" in the way RIFT does
> positive deaggregation, but it might be good to explain this in the
> document.
>

in the doc already


>
> A more general observation: positive deaggregation, as described in the
> document, can potentially cause cascading failures where a group of links
> or nodes fail, causing a lot of new information to be pushed into lower
> levels rather quickly, which could potentially cause those nodes to overr=
un
> their table or processing space and fail in turn, causing more informatio=
n
> to be dumped into the control plane, etc. It may be worth connsidering
> having some form of "hysteresis," timer or other mechanism to prevent
> cascading failures of this kind.
>

positive is NOT transitive hence comment needs no addressing.

Clarify maybe once more the fact.


>
> =3D=3D
> Section 5.2.2
>
> "All RIFT routers MUST support IPv4 forwarding and MAY support IPv6..."
>
> So an IPv6 only fabric is not possible?
>

based on multiple thread router requirements are removed


>
> =3D=3D
> Section 5.2.6
>
> "After the SPF is run, it is necessary to attach according prefixes."
>
> I think this might want to mean --
>
> "After SPF is run, it is necessary to attach the resulting reachability
> information in the form of prefixes."
>
>
agreed


> (?)
>
> =3D=3D
> Section 5.2.6
>
> It seems like the first and third paragraphs describe the same procedure?
> Are both descriptions necessary?
>

need to be merged


> =3D=3D
> Section 5.2.6
>
> "An exemplary implementation..." should probably be "an example
> implementation..." ??
>
> =3D=3D
> Section 5.2.6
>
> "After the positive prefixes are attached and tie-broken, negative
> prefixes are attached and used in case of northbound computation, ideally
> from the shortest length to the longest."
>


>
> It seems like the prefixes should be "tie-broken" before being attached.
> This sentence is generally confusing, perhaps:
>

> "After the positive prefixes have been attached, the negative prefixes
> will be attached in their prefix-length order (from the shortest to the
> longest). These negative prefixes will only be used when computing
> northbound reachability."
>

"Attach all prefixes. Then build next-hop per type. Thne within types
tie-break by sequence in the model. if only negative remains run the
according algorithm"

Special Consideration for securtity Host implementation: suggestion to
throttle aggressively, implementation on the ToR to max-prefix/max-state
knobbing


>
> =3D=3D
> Section 5.2.6
>
> "Observe that despite seeming quite computationally expensive the
> operations are only necessary if the only available advertisements for a
> prefix are negative since tie-breaking always prefers positive informatio=
n
> for the prefix which stops any kind of recursion since positive informati=
on
> never inherits next hops."
>
> Just because something is not done all that often does not mean it's not
> computationally expensive. :-) Maybe something like this would be better:
>
> "Although these operations can be computationally expensive, the overall
> load on devices in the network is low because these computations are not
> run very often, as positive route advertisements are always preferred ove=
r
> negative ones. This prevents recursion in most cases because positive
> reachability information never inherits next hops."
>
> Or something like this?
>

ack


>
> =3D=3D
> Section 5.2.6
>
> "Negative 2001:db8::/32 entry inherits from"
>
> Probably wants to be "The negative 2001:db8::/32 entry..."
>

nit


> =3D=3D
> Section 5.2.6
>
> "Finally, let us look at the case where S3 becomes available again as
> default gateway, ..."
>
> "...the default gateway..." or "...a default gateway..."
>
> ack


> =3D=3D
> Section 5.2.7
>
> "Each RIFT node can optionally operate in zero touch provisioning..."
>
> "optionally" is not needed here
>

"RIFT nodes MAY use ZTP or be configured, both modes being mixed in the
same instance if desired"

remove optionally


>
> =3D=3D
> Section 5.2.7.2
>
> "RIFT identifies each node via a SystemID which is a 64 bits wide integer=
.
> It is relatively simple to derive a, for all practical purposes collision
> free, value for each node on startup. For that purpose, a node MUST use a=
s
> system ID EUI-64 MA-L format [EUI64] where the organizationally governed =
24
> bits can be used to generate system IDs for multiple RIFT instances runni=
ng
> on the system."
>
> This seems too wordy -- maybe:
>
> "RIFT nodes require a 64 bit SystemID in the EUI-64 MA-L format formed as
> described in [EUI64]. The organizationally goverened portion of this ID
> (24 bits) can be used to generate multiple IDs if required to indicate mo=
re
> than one RIFT instance."
>

"As prescribed by EUI ... RIFT nodes MUST form a 64 bit SID


>
> =3D=3D
> Section 5.3.1
>
> "Overload Bit MUST be respected..."
>
> should be
>
> "The overload bit MUST be respected..."
>
>
ack


> =3D=3D
> Section 5.3.2
>
> "Since the leafs do see only "one hop away" they do not need to run a ful=
l
> SPF but can simply gather prefix candidates from their neighbors and buil=
d
> the according routing table."
>
> Seems like this should be
>
> "Since leaf nodes only have one hop of topology information, they do not
> need to run SPF. Instead, they can gather the available prefix candidates
> and build the routing table accordingly."
>

ack


>
> =3D=3D
> Section 5.3.3
>
> "time stamp: With this method, the infrastructure memorizes the..."
>
> I think the correct word here is "records," rather than "memorizes" (?)
>

ack


>
> =3D=3D
> Section 5.3.3
>
> "sequence counter: With this method, a mobile node notifies its point..."
>
> Another problem here is the node might not "know" it has been moved from
> one location to another in the fabric, particularly if a layer 2 only
> attached process is moved along with it's ARP cache, and something like t=
he
> EVPN default MAC is used to enable the move. I don't know if this is wort=
h
> mentioning, but it does seem like a case that needs to be thought about t=
o
> make certain it works with the process described.
>
>
no change necessary


> =3D=3D
> Section 5.3.3
>
> "The leaf node MUST advertise a time stamp of the latest sighting..."
>
> Is this for all prefixes, or just for prefixes that are somehow marked or
> configured as potentially mobile on the fabric?
>
>
A leaf node MAY ...


> =3D=3D
> Section 5.3.3
>
> "RIFT also defines an abstract negative clock (ANSC) that compares as les=
s
> than any other clock."
>
> Does this mean lower priority, or always older than any other clock? It
> seems like this means "older" based on 5.3.3.1, but the language could
> probably be clearer.
>
>
nothing to do


> =3D=3D
> Section 5.3.3
>
> One thing not covered here is what happens if some workload moves between
> two RIFT fabrics interconnected via some other protocol, such as BGP. It
> seems the most obvious solution is to have RIFT treat redistributed
> destinations the same as directly attached destinations in terms of clock=
s,
> etc., but this is not called out in the document. It might be worth
> mentioning.
>
>
no action


> =3D=3D
> Section 5.3.3.3
>
> This section seems a little ... muddled? You want to both have the abilit=
y
> to use only the most recently available versions of any anycast
> destination, while also not requiring all the anycast advertisements to
> have the same time stamp (?). I'm not certain this section entirely solve=
s
> that problem. This sentence might be creating the confusion in my reading
> of the section, as I don't really understand what it is saying:
>
> "An anycast prefix does not carry a clock or all clock attributes MUST be
> the same under the rules of Section 5.3.3.1."
>
> MUST be treated the same as prefixes advertised under the rules of
> 5.3.3.1? I'm not certain.
>

it's complex for a reason. left as that.


>
> =3D=3D
> Section 5.3.3.4
>
> "RIFT is agnostic whether any overlay technology like [MIP, LISP, VxLAN,
> NVO3] and the associated signaling is deployed over it. But it is expecte=
d
> that leaf nodes, and possibly Top-of-Fabric nodes can perform the accordi=
ng
> encapsulation."
>
> "according" should be "correct," I think.
>

fine


>
> =3D=3D
> Section 5.3.6.1
>
> "All the multiplications and additions are saturating, i.e. when exceedin=
g
> range of the bandwidth type are set to highest possible value of the type=
."
>
> Maybe better:
>
> "If a calculation produces a result exceeding the range of the type, the
> result is set to the highest possible value for that type."
>
>
fine


>
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>

--000000000000674425058e81923f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">Meeting minutes of the author/review meet=
 on the comments<br></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" c=
lass=3D"gmail_attr">On Tue, Jul 23, 2019 at 3:33 PM &lt;<a href=3D"mailto:r=
uss@riw.us" target=3D"_blank">russ@riw.us</a>&gt; wrote:<br></div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px =
solid rgb(204,204,204);padding-left:1ex">Hello<br>
<br>
I have been selected to do a routing directorate =E2=80=9Cearly=E2=80=9D re=
view of this draft. <br>
<a href=3D"https://datatracker.ietf.org/doc/draft-foo-name/" rel=3D"norefer=
rer" target=3D"_blank">https://datatracker.ietf.org/doc/draft-foo-name/</a>=
<br>
<br>
The routing directorate will, on request from the working group chair, perf=
orm an =E2=80=9Cearly=E2=80=9D review of a draft before it is submitted for=
 publication to the IESG. The early review can be performed at any time dur=
ing the draft=E2=80=99s lifetime as a working group document. The purpose o=
f the early review depends on the stage that the document has reached.<br>
<br>
As this document has recently been adopted by the working group, my focus f=
or the review is on providing a new perspective on the work, with the inten=
tion of catching any issues early on in the document&#39;s life cycle.<br>
<br>
For more information about the Routing Directorate, please see <a href=3D"h=
ttp://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir" rel=3D"noreferrer" tar=
get=3D"_blank">http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir</a><br>
<br>
Document: draft-ietf-rift-rift-06<br>
Reviewer: Russ White<br>
Review Date: 23 July 2019<br>
Intended Status: Standards Track<br>
<br>
Summary: <br>
<br>
I have significant concerns about this document. It needs more work before =
being submitted to the IESG.<br>
<br>
Comments:<br>
<br>
Overall this draft is very readable, although I have suggested wording chan=
ges below. The protocol described is useful and interesting. I largely have=
 questions about the structure and wording of the draft, although there are=
 a couple of technical questions in the comments below (probably just thing=
s I missed the explanation for, however).<br>
<br>
Structurally, this document almost feels like two different documents. The =
first specifies a set of use cases and requirements, while the second speci=
fies a protocol. I wonder if it wouldn&#39;t be better to split this docume=
nt into two pieces, making each one more specific, and possibly a bit easie=
r to read? We might too late in the process to make such a change -- if so,=
 that&#39;s okay, just thought it might be worth considering.<br></blockquo=
te><div><br></div><div>On the intro add sentence &quot;this doc encompasses=
 reqs, secs and specs&quot; <br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
Throughout -- &quot;fat tree,&quot; &quot;Clos,&quot; and other terms are u=
sed in various places. As a reader, given the different meanings for these =
terms, I found this a bit confusing. It might be better to use &quot;spine =
and leaf&quot; throughout.<br></blockquote><div><br></div>Add to glossary: =
When we use term Clos we mean by it variants of Clos such as multi-plane an=
d what is loosely called Fat Tree and even more generic spine-and-leaf desi=
gns. <br></div><div class=3D"gmail_quote"> <br></div><div class=3D"gmail_qu=
ote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Throughout -- the term &quot;folded&quot; has two very different meanings..=
. The first is a multistage fabric on which traffic flows bi-directionally,=
 the second is a way of drawing spine and leaf fabrics in blocks. It might =
be useful to clarify this from the beginning somehow, so readers who are ex=
pecting one meaning don&#39;t misread things because a different meaning is=
 intended (?). I think it&#39;s always used here in the &quot;way of drawin=
g a spine and leaf fabric&quot; here.<br></blockquote><div><br></div><div>a=
dd to glossary: folded for us is drawing with spines on the top and implici=
tly assuming bi-directionality on all leafs. <br></div><div>=C2=A0</div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Page 9<br>
<br>
The definitions of the various forms of TIE might be better if they clearly=
 differentiated between topology and reachability information (?). The OSPF=
 router LSA, for instance, contains both kinds of information. In IS-IS, ad=
jacencies, which are called Node TIES (I think) are tlv22, while the Prefix=
 TIE would be a tlv128 and 236. I don&#39;t think there is an equivalent se=
paration between topology (reachable neighbors) and reachability (reachable=
 prefixes) in OSPF. <br></blockquote><div><br></div><div>remove the &quot;<=
span style=3D"font-size:16.5px;font-family:monospace">largely equivalent to=
 OSPF Router LSA&quot; part<br></span></div><div>=C2=A0</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
REQ13: &quot;Taking a path through the spine in cases where a shorter path =
is available is highly undesirable.&quot;<br>
<br>
This doesn&#39;t seem to be related to the previous statements in the requi=
rement... Not certain this needs to be included? Or maybe it wants to be so=
meplace else in the list?<br></blockquote><div><br></div><div>Split off the=
 sentence <br></div><div> <br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">
<br>
=3D=3D<br>
REQ10 and REQ13 both seem to say the same thing -- although REQ13 is better=
 worded. Maybe both of these are not needed?<br></blockquote><div><br></div=
>no action <br></div><div class=3D"gmail_quote"> <br></div><div class=3D"gm=
ail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.=
8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
REQ15: &quot;...links of a single node having same addresses.&quot; -- migh=
t be better as &quot;...links of a single node sharing the same address.&qu=
ot;<br>
<br></blockquote><div><br></div><div>accepted<br></div><div>=C2=A0</div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
REQ18: &quot;...security mechanisms that allow to restrict nodes, especiall=
y leafs without proper credentials from forming three-way adjacencies.&quot=
;<br>
<br>
Might be better as:<br>
<br>
&quot;...security mechanisms that allow the operator to restrict nodes, esp=
ecially leaf nodes without proper credentials, from forming a three-way adj=
acency.&quot;<br>
<br></blockquote><div><br></div><div>accepted <br></div><div> <br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
PEND2: 500,000 seems way too small for the scale numbers I&#39;ve heard in =
the past -- especially if we are including the underlay protocol running on=
 the hosts in the mix. If there are 300k ports is at least 1 prefix per edg=
e port, and potentially 10-15 prefixes per edge port. If you guess around 2=
0% of the workloads attached to the fabric might be mobile, then the number=
 here is more likely 1 million at the base, with a top end of around 2-3 mi=
llion prefixes. It might be worth adjusting this number a bit larger (?).<b=
r>
<br></blockquote><div><br></div><div>PEND2 to be killed <br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5, paragraph after the header<br>
<br>
&quot;...when &quot;pointing north&quot; and path vector [RFC4271] protocol=
 when &quot;pointing south&quot;. While this is an unusual combination,...&=
quot;<br>
<br>
Elsewhere in the document &quot;distance-vector&quot; is used. It might be =
better to be consistent?<br>
<br></blockquote><div><br></div><div>replace with distance vector <br></div=
><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px=
 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.1.1<br>
<br>
In the first paragraph (&quot;The most singular property...&quot;), omittin=
g east-west control plane information flow is mentioned twice; could probab=
ly just be once.<br></blockquote><div><br></div><div>Consult with Deborah w=
hether we should tighten the prose or make it &quot;looser&quot; ? <br></di=
v><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
The first sentence in the second paragraph is a bit of a run-on; might be b=
est to omit some of this, or break it into two sentences.<br>
<br>
Second paragraph: &quot;The application of those principle lead to RIFT...&=
quot; doesn&#39;t seem right. Might be better as: &quot;The application of =
these principles lead to RIFT...&quot;<br></blockquote><div><br></div><div>=
accepted<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">
<br>
=3D=3D<br>
Section 5.1.2, paragraph beginning: &quot;Given the difficulty of visualizi=
ng multi plane design which are...&quot; First, this is one long sentence. =
Second, what&#39;s illustrated looks like a crossbar, but it&#39;s not a cr=
ossbar. I find this a little confusing (?). The problem is -- I don&#39;t k=
now of another term to use here.<br></blockquote><div><br></div><div>senten=
ce needs splitting</div><div><br></div><div>crossbar stands <br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.1.2, paragraph beginning: &quot;The typical topology for which RI=
FT is defined is built of a number P...&quot; This seems to describe a five=
 stage butterfly or pod-and-spine fabric, but does not seem to describe a s=
even stage (?).<br></blockquote><div><br></div><div>by a number of &quot;to=
p of fabric&quot; nodes ... <br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
Overall -- I&#39;m not certain trying to describe these topologies at this =
level in a protocol specification draft is all that useful. The terminology=
 is fluid (used by different people in different ways), and this depth of e=
xplanation does not seem to be useful to describe the protocol operation. T=
his is one place where splitting the document into two pieces might be help=
ful.<br></blockquote><div><br></div><div>Word of caution sentence: please f=
ollow the glossary tightly, you get lost quickly otherwise ... <br></div><d=
iv>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0p=
x 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Paragraph beginning: &quot;It is critical at this junction that the concept=
 and the picture of...&quot; What is shown is not really a crossbar fabric.=
.. I&#39;m not certain calling this a crossbar is helpful here (?).<br></bl=
ockquote><div><br></div><div>add crossbar to glossary:=C2=A0 physical arran=
gement of ports in a switching matrix without implying any further scheduli=
ng or buffering disciplines<br></div><div><br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.1.4: &quot;This happens naturally in single plane design but need=
s additional considerations in multiplane fabrics.&quot; When aggregation i=
s used, as well -- but not when no aggregation of reachability information =
is deployed in the fabric. It might be worth adding that qualification here=
.<br></blockquote><div><br></div><div>when aggregation is used<br></div><di=
v>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.1.4<br>
<br>
Sentence beginning: &quot;In more detail, by reserving two ports on each To=
p-of-Fabric node it is possible to connect them together in an interplane b=
i-directional ring as illustrated in Figure 13...&quot;<br>
<br>
I might have missed it, but this document does not seem to address how traf=
fic will be prevented from flowing through these links. It&#39;s probably i=
mportant to note either that traffic will flow along these links, hence the=
y need to be sized appropriately, or how traffic is prevented from flowing =
along these links. <br>
<br></blockquote><div><br></div><div>defect: spec the computation or &quot;=
the computation has to prevent&quot; . Enhace section 5.2.4 by explaining h=
ow ToFs MUST not use the ring @ the top to forward&quot;<br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.1.5<br>
<br>
Sentence beginning: &quot;The effect of a positive disaggregation...&quot; =
If positive deaggregation takes place, it could draw all the traffic to the=
 deaggregated destinations along a small set of links, causing a hot spot i=
n the fabric. This might be taken care of &quot;naturally&quot; in the way =
RIFT does positive deaggregation, but it might be good to explain this in t=
he document.<br></blockquote><div><br></div><div>in the doc already <br></d=
iv><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
A more general observation: positive deaggregation, as described in the doc=
ument, can potentially cause cascading failures where a group of links or n=
odes fail, causing a lot of new information to be pushed into lower levels =
rather quickly, which could potentially cause those nodes to overrun their =
table or processing space and fail in turn, causing more information to be =
dumped into the control plane, etc. It may be worth connsidering having som=
e form of &quot;hysteresis,&quot; timer or other mechanism to prevent casca=
ding failures of this kind.<br></blockquote><div><br></div><div>positive is=
 NOT transitive hence comment needs no addressing. <br></div><div><br></div=
><div>Clarify maybe once more the fact. <br></div><div>=C2=A0</div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.2<br>
<br>
&quot;All RIFT routers MUST support IPv4 forwarding and MAY support IPv6...=
&quot;<br>
<br>
So an IPv6 only fabric is not possible? <br></blockquote><div><br></div><di=
v>based on multiple thread router requirements are removed <br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;After the SPF is run, it is necessary to attach according prefixes.&q=
uot;<br>
<br>
I think this might want to mean --<br>
<br>
&quot;After SPF is run, it is necessary to attach the resulting reachabilit=
y information in the form of prefixes.&quot; <br>
<br></blockquote><div><br></div><div>agreed<br></div><div>=C2=A0</div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:=
1px solid rgb(204,204,204);padding-left:1ex">
(?)<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
It seems like the first and third paragraphs describe the same procedure? A=
re both descriptions necessary?<br></blockquote><div><br></div><div>need to=
 be merged <br></div><div> <br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;An exemplary implementation...&quot; should probably be &quot;an exam=
ple implementation...&quot; ??<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;After the positive prefixes are attached and tie-broken, negative pre=
fixes are attached and used in case of northbound computation, ideally from=
 the shortest length to the longest.&quot;<br></blockquote><div>=C2=A0</div=
><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border=
-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
It seems like the prefixes should be &quot;tie-broken&quot; before being at=
tached. This sentence is generally confusing, perhaps: <br></blockquote><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">
<br>
&quot;After the positive prefixes have been attached, the negative prefixes=
 will be attached in their prefix-length order (from the shortest to the lo=
ngest). These negative prefixes will only be used when computing northbound=
 reachability.&quot;<br></blockquote><div><br></div><div>&quot;Attach all p=
refixes. Then build next-hop per type. Thne within types tie-break by seque=
nce in the model. if only negative remains run the according algorithm&quot=
;</div></div><div class=3D"gmail_quote"><br><div>Special Consideration for =
securtity Host implementation: suggestion to throttle aggressively, impleme=
ntation on the ToR to max-prefix/max-state knobbing <br></div><div>=C2=A0</=
div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor=
der-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;Observe that despite seeming quite computationally expensive the oper=
ations are only necessary if the only available advertisements for a prefix=
 are negative since tie-breaking always prefers positive information for th=
e prefix which stops any kind of recursion since positive information never=
 inherits next hops.&quot;<br>
<br>
Just because something is not done all that often does not mean it&#39;s no=
t computationally expensive. :-) Maybe something like this would be better:=
<br>
<br>
&quot;Although these operations can be computationally expensive, the overa=
ll load on devices in the network is low because these computations are not=
 run very often, as positive route advertisements are always preferred over=
 negative ones. This prevents recursion in most cases because positive reac=
hability information never inherits next hops.&quot;<br>
<br>
Or something like this?<br></blockquote><div><br></div><div>ack<br></div><d=
iv>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0p=
x 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;Negative 2001:db8::/32 entry inherits from&quot;<br>
<br>
Probably wants to be &quot;The negative 2001:db8::/32 entry...&quot;<br></b=
lockquote><div><br></div><div>nit</div><div> <br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;Finally, let us look at the case where S3 becomes available again as =
default gateway, ...&quot;<br>
<br>
&quot;...the default gateway...&quot; or &quot;...a default gateway...&quot=
;<br>
<br></blockquote><div>ack<br></div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">
=3D=3D<br>
Section 5.2.7<br>
<br>
&quot;Each RIFT node can optionally operate in zero touch provisioning...&q=
uot;<br>
<br>
&quot;optionally&quot; is not needed here<br></blockquote><div><br></div><d=
iv>&quot;RIFT nodes MAY use ZTP or be configured, both modes being mixed in=
 the same instance if desired&quot;</div><div><br></div><div>remove optiona=
lly<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:=
1ex">
<br>
=3D=3D<br>
Section 5.2.7.2<br>
<br>
&quot;RIFT identifies each node via a SystemID which is a 64 bits wide inte=
ger. It is relatively simple to derive a, for all practical purposes collis=
ion free, value for each node on startup. For that purpose, a node MUST use=
 as system ID EUI-64 MA-L format [EUI64] where the organizationally governe=
d 24 bits can be used to generate system IDs for multiple RIFT instances ru=
nning on the system.&quot;<br>
<br>
This seems too wordy -- maybe:<br>
<br>
&quot;RIFT nodes require a 64 bit SystemID in the EUI-64 MA-L format formed=
 as described in [EUI64]. The organizationally goverened portion of this ID=
=C2=A0 (24 bits) can be used to generate multiple IDs if required to indica=
te more than one RIFT instance.&quot;<br></blockquote><div><br></div><div>&=
quot;As prescribed by EUI ... RIFT nodes MUST form a 64 bit SID=C2=A0 <br><=
/div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.1<br>
<br>
&quot;Overload Bit MUST be respected...&quot;<br>
<br>
should be <br>
<br>
&quot;The overload bit MUST be respected...&quot;<br>
<br></blockquote><div><br></div><div>ack<br></div><div>=C2=A0</div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.2<br>
<br>
&quot;Since the leafs do see only &quot;one hop away&quot; they do not need=
 to run a full SPF but can simply gather prefix candidates from their neigh=
bors and build the according routing table.&quot;<br>
<br>
Seems like this should be <br>
<br>
&quot;Since leaf nodes only have one hop of topology information, they do n=
ot need to run SPF. Instead, they can gather the available prefix candidate=
s and build the routing table accordingly.&quot;<br></blockquote><div><br><=
/div><div>ack<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;time stamp: With this method, the infrastructure memorizes the...&quo=
t;<br>
<br>
I think the correct word here is &quot;records,&quot; rather than &quot;mem=
orizes&quot; (?)<br></blockquote><div><br></div><div>ack<br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;sequence counter: With this method, a mobile node notifies its point.=
..&quot;<br>
<br>
Another problem here is the node might not &quot;know&quot; it has been mov=
ed from one location to another in the fabric, particularly if a layer 2 on=
ly attached process is moved along with it&#39;s ARP cache, and something l=
ike the EVPN default MAC is used to enable the move. I don&#39;t know if th=
is is worth mentioning, but it does seem like a case that needs to be thoug=
ht about to make certain it works with the process described.<br>
<br></blockquote><div><br></div><div>no change necessary<br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;The leaf node MUST advertise a time stamp of the latest sighting...&q=
uot;<br>
<br>
Is this for all prefixes, or just for prefixes that are somehow marked or c=
onfigured as potentially mobile on the fabric?<br>
<br></blockquote><div><br></div><div>A leaf node MAY ... <br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;RIFT also defines an abstract negative clock (ANSC) that compares as =
less than any other clock.&quot;<br>
<br>
Does this mean lower priority, or always older than any other clock? It see=
ms like this means &quot;older&quot; based on 5.3.3.1, but the language cou=
ld probably be clearer.<br>
<br></blockquote><div><br></div><div>nothing to do<br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.3<br>
<br>
One thing not covered here is what happens if some workload moves between t=
wo RIFT fabrics interconnected via some other protocol, such as BGP. It see=
ms the most obvious solution is to have RIFT treat redistributed destinatio=
ns the same as directly attached destinations in terms of clocks, etc., but=
 this is not called out in the document. It might be worth mentioning.<br>
<br></blockquote><div><br></div><div>no action<br></div><div>=C2=A0</div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le=
ft:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.3.3<br>
<br>
This section seems a little ... muddled? You want to both have the ability =
to use only the most recently available versions of any anycast destination=
, while also not requiring all the anycast advertisements to have the same =
time stamp (?). I&#39;m not certain this section entirely solves that probl=
em. This sentence might be creating the confusion in my reading of the sect=
ion, as I don&#39;t really understand what it is saying: <br>
<br>
&quot;An anycast prefix does not carry a clock or all clock attributes MUST=
 be the same under the rules of Section 5.3.3.1.&quot;<br>
<br>
MUST be treated the same as prefixes advertised under the rules of 5.3.3.1?=
 I&#39;m not certain.<br></blockquote><div><br></div><div>it&#39;s complex =
for a reason. left as that. <br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.3.4<br>
<br>
&quot;RIFT is agnostic whether any overlay technology like [MIP, LISP, VxLA=
N, NVO3] and the associated signaling is deployed over it. But it is expect=
ed that leaf nodes, and possibly Top-of-Fabric nodes can perform the accord=
ing encapsulation.&quot;<br>
<br>
&quot;according&quot; should be &quot;correct,&quot; I think. <br></blockqu=
ote><div><br></div><div>fine<br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.6.1<br>
<br>
&quot;All the multiplications and additions are saturating, i.e. when excee=
ding range of the bandwidth type are set to highest possible value of the t=
ype.&quot;<br>
<br>
Maybe better:<br>
<br>
&quot;If a calculation produces a result exceeding the range of the type, t=
he result is set to the highest possible value for that type.&quot;<br>
<br></blockquote><div><br></div><div>fine <br></div><div> <br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
_______________________________________________<br>
RIFT mailing list<br>
<a href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/rift" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/rift</a><br>
</blockquote></div></div>

--000000000000674425058e81923f--


From nobody Thu Jul 25 06:41:53 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5B53B120073; Thu, 25 Jul 2019 06:41:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 B9kBIKbf8pY7; Thu, 25 Jul 2019 06:41:47 -0700 (PDT)
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) (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 B6796120261; Thu, 25 Jul 2019 06:41:43 -0700 (PDT)
Received: by mail-ed1-x52a.google.com with SMTP id w20so50251498edd.2; Thu, 25 Jul 2019 06:41:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uDvxWwHakzKd6zOyadV1WAlugRVA33bpwGc2rhaLvMY=; b=uj54h+buiLFQOJqSX4lQ6ULa1n2eHw87D+GU2NGPHZfZW+vc5WoGjY7xxId5PbD19Y VIZFMjyOBZ8rryfumo/NMO+cO8n/6Jqlhb2tDE8ChDyaEIKmd9IbQLYex49ZYIrzooQW rIZ3KVi2G1UgGDrluL1lZ3zVjo0ZQeVx6XR/bKiaR8cHUYUe3aVwIgDha8kKA76blbDJ rh7D63BZtVdq9UOpqFTyMG6A3SvrSaqZA5nGrLxY6UV05R3XzaEfsefJMn+ZX4zC8LTc h2RokByRc6Z3AJVDVg/Dx2uCKTD1G+r++UGiGWYR0MmhzuKOm7qBb27H+jSREV4wFwkI O0eg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uDvxWwHakzKd6zOyadV1WAlugRVA33bpwGc2rhaLvMY=; b=XGuQFHwDJUS7yCBKgSJmikcfnXkTirxm0nn04sKdTOtt1bxvafbyy2IWNXtNLIPLai d61+tLzM+pz6gAWAEoHuBxY2FyNnFSOd1HgkCvX9HAuvc1dLZRE8xSe5cZKbtSgkMBLq xFlhXdCH6PxzXKabgXHcB8SRyIegDHLHLE09rLj8uHdSJdzMby7KZ+pGsWNPARAcyGjB CE2yhJZUYwDtH0idWWtXCajqpfQKSMLPOg+9KFA6sfN/hRqLiLRHkClTaPkUfCa9RxNS fVZaHrz85uVco1Hr+ZmrGFGil0buLlaMU/BaWvEIY1nPE/yagURBk+O3gGaDOKwUwVyx 41xw==
X-Gm-Message-State: APjAAAWGSWdceXfhYO+GEHzNgPQWEoZE4t6Up1LdXJj3fy/jsDS3zwPI Z7jjO4MtWJK7mSg6rM99ln5apaku0waQeGc6tGI=
X-Google-Smtp-Source: APXvYqxF/145XSDKXvOYJ2HXZ3AmU98UdJbjcJVnOpl1Ubki7fYuaiaJULNWR9UX2JMT8UvDRjC2r4TS+CssN9tyxtk=
X-Received: by 2002:a50:b13b:: with SMTP id k56mr79339278edd.192.1564062102154;  Thu, 25 Jul 2019 06:41:42 -0700 (PDT)
MIME-Version: 1.0
References: <097e01d5418d$847ee300$8d7ca900$@riw.us> <CA+wi2hO8_-u64-4vo-64GY7KZtdL4s-qKprvLzcjoSmn2jC7XA@mail.gmail.com>
In-Reply-To: <CA+wi2hO8_-u64-4vo-64GY7KZtdL4s-qKprvLzcjoSmn2jC7XA@mail.gmail.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Thu, 25 Jul 2019 09:41:06 -0400
Message-ID: <CA+wi2hOaDevFPN1eSZGSGzr081REp=Oq6=H6r+OxMp3a9hfYcQ@mail.gmail.com>
To: Russ White <russ@riw.us>
Cc: rtg-wg-chairs@ietf.org, draft-ietf-rift-rift@ietf.org, rtg-dir@ietf.org,  rift@ietf.org
Content-Type: multipart/alternative; boundary="0000000000000173f6058e819654"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/xmKHWTjJntD7V4k79HGMCBXKJEs>
Subject: Re: [Rift] RtgDir Early review: draft-ietf-rift-rift-06
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jul 2019 13:41:53 -0000

--0000000000000173f6058e819654
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

BTW, if desired recordings of the ssions on my laptop and I can share them
if desired. very tedious, very boring ...

On Thu, Jul 25, 2019 at 9:40 AM Tony Przygienda <tonysietf@gmail.com> wrote=
:

> Meeting minutes of the author/review meet on the comments
>
> On Tue, Jul 23, 2019 at 3:33 PM <russ@riw.us> wrote:
>
>> Hello
>>
>> I have been selected to do a routing directorate =E2=80=9Cearly=E2=80=9D=
 review of this
>> draft.
>> https://datatracker.ietf.org/doc/draft-foo-name/
>>
>> The routing directorate will, on request from the working group chair,
>> perform an =E2=80=9Cearly=E2=80=9D review of a draft before it is submit=
ted for publication
>> to the IESG. The early review can be performed at any time during the
>> draft=E2=80=99s lifetime as a working group document. The purpose of the=
 early
>> review depends on the stage that the document has reached.
>>
>> As this document has recently been adopted by the working group, my focu=
s
>> for the review is on providing a new perspective on the work, with the
>> intention of catching any issues early on in the document's life cycle.
>>
>> For more information about the Routing Directorate, please see
>> http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir
>>
>> Document: draft-ietf-rift-rift-06
>> Reviewer: Russ White
>> Review Date: 23 July 2019
>> Intended Status: Standards Track
>>
>> Summary:
>>
>> I have significant concerns about this document. It needs more work
>> before being submitted to the IESG.
>>
>> Comments:
>>
>> Overall this draft is very readable, although I have suggested wording
>> changes below. The protocol described is useful and interesting. I large=
ly
>> have questions about the structure and wording of the draft, although th=
ere
>> are a couple of technical questions in the comments below (probably just
>> things I missed the explanation for, however).
>>
>> Structurally, this document almost feels like two different documents.
>> The first specifies a set of use cases and requirements, while the secon=
d
>> specifies a protocol. I wonder if it wouldn't be better to split this
>> document into two pieces, making each one more specific, and possibly a =
bit
>> easier to read? We might too late in the process to make such a change -=
-
>> if so, that's okay, just thought it might be worth considering.
>>
>
> On the intro add sentence "this doc encompasses reqs, secs and specs"
>
>
>>
>> Throughout -- "fat tree," "Clos," and other terms are used in various
>> places. As a reader, given the different meanings for these terms, I fou=
nd
>> this a bit confusing. It might be better to use "spine and leaf" through=
out.
>>
>
> Add to glossary: When we use term Clos we mean by it variants of Clos suc=
h
> as multi-plane and what is loosely called Fat Tree and even more generic
> spine-and-leaf designs.
>
>
>> Throughout -- the term "folded" has two very different meanings... The
>> first is a multistage fabric on which traffic flows bi-directionally, th=
e
>> second is a way of drawing spine and leaf fabrics in blocks. It might be
>> useful to clarify this from the beginning somehow, so readers who are
>> expecting one meaning don't misread things because a different meaning i=
s
>> intended (?). I think it's always used here in the "way of drawing a spi=
ne
>> and leaf fabric" here.
>>
>
> add to glossary: folded for us is drawing with spines on the top and
> implicitly assuming bi-directionality on all leafs.
>
>
>>
>> =3D=3D
>> Page 9
>>
>> The definitions of the various forms of TIE might be better if they
>> clearly differentiated between topology and reachability information (?)=
.
>> The OSPF router LSA, for instance, contains both kinds of information. I=
n
>> IS-IS, adjacencies, which are called Node TIES (I think) are tlv22, whil=
e
>> the Prefix TIE would be a tlv128 and 236. I don't think there is an
>> equivalent separation between topology (reachable neighbors) and
>> reachability (reachable prefixes) in OSPF.
>>
>
> remove the "largely equivalent to OSPF Router LSA" part
>
>
>>
>> =3D=3D
>> REQ13: "Taking a path through the spine in cases where a shorter path is
>> available is highly undesirable."
>>
>> This doesn't seem to be related to the previous statements in the
>> requirement... Not certain this needs to be included? Or maybe it wants =
to
>> be someplace else in the list?
>>
>
> Split off the sentence
>
>
>> =3D=3D
>> REQ10 and REQ13 both seem to say the same thing -- although REQ13 is
>> better worded. Maybe both of these are not needed?
>>
>
> no action
>
>
>> =3D=3D
>> REQ15: "...links of a single node having same addresses." -- might be
>> better as "...links of a single node sharing the same address."
>>
>>
> accepted
>
>
>> =3D=3D
>> REQ18: "...security mechanisms that allow to restrict nodes, especially
>> leafs without proper credentials from forming three-way adjacencies."
>>
>> Might be better as:
>>
>> "...security mechanisms that allow the operator to restrict nodes,
>> especially leaf nodes without proper credentials, from forming a three-w=
ay
>> adjacency."
>>
>>
> accepted
>
> =3D=3D
>> PEND2: 500,000 seems way too small for the scale numbers I've heard in
>> the past -- especially if we are including the underlay protocol running=
 on
>> the hosts in the mix. If there are 300k ports is at least 1 prefix per e=
dge
>> port, and potentially 10-15 prefixes per edge port. If you guess around =
20%
>> of the workloads attached to the fabric might be mobile, then the number
>> here is more likely 1 million at the base, with a top end of around 2-3
>> million prefixes. It might be worth adjusting this number a bit larger (=
?).
>>
>>
> PEND2 to be killed
>
>
>> =3D=3D
>> Section 5, paragraph after the header
>>
>> "...when "pointing north" and path vector [RFC4271] protocol when
>> "pointing south". While this is an unusual combination,..."
>>
>> Elsewhere in the document "distance-vector" is used. It might be better
>> to be consistent?
>>
>>
> replace with distance vector
>
>
>> =3D=3D
>> Section 5.1.1
>>
>> In the first paragraph ("The most singular property..."), omitting
>> east-west control plane information flow is mentioned twice; could proba=
bly
>> just be once.
>>
>
> Consult with Deborah whether we should tighten the prose or make it
> "looser" ?
>
>
>> The first sentence in the second paragraph is a bit of a run-on; might b=
e
>> best to omit some of this, or break it into two sentences.
>>
>> Second paragraph: "The application of those principle lead to RIFT..."
>> doesn't seem right. Might be better as: "The application of these
>> principles lead to RIFT..."
>>
>
> accepted
>
>
>>
>> =3D=3D
>> Section 5.1.2, paragraph beginning: "Given the difficulty of visualizing
>> multi plane design which are..." First, this is one long sentence. Secon=
d,
>> what's illustrated looks like a crossbar, but it's not a crossbar. I fin=
d
>> this a little confusing (?). The problem is -- I don't know of another t=
erm
>> to use here.
>>
>
> sentence needs splitting
>
> crossbar stands
>
>
>>
>> =3D=3D
>> Section 5.1.2, paragraph beginning: "The typical topology for which RIFT
>> is defined is built of a number P..." This seems to describe a five stag=
e
>> butterfly or pod-and-spine fabric, but does not seem to describe a seven
>> stage (?).
>>
>
> by a number of "top of fabric" nodes ...
>
>
>>
>> Overall -- I'm not certain trying to describe these topologies at this
>> level in a protocol specification draft is all that useful. The terminol=
ogy
>> is fluid (used by different people in different ways), and this depth of
>> explanation does not seem to be useful to describe the protocol operatio=
n.
>> This is one place where splitting the document into two pieces might be
>> helpful.
>>
>
> Word of caution sentence: please follow the glossary tightly, you get los=
t
> quickly otherwise ...
>
>
>>
>> =3D=3D
>> Paragraph beginning: "It is critical at this junction that the concept
>> and the picture of..." What is shown is not really a crossbar fabric... =
I'm
>> not certain calling this a crossbar is helpful here (?).
>>
>
> add crossbar to glossary:  physical arrangement of ports in a switching
> matrix without implying any further scheduling or buffering disciplines
>
>
>> =3D=3D
>> Section 5.1.4: "This happens naturally in single plane design but needs
>> additional considerations in multiplane fabrics." When aggregation is us=
ed,
>> as well -- but not when no aggregation of reachability information is
>> deployed in the fabric. It might be worth adding that qualification here=
.
>>
>
> when aggregation is used
>
>
>>
>> =3D=3D
>> Section 5.1.4
>>
>> Sentence beginning: "In more detail, by reserving two ports on each
>> Top-of-Fabric node it is possible to connect them together in an interpl=
ane
>> bi-directional ring as illustrated in Figure 13..."
>>
>> I might have missed it, but this document does not seem to address how
>> traffic will be prevented from flowing through these links. It's probabl=
y
>> important to note either that traffic will flow along these links, hence
>> they need to be sized appropriately, or how traffic is prevented from
>> flowing along these links.
>>
>>
> defect: spec the computation or "the computation has to prevent" . Enhace
> section 5.2.4 by explaining how ToFs MUST not use the ring @ the top to
> forward"
>
>
>> =3D=3D
>> Section 5.1.5
>>
>> Sentence beginning: "The effect of a positive disaggregation..." If
>> positive deaggregation takes place, it could draw all the traffic to the
>> deaggregated destinations along a small set of links, causing a hot spot=
 in
>> the fabric. This might be taken care of "naturally" in the way RIFT does
>> positive deaggregation, but it might be good to explain this in the
>> document.
>>
>
> in the doc already
>
>
>>
>> A more general observation: positive deaggregation, as described in the
>> document, can potentially cause cascading failures where a group of link=
s
>> or nodes fail, causing a lot of new information to be pushed into lower
>> levels rather quickly, which could potentially cause those nodes to over=
run
>> their table or processing space and fail in turn, causing more informati=
on
>> to be dumped into the control plane, etc. It may be worth connsidering
>> having some form of "hysteresis," timer or other mechanism to prevent
>> cascading failures of this kind.
>>
>
> positive is NOT transitive hence comment needs no addressing.
>
> Clarify maybe once more the fact.
>
>
>>
>> =3D=3D
>> Section 5.2.2
>>
>> "All RIFT routers MUST support IPv4 forwarding and MAY support IPv6..."
>>
>> So an IPv6 only fabric is not possible?
>>
>
> based on multiple thread router requirements are removed
>
>
>>
>> =3D=3D
>> Section 5.2.6
>>
>> "After the SPF is run, it is necessary to attach according prefixes."
>>
>> I think this might want to mean --
>>
>> "After SPF is run, it is necessary to attach the resulting reachability
>> information in the form of prefixes."
>>
>>
> agreed
>
>
>> (?)
>>
>> =3D=3D
>> Section 5.2.6
>>
>> It seems like the first and third paragraphs describe the same procedure=
?
>> Are both descriptions necessary?
>>
>
> need to be merged
>
>
>> =3D=3D
>> Section 5.2.6
>>
>> "An exemplary implementation..." should probably be "an example
>> implementation..." ??
>>
>> =3D=3D
>> Section 5.2.6
>>
>> "After the positive prefixes are attached and tie-broken, negative
>> prefixes are attached and used in case of northbound computation, ideall=
y
>> from the shortest length to the longest."
>>
>
>
>>
>> It seems like the prefixes should be "tie-broken" before being attached.
>> This sentence is generally confusing, perhaps:
>>
>
>> "After the positive prefixes have been attached, the negative prefixes
>> will be attached in their prefix-length order (from the shortest to the
>> longest). These negative prefixes will only be used when computing
>> northbound reachability."
>>
>
> "Attach all prefixes. Then build next-hop per type. Thne within types
> tie-break by sequence in the model. if only negative remains run the
> according algorithm"
>
> Special Consideration for securtity Host implementation: suggestion to
> throttle aggressively, implementation on the ToR to max-prefix/max-state
> knobbing
>
>
>>
>> =3D=3D
>> Section 5.2.6
>>
>> "Observe that despite seeming quite computationally expensive the
>> operations are only necessary if the only available advertisements for a
>> prefix are negative since tie-breaking always prefers positive informati=
on
>> for the prefix which stops any kind of recursion since positive informat=
ion
>> never inherits next hops."
>>
>> Just because something is not done all that often does not mean it's not
>> computationally expensive. :-) Maybe something like this would be better=
:
>>
>> "Although these operations can be computationally expensive, the overall
>> load on devices in the network is low because these computations are not
>> run very often, as positive route advertisements are always preferred ov=
er
>> negative ones. This prevents recursion in most cases because positive
>> reachability information never inherits next hops."
>>
>> Or something like this?
>>
>
> ack
>
>
>>
>> =3D=3D
>> Section 5.2.6
>>
>> "Negative 2001:db8::/32 entry inherits from"
>>
>> Probably wants to be "The negative 2001:db8::/32 entry..."
>>
>
> nit
>
>
>> =3D=3D
>> Section 5.2.6
>>
>> "Finally, let us look at the case where S3 becomes available again as
>> default gateway, ..."
>>
>> "...the default gateway..." or "...a default gateway..."
>>
>> ack
>
>
>> =3D=3D
>> Section 5.2.7
>>
>> "Each RIFT node can optionally operate in zero touch provisioning..."
>>
>> "optionally" is not needed here
>>
>
> "RIFT nodes MAY use ZTP or be configured, both modes being mixed in the
> same instance if desired"
>
> remove optionally
>
>
>>
>> =3D=3D
>> Section 5.2.7.2
>>
>> "RIFT identifies each node via a SystemID which is a 64 bits wide
>> integer. It is relatively simple to derive a, for all practical purposes
>> collision free, value for each node on startup. For that purpose, a node
>> MUST use as system ID EUI-64 MA-L format [EUI64] where the organizationa=
lly
>> governed 24 bits can be used to generate system IDs for multiple RIFT
>> instances running on the system."
>>
>> This seems too wordy -- maybe:
>>
>> "RIFT nodes require a 64 bit SystemID in the EUI-64 MA-L format formed a=
s
>> described in [EUI64]. The organizationally goverened portion of this ID
>> (24 bits) can be used to generate multiple IDs if required to indicate m=
ore
>> than one RIFT instance."
>>
>
> "As prescribed by EUI ... RIFT nodes MUST form a 64 bit SID
>
>
>>
>> =3D=3D
>> Section 5.3.1
>>
>> "Overload Bit MUST be respected..."
>>
>> should be
>>
>> "The overload bit MUST be respected..."
>>
>>
> ack
>
>
>> =3D=3D
>> Section 5.3.2
>>
>> "Since the leafs do see only "one hop away" they do not need to run a
>> full SPF but can simply gather prefix candidates from their neighbors an=
d
>> build the according routing table."
>>
>> Seems like this should be
>>
>> "Since leaf nodes only have one hop of topology information, they do not
>> need to run SPF. Instead, they can gather the available prefix candidate=
s
>> and build the routing table accordingly."
>>
>
> ack
>
>
>>
>> =3D=3D
>> Section 5.3.3
>>
>> "time stamp: With this method, the infrastructure memorizes the..."
>>
>> I think the correct word here is "records," rather than "memorizes" (?)
>>
>
> ack
>
>
>>
>> =3D=3D
>> Section 5.3.3
>>
>> "sequence counter: With this method, a mobile node notifies its point...=
"
>>
>> Another problem here is the node might not "know" it has been moved from
>> one location to another in the fabric, particularly if a layer 2 only
>> attached process is moved along with it's ARP cache, and something like =
the
>> EVPN default MAC is used to enable the move. I don't know if this is wor=
th
>> mentioning, but it does seem like a case that needs to be thought about =
to
>> make certain it works with the process described.
>>
>>
> no change necessary
>
>
>> =3D=3D
>> Section 5.3.3
>>
>> "The leaf node MUST advertise a time stamp of the latest sighting..."
>>
>> Is this for all prefixes, or just for prefixes that are somehow marked o=
r
>> configured as potentially mobile on the fabric?
>>
>>
> A leaf node MAY ...
>
>
>> =3D=3D
>> Section 5.3.3
>>
>> "RIFT also defines an abstract negative clock (ANSC) that compares as
>> less than any other clock."
>>
>> Does this mean lower priority, or always older than any other clock? It
>> seems like this means "older" based on 5.3.3.1, but the language could
>> probably be clearer.
>>
>>
> nothing to do
>
>
>> =3D=3D
>> Section 5.3.3
>>
>> One thing not covered here is what happens if some workload moves betwee=
n
>> two RIFT fabrics interconnected via some other protocol, such as BGP. It
>> seems the most obvious solution is to have RIFT treat redistributed
>> destinations the same as directly attached destinations in terms of cloc=
ks,
>> etc., but this is not called out in the document. It might be worth
>> mentioning.
>>
>>
> no action
>
>
>> =3D=3D
>> Section 5.3.3.3
>>
>> This section seems a little ... muddled? You want to both have the
>> ability to use only the most recently available versions of any anycast
>> destination, while also not requiring all the anycast advertisements to
>> have the same time stamp (?). I'm not certain this section entirely solv=
es
>> that problem. This sentence might be creating the confusion in my readin=
g
>> of the section, as I don't really understand what it is saying:
>>
>> "An anycast prefix does not carry a clock or all clock attributes MUST b=
e
>> the same under the rules of Section 5.3.3.1."
>>
>> MUST be treated the same as prefixes advertised under the rules of
>> 5.3.3.1? I'm not certain.
>>
>
> it's complex for a reason. left as that.
>
>
>>
>> =3D=3D
>> Section 5.3.3.4
>>
>> "RIFT is agnostic whether any overlay technology like [MIP, LISP, VxLAN,
>> NVO3] and the associated signaling is deployed over it. But it is expect=
ed
>> that leaf nodes, and possibly Top-of-Fabric nodes can perform the accord=
ing
>> encapsulation."
>>
>> "according" should be "correct," I think.
>>
>
> fine
>
>
>>
>> =3D=3D
>> Section 5.3.6.1
>>
>> "All the multiplications and additions are saturating, i.e. when
>> exceeding range of the bandwidth type are set to highest possible value =
of
>> the type."
>>
>> Maybe better:
>>
>> "If a calculation produces a result exceeding the range of the type, the
>> result is set to the highest possible value for that type."
>>
>>
> fine
>
>
>>
>> _______________________________________________
>> RIFT mailing list
>> RIFT@ietf.org
>> https://www.ietf.org/mailman/listinfo/rift
>>
>

--0000000000000173f6058e819654
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">BTW, if desired recordings of the ssions on my laptop and =
I can share them if desired. very tedious, very boring ... <br></div><br><d=
iv class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, Jul =
25, 2019 at 9:40 AM Tony Przygienda &lt;<a href=3D"mailto:tonysietf@gmail.c=
om">tonysietf@gmail.com</a>&gt; wrote:<br></div><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 dir=3D"ltr"><div dir=3D"ltr">Meeting minutes of=
 the author/review meet on the comments<br></div><br><div class=3D"gmail_qu=
ote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jul 23, 2019 at 3:33 PM =
&lt;<a href=3D"mailto:russ@riw.us" target=3D"_blank">russ@riw.us</a>&gt; wr=
ote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello<br>
<br>
I have been selected to do a routing directorate =E2=80=9Cearly=E2=80=9D re=
view of this draft. <br>
<a href=3D"https://datatracker.ietf.org/doc/draft-foo-name/" rel=3D"norefer=
rer" target=3D"_blank">https://datatracker.ietf.org/doc/draft-foo-name/</a>=
<br>
<br>
The routing directorate will, on request from the working group chair, perf=
orm an =E2=80=9Cearly=E2=80=9D review of a draft before it is submitted for=
 publication to the IESG. The early review can be performed at any time dur=
ing the draft=E2=80=99s lifetime as a working group document. The purpose o=
f the early review depends on the stage that the document has reached.<br>
<br>
As this document has recently been adopted by the working group, my focus f=
or the review is on providing a new perspective on the work, with the inten=
tion of catching any issues early on in the document&#39;s life cycle.<br>
<br>
For more information about the Routing Directorate, please see <a href=3D"h=
ttp://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir" rel=3D"noreferrer" tar=
get=3D"_blank">http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir</a><br>
<br>
Document: draft-ietf-rift-rift-06<br>
Reviewer: Russ White<br>
Review Date: 23 July 2019<br>
Intended Status: Standards Track<br>
<br>
Summary: <br>
<br>
I have significant concerns about this document. It needs more work before =
being submitted to the IESG.<br>
<br>
Comments:<br>
<br>
Overall this draft is very readable, although I have suggested wording chan=
ges below. The protocol described is useful and interesting. I largely have=
 questions about the structure and wording of the draft, although there are=
 a couple of technical questions in the comments below (probably just thing=
s I missed the explanation for, however).<br>
<br>
Structurally, this document almost feels like two different documents. The =
first specifies a set of use cases and requirements, while the second speci=
fies a protocol. I wonder if it wouldn&#39;t be better to split this docume=
nt into two pieces, making each one more specific, and possibly a bit easie=
r to read? We might too late in the process to make such a change -- if so,=
 that&#39;s okay, just thought it might be worth considering.<br></blockquo=
te><div><br></div><div>On the intro add sentence &quot;this doc encompasses=
 reqs, secs and specs&quot; <br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
Throughout -- &quot;fat tree,&quot; &quot;Clos,&quot; and other terms are u=
sed in various places. As a reader, given the different meanings for these =
terms, I found this a bit confusing. It might be better to use &quot;spine =
and leaf&quot; throughout.<br></blockquote><div><br></div>Add to glossary: =
When we use term Clos we mean by it variants of Clos such as multi-plane an=
d what is loosely called Fat Tree and even more generic spine-and-leaf desi=
gns. <br></div><div class=3D"gmail_quote"> <br></div><div class=3D"gmail_qu=
ote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Throughout -- the term &quot;folded&quot; has two very different meanings..=
. The first is a multistage fabric on which traffic flows bi-directionally,=
 the second is a way of drawing spine and leaf fabrics in blocks. It might =
be useful to clarify this from the beginning somehow, so readers who are ex=
pecting one meaning don&#39;t misread things because a different meaning is=
 intended (?). I think it&#39;s always used here in the &quot;way of drawin=
g a spine and leaf fabric&quot; here.<br></blockquote><div><br></div><div>a=
dd to glossary: folded for us is drawing with spines on the top and implici=
tly assuming bi-directionality on all leafs. <br></div><div>=C2=A0</div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Page 9<br>
<br>
The definitions of the various forms of TIE might be better if they clearly=
 differentiated between topology and reachability information (?). The OSPF=
 router LSA, for instance, contains both kinds of information. In IS-IS, ad=
jacencies, which are called Node TIES (I think) are tlv22, while the Prefix=
 TIE would be a tlv128 and 236. I don&#39;t think there is an equivalent se=
paration between topology (reachable neighbors) and reachability (reachable=
 prefixes) in OSPF. <br></blockquote><div><br></div><div>remove the &quot;<=
span style=3D"font-size:16.5px;font-family:monospace">largely equivalent to=
 OSPF Router LSA&quot; part<br></span></div><div>=C2=A0</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
REQ13: &quot;Taking a path through the spine in cases where a shorter path =
is available is highly undesirable.&quot;<br>
<br>
This doesn&#39;t seem to be related to the previous statements in the requi=
rement... Not certain this needs to be included? Or maybe it wants to be so=
meplace else in the list?<br></blockquote><div><br></div><div>Split off the=
 sentence <br></div><div> <br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">
<br>
=3D=3D<br>
REQ10 and REQ13 both seem to say the same thing -- although REQ13 is better=
 worded. Maybe both of these are not needed?<br></blockquote><div><br></div=
>no action <br></div><div class=3D"gmail_quote"> <br></div><div class=3D"gm=
ail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.=
8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
REQ15: &quot;...links of a single node having same addresses.&quot; -- migh=
t be better as &quot;...links of a single node sharing the same address.&qu=
ot;<br>
<br></blockquote><div><br></div><div>accepted<br></div><div>=C2=A0</div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
REQ18: &quot;...security mechanisms that allow to restrict nodes, especiall=
y leafs without proper credentials from forming three-way adjacencies.&quot=
;<br>
<br>
Might be better as:<br>
<br>
&quot;...security mechanisms that allow the operator to restrict nodes, esp=
ecially leaf nodes without proper credentials, from forming a three-way adj=
acency.&quot;<br>
<br></blockquote><div><br></div><div>accepted <br></div><div> <br></div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
PEND2: 500,000 seems way too small for the scale numbers I&#39;ve heard in =
the past -- especially if we are including the underlay protocol running on=
 the hosts in the mix. If there are 300k ports is at least 1 prefix per edg=
e port, and potentially 10-15 prefixes per edge port. If you guess around 2=
0% of the workloads attached to the fabric might be mobile, then the number=
 here is more likely 1 million at the base, with a top end of around 2-3 mi=
llion prefixes. It might be worth adjusting this number a bit larger (?).<b=
r>
<br></blockquote><div><br></div><div>PEND2 to be killed <br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5, paragraph after the header<br>
<br>
&quot;...when &quot;pointing north&quot; and path vector [RFC4271] protocol=
 when &quot;pointing south&quot;. While this is an unusual combination,...&=
quot;<br>
<br>
Elsewhere in the document &quot;distance-vector&quot; is used. It might be =
better to be consistent?<br>
<br></blockquote><div><br></div><div>replace with distance vector <br></div=
><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px=
 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.1.1<br>
<br>
In the first paragraph (&quot;The most singular property...&quot;), omittin=
g east-west control plane information flow is mentioned twice; could probab=
ly just be once.<br></blockquote><div><br></div><div>Consult with Deborah w=
hether we should tighten the prose or make it &quot;looser&quot; ? <br></di=
v><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
The first sentence in the second paragraph is a bit of a run-on; might be b=
est to omit some of this, or break it into two sentences.<br>
<br>
Second paragraph: &quot;The application of those principle lead to RIFT...&=
quot; doesn&#39;t seem right. Might be better as: &quot;The application of =
these principles lead to RIFT...&quot;<br></blockquote><div><br></div><div>=
accepted<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex">
<br>
=3D=3D<br>
Section 5.1.2, paragraph beginning: &quot;Given the difficulty of visualizi=
ng multi plane design which are...&quot; First, this is one long sentence. =
Second, what&#39;s illustrated looks like a crossbar, but it&#39;s not a cr=
ossbar. I find this a little confusing (?). The problem is -- I don&#39;t k=
now of another term to use here.<br></blockquote><div><br></div><div>senten=
ce needs splitting</div><div><br></div><div>crossbar stands <br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.1.2, paragraph beginning: &quot;The typical topology for which RI=
FT is defined is built of a number P...&quot; This seems to describe a five=
 stage butterfly or pod-and-spine fabric, but does not seem to describe a s=
even stage (?).<br></blockquote><div><br></div><div>by a number of &quot;to=
p of fabric&quot; nodes ... <br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
Overall -- I&#39;m not certain trying to describe these topologies at this =
level in a protocol specification draft is all that useful. The terminology=
 is fluid (used by different people in different ways), and this depth of e=
xplanation does not seem to be useful to describe the protocol operation. T=
his is one place where splitting the document into two pieces might be help=
ful.<br></blockquote><div><br></div><div>Word of caution sentence: please f=
ollow the glossary tightly, you get lost quickly otherwise ... <br></div><d=
iv>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0p=
x 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Paragraph beginning: &quot;It is critical at this junction that the concept=
 and the picture of...&quot; What is shown is not really a crossbar fabric.=
.. I&#39;m not certain calling this a crossbar is helpful here (?).<br></bl=
ockquote><div><br></div><div>add crossbar to glossary:=C2=A0 physical arran=
gement of ports in a switching matrix without implying any further scheduli=
ng or buffering disciplines<br></div><div><br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.1.4: &quot;This happens naturally in single plane design but need=
s additional considerations in multiplane fabrics.&quot; When aggregation i=
s used, as well -- but not when no aggregation of reachability information =
is deployed in the fabric. It might be worth adding that qualification here=
.<br></blockquote><div><br></div><div>when aggregation is used<br></div><di=
v>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.1.4<br>
<br>
Sentence beginning: &quot;In more detail, by reserving two ports on each To=
p-of-Fabric node it is possible to connect them together in an interplane b=
i-directional ring as illustrated in Figure 13...&quot;<br>
<br>
I might have missed it, but this document does not seem to address how traf=
fic will be prevented from flowing through these links. It&#39;s probably i=
mportant to note either that traffic will flow along these links, hence the=
y need to be sized appropriately, or how traffic is prevented from flowing =
along these links. <br>
<br></blockquote><div><br></div><div>defect: spec the computation or &quot;=
the computation has to prevent&quot; . Enhace section 5.2.4 by explaining h=
ow ToFs MUST not use the ring @ the top to forward&quot;<br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.1.5<br>
<br>
Sentence beginning: &quot;The effect of a positive disaggregation...&quot; =
If positive deaggregation takes place, it could draw all the traffic to the=
 deaggregated destinations along a small set of links, causing a hot spot i=
n the fabric. This might be taken care of &quot;naturally&quot; in the way =
RIFT does positive deaggregation, but it might be good to explain this in t=
he document.<br></blockquote><div><br></div><div>in the doc already <br></d=
iv><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
A more general observation: positive deaggregation, as described in the doc=
ument, can potentially cause cascading failures where a group of links or n=
odes fail, causing a lot of new information to be pushed into lower levels =
rather quickly, which could potentially cause those nodes to overrun their =
table or processing space and fail in turn, causing more information to be =
dumped into the control plane, etc. It may be worth connsidering having som=
e form of &quot;hysteresis,&quot; timer or other mechanism to prevent casca=
ding failures of this kind.<br></blockquote><div><br></div><div>positive is=
 NOT transitive hence comment needs no addressing. <br></div><div><br></div=
><div>Clarify maybe once more the fact. <br></div><div>=C2=A0</div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.2<br>
<br>
&quot;All RIFT routers MUST support IPv4 forwarding and MAY support IPv6...=
&quot;<br>
<br>
So an IPv6 only fabric is not possible? <br></blockquote><div><br></div><di=
v>based on multiple thread router requirements are removed <br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;After the SPF is run, it is necessary to attach according prefixes.&q=
uot;<br>
<br>
I think this might want to mean --<br>
<br>
&quot;After SPF is run, it is necessary to attach the resulting reachabilit=
y information in the form of prefixes.&quot; <br>
<br></blockquote><div><br></div><div>agreed<br></div><div>=C2=A0</div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:=
1px solid rgb(204,204,204);padding-left:1ex">
(?)<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
It seems like the first and third paragraphs describe the same procedure? A=
re both descriptions necessary?<br></blockquote><div><br></div><div>need to=
 be merged <br></div><div> <br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;An exemplary implementation...&quot; should probably be &quot;an exam=
ple implementation...&quot; ??<br>
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;After the positive prefixes are attached and tie-broken, negative pre=
fixes are attached and used in case of northbound computation, ideally from=
 the shortest length to the longest.&quot;<br></blockquote><div>=C2=A0</div=
><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border=
-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
It seems like the prefixes should be &quot;tie-broken&quot; before being at=
tached. This sentence is generally confusing, perhaps: <br></blockquote><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t:1px solid rgb(204,204,204);padding-left:1ex">
<br>
&quot;After the positive prefixes have been attached, the negative prefixes=
 will be attached in their prefix-length order (from the shortest to the lo=
ngest). These negative prefixes will only be used when computing northbound=
 reachability.&quot;<br></blockquote><div><br></div><div>&quot;Attach all p=
refixes. Then build next-hop per type. Thne within types tie-break by seque=
nce in the model. if only negative remains run the according algorithm&quot=
;</div></div><div class=3D"gmail_quote"><br><div>Special Consideration for =
securtity Host implementation: suggestion to throttle aggressively, impleme=
ntation on the ToR to max-prefix/max-state knobbing <br></div><div>=C2=A0</=
div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor=
der-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;Observe that despite seeming quite computationally expensive the oper=
ations are only necessary if the only available advertisements for a prefix=
 are negative since tie-breaking always prefers positive information for th=
e prefix which stops any kind of recursion since positive information never=
 inherits next hops.&quot;<br>
<br>
Just because something is not done all that often does not mean it&#39;s no=
t computationally expensive. :-) Maybe something like this would be better:=
<br>
<br>
&quot;Although these operations can be computationally expensive, the overa=
ll load on devices in the network is low because these computations are not=
 run very often, as positive route advertisements are always preferred over=
 negative ones. This prevents recursion in most cases because positive reac=
hability information never inherits next hops.&quot;<br>
<br>
Or something like this?<br></blockquote><div><br></div><div>ack<br></div><d=
iv>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0p=
x 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;Negative 2001:db8::/32 entry inherits from&quot;<br>
<br>
Probably wants to be &quot;The negative 2001:db8::/32 entry...&quot;<br></b=
lockquote><div><br></div><div>nit</div><div> <br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.2.6<br>
<br>
&quot;Finally, let us look at the case where S3 becomes available again as =
default gateway, ...&quot;<br>
<br>
&quot;...the default gateway...&quot; or &quot;...a default gateway...&quot=
;<br>
<br></blockquote><div>ack<br></div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex">
=3D=3D<br>
Section 5.2.7<br>
<br>
&quot;Each RIFT node can optionally operate in zero touch provisioning...&q=
uot;<br>
<br>
&quot;optionally&quot; is not needed here<br></blockquote><div><br></div><d=
iv>&quot;RIFT nodes MAY use ZTP or be configured, both modes being mixed in=
 the same instance if desired&quot;</div><div><br></div><div>remove optiona=
lly<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:=
1ex">
<br>
=3D=3D<br>
Section 5.2.7.2<br>
<br>
&quot;RIFT identifies each node via a SystemID which is a 64 bits wide inte=
ger. It is relatively simple to derive a, for all practical purposes collis=
ion free, value for each node on startup. For that purpose, a node MUST use=
 as system ID EUI-64 MA-L format [EUI64] where the organizationally governe=
d 24 bits can be used to generate system IDs for multiple RIFT instances ru=
nning on the system.&quot;<br>
<br>
This seems too wordy -- maybe:<br>
<br>
&quot;RIFT nodes require a 64 bit SystemID in the EUI-64 MA-L format formed=
 as described in [EUI64]. The organizationally goverened portion of this ID=
=C2=A0 (24 bits) can be used to generate multiple IDs if required to indica=
te more than one RIFT instance.&quot;<br></blockquote><div><br></div><div>&=
quot;As prescribed by EUI ... RIFT nodes MUST form a 64 bit SID=C2=A0 <br><=
/div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.1<br>
<br>
&quot;Overload Bit MUST be respected...&quot;<br>
<br>
should be <br>
<br>
&quot;The overload bit MUST be respected...&quot;<br>
<br></blockquote><div><br></div><div>ack<br></div><div>=C2=A0</div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.2<br>
<br>
&quot;Since the leafs do see only &quot;one hop away&quot; they do not need=
 to run a full SPF but can simply gather prefix candidates from their neigh=
bors and build the according routing table.&quot;<br>
<br>
Seems like this should be <br>
<br>
&quot;Since leaf nodes only have one hop of topology information, they do n=
ot need to run SPF. Instead, they can gather the available prefix candidate=
s and build the routing table accordingly.&quot;<br></blockquote><div><br><=
/div><div>ack<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;time stamp: With this method, the infrastructure memorizes the...&quo=
t;<br>
<br>
I think the correct word here is &quot;records,&quot; rather than &quot;mem=
orizes&quot; (?)<br></blockquote><div><br></div><div>ack<br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;sequence counter: With this method, a mobile node notifies its point.=
..&quot;<br>
<br>
Another problem here is the node might not &quot;know&quot; it has been mov=
ed from one location to another in the fabric, particularly if a layer 2 on=
ly attached process is moved along with it&#39;s ARP cache, and something l=
ike the EVPN default MAC is used to enable the move. I don&#39;t know if th=
is is worth mentioning, but it does seem like a case that needs to be thoug=
ht about to make certain it works with the process described.<br>
<br></blockquote><div><br></div><div>no change necessary<br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;The leaf node MUST advertise a time stamp of the latest sighting...&q=
uot;<br>
<br>
Is this for all prefixes, or just for prefixes that are somehow marked or c=
onfigured as potentially mobile on the fabric?<br>
<br></blockquote><div><br></div><div>A leaf node MAY ... <br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.3<br>
<br>
&quot;RIFT also defines an abstract negative clock (ANSC) that compares as =
less than any other clock.&quot;<br>
<br>
Does this mean lower priority, or always older than any other clock? It see=
ms like this means &quot;older&quot; based on 5.3.3.1, but the language cou=
ld probably be clearer.<br>
<br></blockquote><div><br></div><div>nothing to do<br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.3<br>
<br>
One thing not covered here is what happens if some workload moves between t=
wo RIFT fabrics interconnected via some other protocol, such as BGP. It see=
ms the most obvious solution is to have RIFT treat redistributed destinatio=
ns the same as directly attached destinations in terms of clocks, etc., but=
 this is not called out in the document. It might be worth mentioning.<br>
<br></blockquote><div><br></div><div>no action<br></div><div>=C2=A0</div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le=
ft:1px solid rgb(204,204,204);padding-left:1ex">
=3D=3D<br>
Section 5.3.3.3<br>
<br>
This section seems a little ... muddled? You want to both have the ability =
to use only the most recently available versions of any anycast destination=
, while also not requiring all the anycast advertisements to have the same =
time stamp (?). I&#39;m not certain this section entirely solves that probl=
em. This sentence might be creating the confusion in my reading of the sect=
ion, as I don&#39;t really understand what it is saying: <br>
<br>
&quot;An anycast prefix does not carry a clock or all clock attributes MUST=
 be the same under the rules of Section 5.3.3.1.&quot;<br>
<br>
MUST be treated the same as prefixes advertised under the rules of 5.3.3.1?=
 I&#39;m not certain.<br></blockquote><div><br></div><div>it&#39;s complex =
for a reason. left as that. <br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.3.4<br>
<br>
&quot;RIFT is agnostic whether any overlay technology like [MIP, LISP, VxLA=
N, NVO3] and the associated signaling is deployed over it. But it is expect=
ed that leaf nodes, and possibly Top-of-Fabric nodes can perform the accord=
ing encapsulation.&quot;<br>
<br>
&quot;according&quot; should be &quot;correct,&quot; I think. <br></blockqu=
ote><div><br></div><div>fine<br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex">
<br>
=3D=3D<br>
Section 5.3.6.1<br>
<br>
&quot;All the multiplications and additions are saturating, i.e. when excee=
ding range of the bandwidth type are set to highest possible value of the t=
ype.&quot;<br>
<br>
Maybe better:<br>
<br>
&quot;If a calculation produces a result exceeding the range of the type, t=
he result is set to the highest possible value for that type.&quot;<br>
<br></blockquote><div><br></div><div>fine <br></div><div> <br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1p=
x solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
_______________________________________________<br>
RIFT mailing list<br>
<a href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/rift" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/rift</a><br>
</blockquote></div></div>
</blockquote></div>

--0000000000000173f6058e819654--


From nobody Thu Jul 25 13:16:19 2019
Return-Path: <pthubert@cisco.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 63CA0120283 for <rift@ietfa.amsl.com>; Thu, 25 Jul 2019 13:16:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.499
X-Spam-Level: 
X-Spam-Status: No, score=-14.499 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, SPF_PASS=-0.001, URIBL_BLOCKED=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 header.b=UYKAMkvf; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=w8qh0OHd
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 1ZNQKbi6YhsM for <rift@ietfa.amsl.com>; Thu, 25 Jul 2019 13:16:08 -0700 (PDT)
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 39D081201FA for <rift@ietf.org>; Thu, 25 Jul 2019 13:16:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1553; q=dns/txt; s=iport; t=1564085768; x=1565295368; h=from:to:subject:date:message-id:mime-version; bh=wg5uPPM0sSZOWkTvSxoNq+LvDuo7ZJlNxwIINQVhbl8=; b=UYKAMkvf09vvShIO3sPuaDwfYfesYCxNJb2HfxrXN/0yayzBUNk6XB0F AcQ0/aggKOlqPtAs+SiYlOuLk3WFfjJiCBU1lEcv8mo0PIB2NP1+5L/3Y fJr9xIrINeu1MmjqFWkDxYnhAZUvV30yIBFWM7Ow+zKPSaHtfKee3oT0z 8=;
IronPort-PHdr: =?us-ascii?q?9a23=3AJxqO3hxd6Y7d7C7XCy+N+z0EezQntrPoPwUc9p?= =?us-ascii?q?sgjfdUf7+++4j5YhWN/u1j2VnOW4iTq+lJjebbqejBYSQB+t7A1RJKa5lQT1?= =?us-ascii?q?kAgMQSkRYnBZudFU3mJvPwcwQxHd9JUxlu+HToeUU=3D?=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CcAAAGDTpd/5BdJa1mHgEGBwaBUwk?= =?us-ascii?q?LAYFDUANtVSAECyqEHYNHA4x+TIFqkyCEV4EugSQDVAkBAQEMAQEfDgIBAYR?= =?us-ascii?q?AGYJHIzQJDgEDAQEEAQECAQZthR4BC4VBIhEdAQE4EQELAT4CBDAPGAQ1gwA?= =?us-ascii?q?BgR1NAx0BAgyiNwKBOIhgcYEygnoBAQWCR4JAGIITAwaBNAGLXheBQD+BOAw?= =?us-ascii?q?ThA6BXQEBA4ILgl4ygiaMBIJ5hH+WeQkCghqGWY03G5gMjTqHSpALAgQCBAU?= =?us-ascii?q?CDgEBBYFQOIFYcBVlAYJBgkIYg1mFFIU/coEpjSsBAQ?=
X-IronPort-AV: E=Sophos;i="5.64,308,1559520000";  d="scan'208,217";a="517652956"
Received: from rcdn-core-8.cisco.com ([173.37.93.144]) by rcdn-iport-9.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 25 Jul 2019 20:16:06 +0000
Received: from xch-rcd-011.cisco.com (xch-rcd-011.cisco.com [173.37.102.21]) by rcdn-core-8.cisco.com (8.15.2/8.15.2) with ESMTPS id x6PKG6qY015616 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <rift@ietf.org>; Thu, 25 Jul 2019 20:16:06 GMT
Received: from xhs-rcd-001.cisco.com (173.37.227.246) by XCH-RCD-011.cisco.com (173.37.102.21) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 25 Jul 2019 15:16:05 -0500
Received: from xhs-rtp-001.cisco.com (64.101.210.228) by xhs-rcd-001.cisco.com (173.37.227.246) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 25 Jul 2019 15:16:04 -0500
Received: from NAM04-BN3-obe.outbound.protection.outlook.com (64.101.32.56) by xhs-rtp-001.cisco.com (64.101.210.228) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Thu, 25 Jul 2019 16:16:04 -0400
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P66IOL6EIy58qSecivi/VLY73+nteNh1Uu3W4XJfIY7kYSqBWd1kr6tzQ3OuuGXCmG+EI+HLfNCdbJgV4z1TJrnMbHKsdIcgLiPQkxy59wR8xOKXO/gLzu0QJECXhCNwC472gx13gyg2iwEgmyBG+1wf/y0X7c4LoZ5DpjSeF4DEZOH4Jg73Ln3yW7+zb5ZijTufEJazV6tBWExLz/i/xaCUTQCWHDy5SA+2i7NuZHqk6TkVHIZ3J2NcseQX0MAAwNQjK/zLDWmPZHe08KFhkdJ3iSPKoBeSp2oASm2hHCo9iFvD6wAvFKj9+1y0e3C7cU2xUUHI+o/bzrWcADu/QQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;  s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wg5uPPM0sSZOWkTvSxoNq+LvDuo7ZJlNxwIINQVhbl8=; b=FfLEf4O68UgJpgV/1Wi3K6Xs7w7xqw8TmFF0eYIGTWrLhUXRGV2ceVw00CvUk24eV1tBxd7EYAPrz0GJqW+tQAUDZzHC4AlW/yki9XI8KZOhSPU5yT+961xoqfxPCiI8tiRn0yid5tEQZmsNK2/BijpxZntAQcjmCHLHdq8XwKmfUok3RdFy1jHKydh6I5s0oIY8s5wBZc7lu7lwJbHUzFMew3nzzgRUdsHanyH0mmnweH7DoVHuZ+lofCL6vbx+hcCoqtdG3E8mNg0EKZJczBdDvuiAy44HQhpHPddbEBIPP1S0qtNd1vfrSzE9nm4vBpgr9vXXMcZFYRuyjABt7Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=cisco.com;dmarc=pass action=none header.from=cisco.com;dkim=pass header.d=cisco.com;arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com;  s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wg5uPPM0sSZOWkTvSxoNq+LvDuo7ZJlNxwIINQVhbl8=; b=w8qh0OHdnkHnat43K/APgTcRw7vV8hL9JUFa8zMwG5CR8jjrTGehQymRDB0uepy97uQeT1m/xCHLO4a8CYqy6KBqizMDm9/lxFMkMq7h/4sCVR9RwMgnBvudwD2ERuyoX+sXDdDLeUnEkL21dpykdzYBSBiEkDxFuoplaWWHAS8=
Received: from MN2PR11MB3565.namprd11.prod.outlook.com (20.178.250.159) by MN2PR11MB3967.namprd11.prod.outlook.com (10.255.180.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2115.10; Thu, 25 Jul 2019 20:16:04 +0000
Received: from MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::1ce9:1582:146c:c50a]) by MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::1ce9:1582:146c:c50a%6]) with mapi id 15.20.2094.013; Thu, 25 Jul 2019 20:16:04 +0000
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: "rift@ietf.org" <rift@ietf.org>
Thread-Topic: RFC 5549
Thread-Index: AQHVQyXIeAK68ZaXB0GIX0wPgb1/Zw==
Date: Thu, 25 Jul 2019 20:16:03 +0000
Message-ID: <643DF6FA-82B0-4250-846A-0DF309C73870@cisco.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=pthubert@cisco.com; 
x-originating-ip: [2001:67c:370:128:2093:6449:1fef:96d7]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 4eb05b87-02ad-4a99-8cf3-08d7113ceb68
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:MN2PR11MB3967; 
x-ms-traffictypediagnostic: MN2PR11MB3967:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <MN2PR11MB3967CC37BD0DE2984DDDE84CD8C10@MN2PR11MB3967.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:6790;
x-forefront-prvs: 0109D382B0
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(376002)(136003)(396003)(199004)(189003)(66476007)(6436002)(7116003)(606006)(236005)(6486002)(76116006)(91956017)(2616005)(54896002)(6306002)(486006)(36756003)(8936002)(6512007)(476003)(7736002)(478600001)(1730700003)(81156014)(81166006)(5660300002)(66946007)(186003)(33656002)(86362001)(64756008)(66556008)(8676002)(66446008)(2501003)(966005)(68736007)(53936002)(14454004)(25786009)(2351001)(46003)(2906002)(5640700003)(102836004)(6916009)(256004)(316002)(6506007)(71200400001)(558084003)(71190400001)(6116002)(99286004)(244885003); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB3967; H:MN2PR11MB3565.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: eFXyvfTZYKFTCVsiVXMKUziduCw0sJVW2C8WZyWaYVbxUnyx+82QzI12Oi4gm9/vLLuDh9uFcPQodkD4gJHKzxUTdk2MBHIOx5T3zvFP7mVf+sJcLaIGyta9Ha7d7VxbUd2I69vhPzhJjvoeVt5wWB7ueNG28IBswANA48h4HYTZJ5gc9B0uVLAzEbRF8s5sS7/JntkCi8CC7GNqzWS3g012GUNcT4e7yQdHr5xki61hB/rFZrPvWIMsDiGi7yG/uGTNm43aCKVlb5S/38i+lFQCn4mHdqEkHIya5wjxbBOx8jzNz42tuBlyn28MfqROIj8shyjbsClRc5wKZAl2eY8vLaApS5dGjwO/4VIT9mz15syyXNp/WwadpqYbwy6cYL+MHlMaaEsvKUE3GLDGdj1yjiMoIosmVa8+UxnO0X0=
Content-Type: multipart/alternative; boundary="_000_643DF6FA82B04250846A0DF309C73870ciscocom_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 4eb05b87-02ad-4a99-8cf3-08d7113ceb68
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2019 20:16:03.8963 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pthubert@cisco.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3967
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.21, xch-rcd-011.cisco.com
X-Outbound-Node: rcdn-core-8.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/PWIwsDn_vfp3Dbjus3tUmq2K_to>
Subject: [Rift] RFC 5549
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jul 2019 20:16:18 -0000

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

aHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzU1NDkNCg0KVGhpcyBpcyB0aGUgQkdQIHBy
ZWNlZGVudCBmb3IgSVB2NCBmb3J3YXJkaW5nIG92ZXIgYSB2NiBhZGphY2VuY3kuDQoNClRoZSBu
ZXh0IGhvcCBpcyByZXNvbHZlZCB3aXRoIEFGIHY2IGFuZCB0aGUgcGFja2V0IGlzIHY0Lg0KDQpJ
IGhvcGUgd2UgY2FuIHVzZSB0aGF0IHRvIGF2b2lkIGV4Y2Vzc2l2ZSBhbW91bnRzIG9mIHRleHQu
DQoNCg0KUmVnYXJkcywNCg0KUGFzY2FsDQo=

--_000_643DF6FA82B04250846A0DF309C73870ciscocom_
Content-Type: text/html; charset="utf-8"
Content-ID: <8D0404F646C8A94F85B5670F6F47789C@cisco.onmicrosoft.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IGRpcj0iYXV0byI+DQo8
YSBocmVmPSJodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTU0OSI+aHR0cHM6Ly90b29s
cy5pZXRmLm9yZy9odG1sL3JmYzU1NDk8L2E+PGJyPg0KPGJyPg0KPGRpdiBkaXI9Imx0ciI+DQo8
ZGl2PlRoaXMgaXMgdGhlIEJHUCBwcmVjZWRlbnQgZm9yIElQdjQgZm9yd2FyZGluZyBvdmVyIGEg
djYgYWRqYWNlbmN5LjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+VGhlIG5leHQgaG9w
IGlzIHJlc29sdmVkIHdpdGggQUYgdjYgYW5kIHRoZSBwYWNrZXQgaXMgdjQuPC9kaXY+DQo8ZGl2
Pjxicj4NCjwvZGl2Pg0KPGRpdj5JIGhvcGUgd2UgY2FuIHVzZSB0aGF0IHRvIGF2b2lkIGV4Y2Vz
c2l2ZSBhbW91bnRzIG9mIHRleHQuPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+
DQo8L2Rpdj4NClJlZ2FyZHMsDQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5QYXNjYWw8L2Rpdj4N
CjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_643DF6FA82B04250846A0DF309C73870ciscocom_--


From nobody Thu Jul 25 13:52:38 2019
Return-Path: <brunorijsman@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5F4C51201DB for <rift@ietfa.amsl.com>; Thu, 25 Jul 2019 13:52:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 iL9v7E4Epar2 for <rift@ietfa.amsl.com>; Thu, 25 Jul 2019 13:52:35 -0700 (PDT)
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) (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 071CF1201D1 for <rift@ietf.org>; Thu, 25 Jul 2019 13:52:34 -0700 (PDT)
Received: by mail-ed1-x52d.google.com with SMTP id k8so51388484eds.7 for <rift@ietf.org>; Thu, 25 Jul 2019 13:52:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=sVM0wdCIcszL9KsYkIy0GSEfhvt8/14WVquEdiPDvZI=; b=HB1wMjh7hzGw933/+6IQZz8rdqOFyFYGnYTc1PvyZff6qzg8XJp5eIcHyg8acq47ze oT/CaentxFmHLIGd5MjHKpYI/8t3sayhMz/qCKfh+mC4rZ9sF7sa1wFgwW3M9CL+uh3J ehbHuwq6DWtSeuHZ3tilUAYhd3xfdcaBId3fPtV6jXHWCscanAMtfUCKdef93lh3Htle 5EfCIvLuy6QGR8SIJ4t0x4FZELinupDezdCKfKdgUKuvqrX/eZ0iBul6X/raSIe2LC3b ecw4hgTVdf5MSonJAna741OedSJ624SnpkuBccQw8sQn6/k9kNUXqpoYFO6c57GxbxIG N0Cw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=sVM0wdCIcszL9KsYkIy0GSEfhvt8/14WVquEdiPDvZI=; b=KcR4vVzuDHQf/kKjh69iTdSGupRXZDBkcZxLEYhqk5g0MUmuWXrauCRpNKwnnMRn1g EDk7ZlXcSf/idqCJSK9iK7459TMlsMIh/LqmddqyPUvMIUouj19BNlUyhHxkRnGi+5Gc yhTglQRZrp+hNgvC64VMchOkGnIWQ7FAX+6mkqTQrpFleL11B7Y5wARRAkJ8n/pSjFp3 BGgb1F7cOxcZyB323rnLEB3U0pK1e5P5yRdQNZa8O6tXOa9Uw418x8OmaK6sffIuF3kO vIxb5wUgrX1EAgkTr6JI14x3OzeK/1siYdYWdtu4b7eiJ/laJPLl3wykQg1AzaaT5X6Q NllA==
X-Gm-Message-State: APjAAAVANBlUQHOpRC/VQCiWQkgsHWqHJBWjl3ofHHIuKhbOd5B+NQg0 TzYM3bYUhxfGc0JhKCt/qOw=
X-Google-Smtp-Source: APXvYqwWfQTqgvx2kmM6SjJcEsn3sK8kZbggtLfOMSxPxiAKVIGCEKlsaWmR/pliQQtyIeclbzPo3w==
X-Received: by 2002:a05:6402:6d0:: with SMTP id n16mr78248364edy.168.1564087953382;  Thu, 25 Jul 2019 13:52:33 -0700 (PDT)
Received: from [192.168.178.122] (ip-213-127-46-121.ip.prioritytelecom.net. [213.127.46.121]) by smtp.gmail.com with ESMTPSA id k25sm9717214ejp.65.2019.07.25.13.52.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 25 Jul 2019 13:52:32 -0700 (PDT)
From: Bruno Rijsman <brunorijsman@gmail.com>
Message-Id: <DB9C4ED8-E55C-44B5-AF6F-C68E91572B98@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_F8B95430-156B-4782-8404-ABE8E674854D"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Thu, 25 Jul 2019 22:52:31 +0200
In-Reply-To: <643DF6FA-82B0-4250-846A-0DF309C73870@cisco.com>
Cc: "rift@ietf.org" <rift@ietf.org>
To: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
References: <643DF6FA-82B0-4250-846A-0DF309C73870@cisco.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/8GudwKKyCAVo1rDMWaiuBE8Dy-I>
Subject: Re: [Rift] RFC 5549
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Jul 2019 20:52:38 -0000

--Apple-Mail=_F8B95430-156B-4782-8404-ABE8E674854D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Free Range Routing used this trick to support BGP routes with a =
destination IPv4 prefix but an IPv6 next-hop.

See =
https://www.theasciiconstruct.com/post/cumulus-basics-part-v-bgp-unnumbere=
d =
<https://www.theasciiconstruct.com/post/cumulus-basics-part-v-bgp-unnumber=
ed> (and search for the phrase "The NLRI describes an IPv4 subnet but =
the next hop is an IPv6 address.=E2=80=9D).

=E2=80=94 Bruno

> On Jul 25, 2019, at 10:16 PM, Pascal Thubert (pthubert) =
<pthubert@cisco.com> wrote:
>=20
> https://tools.ietf.org/html/rfc5549 =
<https://tools.ietf.org/html/rfc5549>
>=20
> This is the BGP precedent for IPv4 forwarding over a v6 adjacency.
>=20
> The next hop is resolved with AF v6 and the packet is v4.
>=20
> I hope we can use that to avoid excessive amounts of text.
>=20
>=20
> Regards,
>=20
> Pascal
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift


--Apple-Mail=_F8B95430-156B-4782-8404-ABE8E674854D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">Free =
Range Routing used this trick to support BGP routes with a destination =
IPv4 prefix but an IPv6 next-hop.<div class=3D""><br class=3D""></div><div=
 class=3D"">See&nbsp;<a =
href=3D"https://www.theasciiconstruct.com/post/cumulus-basics-part-v-bgp-u=
nnumbered" =
class=3D"">https://www.theasciiconstruct.com/post/cumulus-basics-part-v-bg=
p-unnumbered</a>&nbsp;(and search for the phrase "The NLRI describes an =
IPv4 subnet but the next hop is an IPv6 address.=E2=80=9D).</div><div =
class=3D""><br class=3D""></div><div class=3D"">=E2=80=94 Bruno<br =
class=3D""><div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Jul 25, 2019, at 10:16 PM, Pascal Thubert (pthubert) =
&lt;<a href=3D"mailto:pthubert@cisco.com" =
class=3D"">pthubert@cisco.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D"">

<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" =
class=3D"">

<div dir=3D"auto" class=3D"">
<a href=3D"https://tools.ietf.org/html/rfc5549" =
class=3D"">https://tools.ietf.org/html/rfc5549</a><br class=3D"">
<br class=3D"">
<div dir=3D"ltr" class=3D"">
<div class=3D"">This is the BGP precedent for IPv4 forwarding over a v6 =
adjacency.</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">The next hop is resolved with AF v6 and the packet is =
v4.</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D"">I hope we can use that to avoid excessive amounts of =
text.</div>
<div class=3D""><br class=3D"">
</div>
<div class=3D""><br class=3D"">
</div>
Regards,
<div class=3D""><br class=3D"">
</div>
<div class=3D"">Pascal</div>
</div>
</div>

_______________________________________________<br class=3D"">RIFT =
mailing list<br class=3D""><a href=3D"mailto:RIFT@ietf.org" =
class=3D"">RIFT@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/rift<br =
class=3D""></div></blockquote></div><br class=3D""></div></body></html>=

--Apple-Mail=_F8B95430-156B-4782-8404-ABE8E674854D--


From nobody Fri Jul 26 02:57:26 2019
Return-Path: <xu.benchong@zte.com.cn>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1CA471202FA for <rift@ietfa.amsl.com>; Fri, 26 Jul 2019 02:57:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.198
X-Spam-Level: 
X-Spam-Status: No, score=-4.198 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, 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 sX7GEVFkLnqx for <rift@ietfa.amsl.com>; Fri, 26 Jul 2019 02:57:23 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 3AA531202F7 for <rift@ietf.org>; Fri, 26 Jul 2019 02:57:23 -0700 (PDT)
Received: from mxct.zte.com.cn (unknown [192.168.164.215]) by Forcepoint Email with ESMTPS id CAA05ADE3B2D065F18C1; Fri, 26 Jul 2019 17:42:55 +0800 (CST)
Received: from mse-fl2.zte.com.cn (unknown [10.30.14.239]) by Forcepoint Email with ESMTPS id 4CB60FA635C62D296BFE; Fri, 26 Jul 2019 17:38:05 +0800 (CST)
Received: from njxapp01.zte.com.cn ([10.41.132.200]) by mse-fl2.zte.com.cn with SMTP id x6Q9btZl083543; Fri, 26 Jul 2019 17:37:55 +0800 (GMT-8) (envelope-from xu.benchong@zte.com.cn)
Received: from mapi (njxapp01[null]) by mapi (Zmail) with MAPI id mid201; Fri, 26 Jul 2019 17:37:51 +0800 (CST)
Date: Fri, 26 Jul 2019 17:37:51 +0800 (CST)
X-Zmail-TransId: 2af95d3ac9ef27ed9ef2
X-Mailer: Zmail v1.0
Message-ID: <201907261737515797054@zte.com.cn>
Mime-Version: 1.0
From: <xu.benchong@zte.com.cn>
To: <prz@juniper.net>, <rift@ietf.org>
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl2.zte.com.cn x6Q9btZl083543
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/zmq4D-84w-sKuDyu3U6g3B-zz2E>
Subject: [Rift] =?utf-8?q?=5BRIFT=5D=5BNon_equal_cost_anycast=5D?=
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Jul 2019 09:57:25 -0000

--=====_001_next=====
Content-Type: multipart/related;
	boundary="=====_002_next====="


--=====_002_next=====
Content-Type: multipart/alternative;
	boundary="=====_003_next====="


--=====_003_next=====
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: base64

SGksVG9ueQ0KDQpDYW4geW91IHRhbGsgYWJvdXQgUkVRNiwgSG93IGRvZXMgUklGVCBzdXBwb3J0
IGl0PyBJcyBpdCBiZW5lZml0aW5nIGZyb20gdGhlIGRlZmF1bHQgcm91dGU/DQoNCiIgIFJFUTY6
ICAgIE5vbiBlcXVhbCBjb3N0IGFueWNhc3QgbXVzdCBiZSBzdXBwb3J0ZWQgdG8gYWxsb3cgZm9y
IGVhc3kNCg0KICAgICAgICAgICAgYW5kIHJvYnVzdCBtdWx0aS1ob21pbmcgb2Ygc2VydmljZXMg
d2l0aG91dCByZWdyZXNzaW5nIHRvDQoNCiAgICAgICAgICAgIGNhcmVmdWwgYmFsYW5jaW5nIG9m
IGxpbmsgY29zdHMuIg0KDQoNCg0KDQoNClRoYW5rIHlvdSENCg0KDQpCZW5jaG9uZw==


--=====_003_next=====
Content-Type: text/html ;
	charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBjbGFzcz0iemNvbnRlbnRSb3ciPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LWZh
bWlseTphcmlhbDsiPkhpLDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIOWui+S9kywg
J01pY3Jvc29mdCBZYWhlaScsICdMdWNpZGEgR3JhbmRlJywgVmVyZGFuYSwgTHVjaWRhLCBIZWx2
ZXRpY2EsIHNhbnMtc2VyaWY7IGxpbmUtaGVpZ2h0OiAyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBy
Z2IoMjU1LCAyNTUsIDI1NSk7Ij5Ub255PC9zcGFuPjwvcD48cD5DYW4geW91IHRhbGsgYWJvdXQg
UkVRNiwmbmJzcDtIb3cgZG9lcyBSSUZUIHN1cHBvcnQgaXQ/Jm5ic3A7SXMgaXQgYmVuZWZpdGlu
ZyBmcm9tIHRoZSBkZWZhdWx0IHJvdXRlPzwvcD48cD4iICZuYnNwO1JFUTY6ICZuYnNwOyAmbmJz
cDtOb24gZXF1YWwgY29zdCBhbnljYXN0IG11c3QgYmUgc3VwcG9ydGVkIHRvIGFsbG93IGZvciBl
YXN5PC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGFuZCBy
b2J1c3QgbXVsdGktaG9taW5nIG9mIHNlcnZpY2VzIHdpdGhvdXQgcmVncmVzc2luZyB0bzwvcD48
cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBjYXJlZnVsIGJhbGFu
Y2luZyBvZiBsaW5rIGNvc3RzLiI8L3A+PHA+PGJyPjwvcD48cCBzdHlsZT0iZm9udC1zaXplOjE0
cHg7Zm9udC1mYW1pbHk6YXJpYWw7Ij5UaGFuayB5b3UhPC9wPjxwIHN0eWxlPSJmb250LXNpemU6
MTRweDtmb250LWZhbWlseTphcmlhbDsiPkJlbmNob25nPC9wPjxwIHN0eWxlPSJmb250LXNpemU6
MTRweDtmb250LWZhbWlseTphcmlhbDsiPjxicj48L3A+PC9kaXY+


--=====_003_next=====--

--=====_002_next=====--

--=====_001_next=====--


From nobody Fri Jul 26 12:34:19 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 952A9120090 for <rift@ietfa.amsl.com>; Fri, 26 Jul 2019 12:34:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 7uXhkOWSCjnm for <rift@ietfa.amsl.com>; Fri, 26 Jul 2019 12:34:15 -0700 (PDT)
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) (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 144F5120071 for <rift@ietf.org>; Fri, 26 Jul 2019 12:34:15 -0700 (PDT)
Received: by mail-ed1-x52d.google.com with SMTP id w13so54212567eds.4 for <rift@ietf.org>; Fri, 26 Jul 2019 12:34:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=RZWj59wcvCfMVguJpEz/j6JYUhKzFGwOeHqozNDaloc=; b=Hj8Ap/PkmIGeUeiAK37KDT5Otnwys1jkXYnxKFKlQZEA7xY6RyNWykAiLEO87tjlQY yciWYzU0AtNGs1Pvey93aF34tuPp1BoTnQRykzHu9LENvqCU8dni9idofyna7ncVWxgr 5xYIw+MNlTAJDpMfs+dgL+2xtCm2pqZRvzQn1AkQ6FSdARnKmksb4DSphskVYOK3hgWw YdzuH03/aeE9siN/nkPh4Ut9NVYUb+pJYvdcNpOyi5oJv3BHpRdQ4dBZv+u6wBxHt6C4 n9AwO1szgbUxmgqGkz6ys7ozf9m4cB+9Kj7Iu8m/hQQuto/7UBBN1wI0BquHyj7EUkUe 4Fcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=RZWj59wcvCfMVguJpEz/j6JYUhKzFGwOeHqozNDaloc=; b=RBvYxSe05jf0r2dzpO3H930q3MH2xPjI8BHyomihRGlYNInAgX7K+OKJsuC+eKaSy1 2A73+IGZngavQ4Gxm9MpKJWsegBuNYic/zgxxV1S2V1y1cfPvrQqRxQW11ZcxG1ZUgif fA5/TCI1gMVX/xAzWaAbkfmXvZtXioYjUvt/dgOoBUAsm/khuvnQOVvYTc5G2VW90Cts wn+SbFbUw8AdLEZFEWHyMFBPRUy20G4Y2mJPUOmI8iTln/mF4kshthEoQwmNLHP8uH1Z clpVOogEWmyIZiqFP/VD+3VY3VDukv0wlHHP6e6K0nhPtWKrkLvdDB3qQB+dz4WcHZ6r v3bQ==
X-Gm-Message-State: APjAAAWf9+MJKHw7kbJsR9CU2aU2CIX2AwCW8C74V3eq63VGmximfbtR lIqX7dn0nezsSRmyP+LJlpxwjH9PoM7MM++9QdtauamOuasueg==
X-Google-Smtp-Source: APXvYqw/5dtQx6b6i1FU4tpoFgpr8o5cDEceaoNvfju8rynBHAVLlHQNbtEcdAVEj+BmHZwbJ69FyWtjAY3NIs0m3uo=
X-Received: by 2002:a50:ad0c:: with SMTP id y12mr82717876edc.25.1564169653635;  Fri, 26 Jul 2019 12:34:13 -0700 (PDT)
MIME-Version: 1.0
References: <201907261737515797054@zte.com.cn>
In-Reply-To: <201907261737515797054@zte.com.cn>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Fri, 26 Jul 2019 15:33:37 -0400
Message-ID: <CA+wi2hMg6gx_nnHCu7iP9S3snAjL=qAWObx3Hh=bUgzF=vz+3A@mail.gmail.com>
To: xu.benchong@zte.com.cn
Cc: Antoni Przygienda <prz@juniper.net>, rift@ietf.org
Content-Type: multipart/alternative; boundary="00000000000092d2da058e9aa0ef"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/rae1KbCxxKO9uMbaUu9sstGm9AY>
Subject: Re: [Rift] [RIFT][Non equal cost anycast]
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 Jul 2019 19:34:18 -0000

--00000000000092d2da058e9aa0ef
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Benchong, as always, when people start implement they start to ask the real
questions ;-) Yes, any cast in RIFT is much closer to what you would
consider =E2=80=9Ctrue any cast=E2=80=9D than IP is which is really just EC=
MP on same
address. In RIFT anycast on different distance nodes is a normal thing.

First, it it important to understand the difference between mobility and
any cast on the fabric. if a prefix moves on the fabric without using the
mobility attributes it can appear in two locations @ once of course (if the
new TIE floods faster than the previous location manages to purge the
prefix). That's not a proper anycast of course, that's just an artefact. If
the prefix properly attaches timestamps by some means (such as 6lo) it will
be understood as having moved, otherwise it will be any cast for a bit.

And then, of course there is true any cast which is equal to two prefixes
advertised from two nodes being equal. RIFT is loop-free which means that
it doesn=E2=80=99t really care all that much about distance so if a packet =
enters
from ToF it can be forwarded to any leaf showing any cast. That allows true
=E2=80=9Cservice on any cast=E2=80=9D architecture. In case when you route =
from the leaf
the packet will use default (unless an implementation does their own things
the spec doesn=E2=80=99t mention but doesn=E2=80=99t suppress either) until=
 it pops up far
enough it sees any cast @ which point in time it will turn the packet south
(assuming all anycast is on leafs). if balancing of any cast over whole
metric is desired then the packet needs to be pushed all the way to the ToF
using tunnels or some other solution.

So, basically, any cast is just a funky next-hop on a prefix that can point
to two different nodes & metric can be used to balance or ignored and the
spec does not need to say more I think.

This little diatribe should make it into RIFT applicability statement in
some form I think ...

-- tony

On Fri, Jul 26, 2019 at 5:57 AM <xu.benchong@zte.com.cn> wrote:

> Hi,Tony
>
> Can you talk about REQ6, How does RIFT support it? Is it benefiting from
> the default route?
>
> "  REQ6:    Non equal cost anycast must be supported to allow for easy
>
>             and robust multi-homing of services without regressing to
>
>             careful balancing of link costs."
>
>
> Thank you!
>
> Benchong
>
>
> _______________________________________________
> RIFT mailing list
> RIFT@ietf.org
> https://www.ietf.org/mailman/listinfo/rift
>

--00000000000092d2da058e9aa0ef
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Benchong, as always, when people start implement they star=
t to ask the real questions ;-) Yes, any cast in RIFT is much closer to wha=
t you would consider =E2=80=9Ctrue any cast=E2=80=9D than IP is which is re=
ally just ECMP on same address. In RIFT anycast on different distance nodes=
 is a normal thing. <br><br><div>First, it it important to understand the d=
ifference between mobility and any cast on the fabric. if a prefix moves on=
 the fabric without using the mobility attributes it can appear in two loca=
tions @ once of course (if the new TIE floods faster than the previous loca=
tion manages to purge the prefix). That&#39;s not a proper anycast of cours=
e, that&#39;s just an artefact. If the prefix properly attaches timestamps =
by some means (such as 6lo) it will be understood as having moved, otherwis=
e it will be any cast for a bit. <br></div><div><br></div><div>And then, of=
 course there is true any cast which is equal to two prefixes advertised fr=
om two nodes being equal. RIFT is loop-free which means that it doesn=E2=80=
=99t really care all that much about distance so if a packet enters from To=
F it can be forwarded to any leaf showing any cast. That allows true =E2=80=
=9Cservice on any cast=E2=80=9D architecture. In case when you route from t=
he leaf the packet will use default (unless an implementation does their ow=
n things the spec doesn=E2=80=99t mention but doesn=E2=80=99t suppress eith=
er) until it pops up far enough it sees any cast @ which point in time it w=
ill turn the packet south (assuming all anycast is on leafs). if balancing =
of any cast over whole metric is desired then the packet needs to be pushed=
 all the way to the ToF using tunnels or some other solution. <br></div><br=
><div>So, basically, any cast is just a funky next-hop on a prefix that can=
 point to two different nodes &amp; metric can be used to balance or ignore=
d and the spec does not need to say more I think. <br></div><div><br></div>=
<div>This little diatribe should make it into RIFT applicability statement =
in some form I think ... <br></div><div><br></div><div>-- tony <br></div></=
div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On=
 Fri, Jul 26, 2019 at 5:57 AM &lt;<a href=3D"mailto:xu.benchong@zte.com.cn"=
>xu.benchong@zte.com.cn</a>&gt; wrote:<br></div><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 class=3D"gmail-m_8434352929627070083zcontentRow=
"><p style=3D"font-size:14px;font-family:arial">Hi,<span style=3D"font-fami=
ly:Arial,=E5=AE=8B=E4=BD=93,&quot;Microsoft Yahei&quot;,&quot;Lucida Grande=
&quot;,Verdana,Lucida,Helvetica,sans-serif;line-height:20px;background-colo=
r:rgb(255,255,255)">Tony</span></p><p>Can you talk about REQ6,=C2=A0How doe=
s RIFT support it?=C2=A0Is it benefiting from the default route?</p><p>&quo=
t; =C2=A0REQ6: =C2=A0 =C2=A0Non equal cost anycast must be supported to all=
ow for easy</p><p>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 and robust mult=
i-homing of services without regressing to</p><p>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 careful balancing of link costs.&quot;</p><p><br></p><p s=
tyle=3D"font-size:14px;font-family:arial">Thank you!</p><p style=3D"font-si=
ze:14px;font-family:arial">Benchong</p><p style=3D"font-size:14px;font-fami=
ly:arial"><br></p></div>_______________________________________________<br>
RIFT mailing list<br>
<a href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/rift" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/rift</a><br>
</blockquote></div>

--00000000000092d2da058e9aa0ef--


From nobody Sun Jul 28 19:01:52 2019
Return-Path: <xu.benchong@zte.com.cn>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1AA5812004C for <rift@ietfa.amsl.com>; Sun, 28 Jul 2019 19:01:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.198
X-Spam-Level: 
X-Spam-Status: No, score=-4.198 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, 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 fRqzknyAC1N0 for <rift@ietfa.amsl.com>; Sun, 28 Jul 2019 19:01:47 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 BFC29120044 for <rift@ietf.org>; Sun, 28 Jul 2019 19:01:46 -0700 (PDT)
Received: from mse-fl2.zte.com.cn (unknown [10.30.14.239]) by Forcepoint Email with ESMTPS id 0FEC5D457705A5CECB26; Mon, 29 Jul 2019 10:01:44 +0800 (CST)
Received: from njxapp03.zte.com.cn ([10.41.132.202]) by mse-fl2.zte.com.cn with SMTP id x6T21dZI027642; Mon, 29 Jul 2019 10:01:39 +0800 (GMT-8) (envelope-from xu.benchong@zte.com.cn)
Received: from mapi (njxapp01[null]) by mapi (Zmail) with MAPI id mid201; Mon, 29 Jul 2019 10:01:32 +0800 (CST)
Date: Mon, 29 Jul 2019 10:01:32 +0800 (CST)
X-Zmail-TransId: 2af95d3e537c8fe0df45
X-Mailer: Zmail v1.0
Message-ID: <201907291001327532177@zte.com.cn>
In-Reply-To: <CA+wi2hMg6gx_nnHCu7iP9S3snAjL=qAWObx3Hh=bUgzF=vz+3A@mail.gmail.com>
References: 201907261737515797054@zte.com.cn, CA+wi2hMg6gx_nnHCu7iP9S3snAjL=qAWObx3Hh=bUgzF=vz+3A@mail.gmail.com
Mime-Version: 1.0
From: <xu.benchong@zte.com.cn>
To: <tonysietf@gmail.com>
Cc: <prz@juniper.net>, <rift@ietf.org>
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl2.zte.com.cn x6T21dZI027642
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/4x6nOfmzOYeZcZizLA1FjZ0FsVw>
Subject: Re: [Rift] =?utf-8?q?=5BRIFT=5D=5BNon_equal_cost_anycast=5D?=
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jul 2019 02:01:50 -0000

--=====_001_next=====
Content-Type: multipart/related;
	boundary="=====_002_next====="


--=====_002_next=====
Content-Type: multipart/alternative;
	boundary="=====_003_next====="


--=====_003_next=====
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: base64

VG9ueQ0KDQpEb2VzIHRoaXMgbWVhbiB0aGF0IHdoZW4gUy1TUEYgY2FsY3VsYXRlLCB3ZSBjYW5u
b3Qgc2VsZWN0IHRoZSBiZXN0IG5leHRob3Agd2l0aCB0aGUgc21hbGxlc3QgZGlzdGFuY2UsIGFs
bCB0aGUgbmV4dGhvcHMgbXVzdCBiZSBhZGRlZCB0byB0aGUgZm9yd2FyZGluZyB0YWJsZSwgYW5k
IGRpc3RhbmNlIGlzIHVzZWQgYXMgdGhlIGJhc2lzIGZvciDigJxOb24gZXF1YWwgY29zdCBhbnlj
YXN04oCdIG9uIHRoZSBmb3J3YXJkaW5nIHBsYW5lLg0KDQpOLVNQRiB1c2VzIHRoZSBtZXRob2Qg
b2YgNS4zLjYuMSBhbmQgdGhlIEJBRCBpbnN0ZWFkIHRoZSBkaXN0YW5jZS4NCg0KDQoNCg0KLS1C
ZW5jaG9uZw0KDQoNCg0KDQoNCg0KDQoNCg0KDQrljp/lp4vpgq7ku7YNCg0KDQoNCuWPkeS7tuS6
uu+8mlRvbnlQcnp5Z2llbmRhIDx0b255c2lldGZAZ21haWwuY29tPg0K5pS25Lu25Lq677ya5b6Q
5pys5bSHMTAwNjUwNTM7DQrmioTpgIHkurrvvJpBbnRvbmkgUHJ6eWdpZW5kYSA8cHJ6QGp1bmlw
ZXIubmV0PjtyaWZ0QGlldGYub3JnIDxyaWZ0QGlldGYub3JnPjsNCuaXpSDmnJ8g77yaMjAxOeW5
tDA35pyIMjfml6UgMDM6MzQNCuS4uyDpopgg77yaUmU6IFtSaWZ0XSBbUklGVF1bTm9uIGVxdWFs
IGNvc3QgYW55Y2FzdF0NCg0KDQoNCkJlbmNob25nLCBhcyBhbHdheXMsIHdoZW4gcGVvcGxlIHN0
YXJ0IGltcGxlbWVudCB0aGV5IHN0YXJ0IHRvIGFzayB0aGUgcmVhbCBxdWVzdGlvbnMgOy0pIFll
cywgYW55IGNhc3QgaW4gUklGVCBpcyBtdWNoIGNsb3NlciB0byB3aGF0IHlvdSB3b3VsZCBjb25z
aWRlciDigJx0cnVlIGFueSBjYXN04oCdIHRoYW4gSVAgaXMgd2hpY2ggaXMgcmVhbGx5IGp1c3Qg
RUNNUCBvbiBzYW1lIGFkZHJlc3MuIEluIFJJRlQgYW55Y2FzdCBvbiBkaWZmZXJlbnQgZGlzdGFu
Y2Ugbm9kZXMgaXMgYSBub3JtYWwgdGhpbmcuIA0KDQpGaXJzdCwgaXQgaXQgaW1wb3J0YW50IHRv
IHVuZGVyc3RhbmQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBtb2JpbGl0eSBhbmQgYW55IGNhc3Qg
b24gdGhlIGZhYnJpYy4gaWYgYSBwcmVmaXggbW92ZXMgb24gdGhlIGZhYnJpYyB3aXRob3V0IHVz
aW5nIHRoZSBtb2JpbGl0eSBhdHRyaWJ1dGVzIGl0IGNhbiBhcHBlYXIgaW4gdHdvIGxvY2F0aW9u
cyBAIG9uY2Ugb2YgY291cnNlIChpZiB0aGUgbmV3IFRJRSBmbG9vZHMgZmFzdGVyIHRoYW4gdGhl
IHByZXZpb3VzIGxvY2F0aW9uIG1hbmFnZXMgdG8gcHVyZ2UgdGhlIHByZWZpeCkuIFRoYXQncyBu
b3QgYSBwcm9wZXIgYW55Y2FzdCBvZiBjb3Vyc2UsIHRoYXQncyBqdXN0IGFuIGFydGVmYWN0LiBJ
ZiB0aGUgcHJlZml4IHByb3Blcmx5IGF0dGFjaGVzIHRpbWVzdGFtcHMgYnkgc29tZSBtZWFucyAo
c3VjaCBhcyA2bG8pIGl0IHdpbGwgYmUgdW5kZXJzdG9vZCBhcyBoYXZpbmcgbW92ZWQsIG90aGVy
d2lzZSBpdCB3aWxsIGJlIGFueSBjYXN0IGZvciBhIGJpdC4gDQoNCg0KQW5kIHRoZW4sIG9mIGNv
dXJzZSB0aGVyZSBpcyB0cnVlIGFueSBjYXN0IHdoaWNoIGlzIGVxdWFsIHRvIHR3byBwcmVmaXhl
cyBhZHZlcnRpc2VkIGZyb20gdHdvIG5vZGVzIGJlaW5nIGVxdWFsLiBSSUZUIGlzIGxvb3AtZnJl
ZSB3aGljaCBtZWFucyB0aGF0IGl0IGRvZXNu4oCZdCByZWFsbHkgY2FyZSBhbGwgdGhhdCBtdWNo
IGFib3V0IGRpc3RhbmNlIHNvIGlmIGEgcGFja2V0IGVudGVycyBmcm9tIFRvRiBpdCBjYW4gYmUg
Zm9yd2FyZGVkIHRvIGFueSBsZWFmIHNob3dpbmcgYW55IGNhc3QuIFRoYXQgYWxsb3dzIHRydWUg
4oCcc2VydmljZSBvbiBhbnkgY2FzdOKAnSBhcmNoaXRlY3R1cmUuIEluIGNhc2Ugd2hlbiB5b3Ug
cm91dGUgZnJvbSB0aGUgbGVhZiB0aGUgcGFja2V0IHdpbGwgdXNlIGRlZmF1bHQgKHVubGVzcyBh
biBpbXBsZW1lbnRhdGlvbiBkb2VzIHRoZWlyIG93biB0aGluZ3MgdGhlIHNwZWMgZG9lc27igJl0
IG1lbnRpb24gYnV0IGRvZXNu4oCZdCBzdXBwcmVzcyBlaXRoZXIpIHVudGlsIGl0IHBvcHMgdXAg
ZmFyIGVub3VnaCBpdCBzZWVzIGFueSBjYXN0IEAgd2hpY2ggcG9pbnQgaW4gdGltZSBpdCB3aWxs
IHR1cm4gdGhlIHBhY2tldCBzb3V0aCAoYXNzdW1pbmcgYWxsIGFueWNhc3QgaXMgb24gbGVhZnMp
LiBpZiBiYWxhbmNpbmcgb2YgYW55IGNhc3Qgb3ZlciB3aG9sZSBtZXRyaWMgaXMgZGVzaXJlZCB0
aGVuIHRoZSBwYWNrZXQgbmVlZHMgdG8gYmUgcHVzaGVkIGFsbCB0aGUgd2F5IHRvIHRoZSBUb0Yg
dXNpbmcgdHVubmVscyBvciBzb21lIG90aGVyIHNvbHV0aW9uLiANCg0KDQpTbywgYmFzaWNhbGx5
LCBhbnkgY2FzdCBpcyBqdXN0IGEgZnVua3kgbmV4dC1ob3Agb24gYSBwcmVmaXggdGhhdCBjYW4g
cG9pbnQgdG8gdHdvIGRpZmZlcmVudCBub2RlcyAmIG1ldHJpYyBjYW4gYmUgdXNlZCB0byBiYWxh
bmNlIG9yIGlnbm9yZWQgYW5kIHRoZSBzcGVjIGRvZXMgbm90IG5lZWQgdG8gc2F5IG1vcmUgSSB0
aGluay4gDQoNCg0KVGhpcyBsaXR0bGUgZGlhdHJpYmUgc2hvdWxkIG1ha2UgaXQgaW50byBSSUZU
IGFwcGxpY2FiaWxpdHkgc3RhdGVtZW50IGluIHNvbWUgZm9ybSBJIHRoaW5rIC4uLiANCg0KDQot
LSB0b255IA0KDQoNCg0KDQoNCk9uIEZyaSwgSnVsIDI2LCAyMDE5IGF0IDU6NTcgQU0gPHh1LmJl
bmNob25nQHp0ZS5jb20uY24+IHdyb3RlOg0KDQoNCg0KSGksVG9ueQ0KDQpDYW4geW91IHRhbGsg
YWJvdXQgUkVRNiwgSG93IGRvZXMgUklGVCBzdXBwb3J0IGl0PyBJcyBpdCBiZW5lZml0aW5nIGZy
b20gdGhlIGRlZmF1bHQgcm91dGU/DQoNCiIgIFJFUTY6ICAgIE5vbiBlcXVhbCBjb3N0IGFueWNh
c3QgbXVzdCBiZSBzdXBwb3J0ZWQgdG8gYWxsb3cgZm9yIGVhc3kNCg0KICAgICAgICAgICAgYW5k
IHJvYnVzdCBtdWx0aS1ob21pbmcgb2Ygc2VydmljZXMgd2l0aG91dCByZWdyZXNzaW5nIHRvDQoN
CiAgICAgICAgICAgIGNhcmVmdWwgYmFsYW5jaW5nIG9mIGxpbmsgY29zdHMuIg0KDQoNCg0KDQoN
ClRoYW5rIHlvdSENCg0KDQpCZW5jaG9uZw0KDQoNCg0KDQoNCg0KX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCiBSSUZUIG1haWxpbmcgbGlzdA0KIFJJRlRA
aWV0Zi5vcmcNCiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3JpZnQ=


--=====_003_next=====
Content-Type: text/html ;
	charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBjbGFzcz0iemNvbnRlbnRSb3ciPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LWZh
bWlseTphcmlhbDsiPjxicj48L3A+PHAgc3R5bGU9ImZvbnQtc2l6ZToxNHB4O2ZvbnQtZmFtaWx5
OmFyaWFsOyI+VG9ueTwvcD48cD5Eb2VzIHRoaXMgbWVhbiB0aGF0IHdoZW4gUy1TUEYgY2FsY3Vs
YXRlLCB3ZSBjYW5ub3Qgc2VsZWN0IHRoZSBiZXN0IG5leHRob3Agd2l0aCB0aGUgc21hbGxlc3Qg
ZGlzdGFuY2UsIGFsbCB0aGUgbmV4dGhvcHMgbXVzdCBiZSBhZGRlZCB0byB0aGUgZm9yd2FyZGlu
ZyB0YWJsZSwgYW5kIGRpc3RhbmNlIGlzIHVzZWQgYXMgdGhlIGJhc2lzIGZvciDigJxOb24gZXF1
YWwgY29zdCBhbnljYXN04oCdIG9uIHRoZSBmb3J3YXJkaW5nIHBsYW5lLjwvcD48cD5OLVNQRiB1
c2VzIHRoZSBtZXRob2Qgb2YgNS4zLjYuMSBhbmQgdGhlIEJBRCBpbnN0ZWFkIHRoZSBkaXN0YW5j
ZS48L3A+PHA+PGJyPjwvcD48cD4tLUJlbmNob25nPC9wPjxwPjxicj48L3A+PHAgc3R5bGU9ImZv
bnQtc2l6ZToxNHB4O2ZvbnQtZmFtaWx5OmFyaWFsOyI+PGJyPjwvcD48ZGl2PjxkaXYgY2xhc3M9
InpoaXN0b3J5Um93IiBzdHlsZT0iZGlzcGxheTpibG9jayI+PGRpdiBjbGFzcz0iemhpc3RvcnlE
ZXMiIHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAyOHB4OyBsaW5lLWhlaWdodDogMjhweDsg
YmFja2dyb3VuZC1jb2xvcjogI0UwRTVFOTsgY29sb3I6ICMxMzg4RkY7IHRleHQtYWxpZ246IGNl
bnRlcjsiIGxhbmd1YWdlLWRhdGE9Ikhpc3RvcnlPcmdUeHQiPuWOn+Wni+mCruS7tjwvZGl2Pjxk
aXYgaWQ9Inp3cml0ZUhpc3RvcnlDb250YWluZXIiPjxkaXYgY2xhc3M9ImNvbnRyb2wtZ3JvdXAg
emhpc3RvcnlQYW5lbCI+PGRpdiBjbGFzcz0iemhpc3RvcnlIZWFkZXIiIHN0eWxlPSJwYWRkaW5n
OiA4cHg7IGJhY2tncm91bmQtY29sb3I6ICNGNUY2Rjg7Ij48ZGl2PjxzdHJvbmcgbGFuZ3VhZ2Ut
ZGF0YT0iSGlzdG9yeVNlbmRlclR4dCI+5Y+R5Lu25Lq677yaPC9zdHJvbmc+PHNwYW4gY2xhc3M9
InpyZWFkVXNlck5hbWUiPlRvbnlQcnp5Z2llbmRhICZsdDt0b255c2lldGZAZ21haWwuY29tJmd0
Ozwvc3Bhbj48L2Rpdj48ZGl2PjxzdHJvbmcgbGFuZ3VhZ2UtZGF0YT0iSGlzdG9yeVRPVHh0Ij7m
lLbku7bkurrvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ienJlYWRVc2VyTmFtZSIgc3R5bGU9ImRp
c3BsYXk6IGlubGluZTsiPuW+kOacrOW0hzEwMDY1MDUzOzwvc3Bhbj48L2Rpdj48ZGl2PjxzdHJv
bmcgbGFuZ3VhZ2UtZGF0YT0iSGlzdG9yeUNDVHh0Ij7mioTpgIHkurrvvJo8L3N0cm9uZz48c3Bh
biBjbGFzcz0ienJlYWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsiPkFudG9uaSBQ
cnp5Z2llbmRhICZsdDtwcnpAanVuaXBlci5uZXQmZ3Q7Ozwvc3Bhbj48c3BhbiBjbGFzcz0ienJl
YWRVc2VyTmFtZSIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsiPnJpZnRAaWV0Zi5vcmcgJmx0O3Jp
ZnRAaWV0Zi5vcmcmZ3Q7Ozwvc3Bhbj48L2Rpdj48ZGl2PjxzdHJvbmcgbGFuZ3VhZ2UtZGF0YT0i
SGlzdG9yeURhdGVUeHQiPuaXpSDmnJ8g77yaPC9zdHJvbmc+PHNwYW4gY2xhc3M9IiI+MjAxOeW5
tDA35pyIMjfml6UgMDM6MzQ8L3NwYW4+PC9kaXY+PGRpdj48c3Ryb25nIGxhbmd1YWdlLWRhdGE9
Ikhpc3RvcnlTdWJqZWN0VHh0Ij7kuLsg6aKYIO+8mjwvc3Ryb25nPjxzcGFuIGNsYXNzPSJ6cmVh
ZFRpdGxlIj48c3Ryb25nPlJlOiBbUmlmdF0gW1JJRlRdW05vbiBlcXVhbCBjb3N0IGFueWNhc3Rd
PC9zdHJvbmc+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InpoaXN0b3J5Q29udGVudCI+
PGRpdj48ZGl2IGRpcj0ibHRyIj5CZW5jaG9uZywgYXMgYWx3YXlzLCB3aGVuIHBlb3BsZSBzdGFy
dCBpbXBsZW1lbnQgdGhleSBzdGFydCB0byBhc2sgdGhlIHJlYWwgcXVlc3Rpb25zIDstKSBZZXMs
IGFueSBjYXN0IGluIFJJRlQgaXMgbXVjaCBjbG9zZXIgdG8gd2hhdCB5b3Ugd291bGQgY29uc2lk
ZXIg4oCcdHJ1ZSBhbnkgY2FzdOKAnSB0aGFuIElQIGlzIHdoaWNoIGlzIHJlYWxseSBqdXN0IEVD
TVAgb24gc2FtZSBhZGRyZXNzLiBJbiBSSUZUIGFueWNhc3Qgb24gZGlmZmVyZW50IGRpc3RhbmNl
IG5vZGVzIGlzIGEgbm9ybWFsIHRoaW5nLiA8YnI+PGJyPjxkaXY+Rmlyc3QsIGl0IGl0IGltcG9y
dGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbW9iaWxpdHkgYW5kIGFu
eSBjYXN0IG9uIHRoZSBmYWJyaWMuIGlmIGEgcHJlZml4IG1vdmVzIG9uIHRoZSBmYWJyaWMgd2l0
aG91dCB1c2luZyB0aGUgbW9iaWxpdHkgYXR0cmlidXRlcyBpdCBjYW4gYXBwZWFyIGluIHR3byBs
b2NhdGlvbnMgQCBvbmNlIG9mIGNvdXJzZSAoaWYgdGhlIG5ldyBUSUUgZmxvb2RzIGZhc3RlciB0
aGFuIHRoZSBwcmV2aW91cyBsb2NhdGlvbiBtYW5hZ2VzIHRvIHB1cmdlIHRoZSBwcmVmaXgpLiBU
aGF0J3Mgbm90IGEgcHJvcGVyIGFueWNhc3Qgb2YgY291cnNlLCB0aGF0J3MganVzdCBhbiBhcnRl
ZmFjdC4gSWYgdGhlIHByZWZpeCBwcm9wZXJseSBhdHRhY2hlcyB0aW1lc3RhbXBzIGJ5IHNvbWUg
bWVhbnMgKHN1Y2ggYXMgNmxvKSBpdCB3aWxsIGJlIHVuZGVyc3Rvb2QgYXMgaGF2aW5nIG1vdmVk
LCBvdGhlcndpc2UgaXQgd2lsbCBiZSBhbnkgY2FzdCBmb3IgYSBiaXQuIDxicj48L2Rpdj48YnI+
PGRpdj5BbmQgdGhlbiwgb2YgY291cnNlIHRoZXJlIGlzIHRydWUgYW55IGNhc3Qgd2hpY2ggaXMg
ZXF1YWwgdG8gdHdvIHByZWZpeGVzIGFkdmVydGlzZWQgZnJvbSB0d28gbm9kZXMgYmVpbmcgZXF1
YWwuIFJJRlQgaXMgbG9vcC1mcmVlIHdoaWNoIG1lYW5zIHRoYXQgaXQgZG9lc27igJl0IHJlYWxs
eSBjYXJlIGFsbCB0aGF0IG11Y2ggYWJvdXQgZGlzdGFuY2Ugc28gaWYgYSBwYWNrZXQgZW50ZXJz
IGZyb20gVG9GIGl0IGNhbiBiZSBmb3J3YXJkZWQgdG8gYW55IGxlYWYgc2hvd2luZyBhbnkgY2Fz
dC4gVGhhdCBhbGxvd3MgdHJ1ZSDigJxzZXJ2aWNlIG9uIGFueSBjYXN04oCdIGFyY2hpdGVjdHVy
ZS4gSW4gY2FzZSB3aGVuIHlvdSByb3V0ZSBmcm9tIHRoZSBsZWFmIHRoZSBwYWNrZXQgd2lsbCB1
c2UgZGVmYXVsdCAodW5sZXNzIGFuIGltcGxlbWVudGF0aW9uIGRvZXMgdGhlaXIgb3duIHRoaW5n
cyB0aGUgc3BlYyBkb2VzbuKAmXQgbWVudGlvbiBidXQgZG9lc27igJl0IHN1cHByZXNzIGVpdGhl
cikgdW50aWwgaXQgcG9wcyB1cCBmYXIgZW5vdWdoIGl0IHNlZXMgYW55IGNhc3QgQCB3aGljaCBw
b2ludCBpbiB0aW1lIGl0IHdpbGwgdHVybiB0aGUgcGFja2V0IHNvdXRoIChhc3N1bWluZyBhbGwg
YW55Y2FzdCBpcyBvbiBsZWFmcykuIGlmIGJhbGFuY2luZyBvZiBhbnkgY2FzdCBvdmVyIHdob2xl
IG1ldHJpYyBpcyBkZXNpcmVkIHRoZW4gdGhlIHBhY2tldCBuZWVkcyB0byBiZSBwdXNoZWQgYWxs
IHRoZSB3YXkgdG8gdGhlIFRvRiB1c2luZyB0dW5uZWxzIG9yIHNvbWUgb3RoZXIgc29sdXRpb24u
IDxicj48L2Rpdj48YnI+PGRpdj5TbywgYmFzaWNhbGx5LCBhbnkgY2FzdCBpcyBqdXN0IGEgZnVu
a3kgbmV4dC1ob3Agb24gYSBwcmVmaXggdGhhdCBjYW4gcG9pbnQgdG8gdHdvIGRpZmZlcmVudCBu
b2RlcyAmYW1wOyBtZXRyaWMgY2FuIGJlIHVzZWQgdG8gYmFsYW5jZSBvciBpZ25vcmVkIGFuZCB0
aGUgc3BlYyBkb2VzIG5vdCBuZWVkIHRvIHNheSBtb3JlIEkgdGhpbmsuIDxicj48L2Rpdj48YnI+
PGRpdj5UaGlzIGxpdHRsZSBkaWF0cmliZSBzaG91bGQgbWFrZSBpdCBpbnRvIFJJRlQgYXBwbGlj
YWJpbGl0eSBzdGF0ZW1lbnQgaW4gc29tZSBmb3JtIEkgdGhpbmsgLi4uIDxicj48L2Rpdj48YnI+
PGRpdj4tLSB0b255IDxicj48L2Rpdj48L2Rpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUi
PjxkaXYgZGlyPSJsdHIiIGNsYXNzPSJnbWFpbF9hdHRyIj5PbiBGcmksIEp1bCAyNiwgMjAxOSBh
dCA1OjU3IEFNICZsdDs8YSBocmVmPSJtYWlsdG86eHUuYmVuY2hvbmdAenRlLmNvbS5jbiIgdGFy
Z2V0PSJfYmxhbmsiPnh1LmJlbmNob25nQHp0ZS5jb20uY248L2E+Jmd0OyB3cm90ZTo8YnI+PC9k
aXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHgg
MHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmct
bGVmdDoxZXgiPjxkaXYgY2xhc3M9ImdtYWlsLW1fODQzNDM1MjkyOTYyNzA3MDA4M3pjb250ZW50
Um93Ij48cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6YXJpYWwiPkhpLDxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTpBcmlhbCzlrovkvZMsJnF1b3Q7TWljcm9zb2Z0IFlhaGVpJnF1
b3Q7LCZxdW90O0x1Y2lkYSBHcmFuZGUmcXVvdDssVmVyZGFuYSxMdWNpZGEsSGVsdmV0aWNhLHNh
bnMtc2VyaWY7bGluZS1oZWlnaHQ6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1
NSkiPlRvbnk8L3NwYW4+PC9wPjxwPkNhbiB5b3UgdGFsayBhYm91dCBSRVE2LCZuYnNwO0hvdyBk
b2VzIFJJRlQgc3VwcG9ydCBpdD8mbmJzcDtJcyBpdCBiZW5lZml0aW5nIGZyb20gdGhlIGRlZmF1
bHQgcm91dGU/PC9wPjxwPiIgJm5ic3A7UkVRNjogJm5ic3A7ICZuYnNwO05vbiBlcXVhbCBjb3N0
IGFueWNhc3QgbXVzdCBiZSBzdXBwb3J0ZWQgdG8gYWxsb3cgZm9yIGVhc3k8L3A+PHA+Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgYW5kIHJvYnVzdCBtdWx0aS1ob21p
bmcgb2Ygc2VydmljZXMgd2l0aG91dCByZWdyZXNzaW5nIHRvPC9wPjxwPiZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGNhcmVmdWwgYmFsYW5jaW5nIG9mIGxpbmsgY29z
dHMuIjwvcD48cD48YnI+PC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LWZhbWlseTph
cmlhbCI+VGhhbmsgeW91ITwvcD48cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6
YXJpYWwiPkJlbmNob25nPC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LWZhbWlseTph
cmlhbCI+PGJyPjwvcD48L2Rpdj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXzxicj4gUklGVCBtYWlsaW5nIGxpc3Q8YnI+IDxhIGhyZWY9Im1haWx0bzpSSUZU
QGlldGYub3JnIiB0YXJnZXQ9Il9ibGFuayI+UklGVEBpZXRmLm9yZzwvYT48YnI+IDxhIGhyZWY9
Imh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vcmlmdCIgcmVsPSJub3JlZmVy
cmVyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5m
by9yaWZ0PC9hPjxicj4gPC9ibG9ja3F1b3RlPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2
PjwvZGl2PjwvZGl2PjxwPjxicj48L3A+PC9kaXY+


--=====_003_next=====--

--=====_002_next=====--

--=====_001_next=====--


From nobody Sun Jul 28 19:48:28 2019
Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D085C120170 for <rift@ietfa.amsl.com>; Sun, 28 Jul 2019 19:48:25 -0700 (PDT)
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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 Ty7M91AZ2t0j for <rift@ietfa.amsl.com>; Sun, 28 Jul 2019 19:48:23 -0700 (PDT)
Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) (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 81AE312016E for <rift@ietf.org>; Sun, 28 Jul 2019 19:48:22 -0700 (PDT)
Received: by mail-ed1-x544.google.com with SMTP id w13so57968597eds.4 for <rift@ietf.org>; Sun, 28 Jul 2019 19:48:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AsP7FHkn8szk/PEf8c1gJYw1x78DUT/pIgCYAmhE9w8=; b=e6jN3Ts7H0sGTpEDgZw9sdikld+k8PuAo/mBYCqNeRAAbH5jefe/JQTauVqPgsQMTW xpNsAm6YKHbGd+VewKAnST9woiT0suUUszgxTPYAtvHQngmg8qjKpcyo9Z56FIeVVQkd PS+8z0dpmo3QOjCWmnvaRrnF9cqK+f5cr7B6pruiAeVVGMcDykF0sXoXNgEOIc26ctkE dISS8/WslBAmrGMHpOAuomWMDMIcPL/cX6oRAIL/CXmRVBZRzHbgrgXDCUYBPNnnPYuu sLFYRutkI4YkM21h5VKTTIWQRPA0l+Qzc4NMFGKPmWfZN9b6i/3xWW6spmBdg5JlfStF 9lJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AsP7FHkn8szk/PEf8c1gJYw1x78DUT/pIgCYAmhE9w8=; b=ijaVZoDC3RQApIhG7Apch+cUs2K7U2k3zR2Rtaeqp04hce3Kot/Ar1xMF/FNygC6SJ PPe13tuvaHsYqN3gzoN53YQ1RmN5agSh2bQ//rwzXzaCtIOU7M902NGgZHzWv6Z25soI JACGetarf0t+TlxX3GhsXjJVPuSTi8cpIAK3Jf5WARViU1xRWEFiQyrKNyRVVhlJSPZk IGcYonc3Sj7wEfavsrmK3KKBysFOT4H1BgKAhaa3mToPWizEuWJwFE+pmDPiHDWf9Ks8 UPpAa/oGxnvLyZtPgirpNsQmHRAEcm4TzMiHg1o0CuAAdWZEiE6dRgVAtS2n5RRVlM8H 6vcw==
X-Gm-Message-State: APjAAAXaYZqaedZz/tLrD007leflmYqma807BmRxsoPtnQKafGeVuRcK l8e7HWWRdUoD4T9L1fi3mII0Hoy78elBZdT+EIA=
X-Google-Smtp-Source: APXvYqyIy1088pimMx6WTN3ft1MR3o3pf2MAeHFYSv6H4OLtzxClwjO6+epjiFGbj5YOkb/UfCBdSc5xsWUE7+h9IRE=
X-Received: by 2002:aa7:c3c4:: with SMTP id l4mr38445485edr.32.1564368501035;  Sun, 28 Jul 2019 19:48:21 -0700 (PDT)
MIME-Version: 1.0
References: <CA+wi2hMg6gx_nnHCu7iP9S3snAjL=qAWObx3Hh=bUgzF=vz+3A@mail.gmail.com> <201907291001327532177@zte.com.cn>
In-Reply-To: <201907291001327532177@zte.com.cn>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Sun, 28 Jul 2019 19:47:44 -0700
Message-ID: <CA+wi2hORAFJ3uUg-NOS5BLXFwPQoi+Y9n-DyMkfmoftH2FBJtQ@mail.gmail.com>
To: xu.benchong@zte.com.cn
Cc: Antoni Przygienda <prz@juniper.net>, rift@ietf.org
Content-Type: multipart/alternative; boundary="000000000000cd5662058ec8ec52"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/FLTdcm6yKXugqEajHdZiFJlpIys>
Subject: Re: [Rift] [RIFT][Non equal cost anycast]
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jul 2019 02:48:26 -0000

--000000000000cd5662058ec8ec52
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hey Benchong, observe that RIFT is only giving suggested computations and
does not provide a prescriptive language for them. In simpler terms, as
long we follow valley-free routing (packet goes up until it turns down) we
can use any nexthop available giving you reachability to the prefix in the
desired direction really  (and in both cases you must do LPM based on the
information provided to prevent blackholing). And then in both directions
you can load-balance as you please. This allows to saturate the whole
fabric while balancing on any metric, where BAD northbound is a metric that
had good response from people who reviewed how they would like an IP fabric
protocol to work and that's why it's included. One could define something
like BAD as well in southbound direction but it's not that clear what makes
sense there, simplest is SPF, next would be all-paths, then balancing on
some kind of bandwidth in southbound towards the leaf (but that's where it
gets hard if you think about it).

In any case, if we want anycast to work properly we have to build an
next-hop that includes all nodes that advertised the prefix, yes. But
obviously we can also just include the shortest SPF node & it's still
anycast, just a very badly balancing one if distances are uneven ;-) ...

Valley-free routing in RIFT (obviously possible only since we have rank
ordering of the nodes, i.e. a top and a bottom) frees us from the shackles
of SPF and moves things closer to
https://en.wikipedia.org/wiki/Maximum_flow_problem in a simple way since
employing secondary technique in traditional routing like CSPF and so on
pre-conditions much more complex machinery and source routing mechanisms
like MPLS/SR in the fabric which would make it obviously more expensive
(the finer we want to control our commodity flow the more state we stick on
the packet and/or into the network) and less reactive to changes (due to
the necessary state distribution into intermediate points once the topology
converged). Whereas in plain RIFT we stick to valley-free hop-by-hop
routing which though it does not allow much granularity except prefix
makes up by being pliable, simple & hence cheap and robust (which seems
very desirable in fabric where bandwidth substitues for smarts [as IP did
in most of its history]). And yes, SR/MPLS can be made to work on RIFT but
that's a different discussion altogether. In a sense, if we advertise
unsolicited label bindings on LIEs (which we optionally include)  we have a
flavor of LDP already for free if I'm not mistaken ...

--- tony

On Sun, Jul 28, 2019 at 7:01 PM <xu.benchong@zte.com.cn> wrote:

>
> Tony
>
> Does this mean that when S-SPF calculate, we cannot select the best
> nexthop with the smallest distance, all the nexthops must be added to the
> forwarding table, and distance is used as the basis for =E2=80=9CNon equa=
l cost
> anycast=E2=80=9D on the forwarding plane.
>
> N-SPF uses the method of 5.3.6.1 and the BAD instead the distance.
>
>
> --Benchong
>
>
>
> =E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6
> *=E5=8F=91=E4=BB=B6=E4=BA=BA=EF=BC=9A*TonyPrzygienda <tonysietf@gmail.com=
>
> *=E6=94=B6=E4=BB=B6=E4=BA=BA=EF=BC=9A*=E5=BE=90=E6=9C=AC=E5=B4=8710065053=
;
> *=E6=8A=84=E9=80=81=E4=BA=BA=EF=BC=9A*Antoni Przygienda <prz@juniper.net>=
;rift@ietf.org <rift@ietf.org>;
> *=E6=97=A5 =E6=9C=9F =EF=BC=9A*2019=E5=B9=B407=E6=9C=8827=E6=97=A5 03:34
> *=E4=B8=BB =E9=A2=98 =EF=BC=9A**Re: [Rift] [RIFT][Non equal cost anycast]=
*
> Benchong, as always, when people start implement they start to ask the
> real questions ;-) Yes, any cast in RIFT is much closer to what you would
> consider =E2=80=9Ctrue any cast=E2=80=9D than IP is which is really just =
ECMP on same
> address. In RIFT anycast on different distance nodes is a normal thing.
>
> First, it it important to understand the difference between mobility and
> any cast on the fabric. if a prefix moves on the fabric without using the
> mobility attributes it can appear in two locations @ once of course (if t=
he
> new TIE floods faster than the previous location manages to purge the
> prefix). That's not a proper anycast of course, that's just an artefact. =
If
> the prefix properly attaches timestamps by some means (such as 6lo) it wi=
ll
> be understood as having moved, otherwise it will be any cast for a bit.
>
> And then, of course there is true any cast which is equal to two prefixes
> advertised from two nodes being equal. RIFT is loop-free which means that
> it doesn=E2=80=99t really care all that much about distance so if a packe=
t enters
> from ToF it can be forwarded to any leaf showing any cast. That allows tr=
ue
> =E2=80=9Cservice on any cast=E2=80=9D architecture. In case when you rout=
e from the leaf
> the packet will use default (unless an implementation does their own thin=
gs
> the spec doesn=E2=80=99t mention but doesn=E2=80=99t suppress either) unt=
il it pops up far
> enough it sees any cast @ which point in time it will turn the packet sou=
th
> (assuming all anycast is on leafs). if balancing of any cast over whole
> metric is desired then the packet needs to be pushed all the way to the T=
oF
> using tunnels or some other solution.
>
> So, basically, any cast is just a funky next-hop on a prefix that can
> point to two different nodes & metric can be used to balance or ignored a=
nd
> the spec does not need to say more I think.
>
> This little diatribe should make it into RIFT applicability statement in
> some form I think ...
>
> -- tony
>
> On Fri, Jul 26, 2019 at 5:57 AM <xu.benchong@zte.com.cn> wrote:
>
>> Hi,Tony
>>
>> Can you talk about REQ6, How does RIFT support it? Is it benefiting from
>> the default route?
>>
>> "  REQ6:    Non equal cost anycast must be supported to allow for easy
>>
>>             and robust multi-homing of services without regressing to
>>
>>             careful balancing of link costs."
>>
>>
>> Thank you!
>>
>> Benchong
>>
>>
>> _______________________________________________
>> RIFT mailing list
>> RIFT@ietf.org
>> https://www.ietf.org/mailman/listinfo/rift
>>
>
>

--000000000000cd5662058ec8ec52
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><br></div><div><br></div><div>Hey Benchong, observe t=
hat RIFT is only giving suggested computations and does not provide a presc=
riptive language for them. In simpler terms, as long we follow valley-free =
routing (packet goes up until it turns down) we can use any nexthop availab=
le giving you reachability to the prefix in the desired direction really=C2=
=A0 (and in both cases you must do LPM based on the information provided to=
 prevent blackholing). And then in both directions you can load-balance as =
you please. This allows to saturate the whole fabric while balancing on any=
 metric, where BAD northbound is a metric that had good response from peopl=
e who reviewed how they would like an IP fabric protocol to work and that&#=
39;s why it&#39;s included. One could define something like BAD as well in =
southbound direction but it&#39;s not that clear what makes sense there, si=
mplest is SPF, next would be all-paths, then balancing on some kind of band=
width in southbound towards the leaf (but that&#39;s where it gets hard if =
you think about it). <br></div><div><br></div><div>In any case, if we want =
anycast to work properly we have to build an next-hop that includes all nod=
es that advertised the prefix, yes. But obviously we can also just include =
the shortest SPF node &amp; it&#39;s still anycast, just a very badly balan=
cing one if distances are uneven ;-) ... <br></div><div><br></div><div>Vall=
ey-free routing in RIFT (obviously possible only since we have rank orderin=
g of the nodes, i.e. a top and a bottom) frees us from the shackles of SPF =
and moves things closer to <a href=3D"https://en.wikipedia.org/wiki/Maximum=
_flow_problem">https://en.wikipedia.org/wiki/Maximum_flow_problem</a> in a =
simple way since employing secondary technique in traditional routing like =
CSPF and so on pre-conditions much more complex machinery and source routin=
g mechanisms like MPLS/SR in the fabric which would make it obviously more =
expensive (the finer we want to control our commodity flow the more state w=
e stick on the packet and/or into the network) and less reactive to changes=
 (due to the necessary state distribution into intermediate points once the=
 topology converged). Whereas in plain RIFT we stick to valley-free hop-by-=
hop routing which though it does not allow much granularity except prefix=
=C2=A0 makes up by being pliable, simple &amp; hence cheap and robust (whic=
h seems very desirable in fabric where bandwidth substitues for smarts [as =
IP did in most of its history]). And yes, SR/MPLS can be made to work on RI=
FT but that&#39;s a different discussion altogether. In a sense, if we adve=
rtise unsolicited label bindings on LIEs (which we optionally include)=C2=
=A0 we have a flavor of LDP already for free if I&#39;m not mistaken ... <b=
r></div><div><br></div><div>--- tony <br></div></div><br><div class=3D"gmai=
l_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sun, Jul 28, 2019 at 7:01=
 PM &lt;<a href=3D"mailto:xu.benchong@zte.com.cn">xu.benchong@zte.com.cn</a=
>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><di=
v class=3D"gmail-m_5967291388318494195zcontentRow"><p style=3D"font-size:14=
px;font-family:arial"><br></p><p style=3D"font-size:14px;font-family:arial"=
>Tony</p><p>Does this mean that when S-SPF calculate, we cannot select the =
best nexthop with the smallest distance, all the nexthops must be added to =
the forwarding table, and distance is used as the basis for =E2=80=9CNon eq=
ual cost anycast=E2=80=9D on the forwarding plane.</p><p>N-SPF uses the met=
hod of 5.3.6.1 and the BAD instead the distance.</p><p><br></p><p>--Benchon=
g</p><p><br></p><p style=3D"font-size:14px;font-family:arial"><br></p><div>=
<div class=3D"gmail-m_5967291388318494195zhistoryRow" style=3D"display:bloc=
k"><div class=3D"gmail-m_5967291388318494195zhistoryDes" style=3D"width:100=
%;height:28px;line-height:28px;background-color:rgb(224,229,233);color:rgb(=
19,136,255);text-align:center">=E5=8E=9F=E5=A7=8B=E9=82=AE=E4=BB=B6</div><d=
iv id=3D"gmail-m_5967291388318494195zwriteHistoryContainer"><div class=3D"g=
mail-m_5967291388318494195control-group gmail-m_5967291388318494195zhistory=
Panel"><div class=3D"gmail-m_5967291388318494195zhistoryHeader" style=3D"pa=
dding:8px;background-color:rgb(245,246,248)"><div><strong>=E5=8F=91=E4=BB=
=B6=E4=BA=BA=EF=BC=9A</strong><span class=3D"gmail-m_5967291388318494195zre=
adUserName">TonyPrzygienda &lt;<a href=3D"mailto:tonysietf@gmail.com" targe=
t=3D"_blank">tonysietf@gmail.com</a>&gt;</span></div><div><strong>=E6=94=B6=
=E4=BB=B6=E4=BA=BA=EF=BC=9A</strong><span class=3D"gmail-m_5967291388318494=
195zreadUserName" style=3D"display:inline">=E5=BE=90=E6=9C=AC=E5=B4=8710065=
053;</span></div><div><strong>=E6=8A=84=E9=80=81=E4=BA=BA=EF=BC=9A</strong>=
<span class=3D"gmail-m_5967291388318494195zreadUserName" style=3D"display:i=
nline">Antoni Przygienda &lt;<a href=3D"mailto:prz@juniper.net" target=3D"_=
blank">prz@juniper.net</a>&gt;;</span><span class=3D"gmail-m_59672913883184=
94195zreadUserName" style=3D"display:inline"><a href=3D"mailto:rift@ietf.or=
g" target=3D"_blank">rift@ietf.org</a> &lt;<a href=3D"mailto:rift@ietf.org"=
 target=3D"_blank">rift@ietf.org</a>&gt;;</span></div><div><strong>=E6=97=
=A5 =E6=9C=9F =EF=BC=9A</strong><span>2019=E5=B9=B407=E6=9C=8827=E6=97=A5 0=
3:34</span></div><div><strong>=E4=B8=BB =E9=A2=98 =EF=BC=9A</strong><span c=
lass=3D"gmail-m_5967291388318494195zreadTitle"><strong>Re: [Rift] [RIFT][No=
n equal cost anycast]</strong></span></div></div><div class=3D"gmail-m_5967=
291388318494195zhistoryContent"><div><div dir=3D"ltr">Benchong, as always, =
when people start implement they start to ask the real questions ;-) Yes, a=
ny cast in RIFT is much closer to what you would consider =E2=80=9Ctrue any=
 cast=E2=80=9D than IP is which is really just ECMP on same address. In RIF=
T anycast on different distance nodes is a normal thing. <br><br><div>First=
, it it important to understand the difference between mobility and any cas=
t on the fabric. if a prefix moves on the fabric without using the mobility=
 attributes it can appear in two locations @ once of course (if the new TIE=
 floods faster than the previous location manages to purge the prefix). Tha=
t&#39;s not a proper anycast of course, that&#39;s just an artefact. If the=
 prefix properly attaches timestamps by some means (such as 6lo) it will be=
 understood as having moved, otherwise it will be any cast for a bit. <br><=
/div><br><div>And then, of course there is true any cast which is equal to =
two prefixes advertised from two nodes being equal. RIFT is loop-free which=
 means that it doesn=E2=80=99t really care all that much about distance so =
if a packet enters from ToF it can be forwarded to any leaf showing any cas=
t. That allows true =E2=80=9Cservice on any cast=E2=80=9D architecture. In =
case when you route from the leaf the packet will use default (unless an im=
plementation does their own things the spec doesn=E2=80=99t mention but doe=
sn=E2=80=99t suppress either) until it pops up far enough it sees any cast =
@ which point in time it will turn the packet south (assuming all anycast i=
s on leafs). if balancing of any cast over whole metric is desired then the=
 packet needs to be pushed all the way to the ToF using tunnels or some oth=
er solution. <br></div><br><div>So, basically, any cast is just a funky nex=
t-hop on a prefix that can point to two different nodes &amp; metric can be=
 used to balance or ignored and the spec does not need to say more I think.=
 <br></div><br><div>This little diatribe should make it into RIFT applicabi=
lity statement in some form I think ... <br></div><br><div>-- tony <br></di=
v></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr=
">On Fri, Jul 26, 2019 at 5:57 AM &lt;<a href=3D"mailto:xu.benchong@zte.com=
.cn" target=3D"_blank">xu.benchong@zte.com.cn</a>&gt; wrote:<br></div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:=
1px solid rgb(204,204,204);padding-left:1ex"><div class=3D"gmail-m_59672913=
88318494195gmail-m_8434352929627070083zcontentRow"><p style=3D"font-size:14=
px;font-family:arial">Hi,<span style=3D"font-family:Arial,=E5=AE=8B=E4=BD=
=93,&quot;Microsoft Yahei&quot;,&quot;Lucida Grande&quot;,Verdana,Lucida,He=
lvetica,sans-serif;line-height:20px;background-color:rgb(255,255,255)">Tony=
</span></p><p>Can you talk about REQ6,=C2=A0How does RIFT support it?=C2=A0=
Is it benefiting from the default route?</p><p>&quot; =C2=A0REQ6: =C2=A0 =
=C2=A0Non equal cost anycast must be supported to allow for easy</p><p>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 and robust multi-homing of services =
without regressing to</p><p>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 caref=
ul balancing of link costs.&quot;</p><p><br></p><p style=3D"font-size:14px;=
font-family:arial">Thank you!</p><p style=3D"font-size:14px;font-family:ari=
al">Benchong</p><p style=3D"font-size:14px;font-family:arial"><br></p></div=
>_______________________________________________<br> RIFT mailing list<br> =
<a href=3D"mailto:RIFT@ietf.org" target=3D"_blank">RIFT@ietf.org</a><br> <a=
 href=3D"https://www.ietf.org/mailman/listinfo/rift" rel=3D"noreferrer" tar=
get=3D"_blank">https://www.ietf.org/mailman/listinfo/rift</a><br> </blockqu=
ote></div></div></div></div></div></div></div><p><br></p></div></blockquote=
></div>

--000000000000cd5662058ec8ec52--


From nobody Sun Jul 28 20:41:45 2019
Return-Path: <xu.benchong@zte.com.cn>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 24D581200D5 for <rift@ietfa.amsl.com>; Sun, 28 Jul 2019 20:41:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.198
X-Spam-Level: 
X-Spam-Status: No, score=-4.198 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, 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 OzsPI7dCdvWE for <rift@ietfa.amsl.com>; Sun, 28 Jul 2019 20:41:39 -0700 (PDT)
Received: from mxhk.zte.com.cn (mxhk.zte.com.cn [63.217.80.70]) (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 3D6AE120047 for <rift@ietf.org>; Sun, 28 Jul 2019 20:41:38 -0700 (PDT)
Received: from mxct.zte.com.cn (unknown [192.168.164.217]) by Forcepoint Email with ESMTPS id BA1CFD1EC7072E784DE6; Mon, 29 Jul 2019 11:41:36 +0800 (CST)
Received: from mse-fl1.zte.com.cn (unknown [10.30.14.238]) by Forcepoint Email with ESMTPS id 91196771E1D8342D103C; Mon, 29 Jul 2019 11:41:36 +0800 (CST)
Received: from njxapp04.zte.com.cn ([10.41.132.203]) by mse-fl1.zte.com.cn with SMTP id x6T3eZC6068014; Mon, 29 Jul 2019 11:40:35 +0800 (GMT-8) (envelope-from xu.benchong@zte.com.cn)
Received: from mapi (njxapp01[null]) by mapi (Zmail) with MAPI id mid201; Mon, 29 Jul 2019 11:40:35 +0800 (CST)
Date: Mon, 29 Jul 2019 11:40:35 +0800 (CST)
X-Zmail-TransId: 2af95d3e6ab3301ba89b
X-Mailer: Zmail v1.0
Message-ID: <201907291140354336620@zte.com.cn>
In-Reply-To: <CA+wi2hORAFJ3uUg-NOS5BLXFwPQoi+Y9n-DyMkfmoftH2FBJtQ@mail.gmail.com>
References: CA+wi2hMg6gx_nnHCu7iP9S3snAjL=qAWObx3Hh=bUgzF=vz+3A@mail.gmail.com,  CA+wi2hORAFJ3uUg-NOS5BLXFwPQoi+Y9n-DyMkfmoftH2FBJtQ@mail.gmail.com
Mime-Version: 1.0
From: <xu.benchong@zte.com.cn>
To: <tonysietf@gmail.com>
Cc: <prz@juniper.net>, <rift@ietf.org>
Content-Type: multipart/mixed; boundary="=====_001_next====="
X-MAIL: mse-fl1.zte.com.cn x6T3eZC6068014
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/rrH-LXJ8If5vJhgVegxdpf1QTgQ>
Subject: Re: [Rift] =?utf-8?q?=5BRIFT=5D=5BNon_equal_cost_anycast=5D?=
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jul 2019 03:41:43 -0000

--=====_001_next=====
Content-Type: multipart/related;
	boundary="=====_002_next====="


--=====_002_next=====
Content-Type: multipart/alternative;
	boundary="=====_003_next====="


--=====_003_next=====
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: base64

VG9uee+8jA0KDQpUaGUgZGVzY3JpcHRpb24gaXMgdmVyeSBjbGVhciwgQW5kIEkgZ290IG1vcmUg
dGhhbiBJIGV4cGVjdGVk77yBDQoNClRoYW5rIHlvde+8gQ0KDQpCZW5jaG9uZw0KDQoNCg0KDQoN
Cg0KDQrljp/lp4vpgq7ku7YNCg0KDQoNCuWPkeS7tuS6uu+8mlRvbnlQcnp5Z2llbmRhIDx0b255
c2lldGZAZ21haWwuY29tPg0K5pS25Lu25Lq677ya5b6Q5pys5bSHMTAwNjUwNTM7DQrmioTpgIHk
urrvvJpBbnRvbmkgUHJ6eWdpZW5kYSA8cHJ6QGp1bmlwZXIubmV0PjtyaWZ0QGlldGYub3JnIDxy
aWZ0QGlldGYub3JnPjsNCuaXpSDmnJ8g77yaMjAxOeW5tDA35pyIMjnml6UgMTA6NDkNCuS4uyDp
opgg77yaUmU6IFtSaWZ0XSBbUklGVF1bTm9uIGVxdWFsIGNvc3QgYW55Y2FzdF0NCg0KDQoNCg0K
DQpIZXkgQmVuY2hvbmcsIG9ic2VydmUgdGhhdCBSSUZUIGlzIG9ubHkgZ2l2aW5nIHN1Z2dlc3Rl
ZCBjb21wdXRhdGlvbnMgYW5kIGRvZXMgbm90IHByb3ZpZGUgYSBwcmVzY3JpcHRpdmUgbGFuZ3Vh
Z2UgZm9yIHRoZW0uIEluIHNpbXBsZXIgdGVybXMsIGFzIGxvbmcgd2UgZm9sbG93IHZhbGxleS1m
cmVlIHJvdXRpbmcgKHBhY2tldCBnb2VzIHVwIHVudGlsIGl0IHR1cm5zIGRvd24pIHdlIGNhbiB1
c2UgYW55IG5leHRob3AgYXZhaWxhYmxlIGdpdmluZyB5b3UgcmVhY2hhYmlsaXR5IHRvIHRoZSBw
cmVmaXggaW4gdGhlIGRlc2lyZWQgZGlyZWN0aW9uIHJlYWxseSAgKGFuZCBpbiBib3RoIGNhc2Vz
IHlvdSBtdXN0IGRvIExQTSBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24gcHJvdmlkZWQgdG8gcHJl
dmVudCBibGFja2hvbGluZykuIEFuZCB0aGVuIGluIGJvdGggZGlyZWN0aW9ucyB5b3UgY2FuIGxv
YWQtYmFsYW5jZSBhcyB5b3UgcGxlYXNlLiBUaGlzIGFsbG93cyB0byBzYXR1cmF0ZSB0aGUgd2hv
bGUgZmFicmljIHdoaWxlIGJhbGFuY2luZyBvbiBhbnkgbWV0cmljLCB3aGVyZSBCQUQgbm9ydGhi
b3VuZCBpcyBhIG1ldHJpYyB0aGF0IGhhZCBnb29kIHJlc3BvbnNlIGZyb20gcGVvcGxlIHdobyBy
ZXZpZXdlZCBob3cgdGhleSB3b3VsZCBsaWtlIGFuIElQIGZhYnJpYyBwcm90b2NvbCB0byB3b3Jr
IGFuZCB0aGF0J3Mgd2h5IGl0J3MgaW5jbHVkZWQuIE9uZSBjb3VsZCBkZWZpbmUgc29tZXRoaW5n
IGxpa2UgQkFEIGFzIHdlbGwgaW4gc291dGhib3VuZCBkaXJlY3Rpb24gYnV0IGl0J3Mgbm90IHRo
YXQgY2xlYXIgd2hhdCBtYWtlcyBzZW5zZSB0aGVyZSwgc2ltcGxlc3QgaXMgU1BGLCBuZXh0IHdv
dWxkIGJlIGFsbC1wYXRocywgdGhlbiBiYWxhbmNpbmcgb24gc29tZSBraW5kIG9mIGJhbmR3aWR0
aCBpbiBzb3V0aGJvdW5kIHRvd2FyZHMgdGhlIGxlYWYgKGJ1dCB0aGF0J3Mgd2hlcmUgaXQgZ2V0
cyBoYXJkIGlmIHlvdSB0aGluayBhYm91dCBpdCkuIA0KDQoNCkluIGFueSBjYXNlLCBpZiB3ZSB3
YW50IGFueWNhc3QgdG8gd29yayBwcm9wZXJseSB3ZSBoYXZlIHRvIGJ1aWxkIGFuIG5leHQtaG9w
IHRoYXQgaW5jbHVkZXMgYWxsIG5vZGVzIHRoYXQgYWR2ZXJ0aXNlZCB0aGUgcHJlZml4LCB5ZXMu
IEJ1dCBvYnZpb3VzbHkgd2UgY2FuIGFsc28ganVzdCBpbmNsdWRlIHRoZSBzaG9ydGVzdCBTUEYg
bm9kZSAmIGl0J3Mgc3RpbGwgYW55Y2FzdCwganVzdCBhIHZlcnkgYmFkbHkgYmFsYW5jaW5nIG9u
ZSBpZiBkaXN0YW5jZXMgYXJlIHVuZXZlbiA7LSkgLi4uIA0KDQoNClZhbGxleS1mcmVlIHJvdXRp
bmcgaW4gUklGVCAob2J2aW91c2x5IHBvc3NpYmxlIG9ubHkgc2luY2Ugd2UgaGF2ZSByYW5rIG9y
ZGVyaW5nIG9mIHRoZSBub2RlcywgaS5lLiBhIHRvcCBhbmQgYSBib3R0b20pIGZyZWVzIHVzIGZy
b20gdGhlIHNoYWNrbGVzIG9mIFNQRiBhbmQgbW92ZXMgdGhpbmdzIGNsb3NlciB0byBodHRwczov
L2VuLndpa2lwZWRpYS5vcmcvd2lraS9NYXhpbXVtX2Zsb3dfcHJvYmxlbSBpbiBhIHNpbXBsZSB3
YXkgc2luY2UgZW1wbG95aW5nIHNlY29uZGFyeSB0ZWNobmlxdWUgaW4gdHJhZGl0aW9uYWwgcm91
dGluZyBsaWtlIENTUEYgYW5kIHNvIG9uIHByZS1jb25kaXRpb25zIG11Y2ggbW9yZSBjb21wbGV4
IG1hY2hpbmVyeSBhbmQgc291cmNlIHJvdXRpbmcgbWVjaGFuaXNtcyBsaWtlIE1QTFMvU1IgaW4g
dGhlIGZhYnJpYyB3aGljaCB3b3VsZCBtYWtlIGl0IG9idmlvdXNseSBtb3JlIGV4cGVuc2l2ZSAo
dGhlIGZpbmVyIHdlIHdhbnQgdG8gY29udHJvbCBvdXIgY29tbW9kaXR5IGZsb3cgdGhlIG1vcmUg
c3RhdGUgd2Ugc3RpY2sgb24gdGhlIHBhY2tldCBhbmQvb3IgaW50byB0aGUgbmV0d29yaykgYW5k
IGxlc3MgcmVhY3RpdmUgdG8gY2hhbmdlcyAoZHVlIHRvIHRoZSBuZWNlc3Nhcnkgc3RhdGUgZGlz
dHJpYnV0aW9uIGludG8gaW50ZXJtZWRpYXRlIHBvaW50cyBvbmNlIHRoZSB0b3BvbG9neSBjb252
ZXJnZWQpLiBXaGVyZWFzIGluIHBsYWluIFJJRlQgd2Ugc3RpY2sgdG8gdmFsbGV5LWZyZWUgaG9w
LWJ5LWhvcCByb3V0aW5nIHdoaWNoIHRob3VnaCBpdCBkb2VzIG5vdCBhbGxvdyBtdWNoIGdyYW51
bGFyaXR5IGV4Y2VwdCBwcmVmaXggIG1ha2VzIHVwIGJ5IGJlaW5nIHBsaWFibGUsIHNpbXBsZSAm
IGhlbmNlIGNoZWFwIGFuZCByb2J1c3QgKHdoaWNoIHNlZW1zIHZlcnkgZGVzaXJhYmxlIGluIGZh
YnJpYyB3aGVyZSBiYW5kd2lkdGggc3Vic3RpdHVlcyBmb3Igc21hcnRzIFthcyBJUCBkaWQgaW4g
bW9zdCBvZiBpdHMgaGlzdG9yeV0pLiBBbmQgeWVzLCBTUi9NUExTIGNhbiBiZSBtYWRlIHRvIHdv
cmsgb24gUklGVCBidXQgdGhhdCdzIGEgZGlmZmVyZW50IGRpc2N1c3Npb24gYWx0b2dldGhlci4g
SW4gYSBzZW5zZSwgaWYgd2UgYWR2ZXJ0aXNlIHVuc29saWNpdGVkIGxhYmVsIGJpbmRpbmdzIG9u
IExJRXMgKHdoaWNoIHdlIG9wdGlvbmFsbHkgaW5jbHVkZSkgIHdlIGhhdmUgYSBmbGF2b3Igb2Yg
TERQIGFscmVhZHkgZm9yIGZyZWUgaWYgSSdtIG5vdCBtaXN0YWtlbiAuLi4gDQoNCg0KLS0tIHRv
bnkgDQoNCg0KDQoNCg0KT24gU3VuLCBKdWwgMjgsIDIwMTkgYXQgNzowMSBQTSA8eHUuYmVuY2hv
bmdAenRlLmNvbS5jbj4gd3JvdGU6DQoNCg0KDQoNCg0KDQoNClRvbnkNCg0KRG9lcyB0aGlzIG1l
YW4gdGhhdCB3aGVuIFMtU1BGIGNhbGN1bGF0ZSwgd2UgY2Fubm90IHNlbGVjdCB0aGUgYmVzdCBu
ZXh0aG9wIHdpdGggdGhlIHNtYWxsZXN0IGRpc3RhbmNlLCBhbGwgdGhlIG5leHRob3BzIG11c3Qg
YmUgYWRkZWQgdG8gdGhlIGZvcndhcmRpbmcgdGFibGUsIGFuZCBkaXN0YW5jZSBpcyB1c2VkIGFz
IHRoZSBiYXNpcyBmb3Ig4oCcTm9uIGVxdWFsIGNvc3QgYW55Y2FzdOKAnSBvbiB0aGUgZm9yd2Fy
ZGluZyBwbGFuZS4NCg0KTi1TUEYgdXNlcyB0aGUgbWV0aG9kIG9mIDUuMy42LjEgYW5kIHRoZSBC
QUQgaW5zdGVhZCB0aGUgZGlzdGFuY2UuDQoNCg0KDQoNCi0tQmVuY2hvbmcNCg0KDQoNCg0KDQoN
Cg0KDQoNCg0K5Y6f5aeL6YKu5Lu2DQoNCg0KDQrlj5Hku7bkurrvvJpUb255UHJ6eWdpZW5kYSA8
dG9ueXNpZXRmQGdtYWlsLmNvbT4NCuaUtuS7tuS6uu+8muW+kOacrOW0hzEwMDY1MDUzOw0K5oqE
6YCB5Lq677yaQW50b25pIFByenlnaWVuZGEgPHByekBqdW5pcGVyLm5ldD47cmlmdEBpZXRmLm9y
ZyA8cmlmdEBpZXRmLm9yZz47DQrml6Ug5pyfIO+8mjIwMTnlubQwN+aciDI35pelIDAzOjM0DQrk
uLsg6aKYIO+8mlJlOiBbUmlmdF0gW1JJRlRdW05vbiBlcXVhbCBjb3N0IGFueWNhc3RdDQoNCg0K
DQpCZW5jaG9uZywgYXMgYWx3YXlzLCB3aGVuIHBlb3BsZSBzdGFydCBpbXBsZW1lbnQgdGhleSBz
dGFydCB0byBhc2sgdGhlIHJlYWwgcXVlc3Rpb25zIDstKSBZZXMsIGFueSBjYXN0IGluIFJJRlQg
aXMgbXVjaCBjbG9zZXIgdG8gd2hhdCB5b3Ugd291bGQgY29uc2lkZXIg4oCcdHJ1ZSBhbnkgY2Fz
dOKAnSB0aGFuIElQIGlzIHdoaWNoIGlzIHJlYWxseSBqdXN0IEVDTVAgb24gc2FtZSBhZGRyZXNz
LiBJbiBSSUZUIGFueWNhc3Qgb24gZGlmZmVyZW50IGRpc3RhbmNlIG5vZGVzIGlzIGEgbm9ybWFs
IHRoaW5nLiANCg0KRmlyc3QsIGl0IGl0IGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZm
ZXJlbmNlIGJldHdlZW4gbW9iaWxpdHkgYW5kIGFueSBjYXN0IG9uIHRoZSBmYWJyaWMuIGlmIGEg
cHJlZml4IG1vdmVzIG9uIHRoZSBmYWJyaWMgd2l0aG91dCB1c2luZyB0aGUgbW9iaWxpdHkgYXR0
cmlidXRlcyBpdCBjYW4gYXBwZWFyIGluIHR3byBsb2NhdGlvbnMgQCBvbmNlIG9mIGNvdXJzZSAo
aWYgdGhlIG5ldyBUSUUgZmxvb2RzIGZhc3RlciB0aGFuIHRoZSBwcmV2aW91cyBsb2NhdGlvbiBt
YW5hZ2VzIHRvIHB1cmdlIHRoZSBwcmVmaXgpLiBUaGF0J3Mgbm90IGEgcHJvcGVyIGFueWNhc3Qg
b2YgY291cnNlLCB0aGF0J3MganVzdCBhbiBhcnRlZmFjdC4gSWYgdGhlIHByZWZpeCBwcm9wZXJs
eSBhdHRhY2hlcyB0aW1lc3RhbXBzIGJ5IHNvbWUgbWVhbnMgKHN1Y2ggYXMgNmxvKSBpdCB3aWxs
IGJlIHVuZGVyc3Rvb2QgYXMgaGF2aW5nIG1vdmVkLCBvdGhlcndpc2UgaXQgd2lsbCBiZSBhbnkg
Y2FzdCBmb3IgYSBiaXQuIA0KDQoNCkFuZCB0aGVuLCBvZiBjb3Vyc2UgdGhlcmUgaXMgdHJ1ZSBh
bnkgY2FzdCB3aGljaCBpcyBlcXVhbCB0byB0d28gcHJlZml4ZXMgYWR2ZXJ0aXNlZCBmcm9tIHR3
byBub2RlcyBiZWluZyBlcXVhbC4gUklGVCBpcyBsb29wLWZyZWUgd2hpY2ggbWVhbnMgdGhhdCBp
dCBkb2VzbuKAmXQgcmVhbGx5IGNhcmUgYWxsIHRoYXQgbXVjaCBhYm91dCBkaXN0YW5jZSBzbyBp
ZiBhIHBhY2tldCBlbnRlcnMgZnJvbSBUb0YgaXQgY2FuIGJlIGZvcndhcmRlZCB0byBhbnkgbGVh
ZiBzaG93aW5nIGFueSBjYXN0LiBUaGF0IGFsbG93cyB0cnVlIOKAnHNlcnZpY2Ugb24gYW55IGNh
c3TigJ0gYXJjaGl0ZWN0dXJlLiBJbiBjYXNlIHdoZW4geW91IHJvdXRlIGZyb20gdGhlIGxlYWYg
dGhlIHBhY2tldCB3aWxsIHVzZSBkZWZhdWx0ICh1bmxlc3MgYW4gaW1wbGVtZW50YXRpb24gZG9l
cyB0aGVpciBvd24gdGhpbmdzIHRoZSBzcGVjIGRvZXNu4oCZdCBtZW50aW9uIGJ1dCBkb2VzbuKA
mXQgc3VwcHJlc3MgZWl0aGVyKSB1bnRpbCBpdCBwb3BzIHVwIGZhciBlbm91Z2ggaXQgc2VlcyBh
bnkgY2FzdCBAIHdoaWNoIHBvaW50IGluIHRpbWUgaXQgd2lsbCB0dXJuIHRoZSBwYWNrZXQgc291
dGggKGFzc3VtaW5nIGFsbCBhbnljYXN0IGlzIG9uIGxlYWZzKS4gaWYgYmFsYW5jaW5nIG9mIGFu
eSBjYXN0IG92ZXIgd2hvbGUgbWV0cmljIGlzIGRlc2lyZWQgdGhlbiB0aGUgcGFja2V0IG5lZWRz
IHRvIGJlIHB1c2hlZCBhbGwgdGhlIHdheSB0byB0aGUgVG9GIHVzaW5nIHR1bm5lbHMgb3Igc29t
ZSBvdGhlciBzb2x1dGlvbi4gDQoNCg0KU28sIGJhc2ljYWxseSwgYW55IGNhc3QgaXMganVzdCBh
IGZ1bmt5IG5leHQtaG9wIG9uIGEgcHJlZml4IHRoYXQgY2FuIHBvaW50IHRvIHR3byBkaWZmZXJl
bnQgbm9kZXMgJiBtZXRyaWMgY2FuIGJlIHVzZWQgdG8gYmFsYW5jZSBvciBpZ25vcmVkIGFuZCB0
aGUgc3BlYyBkb2VzIG5vdCBuZWVkIHRvIHNheSBtb3JlIEkgdGhpbmsuIA0KDQoNClRoaXMgbGl0
dGxlIGRpYXRyaWJlIHNob3VsZCBtYWtlIGl0IGludG8gUklGVCBhcHBsaWNhYmlsaXR5IHN0YXRl
bWVudCBpbiBzb21lIGZvcm0gSSB0aGluayAuLi4gDQoNCg0KLS0gdG9ueSANCg0KDQoNCg0KDQpP
biBGcmksIEp1bCAyNiwgMjAxOSBhdCA1OjU3IEFNIDx4dS5iZW5jaG9uZ0B6dGUuY29tLmNuPiB3
cm90ZToNCg0KDQoNCkhpLFRvbnkNCg0KQ2FuIHlvdSB0YWxrIGFib3V0IFJFUTYsIEhvdyBkb2Vz
IFJJRlQgc3VwcG9ydCBpdD8gSXMgaXQgYmVuZWZpdGluZyBmcm9tIHRoZSBkZWZhdWx0IHJvdXRl
Pw0KDQoiICBSRVE2OiAgICBOb24gZXF1YWwgY29zdCBhbnljYXN0IG11c3QgYmUgc3VwcG9ydGVk
IHRvIGFsbG93IGZvciBlYXN5DQoNCiAgICAgICAgICAgIGFuZCByb2J1c3QgbXVsdGktaG9taW5n
IG9mIHNlcnZpY2VzIHdpdGhvdXQgcmVncmVzc2luZyB0bw0KDQogICAgICAgICAgICBjYXJlZnVs
IGJhbGFuY2luZyBvZiBsaW5rIGNvc3RzLiINCg0KDQoNCg0KDQpUaGFuayB5b3UhDQoNCg0KQmVu
Y2hvbmcNCg0KDQoNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fDQogUklGVCBtYWlsaW5nIGxpc3QNCiBSSUZUQGlldGYub3JnDQogaHR0cHM6Ly93
d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9yaWZ0


--=====_003_next=====
Content-Type: text/html ;
	charset="UTF-8"
Content-Transfer-Encoding: base64

PGRpdiBjbGFzcz0iemNvbnRlbnRSb3ciPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtmb250LWZh
bWlseTphcmlhbDsiPjxicj48L3A+PHA+VG9uee+8jDwvcD48cD5UaGUgZGVzY3JpcHRpb24gaXMg
dmVyeSBjbGVhciwgQW5kIEkgZ290IG1vcmUgdGhhbiBJIGV4cGVjdGVk77yBPC9wPjxwPlRoYW5r
IHlvde+8gTwvcD48cD5CZW5jaG9uZzwvcD48cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7Zm9udC1m
YW1pbHk6YXJpYWw7Ij48YnI+PC9wPjxkaXY+PGRpdiBjbGFzcz0iemhpc3RvcnlSb3ciIHN0eWxl
PSJkaXNwbGF5OmJsb2NrIj48ZGl2IGNsYXNzPSJ6aGlzdG9yeURlcyIgc3R5bGU9IndpZHRoOiAx
MDAlOyBoZWlnaHQ6IDI4cHg7IGxpbmUtaGVpZ2h0OiAyOHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAj
RTBFNUU5OyBjb2xvcjogIzEzODhGRjsgdGV4dC1hbGlnbjogY2VudGVyOyIgbGFuZ3VhZ2UtZGF0
YT0iSGlzdG9yeU9yZ1R4dCI+5Y6f5aeL6YKu5Lu2PC9kaXY+PGRpdiBpZD0iendyaXRlSGlzdG9y
eUNvbnRhaW5lciI+PGRpdiBjbGFzcz0iY29udHJvbC1ncm91cCB6aGlzdG9yeVBhbmVsIj48ZGl2
IGNsYXNzPSJ6aGlzdG9yeUhlYWRlciIgc3R5bGU9InBhZGRpbmc6IDhweDsgYmFja2dyb3VuZC1j
b2xvcjogI0Y1RjZGODsiPjxkaXY+PHN0cm9uZyBsYW5ndWFnZS1kYXRhPSJIaXN0b3J5U2VuZGVy
VHh0Ij7lj5Hku7bkurrvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0ienJlYWRVc2VyTmFtZSI+VG9u
eVByenlnaWVuZGEgJmx0O3RvbnlzaWV0ZkBnbWFpbC5jb20mZ3Q7PC9zcGFuPjwvZGl2PjxkaXY+
PHN0cm9uZyBsYW5ndWFnZS1kYXRhPSJIaXN0b3J5VE9UeHQiPuaUtuS7tuS6uu+8mjwvc3Ryb25n
PjxzcGFuIGNsYXNzPSJ6cmVhZFVzZXJOYW1lIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyI+5b6Q
5pys5bSHMTAwNjUwNTM7PC9zcGFuPjwvZGl2PjxkaXY+PHN0cm9uZyBsYW5ndWFnZS1kYXRhPSJI
aXN0b3J5Q0NUeHQiPuaKhOmAgeS6uu+8mjwvc3Ryb25nPjxzcGFuIGNsYXNzPSJ6cmVhZFVzZXJO
YW1lIiBzdHlsZT0iZGlzcGxheTogaW5saW5lOyI+QW50b25pIFByenlnaWVuZGEgJmx0O3ByekBq
dW5pcGVyLm5ldCZndDs7PC9zcGFuPjxzcGFuIGNsYXNzPSJ6cmVhZFVzZXJOYW1lIiBzdHlsZT0i
ZGlzcGxheTogaW5saW5lOyI+cmlmdEBpZXRmLm9yZyAmbHQ7cmlmdEBpZXRmLm9yZyZndDs7PC9z
cGFuPjwvZGl2PjxkaXY+PHN0cm9uZyBsYW5ndWFnZS1kYXRhPSJIaXN0b3J5RGF0ZVR4dCI+5pel
IOacnyDvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0iIj4yMDE55bm0MDfmnIgyOeaXpSAxMDo0OTwv
c3Bhbj48L2Rpdj48ZGl2PjxzdHJvbmcgbGFuZ3VhZ2UtZGF0YT0iSGlzdG9yeVN1YmplY3RUeHQi
PuS4uyDpopgg77yaPC9zdHJvbmc+PHNwYW4gY2xhc3M9InpyZWFkVGl0bGUiPjxzdHJvbmc+UmU6
IFtSaWZ0XSBbUklGVF1bTm9uIGVxdWFsIGNvc3QgYW55Y2FzdF08L3N0cm9uZz48L3NwYW4+PC9k
aXY+PC9kaXY+PGRpdiBjbGFzcz0iemhpc3RvcnlDb250ZW50Ij48ZGl2PjxkaXYgZGlyPSJsdHIi
Pjxicj48YnI+PGRpdj5IZXkgQmVuY2hvbmcsIG9ic2VydmUgdGhhdCBSSUZUIGlzIG9ubHkgZ2l2
aW5nIHN1Z2dlc3RlZCBjb21wdXRhdGlvbnMgYW5kIGRvZXMgbm90IHByb3ZpZGUgYSBwcmVzY3Jp
cHRpdmUgbGFuZ3VhZ2UgZm9yIHRoZW0uIEluIHNpbXBsZXIgdGVybXMsIGFzIGxvbmcgd2UgZm9s
bG93IHZhbGxleS1mcmVlIHJvdXRpbmcgKHBhY2tldCBnb2VzIHVwIHVudGlsIGl0IHR1cm5zIGRv
d24pIHdlIGNhbiB1c2UgYW55IG5leHRob3AgYXZhaWxhYmxlIGdpdmluZyB5b3UgcmVhY2hhYmls
aXR5IHRvIHRoZSBwcmVmaXggaW4gdGhlIGRlc2lyZWQgZGlyZWN0aW9uIHJlYWxseSZuYnNwOyAo
YW5kIGluIGJvdGggY2FzZXMgeW91IG11c3QgZG8gTFBNIGJhc2VkIG9uIHRoZSBpbmZvcm1hdGlv
biBwcm92aWRlZCB0byBwcmV2ZW50IGJsYWNraG9saW5nKS4gQW5kIHRoZW4gaW4gYm90aCBkaXJl
Y3Rpb25zIHlvdSBjYW4gbG9hZC1iYWxhbmNlIGFzIHlvdSBwbGVhc2UuIFRoaXMgYWxsb3dzIHRv
IHNhdHVyYXRlIHRoZSB3aG9sZSBmYWJyaWMgd2hpbGUgYmFsYW5jaW5nIG9uIGFueSBtZXRyaWMs
IHdoZXJlIEJBRCBub3J0aGJvdW5kIGlzIGEgbWV0cmljIHRoYXQgaGFkIGdvb2QgcmVzcG9uc2Ug
ZnJvbSBwZW9wbGUgd2hvIHJldmlld2VkIGhvdyB0aGV5IHdvdWxkIGxpa2UgYW4gSVAgZmFicmlj
IHByb3RvY29sIHRvIHdvcmsgYW5kIHRoYXQncyB3aHkgaXQncyBpbmNsdWRlZC4gT25lIGNvdWxk
IGRlZmluZSBzb21ldGhpbmcgbGlrZSBCQUQgYXMgd2VsbCBpbiBzb3V0aGJvdW5kIGRpcmVjdGlv
biBidXQgaXQncyBub3QgdGhhdCBjbGVhciB3aGF0IG1ha2VzIHNlbnNlIHRoZXJlLCBzaW1wbGVz
dCBpcyBTUEYsIG5leHQgd291bGQgYmUgYWxsLXBhdGhzLCB0aGVuIGJhbGFuY2luZyBvbiBzb21l
IGtpbmQgb2YgYmFuZHdpZHRoIGluIHNvdXRoYm91bmQgdG93YXJkcyB0aGUgbGVhZiAoYnV0IHRo
YXQncyB3aGVyZSBpdCBnZXRzIGhhcmQgaWYgeW91IHRoaW5rIGFib3V0IGl0KS4gPGJyPjwvZGl2
Pjxicj48ZGl2PkluIGFueSBjYXNlLCBpZiB3ZSB3YW50IGFueWNhc3QgdG8gd29yayBwcm9wZXJs
eSB3ZSBoYXZlIHRvIGJ1aWxkIGFuIG5leHQtaG9wIHRoYXQgaW5jbHVkZXMgYWxsIG5vZGVzIHRo
YXQgYWR2ZXJ0aXNlZCB0aGUgcHJlZml4LCB5ZXMuIEJ1dCBvYnZpb3VzbHkgd2UgY2FuIGFsc28g
anVzdCBpbmNsdWRlIHRoZSBzaG9ydGVzdCBTUEYgbm9kZSAmYW1wOyBpdCdzIHN0aWxsIGFueWNh
c3QsIGp1c3QgYSB2ZXJ5IGJhZGx5IGJhbGFuY2luZyBvbmUgaWYgZGlzdGFuY2VzIGFyZSB1bmV2
ZW4gOy0pIC4uLiA8YnI+PC9kaXY+PGJyPjxkaXY+VmFsbGV5LWZyZWUgcm91dGluZyBpbiBSSUZU
IChvYnZpb3VzbHkgcG9zc2libGUgb25seSBzaW5jZSB3ZSBoYXZlIHJhbmsgb3JkZXJpbmcgb2Yg
dGhlIG5vZGVzLCBpLmUuIGEgdG9wIGFuZCBhIGJvdHRvbSkgZnJlZXMgdXMgZnJvbSB0aGUgc2hh
Y2tsZXMgb2YgU1BGIGFuZCBtb3ZlcyB0aGluZ3MgY2xvc2VyIHRvIDxhIGhyZWY9Imh0dHBzOi8v
ZW4ud2lraXBlZGlhLm9yZy93aWtpL01heGltdW1fZmxvd19wcm9ibGVtIiB0YXJnZXQ9Il9ibGFu
ayI+aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTWF4aW11bV9mbG93X3Byb2JsZW08L2E+
IGluIGEgc2ltcGxlIHdheSBzaW5jZSBlbXBsb3lpbmcgc2Vjb25kYXJ5IHRlY2huaXF1ZSBpbiB0
cmFkaXRpb25hbCByb3V0aW5nIGxpa2UgQ1NQRiBhbmQgc28gb24gcHJlLWNvbmRpdGlvbnMgbXVj
aCBtb3JlIGNvbXBsZXggbWFjaGluZXJ5IGFuZCBzb3VyY2Ugcm91dGluZyBtZWNoYW5pc21zIGxp
a2UgTVBMUy9TUiBpbiB0aGUgZmFicmljIHdoaWNoIHdvdWxkIG1ha2UgaXQgb2J2aW91c2x5IG1v
cmUgZXhwZW5zaXZlICh0aGUgZmluZXIgd2Ugd2FudCB0byBjb250cm9sIG91ciBjb21tb2RpdHkg
ZmxvdyB0aGUgbW9yZSBzdGF0ZSB3ZSBzdGljayBvbiB0aGUgcGFja2V0IGFuZC9vciBpbnRvIHRo
ZSBuZXR3b3JrKSBhbmQgbGVzcyByZWFjdGl2ZSB0byBjaGFuZ2VzIChkdWUgdG8gdGhlIG5lY2Vz
c2FyeSBzdGF0ZSBkaXN0cmlidXRpb24gaW50byBpbnRlcm1lZGlhdGUgcG9pbnRzIG9uY2UgdGhl
IHRvcG9sb2d5IGNvbnZlcmdlZCkuIFdoZXJlYXMgaW4gcGxhaW4gUklGVCB3ZSBzdGljayB0byB2
YWxsZXktZnJlZSBob3AtYnktaG9wIHJvdXRpbmcgd2hpY2ggdGhvdWdoIGl0IGRvZXMgbm90IGFs
bG93IG11Y2ggZ3JhbnVsYXJpdHkgZXhjZXB0IHByZWZpeCZuYnNwOyBtYWtlcyB1cCBieSBiZWlu
ZyBwbGlhYmxlLCBzaW1wbGUgJmFtcDsgaGVuY2UgY2hlYXAgYW5kIHJvYnVzdCAod2hpY2ggc2Vl
bXMgdmVyeSBkZXNpcmFibGUgaW4gZmFicmljIHdoZXJlIGJhbmR3aWR0aCBzdWJzdGl0dWVzIGZv
ciBzbWFydHMgW2FzIElQIGRpZCBpbiBtb3N0IG9mIGl0cyBoaXN0b3J5XSkuIEFuZCB5ZXMsIFNS
L01QTFMgY2FuIGJlIG1hZGUgdG8gd29yayBvbiBSSUZUIGJ1dCB0aGF0J3MgYSBkaWZmZXJlbnQg
ZGlzY3Vzc2lvbiBhbHRvZ2V0aGVyLiBJbiBhIHNlbnNlLCBpZiB3ZSBhZHZlcnRpc2UgdW5zb2xp
Y2l0ZWQgbGFiZWwgYmluZGluZ3Mgb24gTElFcyAod2hpY2ggd2Ugb3B0aW9uYWxseSBpbmNsdWRl
KSZuYnNwOyB3ZSBoYXZlIGEgZmxhdm9yIG9mIExEUCBhbHJlYWR5IGZvciBmcmVlIGlmIEknbSBu
b3QgbWlzdGFrZW4gLi4uIDxicj48L2Rpdj48YnI+PGRpdj4tLS0gdG9ueSA8YnI+PC9kaXY+PC9k
aXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21h
aWxfYXR0ciI+T24gU3VuLCBKdWwgMjgsIDIwMTkgYXQgNzowMSBQTSAmbHQ7PGEgaHJlZj0ibWFp
bHRvOnh1LmJlbmNob25nQHp0ZS5jb20uY24iIHRhcmdldD0iX2JsYW5rIj54dS5iZW5jaG9uZ0B6
dGUuY29tLmNuPC9hPiZndDsgd3JvdGU6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFp
bF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHgg
c29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGNsYXNzPSJnbWFp
bC1tXzU5NjcyOTEzODgzMTg0OTQxOTV6Y29udGVudFJvdyI+PHAgc3R5bGU9ImZvbnQtc2l6ZTox
NHB4O2ZvbnQtZmFtaWx5OmFyaWFsIj48YnI+PC9wPjxwIHN0eWxlPSJmb250LXNpemU6MTRweDtm
b250LWZhbWlseTphcmlhbCI+VG9ueTwvcD48cD5Eb2VzIHRoaXMgbWVhbiB0aGF0IHdoZW4gUy1T
UEYgY2FsY3VsYXRlLCB3ZSBjYW5ub3Qgc2VsZWN0IHRoZSBiZXN0IG5leHRob3Agd2l0aCB0aGUg
c21hbGxlc3QgZGlzdGFuY2UsIGFsbCB0aGUgbmV4dGhvcHMgbXVzdCBiZSBhZGRlZCB0byB0aGUg
Zm9yd2FyZGluZyB0YWJsZSwgYW5kIGRpc3RhbmNlIGlzIHVzZWQgYXMgdGhlIGJhc2lzIGZvciDi
gJxOb24gZXF1YWwgY29zdCBhbnljYXN04oCdIG9uIHRoZSBmb3J3YXJkaW5nIHBsYW5lLjwvcD48
cD5OLVNQRiB1c2VzIHRoZSBtZXRob2Qgb2YgNS4zLjYuMSBhbmQgdGhlIEJBRCBpbnN0ZWFkIHRo
ZSBkaXN0YW5jZS48L3A+PHA+PGJyPjwvcD48cD4tLUJlbmNob25nPC9wPjxwPjxicj48L3A+PHAg
c3R5bGU9ImZvbnQtc2l6ZToxNHB4O2ZvbnQtZmFtaWx5OmFyaWFsIj48YnI+PC9wPjxkaXY+PGRp
diBjbGFzcz0iZ21haWwtbV81OTY3MjkxMzg4MzE4NDk0MTk1emhpc3RvcnlSb3ciIHN0eWxlPSJk
aXNwbGF5OmJsb2NrIj48ZGl2IGNsYXNzPSJnbWFpbC1tXzU5NjcyOTEzODgzMTg0OTQxOTV6aGlz
dG9yeURlcyIgc3R5bGU9IndpZHRoOjEwMCU7aGVpZ2h0OjI4cHg7bGluZS1oZWlnaHQ6MjhweDti
YWNrZ3JvdW5kLWNvbG9yOnJnYigyMjQsMjI5LDIzMyk7Y29sb3I6cmdiKDE5LDEzNiwyNTUpO3Rl
eHQtYWxpZ246Y2VudGVyIj7ljp/lp4vpgq7ku7Y8L2Rpdj48ZGl2IGlkPSJnbWFpbC1tXzU5Njcy
OTEzODgzMTg0OTQxOTV6d3JpdGVIaXN0b3J5Q29udGFpbmVyIj48ZGl2IGNsYXNzPSJnbWFpbC1t
XzU5NjcyOTEzODgzMTg0OTQxOTVjb250cm9sLWdyb3VwIGdtYWlsLW1fNTk2NzI5MTM4ODMxODQ5
NDE5NXpoaXN0b3J5UGFuZWwiPjxkaXYgY2xhc3M9ImdtYWlsLW1fNTk2NzI5MTM4ODMxODQ5NDE5
NXpoaXN0b3J5SGVhZGVyIiBzdHlsZT0icGFkZGluZzo4cHg7YmFja2dyb3VuZC1jb2xvcjpyZ2Io
MjQ1LDI0NiwyNDgpIj48ZGl2PjxzdHJvbmc+5Y+R5Lu25Lq677yaPC9zdHJvbmc+PHNwYW4gY2xh
c3M9ImdtYWlsLW1fNTk2NzI5MTM4ODMxODQ5NDE5NXpyZWFkVXNlck5hbWUiPlRvbnlQcnp5Z2ll
bmRhICZsdDs8YSBocmVmPSJtYWlsdG86dG9ueXNpZXRmQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxh
bmsiPnRvbnlzaWV0ZkBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj48L2Rpdj48ZGl2PjxzdHJvbmc+
5pS25Lu25Lq677yaPC9zdHJvbmc+PHNwYW4gY2xhc3M9ImdtYWlsLW1fNTk2NzI5MTM4ODMxODQ5
NDE5NXpyZWFkVXNlck5hbWUiIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+5b6Q5pys5bSHMTAwNjUw
NTM7PC9zcGFuPjwvZGl2PjxkaXY+PHN0cm9uZz7mioTpgIHkurrvvJo8L3N0cm9uZz48c3BhbiBj
bGFzcz0iZ21haWwtbV81OTY3MjkxMzg4MzE4NDk0MTk1enJlYWRVc2VyTmFtZSIgc3R5bGU9ImRp
c3BsYXk6aW5saW5lIj5BbnRvbmkgUHJ6eWdpZW5kYSAmbHQ7PGEgaHJlZj0ibWFpbHRvOnByekBq
dW5pcGVyLm5ldCIgdGFyZ2V0PSJfYmxhbmsiPnByekBqdW5pcGVyLm5ldDwvYT4mZ3Q7Ozwvc3Bh
bj48c3BhbiBjbGFzcz0iZ21haWwtbV81OTY3MjkxMzg4MzE4NDk0MTk1enJlYWRVc2VyTmFtZSIg
c3R5bGU9ImRpc3BsYXk6aW5saW5lIj48YSBocmVmPSJtYWlsdG86cmlmdEBpZXRmLm9yZyIgdGFy
Z2V0PSJfYmxhbmsiPnJpZnRAaWV0Zi5vcmc8L2E+ICZsdDs8YSBocmVmPSJtYWlsdG86cmlmdEBp
ZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPnJpZnRAaWV0Zi5vcmc8L2E+Jmd0Ozs8L3NwYW4+PC9k
aXY+PGRpdj48c3Ryb25nPuaXpSDmnJ8g77yaPC9zdHJvbmc+MjAxOeW5tDA35pyIMjfml6UgMDM6
MzQ8L2Rpdj48ZGl2PjxzdHJvbmc+5Li7IOmimCDvvJo8L3N0cm9uZz48c3BhbiBjbGFzcz0iZ21h
aWwtbV81OTY3MjkxMzg4MzE4NDk0MTk1enJlYWRUaXRsZSI+PHN0cm9uZz5SZTogW1JpZnRdIFtS
SUZUXVtOb24gZXF1YWwgY29zdCBhbnljYXN0XTwvc3Ryb25nPjwvc3Bhbj48L2Rpdj48L2Rpdj48
ZGl2IGNsYXNzPSJnbWFpbC1tXzU5NjcyOTEzODgzMTg0OTQxOTV6aGlzdG9yeUNvbnRlbnQiPjxk
aXY+PGRpdiBkaXI9Imx0ciI+QmVuY2hvbmcsIGFzIGFsd2F5cywgd2hlbiBwZW9wbGUgc3RhcnQg
aW1wbGVtZW50IHRoZXkgc3RhcnQgdG8gYXNrIHRoZSByZWFsIHF1ZXN0aW9ucyA7LSkgWWVzLCBh
bnkgY2FzdCBpbiBSSUZUIGlzIG11Y2ggY2xvc2VyIHRvIHdoYXQgeW91IHdvdWxkIGNvbnNpZGVy
IOKAnHRydWUgYW55IGNhc3TigJ0gdGhhbiBJUCBpcyB3aGljaCBpcyByZWFsbHkganVzdCBFQ01Q
IG9uIHNhbWUgYWRkcmVzcy4gSW4gUklGVCBhbnljYXN0IG9uIGRpZmZlcmVudCBkaXN0YW5jZSBu
b2RlcyBpcyBhIG5vcm1hbCB0aGluZy4gPGJyPjxicj48ZGl2PkZpcnN0LCBpdCBpdCBpbXBvcnRh
bnQgdG8gdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIG1vYmlsaXR5IGFuZCBhbnkg
Y2FzdCBvbiB0aGUgZmFicmljLiBpZiBhIHByZWZpeCBtb3ZlcyBvbiB0aGUgZmFicmljIHdpdGhv
dXQgdXNpbmcgdGhlIG1vYmlsaXR5IGF0dHJpYnV0ZXMgaXQgY2FuIGFwcGVhciBpbiB0d28gbG9j
YXRpb25zIEAgb25jZSBvZiBjb3Vyc2UgKGlmIHRoZSBuZXcgVElFIGZsb29kcyBmYXN0ZXIgdGhh
biB0aGUgcHJldmlvdXMgbG9jYXRpb24gbWFuYWdlcyB0byBwdXJnZSB0aGUgcHJlZml4KS4gVGhh
dCdzIG5vdCBhIHByb3BlciBhbnljYXN0IG9mIGNvdXJzZSwgdGhhdCdzIGp1c3QgYW4gYXJ0ZWZh
Y3QuIElmIHRoZSBwcmVmaXggcHJvcGVybHkgYXR0YWNoZXMgdGltZXN0YW1wcyBieSBzb21lIG1l
YW5zIChzdWNoIGFzIDZsbykgaXQgd2lsbCBiZSB1bmRlcnN0b29kIGFzIGhhdmluZyBtb3ZlZCwg
b3RoZXJ3aXNlIGl0IHdpbGwgYmUgYW55IGNhc3QgZm9yIGEgYml0LiA8YnI+PC9kaXY+PGJyPjxk
aXY+QW5kIHRoZW4sIG9mIGNvdXJzZSB0aGVyZSBpcyB0cnVlIGFueSBjYXN0IHdoaWNoIGlzIGVx
dWFsIHRvIHR3byBwcmVmaXhlcyBhZHZlcnRpc2VkIGZyb20gdHdvIG5vZGVzIGJlaW5nIGVxdWFs
LiBSSUZUIGlzIGxvb3AtZnJlZSB3aGljaCBtZWFucyB0aGF0IGl0IGRvZXNu4oCZdCByZWFsbHkg
Y2FyZSBhbGwgdGhhdCBtdWNoIGFib3V0IGRpc3RhbmNlIHNvIGlmIGEgcGFja2V0IGVudGVycyBm
cm9tIFRvRiBpdCBjYW4gYmUgZm9yd2FyZGVkIHRvIGFueSBsZWFmIHNob3dpbmcgYW55IGNhc3Qu
IFRoYXQgYWxsb3dzIHRydWUg4oCcc2VydmljZSBvbiBhbnkgY2FzdOKAnSBhcmNoaXRlY3R1cmUu
IEluIGNhc2Ugd2hlbiB5b3Ugcm91dGUgZnJvbSB0aGUgbGVhZiB0aGUgcGFja2V0IHdpbGwgdXNl
IGRlZmF1bHQgKHVubGVzcyBhbiBpbXBsZW1lbnRhdGlvbiBkb2VzIHRoZWlyIG93biB0aGluZ3Mg
dGhlIHNwZWMgZG9lc27igJl0IG1lbnRpb24gYnV0IGRvZXNu4oCZdCBzdXBwcmVzcyBlaXRoZXIp
IHVudGlsIGl0IHBvcHMgdXAgZmFyIGVub3VnaCBpdCBzZWVzIGFueSBjYXN0IEAgd2hpY2ggcG9p
bnQgaW4gdGltZSBpdCB3aWxsIHR1cm4gdGhlIHBhY2tldCBzb3V0aCAoYXNzdW1pbmcgYWxsIGFu
eWNhc3QgaXMgb24gbGVhZnMpLiBpZiBiYWxhbmNpbmcgb2YgYW55IGNhc3Qgb3ZlciB3aG9sZSBt
ZXRyaWMgaXMgZGVzaXJlZCB0aGVuIHRoZSBwYWNrZXQgbmVlZHMgdG8gYmUgcHVzaGVkIGFsbCB0
aGUgd2F5IHRvIHRoZSBUb0YgdXNpbmcgdHVubmVscyBvciBzb21lIG90aGVyIHNvbHV0aW9uLiA8
YnI+PC9kaXY+PGJyPjxkaXY+U28sIGJhc2ljYWxseSwgYW55IGNhc3QgaXMganVzdCBhIGZ1bmt5
IG5leHQtaG9wIG9uIGEgcHJlZml4IHRoYXQgY2FuIHBvaW50IHRvIHR3byBkaWZmZXJlbnQgbm9k
ZXMgJmFtcDsgbWV0cmljIGNhbiBiZSB1c2VkIHRvIGJhbGFuY2Ugb3IgaWdub3JlZCBhbmQgdGhl
IHNwZWMgZG9lcyBub3QgbmVlZCB0byBzYXkgbW9yZSBJIHRoaW5rLiA8YnI+PC9kaXY+PGJyPjxk
aXY+VGhpcyBsaXR0bGUgZGlhdHJpYmUgc2hvdWxkIG1ha2UgaXQgaW50byBSSUZUIGFwcGxpY2Fi
aWxpdHkgc3RhdGVtZW50IGluIHNvbWUgZm9ybSBJIHRoaW5rIC4uLiA8YnI+PC9kaXY+PGJyPjxk
aXY+LS0gdG9ueSA8YnI+PC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48
ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+T24gRnJpLCBKdWwgMjYsIDIwMTkgYXQg
NTo1NyBBTSAmbHQ7PGEgaHJlZj0ibWFpbHRvOnh1LmJlbmNob25nQHp0ZS5jb20uY24iIHRhcmdl
dD0iX2JsYW5rIj54dS5iZW5jaG9uZ0B6dGUuY29tLmNuPC9hPiZndDsgd3JvdGU6PGJyPjwvZGl2
PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBw
eCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxl
ZnQ6MWV4Ij48ZGl2IGNsYXNzPSJnbWFpbC1tXzU5NjcyOTEzODgzMTg0OTQxOTVnbWFpbC1tXzg0
MzQzNTI5Mjk2MjcwNzAwODN6Y29udGVudFJvdyI+PHAgc3R5bGU9ImZvbnQtc2l6ZToxNHB4O2Zv
bnQtZmFtaWx5OmFyaWFsIj5IaSw8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6QXJpYWws5a6L5L2T
LCZxdW90O01pY3Jvc29mdCBZYWhlaSZxdW90OywmcXVvdDtMdWNpZGEgR3JhbmRlJnF1b3Q7LFZl
cmRhbmEsTHVjaWRhLEhlbHZldGljYSxzYW5zLXNlcmlmO2xpbmUtaGVpZ2h0OjIwcHg7YmFja2dy
b3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpIj5Ub255PC9zcGFuPjwvcD48cD5DYW4geW91IHRh
bGsgYWJvdXQgUkVRNiwmbmJzcDtIb3cgZG9lcyBSSUZUIHN1cHBvcnQgaXQ/Jm5ic3A7SXMgaXQg
YmVuZWZpdGluZyBmcm9tIHRoZSBkZWZhdWx0IHJvdXRlPzwvcD48cD4iICZuYnNwO1JFUTY6ICZu
YnNwOyAmbmJzcDtOb24gZXF1YWwgY29zdCBhbnljYXN0IG11c3QgYmUgc3VwcG9ydGVkIHRvIGFs
bG93IGZvciBlYXN5PC9wPjxwPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7IGFuZCByb2J1c3QgbXVsdGktaG9taW5nIG9mIHNlcnZpY2VzIHdpdGhvdXQgcmVncmVzc2lu
ZyB0bzwvcD48cD4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBjYXJl
ZnVsIGJhbGFuY2luZyBvZiBsaW5rIGNvc3RzLiI8L3A+PHA+PGJyPjwvcD48cCBzdHlsZT0iZm9u
dC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6YXJpYWwiPlRoYW5rIHlvdSE8L3A+PHAgc3R5bGU9ImZv
bnQtc2l6ZToxNHB4O2ZvbnQtZmFtaWx5OmFyaWFsIj5CZW5jaG9uZzwvcD48cCBzdHlsZT0iZm9u
dC1zaXplOjE0cHg7Zm9udC1mYW1pbHk6YXJpYWwiPjxicj48L3A+PC9kaXY+X19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+IFJJRlQgbWFpbGluZyBsaXN0
PGJyPiA8YSBocmVmPSJtYWlsdG86UklGVEBpZXRmLm9yZyIgdGFyZ2V0PSJfYmxhbmsiPlJJRlRA
aWV0Zi5vcmc8L2E+PGJyPiA8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xp
c3RpbmZvL3JpZnQiIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3
LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vcmlmdDwvYT48YnI+IDwvYmxvY2txdW90ZT48L2Rp
dj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48cD48YnI+PC9wPjwvZGl2Pjwv
YmxvY2txdW90ZT48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48cD48
YnI+PC9wPjwvZGl2Pg==


--=====_003_next=====--

--=====_002_next=====--

--=====_001_next=====--

