
From prvs=337a41da8=acee@redback.com  Fri Apr  3 07:30:30 2009
Return-Path: <prvs=337a41da8=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E24A63A68A3 for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 07:30:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.446
X-Spam-Level: 
X-Spam-Status: No, score=-2.446 tagged_above=-999 required=5 tests=[AWL=0.153,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id y4qhZRvPnfpC for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 07:30:29 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id DF0A83A679C for <ospf@ietf.org>; Fri,  3 Apr 2009 07:30:29 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.39,319,1235980800";  d="scan'208";a="691084"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 03 Apr 2009 07:31:32 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id C1751211B51; Fri,  3 Apr 2009 07:31:32 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23187-08; Fri,  3 Apr 2009 07:31:32 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id AFEC5211B4E; Fri,  3 Apr 2009 07:31:31 -0700 (PDT)
In-Reply-To: <030361BA-3A10-4B76-B31C-4518507EFDCA@redback.com>
References: <1BEEAE11-F1A5-40DD-B4A4-54C6743B18D4@redback.com> <030361BA-3A10-4B76-B31C-4518507EFDCA@redback.com>
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <F1463AFF-0888-4383-B63D-35E3AF53843D@redback.com>
Content-Transfer-Encoding: 7bit
From: Acee Lindem <acee@redback.com>
Date: Fri, 3 Apr 2009 10:31:30 -0400
To: Acee Lindem <acee@redback.com>
X-Mailer: Apple Mail (2.753.1)
Cc: OSPF List <ospf@ietf.org>
Subject: Re: [OSPF] WG Last Call - Dynamic Hostname Exchange Mechanism for OSPF - draft-ietf-ospf-dynamic-hostname-02 (Corrected)
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Apr 2009 14:31:17 -0000

Ok - this time the WG last call actually has ended. A new revision  
addressing Dave's comment on multi-instances will be passed on to the  
ADs for review.
Thanks,
Acee
On Mar 30, 2009, at 11:23 AM, Acee Lindem wrote:

> The WG last call has ended. The authors are adding a statement with  
> respect to multiple OSPF instances and it will go to the routing ADs.
>
>
> Thanks,
> Acee
> On Mar 12, 2009, at 5:56 AM, Acee Lindem wrote:
>
>> This starts the Working Group Last Call for the subject document.  
>> The target status is proposed standard.
>> The WG Last Call will start today and end April 3rd at 12:00 AM  
>> EDT. I've added an additional week due to the upcoming IETF. If  
>> anyone needs more time to review the document, let Abhay or myself  
>> know. It is a very simple document and the last remaining issue  
>> (specification of hostname encoding) has been resolved to my  
>> satisfaction.
>>
>> Thanks,
>> Acee
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf


From prvs=337a41da8=acee@redback.com  Fri Apr  3 07:41:24 2009
Return-Path: <prvs=337a41da8=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B7BC33A6E5B; Fri,  3 Apr 2009 07:41:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.437
X-Spam-Level: 
X-Spam-Status: No, score=-2.437 tagged_above=-999 required=5 tests=[AWL=0.161,  BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MKOIu08GcVQl; Fri,  3 Apr 2009 07:41:24 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id 0C42D3A6D27; Fri,  3 Apr 2009 07:41:24 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.39,319,1235980800"; d="scan'208,217";a="691289"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 03 Apr 2009 07:42:26 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id DFFF86C30D; Fri,  3 Apr 2009 07:42:26 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28720-03; Fri,  3 Apr 2009 07:42:26 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id 45CC06C30F; Fri,  3 Apr 2009 07:42:26 -0700 (PDT)
Mime-Version: 1.0 (Apple Message framework v753.1)
To: Ross Callon <rcallon@juniper.net>, Adrian Farrel <Adrian.Farrel@huawei.com>
Message-Id: <8953272F-32B4-4380-90D5-EAA1E69196EC@redback.com>
Content-Type: multipart/alternative; boundary=Apple-Mail-4-617024557
From: Acee Lindem <acee@redback.com>
Date: Fri, 3 Apr 2009 10:42:25 -0400
X-Mailer: Apple Mail (2.753.1)
Cc: OSPF List <ospf@ietf.org>, iesg-secretary@ietf.org
Subject: [OSPF] Dynamic Hostname Exchange Mechanism for OSPF - draft-ietf-ospf-dynamic-hostname-03.txt
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Apr 2009 14:41:24 -0000

--Apple-Mail-4-617024557
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=US-ASCII;
	delsp=yes;
	format=flowed


Ross, Adrian,
We have completed the WG last call for Dynamic Hostname Exchange  
Mechanism for OSPF and version draft-ietf-ospf-dynamic- 
hostname-03.txt addresses a couple minor comments. It is the desire  
of the WG that the document be published as a standards track  
document. Here is an html link for your convenience.

http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic- 
hostname-03.txt.

Thanks,
Acee and Abhay


--Apple-Mail-4-617024557
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">
 <div><br></div><div>Ross, Adrian,</div><div>We have completed the WG =
last call for=A0Dynamic Hostname Exchange Mechanism for OSPF and =
version=A0draft-ietf-ospf-dynamic-hostname-03.txt addresses a couple =
minor comments. It is the desire of the WG that the document be =
published as a standards track document. Here is an html link for your =
convenience.</div><div><br></div><div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font =
face=3D"Courier New" size=3D"3" color=3D"#0020de" style=3D"font: 12.0px =
Courier New; color: #0020de"><a =
href=3D"http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-hostna=
me-03.txt"><u>http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-=
hostname-03.txt</u></a></font><font face=3D"Courier New" size=3D"3" =
style=3D"font: 12.0px Courier New">.</font></div><div style=3D"margin-top:=
 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
"><br></div></div><div>Thanks,</div><div>Acee and =
Abhay</div><div><br></div></body></html>=

--Apple-Mail-4-617024557--

From sperez@CROSSBEAMSYS.COM  Fri Apr  3 07:59:22 2009
Return-Path: <sperez@CROSSBEAMSYS.COM>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9E1413A6968 for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 07:59:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.204
X-Spam-Level: 
X-Spam-Status: No, score=-5.204 tagged_above=-999 required=5 tests=[AWL=-0.094, BAYES_05=-1.11, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BVR9itxXrAyh for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 07:59:21 -0700 (PDT)
Received: from exprod7og115.obsmtp.com (exprod7og115.obsmtp.com [64.18.2.217]) by core3.amsl.com (Postfix) with ESMTP id 887BA3A68CF for <ospf@ietf.org>; Fri,  3 Apr 2009 07:59:20 -0700 (PDT)
Received: from source ([71.248.178.228]) by exprod7ob115.postini.com ([64.18.6.12]) with SMTP ID DSNKSdYkh1KLPCy2hpbh6GGQIuSJSb65M8ly@postini.com; Fri, 03 Apr 2009 08:00:23 PDT
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 3 Apr 2009 10:44:28 -0400
Message-ID: <F8CC84DF23711B49BF6B6D7B3752F69C0552F0D8@cmail4.crossbeamsys.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: OSPF and AS External LSA
Thread-Index: Acm0arCsM9MF+UVYR2qUAcXjiOlGFA==
From: "Perez, Stephane" <sperez@CROSSBEAMSYS.COM>
To: <ospf@ietf.org>
Subject: [OSPF] OSPF and AS External LSA
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Apr 2009 14:59:22 -0000

Hello guys,

I would like to raise a generic question about the OSPF AS External LSA
handling to which I have only found a workaround.

I had experienced a specific corner case with the OSPF process which can
cause some problems in some network environment.
The scenario is a firewall cluster composed of 2 firewalls using VRRP,
running. Each firewall announces a specific set of AS External routes to
the OSPF with identical parameters including the same next-hop
(VRRP-VIP) for L2 redundancy.

In this configuration both firewalls are redistributing into the OSPF
process the same external routes with the same next-hop the VRRP-VIP and
the same metric. The only difference between these LSAs is the
router-ID.

 As per OSPF standard 2328 (page 142) this will be considered as two
functionally identical LSA for each external route. To avoid effort
duplication, only the one with the highest router-id of the two LSA will
be kept into the LSDB.


Router A ---+-- Firewall A  (rid ra.rb.rc.1) --+- Network ABC
            |    vip w.x.y.z                   |
            |-- Firewall B  (rid ra.rb.rc.2) --| =20


The main problem comes when the router with the router with the highest
router-id dies (Firewall B).

 At that point the following happen:
- Firewall B is marked as unreachable after the Dead interval timer
- routes are removed from the Router A FIB
- All External LSAs from FW-B are kept in the LSDB until the LSA age
reaches the MaxAge time of 3600s
- when the External LSA is being withdrawn from the LSDB the FW-A flood
a new LSA and Djikstra is calculated again.

 In such a case this create an outage in a network for about 1 hour.
There is an easy workaround which is to redistribute the Network ABC
with a different metric from FW-A and FW-B, however this just comes back
to a duplication of effort where we will have 2 LSAs functionally
identical in the LSDB.

Premature aging seems not of any help here since the router can only age
an LSA which contains its own router-id.

I would like to have your thought about this particular case where it
can result in a 1 hour network outage.

Thanks in advance
Stephane Perez



From rcallon@juniper.net  Fri Apr  3 08:03:22 2009
Return-Path: <rcallon@juniper.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 50EF63A6A58 for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 08:03:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.466
X-Spam-Level: 
X-Spam-Status: No, score=-6.466 tagged_above=-999 required=5 tests=[AWL=0.132,  BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0sUm7TgkUX5h for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 08:03:21 -0700 (PDT)
Received: from exprod7og124.obsmtp.com (exprod7og124.obsmtp.com [64.18.2.26]) by core3.amsl.com (Postfix) with ESMTP id 7A2353A6BE6 for <ospf@ietf.org>; Fri,  3 Apr 2009 08:03:18 -0700 (PDT)
Received: from source ([66.129.224.36]) (using TLSv1) by exprod7ob124.postini.com ([64.18.6.12]) with SMTP ID DSNKSdYlcF6NRk+SFWxkcPGHDpO369o5Oz09@postini.com; Fri, 03 Apr 2009 08:04:21 PDT
Received: from p-emfe01-sac.jnpr.net (66.129.254.71) by P-EMHUB01-HQ.jnpr.net (172.24.192.35) with Microsoft SMTP Server id 8.1.340.0; Fri, 3 Apr 2009 08:02:47 -0700
Received: from p-emlb02-sac.jnpr.net ([66.129.254.47]) by p-emfe01-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Fri, 3 Apr 2009 08:02:47 -0700
Received: from emailwf1.jnpr.net ([10.10.2.33]) by p-emlb02-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959);	 Fri, 3 Apr 2009 08:02:47 -0700
x-mimeole: Produced By Microsoft Exchange V6.5
Content-Class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C9B46D.3ED9D379"
Date: Fri, 3 Apr 2009 11:02:44 -0400
Message-ID: <3525C9833C09ED418C6FD6CD9514668C060CB487@emailwf1.jnpr.net>
In-Reply-To: <8953272F-32B4-4380-90D5-EAA1E69196EC@redback.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Dynamic Hostname Exchange Mechanism for OSPF - draft-ietf-ospf-dynamic-hostname-03.txt
Thread-Index: Acm0amn0zC7PyBEXRBmHL6A8sClMYQAAd6BQ
References: <8953272F-32B4-4380-90D5-EAA1E69196EC@redback.com>
From: Ross Callon <rcallon@juniper.net>
To: "Acee Lindem" <acee@redback.com>
X-OriginalArrivalTime: 03 Apr 2009 15:02:47.0608 (UTC) FILETIME=[40114B80:01C9B46D]
Cc: OSPF List <ospf@ietf.org>, Adrian Farrel <Adrian.Farrel@huawei.com>
Subject: Re: [OSPF] Dynamic Hostname Exchange Mechanism for OSPF - draft-ietf-ospf-dynamic-hostname-03.txt
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Apr 2009 15:03:22 -0000

------_=_NextPart_001_01C9B46D.3ED9D379
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

Can you send me a PROTO writeup?

=20

Thanks, Ross

=20

________________________________

From: Acee Lindem [mailto:acee@redback.com]=20
Sent: 03 April 2009 10:42
To: Ross Callon; Adrian Farrel
Cc: OSPF List; iesg-secretary@ietf.org
Subject: Dynamic Hostname Exchange Mechanism for OSPF -
draft-ietf-ospf-dynamic-hostname-03.txt

=20

=20

Ross, Adrian,

We have completed the WG last call for Dynamic Hostname Exchange
Mechanism for OSPF and version draft-ietf-ospf-dynamic-hostname-03.txt
addresses a couple minor comments. It is the desire of the WG that the
document be published as a standards track document. Here is an html
link for your convenience.

=20

http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-hostname-03.
txt.

=20

Thanks,

Acee and Abhay

=20


------_=_NextPart_001_01C9B46D.3ED9D379
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-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:blue;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-reply;
	font-family:Arial;
	color:navy;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dblue style=3D'word-wrap: =
break-word;-webkit-nbsp-mode: space;
-webkit-line-break: after-white-space'>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Can you send me a PROTO =
writeup?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>Thanks, =
Ross<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> Acee =
Lindem
[mailto:acee@redback.com] <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> 03 April 2009 =
10:42<br>
<b><span style=3D'font-weight:bold'>To:</span></b> Ross Callon; Adrian =
Farrel<br>
<b><span style=3D'font-weight:bold'>Cc:</span></b> OSPF List;
iesg-secretary@ietf.org<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> Dynamic Hostname =
Exchange
Mechanism for OSPF - =
draft-ietf-ospf-dynamic-hostname-03.txt</span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Ross, Adrian,<o:p></o:p></span></font></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>We have completed the WG last call for&nbsp;Dynamic Hostname =
Exchange
Mechanism for OSPF and =
version&nbsp;draft-ietf-ospf-dynamic-hostname-03.txt
addresses a couple minor comments. It is the desire of the WG that the =
document
be published as a standards track document. Here is an html link for =
your
convenience.<o:p></o:p></span></font></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

<div>

<div>

<p class=3DMsoNormal><font size=3D1 color=3D"#0020de" face=3D"Courier =
New"><span
style=3D'font-size:9.0pt;font-family:"Courier New";color:#0020DE'><a
href=3D"http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-hostn=
ame-03.txt">http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-h=
ostname-03.txt</a></span></font><font
size=3D1 face=3D"Courier New"><span =
style=3D'font-size:9.0pt;font-family:"Courier =
New"'>.</span></font><o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</div>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Thanks,<o:p></o:p></span></font></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Acee and Abhay<o:p></o:p></span></font></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</div>

</body>

</html>

------_=_NextPart_001_01C9B46D.3ED9D379--

From prvs=337a41da8=acee@redback.com  Fri Apr  3 08:21:12 2009
Return-Path: <prvs=337a41da8=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id AD97B28C212 for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 08:21:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.744
X-Spam-Level: 
X-Spam-Status: No, score=-1.744 tagged_above=-999 required=5 tests=[AWL=-0.542, BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=1.396]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5cgQ7XmSr5nb for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 08:21:11 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id 705D928C15E for <ospf@ietf.org>; Fri,  3 Apr 2009 08:21:11 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.39,320,1235980800"; d="scan'208,217";a="692220"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 03 Apr 2009 08:22:14 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id 5A8816A4691; Fri,  3 Apr 2009 08:22:14 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07188-08; Fri,  3 Apr 2009 08:22:14 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id 5B71B6A4692; Fri,  3 Apr 2009 08:22:13 -0700 (PDT)
In-Reply-To: <F8CC84DF23711B49BF6B6D7B3752F69C0552F0D8@cmail4.crossbeamsys.com>
References: <F8CC84DF23711B49BF6B6D7B3752F69C0552F0D8@cmail4.crossbeamsys.com>
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: multipart/alternative; boundary=Apple-Mail-6-619411596
Message-Id: <24DF32B1-A39F-4F16-87A3-5726B7BF309D@redback.com>
From: Acee Lindem <acee@redback.com>
Date: Fri, 3 Apr 2009 11:22:12 -0400
To: "Perez, Stephane" <sperez@CROSSBEAMSYS.COM>
X-Mailer: Apple Mail (2.753.1)
Cc: ospf@ietf.org
Subject: Re: [OSPF] OSPF and AS External LSA
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Apr 2009 15:21:12 -0000

--Apple-Mail-6-619411596
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=US-ASCII;
	delsp=yes;
	format=flowed

Stephane,

If one of the firewalls dies, the other should originate the suppressed
As external advertisement immediately. Note the qualification
"both reachable from one another" in the excerpted RFC 2328 text below.
If one firewal is dead, it is clearly not reachable from the other.

    In figure 16, suppose instead that both RTA and RTB
    exchange BGP information with RTX.  In this case,
    RTA and RTB would originate the same set of AS-
    external-LSAs.  These LSAs, if they specify the same
    metric, would be functionally equivalent since they
    would specify the same destination and forwarding
    address (RTX).  This leads to a clear duplication of
    effort.  If only one of RTA or RTB originated the
    set of AS-external-LSAs, the routing would remain
    the same, and the size of the link state database
    would decrease.  However, it must be unambiguously
    defined as to which router originates the LSAs
    (otherwise neither may, or the identity of the
    originator may oscillate).  The following rule is
    thereby established: if two routers, both reachable
    from one another, originate functionally equivalent
    AS-external-LSAs (i.e., same destination, cost and
    non-zero forwarding address), then the LSA
    originated by the router having the highest OSPF
    Router ID is used.  The router having the lower OSPF
    outer ID can then flush its LSA.  Flushing an LSA
    is discussed in Section 14.1.


If you don't need to run OSPF on the VRRP LAN, a workaround may be to
advertise it as an OSPF external network to avoid it usage as a  
forwarding
address.

Hope this helps,
Acee
                                 +


On Apr 3, 2009, at 10:44 AM, Perez, Stephane wrote:

> Hello guys,
>
> I would like to raise a generic question about the OSPF AS External  
> LSA
> handling to which I have only found a workaround.
>
> I had experienced a specific corner case with the OSPF process  
> which can
> cause some problems in some network environment.
> The scenario is a firewall cluster composed of 2 firewalls using VRRP,
> running. Each firewall announces a specific set of AS External  
> routes to
> the OSPF with identical parameters including the same next-hop
> (VRRP-VIP) for L2 redundancy.
>
> In this configuration both firewalls are redistributing into the OSPF
> process the same external routes with the same next-hop the VRRP- 
> VIP and
> the same metric. The only difference between these LSAs is the
> router-ID.
>
>  As per OSPF standard 2328 (page 142) this will be considered as two
> functionally identical LSA for each external route. To avoid effort
> duplication, only the one with the highest router-id of the two LSA  
> will
> be kept into the LSDB.
>
>
> Router A ---+-- Firewall A  (rid ra.rb.rc.1) --+- Network ABC
>             |    vip w.x.y.z                   |
>             |-- Firewall B  (rid ra.rb.rc.2) --|
>
>
> The main problem comes when the router with the router with the  
> highest
> router-id dies (Firewall B).
>
>  At that point the following happen:
> - Firewall B is marked as unreachable after the Dead interval timer
> - routes are removed from the Router A FIB
> - All External LSAs from FW-B are kept in the LSDB until the LSA age
> reaches the MaxAge time of 3600s
> - when the External LSA is being withdrawn from the LSDB the FW-A  
> flood
> a new LSA and Djikstra is calculated again.
>
>  In such a case this create an outage in a network for about 1 hour.
> There is an easy workaround which is to redistribute the Network ABC
> with a different metric from FW-A and FW-B, however this just comes  
> back
> to a duplication of effort where we will have 2 LSAs functionally
> identical in the LSDB.
>
> Premature aging seems not of any help here since the router can  
> only age
> an LSA which contains its own router-id.
>
> I would like to have your thought about this particular case where it
> can result in a 1 hour network outage.
>
> Thanks in advance
> Stephane Perez
>
>
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf


--Apple-Mail-6-619411596
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">
Stephane,<div><br></div><div>If one of the firewalls dies, the other =
should originate the suppressed=A0</div><div>As external advertisement =
immediately. Note the qualification=A0</div><div>"both reachable from =
one=A0another" in the excerpted RFC 2328 text below.</div><div>If one =
firewal is dead, it is clearly not=A0reachable from the =
other.=A0</div><div><br></div><div><div>=A0=A0=A0<i>In figure 16, =
suppose instead that both RTA and RTB</i></div><div><i>=A0=A0 exchange =
BGP information with RTX. =A0In this case,</i></div><div><i>=A0=A0 RTA =
and RTB would originate the same set of AS-</i></div><div><i>=A0=A0 =
external-LSAs. =A0These LSAs, if they specify the =
same</i></div><div><i>=A0=A0 metric, would be functionally equivalent =
since they</i></div><div><i>=A0=A0 would specify the same destination =
and forwarding</i></div><div><i>=A0=A0 address (RTX). =A0This leads to a =
clear duplication of</i></div><div><i>=A0=A0 effort. =A0If only one of =
RTA or RTB originated the</i></div><div><i>=A0=A0 set of =
AS-external-LSAs, the routing would remain</i></div><div><i>=A0=A0 the =
same, and the size of the link state database</i></div><div><i>=A0=A0 =
would decrease. =A0However, it must be unambiguously</i></div><div><i>=A0=A0=
 defined as to which router originates the LSAs</i></div><div><i>=A0=A0 =
(otherwise neither may, or the identity of the</i></div><div><i>=A0=A0 =
originator may oscillate). =A0The following rule is</i></div><div><i>=A0=A0=
 thereby established: if two routers, </i><b><i>both =
reachable</i></b></div><div><i>=A0=A0 </i><b><i>f</i></b><b><i>rom one =
another,</i></b><i> originate functionally =
equivalent</i></div><div><i>=A0=A0 AS-external-LSAs (i.e., same =
destination, cost and</i></div><div><i>=A0=A0 non-zero forwarding =
address), then the LSA</i></div><div><i>=A0=A0 originated by the router =
having the highest OSPF</i></div><div><i>=A0=A0 Router ID is used. =A0The =
router having the lower OSPF</i></div><div><i>=A0=A0 outer ID can then =
flush its LSA. =A0Flushing an LSA</i></div><div><i>=A0=A0 is discussed =
in Section 14.1.</i></div><div><i><br></i></div><div><br></div><div>If =
you don't need to run OSPF on the VRRP LAN, a workaround may be =
to</div><div>advertise it as an OSPF external network to avoid it usage =
as a forwarding</div><div>address.=A0</div><div><br></div><div>Hope this =
helps,</div><div>Acee=A0</div><div>=A0=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =
=A0+</div><div><br></div></div><div>=A0=A0=A0<br><div><div>On Apr 3, =
2009, at 10:44 AM, Perez, Stephane wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">Hello guys,</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: =
14px; "><br></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">I would like to raise a generic =
question about the OSPF AS External LSA</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">handling =
to which I have only found a workaround.</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
min-height: 14px; "><br></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I had =
experienced a specific corner case with the OSPF process which =
can</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">cause some problems in some =
network environment.</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; ">The scenario is a firewall =
cluster composed of 2 firewalls using VRRP,</div><div style=3D"margin-top:=
 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
">running. Each firewall announces a specific set of AS External routes =
to</div><div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: =
0px; margin-left: 0px; ">the OSPF with identical parameters including =
the same next-hop</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">(VRRP-VIP) for L2 =
redundancy.</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">In this configuration both firewalls are =
redistributing into the OSPF</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">process the =
same external routes with the same next-hop the VRRP-VIP and</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">the same metric. The only difference between these =
LSAs is the</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">router-ID.</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0</span>As per OSPF standard 2328 =
(page 142) this will be considered as two</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
">functionally identical LSA for each external route. To avoid =
effort</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">duplication, only the one with =
the highest router-id of the two LSA will</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">be kept =
into the LSDB.</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Router A =
---+-- Firewall A<span class=3D"Apple-converted-space">=A0 </span>(rid =
ra.rb.rc.1) --+- Network ABC</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0 =A0 =A0 =A0 =A0 =A0 </span>|<span =
class=3D"Apple-converted-space">=A0 =A0 </span>vip w.x.y.z <span =
class=3D"Apple-converted-space">=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
</span>|</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0 =A0 =A0 =A0 =A0 =A0 </span>|-- =
Firewall B<span class=3D"Apple-converted-space">=A0 </span>(rid =
ra.rb.rc.2) --| <span class=3D"Apple-converted-space">=A0</span></div><div=
 style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; =
min-height: 14px; "><br></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">The main =
problem comes when the router with the router with the highest</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">router-id dies (Firewall B).</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; min-height: 14px; "><br></div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><span =
class=3D"Apple-converted-space">=A0</span>At that point the following =
happen:</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">- Firewall B is marked as =
unreachable after the Dead interval timer</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">- routes =
are removed from the Router A FIB</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">- All =
External LSAs from FW-B are kept in the LSDB until the LSA age</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">reaches the MaxAge time of 3600s</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">- when the External LSA is being withdrawn from the =
LSDB the FW-A flood</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; ">a new LSA and Djikstra is =
calculated again.</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><span class=3D"Apple-converted-space">=A0</span>In =
such a case this create an outage in a network for about 1 =
hour.</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">There is an easy workaround =
which is to redistribute the Network ABC</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">with a =
different metric from FW-A and FW-B, however this just comes =
back</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">to a duplication of effort where =
we will have 2 LSAs functionally</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">identical in =
the LSDB.</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">Premature aging seems not of any help here since the =
router can only age</div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; ">an LSA which contains its =
own router-id.</div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">I would like to have your thought about this =
particular case where it</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">can result in =
a 1 hour network outage.</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: =
14px; "><br></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; ">Thanks in advance</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">Stephane Perez</div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: =
14px; "><br></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; =
">_______________________________________________</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">OSPF mailing list</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a =
href=3D"mailto:OSPF@ietf.org">OSPF@ietf.org</a></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf">https://www.ietf.org/m=
ailman/listinfo/ospf</a></div> =
</blockquote></div><br></div></body></html>=

--Apple-Mail-6-619411596--

From prvs=337a41da8=acee@redback.com  Fri Apr  3 12:47:33 2009
Return-Path: <prvs=337a41da8=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4CA973A691B for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 12:47:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.871
X-Spam-Level: 
X-Spam-Status: No, score=-1.871 tagged_above=-999 required=5 tests=[AWL=-0.383, BAYES_00=-2.599, HTML_MESSAGE=0.001, MPART_ALT_DIFF_COUNT=1.11]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pMorN-RexcEO for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 12:47:31 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id 74CCB3A6843 for <ospf@ietf.org>; Fri,  3 Apr 2009 12:47:31 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.39,321,1235980800";  d="txt'?scan'208,217";a="698555"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 03 Apr 2009 12:48:34 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id 7EC8717BA9A; Fri,  3 Apr 2009 12:48:34 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 32475-10; Fri,  3 Apr 2009 12:48:34 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id 226D917BA94; Fri,  3 Apr 2009 12:48:33 -0700 (PDT)
In-Reply-To: <3525C9833C09ED418C6FD6CD9514668C060CB487@emailwf1.jnpr.net>
References: <8953272F-32B4-4380-90D5-EAA1E69196EC@redback.com> <3525C9833C09ED418C6FD6CD9514668C060CB487@emailwf1.jnpr.net>
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: multipart/alternative; boundary=Apple-Mail-10-635391243
Message-Id: <E1FD8484-6F2A-49BA-9A82-C9476B00B902@redback.com>
From: Acee Lindem <acee@redback.com>
Date: Fri, 3 Apr 2009 15:48:32 -0400
To: Ross Callon <rcallon@juniper.net>
X-Mailer: Apple Mail (2.753.1)
Cc: OSPF List <ospf@ietf.org>, Adrian Farrel <Adrian.Farrel@huawei.com>
Subject: Re: [OSPF] Dynamic Hostname Exchange Mechanism for OSPF - draft-ietf-ospf-dynamic-hostname-03.txt
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Apr 2009 19:47:33 -0000

--Apple-Mail-10-635391243
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=UTF-8;
	delsp=yes;
	format=flowed

Right - see attached.
Thanks,
Acee
  =EF=BF=BC
On Apr 3, 2009, at 11:02 AM, Ross Callon wrote:

> Can you send me a PROTO writeup?
>
> Thanks, Ross
>
> From: Acee Lindem [mailto:acee@redback.com]
> Sent: 03 April 2009 10:42
> To: Ross Callon; Adrian Farrel
> Cc: OSPF List; iesg-secretary@ietf.org
> Subject: Dynamic Hostname Exchange Mechanism for OSPF - draft-ietf-=20
> ospf-dynamic-hostname-03.txt
>
>
> Ross, Adrian,
> We have completed the WG last call for Dynamic Hostname Exchange =20
> Mechanism for OSPF and version draft-ietf-ospf-dynamic-=20
> hostname-03.txt addresses a couple minor comments. It is the desire =20=

> of the WG that the document be published as a standards track =20
> document. Here is an html link for your convenience.
>
> http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-=20
> hostname-03.txt.
>
> Thanks,
> Acee and Abhay
>


--Apple-Mail-10-635391243
Content-Type: multipart/mixed;
	boundary=Apple-Mail-11-635391244


--Apple-Mail-11-635391244
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">Right - see =
attached.<div>Thanks,</div><div>Acee</div><div>=A0<span></span></div></bod=
y></html>=

--Apple-Mail-11-635391244
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	x-unix-mode=0644;
	name=draft-ietf-ospf-dynamic-hostname-03.txt
Content-Disposition: attachment;
	filename=draft-ietf-ospf-dynamic-hostname-03.txt

=0D
=0D
=0D
OSPF WG                                                       S. Venkata=0D=

Internet-Draft                                               Google Inc.=0D=

Intended status: Standards Track                              S. Harwani=0D=

Expires: October 5, 2009                                    C. Pignataro=0D=

                                                           Cisco Systems=0D=

                                                            D. McPherson=0D=

                                                    Arbor Networks, Inc.=0D=

                                                           April 3, 2009=0D=

=0D
=0D
              Dynamic Hostname Exchange Mechanism for OSPF=0D
                  draft-ietf-ospf-dynamic-hostname-03=0D
=0D
Status of this Memo=0D
=0D
   This Internet-Draft is submitted to IETF in full conformance with the=0D=

   provisions of BCP 78 and BCP 79.  This document may contain material=0D=

   from IETF Documents or IETF Contributions published or made publicly=0D=

   available before November 10, 2008.  The person(s) controlling the=0D
   copyright in some of this material may not have granted the IETF=0D
   Trust the right to allow modifications of such material outside the=0D=

   IETF Standards Process.  Without obtaining an adequate license from=0D=

   the person(s) controlling the copyright in such materials, this=0D
   document may not be modified outside the IETF Standards Process, and=0D=

   derivative works of it may not be created outside the IETF Standards=0D=

   Process, except to format it for publication as an RFC or to=0D
   translate it into languages other than English.=0D
=0D
   Internet-Drafts are working documents of the Internet Engineering=0D
   Task Force (IETF), its areas, and its working groups.  Note that=0D
   other groups may also distribute working documents as Internet-=0D
   Drafts.=0D
=0D
   Internet-Drafts are draft documents valid for a maximum of six months=0D=

   and may be updated, replaced, or obsoleted by other documents at any=0D=

   time.  It is inappropriate to use Internet-Drafts as reference=0D
   material or to cite them other than as "work in progress."=0D
=0D
   The list of current Internet-Drafts can be accessed at=0D
   http://www.ietf.org/ietf/1id-abstracts.txt.=0D
=0D
   The list of Internet-Draft Shadow Directories can be accessed at=0D
   http://www.ietf.org/shadow.html.=0D
=0D
   This Internet-Draft will expire on October 5, 2009.=0D
=0D
Copyright Notice=0D
=0D
=0D
=0D
=0D
Venkata, et al.          Expires October 5, 2009                [Page 1]=0D=

=0C=0D
Internet-Draft         Dynamic Hostnames for OSPF             April 2009=0D=

=0D
=0D
   Copyright (c) 2009 IETF Trust and the persons identified as the=0D
   document authors.  All rights reserved.=0D
=0D
   This document is subject to BCP 78 and the IETF Trust's Legal=0D
   Provisions Relating to IETF Documents in effect on the date of=0D
   publication of this document (http://trustee.ietf.org/license-info).=0D=

   Please review these documents carefully, as they describe your rights=0D=

   and restrictions with respect to this document.=0D
=0D
Abstract=0D
=0D
   Currently, there does not exist a simple and dynamic mechanism for=0D
   routers running OSPF to learn about symbolic hostnames just like for=0D=

   routers running IS-IS.  This document defines a new OSPF Router=0D
   Information (RI) TLV which allows the OSPF routers to flood their=0D
   hostname-to-Router ID mapping information across the OSPF network.=0D
   This mechanism is applicable to both OSPFv2 and OSPFv3.=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
Venkata, et al.          Expires October 5, 2009                [Page 2]=0D=

=0C=0D
Internet-Draft         Dynamic Hostnames for OSPF             April 2009=0D=

=0D
=0D
Table of Contents=0D
=0D
   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 4=0D=

     1.1.  Specification of Requirements . . . . . . . . . . . . . . . 4=0D=

   2.  Possible solutions  . . . . . . . . . . . . . . . . . . . . . . 4=0D=

   3.  Implementation  . . . . . . . . . . . . . . . . . . . . . . . . 5=0D=

     3.1.  Dynamic Hostname TLV  . . . . . . . . . . . . . . . . . . . 5=0D=

       3.1.1.  Flooding Scope  . . . . . . . . . . . . . . . . . . . . 6=0D=

       3.1.2.  Multiple OSPF Instances . . . . . . . . . . . . . . . . 7=0D=

   4.  IPv6 Considerations . . . . . . . . . . . . . . . . . . . . . . 7=0D=

   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 7=0D=

   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8=0D=

   7.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 8=0D=

   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 8=0D=

     8.1.  Normative References  . . . . . . . . . . . . . . . . . . . 8=0D=

     8.2.  Informative References  . . . . . . . . . . . . . . . . . . 9=0D=

   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 9=0D=

=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
Venkata, et al.          Expires October 5, 2009                [Page 3]=0D=

=0C=0D
Internet-Draft         Dynamic Hostnames for OSPF             April 2009=0D=

=0D
=0D
1.  Introduction=0D
=0D
   OSPF uses a 32-bit Router ID to uniquely represent and identify a=0D
   node in the network.  For management and operational reasons, network=0D=

   operators need to check the status of OSPF adjacencies, entries in=0D
   the routing table and the content of the OSPF link state database.=0D
   It is obvious that, when looking at diagnostic information, numerical=0D=

   representations of Router IDs (e.g., dotted-decimal or hexadecimal=0D
   representations) are less clear to humans than symbolic names.=0D
=0D
   One way to overcome this problem is to define a hostname-to-Router ID=0D=

   mapping table on a router.  This mapping can be used bidirectionally=0D=

   (e.g., to find symbolic names for Router IDs, and to find Router IDs=0D=

   for symbolic names) or unidirectionally (e.g., to find symbolic=0D
   hostnames for Router IDs).  Thus every router has to maintain a table=0D=

   with mappings between router names and Router IDs.=0D
=0D
   These tables need to contain all names and Router IDs of all routers=0D=

   in the network.  If these mapping tables are built by static=0D
   definitions, it can become a manual and tedious process in=0D
   operational networks currently; modifying these static mapping=0D
   entries when additions, deletions or changes occur becomes a non-=0D
   scalable process very prone to error.=0D
=0D
   This document analyzes possible solutions to this problem (see=0D
   Section 2) and provides a way to populate tables by defining a new=0D
   OSPF Router Information TLV for OSPF, the Dynamic Hostname TLV (see=0D=

   Section 3).  This mechanism is applicable to both OSPFv2 and OSPFv3.=0D=

=0D
1.1.  Specification of Requirements=0D
=0D
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",=0D=

   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this=0D=

   document are to be interpreted as described in [RFC2119].=0D
=0D
=0D
2.  Possible solutions=0D
=0D
   There are various approaches to providing a name-to-Router ID mapping=0D=

   service.=0D
=0D
   One way to build this table of mappings is by static definitions.=0D
   The problem with static definitions is that the network administrator=0D=

   needs to keep updating the mapping entries manually as the network=0D
   changes; this approach does not scale as the network grows, since=0D
   there needs to be an entry in the mapping table for each and every=0D
   router in the network, on every router in the network.  Thus, this=0D
   approach greatly suffers from maintainability and scalability=0D
=0D
=0D
=0D
Venkata, et al.          Expires October 5, 2009                [Page 4]=0D=

=0C=0D
Internet-Draft         Dynamic Hostnames for OSPF             April 2009=0D=

=0D
=0D
   considerations.=0D
=0D
   Another approach is having a centralized location where the name-to-=0D=

   Router ID mapping can be kept.  DNS can be used for the same.  A=0D
   disadvantage with this centralized solution is that its a single=0D
   point of failure; and although enhanced availability of the central=0D=

   mapping service can be designed, it may not be able to resolve the=0D
   hostname in the event of reachability or network problems.  Also, the=0D=

   response time can be an issue with the centralized solution, which=0D
   can be particularly problematic in times of problem resolution.  If=0D=

   DNS is used as the centralized mapping table, a network operator may=0D=

   desire a different name mapping than the existing in the DNS, or new=0D=

   routers may not yet be in DNS.=0D
=0D
   Additionally for OSPFv3, in native IPv6 deployments, the 32-bit=0D
   Router ID value will not map to IPv4-addressed entities in the=0D
   network, nor will it be DNS resolvable (see Section 4).=0D
=0D
   The third solution that we have defined in this document is to make=0D=

   use of the protocol itself to carry the name-to-Router ID mapping in=0D=

   a TLV.  Routers that understand this TLV can use it to create the=0D
   symbolic name-to-Router ID mapping and Routers who don't understand=0D=

   can simply ignore it.  This specification provides these semantics=0D
   and mapping mechanisms for OSPFv2 and OSPFv3, leveraging the OSPF=0D
   Router Information (RI) LSA ([RFC4970]).=0D
=0D
=0D
3.  Implementation=0D
=0D
   This extension makes use of the Router Information (RI) Opaque LSA=0D
   defined in [RFC4970] for both OSPFv2 and OSPFv3, by defining a new=0D
   OSPF Router Information (RI) TLV: The Dynamic Hostname TLV.=0D
=0D
   The Dynamic Hostname TLV (see Section 3.1) is OPTIONAL.  Upon receipt=0D=

   of the TLV a router may decide to ignore this TLV, or to install the=0D=

   symbolic name and Router ID in its hostname mapping table.=0D
=0D
3.1.  Dynamic Hostname TLV=0D
=0D
   The format of Dynamic Hostname TLV is as follows:=0D
=0D
    0                   1                   2                   3=0D
    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=0D
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+=0D
   |              Type             |             Length            |=0D
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+=0D
   |                          Hostname ...                         |=0D
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+=0D
=0D
=0D
=0D
Venkata, et al.          Expires October 5, 2009                [Page 5]=0D=

=0C=0D
Internet-Draft         Dynamic Hostnames for OSPF             April 2009=0D=

=0D
=0D
   Type     Dynamic Hostname TLV Type (TBD, see Section 6)=0D
=0D
   Length   Total length of the hostname (value field) in octets, not=0D
            including the optional padding.=0D
=0D
   Value    Hostname, a string of 1 to 255 octets, padded to 4-octet=0D
            alignment, encoded in the US-ASCII charset.=0D
=0D
   Routers that do not recognize the Dynamic Hostname TLV Type, ignore=0D=

   the TLV (see [RFC4970]).=0D
=0D
   The value field identifies the symbolic hostname of the router=0D
   originating the LSA.  The string is not null-terminated.  The Router=0D=

   ID of this router is derived from the LSA header, in the Advertising=0D=

   Router field of the Router Information (RI) Opaque LSA.=0D
=0D
   The Value field is encoded in 7-bit ASCII.  If a user-interface for=0D=

   configuring or displaying this field permits Unicode characters, that=0D=

   user-interface is responsible for applying the ToASCII and/or=0D
   ToUnicode algorithm as described in [RFC3490] to achieve the correct=0D=

   format for transmission or display.=0D
=0D
   The Dynamic Hostname TLV is applicable to both OSPFv2 and OSPFv3.=0D
=0D
3.1.1.  Flooding Scope=0D
=0D
   The Dynamic Hostname TLV MAY be advertised within an area-local or AS=0D=

   scope Router Information (RI) LSA.  But the Dynamic Hostname TLV=0D
   SHOULD NOT be advertised into an area in more than one RI LSA=0D
   irrespective of the scope of the LSA.=0D
=0D
   In other words, if a router originates a Dynamic Hostname TLV with an=0D=

   IGP domain (AS) flooding scope, it SHOULD NOT send area-scoped=0D
   Dynamic Hostname TLV except into any attached Not-So-Stubby Area=0D
   (NSSA) area(s).  Similarly, if a router originates area-scoped=0D
   Dynamic Hostname TLV (other than NSSA area scoped), it SHOULD NOT=0D
   send AS-scoped Dynamic Hostname TLV.  When the Dynamic Hostname TLV=0D=

   is advertised in more than one LSA (e.g., multiple area-scoped LSAs,=0D=

   or AS-scoped LSAs plus NSSA area-scope LSA(s)), the hostname SHOULD=0D=

   be the same.=0D
=0D
   If a router is advertising any AS scope LSA (other than Dynamic TLV=0D=

   RI LSA) such router SHOULD advertise Dynamic TLV RI LSA in AS scope.=0D=

   Otherwise, it SHOULD advertise Dynamic TLV RI LSA in area scope.  For=0D=

   example, an AS boundary router (ASBR) SHOULD send an AS scope Dynamic=0D=

   Hostname TLV, whereas area boundary router (ABRs) and internal=0D
   routers SHOULD send an area scope Dynamic Hostname TLV.=0D
=0D
=0D
=0D
=0D
Venkata, et al.          Expires October 5, 2009                [Page 6]=0D=

=0C=0D
Internet-Draft         Dynamic Hostnames for OSPF             April 2009=0D=

=0D
=0D
   The flooding scope is controlled by the Opaque LSA type in OSPFv2 and=0D=

   by the S1 and S2 bits in OSPFv3.  For area scope, the Dynamic=0D
   Hostname TLV MUST be carried within an OSPFv2 Type 10 RI LSA or an=0D
   OSPFv3 RI LSA with the S1 bit set and S2 bit clear.  If the flooding=0D=

   scope is the entire routing domain (AS scope), the Dynamic Hostname=0D=

   TLV MUST be carried within an OSPFv2 Type 11 RI LSA or OSPFv3 RI LSA=0D=

   with the S1 bit clear and the S2 bit set.=0D
=0D
3.1.2.  Multiple OSPF Instances=0D
=0D
   When an OSPF Router Information (RI) LSA, including the Dynamic=0D
   Hostname TLV, is advertised in multiple OSPF instances, the hostname=0D=

   SHOULD either be preserved, or include a common base element.  It may=0D=

   be useful for debugging or other purposes to assign separate=0D
   instances different hostnames with a consistent set of suffixes or=0D
   prefixes that can be associated with a specific instance.  In=0D
   particular, when an instance is used for a discrete address family or=0D=

   non-routing information.=0D
=0D
=0D
4.  IPv6 Considerations=0D
=0D
   Both OSPFv2 and OSPFv3 employ Router IDs with a common size of 32-=0D
   bits.  In IPv4 the Router ID values were typically derived=0D
   automatically from an IPv4 address configured on a loopback or=0D
   physical interface defined on the local system, or explicitly defined=0D=

   within the OSPF process configuration.  With broader deployment of=0D
   IPv6, it's quite likely that OSPF networks will exist that have no=0D
   native IPv4 addressed interfaces.  As a result, a 32-bit OSPF Router=0D=

   ID will either need to be explicitly specified, or derived in some=0D
   automatic manner that avoids collisions with other OSPF routers=0D
   within the local routing domain.=0D
=0D
   Because this 32-bit value will not map to IPv4-addressed entities in=0D=

   the network, nor will it be DNS resolvable, it is considered=0D
   extremely desirable from an operational perspective that some=0D
   mechanism exist to map OSPF Router IDs to more easily interpreted=0D
   values, ideally, human-readable strings.  This specification enables=0D=

   a mapping functionality which eases operational burdens that may=0D
   otherwise be introduced with native deployment of IPv6.=0D
=0D
=0D
5.  Security Considerations=0D
=0D
   Since the hostname-to-Router ID mapping relies on information=0D
   provided by the routers themselves, a misconfigured or compromised=0D
   router can inject false mapping information.  Thus, this information=0D=

   needs to be treated with suspicion when, for example, doing=0D
=0D
=0D
=0D
Venkata, et al.          Expires October 5, 2009                [Page 7]=0D=

=0C=0D
Internet-Draft         Dynamic Hostnames for OSPF             April 2009=0D=

=0D
=0D
   diagnostics about a suspected security incident.=0D
=0D
   This document raises no other new security issues for OSPF.  Security=0D=

   considerations for the base OSPF protocol are covered in [RFC2328]=0D
   and [RFC5340].  The use of authentication for the OSPF routing=0D
   protocols is encouraged.=0D
=0D
=0D
6.  IANA Considerations=0D
=0D
   IANA maintains the "OSPF Router Information (RI) TLVs" registry=0D
   reachable at [IANA-RI].  An additional OSPF Router Information TLV=0D
   Type is defined in Section 3.  It is required to be assigned by IANA=0D=

   from the Standards Action allocation range [RFC4970].=0D
=0D
=0D
   Registry Name: OSPF Router Information (RI) TLVs=0D
=0D
   Type Value   Capabilities                            Reference=0D
   -----------  --------------------------------------  ---------=0D
   TBD          OSPF Dynamic Hostname                   This document=0D
=0D
=0D
7.  Acknowledgments=0D
=0D
   The authors of this document do not make any claims on the=0D
   originality of the ideas described.  This document adapts format and=0D=

   text from similar work done in IS-IS [RFC2763]; we would like to=0D
   thank Naiming Shen and and Henk Smit, authors of that document.=0D
=0D
   The authors would also like to thank Acee Lindem, Abhay Roy, Anton=0D
   Smirnov, and Dave Ward for their valuable comments and suggestions.=0D=

=0D
=0D
8.  References=0D
=0D
8.1.  Normative References=0D
=0D
   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate=0D
              Requirement Levels", BCP 14, RFC 2119, March 1997.=0D
=0D
   [RFC4970]  Lindem, A., Shen, N., Vasseur, JP., Aggarwal, R., and S.=0D=

              Shaffer, "Extensions to OSPF for Advertising Optional=0D
              Router Capabilities", RFC 4970, July 2007.=0D
=0D
=0D
=0D
=0D
=0D
=0D
=0D
Venkata, et al.          Expires October 5, 2009                [Page 8]=0D=

=0C=0D
Internet-Draft         Dynamic Hostnames for OSPF             April 2009=0D=

=0D
=0D
8.2.  Informative References=0D
=0D
   [IANA-RI]  Internet Assigned Numbers Authority, "OSPFv2 Parameters",=0D=

              July 2008,=0D
              <http://www.iana.org/assignments/ospfv2-parameters>.=0D
=0D
   [RFC2328]  Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998.=0D=

=0D
   [RFC2763]  Shen, N. and H. Smit, "Dynamic Hostname Exchange Mechanism=0D=

              for IS-IS", RFC 2763, February 2000.=0D
=0D
   [RFC3490]  Faltstrom, P., Hoffman, P., and A. Costello,=0D
              "Internationalizing Domain Names in Applications (IDNA)",=0D=

              RFC 3490, March 2003.=0D
=0D
   [RFC5340]  Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF=0D
              for IPv6", RFC 5340, July 2008.=0D
=0D
=0D
Authors' Addresses=0D
=0D
   Subbaiah Venkata=0D
   Google Inc.=0D
=0D
   Email: svenkata@google.com=0D
   URI:   http://www.google.com=0D
=0D
=0D
   Sanjay Harwani=0D
   Cisco Systems=0D
=0D
   Email: sharwani@cisco.com=0D
   URI:   http://www.cisco.com=0D
=0D
=0D
   Carlos Pignataro=0D
   Cisco Systems=0D
=0D
   Email: cpignata@cisco.com=0D
   URI:   http://www.cisco.com=0D
=0D
=0D
   Danny McPherson=0D
   Arbor Networks, Inc.=0D
=0D
   Email: danny@arbor.net=0D
=0D
=0D
=0D
=0D
=0D
Venkata, et al.          Expires October 5, 2009                [Page 9]=0D=

=0C=0D

--Apple-Mail-11-635391244
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; =
"><div><span></span><br><div><div>On Apr 3, 2009, at 11:02 AM, Ross =
Callon wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><span class=3D"Apple-style-span" style=3D"border-collapse: =
separate; color: rgb(0, 0, 0); font-family: 'Courier New'; font-size: =
12px; font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
auto; text-indent: 0px; text-transform: none; white-space: normal; =
widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0; "><div class=3D"Section1"><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"2" color=3D"navy" face=3D"Arial"><span =
style=3D"font-size: 10pt; font-family: Arial; color: navy; ">Can you =
send me a PROTO writeup?<o:p></o:p></span></font></div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"2" color=3D"navy" face=3D"Arial"><span =
style=3D"font-size: 10pt; font-family: Arial; color: navy; =
"><o:p>=A0</o:p></span></font></div><div style=3D"margin-top: 0in; =
margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman'; "><font size=3D"2" color=3D"navy" =
face=3D"Arial"><span style=3D"font-size: 10pt; font-family: Arial; =
color: navy; ">Thanks, Ross<o:p></o:p></span></font></div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"2" color=3D"navy" face=3D"Arial"><span =
style=3D"font-size: 10pt; font-family: Arial; color: navy; =
"><o:p>=A0</o:p></span></font></div><div><div class=3D"MsoNormal" =
align=3D"center" style=3D"text-align: center; margin-top: 0in; =
margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman'; "><font size=3D"3" face=3D"Times =
New Roman"><span style=3D"font-size: 12pt; "><hr size=3D"2" width=3D"100%"=
 align=3D"center" tabindex=3D"-1"></span></font></div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><b><font size=3D"2" face=3D"Tahoma"><span style=3D"font-size: =
10pt; font-family: Tahoma; font-weight: bold; =
">From:</span></font></b><font size=3D"2" face=3D"Tahoma"><span =
style=3D"font-size: 10pt; font-family: Tahoma; "><span =
class=3D"Apple-converted-space">=A0</span>Acee Lindem [<a =
href=3D"mailto:acee@redback.com">mailto:acee@redback.com</a>]<span =
class=3D"Apple-converted-space">=A0</span><br><b><span =
style=3D"font-weight: bold; ">Sent:</span></b><span =
class=3D"Apple-converted-space">=A0</span>03 April 2009 =
10:42<br><b><span style=3D"font-weight: bold; ">To:</span></b><span =
class=3D"Apple-converted-space">=A0</span>Ross Callon; Adrian =
Farrel<br><b><span style=3D"font-weight: bold; ">Cc:</span></b><span =
class=3D"Apple-converted-space">=A0</span>OSPF List; <a =
href=3D"mailto:iesg-secretary@ietf.org">iesg-secretary@ietf.org</a><br><b>=
<span style=3D"font-weight: bold; ">Subject:</span></b><span =
class=3D"Apple-converted-space">=A0</span>Dynamic Hostname Exchange =
Mechanism for OSPF - =
draft-ietf-ospf-dynamic-hostname-03.txt</span></font><o:p></o:p></div></di=
v><div style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; "><o:p>=A0</o:p></span></font></div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; =
"><o:p>=A0</o:p></span></font></div></div><div><div style=3D"margin-top: =
0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman'; "><font size=3D"3" =
face=3D"Times New Roman"><span style=3D"font-size: 12pt; ">Ross, =
Adrian,<o:p></o:p></span></font></div></div><div><div style=3D"margin-top:=
 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman'; "><font size=3D"3" =
face=3D"Times New Roman"><span style=3D"font-size: 12pt; ">We have =
completed the WG last call for=A0Dynamic Hostname Exchange Mechanism for =
OSPF and version=A0draft-ietf-ospf-dynamic-hostname-03.txt addresses a =
couple minor comments. It is the desire of the WG that the document be =
published as a standards track document. Here is an html link for your =
convenience.<o:p></o:p></span></font></div></div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; =
"><o:p>=A0</o:p></span></font></div></div><div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"1" color=3D"#0020de" face=3D"Courier New"><span =
style=3D"font-size: 9pt; font-family: 'Courier New'; color: rgb(0, 32, =
222); "><a =
href=3D"http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-hostna=
me-03.txt" style=3D"color: blue; text-decoration: underline; =
">http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-hostname-03.=
txt</a></span></font><font size=3D"1" face=3D"Courier New"><span =
style=3D"font-size: 9pt; font-family: 'Courier New'; =
">.</span></font><o:p></o:p></div></div><div><div style=3D"margin-top: =
0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman'; "><font size=3D"3" =
face=3D"Times New Roman"><span style=3D"font-size: 12pt; =
"><o:p>=A0</o:p></span></font></div></div></div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; =
">Thanks,<o:p></o:p></span></font></div></div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; ">Acee and =
Abhay<o:p></o:p></span></font></div></div><div><div style=3D"margin-top: =
0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman'; "><font size=3D"3" =
face=3D"Times New Roman"><span style=3D"font-size: 12pt; =
"><o:p>=A0</o:p></span></font></div></div></div></span></blockquote></div>=
<br></div></body></html>=

--Apple-Mail-11-635391244--

--Apple-Mail-10-635391243--

From prvs=337a41da8=acee@redback.com  Fri Apr  3 13:28:19 2009
Return-Path: <prvs=337a41da8=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 5E8203A68F7 for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 13:28:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.86
X-Spam-Level: 
X-Spam-Status: No, score=-1.86 tagged_above=-999 required=5 tests=[AWL=-0.372,  BAYES_00=-2.599, HTML_MESSAGE=0.001, MPART_ALT_DIFF_COUNT=1.11]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YRCYSZ2w1TGZ for <ospf@core3.amsl.com>; Fri,  3 Apr 2009 13:28:18 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id 359483A69A8 for <ospf@ietf.org>; Fri,  3 Apr 2009 13:28:18 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.39,321,1235980800";  d="txt'?scan'208,217";a="699481"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 03 Apr 2009 13:29:21 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id 285807695A2; Fri,  3 Apr 2009 13:29:21 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13974-01; Fri,  3 Apr 2009 13:29:20 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id 1DCA67695A9; Fri,  3 Apr 2009 13:29:20 -0700 (PDT)
In-Reply-To: <3525C9833C09ED418C6FD6CD9514668C060CB487@emailwf1.jnpr.net>
References: <8953272F-32B4-4380-90D5-EAA1E69196EC@redback.com> <3525C9833C09ED418C6FD6CD9514668C060CB487@emailwf1.jnpr.net>
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: multipart/alternative; boundary=Apple-Mail-15-637837605
Message-Id: <32E914E2-B224-48A0-8E7A-9DDF359BF994@redback.com>
From: Acee Lindem <acee@redback.com>
Date: Fri, 3 Apr 2009 16:29:18 -0400
To: Ross Callon <rcallon@juniper.net>
X-Mailer: Apple Mail (2.753.1)
Cc: OSPF List <ospf@ietf.org>, Adrian Farrel <Adrian.Farrel@huawei.com>
Subject: Re: [OSPF] Dynamic Hostname Exchange Mechanism for OSPF - draft-ietf-ospf-dynamic-hostname-03.txt
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 03 Apr 2009 20:28:19 -0000

--Apple-Mail-15-637837605
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=UTF-8;
	delsp=yes;
	format=flowed

Here is the proto write-up. I previously attached the wrong file.
Thanks,
Acee
  =EF=BF=BC

On Apr 3, 2009, at 11:02 AM, Ross Callon wrote:

> Can you send me a PROTO writeup?
>
> Thanks, Ross
>
> From: Acee Lindem [mailto:acee@redback.com]
> Sent: 03 April 2009 10:42
> To: Ross Callon; Adrian Farrel
> Cc: OSPF List; iesg-secretary@ietf.org
> Subject: Dynamic Hostname Exchange Mechanism for OSPF - draft-ietf-=20
> ospf-dynamic-hostname-03.txt
>
>
> Ross, Adrian,
> We have completed the WG last call for Dynamic Hostname Exchange =20
> Mechanism for OSPF and version draft-ietf-ospf-dynamic-=20
> hostname-03.txt addresses a couple minor comments. It is the desire =20=

> of the WG that the document be published as a standards track =20
> document. Here is an html link for your convenience.
>
> http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-=20
> hostname-03.txt.
>
> Thanks,
> Acee and Abhay
>


--Apple-Mail-15-637837605
Content-Type: multipart/mixed;
	boundary=Apple-Mail-16-637837605


--Apple-Mail-16-637837605
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">Here is the proto write-up. I =
previously attached the wrong =
file.<br><div>Thanks,</div><div>Acee</div><div>=A0</div></body></html>=

--Apple-Mail-16-637837605
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	x-unix-mode=0644;
	name=ospf-dynamic-hostname-proto-writeup.txt
Content-Disposition: attachment;
	filename=ospf-dynamic-hostname-proto-writeup.txt

  1. Have the chairs personally reviewed this version of the Internet 
     Draft (ID), and in particular, do they believe this ID is ready
     to forward to the IESG for publication?

     Yes 

  2. Has the document had adequate review from both key WG members and
     key non-WG members? 

     Yes - I've reviewed it myself several times.

     Do you have any concerns about the depth or
     breadth of the reviews that have been performed?
    
     No
 
  3. Do you have concerns that the document needs more review from a
     particular (broader) perspective (e.g., security, operational 
     complexity, someone familiar with AAA, etc.)?

     No

  4. Do you have any specific concerns/issues with this document that
     you believe the ADs and/or IESG should be aware of? For example,
     perhaps you are uncomfortable with certain parts of the document,
     or have concerns whether there really is a need for it. In any event,
     if your issues have been discussed in the WG and the WG has
     indicated it that it still wishes to advance the document, detail
     those concerns in the write-up.

     No

  5. How solid is the WG consensus behind this document? Does it represent
     the strong concurrence of a few individuals, with others being silent,
     or does the WG as a whole understand and agree with it?

     The draft is already implemented and deployed in the ISIS protocol.
     Given this experience, I see no problems with standardization. 

  6. Has anyone threatened an appeal or otherwise indicated extreme
     discontent? If so, please summarise the areas of conflict
     in separate email to the Responsible Area Director.

     No

  7. Have the chairs verified that the document adheres to all
     of the ID Checklist items? 

idnits 2.11.08 

tmp/draft-ietf-ospf-dynamic-hostname-03.txt:

  Checking boilerplate required by RFC 5378 and the IETF Trust (see
  http://trustee.ietf.org/license-info):
  ----------------------------------------------------------------------------

     No issues found here.

  Checking nits according to http://www.ietf.org/ietf/1id-guidelines.txt:
  ----------------------------------------------------------------------------

     No issues found here.

  Checking nits according to http://www.ietf.org/ID-Checklist.html:
  ----------------------------------------------------------------------------

     No issues found here.

  Miscellaneous warnings:
  ----------------------------------------------------------------------------

     No issues found here.

  Checking references for intended status: Proposed Standard
  ----------------------------------------------------------------------------

     (See RFCs 3967 and 4897 for information about using normative references
     to lower-maturity documents in RFCs)

  -- Obsolete informational reference (is this intentional?): RFC 2763
     (Obsoleted by RFC 5301)


     Summary: 0 errors (**), 0 warnings (==), 1 comment (--).

     Run idnits with the --verbose option for more detailed information about
     the items above.
--------------------------------------------------------------------------------

  8. Is the document split into normative and informative references?

     Yes

     Are there normative references to IDs, where the IDs are not
     also ready for advancement or are otherwise in an unclear state? (note
     here that the RFC editor will not publish an RFC with normative
     references to IDs, it will delay publication until all such IDs
     are also ready for publication as RFCs.)

     No

  9. What is the intended status of the document? (e.g., Proposed Standard,
     Informational?)

     Proposed Standard

 10. For Standards Track and BCP documents, the IESG approval announcement 
     includes a write-up section with the following sections:

    * Technical Summary

      This draft extends OSPF to enable advertisement of a hostname for 
      human readable identification of OSPF routrs. 
 
    * Working Group Summary

      There is no opposition to the draft and the consensus on adding the 
      equivalent to the ISIS feature. 

    * Protocol Quality

      This is a very straight forward draft and has already been implemented
      in ISIS. The draft has been reviewed several times and we see no issues. 




    

--Apple-Mail-16-637837605
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; =
"><div></div><div><span></span><br><div><div>On Apr 3, 2009, at 11:02 =
AM, Ross Callon wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><span =
class=3D"Apple-style-span" style=3D"border-collapse: separate; color: =
rgb(0, 0, 0); font-family: 'Courier New'; font-size: 12px; font-style: =
normal; font-variant: normal; font-weight: normal; letter-spacing: =
normal; line-height: normal; orphans: 2; text-align: auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-border-horizontal-spacing: 0px; =
-webkit-border-vertical-spacing: 0px; =
-webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
auto; -webkit-text-stroke-width: 0; "><div class=3D"Section1"><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"2" color=3D"navy" face=3D"Arial"><span =
style=3D"font-size: 10pt; font-family: Arial; color: navy; ">Can you =
send me a PROTO writeup?<o:p></o:p></span></font></div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"2" color=3D"navy" face=3D"Arial"><span =
style=3D"font-size: 10pt; font-family: Arial; color: navy; =
"><o:p>=A0</o:p></span></font></div><div style=3D"margin-top: 0in; =
margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman'; "><font size=3D"2" color=3D"navy" =
face=3D"Arial"><span style=3D"font-size: 10pt; font-family: Arial; =
color: navy; ">Thanks, Ross<o:p></o:p></span></font></div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"2" color=3D"navy" face=3D"Arial"><span =
style=3D"font-size: 10pt; font-family: Arial; color: navy; =
"><o:p>=A0</o:p></span></font></div><div><div class=3D"MsoNormal" =
align=3D"center" style=3D"text-align: center; margin-top: 0in; =
margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; font-size: =
12pt; font-family: 'Times New Roman'; "><font size=3D"3" face=3D"Times =
New Roman"><span style=3D"font-size: 12pt; "><hr size=3D"2" width=3D"100%"=
 align=3D"center" tabindex=3D"-1"></span></font></div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><b><font size=3D"2" face=3D"Tahoma"><span style=3D"font-size: =
10pt; font-family: Tahoma; font-weight: bold; =
">From:</span></font></b><font size=3D"2" face=3D"Tahoma"><span =
style=3D"font-size: 10pt; font-family: Tahoma; "><span =
class=3D"Apple-converted-space">=A0</span>Acee Lindem [<a =
href=3D"mailto:acee@redback.com">mailto:acee@redback.com</a>]<span =
class=3D"Apple-converted-space">=A0</span><br><b><span =
style=3D"font-weight: bold; ">Sent:</span></b><span =
class=3D"Apple-converted-space">=A0</span>03 April 2009 =
10:42<br><b><span style=3D"font-weight: bold; ">To:</span></b><span =
class=3D"Apple-converted-space">=A0</span>Ross Callon; Adrian =
Farrel<br><b><span style=3D"font-weight: bold; ">Cc:</span></b><span =
class=3D"Apple-converted-space">=A0</span>OSPF List; <a =
href=3D"mailto:iesg-secretary@ietf.org">iesg-secretary@ietf.org</a><br><b>=
<span style=3D"font-weight: bold; ">Subject:</span></b><span =
class=3D"Apple-converted-space">=A0</span>Dynamic Hostname Exchange =
Mechanism for OSPF - =
draft-ietf-ospf-dynamic-hostname-03.txt</span></font><o:p></o:p></div></di=
v><div style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; "><o:p>=A0</o:p></span></font></div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; =
"><o:p>=A0</o:p></span></font></div></div><div><div style=3D"margin-top: =
0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman'; "><font size=3D"3" =
face=3D"Times New Roman"><span style=3D"font-size: 12pt; ">Ross, =
Adrian,<o:p></o:p></span></font></div></div><div><div style=3D"margin-top:=
 0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman'; "><font size=3D"3" =
face=3D"Times New Roman"><span style=3D"font-size: 12pt; ">We have =
completed the WG last call for=A0Dynamic Hostname Exchange Mechanism for =
OSPF and version=A0draft-ietf-ospf-dynamic-hostname-03.txt addresses a =
couple minor comments. It is the desire of the WG that the document be =
published as a standards track document. Here is an html link for your =
convenience.<o:p></o:p></span></font></div></div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; =
"><o:p>=A0</o:p></span></font></div></div><div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"1" color=3D"#0020de" face=3D"Courier New"><span =
style=3D"font-size: 9pt; font-family: 'Courier New'; color: rgb(0, 32, =
222); "><a =
href=3D"http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-hostna=
me-03.txt" style=3D"color: blue; text-decoration: underline; =
">http://www.ietf.org/internet-drafts/draft-ietf-ospf-dynamic-hostname-03.=
txt</a></span></font><font size=3D"1" face=3D"Courier New"><span =
style=3D"font-size: 9pt; font-family: 'Courier New'; =
">.</span></font><o:p></o:p></div></div><div><div style=3D"margin-top: =
0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman'; "><font size=3D"3" =
face=3D"Times New Roman"><span style=3D"font-size: 12pt; =
"><o:p>=A0</o:p></span></font></div></div></div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; =
">Thanks,<o:p></o:p></span></font></div></div><div><div =
style=3D"margin-top: 0in; margin-right: 0in; margin-left: 0in; =
margin-bottom: 0.0001pt; font-size: 12pt; font-family: 'Times New =
Roman'; "><font size=3D"3" face=3D"Times New Roman"><span =
style=3D"font-size: 12pt; ">Acee and =
Abhay<o:p></o:p></span></font></div></div><div><div style=3D"margin-top: =
0in; margin-right: 0in; margin-left: 0in; margin-bottom: 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman'; "><font size=3D"3" =
face=3D"Times New Roman"><span style=3D"font-size: 12pt; =
"><o:p>=A0</o:p></span></font></div></div></div></span></blockquote></div>=
<br></div></body></html>=

--Apple-Mail-16-637837605--

--Apple-Mail-15-637837605--

From manav@alcatel-lucent.com  Tue Apr 14 21:28:14 2009
Return-Path: <manav@alcatel-lucent.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 5AA433A6896 for <ospf@core3.amsl.com>; Tue, 14 Apr 2009 21:28:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.949
X-Spam-Level: 
X-Spam-Status: No, score=-3.949 tagged_above=-999 required=5 tests=[AWL=-2.300, BAYES_00=-2.599, HELO_EQ_FR=0.35, J_CHICKENPOX_21=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r0cO1VGttf+d for <ospf@core3.amsl.com>; Tue, 14 Apr 2009 21:28:13 -0700 (PDT)
Received: from smail6.alcatel.fr (smail6.alcatel.fr [64.208.49.42]) by core3.amsl.com (Postfix) with ESMTP id 677663A6820 for <ospf@ietf.org>; Tue, 14 Apr 2009 21:28:12 -0700 (PDT)
Received: from FRMRSSXCHHUB03.dc-m.alcatel-lucent.com (FRMRSSXCHHUB03.dc-m.alcatel-lucent.com [135.120.45.63]) by smail6.alcatel.fr (8.13.8/8.13.8/ICT) with ESMTP id n3F4SxTs031753 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT); Wed, 15 Apr 2009 06:28:59 +0200
Received: from INBANSXCHHUB02.in.alcatel-lucent.com (135.250.12.35) by FRMRSSXCHHUB03.dc-m.alcatel-lucent.com (135.120.45.63) with Microsoft SMTP Server (TLS) id 8.1.340.0; Wed, 15 Apr 2009 06:28:59 +0200
Received: from INBANSXCHMBSA1.in.alcatel-lucent.com ([135.250.12.53]) by INBANSXCHHUB02.in.alcatel-lucent.com ([135.250.12.35]) with mapi; Wed, 15 Apr 2009 09:58:53 +0530
From: "Bhatia, Manav (Manav)" <manav@alcatel-lucent.com>
To: Richard Graveman <rfgraveman@gmail.com>, "acee@redback.com" <acee@redback.com>, "akr@cisco.com" <akr@cisco.com>
Date: Wed, 15 Apr 2009 09:58:52 +0530
Thread-Topic: [OSPF] OSPF HMAC-SHA Cryptographic Authentication
Thread-Index: Acm9Qr0WGh0KQeB4RWeTuOTP0B4+1gAPr9jA
Message-ID: <7C362EEF9C7896468B36C9B79200D835BB114778@INBANSXCHMBSA1.in.alcatel-lucent.com>
References: <45c8c21a0904141351p1a9c6d1at2ce527e77c96a6fa@mail.gmail.com>
In-Reply-To: <45c8c21a0904141351p1a9c6d1at2ce527e77c96a6fa@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 2.57 on 155.132.188.84
Cc: "ospf@ietf.org" <ospf@ietf.org>, "adrian.farrel@huawei.com" <adrian.farrel@huawei.com>
Subject: Re: [OSPF] OSPF HMAC-SHA Cryptographic Authentication
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Apr 2009 04:28:14 -0000

Hi Richard,

> The last argument is:
>=20
> > He [The customer] may feel cheated and may not be so happy,=20
> when he learns that there was no value add.
>=20
> Good. The document can then simply say that there is no security value
> in the choice. This is easy, isn't it?

Works for me!I can add some text to this effect in the Security Considerati=
ons if the chairs and ADs find that acceptable.

>=20
> Could the WG Chairs please declare consensus and ask the editor to set
> a date to get a new draft to WG LC?

Yes, I think its time we do that! The first version was posted in Jan 2007 =
and there has been very little change since then. It has been discussed in =
the WG list and everyone seems to be okay with what we're doing here.

A similar draft in ISIS WG got published as RFC 5310 some time back.

Cheers, Manav

>=20
> Richard Graveman
> =

From prvs=349b02846=acee@redback.com  Wed Apr 15 03:14:36 2009
Return-Path: <prvs=349b02846=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E08DE3A6AA8 for <ospf@core3.amsl.com>; Wed, 15 Apr 2009 03:14:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.405
X-Spam-Level: 
X-Spam-Status: No, score=-2.405 tagged_above=-999 required=5 tests=[AWL=0.194,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ps5-u08lo8g8 for <ospf@core3.amsl.com>; Wed, 15 Apr 2009 03:14:36 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id 4279A3A6917 for <ospf@ietf.org>; Wed, 15 Apr 2009 03:14:36 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.40,191,1239001200";  d="scan'208";a="953341"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 15 Apr 2009 03:15:46 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id AAC49EDD84; Wed, 15 Apr 2009 03:15:46 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 27616-07; Wed, 15 Apr 2009 03:15:46 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id 2758FEDD83; Wed, 15 Apr 2009 03:15:45 -0700 (PDT)
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <F2B06A1E-63E6-4B75-B257-9959AAF2C823@redback.com>
Content-Transfer-Encoding: 7bit
From: Acee Lindem <acee@redback.com>
Date: Wed, 15 Apr 2009 06:15:48 -0400
To: OSPF List <ospf@ietf.org>
X-Mailer: Apple Mail (2.753.1)
Subject: [OSPF] Advertising a Router's Local Addresses in OSPF TE Extensions - draft-ietf-ospf-te-node-addr-05.txt
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Apr 2009 10:14:51 -0000

As promised at the last two IETFs, we are now last calling the  
subject document. The Working Group Last Call will start today and  
end at 12:00 AM on April 30th, 2009. Please send any last call  
comments to this list.
Thanks,
Acee and Abhay 

From prvs=349b02846=acee@redback.com  Wed Apr 15 03:21:56 2009
Return-Path: <prvs=349b02846=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 582C43A693C for <ospf@core3.amsl.com>; Wed, 15 Apr 2009 03:21:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.414
X-Spam-Level: 
X-Spam-Status: No, score=-2.414 tagged_above=-999 required=5 tests=[AWL=0.185,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QstjMN-ykpZT for <ospf@core3.amsl.com>; Wed, 15 Apr 2009 03:21:55 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id 56BF63A6D8F for <ospf@ietf.org>; Wed, 15 Apr 2009 03:20:39 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.40,191,1239001200";  d="scan'208";a="953426"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 15 Apr 2009 03:21:51 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id 97638EDD84; Wed, 15 Apr 2009 03:21:51 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28395-07; Wed, 15 Apr 2009 03:21:51 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id 14368EDD83; Wed, 15 Apr 2009 03:21:50 -0700 (PDT)
In-Reply-To: <F2B06A1E-63E6-4B75-B257-9959AAF2C823@redback.com>
References: <F2B06A1E-63E6-4B75-B257-9959AAF2C823@redback.com>
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <2E1E1884-32FE-4CCB-AD5B-4D812ACF15DA@redback.com>
Content-Transfer-Encoding: 7bit
From: Acee Lindem <acee@redback.com>
Date: Wed, 15 Apr 2009 06:21:52 -0400
To: OSPF List <ospf@ietf.org>
X-Mailer: Apple Mail (2.753.1)
Subject: Re: [OSPF] Advertising a Router's Local Addresses in OSPF TE Extensions - draft-ietf-ospf-te-node-addr-05.txt
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Apr 2009 10:21:56 -0000

Actually, I rechecked my E-mail folder on this draft and we completed  
a WG last call on this one prior in early December, 2008. So, we need  
not WG last call it again. We will go ahead and pass it to the ADs  
for advancement. If you do have any further comments, please speak now.
Thanks,
Acee
On Apr 15, 2009, at 6:15 AM, Acee Lindem wrote:

> As promised at the last two IETFs, we are now last calling the  
> subject document. The Working Group Last Call will start today and  
> end at 12:00 AM on April 30th, 2009. Please send any last call  
> comments to this list.
> Thanks,
> Acee and Abhay_______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf


From prvs=349b02846=acee@redback.com  Wed Apr 15 16:24:29 2009
Return-Path: <prvs=349b02846=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7D6E73A6BCF for <ospf@core3.amsl.com>; Wed, 15 Apr 2009 16:24:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.119
X-Spam-Level: 
X-Spam-Status: No, score=-2.119 tagged_above=-999 required=5 tests=[AWL=-0.120, BAYES_00=-2.599, J_CHICKENPOX_21=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iMlxedGUIKGA for <ospf@core3.amsl.com>; Wed, 15 Apr 2009 16:24:28 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id BC9483A6BE0 for <ospf@ietf.org>; Wed, 15 Apr 2009 16:24:28 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.40,194,1239001200";  d="scan'208";a="970877"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 15 Apr 2009 16:25:41 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id 74AD6A263A7; Wed, 15 Apr 2009 16:25:41 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12656-09; Wed, 15 Apr 2009 16:25:41 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id 46875A263A2; Wed, 15 Apr 2009 16:25:40 -0700 (PDT)
In-Reply-To: <7C362EEF9C7896468B36C9B79200D835BB114778@INBANSXCHMBSA1.in.alcatel-lucent.com>
References: <45c8c21a0904141351p1a9c6d1at2ce527e77c96a6fa@mail.gmail.com> <7C362EEF9C7896468B36C9B79200D835BB114778@INBANSXCHMBSA1.in.alcatel-lucent.com>
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
Message-Id: <7833B56B-07B2-4419-B233-53E9A31DAB7E@redback.com>
Content-Transfer-Encoding: 7bit
From: Acee Lindem <acee@redback.com>
Date: Wed, 15 Apr 2009 19:25:42 -0400
To: "Bhatia, Manav (Manav)" <manav@alcatel-lucent.com>
X-Mailer: Apple Mail (2.753.1)
Cc: OSPF List <ospf@ietf.org>, Adrian Farrel <adrian.farrel@huawei.com>, Richard Graveman <rfgraveman@gmail.com>
Subject: Re: [OSPF] OSPF HMAC-SHA Cryptographic Authentication
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Apr 2009 23:24:29 -0000

In Minneapolis, Steve Blake presented Ran Atkinson's slides on the  
requirement to extend the HMAC-SHAx calculation to include a sequence  
of Apad bytes equal to the length of the digest (e.g., 20 bytes of  
Apad for HMAC-SHA1). Some of the main arguments were 1) customer  
preference 2) Consistency with ISIS and RIPv2 HMAC-SHAx (yes, I'm  
aware that it is not exactly the same case since OSPF doesn't have  
the HMAC-SHAx digest embedded in OSPF packet). At least in the room,  
the consensus was that this was a good idea. After the meeting, we  
had further discussions on this and I thought we were all ready to  
make the change and incorporate this into the WG document. I recall  
one issue was the number of authors but I believe we can handle that  
off list.

Hence, my read of the WG is that we just go forward with this  
decision rather than continuing with the debate.

Thanks,
Acee

On Apr 15, 2009, at 12:28 AM, Bhatia, Manav (Manav) wrote:

> Hi Richard,
>
>> The last argument is:
>>
>>> He [The customer] may feel cheated and may not be so happy,
>> when he learns that there was no value add.
>>
>> Good. The document can then simply say that there is no security  
>> value
>> in the choice. This is easy, isn't it?
>
> Works for me!I can add some text to this effect in the Security  
> Considerations if the chairs and ADs find that acceptable.
>
>>
>> Could the WG Chairs please declare consensus and ask the editor to  
>> set
>> a date to get a new draft to WG LC?
>
> Yes, I think its time we do that! The first version was posted in  
> Jan 2007 and there has been very little change since then. It has  
> been discussed in the WG list and everyone seems to be okay with  
> what we're doing here.
>
> A similar draft in ISIS WG got published as RFC 5310 some time back.
>
> Cheers, Manav
>
>>
>> Richard Graveman


From DJOYAL@nortel.com  Sun Apr 19 09:16:16 2009
Return-Path: <DJOYAL@nortel.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id F3A3D28C284 for <ospf@core3.amsl.com>; Sun, 19 Apr 2009 09:16:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.104
X-Spam-Level: 
X-Spam-Status: No, score=-4.104 tagged_above=-999 required=5 tests=[AWL=0.405,  BAYES_05=-1.11, HTML_MESSAGE=0.001, J_CHICKENPOX_56=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jTsAZWfDTFd3 for <ospf@core3.amsl.com>; Sun, 19 Apr 2009 09:16:15 -0700 (PDT)
Received: from zrtps0kp.nortel.com (zrtps0kp.nortel.com [47.140.192.56]) by core3.amsl.com (Postfix) with ESMTP id D2CDD28C272 for <ospf@ietf.org>; Sun, 19 Apr 2009 09:16:14 -0700 (PDT)
Received: from zrtphxm1.corp.nortel.com (zrtphxm1.corp.nortel.com [47.140.202.50]) by zrtps0kp.nortel.com (Switch-2.2.6/Switch-2.2.0) with ESMTP id n3JGHQp22213; Sun, 19 Apr 2009 16:17:26 GMT
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C9C10A.52D29720"
Date: Sun, 19 Apr 2009 12:17:24 -0400
Message-ID: <4B7DAC3FEFD35D4A96BDD0116990501413B25160@zrtphxm1.corp.nortel.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
thread-topic: Changes to OSPFv3 MIB I-D from MIB doctor review
thread-index: AcnBCNQbXz58ccuXRI2ExsnZCiy9FQ==
From: "Daniel Joyal" <djoyal@nortel.com>
To: <ospf@ietf.org>
Subject: [OSPF] Changes to OSPFv3 MIB I-D from MIB doctor review
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 19 Apr 2009 16:16:16 -0000

This is a multi-part message in MIME format.

------_=_NextPart_001_01C9C10A.52D29720
Content-Type: text/plain;
	charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

The following changes were made to draft-ietf-ospf-ospfv3-mib
between revision 12 and revision 14 based on comments
from the MIB doctor review.

1. Updated boilerplate to latest version.
2. Renamed ospfv3Compliance to ospfv3FullCompliance
    and added ospfv3ReadOnlyCompliance.
3. Expanded description of ospfv3CfgNbrTable
4. Move restrictions on InetAddress and InetAddressType
    to the Conformance Section.
5. Remove StorageType object from ospfv3HostTable.
6. Rename Ospfv3LsidTC to Ospfv3LsIdTC for
    consistency with other TCs.
7. Added DEFVAL clause to more writable objects.
8. Added more Reference clauses.
9. Changed ospfv3AreaNssaTranslatorStabInt to
    ospfv3AreaNssaTranslatorStabInterval.
10. Added reference to RFC 3413 for fine-grain
     control of notification enabling and disabling
     in description of ospfv3NotificationEnable object.
11. For objects with a syntax of TruthValue, added
     text in the Description clause to descibed what
     a value of true(1) means.
12. Changed objects with syntax of RowStatus to
     have RowStatus in the object name.
13. Changed ospfv3AdminStat to ospfv3AdminStatus.
14. Some object's syntax changed from signed integer
      to unsigned integer.
15. Removed last sentence in Description clause for
      ospfv3PacketSrc object.
16. Use DISPLAY-HINT of "d" rather than "d-0" throughout
      the MIB.
17. In graceful restart objects, changed "ExitRc" to
      "ExitReason".

-Dan

------_=_NextPart_001_01C9C10A.52D29720
Content-Type: text/html;
	charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
6.5.7654.12">
<TITLE>Changes to OSPFv3 MIB I-D from MIB doctor review</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=3D2 FACE=3D"Arial">The following changes were made to =
draft-ietf-ospf-ospfv3-mib</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">between revision 12 and revision 14 =
based on comments</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">from the MIB doctor review.</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">1. Updated boilerplate to latest =
version.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">2. Renamed ospfv3Compliance to =
ospfv3FullCompliance</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp; and added =
ospfv3ReadOnlyCompliance.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">3. Expanded description of =
ospfv3CfgNbrTable</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">4. Move restrictions on InetAddress =
and InetAddressType</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp; to the Conformance =
Section.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">5. Remove StorageType object from =
ospfv3HostTable.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">6. Rename Ospfv3LsidTC to Ospfv3LsIdTC =
for</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp; consistency with =
other TCs.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">7. Added DEFVAL clause to more =
writable objects.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">8. Added more Reference =
clauses.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">9. Changed =
ospfv3AreaNssaTranslatorStabInt to</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp; =
ospfv3AreaNssaTranslatorStabInterval.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">10. Added reference to RFC 3413 for =
fine-grain</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp; control of =
notification enabling and disabling</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp; in =
description of ospfv3NotificationEnable object.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">11. For objects with a syntax of =
TruthValue, added</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp; text in the =
Description clause to descibed what</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp; a value of =
true(1) means.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">12. Changed objects with syntax of =
RowStatus to</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp; have =
RowStatus in the object name.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">13. Changed ospfv3AdminStat to =
ospfv3AdminStatus.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">14. Some object's syntax changed from =
signed integer</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to =
unsigned integer.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">15. Removed last sentence in =
Description clause for</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
ospfv3PacketSrc object.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">16. Use DISPLAY-HINT of &quot;d&quot; =
rather than &quot;d-0&quot; throughout</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the =
MIB.</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">17. In graceful restart objects, =
changed &quot;ExitRc&quot; to</FONT>

<BR><FONT SIZE=3D2 FACE=3D"Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&quot;ExitReason&quot;.</FONT>
</P>

<P><FONT SIZE=3D2 FACE=3D"Arial">-Dan</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01C9C10A.52D29720--

From prvs=3548f8c5e=acee@redback.com  Mon Apr 20 05:57:33 2009
Return-Path: <prvs=3548f8c5e=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 81E983A6880 for <ospf@core3.amsl.com>; Mon, 20 Apr 2009 05:57:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.115
X-Spam-Level: 
X-Spam-Status: No, score=-2.115 tagged_above=-999 required=5 tests=[AWL=-0.117, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_56=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9LDZko62Olpv for <ospf@core3.amsl.com>; Mon, 20 Apr 2009 05:57:32 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id 9EE313A6359 for <ospf@ietf.org>; Mon, 20 Apr 2009 05:57:32 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.40,217,1239001200"; d="scan'208,217";a="1064310"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 20 Apr 2009 05:58:48 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id 60E452667F2; Mon, 20 Apr 2009 05:58:48 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29243-05; Mon, 20 Apr 2009 05:58:48 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id F03A42667F1; Mon, 20 Apr 2009 05:58:46 -0700 (PDT)
In-Reply-To: <4B7DAC3FEFD35D4A96BDD0116990501413B25160@zrtphxm1.corp.nortel.com>
References: <4B7DAC3FEFD35D4A96BDD0116990501413B25160@zrtphxm1.corp.nortel.com>
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: multipart/alternative; boundary=Apple-Mail-63--67876907
Message-Id: <21F35F03-53CB-4B0F-9397-685BC4BAB1D7@redback.com>
From: Acee Lindem <acee@redback.com>
Date: Mon, 20 Apr 2009 08:58:48 -0400
To: Daniel Joyal <djoyal@nortel.com>
X-Mailer: Apple Mail (2.753.1)
Cc: OSPF List <ospf@ietf.org>
Subject: Re: [OSPF] Changes to OSPFv3 MIB I-D from MIB doctor review
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 20 Apr 2009 12:57:46 -0000

--Apple-Mail-63--67876907
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=US-ASCII;
	delsp=yes;
	format=flowed

OSPF WG,
Dan has provided a list of changes to the OSPFv3 MIB during the MIB  
doctor review. Dave, Abhay, and I decided on a short review period  
for these changes before we move forward. Given the amount of work  
and review we've put into this document, we're going to be very  
careful as to what comments we accept. Please post any comments on  
the latest version (-14) to this list by Tuesday, April 28th, 2009.

Thanks Joan, Dan, and Vishwas for all the hard work during the MIB  
doctor review,
Acee

On Apr 19, 2009, at 12:17 PM, Daniel Joyal wrote:

> The following changes were made to draft-ietf-ospf-ospfv3-mib
> between revision 12 and revision 14 based on comments
> from the MIB doctor review.
>
> 1. Updated boilerplate to latest version.
> 2. Renamed ospfv3Compliance to ospfv3FullCompliance
>     and added ospfv3ReadOnlyCompliance.
> 3. Expanded description of ospfv3CfgNbrTable
> 4. Move restrictions on InetAddress and InetAddressType
>     to the Conformance Section.
> 5. Remove StorageType object from ospfv3HostTable.
> 6. Rename Ospfv3LsidTC to Ospfv3LsIdTC for
>     consistency with other TCs.
> 7. Added DEFVAL clause to more writable objects.
> 8. Added more Reference clauses.
> 9. Changed ospfv3AreaNssaTranslatorStabInt to
>     ospfv3AreaNssaTranslatorStabInterval.
> 10. Added reference to RFC 3413 for fine-grain
>      control of notification enabling and disabling
>      in description of ospfv3NotificationEnable object.
> 11. For objects with a syntax of TruthValue, added
>      text in the Description clause to descibed what
>      a value of true(1) means.
> 12. Changed objects with syntax of RowStatus to
>      have RowStatus in the object name.
> 13. Changed ospfv3AdminStat to ospfv3AdminStatus.
> 14. Some object's syntax changed from signed integer
>       to unsigned integer.
> 15. Removed last sentence in Description clause for
>       ospfv3PacketSrc object.
> 16. Use DISPLAY-HINT of "d" rather than "d-0" throughout
>       the MIB.
> 17. In graceful restart objects, changed "ExitRc" to
>       "ExitReason".
>
> -Dan
>


--Apple-Mail-63--67876907
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">
<div>OSPF WG,=A0</div><div>Dan has provided a list of changes to the =
OSPFv3 MIB during the MIB doctor review. Dave, Abhay, and I decided on a =
short review period for these changes before we move forward. Given the =
amount of work and review we've put into this document, we're going to =
be very careful as to what comments we accept. Please post any comments =
on the latest version (-14) to this list by Tuesday, April 28th, =
2009.=A0</div><div><br></div>Thanks Joan, Dan, and Vishwas for all the =
hard work during the MIB doctor review,<div>Acee=A0<div><br><div><div>On =
Apr 19, 2009, at 12:17 PM, Daniel Joyal wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite">  <!-- =
Converted from text/rtf format --><p><font size=3D"2" face=3D"Arial">The =
following changes were made to draft-ietf-ospf-ospfv3-mib</font> =
<br><font size=3D"2" face=3D"Arial">between revision 12 and revision 14 =
based on comments</font> <br><font size=3D"2" face=3D"Arial">from the =
MIB doctor review.</font> </p><p><font size=3D"2" face=3D"Arial">1. =
Updated boilerplate to latest version.</font> <br><font size=3D"2" =
face=3D"Arial">2. Renamed ospfv3Compliance to =
ospfv3FullCompliance</font> <br><font size=3D"2" face=3D"Arial">=A0=A0=A0 =
and added ospfv3ReadOnlyCompliance.</font> <br><font size=3D"2" =
face=3D"Arial">3. Expanded description of ospfv3CfgNbrTable</font> =
<br><font size=3D"2" face=3D"Arial">4. Move restrictions on InetAddress =
and InetAddressType</font> <br><font size=3D"2" face=3D"Arial">=A0=A0=A0 =
to the Conformance Section.</font> <br><font size=3D"2" face=3D"Arial">5. =
Remove StorageType object from ospfv3HostTable.</font> <br><font =
size=3D"2" face=3D"Arial">6. Rename Ospfv3LsidTC to Ospfv3LsIdTC =
for</font> <br><font size=3D"2" face=3D"Arial">=A0=A0=A0 consistency =
with other TCs.</font> <br><font size=3D"2" face=3D"Arial">7. Added =
DEFVAL clause to more writable objects.</font> <br><font size=3D"2" =
face=3D"Arial">8. Added more Reference clauses.</font> <br><font =
size=3D"2" face=3D"Arial">9. Changed ospfv3AreaNssaTranslatorStabInt =
to</font> <br><font size=3D"2" face=3D"Arial">=A0=A0=A0 =
ospfv3AreaNssaTranslatorStabInterval.</font> <br><font size=3D"2" =
face=3D"Arial">10. Added reference to RFC 3413 for fine-grain</font> =
<br><font size=3D"2" face=3D"Arial">=A0=A0=A0=A0 control of notification =
enabling and disabling</font> <br><font size=3D"2" face=3D"Arial">=A0=A0=A0=
=A0 in description of ospfv3NotificationEnable object.</font> <br><font =
size=3D"2" face=3D"Arial">11. For objects with a syntax of TruthValue, =
added</font> <br><font size=3D"2" face=3D"Arial">=A0=A0=A0=A0 text in =
the Description clause to descibed what</font> <br><font size=3D"2" =
face=3D"Arial">=A0=A0=A0=A0 a value of true(1) means.</font> <br><font =
size=3D"2" face=3D"Arial">12. Changed objects with syntax of RowStatus =
to</font> <br><font size=3D"2" face=3D"Arial">=A0=A0=A0=A0 have =
RowStatus in the object name.</font> <br><font size=3D"2" =
face=3D"Arial">13. Changed ospfv3AdminStat to ospfv3AdminStatus.</font> =
<br><font size=3D"2" face=3D"Arial">14. Some object's syntax changed =
from signed integer</font> <br><font size=3D"2" face=3D"Arial">=A0=A0=A0=A0=
=A0 to unsigned integer.</font> <br><font size=3D"2" face=3D"Arial">15. =
Removed last sentence in Description clause for</font> <br><font =
size=3D"2" face=3D"Arial">=A0=A0=A0=A0=A0 ospfv3PacketSrc object.</font> =
<br><font size=3D"2" face=3D"Arial">16. Use DISPLAY-HINT of "d" rather =
than "d-0" throughout</font> <br><font size=3D"2" face=3D"Arial">=A0=A0=A0=
=A0=A0 the MIB.</font> <br><font size=3D"2" face=3D"Arial">17. In =
graceful restart objects, changed "ExitRc" to</font> <br><font size=3D"2" =
face=3D"Arial">=A0=A0=A0=A0=A0 "ExitReason".</font> </p><p><font =
size=3D"2" face=3D"Arial">-Dan</font> </p>  =
</blockquote></div><br></div></div></body></html>=

--Apple-Mail-63--67876907--

From erblichs@earthlink.net  Mon Apr 20 19:09:04 2009
Return-Path: <erblichs@earthlink.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7ACCB3A6832 for <ospf@core3.amsl.com>; Mon, 20 Apr 2009 19:09:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.609
X-Spam-Level: 
X-Spam-Status: No, score=-0.609 tagged_above=-999 required=5 tests=[AWL=-1.990, BAYES_05=-1.11, FRT_ESTABLISH2=2.492]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vBFaA-eLCCiG for <ospf@core3.amsl.com>; Mon, 20 Apr 2009 19:08:58 -0700 (PDT)
Received: from elasmtp-kukur.atl.sa.earthlink.net (elasmtp-kukur.atl.sa.earthlink.net [209.86.89.65]) by core3.amsl.com (Postfix) with ESMTP id F372E3A6AB7 for <ospf@ietf.org>; Mon, 20 Apr 2009 19:08:57 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net; b=JmDQA/QJ++hm3sSlrZgyIReoM9kPl2ay0kvgMYDDeguVnr3Zeukq+5TVpLeu/nVy; h=Received:Message-Id:From:To:Content-Type:Content-Transfer-Encoding:Mime-Version:Subject:Date:X-Mailer:X-ELNK-Trace:X-Originating-IP;
Received: from [98.234.127.54] (helo=[10.0.1.4]) by elasmtp-kukur.atl.sa.earthlink.net with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.67) (envelope-from <erblichs@earthlink.net>) id 1Lw5R7-0002tM-Rj for ospf@ietf.org; Mon, 20 Apr 2009 22:10:14 -0400
Message-Id: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net>
From: Mitchell Erblich <erblichs@earthlink.net>
To: ospf@ietf.org
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (Apple Message framework v930.3)
Date: Mon, 20 Apr 2009 19:10:12 -0700
X-Mailer: Apple Mail (2.930.3)
X-ELNK-Trace: 074f60c55517ea841aa676d7e74259b7b3291a7d08dfec798d8b4b685cf8e863e524678866d95322350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 98.234.127.54
Subject: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 21 Apr 2009 02:09:04 -0000

Group,

		General thoughts...

		After a conversation about OSPF's standard database exchange and how  
inefficient it
		is when two routers have large LSDBs and them almost being the same,  
we concluded
		that the use of Checksums might significantly decrease the amount of  
overhead and
		achieve faster convergence.

			Moy first (I think) suggested the LSDB checksum support to identify  
identical
			LSDBs.  Sometime later the MIB supported the ospfExternLsaChksumSum,
			ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.

			Thus, why not support the ability to have OSPF routers first exchange
			checksums with LSA counts. If the LSDBs have more than XYZ entries
			in their LSDBs, then the counts which are above specific thresholds  
then
			support the checksum on each X count of LSA type. Only the groups
			with non-matching Checksums would then go thru database exchange.

			Thus, before database exchange, support some form of triple that
			as routers have almost the same LSDBs,   the checksum exchange
			 would remove unnecessary LSA header exchange.

			This, IMO, would also be a big win if say a DRother was adjacent,  
lost
			adjacency, and re-exstablished it a short time later while keeping a
			past snapshot. It could remove its own originated LSAs and compare
			checksums..

			In this scenario, within BMA areas, I think only DR / DRother and  
BDR/ DRother
			need to be making this Checksum exchange..

			Wouldn't the exchange of this data benefit each router receiving the
			information and allow both routers to know the number of LSAs to
			be possibly exchanged?
			
			Yes, a new capability would probably have to be added.


			So, the first question is whether the checksums are unique enough  
with a
			count and type to determine whether that section of the LSDB matches
			between two routers?

			And then what savings would normally exist in this hybrid database  
exchange
			and is it worth the effort?
			

		Mitchell Erblich

		

			
		

From asmirnov@cisco.com  Tue Apr 21 10:28:30 2009
Return-Path: <asmirnov@cisco.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BAB1C3A6B2D for <ospf@core3.amsl.com>; Tue, 21 Apr 2009 10:28:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.107
X-Spam-Level: 
X-Spam-Status: No, score=-0.107 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FRT_ESTABLISH2=2.492]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UcnWQV85y88x for <ospf@core3.amsl.com>; Tue, 21 Apr 2009 10:28:30 -0700 (PDT)
Received: from av-tac-bru.cisco.com (odd-brew.cisco.com [144.254.15.119]) by core3.amsl.com (Postfix) with ESMTP id A2EAE3A69CF for <ospf@ietf.org>; Tue, 21 Apr 2009 10:28:29 -0700 (PDT)
X-TACSUNS: Virus Scanned
Received: from strange-brew.cisco.com (localhost.cisco.com [127.0.0.1]) by av-tac-bru.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id n3LHThc3020627; Tue, 21 Apr 2009 19:29:43 +0200 (CEST)
Received: from [144.254.14.196] (dhcp-peg2-vl21-144-254-14-196.cisco.com [144.254.14.196]) by strange-brew.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id n3LHTg3p020428; Tue, 21 Apr 2009 19:29:43 +0200 (CEST)
Message-ID: <49EE0286.9070903@cisco.com>
Date: Tue, 21 Apr 2009 19:29:42 +0200
From: Anton Smirnov <asmirnov@cisco.com>
Organization: Cisco Systems, Inc.
User-Agent: Thunderbird 2.0.0.19 (X11/20081227)
MIME-Version: 1.0
To: Mitchell Erblich <erblichs@earthlink.net>
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net>
In-Reply-To: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: ospf@ietf.org
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 21 Apr 2009 17:28:30 -0000

   Mitchell,
   LSDBs may be very close but they are seldom EXACTLY the same. The
thing is that change in adjacency triggers LSA [re]build, so depending
on timing router and/or network LSAs may change by the time adjacency
restores.
   Also, in moderately sized modern OSPF network there is constant
background noise of LSAs being refreshed. So again, chances that
refreshed LSA arrived to one side but not another while adjacency is
down are relatively high.
   These considerations make precomputed checksums over large number of
LSAs rather bad for the purpose.
   If you want to explore venue of checksumming database exchange then I
recommend to look for more flexible approach giving routers possibility
to choose range of LSAs to compute checksum over. For example, if both
routers support the checksum exchange then router sending DBD could
specify the first, the last LSA and value of some kind of hash of LSA
headers between them (LSAs in LSDB can be viewed as ordered sequence as
per RFC 5243). In this way router preparing DBD packet may place start
and end points of checksumming to avoid including into the range LSAs
with ages around 0 and MAXAGE (because these are LSAs which are less
likely to match between routers). So database exchange will consist of
series of single LSA headers (the 'old' way) and large LSA sequences.

Anton



Mitchell Erblich wrote:
> Group,
> 
>         General thoughts...
> 
>         After a conversation about OSPF's standard database exchange and
> how inefficient it
>         is when two routers have large LSDBs and them almost being the
> same, we concluded
>         that the use of Checksums might significantly decrease the
> amount of overhead and
>         achieve faster convergence.
> 
>             Moy first (I think) suggested the LSDB checksum support to
> identify identical
>             LSDBs.  Sometime later the MIB supported the
> ospfExternLsaChksumSum,
>             ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.
> 
>             Thus, why not support the ability to have OSPF routers first
> exchange
>             checksums with LSA counts. If the LSDBs have more than XYZ
> entries
>             in their LSDBs, then the counts which are above specific
> thresholds then
>             support the checksum on each X count of LSA type. Only the
> groups
>             with non-matching Checksums would then go thru database
> exchange.
> 
>             Thus, before database exchange, support some form of triple
> that
>             as routers have almost the same LSDBs,   the checksum exchange
>              would remove unnecessary LSA header exchange.
> 
>             This, IMO, would also be a big win if say a DRother was
> adjacent, lost
>             adjacency, and re-exstablished it a short time later while
> keeping a
>             past snapshot. It could remove its own originated LSAs and
> compare
>             checksums..
> 
>             In this scenario, within BMA areas, I think only DR /
> DRother and BDR/ DRother
>             need to be making this Checksum exchange..
> 
>             Wouldn't the exchange of this data benefit each router
> receiving the
>             information and allow both routers to know the number of
> LSAs to
>             be possibly exchanged?
>            
>             Yes, a new capability would probably have to be added.
> 
> 
>             So, the first question is whether the checksums are unique
> enough with a
>             count and type to determine whether that section of the LSDB
> matches
>             between two routers?
> 
>             And then what savings would normally exist in this hybrid
> database exchange
>             and is it worth the effort?
>            
> 
>         Mitchell Erblich
> 
>        
> 
>            
>        
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf

From pranjalchakravarty@yahoo.co.in  Wed Apr 22 22:11:43 2009
Return-Path: <pranjalchakravarty@yahoo.co.in>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id F03B33A68CD for <ospf@core3.amsl.com>; Wed, 22 Apr 2009 22:11:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level: 
X-Spam-Status: No, score=x tagged_above=-999 required=5 tests=[]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XjbskPMgPzRj for <ospf@core3.amsl.com>; Wed, 22 Apr 2009 22:11:42 -0700 (PDT)
Received: from web8401.mail.in.yahoo.com (web8401.mail.in.yahoo.com [202.43.219.149]) by core3.amsl.com (Postfix) with SMTP id 101433A68B2 for <ospf@ietf.org>; Wed, 22 Apr 2009 22:11:39 -0700 (PDT)
Received: (qmail 970 invoked by uid 60001); 23 Apr 2009 05:12:56 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.in; s=s1024; t=1240463576; bh=tvppcgx2UnIEt1Us/JJxBB71fLfF2d5Byc/pizIfJig=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=pJyRvnz6963FBXgtlb+/SFRnK5EDOSTq4dNc4qqVoMEw25+mHPqrd63RFxnd898rqyyIhlzOvf989Rgs2z2mngTiuMSe/XtM2qkDvKt8he6eBfYQEDqembWGz1J1/hSnqGj97cwoQS9RuJQARBd5SsSmQxJKDcUxhOKcekJym58=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.co.in; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:MIME-Version:Content-Type; b=zAtwlxinbErYLtUfCoMxjAMqX1lFbwno5lGZHQlfRuYa3kY8H2ijsu3kzMXg9t1HSx1BZc1MmcaRwUSeMkiiSRrlX1DQjHySIHIx9cez24HwnrfvVOQYZ+pvlLh0Ums4ouHEQ7pPM0cPHKuvjuGc6PAfmt6EtBYImu1dDH3o1RE=;
Message-ID: <243380.97846.qm@web8401.mail.in.yahoo.com>
X-YMail-OSG: SuYqOWMVM1mHcOpM6QI0yHFpq9RYSwXcxAFrpCfPxLjanBZb5HIvRuNCtrmRstV91hvgL0jyze57muQeTGr1aq2RIhcXNgQcQ822Bnr.pI17mpL3msJgASLqTlA994tKTKo2IFYTstC35HV3UTgp_iWGrlLsdk8OtNOxw6s3mlou14D.fKzE1vcdLD.yXWjQaw1FiI_Z
Received: from [210.94.41.89] by web8401.mail.in.yahoo.com via HTTP; Thu, 23 Apr 2009 10:42:56 IST
X-Mailer: YahooMailClassic/5.2.19 YahooMailWebService/0.7.289.1
Date: Thu, 23 Apr 2009 10:42:56 +0530 (IST)
From: Pranjal Chakravarty <pranjalchakravarty@yahoo.co.in>
To: ospf@ietf.org
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="0-793066149-1240463576=:97846"
Subject: [OSPF] OSPF Multi Process ECMP Prblem
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 23 Apr 2009 05:11:43 -0000

--0-793066149-1240463576=:97846
Content-Type: multipart/alternative; boundary="0-711202833-1240463576=:97846"

--0-711202833-1240463576=:97846
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

Dear all,
=A0
I have one doubt regarding OSPF Multi-Process.
=A0
R1-------R2-------R3
=A0
In Router R1 there is a static route 10.1.1.0/24 ,I have redistribute stati=
c into ospf in R1,OSPF Process is 100
=A0
In Router R3 the same static route is there ,i have redistribute static int=
o ospf in Router R3 also.OSPF Process is 200
=A0
In Router R2 ,there is two process router ospf 100 and router ospf 200,
Now when we do show ip route there should have=A0seen two next hop showing =
for the route 10.1.1.0/24 because it is learnt from both R1 and R3 via OSPF=
.
But in actualy only one route is showing .
=A0
My question is why it is not giving ECMP for the route though it is learnt =
from two different ospf process.
=A0
I am attaching one diagram and configuration for reference.
=A0
Also i would be delighted if someone points to some useful link about multi=
-procees ospf.
=A0
Regards
Pranjal=0A=0A=0A      Own a website.Get an unlimited package.Pay next to no=
thing.*Go to http://in.business.yahoo.com/
--0-711202833-1240463576=:97846
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

<table cellspacing=3D"0" cellpadding=3D"0" border=3D"0" ><tr><td valign=3D"=
top" style=3D"font: inherit;"><DIV>Dear all,</DIV>
<DIV>&nbsp;</DIV>
<DIV>I have one doubt regarding OSPF Multi-Process.</DIV>
<DIV>&nbsp;</DIV>
<DIV>R1-------R2-------R3</DIV>
<DIV>&nbsp;</DIV>
<DIV>In Router R1 there is a static route 10.1.1.0/24 ,I have redistribute =
static into ospf in R1,OSPF Process is 100</DIV>
<DIV>&nbsp;</DIV>
<DIV>In Router R3 the same static route is there ,i have redistribute stati=
c into ospf in Router R3 also.OSPF Process is 200</DIV>
<DIV>&nbsp;</DIV>
<DIV>In Router R2 ,there is two process router ospf 100 and router ospf 200=
,</DIV>
<DIV>Now when we do show ip route there should have&nbsp;seen two next hop =
showing for the route 10.1.1.0/24 because it is learnt from both R1 and R3 =
via OSPF.</DIV>
<DIV>But in actualy only one route is showing .</DIV>
<DIV>&nbsp;</DIV>
<DIV>My question is why it is not giving ECMP for the route though it is le=
arnt from two different ospf process.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I am attaching one diagram and configuration for reference.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Also i would be delighted if someone points to some useful link about =
multi-procees ospf.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Regards</DIV>
<DIV>Pranjal</DIV></td></tr></table><br>=0A=0A=0A      <!--6--><hr size=3D1=
></hr> Own a website.Get an unlimited package.Pay next to nothing.*<a href=
=3D"http://in.rd.yahoo.com/tagline_ysb_website/*http://in.business.yahoo.co=
m/"> Click here!.</a>
--0-711202833-1240463576=:97846--
--0-793066149-1240463576=:97846
Content-Type: application/octet-stream; name=OSPF
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="OSPF Multi Process ECMP problem.vsd"

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAAF
AAAAAgAAAAAAAAAAEAAABQAAAAEAAAD+////AAAAAAMAAAAHAAAACAAAAFsB
AADVAQAA////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///////////////////////9/////v//////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////1IAbwBvAHQAIABF
AG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAWAAUA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAA/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
/////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////
////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAUgBvAG8AdAAgAEUAbgB0AHIAeQAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYABQD//////////wIAAAATGgIA
AAAAAMAAAAAAAABGAAAAAAAAAAAAAAAAUDA6/tDDyQEGAAAAQAAAAAAAAABW
AGkAcwBpAG8ARABvAGMAdQBtAGUAbgB0AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHAACAf////8EAAAA/////wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANYBAACweAAAAAAAAAUAUwB1AG0A
bQBhAHIAeQBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAoAAIBAQAAAAMAAAD/////AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAXAEAAIDwAAAAAAAABQBEAG8AYwB1AG0AZQBu
AHQAUwB1AG0AbQBhAHIAeQBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAA
AAAAADgAAgH///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAJAAAARKICAAAAAAD//////////wQAAAD9/////v////7/
///+/////f////3///8KAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAA
ABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAA
HQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAo
AAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMA
AAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAA
AD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAA
SgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABV
AAAAVgAAAFcAAABYAAAAWQAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAA
AABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAA
AGwAAABtAAAAbgAAAG8AAABwAAAAcQAAAHIAAABzAAAAdAAAAHUAAAB2AAAA
dwAAAHgAAAB5AAAAegAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAgAAAAFYAaQBz
AGkAbwBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAiAAIA////////////////AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////
////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA/v//////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///////////////////////////////////////+/wAABAACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AIEAAACCAAAAgwAAAIQAAACFAAAAhgAAAIcAAACIAAAAiQAAAIoAAACLAAAA
jAAAAI0AAACOAAAAjwAAAJAAAACRAAAAkgAAAJMAAACUAAAAlQAAAJYAAACX
AAAAmAAAAJkAAACaAAAAmwAAAJwAAACdAAAAngAAAJ8AAACgAAAAoQAAAKIA
AACjAAAApAAAAKUAAACmAAAApwAAAKgAAACpAAAAqgAAAKsAAACsAAAArQAA
AK4AAACvAAAAsAAAALEAAACyAAAAswAAALQAAAC1AAAAtgAAALcAAAC4AAAA
uQAAALoAAAC7AAAAvAAAAL0AAAC+AAAAvwAAAMAAAADBAAAAwgAAAMMAAADE
AAAAxQAAAMYAAADHAAAAyAAAAMkAAADKAAAAywAAAMwAAADNAAAAzgAAAM8A
AADQAAAA0QAAANIAAADTAAAA1AAAANUAAADWAAAA1wAAANgAAADZAAAA2gAA
ANsAAADcAAAA3QAAAN4AAADfAAAA4AAAAOEAAADiAAAA4wAAAOQAAADlAAAA
5gAAAOcAAADoAAAA6QAAAOoAAADrAAAA7AAAAO0AAADuAAAA7wAAAPAAAADx
AAAA8gAAAPMAAAD0AAAA9QAAAPYAAAD3AAAA+AAAAPkAAAD6AAAA+wAAAPwA
AAD9AAAA/gAAAP8AAAAAAQAAAQEAAAIBAAADAQAABAEAAAUBAAAGAQAABwEA
AAgBAAAJAQAACgEAAAsBAAAMAQAADQEAAA4BAAAPAQAAEAEAABEBAAASAQAA
EwEAABQBAAAVAQAAFgEAABcBAAAYAQAAGQEAABoBAAAbAQAAHAEAAB0BAAAe
AQAAHwEAACABAAAhAQAAIgEAACMBAAAkAQAAJQEAACYBAAAnAQAAKAEAACkB
AAAqAQAAKwEAACwBAAAtAQAALgEAAC8BAAAwAQAAMQEAADIBAAAzAQAANAEA
ADUBAAA2AQAANwEAADgBAAA5AQAAOgEAADsBAAA8AQAAPQEAAD4BAAA/AQAA
QAEAAEEBAABCAQAAQwEAAEQBAABFAQAARgEAAEcBAABIAQAASQEAAEoBAABL
AQAATAEAAE0BAABOAQAATwEAAFABAABRAQAAUgEAAFMBAABUAQAAVQEAAFYB
AABXAQAAWAEAAFkBAABaAQAA/v////3///9dAQAAXgEAAF8BAABgAQAAYQEA
AGIBAABjAQAAZAEAAGUBAABmAQAAZwEAAGgBAABpAQAAagEAAGsBAABsAQAA
bQEAAG4BAABvAQAAcAEAAHEBAAByAQAAcwEAAHQBAAB1AQAAdgEAAHcBAAB4
AQAAeQEAAHoBAAB7AQAAfAEAAH0BAAB+AQAAfwEAAIABAAD+/wAABAACAAAA
AAAAAAAAAAAAAAAAAAACAAAAAtXN1ZwuGxCTlwgAKyz5rkQAAAAF1c3VnC4b
EJOXCAArLPmuJAEAAOAAAAAHAAAAAQAAAEAAAAAAAACASAAAAA4AAABQAAAA
DwAAAFwAAAACAAAAbAAAAAwAAAB4AAAADQAAALAAAAACAAAAtQMAABMAAAAJ
BAAAHgAAAAEAAAAAAAAAHgAAAAgAAABTQU1TVU5HAB4AAAABAAAAAAAAAAwQ
AAAEAAAAHgAAAAYAAABQYWdlcwADAAAAAQAAAB4AAAAIAAAATWFzdGVycwAD
AAAAAgAAAAAAHhAAAAMAAAAIAAAAUGFnZS0xAAAIAAAAUm91dGVyAAAMAAAA
V1dXIENsdXN0ZXIAIKECAAYAAAAAAAAAOAAAAAEAAACMAAAAAAAAgJQAAAAC
AAAAnAAAAAMAAACoAAAABAAAALQAAAADAAAABAAAABAAAABfVlBJRF9QUkVW
SUVXUwA/AwAAABgAAABfVlBJRF9BTFRFUk5BVEVOQU1FUwBBdz8CAAAAEAAA
AF9QSURfTElOS0JBU0UAmT8CAAAAtQMAABMAAAAJBAAAQQAAAAQAAAAAAAAA
HgAAAAEAAAAAAAAADBAAAAIAAAADAAAAAAAAAEcAAABUoAIA/////w4AAAAB
AAAAbAAAAOX///+UAAAAPAMAACMDAAAAAAAAAAAAAKVUAABzbQAAIEVNRgAA
AQBMoAIAdgkAAAgAAAAAAAAAAAAAAAAAAAAABQAAAAQAAFIBAAAOAQAAAAAA
AAAAAAAAAAAAUCgFALAeBABGAAAALAAAACAAAABFTUYrAUABABwAAAAQAAAA
ARDA2wEAAAB4AAAAeAAAAEYAAACUNgAAiDYAAEVNRiswQAIAEAAAAAQAAAAA
AIA/H0AEAAwAAAAAAAAAHkABAAwAAAAAAAAAHUAAABQAAAAIAAAAAQAAACUE
AAAdQAAAFAAAAAgAAAACAAAAJQQAACFABwAMAAAAAAAAACVAAAAQAAAABAAA
AAAAAAAsQAAAJAAAABgAAADOjdM9AAAAgAAAAIAxHHs9oL6hQ53YukMIQAAF
yDUAALw1AAABEMDbAgAAAAMAAACsNQAAAQAAAGwAAAABAAAAAQAAANoAAACB
AAAAAAAAAAAAAAChFgAAaQ0AACBFTUYAAAEArDUAAPoAAAAGAAAAAAAAAAAA
AAAAAAAAAAUAAAAEAABSAQAADgEAAAAAAAAAAAAAAAAAAFAoBQCwHgQARgAA
AEwXAAA+FwAAR0RJQwEAAIAAAwAArZ+w8wAAAAAmFwAAAQAJAAADkwsAAAYA
hgEAAAAABQAAAAwCaA2gFgUAAAAMAmgNoBYHAAAAEAQBAAEAAQABAAMAAAAe
AAQAAAAEAQ0ABwAAAPwCAQAAAAAAAAAEAAAALQEAAAkAAAD6AgAAAAAAAAAA
AAAiAAQAAAAtAQEACQAAAPoCBgAeAAAAAAAAACIABAAAAC0BAgAEAAAALQEA
AAcAAAD8AgAAv7+/AAAABAAAAC0BAwAEAAAABgEBAAYBAAAkA4EAjxb3A4sW
xAOAFpEDbhZfA1UWLgM0Fv0CDhbOAuAVnwKtFXICcxVGAjMVGgLuFPEBoxTI
AVMUoQH9E3sBoxNXAUQTNAHgEhMBdxLzAAoS1gCZEboAJRGgAKwQiAAwEHIA
sA9eAC0PTACoDjwAHw4vAJQNIwAGDRsAdgwUAOMLEABPCw8AuwoQACgKFACY
CRsACgkjAH8ILwD2BzwAcQdMAO4GXgBuBnIA8gWIAHkFoAAFBboAlATWACcE
8wC+AxMBWgM0AfsCVwGhAnsBSwKhAfsByAGwAfEBawEaAisBRgLxAHICvgCf
ApAAzgJqAP0CSQAuAzAAXwMeAJEDEwDEAw8A9wMTACoEHgBdBDAAjwRJAMAE
agDxBJAAIAW+AE8F8QB8BSsBqAVrAdQFsAH9BfsBJgZLAk0GoQJzBvsClwZa
A7oGvgPbBicE+waUBBgHBQU0B3kFTgfyBWYHbgZ8B+4GkAdxB6IH9geyB38I
vwcKCcsHmAnTBygK2ge7Ct4HTwvfB+ML3gd2DNoHBg3TB5QNywcfDr8HqA6y
By0PogewD5AHMBB8B6wQZgclEU4HmRE0BwoSGAd3EvsG4BLbBkQTugajE5cG
/RNzBlMUTQajFCYG7hT9BTMV1AVzFagFrRV8BeAVTwUOFiAFNBbxBFUWwARu
Fo8EgBZdBIsWKgSPFvcDBAAAAC0BAAAEAAAA8AEDAAQAAAAEAQ0ABgEAACUD
gQCPFvcDixbEA4AWkQNuFl8DVRYuAzQW/QIOFs4C4BWfAq0VcgJzFUYCMxUa
Au4U8QGjFMgBUxShAf0TewGjE1cBRBM0AeASEwF3EvMAChLWAJkRugAlEaAA
rBCIADAQcgCwD14ALQ9MAKgOPAAfDi8AlA0jAAYNGwB2DBQA4wsQAE8LDwC7
ChAAKAoUAJgJGwAKCSMAfwgvAPYHPABxB0wA7gZeAG4GcgDyBYgAeQWgAAUF
ugCUBNYAJwTzAL4DEwFaAzQB+wJXAaECewFLAqEB+wHIAbAB8QFrARoCKwFG
AvEAcgK+AJ8CkADOAmoA/QJJAC4DMABfAx4AkQMTAMQDDwD3AxMAKgQeAF0E
MACPBEkAwARqAPEEkAAgBb4ATwXxAHwFKwGoBWsB1AWwAf0F+wEmBksCTQah
AnMG+wKXBloDuga+A9sGJwT7BpQEGAcFBTQHeQVOB/IFZgduBnwH7gaQB3EH
ogf2B7IHfwi/BwoJyweYCdMHKAraB7sK3gdPC98H4wveB3YM2gcGDdMHlA3L
Bx8OvweoDrIHLQ+iB7APkAcwEHwHrBBmByURTgeZETQHChIYB3cS+wbgEtsG
RBO6BqMTlwb9E3MGUxRNBqMUJgbuFP0FMxXUBXMVqAWtFXwF4BVPBQ4WIAU0
FvEEVRbABG4WjwSAFl0EixYqBI8W9wMEAAAABAENAAQAAAAtAQAABwAAAPwC
AAC/v78AAAAEAAAALQEDAAQAAAAGAQEAhgEAACQDwQCPFvcDixYqBIAWXQRu
Fo8EVBbABDQW8AQNFiAF4BVOBa0VewVzFagFMxXTBe4U/QWjFCUGUxRMBv0T
cgajE5YGQxO5Bt8S2gZ3EvoGChIYB5kRNAckEU4HrBBmBy8QfAewD5AHLQ+i
B6cOsgcfDr8Hkw3LBwUN0wd1DNoH4wveB08L3we7Ct4HKQraB5kJ0wcLCcsH
fwi/B/cHsgdxB6IH7gaQB28GfAfyBWYHegVOBwUFNAeUBBgHJwT6Br8D2gZb
A7kG+wKWBqECcgZLAkwG+wElBrAB/QVrAdMFKwGoBfEAewW+AE4FkQAgBWoA
8ARKAMAEMACPBB4AXQQTACoEDwD3Aw8A+wMPAAcEDwAaBA8AMwQPAFMEDwB4
BA8AowQPANIEDwAFBQ8APAUPAHYFDwCyBQ8A8AUPADAGDwBxBg8AswYPAPUG
DwA2Bw8AdgcPALQHDwDwBw8AKggPAGEIDwCUCA8AwwgPAO4IDwATCQ8AMwkP
AEwJDwBfCQ8AawkPAG8JEwCiCR4A1QkwAAcKSgA4CmoAaAqRAJgKvgDGCvEA
8worASALawFLC7ABdQv7AZ0LSwLEC6EC6gv7Ag4MWwMxDL8DUgwnBHIMlASQ
DAUFrAx6BcYM8gXeDG8G9AzuBggNcQcaDfcHKg1/CDcNCwlDDZkJSw0pClIN
uwpWDU8LVw3jC1YNdQxSDQUNSw2TDUMNHw43DacOKg0tDxoNsA8IDS8Q9Ays
EN4MJBHGDJkRrAwKEpAMdxJyDN8SUgxDEzEMoxMODP0T6gtTFMQLoxSdC+4U
dQszFUsLcxUgC60V8wrgFcYKDRaYCjQWaApUFjgKbhYHCoAW1QmLFqIJjxZv
CY8WawmPFl8JjxZMCY8WMwmPFhMJjxbuCI8WwwiPFpQIjxZhCI8WKgiPFvAH
jxa0B48WdgePFjYHjxb1Bo8WswaPFnEGjxYwBo8W8AWPFrIFjxZ2BY8WPAWP
FgUFjxbSBI8WowSPFngEjxZTBI8WMwSPFhoEjxYHBI8W+wOPFvcDBAAAAC0B
AAAEAAAA8AEDAAQAAAAEAQ0AhgEAACUDwQCPFvcDixYqBIAWXQRuFo8EVBbA
BDQW8AQNFiAF4BVOBa0VewVzFagFMxXTBe4U/QWjFCUGUxRMBv0TcgajE5YG
QxO5Bt8S2gZ3EvoGChIYB5kRNAckEU4HrBBmBy8QfAewD5AHLQ+iB6cOsgcf
Dr8Hkw3LBwUN0wd1DNoH4wveB08L3we7Ct4HKQraB5kJ0wcLCcsHfwi/B/cH
sgdxB6IH7gaQB28GfAfyBWYHegVOBwUFNAeUBBgHJwT6Br8D2gZbA7kG+wKW
BqECcgZLAkwG+wElBrAB/QVrAdMFKwGoBfEAewW+AE4FkQAgBWoA8ARKAMAE
MACPBB4AXQQTACoEDwD3Aw8A+wMPAAcEDwAaBA8AMwQPAFMEDwB4BA8AowQP
ANIEDwAFBQ8APAUPAHYFDwCyBQ8A8AUPADAGDwBxBg8AswYPAPUGDwA2Bw8A
dgcPALQHDwDwBw8AKggPAGEIDwCUCA8AwwgPAO4IDwATCQ8AMwkPAEwJDwBf
CQ8AawkPAG8JEwCiCR4A1QkwAAcKSgA4CmoAaAqRAJgKvgDGCvEA8worASAL
awFLC7ABdQv7AZ0LSwLEC6EC6gv7Ag4MWwMxDL8DUgwnBHIMlASQDAUFrAx6
BcYM8gXeDG8G9AzuBggNcQcaDfcHKg1/CDcNCwlDDZkJSw0pClINuwpWDU8L
Vw3jC1YNdQxSDQUNSw2TDUMNHw43DacOKg0tDxoNsA8IDS8Q9AysEN4MJBHG
DJkRrAwKEpAMdxJyDN8SUgxDEzEMoxMODP0T6gtTFMQLoxSdC+4UdQszFUsL
cxUgC60V8wrgFcYKDRaYCjQWaApUFjgKbhYHCoAW1QmLFqIJjxZvCY8WawmP
Fl8JjxZMCY8WMwmPFhMJjxbuCI8WwwiPFpQIjxZhCI8WKgiPFvAHjxa0B48W
dgePFjYHjxb1Bo8WswaPFnEGjxYwBo8W8AWPFrIFjxZ2BY8WPAWPFgUFjxbS
BI8WowSPFngEjxZTBI8WMwSPFhoEjxYHBI8W+wOPFvcDBAAAAAQBDQAJAAAA
+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
LQEFAAQAAADwAQMAFAAAACUDCADjEkUGOhHMBmENLQV8C7kFbAxgBDoRYAQj
D78E4xJFBgQAAAAEAQ0ACQAAAPoCBgAFAAAAAAAAACIABAAAAC0BAwAEAAAA
8AEFAAQAAAAtAQAABAAAAC0BBAAEAAAABgEBABQAAAAkAwgA4xJFBjoRzAZh
DS0FfAu5BWwMYAQ6EWAEIw+/BOMSRQYEAAAALQEAAAQAAAAEAQ0AFAAAACUD
CADjEkUGOhHMBmENLQV8C7kFbAxgBDoRYAQjD78E4xJFBgQAAAAEAQ0ABAAA
ACcB//8eAAAAJgYPADEAQ29weXJpZ2h0IKkgMTk5NiBNaWNyb3N5c3RlbXMg
RW5naW5lZXJpbmcgQ29tcGFueQAPAAAAJgYPABMAQWxsIFJpZ2h0cyBSZXNl
cnZlZAAEAAAA8AEBAAMAAAAAAAAAEQAAAAwAAAAIAAAACwAAABAAAADbAAAA
ggAAAAkAAAAQAAAA2wAAAIIAAAAJAAAAEAAAAKAWAABoDQAACQAAABAAAACg
FgAAaA0AACAAAAAYAAAAAQAAAAEAAAABAAAAAQAAACEAAAAIAAAAFAAAAAwA
AAANAAAAJQAAAAwAAAAFAACAJgAAABwAAAABAAAAAAAAAAAAAAAAAAAAAAAA
ACUAAAAMAAAAAQAAACYAAAAcAAAAAgAAAAYAAAAeAAAAAAAAAAAAAAAlAAAA
DAAAAAIAAAAlAAAADAAAAAUAAIAnAAAAGAAAAAMAAAAAAAAAv7+/AAAAAAAl
AAAADAAAAAMAAAATAAAADAAAAAEAAABWAAAAIAIAAAEAAAABAAAA2gAAAEwA
AACBAAAAjxb3A4sWxAOAFpEDbhZfA1UWLgM0Fv0CDhbOAuAVnwKtFXICcxVG
AjMVGgLuFPEBoxTIAVMUoQH9E3sBoxNXAUQTNAHgEhMBdxLzAAoS1gCZEboA
JRGgAKwQiAAwEHIAsA9eAC0PTACoDjwAHw4vAJQNIwAGDRsAdgwUAOMLEABP
Cw8AuwoQACgKFACYCRsACgkjAH8ILwD2BzwAcQdMAO4GXgBuBnIA8gWIAHkF
oAAFBboAlATWACcE8wC+AxMBWgM0AfsCVwGhAnsBSwKhAfsByAGwAfEBawEa
AisBRgLxAHICvgCfApAAzgJqAP0CSQAuAzAAXwMeAJEDEwDEAw8A9wMTACoE
HgBdBDAAjwRJAMAEagDxBJAAIAW+AE8F8QB8BSsBqAVrAdQFsAH9BfsBJgZL
Ak0GoQJzBvsClwZaA7oGvgPbBicE+waUBBgHBQU0B3kFTgfyBWYHbgZ8B+4G
kAdxB6IH9geyB38IvwcKCcsHmAnTBygK2ge7Ct4HTwvfB+ML3gd2DNoHBg3T
B5QNywcfDr8HqA6yBy0PogewD5AHMBB8B6wQZgclEU4HmRE0BwoSGAd3EvsG
4BLbBkQTugajE5cG/RNzBlMUTQajFCYG7hT9BTMV1AVzFagFrRV8BeAVTwUO
FiAFNBbxBFUWwARuFo8EgBZdBIsWKgSPFvcDJQAAAAwAAAAFAACAKAAAAAwA
AAADAAAAFAAAAAwAAAANAAAAVwAAACACAAABAAAAAQAAANoAAABMAAAAgQAA
AI8W9wOLFsQDgBaRA24WXwNVFi4DNBb9Ag4WzgLgFZ8CrRVyAnMVRgIzFRoC
7hTxAaMUyAFTFKEB/RN7AaMTVwFEEzQB4BITAXcS8wAKEtYAmRG6ACURoACs
EIgAMBByALAPXgAtD0wAqA48AB8OLwCUDSMABg0bAHYMFADjCxAATwsPALsK
EAAoChQAmAkbAAoJIwB/CC8A9gc8AHEHTADuBl4AbgZyAPIFiAB5BaAABQW6
AJQE1gAnBPMAvgMTAVoDNAH7AlcBoQJ7AUsCoQH7AcgBsAHxAWsBGgIrAUYC
8QByAr4AnwKQAM4CagD9AkkALgMwAF8DHgCRAxMAxAMPAPcDEwAqBB4AXQQw
AI8ESQDABGoA8QSQACAFvgBPBfEAfAUrAagFawHUBbAB/QX7ASYGSwJNBqEC
cwb7ApcGWgO6Br4D2wYnBPsGlAQYBwUFNAd5BU4H8gVmB24GfAfuBpAHcQei
B/YHsgd/CL8HCgnLB5gJ0wcoCtoHuwreB08L3wfjC94HdgzaBwYN0weUDcsH
Hw6/B6gOsgctD6IHsA+QBzAQfAesEGYHJRFOB5kRNAcKEhgHdxL7BuAS2wZE
E7oGoxOXBv0TcwZTFE0GoxQmBu4U/QUzFdQFcxWoBa0VfAXgFU8FDhYgBTQW
8QRVFsAEbhaPBIAWXQSLFioEjxb3AxQAAAAMAAAADQAAACUAAAAMAAAABQAA
gCcAAAAYAAAAAwAAAAAAAAC/v78AAAAAACUAAAAMAAAAAwAAABMAAAAMAAAA
AQAAAFYAAAAgAwAAAQAAACYAAADaAAAAgQAAAMEAAACPFvcDixYqBIAWXQRu
Fo8EVBbABDQW8AQNFiAF4BVOBa0VewVzFagFMxXTBe4U/QWjFCUGUxRMBv0T
cgajE5YGQxO5Bt8S2gZ3EvoGChIYB5kRNAckEU4HrBBmBy8QfAewD5AHLQ+i
B6cOsgcfDr8Hkw3LBwUN0wd1DNoH4wveB08L3we7Ct4HKQraB5kJ0wcLCcsH
fwi/B/cHsgdxB6IH7gaQB28GfAfyBWYHegVOBwUFNAeUBBgHJwT6Br8D2gZb
A7kG+wKWBqECcgZLAkwG+wElBrAB/QVrAdMFKwGoBfEAewW+AE4FkQAgBWoA
8ARKAMAEMACPBB4AXQQTACoEDwD3Aw8A+wMPAAcEDwAaBA8AMwQPAFMEDwB4
BA8AowQPANIEDwAFBQ8APAUPAHYFDwCyBQ8A8AUPADAGDwBxBg8AswYPAPUG
DwA2Bw8AdgcPALQHDwDwBw8AKggPAGEIDwCUCA8AwwgPAO4IDwATCQ8AMwkP
AEwJDwBfCQ8AawkPAG8JEwCiCR4A1QkwAAcKSgA4CmoAaAqRAJgKvgDGCvEA
8worASALawFLC7ABdQv7AZ0LSwLEC6EC6gv7Ag4MWwMxDL8DUgwnBHIMlASQ
DAUFrAx6BcYM8gXeDG8G9AzuBggNcQcaDfcHKg1/CDcNCwlDDZkJSw0pClIN
uwpWDU8LVw3jC1YNdQxSDQUNSw2TDUMNHw43DacOKg0tDxoNsA8IDS8Q9Ays
EN4MJBHGDJkRrAwKEpAMdxJyDN8SUgxDEzEMoxMODP0T6gtTFMQLoxSdC+4U
dQszFUsLcxUgC60V8wrgFcYKDRaYCjQWaApUFjgKbhYHCoAW1QmLFqIJjxZv
CY8WawmPFl8JjxZMCY8WMwmPFhMJjxbuCI8WwwiPFpQIjxZhCI8WKgiPFvAH
jxa0B48WdgePFjYHjxb1Bo8WswaPFnEGjxYwBo8W8AWPFrIFjxZ2BY8WPAWP
FgUFjxbSBI8WowSPFngEjxZTBI8WMwSPFhoEjxYHBI8W+wOPFvcDJQAAAAwA
AAAFAACAKAAAAAwAAAADAAAAFAAAAAwAAAANAAAAVwAAACADAAABAAAAJgAA
ANoAAACBAAAAwQAAAI8W9wOLFioEgBZdBG4WjwRUFsAENBbwBA0WIAXgFU4F
rRV7BXMVqAUzFdMF7hT9BaMUJQZTFEwG/RNyBqMTlgZDE7kG3xLaBncS+gYK
EhgHmRE0ByQRTgesEGYHLxB8B7APkActD6IHpw6yBx8OvweTDcsHBQ3TB3UM
2gfjC94HTwvfB7sK3gcpCtoHmQnTBwsJywd/CL8H9weyB3EHogfuBpAHbwZ8
B/IFZgd6BU4HBQU0B5QEGAcnBPoGvwPaBlsDuQb7ApYGoQJyBksCTAb7ASUG
sAH9BWsB0wUrAagF8QB7Bb4ATgWRACAFagDwBEoAwAQwAI8EHgBdBBMAKgQP
APcDDwD7Aw8ABwQPABoEDwAzBA8AUwQPAHgEDwCjBA8A0gQPAAUFDwA8BQ8A
dgUPALIFDwDwBQ8AMAYPAHEGDwCzBg8A9QYPADYHDwB2Bw8AtAcPAPAHDwAq
CA8AYQgPAJQIDwDDCA8A7ggPABMJDwAzCQ8ATAkPAF8JDwBrCQ8AbwkTAKIJ
HgDVCTAABwpKADgKagBoCpEAmAq+AMYK8QDzCisBIAtrAUsLsAF1C/sBnQtL
AsQLoQLqC/sCDgxbAzEMvwNSDCcEcgyUBJAMBQWsDHoFxgzyBd4Mbwb0DO4G
CA1xBxoN9wcqDX8INw0LCUMNmQlLDSkKUg27ClYNTwtXDeMLVg11DFINBQ1L
DZMNQw0fDjcNpw4qDS0PGg2wDwgNLxD0DKwQ3gwkEcYMmRGsDAoSkAx3EnIM
3xJSDEMTMQyjEw4M/RPqC1MUxAujFJ0L7hR1CzMVSwtzFSALrRXzCuAVxgoN
FpgKNBZoClQWOApuFgcKgBbVCYsWogmPFm8JjxZrCY8WXwmPFkwJjxYzCY8W
EwmPFu4IjxbDCI8WlAiPFmEIjxYqCI8W8AePFrQHjxZ2B48WNgePFvUGjxaz
Bo8WcQaPFjAGjxbwBY8WsgWPFnYFjxY8BY8WBQWPFtIEjxajBI8WeASPFlME
jxYzBI8WGgSPFgcEjxb7A48W9wMUAAAADAAAAA0AAAAmAAAAHAAAAAMAAAAG
AAAABQAAAAAAAAAAAAAAJQAAAAwAAAADAAAAKAAAAAwAAAACAAAAJQAAAAwA
AAAFAACAJwAAABgAAAACAAAAAAAAAAAAAAAAAAAAJQAAAAwAAAACAAAAEwAA
AAwAAAABAAAAVgAAADwAAABwAAAACwAAALgAAAAjAAAACAAAAJoLBwM5DY4D
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
AAAAAPvx6z4AAKJDAAC7QwQAAAAjAAAAIAAAAO8DkDwAAAAAAAAAAEP/jjwA
AKJDAAC7QyQAAAAkAAAA7wOQPAAAAAAAAAAAQ/+OPAAAokMAALtDBAAAACMA
AAAgAAAA7wOQPAAAAAAAAAAAQ/+OPAAAokMAALtDJAAAACQAAADvA5A8AAAA
AAAAAABD/448AACiQwAAu0MEAAAAIwAAACAAAADvA5A8AAAAAAAAAABD/448
AACiQwAAu0MkAAAAJAAAAO8DkDwAAAAAAAAAAEP/jjwAAKJDAAC7QwQAAAAh
AAAACAAAABQAAAAMAAAADQAAACUAAAAMAAAABQAAgCYAAAAcAAAAAgAAAAAA
AAAAAAAAAAAAAAAAAAAlAAAADAAAAAIAAAAmAAAAHAAAAAMAAAAGAAAAHgAA
AAAAAAAAAAAAJQAAAAwAAAADAAAAJQAAAAwAAAAFAACAJwAAABgAAAAEAAAA
AAAAAL+/vwAAAAAAJQAAAAwAAAAEAAAAEwAAAAwAAAABAAAAVgAAACACAABE
AQAAdgEAAKoBAACaAQAAgQAAAI8W9wOLFsQDgBaRA24WXwNVFi4DNBb9Ag4W
zgLgFZ8CrRVyAnMVRgIzFRoC7hTxAaMUyAFTFKEB/RN7AaMTVwFEEzQB4BIT
AXcS8wAKEtYAmRG6ACURoACsEIgAMBByALAPXgAtD0wAqA48AB8OLwCUDSMA
Bg0bAHYMFADjCxAATwsPALsKEAAoChQAmAkbAAoJIwB/CC8A9gc8AHEHTADu
Bl4AbgZyAPIFiAB5BaAABQW6AJQE1gAnBPMAvgMTAVoDNAH7AlcBoQJ7AUsC
oQH7AcgBsAHxAWsBGgIrAUYC8QByAr4AnwKQAM4CagD9AkkALgMwAF8DHgCR
AxMAxAMPAPcDEwAqBB4AXQQwAI8ESQDABGoA8QSQACAFvgBPBfEAfAUrAagF
awHUBbAB/QX7ASYGSwJNBqECcwb7ApcGWgO6Br4D2wYnBPsGlAQYBwUFNAd5
BU4H8gVmB24GfAfuBpAHcQeiB/YHsgd/CL8HCgnLB5gJ0wcoCtoHuwreB08L
3wfjC94HdgzaBwYN0weUDcsHHw6/B6gOsgctD6IHsA+QBzAQfAesEGYHJRFO
B5kRNAcKEhgHdxL7BuAS2wZEE7oGoxOXBv0TcwZTFE0GoxQmBu4U/QUzFdQF
cxWoBa0VfAXgFU8FDhYgBTQW8QRVFsAEbhaPBIAWXQSLFioEjxb3AyUAAAAM
AAAABQAAgCgAAAAMAAAABAAAABQAAAAMAAAADQAAAFcAAAAgAgAARAEAAHYB
AACqAQAAmgEAAIEAAACPFvcDixbEA4AWkQNuFl8DVRYuAzQW/QIOFs4C4BWf
Aq0VcgJzFUYCMxUaAu4U8QGjFMgBUxShAf0TewGjE1cBRBM0AeASEwF3EvMA
ChLWAJkRugAlEaAArBCIADAQcgCwD14ALQ9MAKgOPAAfDi8AlA0jAAYNGwB2
DBQA4wsQAE8LDwC7ChAAKAoUAJgJGwAKCSMAfwgvAPYHPABxB0wA7gZeAG4G
cgDyBYgAeQWgAAUFugCUBNYAJwTzAL4DEwFaAzQB+wJXAaECewFLAqEB+wHI
AbAB8QFrARoCKwFGAvEAcgK+AJ8CkADOAmoA/QJJAC4DMABfAx4AkQMTAMQD
DwD3AxMAKgQeAF0EMACPBEkAwARqAPEEkAAgBb4ATwXxAHwFKwGoBWsB1AWw
Af0F+wEmBksCTQahAnMG+wKXBloDuga+A9sGJwT7BpQEGAcFBTQHeQVOB/IF
ZgduBnwH7gaQB3EHogf2B7IHfwi/BwoJyweYCdMHKAraB7sK3gdPC98H4wve
B3YM2gcGDdMHlA3LBx8OvweoDrIHLQ+iB7APkAcwEHwHrBBmByURTgeZETQH
ChIYB3cS+wbgEtsGRBO6BqMTlwb9E3MGUxRNBqMUJgbuFP0FMxXUBXMVqAWt
FXwF4BVPBQ4WIAU0FvEEVRbABG4WjwSAFl0EixYqBI8W9wMUAAAADAAAAA0A
AAAlAAAADAAAAAUAAIAnAAAAGAAAAAQAAAAAAAAAv7+/AAAAAAAlAAAADAAA
AAQAAAATAAAADAAAAAEAAABWAAAAIAMAAEQBAACHAQAAqgEAALIBAADBAAAA
jxb3A4sWKgSAFl0EbhaPBFQWwAQ0FvAEDRYgBeAVTgWtFXsFcxWoBTMV0wXu
FP0FoxQlBlMUTAb9E3IGoxOWBkMTuQbfEtoGdxL6BgoSGAeZETQHJBFOB6wQ
ZgcvEHwHsA+QBy0PogenDrIHHw6/B5MNywcFDdMHdQzaB+ML3gdPC98Huwre
BykK2geZCdMHCwnLB38Ivwf3B7IHcQeiB+4GkAdvBnwH8gVmB3oFTgcFBTQH
lAQYBycE+ga/A9oGWwO5BvsClgahAnIGSwJMBvsBJQawAf0FawHTBSsBqAXx
AHsFvgBOBZEAIAVqAPAESgDABDAAjwQeAF0EEwAqBA8A9wMPAPsDDwAHBA8A
GgQPADMEDwBTBA8AeAQPAKMEDwDSBA8ABQUPADwFDwB2BQ8AsgUPAPAFDwAw
Bg8AcQYPALMGDwD1Bg8ANgcPAHYHDwC0Bw8A8AcPACoIDwBhCA8AlAgPAMMI
DwDuCA8AEwkPADMJDwBMCQ8AXwkPAGsJDwBvCRMAogkeANUJMAAHCkoAOApq
AGgKkQCYCr4AxgrxAPMKKwEgC2sBSwuwAXUL+wGdC0sCxAuhAuoL+wIODFsD
MQy/A1IMJwRyDJQEkAwFBawMegXGDPIF3gxvBvQM7gYIDXEHGg33ByoNfwg3
DQsJQw2ZCUsNKQpSDbsKVg1PC1cN4wtWDXUMUg0FDUsNkw1DDR8ONw2nDioN
LQ8aDbAPCA0vEPQMrBDeDCQRxgyZEawMChKQDHcScgzfElIMQxMxDKMTDgz9
E+oLUxTEC6MUnQvuFHULMxVLC3MVIAutFfMK4BXGCg0WmAo0FmgKVBY4Cm4W
BwqAFtUJixaiCY8WbwmPFmsJjxZfCY8WTAmPFjMJjxYTCY8W7giPFsMIjxaU
CI8WYQiPFioIjxbwB48WtAePFnYHjxY2B48W9QaPFrMGjxZxBo8WMAaPFvAF
jxayBY8WdgWPFjwFjxYFBY8W0gSPFqMEjxZ4BI8WUwSPFjMEjxYaBI8WBwSP
FvsDjxb3AyUAAAAMAAAABQAAgCgAAAAMAAAABAAAABQAAAAMAAAADQAAAFcA
AAAgAwAARAEAAIcBAACqAQAAsgEAAMEAAACPFvcDixYqBIAWXQRuFo8EVBbA
BDQW8AQNFiAF4BVOBa0VewVzFagFMxXTBe4U/QWjFCUGUxRMBv0TcgajE5YG
QxO5Bt8S2gZ3EvoGChIYB5kRNAckEU4HrBBmBy8QfAewD5AHLQ+iB6cOsgcf
Dr8Hkw3LBwUN0wd1DNoH4wveB08L3we7Ct4HKQraB5kJ0wcLCcsHfwi/B/cH
sgdxB6IH7gaQB28GfAfyBWYHegVOBwUFNAeUBBgHJwT6Br8D2gZbA7kG+wKW
BqECcgZLAkwG+wElBrAB/QVrAdMFKwGoBfEAewW+AE4FkQAgBWoA8ARKAMAE
MACPBB4AXQQTACoEDwD3Aw8A+wMPAAcEDwAaBA8AMwQPAFMEDwB4BA8AowQP
ANIEDwAFBQ8APAUPAHYFDwCyBQ8A8AUPADAGDwBxBg8AswYPAPUGDwA2Bw8A
dgcPALQHDwDwBw8AKggPAGEIDwCUCA8AwwgPAO4IDwATCQ8AMwkPAEwJDwBf
CQ8AawkPAG8JEwCiCR4A1QkwAAcKSgA4CmoAaAqRAJgKvgDGCvEA8worASAL
awFLC7ABdQv7AZ0LSwLEC6EC6gv7Ag4MWwMxDL8DUgwnBHIMlASQDAUFrAx6
BcYM8gXeDG8G9AzuBggNcQcaDfcHKg1/CDcNCwlDDZkJSw0pClINuwpWDU8L
Vw3jC1YNdQxSDQUNSw2TDUMNHw43DacOKg0tDxoNsA8IDS8Q9AysEN4MJBHG
DJkRrAwKEpAMdxJyDN8SUgxDEzEMoxMODP0T6gtTFMQLoxSdC+4UdQszFUsL
cxUgC60V8wrgFcYKDRaYCjQWaApUFjgKbhYHCoAW1QmLFqIJjxZvCY8WawmP
Fl8JjxZMCY8WMwmPFhMJjxbuCI8WwwiPFpQIjxZhCI8WKgiPFvAHjxa0B48W
dgePFjYHjxb1Bo8WswaPFnEGjxYwBo8W8AWPFrIFjxZ2BY8WPAWPFgUFjxbS
BI8WowSPFngEjxZTBI8WMwSPFhoEjxYHBI8W+wOPFvcDFAAAAAwAAAANAAAA
JgAAABwAAAAEAAAABgAAAAUAAAAAAAAAAAAAACUAAAAMAAAABAAAACgAAAAM
AAAAAwAAACUAAAAMAAAABQAAgCcAAAAYAAAAAwAAAAAAAAAAAAAAAAAAACUA
AAAMAAAAAwAAABMAAAAMAAAAAQAAAFYAAAA8AAAAeAEAAHoBAACaAQAAhgEA
AAgAAACaCwcDOQ2OAzoR7wEBE3sCDBIYAWENGAFBD4EBmgsHAyUAAAAMAAAA
BQAAgBQAAAAMAAAADQAAACYAAAAcAAAABQAAAAAAAAAFAAAAAAAAAP///wAl
AAAADAAAAAUAAAAoAAAADAAAAAQAAABXAAAAPAAAAHgBAAB6AQAAmgEAAIYB
AAAIAAAAmgsHAzkNjgM6Ee8BARN7AgwSGAFhDRgBQQ+BAZoLBwMUAAAADAAA
AA0AAAAmAAAAHAAAAAQAAAAGAAAABQAAAAAAAAAAAAAAJQAAAAwAAAAEAAAA
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
AAOTCwAABgCGAQAAAAAFAAAADAJoDaAWBQAAAAwCaA2gFgcAAAAQBAEAAQAB
AAEAAwAAAB4ABAAAAAQBDQAHAAAA/AIBAAAAAAAAAAQAAAAtAQAACQAAAPoC
AAAAAAAAAAAAACIABAAAAC0BAQAJAAAA+gIGAB4AAAAAAAAAIgAEAAAALQEC
AAQAAAAtAQAABwAAAPwCAAC/v78AAAAEAAAALQEDAAQAAAAGAQEABgEAACQD
gQCPFvcDixbEA4AWkQNuFl8DVRYuAzQW/QIOFs4C4BWfAq0VcgJzFUYCMxUa
Au4U8QGjFMgBUxShAf0TewGjE1cBRBM0AeASEwF3EvMAChLWAJkRugAlEaAA
rBCIADAQcgCwD14ALQ9MAKgOPAAfDi8AlA0jAAYNGwB2DBQA4wsQAE8LDwC7
ChAAKAoUAJgJGwAKCSMAfwgvAPYHPABxB0wA7gZeAG4GcgDyBYgAeQWgAAUF
ugCUBNYAJwTzAL4DEwFaAzQB+wJXAaECewFLAqEB+wHIAbAB8QFrARoCKwFG
AvEAcgK+AJ8CkADOAmoA/QJJAC4DMABfAx4AkQMTAMQDDwD3AxMAKgQeAF0E
MACPBEkAwARqAPEEkAAgBb4ATwXxAHwFKwGoBWsB1AWwAf0F+wEmBksCTQah
AnMG+wKXBloDuga+A9sGJwT7BpQEGAcFBTQHeQVOB/IFZgduBnwH7gaQB3EH
ogf2B7IHfwi/BwoJyweYCdMHKAraB7sK3gdPC98H4wveB3YM2gcGDdMHlA3L
Bx8OvweoDrIHLQ+iB7APkAcwEHwHrBBmByURTgeZETQHChIYB3cS+wbgEtsG
RBO6BqMTlwb9E3MGUxRNBqMUJgbuFP0FMxXUBXMVqAWtFXwF4BVPBQ4WIAU0
FvEEVRbABG4WjwSAFl0EixYqBI8W9wMEAAAALQEAAAQAAADwAQMABAAAAAQB
DQAGAQAAJQOBAI8W9wOLFsQDgBaRA24WXwNVFi4DNBb9Ag4WzgLgFZ8CrRVy
AnMVRgIzFRoC7hTxAaMUyAFTFKEB/RN7AaMTVwFEEzQB4BITAXcS8wAKEtYA
mRG6ACURoACsEIgAMBByALAPXgAtD0wAqA48AB8OLwCUDSMABg0bAHYMFADj
CxAATwsPALsKEAAoChQAmAkbAAoJIwB/CC8A9gc8AHEHTADuBl4AbgZyAPIF
iAB5BaAABQW6AJQE1gAnBPMAvgMTAVoDNAH7AlcBoQJ7AUsCoQH7AcgBsAHx
AWsBGgIrAUYC8QByAr4AnwKQAM4CagD9AkkALgMwAF8DHgCRAxMAxAMPAPcD
EwAqBB4AXQQwAI8ESQDABGoA8QSQACAFvgBPBfEAfAUrAagFawHUBbAB/QX7
ASYGSwJNBqECcwb7ApcGWgO6Br4D2wYnBPsGlAQYBwUFNAd5BU4H8gVmB24G
fAfuBpAHcQeiB/YHsgd/CL8HCgnLB5gJ0wcoCtoHuwreB08L3wfjC94Hdgza
BwYN0weUDcsHHw6/B6gOsgctD6IHsA+QBzAQfAesEGYHJRFOB5kRNAcKEhgH
dxL7BuAS2wZEE7oGoxOXBv0TcwZTFE0GoxQmBu4U/QUzFdQFcxWoBa0VfAXg
FU8FDhYgBTQW8QRVFsAEbhaPBIAWXQSLFioEjxb3AwQAAAAEAQ0ABAAAAC0B
AAAHAAAA/AIAAL+/vwAAAAQAAAAtAQMABAAAAAYBAQCGAQAAJAPBAI8W9wOL
FioEgBZdBG4WjwRUFsAENBbwBA0WIAXgFU4FrRV7BXMVqAUzFdMF7hT9BaMU
JQZTFEwG/RNyBqMTlgZDE7kG3xLaBncS+gYKEhgHmRE0ByQRTgesEGYHLxB8
B7APkActD6IHpw6yBx8OvweTDcsHBQ3TB3UM2gfjC94HTwvfB7sK3gcpCtoH
mQnTBwsJywd/CL8H9weyB3EHogfuBpAHbwZ8B/IFZgd6BU4HBQU0B5QEGAcn
BPoGvwPaBlsDuQb7ApYGoQJyBksCTAb7ASUGsAH9BWsB0wUrAagF8QB7Bb4A
TgWRACAFagDwBEoAwAQwAI8EHgBdBBMAKgQPAPcDDwD7Aw8ABwQPABoEDwAz
BA8AUwQPAHgEDwCjBA8A0gQPAAUFDwA8BQ8AdgUPALIFDwDwBQ8AMAYPAHEG
DwCzBg8A9QYPADYHDwB2Bw8AtAcPAPAHDwAqCA8AYQgPAJQIDwDDCA8A7ggP
ABMJDwAzCQ8ATAkPAF8JDwBrCQ8AbwkTAKIJHgDVCTAABwpKADgKagBoCpEA
mAq+AMYK8QDzCisBIAtrAUsLsAF1C/sBnQtLAsQLoQLqC/sCDgxbAzEMvwNS
DCcEcgyUBJAMBQWsDHoFxgzyBd4Mbwb0DO4GCA1xBxoN9wcqDX8INw0LCUMN
mQlLDSkKUg27ClYNTwtXDeMLVg11DFINBQ1LDZMNQw0fDjcNpw4qDS0PGg2w
DwgNLxD0DKwQ3gwkEcYMmRGsDAoSkAx3EnIM3xJSDEMTMQyjEw4M/RPqC1MU
xAujFJ0L7hR1CzMVSwtzFSALrRXzCuAVxgoNFpgKNBZoClQWOApuFgcKgBbV
CYsWogmPFm8JjxZrCY8WXwmPFkwJjxYzCY8WEwmPFu4IjxbDCI8WlAiPFmEI
jxYqCI8W8AePFrQHjxZ2B48WNgePFvUGjxazBo8WcQaPFjAGjxbwBY8WsgWP
FnYFjxY8BY8WBQWPFtIEjxajBI8WeASPFlMEjxYzBI8WGgSPFgcEjxb7A48W
9wMEAAAALQEAAAQAAADwAQMABAAAAAQBDQCGAQAAJQPBAI8W9wOLFioEgBZd
BG4WjwRUFsAENBbwBA0WIAXgFU4FrRV7BXMVqAUzFdMF7hT9BaMUJQZTFEwG
/RNyBqMTlgZDE7kG3xLaBncS+gYKEhgHmRE0ByQRTgesEGYHLxB8B7APkAct
D6IHpw6yBx8OvweTDcsHBQ3TB3UM2gfjC94HTwvfB7sK3gcpCtoHmQnTBwsJ
ywd/CL8H9weyB3EHogfuBpAHbwZ8B/IFZgd6BU4HBQU0B5QEGAcnBPoGvwPa
BlsDuQb7ApYGoQJyBksCTAb7ASUGsAH9BWsB0wUrAagF8QB7Bb4ATgWRACAF
agDwBEoAwAQwAI8EHgBdBBMAKgQPAPcDDwD7Aw8ABwQPABoEDwAzBA8AUwQP
AHgEDwCjBA8A0gQPAAUFDwA8BQ8AdgUPALIFDwDwBQ8AMAYPAHEGDwCzBg8A
9QYPADYHDwB2Bw8AtAcPAPAHDwAqCA8AYQgPAJQIDwDDCA8A7ggPABMJDwAz
CQ8ATAkPAF8JDwBrCQ8AbwkTAKIJHgDVCTAABwpKADgKagBoCpEAmAq+AMYK
8QDzCisBIAtrAUsLsAF1C/sBnQtLAsQLoQLqC/sCDgxbAzEMvwNSDCcEcgyU
BJAMBQWsDHoFxgzyBd4Mbwb0DO4GCA1xBxoN9wcqDX8INw0LCUMNmQlLDSkK
Ug27ClYNTwtXDeMLVg11DFINBQ1LDZMNQw0fDjcNpw4qDS0PGg2wDwgNLxD0
DKwQ3gwkEcYMmRGsDAoSkAx3EnIM3xJSDEMTMQyjEw4M/RPqC1MUxAujFJ0L
7hR1CzMVSwtzFSALrRXzCuAVxgoNFpgKNBZoClQWOApuFgcKgBbVCYsWogmP
Fm8JjxZrCY8WXwmPFkwJjxYzCY8WEwmPFu4IjxbDCI8WlAiPFmEIjxYqCI8W
8AePFrQHjxZ2B48WNgePFvUGjxazBo8WcQaPFjAGjxbwBY8WsgWPFnYFjxY8
BY8WBQWPFtIEjxajBI8WeASPFlMEjxYzBI8WGgSPFgcEjxb7A48W9wMEAAAA
BAENAAkAAAD6AgYABQAAAAAAAAAiAAQAAAAtAQMABAAAAPABAgAEAAAALQEA
AAcAAAD8AgAAAAAAAAAABAAAAC0BAgAEAAAABgEBABQAAAAkAwgAmgsHAzkN
jgM6Ee8BARN7AgwSGAFhDRgBQQ+BAZoLBwMEAAAALQEAAAQAAAAEAQ0ACQAA
APoCAAAFAAAA////ACIABAAAAC0BBAAEAAAA8AEDABQAAAAlAwgAmgsHAzkN
jgM6Ee8BARN7AgwSGAFhDRgBQQ+BAZoLBwMEAAAABAENAAkAAAD6AgYABQAA
AAAAAAAiAAQAAAAtAQMABAAAAPABBAAEAAAALQEAAAQAAAAtAQIABAAAAAYB
AQAUAAAAJAMIAJoLBwM5DY4DOhHvAQETewIMEhgBYQ0YAUEPgQGaCwcDBAAA
AC0BAAAEAAAABAENAAkAAAD6AgAABQAAAP///wAiAAQAAAAtAQQABAAAAPAB
AwAUAAAAJQMIAJoLBwM5DY4DOhHvAQETewIMEhgBYQ0YAUEPgQGaCwcDBAAA
AAQBDQAJAAAA+gIGAAUAAAAAAAAAIgAEAAAALQEDAAQAAADwAQQABAAAAC0B
AAAEAAAALQECAAQAAAAGAQEAFAAAACQDCADhCoMETAn8A24FmwV/Aw8FeQSL
BkwJiwY6B/oF4QqDBAQAAAAtAQAABAAAAAQBDQAJAAAA+gIAAAUAAAD///8A
IgAEAAAALQEEAAQAAADwAQMAFAAAACUDCADhCoMETAn8A24FmwV/Aw8FeQSL
BkwJiwY6B/oF4QqDBAQAAAAEAQ0ACQAAAPoCBgAFAAAAAAAAACIABAAAAC0B
AwAEAAAA8AEEAAQAAAAtAQAABAAAAC0BAgAEAAAABgEBABQAAAAkAwgA4QqD
BEwJ/ANuBZsFfwMPBXkEiwZMCYsGOgf6BeEKgwQEAAAALQEAAAQAAAAEAQ0A
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
ChLWAJkRugAlEaAArBCIADAQcgCwD14ALQ9MAKgOPAAfDi8AlA0jAAYNGwB2
DBQA4wsQAE8LDwC7ChAAKAoUAJgJGwAKCSMAfwgvAPYHPABxB0wA7gZeAG4G
cgDyBYgAeQWgAAUFugCUBNYAJwTzAL4DEwFaAzQB+wJXAaECewFLAqEB+wHI
AbAB8QFrARoCKwFGAvEAcgK+AJ8CkADOAmoA/QJJAC4DMABfAx4AkQMTAMQD
DwD3AxMAKgQeAF0EMACPBEkAwARqAPEEkAAgBb4ATwXxAHwFKwGoBWsB1AWw
Af0F+wEmBksCTQahAnMG+wKXBloDuga+A9sGJwT7BpQEGAcFBTQHeQVOB/IF
ZgduBnwH7gaQB3EHogf2B7IHfwi/BwoJyweYCdMHKAraB7sK3gdPC98H4wve
B3YM2gcGDdMHlA3LBx8OvweoDrIHLQ+iB7APkAcwEHwHrBBmByURTgeZETQH
ChIYB3cS+wbgEtsGRBO6BqMTlwb9E3MGUxRNBqMUJgbuFP0FMxXUBXMVqAWt
FXwF4BVPBQ4WIAU0FvEEVRbABG4WjwSAFl0EixYqBI8W9wMlAAAADAAAAAUA
AIAoAAAADAAAAAMAAAAUAAAADAAAAA0AAABXAAAAIAIAAAEAAAABAAAA2gAA
AEwAAACBAAAAjxb3A4sWxAOAFpEDbhZfA1UWLgM0Fv0CDhbOAuAVnwKtFXIC
cxVGAjMVGgLuFPEBoxTIAVMUoQH9E3sBoxNXAUQTNAHgEhMBdxLzAAoS1gCZ
EboAJRGgAKwQiAAwEHIAsA9eAC0PTACoDjwAHw4vAJQNIwAGDRsAdgwUAOML
EABPCw8AuwoQACgKFACYCRsACgkjAH8ILwD2BzwAcQdMAO4GXgBuBnIA8gWI
AHkFoAAFBboAlATWACcE8wC+AxMBWgM0AfsCVwGhAnsBSwKhAfsByAGwAfEB
awEaAisBRgLxAHICvgCfApAAzgJqAP0CSQAuAzAAXwMeAJEDEwDEAw8A9wMT
ACoEHgBdBDAAjwRJAMAEagDxBJAAIAW+AE8F8QB8BSsBqAVrAdQFsAH9BfsB
JgZLAk0GoQJzBvsClwZaA7oGvgPbBicE+waUBBgHBQU0B3kFTgfyBWYHbgZ8
B+4GkAdxB6IH9geyB38IvwcKCcsHmAnTBygK2ge7Ct4HTwvfB+ML3gd2DNoH
Bg3TB5QNywcfDr8HqA6yBy0PogewD5AHMBB8B6wQZgclEU4HmRE0BwoSGAd3
EvsG4BLbBkQTugajE5cG/RNzBlMUTQajFCYG7hT9BTMV1AVzFagFrRV8BeAV
TwUOFiAFNBbxBFUWwARuFo8EgBZdBIsWKgSPFvcDFAAAAAwAAAANAAAAJQAA
AAwAAAAFAACAJwAAABgAAAADAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAADAAAA
EwAAAAwAAAABAAAAVgAAACADAAABAAAAJgAAANoAAACBAAAAwQAAAI8W9wOL
FioEgBZdBG4WjwRUFsAENBbwBA0WIAXgFU4FrRV7BXMVqAUzFdMF7hT9BaMU
JQZTFEwG/RNyBqMTlgZDE7kG3xLaBncS+gYKEhgHmRE0ByQRTgesEGYHLxB8
B7APkActD6IHpw6yBx8OvweTDcsHBQ3TB3UM2gfjC94HTwvfB7sK3gcpCtoH
mQnTBwsJywd/CL8H9weyB3EHogfuBpAHbwZ8B/IFZgd6BU4HBQU0B5QEGAcn
BPoGvwPaBlsDuQb7ApYGoQJyBksCTAb7ASUGsAH9BWsB0wUrAagF8QB7Bb4A
TgWRACAFagDwBEoAwAQwAI8EHgBdBBMAKgQPAPcDDwD7Aw8ABwQPABoEDwAz
BA8AUwQPAHgEDwCjBA8A0gQPAAUFDwA8BQ8AdgUPALIFDwDwBQ8AMAYPAHEG
DwCzBg8A9QYPADYHDwB2Bw8AtAcPAPAHDwAqCA8AYQgPAJQIDwDDCA8A7ggP
ABMJDwAzCQ8ATAkPAF8JDwBrCQ8AbwkTAKIJHgDVCTAABwpKADgKagBoCpEA
mAq+AMYK8QDzCisBIAtrAUsLsAF1C/sBnQtLAsQLoQLqC/sCDgxbAzEMvwNS
DCcEcgyUBJAMBQWsDHoFxgzyBd4Mbwb0DO4GCA1xBxoN9wcqDX8INw0LCUMN
mQlLDSkKUg27ClYNTwtXDeMLVg11DFINBQ1LDZMNQw0fDjcNpw4qDS0PGg2w
DwgNLxD0DKwQ3gwkEcYMmRGsDAoSkAx3EnIM3xJSDEMTMQyjEw4M/RPqC1MU
xAujFJ0L7hR1CzMVSwtzFSALrRXzCuAVxgoNFpgKNBZoClQWOApuFgcKgBbV
CYsWogmPFm8JjxZrCY8WXwmPFkwJjxYzCY8WEwmPFu4IjxbDCI8WlAiPFmEI
jxYqCI8W8AePFrQHjxZ2B48WNgePFvUGjxazBo8WcQaPFjAGjxbwBY8WsgWP
FnYFjxY8BY8WBQWPFtIEjxajBI8WeASPFlMEjxYzBI8WGgSPFgcEjxb7A48W
9wMlAAAADAAAAAUAAIAoAAAADAAAAAMAAAAUAAAADAAAAA0AAABXAAAAIAMA
AAEAAAAmAAAA2gAAAIEAAADBAAAAjxb3A4sWKgSAFl0EbhaPBFQWwAQ0FvAE
DRYgBeAVTgWtFXsFcxWoBTMV0wXuFP0FoxQlBlMUTAb9E3IGoxOWBkMTuQbf
EtoGdxL6BgoSGAeZETQHJBFOB6wQZgcvEHwHsA+QBy0PogenDrIHHw6/B5MN
ywcFDdMHdQzaB+ML3gdPC98HuwreBykK2geZCdMHCwnLB38Ivwf3B7IHcQei
B+4GkAdvBnwH8gVmB3oFTgcFBTQHlAQYBycE+ga/A9oGWwO5BvsClgahAnIG
SwJMBvsBJQawAf0FawHTBSsBqAXxAHsFvgBOBZEAIAVqAPAESgDABDAAjwQe
AF0EEwAqBA8A9wMPAPsDDwAHBA8AGgQPADMEDwBTBA8AeAQPAKMEDwDSBA8A
BQUPADwFDwB2BQ8AsgUPAPAFDwAwBg8AcQYPALMGDwD1Bg8ANgcPAHYHDwC0
Bw8A8AcPACoIDwBhCA8AlAgPAMMIDwDuCA8AEwkPADMJDwBMCQ8AXwkPAGsJ
DwBvCRMAogkeANUJMAAHCkoAOApqAGgKkQCYCr4AxgrxAPMKKwEgC2sBSwuw
AXUL+wGdC0sCxAuhAuoL+wIODFsDMQy/A1IMJwRyDJQEkAwFBawMegXGDPIF
3gxvBvQM7gYIDXEHGg33ByoNfwg3DQsJQw2ZCUsNKQpSDbsKVg1PC1cN4wtW
DXUMUg0FDUsNkw1DDR8ONw2nDioNLQ8aDbAPCA0vEPQMrBDeDCQRxgyZEawM
ChKQDHcScgzfElIMQxMxDKMTDgz9E+oLUxTEC6MUnQvuFHULMxVLC3MVIAut
FfMK4BXGCg0WmAo0FmgKVBY4Cm4WBwqAFtUJixaiCY8WbwmPFmsJjxZfCY8W
TAmPFjMJjxYTCY8W7giPFsMIjxaUCI8WYQiPFioIjxbwB48WtAePFnYHjxY2
B48W9QaPFrMGjxZxBo8WMAaPFvAFjxayBY8WdgWPFjwFjxYFBY8W0gSPFqME
jxZ4BI8WUwSPFjMEjxYaBI8WBwSPFvsDjxb3AxQAAAAMAAAADQAAACYAAAAc
AAAAAwAAAAYAAAAFAAAAAAAAAAAAAAAlAAAADAAAAAMAAAAoAAAADAAAAAIA
AAAlAAAADAAAAAUAAIAnAAAAGAAAAAIAAAAAAAAAAAAAAAAAAAAlAAAADAAA
AAIAAAATAAAADAAAAAEAAABWAAAAPAAAAHAAAAALAAAAuAAAACMAAAAIAAAA
mgsHAzkNjgM6Ee8BARN7AgwSGAFhDRgBQQ+BAZoLBwMlAAAADAAAAAUAAIAU
AAAADAAAAA0AAAAmAAAAHAAAAAQAAAAAAAAABQAAAAAAAAD///8AJQAAAAwA
AAAEAAAAKAAAAAwAAAADAAAAVwAAADwAAABwAAAACwAAALgAAAAiAAAACAAA
AJoLBwM5DY4DOhHvAQETewIMEhgBYQ0YAUEPgQGaCwcDFAAAAAwAAAANAAAA
JgAAABwAAAADAAAABgAAAAUAAAAAAAAAAAAAACUAAAAMAAAAAwAAACgAAAAM
AAAABAAAACUAAAAMAAAABQAAgCUAAAAMAAAAAgAAABMAAAAMAAAAAQAAAFYA
AAA8AAAAcAAAAAsAAAC4AAAAIwAAAAgAAACaCwcDOQ2OAzoR7wEBE3sCDBIY
AWENGAFBD4EBmgsHAyUAAAAMAAAABQAAgBQAAAAMAAAADQAAACYAAAAcAAAA
BAAAAAAAAAAFAAAAAAAAAP///wAlAAAADAAAAAQAAAAoAAAADAAAAAMAAABX
AAAAPAAAAHAAAAALAAAAuAAAACIAAAAIAAAAmgsHAzkNjgM6Ee8BARN7AgwS
GAFhDRgBQQ+BAZoLBwMUAAAADAAAAA0AAAAmAAAAHAAAAAMAAAAGAAAABQAA
AAAAAAAAAAAAJQAAAAwAAAADAAAAKAAAAAwAAAAEAAAAJQAAAAwAAAAFAACA
JQAAAAwAAAACAAAAEwAAAAwAAAABAAAAVgAAADwAAAAiAAAAJwAAAGkAAAA/
AAAACAAAAOEKgwRMCfwDbgWbBX8DDwV5BIsGTAmLBjoH+gXhCoMEJQAAAAwA
AAAFAACAFAAAAAwAAAANAAAAJgAAABwAAAAEAAAAAAAAAAUAAAAAAAAA////
ACUAAAAMAAAABAAAACgAAAAMAAAAAwAAAFcAAAA8AAAAIgAAACcAAABpAAAA
PwAAAAgAAADhCoMETAn8A24FmwV/Aw8FeQSLBkwJiwY6B/oF4QqDBBQAAAAM
AAAADQAAACYAAAAcAAAAAwAAAAYAAAAFAAAAAAAAAAAAAAAlAAAADAAAAAMA
AAAoAAAADAAAAAQAAAAlAAAADAAAAAUAAIAlAAAADAAAAAIAAAATAAAADAAA
AAEAAABWAAAAPAAAACIAAAAnAAAAaQAAAD8AAAAIAAAA4QqDBEwJ/ANuBZsF
fwMPBXkEiwZMCYsGOgf6BeEKgwQlAAAADAAAAAUAAIAUAAAADAAAAA0AAAAm
AAAAHAAAAAQAAAAAAAAABQAAAAAAAAD///8AJQAAAAwAAAAEAAAAKAAAAAwA
AAADAAAAVwAAADwAAAAiAAAAJwAAAGkAAAA/AAAACAAAAOEKgwRMCfwDbgWb
BX8DDwV5BIsGTAmLBjoH+gXhCoMEFAAAAAwAAAANAAAAJgAAABwAAAADAAAA
BgAAAAUAAAAAAAAAAAAAACUAAAAMAAAAAwAAACgAAAAMAAAABAAAACUAAAAM
AAAABQAAgCUAAAAMAAAAAgAAABMAAAAMAAAAAQAAAFYAAAA8AAAAJgAAAAoA
AABuAAAAIQAAAAgAAADjA4EBjAX6AI0JewJZCw0CXwprA68FawOjBwcD4wOB
ASUAAAAMAAAABQAAgBQAAAAMAAAADQAAACYAAAAcAAAABAAAAAAAAAAFAAAA
AAAAAP///wAlAAAADAAAAAQAAAAoAAAADAAAAAMAAABXAAAAPAAAACYAAAAJ
AAAAbgAAACEAAAAIAAAA4wOBAYwF+gCNCXsCWQsNAl8KawOvBWsDowcHA+MD
gQEUAAAADAAAAA0AAAAmAAAAHAAAAAMAAAAGAAAABQAAAAAAAAAAAAAAJQAA
AAwAAAADAAAAKAAAAAwAAAAEAAAAJQAAAAwAAAAFAACAJQAAAAwAAAACAAAA
EwAAAAwAAAABAAAAVgAAADwAAAAmAAAACgAAAG4AAAAhAAAACAAAAOMDgQGM
BfoAjQl7AlkLDQJfCmsDrwVrA6MHBwPjA4EBJQAAAAwAAAAFAACAFAAAAAwA
AAANAAAAJgAAABwAAAAEAAAAAAAAAAUAAAAAAAAA////ACUAAAAMAAAABAAA
ACgAAAAMAAAAAwAAAFcAAAA8AAAAJgAAAAkAAABuAAAAIQAAAAgAAADjA4EB
jAX6AI0JewJZCw0CXwprA68FawOjBwcD4wOBARQAAAAMAAAADQAAACYAAAAc
AAAAAwAAAAYAAAAFAAAAAAAAAAAAAAAlAAAADAAAAAMAAAAoAAAADAAAAAQA
AAAlAAAADAAAAAUAAIAlAAAADAAAAAIAAAATAAAADAAAAAEAAABWAAAAPAAA
AG4AAAApAAAAtQAAAEEAAAAIAAAAuxInBhwRrgY5DQ8FWQubBT8MOAQcETgE
AA+hBLsSJwYlAAAADAAAAAUAAIAUAAAADAAAAA0AAAAmAAAAHAAAAAQAAAAA
AAAABQAAAAAAAAD///8AJQAAAAwAAAAEAAAAKAAAAAwAAAADAAAAVwAAADwA
AABuAAAAKQAAALUAAABBAAAACAAAALsSJwYcEa4GOQ0PBVkLmwU/DDgEHBE4
BAAPoQS7EicGFAAAAAwAAAANAAAAJgAAABwAAAADAAAABgAAAAUAAAAAAAAA
AAAAACUAAAAMAAAAAwAAACgAAAAMAAAABAAAACUAAAAMAAAABQAAgCUAAAAM
AAAAAgAAABMAAAAMAAAAAQAAAFYAAAA8AAAAbgAAACkAAAC1AAAAQQAAAAgA
AAC7EicGHBGuBjkNDwVZC5sFPww4BBwROAQAD6EEuxInBiUAAAAMAAAABQAA
gBQAAAAMAAAADQAAACYAAAAcAAAABAAAAAAAAAAFAAAAAAAAAP///wAlAAAA
DAAAAAQAAAAoAAAADAAAAAMAAABXAAAAPAAAAG4AAAApAAAAtQAAAEEAAAAI
AAAAuxInBhwRrgY5DQ8FWQubBT8MOAQcETgEAA+hBLsSJwYUAAAADAAAAA0A
AAAmAAAAHAAAAAMAAAAGAAAABQAAAAAAAAAAAAAAJQAAAAwAAAADAAAAKAAA
AAwAAAAEAAAAJQAAAAwAAAAFAACAJwAAABgAAAAEAAAAAAAAAP///wAAAAAA
JQAAAAwAAAAEAAAAEwAAAAwAAAABAAAAVgAAADwAAAByAAAADAAAALkAAAAk
AAAACAAAAL0LJQNhDawDXRENAh8TmQIvEkABfw1AAX0PnwG9CyUDJQAAAAwA
AAAFAACAFAAAAAwAAAANAAAAJgAAABwAAAAFAAAAAAAAAAUAAAAAAAAA////
ACUAAAAMAAAABQAAACgAAAAMAAAAAwAAAFcAAAA8AAAAcgAAAAwAAAC5AAAA
JAAAAAgAAAC9CyUDYQ2sA10RDQIfE5kCLxJAAX8NQAF9D58BvQslAxQAAAAM
AAAADQAAACYAAAAcAAAAAwAAAAYAAAAFAAAAAAAAAAAAAAAlAAAADAAAAAMA
AAAoAAAADAAAAAUAAAAlAAAADAAAAAUAAIAlAAAADAAAAAQAAAATAAAADAAA
AAEAAABWAAAAPAAAAHIAAAAMAAAAuQAAACQAAAAIAAAAvQslA2ENrANdEQ0C
HxOZAi8SQAF/DUABfQ+fAb0LJQMlAAAADAAAAAUAAIAUAAAADAAAAA0AAABX
AAAAPAAAAHIAAAAMAAAAuQAAACQAAAAIAAAAvQslA2ENrANdEQ0CHxOZAi8S
QAF/DUABfQ+fAb0LJQMUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAlAAAADAAA
AAQAAAATAAAADAAAAAEAAABWAAAAPAAAACMAAAAoAAAAawAAAEEAAAAIAAAA
DguhBG8JGgSMBbkFogMtBZwErgZvCa4GXQcnBg4LoQQlAAAADAAAAAUAAIAU
AAAADAAAAA0AAAAmAAAAHAAAAAUAAAAAAAAABQAAAAAAAAD///8AJQAAAAwA
AAAFAAAAKAAAAAwAAAADAAAAVwAAADwAAAAjAAAAKAAAAGsAAABBAAAACAAA
AA4LoQRvCRoEjAW5BaIDLQWcBK4GbwmuBl0HJwYOC6EEFAAAAAwAAAANAAAA
JgAAABwAAAADAAAABgAAAAUAAAAAAAAAAAAAACUAAAAMAAAAAwAAACgAAAAM
AAAABQAAACUAAAAMAAAABQAAgCUAAAAMAAAABAAAABMAAAAMAAAAAQAAAFYA
AAA8AAAAIwAAACgAAABrAAAAQQAAAAgAAAAOC6EEbwkaBIwFuQWiAy0FnASu
Bm8JrgZdBycGDguhBCUAAAAMAAAABQAAgBQAAAAMAAAADQAAAFcAAAA8AAAA
IwAAACgAAABrAAAAQQAAAAgAAAAOC6EEbwkaBIwFuQWiAy0FnASuBm8JrgZd
BycGDguhBBQAAAAMAAAADQAAACUAAAAMAAAABQAAgCUAAAAMAAAABAAAABMA
AAAMAAAAAQAAAFYAAAA8AAAAKAAAAAsAAABvAAAAIwAAAAgAAAAaBJ8BrwUY
AbAJmQJ8CysCggqOA9wFjgPBByUDGgSfASUAAAAMAAAABQAAgBQAAAAMAAAA
DQAAACYAAAAcAAAABQAAAAAAAAAFAAAAAAAAAP///wAlAAAADAAAAAUAAAAo
AAAADAAAAAMAAABXAAAAPAAAACgAAAALAAAAbwAAACIAAAAIAAAAGgSfAa8F
GAGwCZkCfAsrAoIKjgPcBY4DwQclAxoEnwEUAAAADAAAAA0AAAAmAAAAHAAA
AAMAAAAGAAAABQAAAAAAAAAAAAAAJQAAAAwAAAADAAAAKAAAAAwAAAAFAAAA
JQAAAAwAAAAFAACAJQAAAAwAAAAEAAAAEwAAAAwAAAABAAAAVgAAADwAAAAo
AAAACwAAAG8AAAAjAAAACAAAABoEnwGvBRgBsAmZAnwLKwKCCo4D3AWOA8EH
JQMaBJ8BJQAAAAwAAAAFAACAFAAAAAwAAAANAAAAVwAAADwAAAAoAAAACwAA
AG8AAAAiAAAACAAAABoEnwGvBRgBsAmZAnwLKwKCCo4D3AWOA8EHJQMaBJ8B
FAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJQAAAAwAAAAEAAAAEwAAAAwAAAAB
AAAAVgAAADwAAABvAAAAKgAAALcAAABCAAAACAAAAOMSRQY6EcwGYQ0tBXwL
uQVsDGAEOhFgBCMPvwTjEkUGJQAAAAwAAAAFAACAFAAAAAwAAAANAAAAJgAA
ABwAAAAFAAAAAAAAAAUAAAAAAAAA////ACUAAAAMAAAABQAAACgAAAAMAAAA
AwAAAFcAAAA8AAAAbwAAACoAAAC3AAAAQgAAAAgAAADjEkUGOhHMBmENLQV8
C7kFbAxgBDoRYAQjD78E4xJFBhQAAAAMAAAADQAAACYAAAAcAAAAAwAAAAYA
AAAFAAAAAAAAAAAAAAAlAAAADAAAAAMAAAAoAAAADAAAAAUAAAAlAAAADAAA
AAUAAIAlAAAADAAAAAQAAAATAAAADAAAAAEAAABWAAAAPAAAAG8AAAAqAAAA
twAAAEIAAAAIAAAA4xJFBjoRzAZhDS0FfAu5BWwMYAQ6EWAEIw+/BOMSRQYl
AAAADAAAAAUAAIAUAAAADAAAAA0AAABXAAAAPAAAAG8AAAAqAAAAtwAAAEIA
AAAIAAAA4xJFBjoRzAZhDS0FfAu5BWwMYAQ6EWAEIw+/BOMSRQYUAAAADAAA
AA0AAAAiAAAADAAAAP////8oAAAADAAAAAEAAAAlAAAADAAAAAcAAIAlAAAA
DAAAAAAAAIAwAAAADAAAAA8AAIBLAAAAEAAAAAAAAAAFAAAAKAAAAAwAAAAC
AAAAKAAAAAwAAAADAAAAKAAAAAwAAAAEAAAADgAAABQAAAAAAAAAEAAAABQA
AAAaQAFALAAAACAAAAD/////AgAAAAAAAAAAAAAAP2FcQx8zA0MAAAAA6APo
AyEAAAAIAAAAYgAAAAwAAAABAAAAIQAAAAgAAAAhAAAACAAAAHMAAAAMAAAA
AAAAABwAAAAIAAAAJQAAAAwAAAAAAACAJQAAAAwAAAAHAACAJQAAAAwAAAAO
AACAMAAAAAwAAAAPAACAGQAAAAwAAAD///8AGAAAAAwAAAAAAAAAEgAAAAwA
AAACAAAAEwAAAAwAAAABAAAAFAAAAAwAAAANAAAAFQAAAAwAAAABAAAAFgAA
AAwAAAAAAAAADQAAABAAAAAAAAAAAAAAADoAAAAMAAAACgAAABsAAAAQAAAA
AAAAAAAAAAAjAAAAIAAAAIUN7j4AAAAAAAAAAPvx6z4AAAJDAAC7QyQAAAAk
AAAAhQ3uPgAAAAAAAAAA+/HrPgAAAkMAALtDBAAAAHMAAAAMAAAAAAAAAA0A
AAAQAAAAggAAAHYBAABSAAAAcAEAAAEAAAAUAAAACgAAAAAAAAAAAAAAkAEA
AAAAAIEHAgIiUwB5AHMAdABlAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAA
AAAAAAAAAEhl8XfcZPF3CQAAACEAigENAAAAlN8SAIU08nfQJGQDBBoh3tAk
ZAMmAIoBBBoh3gsAiAH//wEABAAAANzcEgCk3RIA0N0SABjukHxwBZF8////
/20FkXxamYB8AAAUAAAAAABtmYB8AAAQxZBIWQMgMPV3JQAAALBGFQAAABAA
sEYVAOTdEgCbKPJ3nMchALBGFQDQJGQDR0RJQwQaId4hAIoBCAAAAAAAEgBQ
S1kD+L9sA9B4GgATAAAA0HgaANB4GgD4v2wD+L9sAyjeEgDBEvJ30HgaABMA
AABQS1kD0HgaADjeEgBkdgAIAAAAACUAAAAMAAAAAQAAAEYAAAAoAAAAHAAA
AEdESUMCAAAAAAAAAAAAAADbAAAAggAAAAAAAAAjAAAAIAAAAIUN7j4AAAAA
AAAAAPvx6z4AAAJDAAC7QyQAAAAkAAAAhQ3uPgAAAAAAAAAA+/HrPgAAAkMA
ALtDBAAAACMAAAAgAAAAkaXLQgAAAAAAAAAAw6FvQgAAAkMAALtDJAAAACQA
AACRpctCAAAAAAAAAADDoW9CAAACQwAAu0MEAAAAIwAAACAAAACFDe4+AAAA
AAAAAAD78es+AAACQwAAu0MkAAAAJAAAAIUN7j4AAAAAAAAAAPvx6z4AAAJD
AAC7QwQAAAAjAAAAIAAAAO8DkDwAAAAAAAAAAEP/jjwAAAJDAAC7QyQAAAAk
AAAA7wOQPAAAAAAAAAAAQ/+OPAAAAkMAALtDBAAAACMAAAAgAAAA7wOQPAAA
AAAAAAAAQ/+OPAAAAkMAALtDJAAAACQAAADvA5A8AAAAAAAAAABD/448AAAC
QwAAu0MEAAAAIwAAACAAAADvA5A8AAAAAAAAAABD/448AAACQwAAu0MkAAAA
JAAAAO8DkDwAAAAAAAAAAEP/jjwAAAJDAAC7QwQAAAAhAAAACAAAABQAAAAM
AAAADQAAACUAAAAMAAAABQAAgCYAAAAcAAAABQAAAAAAAAAAAAAAAAAAAAAA
AAAlAAAADAAAAAUAAAAmAAAAHAAAAAQAAAAGAAAAHgAAAAAAAAAAAAAAJQAA
AAwAAAAEAAAAJQAAAAwAAAAFAACAJwAAABgAAAADAAAAAAAAAL+/vwAAAAAA
JQAAAAwAAAADAAAAEwAAAAwAAAABAAAAVgAAACACAACCAAAAdgEAAOgAAACa
AQAAgQAAAI8W9wOLFsQDgBaRA24WXwNVFi4DNBb9Ag4WzgLgFZ8CrRVyAnMV
RgIzFRoC7hTxAaMUyAFTFKEB/RN7AaMTVwFEEzQB4BITAXcS8wAKEtYAmRG6
ACURoACsEIgAMBByALAPXgAtD0wAqA48AB8OLwCUDSMABg0bAHYMFADjCxAA
TwsPALsKEAAoChQAmAkbAAoJIwB/CC8A9gc8AHEHTADuBl4AbgZyAPIFiAB5
BaAABQW6AJQE1gAnBPMAvgMTAVoDNAH7AlcBoQJ7AUsCoQH7AcgBsAHxAWsB
GgIrAUYC8QByAr4AnwKQAM4CagD9AkkALgMwAF8DHgCRAxMAxAMPAPcDEwAq
BB4AXQQwAI8ESQDABGoA8QSQACAFvgBPBfEAfAUrAagFawHUBbAB/QX7ASYG
SwJNBqECcwb7ApcGWgO6Br4D2wYnBPsGlAQYBwUFNAd5BU4H8gVmB24GfAfu
BpAHcQeiB/YHsgd/CL8HCgnLB5gJ0wcoCtoHuwreB08L3wfjC94HdgzaBwYN
0weUDcsHHw6/B6gOsgctD6IHsA+QBzAQfAesEGYHJRFOB5kRNAcKEhgHdxL7
BuAS2wZEE7oGoxOXBv0TcwZTFE0GoxQmBu4U/QUzFdQFcxWoBa0VfAXgFU8F
DhYgBTQW8QRVFsAEbhaPBIAWXQSLFioEjxb3AyUAAAAMAAAABQAAgCgAAAAM
AAAAAwAAABQAAAAMAAAADQAAAFcAAAAgAgAAggAAAHYBAADoAAAAmgEAAIEA
AACPFvcDixbEA4AWkQNuFl8DVRYuAzQW/QIOFs4C4BWfAq0VcgJzFUYCMxUa
Au4U8QGjFMgBUxShAf0TewGjE1cBRBM0AeASEwF3EvMAChLWAJkRugAlEaAA
rBCIADAQcgCwD14ALQ9MAKgOPAAfDi8AlA0jAAYNGwB2DBQA4wsQAE8LDwC7
ChAAKAoUAJgJGwAKCSMAfwgvAPYHPABxB0wA7gZeAG4GcgDyBYgAeQWgAAUF
ugCUBNYAJwTzAL4DEwFaAzQB+wJXAaECewFLAqEB+wHIAbAB8QFrARoCKwFG
AvEAcgK+AJ8CkADOAmoA/QJJAC4DMABfAx4AkQMTAMQDDwD3AxMAKgQeAF0E
MACPBEkAwARqAPEEkAAgBb4ATwXxAHwFKwGoBWsB1AWwAf0F+wEmBksCTQah
AnMG+wKXBloDuga+A9sGJwT7BpQEGAcFBTQHeQVOB/IFZgduBnwH7gaQB3EH
ogf2B7IHfwi/BwoJyweYCdMHKAraB7sK3gdPC98H4wveB3YM2gcGDdMHlA3L
Bx8OvweoDrIHLQ+iB7APkAcwEHwHrBBmByURTgeZETQHChIYB3cS+wbgEtsG
RBO6BqMTlwb9E3MGUxRNBqMUJgbuFP0FMxXUBXMVqAWtFXwF4BVPBQ4WIAU0
FvEEVRbABG4WjwSAFl0EixYqBI8W9wMUAAAADAAAAA0AAAAlAAAADAAAAAUA
AIAnAAAAGAAAAAMAAAAAAAAAv7+/AAAAAAAlAAAADAAAAAMAAAATAAAADAAA
AAEAAABWAAAAIAMAAIIAAACHAQAA6AAAALIBAADBAAAAjxb3A4sWKgSAFl0E
bhaPBFQWwAQ0FvAEDRYgBeAVTgWtFXsFcxWoBTMV0wXuFP0FoxQlBlMUTAb9
E3IGoxOWBkMTuQbfEtoGdxL6BgoSGAeZETQHJBFOB6wQZgcvEHwHsA+QBy0P
ogenDrIHHw6/B5MNywcFDdMHdQzaB+ML3gdPC98HuwreBykK2geZCdMHCwnL
B38Ivwf3B7IHcQeiB+4GkAdvBnwH8gVmB3oFTgcFBTQHlAQYBycE+ga/A9oG
WwO5BvsClgahAnIGSwJMBvsBJQawAf0FawHTBSsBqAXxAHsFvgBOBZEAIAVq
APAESgDABDAAjwQeAF0EEwAqBA8A9wMPAPsDDwAHBA8AGgQPADMEDwBTBA8A
eAQPAKMEDwDSBA8ABQUPADwFDwB2BQ8AsgUPAPAFDwAwBg8AcQYPALMGDwD1
Bg8ANgcPAHYHDwC0Bw8A8AcPACoIDwBhCA8AlAgPAMMIDwDuCA8AEwkPADMJ
DwBMCQ8AXwkPAGsJDwBvCRMAogkeANUJMAAHCkoAOApqAGgKkQCYCr4Axgrx
APMKKwEgC2sBSwuwAXUL+wGdC0sCxAuhAuoL+wIODFsDMQy/A1IMJwRyDJQE
kAwFBawMegXGDPIF3gxvBvQM7gYIDXEHGg33ByoNfwg3DQsJQw2ZCUsNKQpS
DbsKVg1PC1cN4wtWDXUMUg0FDUsNkw1DDR8ONw2nDioNLQ8aDbAPCA0vEPQM
rBDeDCQRxgyZEawMChKQDHcScgzfElIMQxMxDKMTDgz9E+oLUxTEC6MUnQvu
FHULMxVLC3MVIAutFfMK4BXGCg0WmAo0FmgKVBY4Cm4WBwqAFtUJixaiCY8W
bwmPFmsJjxZfCY8WTAmPFjMJjxYTCY8W7giPFsMIjxaUCI8WYQiPFioIjxbw
B48WtAePFnYHjxY2B48W9QaPFrMGjxZxBo8WMAaPFvAFjxayBY8WdgWPFjwF
jxYFBY8W0gSPFqMEjxZ4BI8WUwSPFjMEjxYaBI8WBwSPFvsDjxb3AyUAAAAM
AAAABQAAgCgAAAAMAAAAAwAAABQAAAAMAAAADQAAAFcAAAAgAwAAggAAAIcB
AADoAAAAsgEAAMEAAACPFvcDixYqBIAWXQRuFo8EVBbABDQW8AQNFiAF4BVO
Ba0VewVzFagFMxXTBe4U/QWjFCUGUxRMBv0TcgajE5YGQxO5Bt8S2gZ3EvoG
ChIYB5kRNAckEU4HrBBmBy8QfAewD5AHLQ+iB6cOsgcfDr8Hkw3LBwUN0wd1
DNoH4wveB08L3we7Ct4HKQraB5kJ0wcLCcsHfwi/B/cHsgdxB6IH7gaQB28G
fAfyBWYHegVOBwUFNAeUBBgHJwT6Br8D2gZbA7kG+wKWBqECcgZLAkwG+wEl
BrAB/QVrAdMFKwGoBfEAewW+AE4FkQAgBWoA8ARKAMAEMACPBB4AXQQTACoE
DwD3Aw8A+wMPAAcEDwAaBA8AMwQPAFMEDwB4BA8AowQPANIEDwAFBQ8APAUP
AHYFDwCyBQ8A8AUPADAGDwBxBg8AswYPAPUGDwA2Bw8AdgcPALQHDwDwBw8A
KggPAGEIDwCUCA8AwwgPAO4IDwATCQ8AMwkPAEwJDwBfCQ8AawkPAG8JEwCi
CR4A1QkwAAcKSgA4CmoAaAqRAJgKvgDGCvEA8worASALawFLC7ABdQv7AZ0L
SwLEC6EC6gv7Ag4MWwMxDL8DUgwnBHIMlASQDAUFrAx6BcYM8gXeDG8G9Azu
BggNcQcaDfcHKg1/CDcNCwlDDZkJSw0pClINuwpWDU8LVw3jC1YNdQxSDQUN
Sw2TDUMNHw43DacOKg0tDxoNsA8IDS8Q9AysEN4MJBHGDJkRrAwKEpAMdxJy
DN8SUgxDEzEMoxMODP0T6gtTFMQLoxSdC+4UdQszFUsLcxUgC60V8wrgFcYK
DRaYCjQWaApUFjgKbhYHCoAW1QmLFqIJjxZvCY8WawmPFl8JjxZMCY8WMwmP
FhMJjxbuCI8WwwiPFpQIjxZhCI8WKgiPFvAHjxa0B48WdgePFjYHjxb1Bo8W
swaPFnEGjxYwBo8W8AWPFrIFjxZ2BY8WPAWPFgUFjxbSBI8WowSPFngEjxZT
BI8WMwSPFhoEjxYHBI8W+wOPFvcDFAAAAAwAAAANAAAAJgAAABwAAAADAAAA
BgAAAAUAAAAAAAAAAAAAACUAAAAMAAAAAwAAACgAAAAMAAAABAAAACUAAAAM
AAAABQAAgCcAAAAYAAAABAAAAAAAAAAAAAAAAAAAACUAAAAMAAAABAAAABMA
AAAMAAAAAQAAAFYAAAA8AAAAtgAAAHoBAADYAAAAhgEAAAgAAACaCwcDOQ2O
AzoR7wEBE3sCDBIYAWENGAFBD4EBmgsHAyUAAAAMAAAABQAAgBQAAAAMAAAA
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
vDUAAAEQwNsCAAAAAwAAAKw1AAABAAAAbAAAAAEAAAABAAAA2gAAAIEAAAAA
AAAAAAAAAKEWAABpDQAAIEVNRgAAAQCsNQAA+gAAAAYAAAAAAAAAAAAAAAAA
AAAABQAAAAQAAFIBAAAOAQAAAAAAAAAAAAAAAAAAUCgFALAeBABGAAAATBcA
AD4XAABHRElDAQAAgAADAACtn7DzAAAAACYXAAABAAkAAAOTCwAABgCGAQAA
AAAFAAAADAJoDaAWBQAAAAwCaA2gFgcAAAAQBAEAAQABAAEAAwAAAB4ABAAA
AAQBDQAHAAAA/AIBAAAAAAAAAAQAAAAtAQAACQAAAPoCAAAAAAAAAAAAACIA
BAAAAC0BAQAJAAAA+gIGAB4AAAAAAAAAIgAEAAAALQECAAQAAAAtAQAABwAA
APwCAAC/v78AAAAEAAAALQEDAAQAAAAGAQEABgEAACQDgQCPFvcDixbEA4AW
kQNuFl8DVRYuAzQW/QIOFs4C4BWfAq0VcgJzFUYCMxUaAu4U8QGjFMgBUxSh
Af0TewGjE1cBRBM0AeASEwF3EvMAChLWAJkRugAlEaAArBCIADAQcgCwD14A
LQ9MAKgOPAAfDi8AlA0jAAYNGwB2DBQA4wsQAE8LDwC7ChAAKAoUAJgJGwAK
CSMAfwgvAPYHPABxB0wA7gZeAG4GcgDyBYgAeQWgAAUFugCUBNYAJwTzAL4D
EwFaAzQB+wJXAaECewFLAqEB+wHIAbAB8QFrARoCKwFGAvEAcgK+AJ8CkADO
AmoA/QJJAC4DMABfAx4AkQMTAMQDDwD3AxMAKgQeAF0EMACPBEkAwARqAPEE
kAAgBb4ATwXxAHwFKwGoBWsB1AWwAf0F+wEmBksCTQahAnMG+wKXBloDuga+
A9sGJwT7BpQEGAcFBTQHeQVOB/IFZgduBnwH7gaQB3EHogf2B7IHfwi/BwoJ
yweYCdMHKAraB7sK3gdPC98H4wveB3YM2gcGDdMHlA3LBx8OvweoDrIHLQ+i
B7APkAcwEHwHrBBmByURTgeZETQHChIYB3cS+wbgEtsGRBO6BqMTlwb9E3MG
UxRNBqMUJgbuFP0FMxXUBXMVqAWtFXwF4BVPBQ4WIAU0FvEEVRbABG4WjwSA
Fl0EixYqBI8W9wMEAAAALQEAAAQAAADwAQMABAAAAAQBDQAGAQAAJQOBAI8W
9wOLFsQDgBaRA24WXwNVFi4DNBb9Ag4WzgLgFZ8CrRVyAnMVRgIzFRoC7hTx
AaMUyAFTFKEB/RN7AaMTVwFEEzQB4BITAXcS8wAKEtYAmRG6ACURoACsEIgA
MBByALAPXgAtD0wAqA48AB8OLwCUDSMABg0bAHYMFADjCxAATwsPALsKEAAo
ChQAmAkbAAoJIwB/CC8A9gc8AHEHTADuBl4AbgZyAPIFiAB5BaAABQW6AJQE
1gAnBPMAvgMTAVoDNAH7AlcBoQJ7AUsCoQH7AcgBsAHxAWsBGgIrAUYC8QBy
Ar4AnwKQAM4CagD9AkkALgMwAF8DHgCRAxMAxAMPAPcDEwAqBB4AXQQwAI8E
SQDABGoA8QSQACAFvgBPBfEAfAUrAagFawHUBbAB/QX7ASYGSwJNBqECcwb7
ApcGWgO6Br4D2wYnBPsGlAQYBwUFNAd5BU4H8gVmB24GfAfuBpAHcQeiB/YH
sgd/CL8HCgnLB5gJ0wcoCtoHuwreB08L3wfjC94HdgzaBwYN0weUDcsHHw6/
B6gOsgctD6IHsA+QBzAQfAesEGYHJRFOB5kRNAcKEhgHdxL7BuAS2wZEE7oG
oxOXBv0TcwZTFE0GoxQmBu4U/QUzFdQFcxWoBa0VfAXgFU8FDhYgBTQW8QRV
FsAEbhaPBIAWXQSLFioEjxb3AwQAAAAEAQ0ABAAAAC0BAAAHAAAA/AIAAL+/
vwAAAAQAAAAtAQMABAAAAAYBAQCGAQAAJAPBAI8W9wOLFioEgBZdBG4WjwRU
FsAENBbwBA0WIAXgFU4FrRV7BXMVqAUzFdMF7hT9BaMUJQZTFEwG/RNyBqMT
lgZDE7kG3xLaBncS+gYKEhgHmRE0ByQRTgesEGYHLxB8B7APkActD6IHpw6y
Bx8OvweTDcsHBQ3TB3UM2gfjC94HTwvfB7sK3gcpCtoHmQnTBwsJywd/CL8H
9weyB3EHogfuBpAHbwZ8B/IFZgd6BU4HBQU0B5QEGAcnBPoGvwPaBlsDuQb7
ApYGoQJyBksCTAb7ASUGsAH9BWsB0wUrAagF8QB7Bb4ATgWRACAFagDwBEoA
wAQwAI8EHgBdBBMAKgQPAPcDDwD7Aw8ABwQPABoEDwAzBA8AUwQPAHgEDwCj
BA8A0gQPAAUFDwA8BQ8AdgUPALIFDwDwBQ8AMAYPAHEGDwCzBg8A9QYPADYH
DwB2Bw8AtAcPAPAHDwAqCA8AYQgPAJQIDwDDCA8A7ggPABMJDwAzCQ8ATAkP
AF8JDwBrCQ8AbwkTAKIJHgDVCTAABwpKADgKagBoCpEAmAq+AMYK8QDzCisB
IAtrAUsLsAF1C/sBnQtLAsQLoQLqC/sCDgxbAzEMvwNSDCcEcgyUBJAMBQWs
DHoFxgzyBd4Mbwb0DO4GCA1xBxoN9wcqDX8INw0LCUMNmQlLDSkKUg27ClYN
TwtXDeMLVg11DFINBQ1LDZMNQw0fDjcNpw4qDS0PGg2wDwgNLxD0DKwQ3gwk
EcYMmRGsDAoSkAx3EnIM3xJSDEMTMQyjEw4M/RPqC1MUxAujFJ0L7hR1CzMV
SwtzFSALrRXzCuAVxgoNFpgKNBZoClQWOApuFgcKgBbVCYsWogmPFm8JjxZr
CY8WXwmPFkwJjxYzCY8WEwmPFu4IjxbDCI8WlAiPFmEIjxYqCI8W8AePFrQH
jxZ2B48WNgePFvUGjxazBo8WcQaPFjAGjxbwBY8WsgWPFnYFjxY8BY8WBQWP
FtIEjxajBI8WeASPFlMEjxYzBI8WGgSPFgcEjxb7A48W9wMEAAAALQEAAAQA
AADwAQMABAAAAAQBDQCGAQAAJQPBAI8W9wOLFioEgBZdBG4WjwRUFsAENBbw
BA0WIAXgFU4FrRV7BXMVqAUzFdMF7hT9BaMUJQZTFEwG/RNyBqMTlgZDE7kG
3xLaBncS+gYKEhgHmRE0ByQRTgesEGYHLxB8B7APkActD6IHpw6yBx8OvweT
DcsHBQ3TB3UM2gfjC94HTwvfB7sK3gcpCtoHmQnTBwsJywd/CL8H9weyB3EH
ogfuBpAHbwZ8B/IFZgd6BU4HBQU0B5QEGAcnBPoGvwPaBlsDuQb7ApYGoQJy
BksCTAb7ASUGsAH9BWsB0wUrAagF8QB7Bb4ATgWRACAFagDwBEoAwAQwAI8E
HgBdBBMAKgQPAPcDDwD7Aw8ABwQPABoEDwAzBA8AUwQPAHgEDwCjBA8A0gQP
AAUFDwA8BQ8AdgUPALIFDwDwBQ8AMAYPAHEGDwCzBg8A9QYPADYHDwB2Bw8A
tAcPAPAHDwAqCA8AYQgPAJQIDwDDCA8A7ggPABMJDwAzCQ8ATAkPAF8JDwBr
CQ8AbwkTAKIJHgDVCTAABwpKADgKagBoCpEAmAq+AMYK8QDzCisBIAtrAUsL
sAF1C/sBnQtLAsQLoQLqC/sCDgxbAzEMvwNSDCcEcgyUBJAMBQWsDHoFxgzy
Bd4Mbwb0DO4GCA1xBxoN9wcqDX8INw0LCUMNmQlLDSkKUg27ClYNTwtXDeML
Vg11DFINBQ1LDZMNQw0fDjcNpw4qDS0PGg2wDwgNLxD0DKwQ3gwkEcYMmRGs
DAoSkAx3EnIM3xJSDEMTMQyjEw4M/RPqC1MUxAujFJ0L7hR1CzMVSwtzFSAL
rRXzCuAVxgoNFpgKNBZoClQWOApuFgcKgBbVCYsWogmPFm8JjxZrCY8WXwmP
FkwJjxYzCY8WEwmPFu4IjxbDCI8WlAiPFmEIjxYqCI8W8AePFrQHjxZ2B48W
NgePFvUGjxazBo8WcQaPFjAGjxbwBY8WsgWPFnYFjxY8BY8WBQWPFtIEjxaj
BI8WeASPFlMEjxYzBI8WGgSPFgcEjxb7A48W9wMEAAAABAENAAkAAAD6AgYA
BQAAAAAAAAAiAAQAAAAtAQMABAAAAPABAgAEAAAALQEAAAcAAAD8AgAAAAAA
AAAABAAAAC0BAgAEAAAABgEBABQAAAAkAwgAmgsHAzkNjgM6Ee8BARN7AgwS
GAFhDRgBQQ+BAZoLBwMEAAAALQEAAAQAAAAEAQ0ACQAAAPoCAAAFAAAA////
ACIABAAAAC0BBAAEAAAA8AEDABQAAAAlAwgAmgsHAzkNjgM6Ee8BARN7AgwS
GAFhDRgBQQ+BAZoLBwMEAAAABAENAAkAAAD6AgYABQAAAAAAAAAiAAQAAAAt
AQMABAAAAPABBAAEAAAALQEAAAQAAAAtAQIABAAAAAYBAQAUAAAAJAMIAJoL
BwM5DY4DOhHvAQETewIMEhgBYQ0YAUEPgQGaCwcDBAAAAC0BAAAEAAAABAEN
AAkAAAD6AgAABQAAAP///wAiAAQAAAAtAQQABAAAAPABAwAUAAAAJQMIAJoL
BwM5DY4DOhHvAQETewIMEhgBYQ0YAUEPgQGaCwcDBAAAAAQBDQAJAAAA+gIG
AAUAAAAAAAAAIgAEAAAALQEDAAQAAADwAQQABAAAAC0BAAAEAAAALQECAAQA
AAAGAQEAFAAAACQDCADhCoMETAn8A24FmwV/Aw8FeQSLBkwJiwY6B/oF4QqD
BAQAAAAtAQAABAAAAAQBDQAJAAAA+gIAAAUAAAD///8AIgAEAAAALQEEAAQA
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
AgAAACUAAAAMAAAABQAAgCcAAAAYAAAAAwAAAAAAAAC/v78AAAAAACUAAAAM
AAAAAwAAABMAAAAMAAAAAQAAAFYAAAAgAgAAAQAAAAEAAADaAAAATAAAAIEA
AACPFvcDixbEA4AWkQNuFl8DVRYuAzQW/QIOFs4C4BWfAq0VcgJzFUYCMxUa
Au4U8QGjFMgBUxShAf0TewGjE1cBRBM0AeASEwF3EvMAChLWAJkRugAlEaAA
rBCIADAQcgCwD14ALQ9MAKgOPAAfDi8AlA0jAAYNGwB2DBQA4wsQAE8LDwC7
ChAAKAoUAJgJGwAKCSMAfwgvAPYHPABxB0wA7gZeAG4GcgDyBYgAeQWgAAUF
ugCUBNYAJwTzAL4DEwFaAzQB+wJXAaECewFLAqEB+wHIAbAB8QFrARoCKwFG
AvEAcgK+AJ8CkADOAmoA/QJJAC4DMABfAx4AkQMTAMQDDwD3AxMAKgQeAF0E
MACPBEkAwARqAPEEkAAgBb4ATwXxAHwFKwGoBWsB1AWwAf0F+wEmBksCTQah
AnMG+wKXBloDuga+A9sGJwT7BpQEGAcFBTQHeQVOB/IFZgduBnwH7gaQB3EH
ogf2B7IHfwi/BwoJyweYCdMHKAraB7sK3gdPC98H4wveB3YM2gcGDdMHlA3L
Bx8OvweoDrIHLQ+iB7APkAcwEHwHrBBmByURTgeZETQHChIYB3cS+wbgEtsG
RBO6BqMTlwb9E3MGUxRNBqMUJgbuFP0FMxXUBXMVqAWtFXwF4BVPBQ4WIAU0
FvEEVRbABG4WjwSAFl0EixYqBI8W9wMlAAAADAAAAAUAAIAoAAAADAAAAAMA
AAAUAAAADAAAAA0AAABXAAAAIAIAAAEAAAABAAAA2gAAAEwAAACBAAAAjxb3
A4sWxAOAFpEDbhZfA1UWLgM0Fv0CDhbOAuAVnwKtFXICcxVGAjMVGgLuFPEB
oxTIAVMUoQH9E3sBoxNXAUQTNAHgEhMBdxLzAAoS1gCZEboAJRGgAKwQiAAw
EHIAsA9eAC0PTACoDjwAHw4vAJQNIwAGDRsAdgwUAOMLEABPCw8AuwoQACgK
FACYCRsACgkjAH8ILwD2BzwAcQdMAO4GXgBuBnIA8gWIAHkFoAAFBboAlATW
ACcE8wC+AxMBWgM0AfsCVwGhAnsBSwKhAfsByAGwAfEBawEaAisBRgLxAHIC
vgCfApAAzgJqAP0CSQAuAzAAXwMeAJEDEwDEAw8A9wMTACoEHgBdBDAAjwRJ
AMAEagDxBJAAIAW+AE8F8QB8BSsBqAVrAdQFsAH9BfsBJgZLAk0GoQJzBvsC
lwZaA7oGvgPbBicE+waUBBgHBQU0B3kFTgfyBWYHbgZ8B+4GkAdxB6IH9gey
B38IvwcKCcsHmAnTBygK2ge7Ct4HTwvfB+ML3gd2DNoHBg3TB5QNywcfDr8H
qA6yBy0PogewD5AHMBB8B6wQZgclEU4HmRE0BwoSGAd3EvsG4BLbBkQTugaj
E5cG/RNzBlMUTQajFCYG7hT9BTMV1AVzFagFrRV8BeAVTwUOFiAFNBbxBFUW
wARuFo8EgBZdBIsWKgSPFvcDFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAA
ABgAAAADAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAADAAAAEwAAAAwAAAABAAAA
VgAAACADAAABAAAAJgAAANoAAACBAAAAwQAAAI8W9wOLFioEgBZdBG4WjwRU
FsAENBbwBA0WIAXgFU4FrRV7BXMVqAUzFdMF7hT9BaMUJQZTFEwG/RNyBqMT
lgZDE7kG3xLaBncS+gYKEhgHmRE0ByQRTgesEGYHLxB8B7APkActD6IHpw6y
Bx8OvweTDcsHBQ3TB3UM2gfjC94HTwvfB7sK3gcpCtoHmQnTBwsJywd/CL8H
9weyB3EHogfuBpAHbwZ8B/IFZgd6BU4HBQU0B5QEGAcnBPoGvwPaBlsDuQb7
ApYGoQJyBksCTAb7ASUGsAH9BWsB0wUrAagF8QB7Bb4ATgWRACAFagDwBEoA
wAQwAI8EHgBdBBMAKgQPAPcDDwD7Aw8ABwQPABoEDwAzBA8AUwQPAHgEDwCj
BA8A0gQPAAUFDwA8BQ8AdgUPALIFDwDwBQ8AMAYPAHEGDwCzBg8A9QYPADYH
DwB2Bw8AtAcPAPAHDwAqCA8AYQgPAJQIDwDDCA8A7ggPABMJDwAzCQ8ATAkP
AF8JDwBrCQ8AbwkTAKIJHgDVCTAABwpKADgKagBoCpEAmAq+AMYK8QDzCisB
IAtrAUsLsAF1C/sBnQtLAsQLoQLqC/sCDgxbAzEMvwNSDCcEcgyUBJAMBQWs
DHoFxgzyBd4Mbwb0DO4GCA1xBxoN9wcqDX8INw0LCUMNmQlLDSkKUg27ClYN
TwtXDeMLVg11DFINBQ1LDZMNQw0fDjcNpw4qDS0PGg2wDwgNLxD0DKwQ3gwk
EcYMmRGsDAoSkAx3EnIM3xJSDEMTMQyjEw4M/RPqC1MUxAujFJ0L7hR1CzMV
SwtzFSALrRXzCuAVxgoNFpgKNBZoClQWOApuFgcKgBbVCYsWogmPFm8JjxZr
CY8WXwmPFkwJjxYzCY8WEwmPFu4IjxbDCI8WlAiPFmEIjxYqCI8W8AePFrQH
jxZ2B48WNgePFvUGjxazBo8WcQaPFjAGjxbwBY8WsgWPFnYFjxY8BY8WBQWP
FtIEjxajBI8WeASPFlMEjxYzBI8WGgSPFgcEjxb7A48W9wMlAAAADAAAAAUA
AIAoAAAADAAAAAMAAAAUAAAADAAAAA0AAABXAAAAIAMAAAEAAAAmAAAA2gAA
AIEAAADBAAAAjxb3A4sWKgSAFl0EbhaPBFQWwAQ0FvAEDRYgBeAVTgWtFXsF
cxWoBTMV0wXuFP0FoxQlBlMUTAb9E3IGoxOWBkMTuQbfEtoGdxL6BgoSGAeZ
ETQHJBFOB6wQZgcvEHwHsA+QBy0PogenDrIHHw6/B5MNywcFDdMHdQzaB+ML
3gdPC98HuwreBykK2geZCdMHCwnLB38Ivwf3B7IHcQeiB+4GkAdvBnwH8gVm
B3oFTgcFBTQHlAQYBycE+ga/A9oGWwO5BvsClgahAnIGSwJMBvsBJQawAf0F
awHTBSsBqAXxAHsFvgBOBZEAIAVqAPAESgDABDAAjwQeAF0EEwAqBA8A9wMP
APsDDwAHBA8AGgQPADMEDwBTBA8AeAQPAKMEDwDSBA8ABQUPADwFDwB2BQ8A
sgUPAPAFDwAwBg8AcQYPALMGDwD1Bg8ANgcPAHYHDwC0Bw8A8AcPACoIDwBh
CA8AlAgPAMMIDwDuCA8AEwkPADMJDwBMCQ8AXwkPAGsJDwBvCRMAogkeANUJ
MAAHCkoAOApqAGgKkQCYCr4AxgrxAPMKKwEgC2sBSwuwAXUL+wGdC0sCxAuh
AuoL+wIODFsDMQy/A1IMJwRyDJQEkAwFBawMegXGDPIF3gxvBvQM7gYIDXEH
Gg33ByoNfwg3DQsJQw2ZCUsNKQpSDbsKVg1PC1cN4wtWDXUMUg0FDUsNkw1D
DR8ONw2nDioNLQ8aDbAPCA0vEPQMrBDeDCQRxgyZEawMChKQDHcScgzfElIM
QxMxDKMTDgz9E+oLUxTEC6MUnQvuFHULMxVLC3MVIAutFfMK4BXGCg0WmAo0
FmgKVBY4Cm4WBwqAFtUJixaiCY8WbwmPFmsJjxZfCY8WTAmPFjMJjxYTCY8W
7giPFsMIjxaUCI8WYQiPFioIjxbwB48WtAePFnYHjxY2B48W9QaPFrMGjxZx
Bo8WMAaPFvAFjxayBY8WdgWPFjwFjxYFBY8W0gSPFqMEjxZ4BI8WUwSPFjME
jxYaBI8WBwSPFvsDjxb3AxQAAAAMAAAADQAAACYAAAAcAAAAAwAAAAYAAAAF
AAAAAAAAAAAAAAAlAAAADAAAAAMAAAAoAAAADAAAAAIAAAAlAAAADAAAAAUA
AIAnAAAAGAAAAAIAAAAAAAAAAAAAAAAAAAAlAAAADAAAAAIAAAATAAAADAAA
AAEAAABWAAAAPAAAAHAAAAALAAAAuAAAACMAAAAIAAAAmgsHAzkNjgM6Ee8B
ARN7AgwSGAFhDRgBQQ+BAZoLBwMlAAAADAAAAAUAAIAUAAAADAAAAA0AAAAm
AAAAHAAAAAQAAAAAAAAABQAAAAAAAAD///8AJQAAAAwAAAAEAAAAKAAAAAwA
AAADAAAAVwAAADwAAABwAAAACwAAALgAAAAiAAAACAAAAJoLBwM5DY4DOhHv
AQETewIMEhgBYQ0YAUEPgQGaCwcDFAAAAAwAAAANAAAAJgAAABwAAAADAAAA
BgAAAAUAAAAAAAAAAAAAACUAAAAMAAAAAwAAACgAAAAMAAAABAAAACUAAAAM
AAAABQAAgCUAAAAMAAAAAgAAABMAAAAMAAAAAQAAAFYAAAA8AAAAcAAAAAsA
AAC4AAAAIwAAAAgAAACaCwcDOQ2OAzoR7wEBE3sCDBIYAWENGAFBD4EBmgsH
AyUAAAAMAAAABQAAgBQAAAAMAAAADQAAACYAAAAcAAAABAAAAAAAAAAFAAAA
AAAAAP///wAlAAAADAAAAAQAAAAoAAAADAAAAAMAAABXAAAAPAAAAHAAAAAL
AAAAuAAAACIAAAAIAAAAmgsHAzkNjgM6Ee8BARN7AgwSGAFhDRgBQQ+BAZoL
BwMUAAAADAAAAA0AAAAmAAAAHAAAAAMAAAAGAAAABQAAAAAAAAAAAAAAJQAA
AAwAAAADAAAAKAAAAAwAAAAEAAAAJQAAAAwAAAAFAACAJQAAAAwAAAACAAAA
EwAAAAwAAAABAAAAVgAAADwAAAAiAAAAJwAAAGkAAAA/AAAACAAAAOEKgwRM
CfwDbgWbBX8DDwV5BIsGTAmLBjoH+gXhCoMEJQAAAAwAAAAFAACAFAAAAAwA
AAANAAAAJgAAABwAAAAEAAAAAAAAAAUAAAAAAAAA////ACUAAAAMAAAABAAA
ACgAAAAMAAAAAwAAAFcAAAA8AAAAIgAAACcAAABpAAAAPwAAAAgAAADhCoME
TAn8A24FmwV/Aw8FeQSLBkwJiwY6B/oF4QqDBBQAAAAMAAAADQAAACYAAAAc
AAAAAwAAAAYAAAAFAAAAAAAAAAAAAAAlAAAADAAAAAMAAAAoAAAADAAAAAQA
AAAlAAAADAAAAAUAAIAlAAAADAAAAAIAAAATAAAADAAAAAEAAABWAAAAPAAA
ACIAAAAnAAAAaQAAAD8AAAAIAAAA4QqDBEwJ/ANuBZsFfwMPBXkEiwZMCYsG
Ogf6BeEKgwQlAAAADAAAAAUAAIAUAAAADAAAAA0AAAAmAAAAHAAAAAQAAAAA
AAAABQAAAAAAAAD///8AJQAAAAwAAAAEAAAAKAAAAAwAAAADAAAAVwAAADwA
AAAiAAAAJwAAAGkAAAA/AAAACAAAAOEKgwRMCfwDbgWbBX8DDwV5BIsGTAmL
BjoH+gXhCoMEFAAAAAwAAAANAAAAJgAAABwAAAADAAAABgAAAAUAAAAAAAAA
AAAAACUAAAAMAAAAAwAAACgAAAAMAAAABAAAACUAAAAMAAAABQAAgCUAAAAM
AAAAAgAAABMAAAAMAAAAAQAAAFYAAAA8AAAAJgAAAAoAAABuAAAAIQAAAAgA
AADjA4EBjAX6AI0JewJZCw0CXwprA68FawOjBwcD4wOBASUAAAAMAAAABQAA
gBQAAAAMAAAADQAAACYAAAAcAAAABAAAAAAAAAAFAAAAAAAAAP///wAlAAAA
DAAAAAQAAAAoAAAADAAAAAMAAABXAAAAPAAAACYAAAAJAAAAbgAAACEAAAAI
AAAA4wOBAYwF+gCNCXsCWQsNAl8KawOvBWsDowcHA+MDgQEUAAAADAAAAA0A
AAAmAAAAHAAAAAMAAAAGAAAABQAAAAAAAAAAAAAAJQAAAAwAAAADAAAAKAAA
AAwAAAAEAAAAJQAAAAwAAAAFAACAJQAAAAwAAAACAAAAEwAAAAwAAAABAAAA
VgAAADwAAAAmAAAACgAAAG4AAAAhAAAACAAAAOMDgQGMBfoAjQl7AlkLDQJf
CmsDrwVrA6MHBwPjA4EBJQAAAAwAAAAFAACAFAAAAAwAAAANAAAAJgAAABwA
AAAEAAAAAAAAAAUAAAAAAAAA////ACUAAAAMAAAABAAAACgAAAAMAAAAAwAA
AFcAAAA8AAAAJgAAAAkAAABuAAAAIQAAAAgAAADjA4EBjAX6AI0JewJZCw0C
XwprA68FawOjBwcD4wOBARQAAAAMAAAADQAAACYAAAAcAAAAAwAAAAYAAAAF
AAAAAAAAAAAAAAAlAAAADAAAAAMAAAAoAAAADAAAAAQAAAAlAAAADAAAAAUA
AIAlAAAADAAAAAIAAAATAAAADAAAAAEAAABWAAAAPAAAAG4AAAApAAAAtQAA
AEEAAAAIAAAAuxInBhwRrgY5DQ8FWQubBT8MOAQcETgEAA+hBLsSJwYlAAAA
DAAAAAUAAIAUAAAADAAAAA0AAAAmAAAAHAAAAAQAAAAAAAAABQAAAAAAAAD/
//8AJQAAAAwAAAAEAAAAKAAAAAwAAAADAAAAVwAAADwAAABuAAAAKQAAALUA
AABBAAAACAAAALsSJwYcEa4GOQ0PBVkLmwU/DDgEHBE4BAAPoQS7EicGFAAA
AAwAAAANAAAAJgAAABwAAAADAAAABgAAAAUAAAAAAAAAAAAAACUAAAAMAAAA
AwAAACgAAAAMAAAABAAAACUAAAAMAAAABQAAgCUAAAAMAAAAAgAAABMAAAAM
AAAAAQAAAFYAAAA8AAAAbgAAACkAAAC1AAAAQQAAAAgAAAC7EicGHBGuBjkN
DwVZC5sFPww4BBwROAQAD6EEuxInBiUAAAAMAAAABQAAgBQAAAAMAAAADQAA
ACYAAAAcAAAABAAAAAAAAAAFAAAAAAAAAP///wAlAAAADAAAAAQAAAAoAAAA
DAAAAAMAAABXAAAAPAAAAG4AAAApAAAAtQAAAEEAAAAIAAAAuxInBhwRrgY5
DQ8FWQubBT8MOAQcETgEAA+hBLsSJwYUAAAADAAAAA0AAAAmAAAAHAAAAAMA
AAAGAAAABQAAAAAAAAAAAAAAJQAAAAwAAAADAAAAKAAAAAwAAAAEAAAAJQAA
AAwAAAAFAACAJwAAABgAAAAEAAAAAAAAAP///wAAAAAAJQAAAAwAAAAEAAAA
EwAAAAwAAAABAAAAVgAAADwAAAByAAAADAAAALkAAAAkAAAACAAAAL0LJQNh
DawDXRENAh8TmQIvEkABfw1AAX0PnwG9CyUDJQAAAAwAAAAFAACAFAAAAAwA
AAANAAAAJgAAABwAAAAFAAAAAAAAAAUAAAAAAAAA////ACUAAAAMAAAABQAA
ACgAAAAMAAAAAwAAAFcAAAA8AAAAcgAAAAwAAAC5AAAAJAAAAAgAAAC9CyUD
YQ2sA10RDQIfE5kCLxJAAX8NQAF9D58BvQslAxQAAAAMAAAADQAAACYAAAAc
AAAAAwAAAAYAAAAFAAAAAAAAAAAAAAAlAAAADAAAAAMAAAAoAAAADAAAAAUA
AAAlAAAADAAAAAUAAIAlAAAADAAAAAQAAAATAAAADAAAAAEAAABWAAAAPAAA
AHIAAAAMAAAAuQAAACQAAAAIAAAAvQslA2ENrANdEQ0CHxOZAi8SQAF/DUAB
fQ+fAb0LJQMlAAAADAAAAAUAAIAUAAAADAAAAA0AAABXAAAAPAAAAHIAAAAM
AAAAuQAAACQAAAAIAAAAvQslA2ENrANdEQ0CHxOZAi8SQAF/DUABfQ+fAb0L
JQMUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAlAAAADAAAAAQAAAATAAAADAAA
AAEAAABWAAAAPAAAACMAAAAoAAAAawAAAEEAAAAIAAAADguhBG8JGgSMBbkF
ogMtBZwErgZvCa4GXQcnBg4LoQQlAAAADAAAAAUAAIAUAAAADAAAAA0AAAAm
AAAAHAAAAAUAAAAAAAAABQAAAAAAAAD///8AJQAAAAwAAAAFAAAAKAAAAAwA
AAADAAAAVwAAADwAAAAjAAAAKAAAAGsAAABBAAAACAAAAA4LoQRvCRoEjAW5
BaIDLQWcBK4GbwmuBl0HJwYOC6EEFAAAAAwAAAANAAAAJgAAABwAAAADAAAA
BgAAAAUAAAAAAAAAAAAAACUAAAAMAAAAAwAAACgAAAAMAAAABQAAACUAAAAM
AAAABQAAgCUAAAAMAAAABAAAABMAAAAMAAAAAQAAAFYAAAA8AAAAIwAAACgA
AABrAAAAQQAAAAgAAAAOC6EEbwkaBIwFuQWiAy0FnASuBm8JrgZdBycGDguh
BCUAAAAMAAAABQAAgBQAAAAMAAAADQAAAFcAAAA8AAAAIwAAACgAAABrAAAA
QQAAAAgAAAAOC6EEbwkaBIwFuQWiAy0FnASuBm8JrgZdBycGDguhBBQAAAAM
AAAADQAAACUAAAAMAAAABQAAgCUAAAAMAAAABAAAABMAAAAMAAAAAQAAAFYA
AAA8AAAAKAAAAAsAAABvAAAAIwAAAAgAAAAaBJ8BrwUYAbAJmQJ8CysCggqO
A9wFjgPBByUDGgSfASUAAAAMAAAABQAAgBQAAAAMAAAADQAAACYAAAAcAAAA
BQAAAAAAAAAFAAAAAAAAAP///wAlAAAADAAAAAUAAAAoAAAADAAAAAMAAABX
AAAAPAAAACgAAAALAAAAbwAAACIAAAAIAAAAGgSfAa8FGAGwCZkCfAsrAoIK
jgPcBY4DwQclAxoEnwEUAAAADAAAAA0AAAAmAAAAHAAAAAMAAAAGAAAABQAA
AAAAAAAAAAAAJQAAAAwAAAADAAAAKAAAAAwAAAAFAAAAJQAAAAwAAAAFAACA
JQAAAAwAAAAEAAAAEwAAAAwAAAABAAAAVgAAADwAAAAoAAAACwAAAG8AAAAj
AAAACAAAABoEnwGvBRgBsAmZAnwLKwKCCo4D3AWOA8EHJQMaBJ8BJQAAAAwA
AAAFAACAFAAAAAwAAAANAAAAVwAAADwAAAAoAAAACwAAAG8AAAAiAAAACAAA
ABoEnwGvBRgBsAmZAnwLKwKCCo4D3AWOA8EHJQMaBJ8BFAAAAAwAAAANAAAA
JQAAAAwAAAAFAACAJQAAAAwAAAAEAAAAEwAAAAwAAAABAAAAVgAAADwAAABv
AAAAKgAAALcAAABCAAAACAAAAOMSRQY6EcwGYQ0tBXwLuQVsDGAEOhFgBCMP
vwTjEkUGJQAAAAwAAAAFAACAFAAAAAwAAAANAAAAJgAAABwAAAAFAAAAAAAA
AAUAAAAAAAAA////ACUAAAAMAAAABQAAACgAAAAMAAAAAwAAAFcAAAA8AAAA
bwAAACoAAAC3AAAAQgAAAAgAAADjEkUGOhHMBmENLQV8C7kFbAxgBDoRYAQj
D78E4xJFBhQAAAAMAAAADQAAACYAAAAcAAAAAwAAAAYAAAAFAAAAAAAAAAAA
AAAlAAAADAAAAAMAAAAoAAAADAAAAAUAAAAlAAAADAAAAAUAAIAlAAAADAAA
AAQAAAATAAAADAAAAAEAAABWAAAAPAAAAG8AAAAqAAAAtwAAAEIAAAAIAAAA
4xJFBjoRzAZhDS0FfAu5BWwMYAQ6EWAEIw+/BOMSRQYlAAAADAAAAAUAAIAU
AAAADAAAAA0AAABXAAAAPAAAAG8AAAAqAAAAtwAAAEIAAAAIAAAA4xJFBjoR
zAZhDS0FfAu5BWwMYAQ6EWAEIw+/BOMSRQYUAAAADAAAAA0AAAAiAAAADAAA
AP////8oAAAADAAAAAEAAAAlAAAADAAAAAcAAIAlAAAADAAAAAAAAIAwAAAA
DAAAAA8AAIBLAAAAEAAAAAAAAAAFAAAAKAAAAAwAAAACAAAAKAAAAAwAAAAD
AAAAKAAAAAwAAAAEAAAADgAAABQAAAAAAAAAEAAAABQAAAAaQAJALAAAACAA
AAD/////AgAAAAAAAAAAAAAAP2FcQx8zA0MAAAAA6APoAyEAAAAIAAAAYgAA
AAwAAAABAAAAIQAAAAgAAAAhAAAACAAAAHMAAAAMAAAAAAAAABwAAAAIAAAA
JQAAAAwAAAAAAACAJQAAAAwAAAAHAACAJQAAAAwAAAAOAACAMAAAAAwAAAAP
AACAGQAAAAwAAAD///8AGAAAAAwAAAAAAAAAEgAAAAwAAAACAAAAEwAAAAwA
AAABAAAAFAAAAAwAAAANAAAAFQAAAAwAAAABAAAAFgAAAAwAAAAAAAAADQAA
ABAAAAAAAAAAAAAAADoAAAAMAAAACgAAABsAAAAQAAAAAAAAAAAAAAAjAAAA
IAAAAIUN7j4AAAAAAAAAAPvx6z4AQAdEAAC7QyQAAAAkAAAAhQ3uPgAAAAAA
AAAA+/HrPgBAB0QAALtDBAAAAHMAAAAMAAAAAAAAAA0AAAAQAAAAHQIAAHYB
AABSAAAAcAEAAAEAAAAUAAAACgAAAAAAAAAAAAAAkAEAAAAAAIEHAgIiUwB5
AHMAdABlAG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAEhl8Xfc
ZPF3CQAAACEAigENAAAAlN8SAIU08nfQJGQDBBoh3tAkZAMmAIoBBBoh3gsA
iAH//wEABAAAANzcEgCk3RIA0N0SABjukHxwBZF8/////20FkXxamYB8AAAU
AAAAAABtmYB8AAAQxlBMWQMgMPV3JQAAALBGFQAAABAAsEYVAOTdEgCbKPJ3
KCAiALBGFQDQJGQDR0RJQwQaId4hAIoBCAAAAAAAEgCAc1kD2PprAxAvHAAT
AAAAEC8cABAvHADY+msD2PprAyjeEgDBEvJ3EC8cABMAAACAc1kDEC8cADje
EgBkdgAIAAAAACUAAAAMAAAAAQAAAEYAAAAoAAAAHAAAAEdESUMCAAAAAAAA
AAAAAADbAAAAggAAAAAAAAAjAAAAIAAAAIUN7j4AAAAAAAAAAPvx6z4AQAdE
AAC7QyQAAAAkAAAAhQ3uPgAAAAAAAAAA+/HrPgBAB0QAALtDBAAAACMAAAAg
AAAAkaXLQgAAAAAAAAAAw6FvQgBAB0QAALtDJAAAACQAAACRpctCAAAAAAAA
AADDoW9CAEAHRAAAu0MEAAAAIwAAACAAAACFDe4+AAAAAAAAAAD78es+AEAH
RAAAu0MkAAAAJAAAAIUN7j4AAAAAAAAAAPvx6z4AQAdEAAC7QwQAAAAjAAAA
IAAAAO8DkDwAAAAAAAAAAEP/jjwAQAdEAAC7QyQAAAAkAAAA7wOQPAAAAAAA
AAAAQ/+OPABAB0QAALtDBAAAACMAAAAgAAAA7wOQPAAAAAAAAAAAQ/+OPABA
B0QAALtDJAAAACQAAADvA5A8AAAAAAAAAABD/448AEAHRAAAu0MEAAAAIwAA
ACAAAADvA5A8AAAAAAAAAABD/448AEAHRAAAu0MkAAAAJAAAAO8DkDwAAAAA
AAAAAEP/jjwAQAdEAAC7QwQAAAAhAAAACAAAABQAAAAMAAAADQAAACUAAAAM
AAAABQAAgCYAAAAcAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAlAAAADAAAAAIA
AAAmAAAAHAAAAAMAAAAGAAAAHgAAAAAAAAAAAAAAJQAAAAwAAAADAAAAJQAA
AAwAAAAFAACAJwAAABgAAAAEAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAAEAAAA
EwAAAAwAAAABAAAAVgAAACACAAAdAgAAdgEAAIMCAACaAQAAgQAAAI8W9wOL
FsQDgBaRA24WXwNVFi4DNBb9Ag4WzgLgFZ8CrRVyAnMVRgIzFRoC7hTxAaMU
yAFTFKEB/RN7AaMTVwFEEzQB4BITAXcS8wAKEtYAmRG6ACURoACsEIgAMBBy
ALAPXgAtD0wAqA48AB8OLwCUDSMABg0bAHYMFADjCxAATwsPALsKEAAoChQA
mAkbAAoJIwB/CC8A9gc8AHEHTADuBl4AbgZyAPIFiAB5BaAABQW6AJQE1gAn
BPMAvgMTAVoDNAH7AlcBoQJ7AUsCoQH7AcgBsAHxAWsBGgIrAUYC8QByAr4A
nwKQAM4CagD9AkkALgMwAF8DHgCRAxMAxAMPAPcDEwAqBB4AXQQwAI8ESQDA
BGoA8QSQACAFvgBPBfEAfAUrAagFawHUBbAB/QX7ASYGSwJNBqECcwb7ApcG
WgO6Br4D2wYnBPsGlAQYBwUFNAd5BU4H8gVmB24GfAfuBpAHcQeiB/YHsgd/
CL8HCgnLB5gJ0wcoCtoHuwreB08L3wfjC94HdgzaBwYN0weUDcsHHw6/B6gO
sgctD6IHsA+QBzAQfAesEGYHJRFOB5kRNAcKEhgHdxL7BuAS2wZEE7oGoxOX
Bv0TcwZTFE0GoxQmBu4U/QUzFdQFcxWoBa0VfAXgFU8FDhYgBTQW8QRVFsAE
bhaPBIAWXQSLFioEjxb3AyUAAAAMAAAABQAAgCgAAAAMAAAABAAAABQAAAAM
AAAADQAAAFcAAAAgAgAAHQIAAHYBAACDAgAAmgEAAIEAAACPFvcDixbEA4AW
kQNuFl8DVRYuAzQW/QIOFs4C4BWfAq0VcgJzFUYCMxUaAu4U8QGjFMgBUxSh
Af0TewGjE1cBRBM0AeASEwF3EvMAChLWAJkRugAlEaAArBCIADAQcgCwD14A
LQ9MAKgOPAAfDi8AlA0jAAYNGwB2DBQA4wsQAE8LDwC7ChAAKAoUAJgJGwAK
CSMAfwgvAPYHPABxB0wA7gZeAG4GcgDyBYgAeQWgAAUFugCUBNYAJwTzAL4D
EwFaAzQB+wJXAaECewFLAqEB+wHIAbAB8QFrARoCKwFGAvEAcgK+AJ8CkADO
AmoA/QJJAC4DMABfAx4AkQMTAMQDDwD3AxMAKgQeAF0EMACPBEkAwARqAPEE
kAAgBb4ATwXxAHwFKwGoBWsB1AWwAf0F+wEmBksCTQahAnMG+wKXBloDuga+
A9sGJwT7BpQEGAcFBTQHeQVOB/IFZgduBnwH7gaQB3EHogf2B7IHfwi/BwoJ
yweYCdMHKAraB7sK3gdPC98H4wveB3YM2gcGDdMHlA3LBx8OvweoDrIHLQ+i
B7APkAcwEHwHrBBmByURTgeZETQHChIYB3cS+wbgEtsGRBO6BqMTlwb9E3MG
UxRNBqMUJgbuFP0FMxXUBXMVqAWtFXwF4BVPBQ4WIAU0FvEEVRbABG4WjwSA
Fl0EixYqBI8W9wMUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAAGAAAAAQA
AAAAAAAAv7+/AAAAAAAlAAAADAAAAAQAAAATAAAADAAAAAEAAABWAAAAIAMA
AB0CAACHAQAAgwIAALIBAADBAAAAjxb3A4sWKgSAFl0EbhaPBFQWwAQ0FvAE
DRYgBeAVTgWtFXsFcxWoBTMV0wXuFP0FoxQlBlMUTAb9E3IGoxOWBkMTuQbf
EtoGdxL6BgoSGAeZETQHJBFOB6wQZgcvEHwHsA+QBy0PogenDrIHHw6/B5MN
ywcFDdMHdQzaB+ML3gdPC98HuwreBykK2geZCdMHCwnLB38Ivwf3B7IHcQei
B+4GkAdvBnwH8gVmB3oFTgcFBTQHlAQYBycE+ga/A9oGWwO5BvsClgahAnIG
SwJMBvsBJQawAf0FawHTBSsBqAXxAHsFvgBOBZEAIAVqAPAESgDABDAAjwQe
AF0EEwAqBA8A9wMPAPsDDwAHBA8AGgQPADMEDwBTBA8AeAQPAKMEDwDSBA8A
BQUPADwFDwB2BQ8AsgUPAPAFDwAwBg8AcQYPALMGDwD1Bg8ANgcPAHYHDwC0
Bw8A8AcPACoIDwBhCA8AlAgPAMMIDwDuCA8AEwkPADMJDwBMCQ8AXwkPAGsJ
DwBvCRMAogkeANUJMAAHCkoAOApqAGgKkQCYCr4AxgrxAPMKKwEgC2sBSwuw
AXUL+wGdC0sCxAuhAuoL+wIODFsDMQy/A1IMJwRyDJQEkAwFBawMegXGDPIF
3gxvBvQM7gYIDXEHGg33ByoNfwg3DQsJQw2ZCUsNKQpSDbsKVg1PC1cN4wtW
DXUMUg0FDUsNkw1DDR8ONw2nDioNLQ8aDbAPCA0vEPQMrBDeDCQRxgyZEawM
ChKQDHcScgzfElIMQxMxDKMTDgz9E+oLUxTEC6MUnQvuFHULMxVLC3MVIAut
FfMK4BXGCg0WmAo0FmgKVBY4Cm4WBwqAFtUJixaiCY8WbwmPFmsJjxZfCY8W
TAmPFjMJjxYTCY8W7giPFsMIjxaUCI8WYQiPFioIjxbwB48WtAePFnYHjxY2
B48W9QaPFrMGjxZxBo8WMAaPFvAFjxayBY8WdgWPFjwFjxYFBY8W0gSPFqME
jxZ4BI8WUwSPFjMEjxYaBI8WBwSPFvsDjxb3AyUAAAAMAAAABQAAgCgAAAAM
AAAABAAAABQAAAAMAAAADQAAAFcAAAAgAwAAHQIAAIcBAACDAgAAsgEAAMEA
AACPFvcDixYqBIAWXQRuFo8EVBbABDQW8AQNFiAF4BVOBa0VewVzFagFMxXT
Be4U/QWjFCUGUxRMBv0TcgajE5YGQxO5Bt8S2gZ3EvoGChIYB5kRNAckEU4H
rBBmBy8QfAewD5AHLQ+iB6cOsgcfDr8Hkw3LBwUN0wd1DNoH4wveB08L3we7
Ct4HKQraB5kJ0wcLCcsHfwi/B/cHsgdxB6IH7gaQB28GfAfyBWYHegVOBwUF
NAeUBBgHJwT6Br8D2gZbA7kG+wKWBqECcgZLAkwG+wElBrAB/QVrAdMFKwGo
BfEAewW+AE4FkQAgBWoA8ARKAMAEMACPBB4AXQQTACoEDwD3Aw8A+wMPAAcE
DwAaBA8AMwQPAFMEDwB4BA8AowQPANIEDwAFBQ8APAUPAHYFDwCyBQ8A8AUP
ADAGDwBxBg8AswYPAPUGDwA2Bw8AdgcPALQHDwDwBw8AKggPAGEIDwCUCA8A
wwgPAO4IDwATCQ8AMwkPAEwJDwBfCQ8AawkPAG8JEwCiCR4A1QkwAAcKSgA4
CmoAaAqRAJgKvgDGCvEA8worASALawFLC7ABdQv7AZ0LSwLEC6EC6gv7Ag4M
WwMxDL8DUgwnBHIMlASQDAUFrAx6BcYM8gXeDG8G9AzuBggNcQcaDfcHKg1/
CDcNCwlDDZkJSw0pClINuwpWDU8LVw3jC1YNdQxSDQUNSw2TDUMNHw43DacO
Kg0tDxoNsA8IDS8Q9AysEN4MJBHGDJkRrAwKEpAMdxJyDN8SUgxDEzEMoxMO
DP0T6gtTFMQLoxSdC+4UdQszFUsLcxUgC60V8wrgFcYKDRaYCjQWaApUFjgK
bhYHCoAW1QmLFqIJjxZvCY8WawmPFl8JjxZMCY8WMwmPFhMJjxbuCI8WwwiP
FpQIjxZhCI8WKgiPFvAHjxa0B48WdgePFjYHjxb1Bo8WswaPFnEGjxYwBo8W
8AWPFrIFjxZ2BY8WPAWPFgUFjxbSBI8WowSPFngEjxZTBI8WMwSPFhoEjxYH
BI8W+wOPFvcDFAAAAAwAAAANAAAAJgAAABwAAAAEAAAABgAAAAUAAAAAAAAA
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
DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAwAAAAFAAAAJQAAAAwAAAAF
AACAVwAAACQAAACCAgAAkgEAANUCAACWAQAAAgAAADgoRhkvLUYZJQAAAAwA
AAAHAACAJQAAAAwAAAAAAACAJAAAACQAAAAAAIBBAAAAAAAAAAAAAIBBAAAA
AAAAAAACAAAAKAAAAAwAAAAFAAAARgAAAIgAAAB8AAAARU1GKwhAAwI8AAAA
MAAAAAEQwNsAAAAATgAAAAAAAACnPnY/AgAAAAIAAAACAAAAAgAAAAEQwNsA
AAAAAAAA/whABAMsAAAAIAAAAAEQwNsCAAAAAAAAAEAPAUM3LMpDx6uJQjcs
ykMAAQAAFUAEABAAAAAEAAAAAwAAACQAAAAkAAAAAACAPQAAAAAAAAAAAACA
PQAAAAAAAAAAAgAAAF8AAAA4AAAABQAAADgAAAAAAAAAOAAAAAAAAAAAAAEA
DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAwAAAAFAAAAJQAAAAwAAAAF
AACAVwAAACQAAABDAAAAkgEAAIMAAACWAQAAAgAAABEIRhlOBEYZJQAAAAwA
AAAHAACAJQAAAAwAAAAAAACAJAAAACQAAAAAAIBBAAAAAAAAAAAAAIBBAAAA
AAAAAAACAAAAKAAAAAwAAAAFAAAARgAAACBUAAAUVAAARU1GKyVAAAAQAAAA
BAAAAAAAAAAsQAAAJAAAABgAAAAAsfc9AAAAgAAAAICN8bk9rdTawW33skMI
QAYFsFMAAKRTAAABEMDbAgAAAAMAAACUUwAAAQAAAGwAAAD+/////v///zMB
AADnAAAAAAAAAAAAAABvHwAAkBcAACBFTUYAAAEAlFMAANsBAAAGAAAAAAAA
AAAAAAAAAAAAAAUAAAAEAABSAQAADgEAAAAAAAAAAAAAAAAAAFAoBQCwHgQA
RgAAALAiAACiIgAAR0RJQwEAAIAAAwAAuY1p3AAAAACKIgAAAQAJAAADRREA
AAYAxgAAAAAABQAAAAwCjxduHwUAAAAMAo8Xbh8HAAAAEAQBAAEAAQABAAMA
AAAeAAQAAAAEAQ0ABwAAAPwCAQAAAAAAAAAEAAAALQEAAAkAAAD6AgAAAAAA
AAAAAAAiAAQAAAAtAQEACQAAAPoCBgBBAAAAAAAAACIABAAAAC0BAgAEAAAA
LQEAAAcAAAD8AgAA////AAAABAAAAC0BAwAEAAAABgEBAMYAAAAkA2EArQRz
ESUFqRLABcYTYAbFFCMHoRXwB1UWzAjXFqgJNheYCm0XfgttF18MShdPDfoW
Jg5uFu4OuhW2D94UahC6FUYRbhYTEvoW+RJKF+4TbRfFFG0XphU2F4wW1xZt
F1UWNRihFfMYxRSdGcYTLhqpEroacxFVG5sRBByMEakcXxFOHfsQ5B1qEFce
sQ/FHtAOAR/bDTgf1wxMH8kLOB+xCgEfqAnFHrgIVx7mB+QdKAdOHZwGqRwp
BgQc9wVVG+0FuhokBi4a5ASdGb0D8xi5AjUY7AFtFy4BjBaxAKYVTQDFFCAA
7hMgAPkSPgATEp0ARhEkAWoQzgG2D6AC7g7OASYOJAFPDZ0AXww+AH4LIACY
CiAAqAlNAMwIsQDwBy4BIwfsAWAGuQLABb0DJQXkBK0EJAYDBO0FWQP3BbQC
KQYUApwGgwEoBwsB5gedALgITQCoCSUAsQogAMkLJQDXDE0A2w2dANAOCwGx
D4MBahAUAvsQtAJfEVkDjBEDBJsRrQRzEQQAAAAtAQAABAAAAAQBDQDGAAAA
JQNhAK0EcxElBakSwAXGE2AGxRQjB6EV8AdVFswI1xaoCTYXmAptF34LbRdf
DEoXTw36FiYObhbuDroVtg/eFGoQuhVGEW4WExL6FvkSShfuE20XxRRtF6YV
NheMFtcWbRdVFjUYoRXzGMUUnRnGEy4aqRK6GnMRVRubEQQcjBGpHF8RTh37
EOQdahBXHrEPxR7QDgEf2w04H9cMTB/JCzgfsQoBH6gJxR64CFce5gfkHSgH
Th2cBqkcKQYEHPcFVRvtBboaJAYuGuQEnRm9A/MYuQI1GOwBbRcuAYwWsQCm
FU0AxRQgAO4TIAD5Ej4AExKdAEYRJAFqEM4Btg+gAu4OzgEmDiQBTw2dAF8M
PgB+CyAAmAogAKgJTQDMCLEA8AcuASMH7AFgBrkCwAW9AyUF5AStBCQGAwTt
BVkD9wW0AikGFAKcBoMBKAcLAeYHnQC4CE0AqAklALEKIADJCyUA1wxNANsN
nQDQDgsBsQ+DAWoQFAL7ELQCXxFZA4wRAwSbEa0EcxEEAAAABAENAAkAAAD6
AgYAQQAAAP8AAAAiAAQAAAAtAQQABAAAAPABAgAMAAAAJQMEAGYP7BA2CCwI
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
ZwnXB3EJ6wdxCf8HcQkTCHEJIghnCTYIYglFCE4JWQg/CWgITgl8CGIJiwhn
CZoIcQmzCHEJxwhxCdEIcQnqCGcJ/ghiCQ0JTgkcCT8JKwkmCToJDQlECfQI
Tgn0CF0J9AhsCfQIdgnqCIUJ4AiUCcwImQm9CJ4JqQijCZAIowl8CKMJaAie
CU8ImQk7CJQJLAiFCRgIdgkOCGwJBAhdCQQITgkECEQJBAg6CesHKwnSBxwJ
uQcNCaoH/giWB+oIkQfRCIcHxwiHB7MIhweaCIcHiwiRB3wIlgdoCKoHWQi5
B0UIqgc2CJYHIgiRBxMIhwf/B4cH6weHB9cHhwfDB5EHtAeWB6AHqgeWB7kH
hwfSB3MH6wduBwQIXwcECFUHBAhGBwQIPAcOCC0HGAgeBywIGQc7CA8HTwgP
B2gIDwd8CA8HkAgPB6kIGQe9CB4HzAgtB+AIPAfqCEYH9AhVB/QIXwf0CG4H
9AgEAAAALQEAAAQAAAAEAQ0AxgAAACUDYQBuB/QIcwcNCYcHJgmWBz8JoAdO
CbQHYgnDB2cJ1wdxCesHcQn/B3EJEwhxCSIIZwk2CGIJRQhOCVkIPwloCE4J
fAhiCYsIZwmaCHEJswhxCccIcQnRCHEJ6ghnCf4IYgkNCU4JHAk/CSsJJgk6
CQ0JRAn0CE4J9AhdCfQIbAn0CHYJ6giFCeAIlAnMCJkJvQieCakIowmQCKMJ
fAijCWgInglPCJkJOwiUCSwIhQkYCHYJDghsCQQIXQkECE4JBAhECQQIOgnr
BysJ0gccCbkHDQmqB/4IlgfqCJEH0QiHB8cIhwezCIcHmgiHB4sIkQd8CJYH
aAiqB1kIuQdFCKoHNgiWByIIkQcTCIcH/weHB+sHhwfXB4cHwweRB7QHlgeg
B6oHlge5B4cH0gdzB+sHbgcECF8HBAhVBwQIRgcECDwHDggtBxgIHgcsCBkH
OwgPB08IDwdoCA8HfAgPB5AIDwepCBkHvQgeB8wILQfgCDwH6ghGB/QIVQf0
CF8H9AhuB/QIBAAAAAQBDQAJAAAA+gIGAB4AAAAAAAAAIgAEAAAALQECAAQA
AADwAQUABAAAAC0BAAAHAAAA/AIAAH9/fwAAAAQAAAAtAQUABAAAAAYBAQAO
AAAAJAMFAMoUNApRFbIJNBmyCa0YNArKFDQKBAAAAC0BAAAEAAAA8AEFAAQA
AAAEAQ0ADgAAACUDBQDKFDQKURWyCTQZsgmtGDQKyhQ0CgQAAAAEAQ0ABAAA
AC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFAMoU
LwqyGC8KshjtCsoU7QrKFC8KBAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAA
ACUDBQDKFC8KshgvCrIY7QrKFO0KyhQvCgQAAAAEAQ0ABAAAAC0BAAAHAAAA
/AIAAKWlpQAAAAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFALIY8go0GWYKNBmy
CbIYNAqyGPIKBAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAAACUDBQCyGPIK
NBlmCjQZsgmyGDQKshjyCgQAAAAEAQ0ABAAAAC0BAAAHAAAA/AIAANjY2AAA
AAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFAM8U8QY4FY0GGxmNBrIY8QbPFPEG
BAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAAACUDBQDPFPEGOBWNBhsZjQay
GPEGzxTxBgQAAAAEAQ0ABAAAAC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUA
BAAAAAYBAQAOAAAAJAMFAMoUDAqyGAwKshjsBsoU7AbKFAwKBAAAAC0BAAAE
AAAA8AEFAAQAAAAEAQ0ADgAAACUDBQDKFAwKshgMCrIY7AbKFOwGyhQMCgQA
AAAEAQ0ABAAAAC0BAAAHAAAA/AIAAKWlpQAAAAQAAAAtAQUABAAAAAYBAQAO
AAAAJAMFABsZiAatGPEGrRgMChsZowkbGYgGBAAAAC0BAAAEAAAA8AEFAAQA
AAAEAQ0ADgAAACUDBQAbGYgGrRjxBq0YDAobGaMJGxmIBgQAAAAEAQ0ABAAA
AC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFANoT
2At6FBALvBgQCxwY2AvaE9gLBAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAA
ACUDBQDaE9gLehQQC7wYEAscGNgL2hPYCwQAAAAEAQ0ABAAAAC0BAAAHAAAA
/AIAAL+/vwAAAAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFANoT2At6FBALvBgQ
CxwY2AvaE9gLBAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAAACUDBQDaE9gL
ehQQC7wYEAscGNgL2hPYCwQAAAAEAQ0ABAAAAC0BAAAHAAAA/AIAAKWlpQAA
AAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFACEYAAy3GFYLtxgVCyEY0wshGAAM
BAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAAACUDBQAhGAAMtxhWC7cYFQsh
GNMLIRgADAQAAAAEAQ0ABAAAAC0BAAAHAAAA/AIAAKWlpQAAAAQAAAAtAQUA
BAAAAAYBAQAOAAAAJAMFACEYAAy3GFYLtxgVCyEY0wshGAAMBAAAAC0BAAAE
AAAA8AEFAAQAAAAEAQ0ADgAAACUDBQAhGAAMtxhWC7cYFQshGNMLIRgADAQA
AAAEAQ0ABAAAAC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUABAAAAAYBAQAO
AAAAJAMFAN8T2AshGNgLIRgADN8TAAzfE9gLBAAAAC0BAAAEAAAA8AEFAAQA
AAAEAQ0ADgAAACUDBQDfE9gLIRjYCyEYAAzfEwAM3xPYCwQAAAAEAQ0ABAAA
AC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFAN8T
2AshGNgLIRgADN8TAAzfE9gLBAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAA
ACUDBQDfE9gLIRjYCyEYAAzfEwAM3xPYCwQAAAAEAQ0ABAAAAC0BAAAEAAAA
LQEEAAQAAAAGAQEADgAAACQDBQBTGFAHKRVQBykVqAlTGKgJUxhQBwQAAAAt
AQAABAAAAAQBDQAOAAAAJQMFAFMYUAcpFVAHKRWoCVMYqAlTGFAHBAAAAAQB
DQAFAAAAFAKYCnwXBQAAABMCmApEGAQAAAAEAQ0ACQAAAPoCBgBBAAAAAAAA
ACIABAAAAC0BBQAEAAAA8AECAAQAAAAtAQAABAAAAC0BAwAEAAAABgEBAMYA
AAAkA2EAzhX0CNMVDQnnFSYJ9hU/CQAWTgkUFmIJIxZnCTcWcQlLFnEJXxZx
CXMWcQmCFmcJlhZiCaUWTgm5Fj8JyBZOCdwWYgnrFmcJ+hZxCRMXcQknF3EJ
MRdxCUoXZwleF2IJbRdOCXwXPwmLFyYJmhcNCaQX9AiuF/QIvRf0CMwX9AjW
F+oI5RfgCPQXzAj5F70I/hepCAMYkAgDGHwIAxhoCP4XTwj5FzsI9BcsCOUX
GAjWFw4IzBcECL0XBAiuFwQIpBcECJoX6weLF9IHfBe5B20XqgdeF5YHSheR
BzEXhwcnF4cHExeHB/oWhwfrFpEH3BaWB8gWqge5FrkHpRaqB5YWlgeCFpEH
cxaHB18WhwdLFocHNxaHByMWkQcUFpYHABaqB/YVuQfnFdIH0xXrB84VBAi/
FQQItRUECKYVBAicFQ4IjRUYCH4VLAh5FTsIbxVPCG8VaAhvFXwIbxWQCG8V
qQh5Fb0IfhXMCI0V4AicFeoIphX0CLUV9Ai/FfQIzhX0CAQAAAAtAQAABAAA
AAQBDQDGAAAAJQNhAM4V9AjTFQ0J5xUmCfYVPwkAFk4JFBZiCSMWZwk3FnEJ
SxZxCV8WcQlzFnEJghZnCZYWYgmlFk4JuRY/CcgWTgncFmIJ6xZnCfoWcQkT
F3EJJxdxCTEXcQlKF2cJXhdiCW0XTgl8Fz8JixcmCZoXDQmkF/QIrhf0CL0X
9AjMF/QI1hfqCOUX4Aj0F8wI+Re9CP4XqQgDGJAIAxh8CAMYaAj+F08I+Rc7
CPQXLAjlFxgI1hcOCMwXBAi9FwQIrhcECKQXBAiaF+sHixfSB3wXuQdtF6oH
XheWB0oXkQcxF4cHJxeHBxMXhwf6FocH6xaRB9wWlgfIFqoHuRa5B6UWqgeW
FpYHghaRB3MWhwdfFocHSxaHBzcWhwcjFpEHFBaWBwAWqgf2FbkH5xXSB9MV
6wfOFQQIvxUECLUVBAimFQQInBUOCI0VGAh+FSwIeRU7CG8VTwhvFWgIbxV8
CG8VkAhvFakIeRW9CH4VzAiNFeAInBXqCKYV9Ai1FfQIvxX0CM4V9AgEAAAA
BAENAAkAAAD6AgYAHgAAAAAAAAAiAAQAAAAtAQIABAAAAPABBQAEAAAALQEA
AAcAAAD8AgAAf39/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUASg20EdEN
MhG0ETIRLRG0EUoNtBEEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMF
AEoNtBHRDTIRtBEyES0RtBFKDbQRBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAA
v7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUASg2vETIRrxEyEW0SSg1t
EkoNrxEEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMFAEoNrxEyEa8R
MhFtEkoNbRJKDa8RBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAApaWlAAAABAAA
AC0BBQAEAAAABgEBAA4AAAAkAwUAMhFyErQR5hG0ETIRMhG0ETIRchIEAAAA
LQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMFADIRchK0EeYRtBEyETIRtBEy
EXISBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAA2NjYAAAABAAAAC0BBQAEAAAA
BgEBAA4AAAAkAwUATw1xDrgNDQ6bEQ0OMhFxDk8NcQ4EAAAALQEAAAQAAADw
AQUABAAAAAQBDQAOAAAAJQMFAE8NcQ64DQ0OmxENDjIRcQ5PDXEOBAAAAAQB
DQAEAAAALQEAAAcAAAD8AgAAv7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAk
AwUASg2METIRjBEyEWwOSg1sDkoNjBEEAAAALQEAAAQAAADwAQUABAAAAAQB
DQAOAAAAJQMFAEoNjBEyEYwRMhFsDkoNbA5KDYwRBAAAAAQBDQAEAAAALQEA
AAcAAAD8AgAApaWlAAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUAmxEIDi0R
cQ4tEYwRmxEjEZsRCA4EAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMF
AJsRCA4tEXEOLRGMEZsRIxGbEQgOBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAA
v7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUAWgxYE/oMkBI8EZASnBBY
E1oMWBMEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMFAFoMWBP6DJAS
PBGQEpwQWBNaDFgTBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAAv7+/AAAABAAA
AC0BBQAEAAAABgEBAA4AAAAkAwUAWgxYE/oMkBI8EZASnBBYE1oMWBMEAAAA
LQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMFAFoMWBP6DJASPBGQEpwQWBNa
DFgTBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAApaWlAAAABAAAAC0BBQAEAAAA
BgEBAA4AAAAkAwUAoRCAEzcR1hI3EZUSoRBTE6EQgBMEAAAALQEAAAQAAADw
AQUABAAAAAQBDQAOAAAAJQMFAKEQgBM3EdYSNxGVEqEQUxOhEIATBAAAAAQB
DQAEAAAALQEAAAcAAAD8AgAApaWlAAAABAAAAC0BBQAEAAAABgEBAA4AAAAk
AwUAoRCAEzcR1hI3EZUSoRBTE6EQgBMEAAAALQEAAAQAAADwAQUABAAAAAQB
DQAOAAAAJQMFAKEQgBM3EdYSNxGVEqEQUxOhEIATBAAAAAQBDQAEAAAALQEA
AAcAAAD8AgAAv7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUAXwxYE6EQ
WBOhEIATXwyAE18MWBMEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMF
AF8MWBOhEFgToRCAE18MgBNfDFgTBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAA
v7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUAXwxYE6EQWBOhEIATXwyA
E18MWBMEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMFAF8MWBOhEFgT
oRCAE18MgBNfDFgTBAAAAAQBDQAEAAAALQEAAAQAAAAtAQQABAAAAAYBAQAO
AAAAJAMFANMQ0A6pDdAOqQ0oEdMQKBHTENAOBAAAAC0BAAAEAAAABAENAA4A
AAAlAwUA0xDQDqkN0A6pDSgR0xAoEdMQ0A4EAAAABAENAAUAAAAUAhgS/A8F
AAAAEwIYEsQQBAAAAAQBDQAJAAAA+gIGAEEAAAAAAAAAIgAEAAAALQEFAAQA
AADwAQIABAAAAC0BAAAEAAAALQEDAAQAAAAGAQEAxgAAACQDYQBODnQQUw6N
EGcOphB2Dr8QgA7OEJQO4hCjDucQtw7xEMsO8RDfDvEQ8w7xEAIP5xAWD+IQ
JQ/OEDkPvxBID84QXA/iEGsP5xB6D/EQkw/xEKcP8RCxD/EQyg/nEN4P4hDt
D84Q/A+/EAsQphAaEI0QJBB0EC4QdBA9EHQQTBB0EFYQahBlEGAQdBBMEHkQ
PRB+ECkQgxAQEIMQ/A+DEOgPfhDPD3kQuw90EKwPZRCYD1YQjg9MEIQPPRCE
Dy4QhA8kEIQPGhBrDwsQUg/8DzkP7Q8qD94PFg/KDxEPsQ8HD6cPBw+TDwcP
eg8HD2sPEQ9cDxYPSA8qDzkPOQ8lDyoPFg8WDwIPEQ/zDgcP3w4HD8sOBw+3
DgcPow4RD5QOFg+ADioPdg45D2cOUg9TDmsPTg6EDz8OhA81DoQPJg6EDxwO
jg8NDpgP/g2sD/kNuw/vDc8P7w3oD+8N/A/vDRAQ7w0pEPkNPRD+DUwQDQ5g
EBwOahAmDnQQNQ50ED8OdBBODnQQBAAAAC0BAAAEAAAABAENAMYAAAAlA2EA
Tg50EFMOjRBnDqYQdg6/EIAOzhCUDuIQow7nELcO8RDLDvEQ3w7xEPMO8RAC
D+cQFg/iECUPzhA5D78QSA/OEFwP4hBrD+cQeg/xEJMP8RCnD/EQsQ/xEMoP
5xDeD+IQ7Q/OEPwPvxALEKYQGhCNECQQdBAuEHQQPRB0EEwQdBBWEGoQZRBg
EHQQTBB5ED0QfhApEIMQEBCDEPwPgxDoD34Qzw95ELsPdBCsD2UQmA9WEI4P
TBCEDz0QhA8uEIQPJBCEDxoQaw8LEFIP/A85D+0PKg/eDxYPyg8RD7EPBw+n
DwcPkw8HD3oPBw9rDxEPXA8WD0gPKg85DzkPJQ8qDxYPFg8CDxEP8w4HD98O
Bw/LDgcPtw4HD6MOEQ+UDhYPgA4qD3YOOQ9nDlIPUw5rD04OhA8/DoQPNQ6E
DyYOhA8cDo4PDQ6YD/4NrA/5DbsP7w3PD+8N6A/vDfwP7w0QEO8NKRD5DT0Q
/g1MEA0OYBAcDmoQJg50EDUOdBA/DnQQTg50EAQAAAAEAQ0ABAAAACcB//8e
AAAAJgYPADEAQ29weXJpZ2h0IKkgMTk5NiBNaWNyb3N5c3RlbXMgRW5naW5l
ZXJpbmcgQ29tcGFueQAPAAAAJgYPABMAQWxsIFJpZ2h0cyBSZXNlcnZlZAAE
AAAA8AEBAAMAAAAAAAAAEQAAAAwAAAAIAAAACwAAABAAAAAxAQAA5QAAAAkA
AAAQAAAAMQEAAOUAAAAJAAAAEAAAAG4fAACPFwAACQAAABAAAABuHwAAjxcA
ACAAAAAYAAAAAQAAAAEAAAABAAAAAQAAACEAAAAIAAAAFAAAAAwAAAANAAAA
JQAAAAwAAAAFAACAJgAAABwAAAABAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAM
AAAAAQAAACYAAAAcAAAAAgAAAAYAAABBAAAAAAAAAAAAAAAlAAAADAAAAAIA
AAAlAAAADAAAAAUAAIAnAAAAGAAAAAMAAAAAAAAA////AAAAAAAlAAAADAAA
AAMAAAATAAAADAAAAAEAAABWAAAAoAEAAP7////+////MwEAAOcAAABhAAAA
rQRzESUFqRLABcYTYAbFFCMHoRXwB1UWzAjXFqgJNheYCm0XfgttF18MShdP
DfoWJg5uFu4OuhW2D94UahC6FUYRbhYTEvoW+RJKF+4TbRfFFG0XphU2F4wW
1xZtF1UWNRihFfMYxRSdGcYTLhqpEroacxFVG5sRBByMEakcXxFOHfsQ5B1q
EFcesQ/FHtAOAR/bDTgf1wxMH8kLOB+xCgEfqAnFHrgIVx7mB+QdKAdOHZwG
qRwpBgQc9wVVG+0FuhokBi4a5ASdGb0D8xi5AjUY7AFtFy4BjBaxAKYVTQDF
FCAA7hMgAPkSPgATEp0ARhEkAWoQzgG2D6AC7g7OASYOJAFPDZ0AXww+AH4L
IACYCiAAqAlNAMwIsQDwBy4BIwfsAWAGuQLABb0DJQXkBK0EJAYDBO0FWQP3
BbQCKQYUApwGgwEoBwsB5gedALgITQCoCSUAsQogAMkLJQDXDE0A2w2dANAO
CwGxD4MBahAUAvsQtAJfEVkDjBEDBJsRrQRzESUAAAAMAAAABQAAgBQAAAAM
AAAADQAAAFcAAACgAQAA/v////7///8zAQAA5wAAAGEAAACtBHMRJQWpEsAF
xhNgBsUUIwehFfAHVRbMCNcWqAk2F5gKbRd+C20XXwxKF08N+hYmDm4W7g66
FbYP3hRqELoVRhFuFhMS+hb5EkoX7hNtF8UUbRemFTYXjBbXFm0XVRY1GKEV
8xjFFJ0ZxhMuGqkSuhpzEVUbmxEEHIwRqRxfEU4d+xDkHWoQVx6xD8Ue0A4B
H9sNOB/XDEwfyQs4H7EKAR+oCcUeuAhXHuYH5B0oB04dnAapHCkGBBz3BVUb
7QW6GiQGLhrkBJ0ZvQPzGLkCNRjsAW0XLgGMFrEAphVNAMUUIADuEyAA+RI+
ABMSnQBGESQBahDOAbYPoALuDs4BJg4kAU8NnQBfDD4AfgsgAJgKIACoCU0A
zAixAPAHLgEjB+wBYAa5AsAFvQMlBeQErQQkBgME7QVZA/cFtAIpBhQCnAaD
ASgHCwHmB50AuAhNAKgJJQCxCiAAyQslANcMTQDbDZ0A0A4LAbEPgwFqEBQC
+xC0Al8RWQOMEQMEmxGtBHMRFAAAAAwAAAANAAAAJgAAABwAAAAEAAAABgAA
AEEAAAAAAAAA/wAAACUAAAAMAAAABAAAACgAAAAMAAAAAgAAAFcAAAAsAAAA
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
XgAAAAUAAADzCVAHyQZQB8kGqAnzCagJ8wlQBxQAAAAMAAAADQAAABsAAAAQ
AAAAHAkAAJgKAAA2AAAAEAAAAOQJAACYCgAAFAAAAAwAAAANAAAAJgAAABwA
AAAFAAAABgAAAEEAAAAAAAAAAAAAACUAAAAMAAAABQAAACgAAAAMAAAAAgAA
ACUAAAAMAAAABQAAgCUAAAAMAAAAAwAAABMAAAAMAAAAAQAAAFYAAACgAQAA
QgAAAEYAAABhAAAAXwAAAGEAAABuB/QIcwcNCYcHJgmWBz8JoAdOCbQHYgnD
B2cJ1wdxCesHcQn/B3EJEwhxCSIIZwk2CGIJRQhOCVkIPwloCE4JfAhiCYsI
ZwmaCHEJswhxCccIcQnRCHEJ6ghnCf4IYgkNCU4JHAk/CSsJJgk6CQ0JRAn0
CE4J9AhdCfQIbAn0CHYJ6giFCeAIlAnMCJkJvQieCakIowmQCKMJfAijCWgI
nglPCJkJOwiUCSwIhQkYCHYJDghsCQQIXQkECE4JBAhECQQIOgnrBysJ0gcc
CbkHDQmqB/4IlgfqCJEH0QiHB8cIhwezCIcHmgiHB4sIkQd8CJYHaAiqB1kI
uQdFCKoHNgiWByIIkQcTCIcH/weHB+sHhwfXB4cHwweRB7QHlgegB6oHlge5
B4cH0gdzB+sHbgcECF8HBAhVBwQIRgcECDwHDggtBxgIHgcsCBkHOwgPB08I
DwdoCA8HfAgPB5AIDwepCBkHvQgeB8wILQfgCDwH6ghGB/QIVQf0CF8H9Ahu
B/QIJQAAAAwAAAAFAACAFAAAAAwAAAANAAAAVwAAAKABAABCAAAARgAAAGEA
AABfAAAAYQAAAG4H9AhzBw0JhwcmCZYHPwmgB04JtAdiCcMHZwnXB3EJ6wdx
Cf8HcQkTCHEJIghnCTYIYglFCE4JWQg/CWgITgl8CGIJiwhnCZoIcQmzCHEJ
xwhxCdEIcQnqCGcJ/ghiCQ0JTgkcCT8JKwkmCToJDQlECfQITgn0CF0J9Ahs
CfQIdgnqCIUJ4AiUCcwImQm9CJ4JqQijCZAIowl8CKMJaAieCU8ImQk7CJQJ
LAiFCRgIdgkOCGwJBAhdCQQITgkECEQJBAg6CesHKwnSBxwJuQcNCaoH/giW
B+oIkQfRCIcHxwiHB7MIhweaCIcHiwiRB3wIlgdoCKoHWQi5B0UIqgc2CJYH
IgiRBxMIhwf/B4cH6weHB9cHhwfDB5EHtAeWB6AHqgeWB7kHhwfSB3MH6wdu
BwQIXwcECFUHBAhGBwQIPAcOCC0HGAgeBywIGQc7CA8HTwgPB2gIDwd8CA8H
kAgPB6kIGQe9CB4HzAgtB+AIPAfqCEYH9AhVB/QIXwf0CG4H9AgUAAAADAAA
AA0AAAAmAAAAHAAAAAIAAAAGAAAAHgAAAAAAAAAAAAAAJQAAAAwAAAACAAAA
KAAAAAwAAAAFAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAH9/fwAA
AAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADKAAAAXgAAAPUA
AABjAAAABQAAAMoUNApRFbIJNBmyCa0YNArKFDQKJQAAAAwAAAAFAACAKAAA
AAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADKAAAAXgAAAPUAAABjAAAA
BQAAAMoUNApRFbIJNBmyCa0YNArKFDQKFAAAAAwAAAANAAAAJQAAAAwAAAAF
AACAJwAAABgAAAAFAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAAFAAAAEwAAAAwA
AAABAAAAVgAAADAAAADKAAAAYwAAAPAAAABqAAAABQAAAMoULwqyGC8Kshjt
CsoU7QrKFC8KJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAA
VwAAADAAAADKAAAAYwAAAPAAAABqAAAABQAAAMoULwqyGC8KshjtCsoU7QrK
FC8KFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAKWl
pQAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADwAAAAXgAA
APUAAABqAAAABQAAALIY8go0GWYKNBmyCbIYNAqyGPIKJQAAAAwAAAAFAACA
KAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADwAAAAXgAAAPUAAABq
AAAABQAAALIY8go0GWYKNBmyCbIYNAqyGPIKFAAAAAwAAAANAAAAJQAAAAwA
AAAFAACAJwAAABgAAAAFAAAAAAAAANjY2AAAAAAAJQAAAAwAAAAFAAAAEwAA
AAwAAAABAAAAVgAAADAAAADKAAAAQAAAAPQAAABEAAAABQAAAM8U8QY4FY0G
GxmNBrIY8QbPFPEGJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAAN
AAAAVwAAADAAAADKAAAAQAAAAPQAAABDAAAABQAAAM8U8QY4FY0GGxmNBrIY
8QbPFPEGFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAA
AL+/vwAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADKAAAA
QwAAAPAAAABiAAAABQAAAMoUDAqyGAwKshjsBsoU7AbKFAwKJQAAAAwAAAAF
AACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADKAAAAQwAAAPAA
AABiAAAABQAAAMoUDAqyGAwKshjsBsoU7AbKFAwKFAAAAAwAAAANAAAAJQAA
AAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAKWlpQAAAAAAJQAAAAwAAAAFAAAA
EwAAAAwAAAABAAAAVgAAADAAAADvAAAAQAAAAPQAAABiAAAABQAAABsZiAat
GPEGrRgMChsZowkbGYgGJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwA
AAANAAAAVwAAADAAAADvAAAAPwAAAPQAAABiAAAABQAAABsZiAatGPEGrRgM
ChsZowkbGYgGFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAA
AAAAAL+/vwAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADB
AAAAbAAAAPAAAABzAAAABQAAANoT2At6FBALvBgQCxwY2AvaE9gLJQAAAAwA
AAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADBAAAAbAAA
APAAAABzAAAABQAAANoT2At6FBALvBgQCxwY2AvaE9gLFAAAAAwAAAANAAAA
JQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAAF
AAAAEwAAAAwAAAABAAAAVgAAADAAAADBAAAAbAAAAPAAAABzAAAABQAAANoT
2At6FBALvBgQCxwY2AvaE9gLJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAA
AAwAAAANAAAAVwAAADAAAADBAAAAbAAAAPAAAABzAAAABQAAANoT2At6FBAL
vBgQCxwY2AvaE9gLFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAF
AAAAAAAAAKWlpQAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAA
AADqAAAAbAAAAPAAAAB1AAAABQAAACEYAAy3GFYLtxgVCyEY0wshGAAMJQAA
AAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADqAAAA
bAAAAPAAAAB1AAAABQAAACEYAAy3GFYLtxgVCyEY0wshGAAMFAAAAAwAAAAN
AAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAKWlpQAAAAAAJQAAAAwA
AAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADqAAAAbAAAAPAAAAB1AAAABQAA
ACEYAAy3GFYLtxgVCyEY0wshGAAMJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAA
FAAAAAwAAAANAAAAVwAAADAAAADqAAAAbAAAAPAAAAB1AAAABQAAACEYAAy3
GFYLtxgVCyEY0wshGAAMFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgA
AAAFAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAA
ADAAAADBAAAAcwAAAOoAAAB1AAAABQAAAN8T2AshGNgLIRgADN8TAAzfE9gL
JQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADB
AAAAcwAAAOoAAAB1AAAABQAAAN8T2AshGNgLIRgADN8TAAzfE9gLFAAAAAwA
AAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAL+/vwAAAAAAJQAA
AAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADBAAAAcwAAAOoAAAB1AAAA
BQAAAN8T2AshGNgLIRgADN8TAAzfE9gLJQAAAAwAAAAFAACAKAAAAAwAAAAF
AAAAFAAAAAwAAAANAAAAVwAAADAAAADBAAAAcwAAAOoAAAB1AAAABQAAAN8T
2AshGNgLIRgADN8TAAzfE9gLFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJQAA
AAwAAAAEAAAAEwAAAAwAAAABAAAAVgAAADAAAADNAAAARwAAAOwAAABeAAAA
BQAAAFMYUAcpFVAHKRWoCVMYqAlTGFAHJQAAAAwAAAAFAACAFAAAAAwAAAAN
AAAAVwAAADAAAADNAAAARwAAAOwAAABeAAAABQAAAFMYUAcpFVAHKRWoCVMY
qAlTGFAHFAAAAAwAAAANAAAAGwAAABAAAAB8FwAAmAoAADYAAAAQAAAARBgA
AJgKAAAUAAAADAAAAA0AAAAmAAAAHAAAAAUAAAAGAAAAQQAAAAAAAAAAAAAA
JQAAAAwAAAAFAAAAKAAAAAwAAAACAAAAJQAAAAwAAAAFAACAJQAAAAwAAAAD
AAAAEwAAAAwAAAABAAAAVgAAAKABAADNAAAARgAAAOwAAABfAAAAYQAAAM4V
9AjTFQ0J5xUmCfYVPwkAFk4JFBZiCSMWZwk3FnEJSxZxCV8WcQlzFnEJghZn
CZYWYgmlFk4JuRY/CcgWTgncFmIJ6xZnCfoWcQkTF3EJJxdxCTEXcQlKF2cJ
XhdiCW0XTgl8Fz8JixcmCZoXDQmkF/QIrhf0CL0X9AjMF/QI1hfqCOUX4Aj0
F8wI+Re9CP4XqQgDGJAIAxh8CAMYaAj+F08I+Rc7CPQXLAjlFxgI1hcOCMwX
BAi9FwQIrhcECKQXBAiaF+sHixfSB3wXuQdtF6oHXheWB0oXkQcxF4cHJxeH
BxMXhwf6FocH6xaRB9wWlgfIFqoHuRa5B6UWqgeWFpYHghaRB3MWhwdfFocH
SxaHBzcWhwcjFpEHFBaWBwAWqgf2FbkH5xXSB9MV6wfOFQQIvxUECLUVBAim
FQQInBUOCI0VGAh+FSwIeRU7CG8VTwhvFWgIbxV8CG8VkAhvFakIeRW9CH4V
zAiNFeAInBXqCKYV9Ai1FfQIvxX0CM4V9AglAAAADAAAAAUAAIAUAAAADAAA
AA0AAABXAAAAoAEAAM0AAABGAAAA7AAAAF8AAABhAAAAzhX0CNMVDQnnFSYJ
9hU/CQAWTgkUFmIJIxZnCTcWcQlLFnEJXxZxCXMWcQmCFmcJlhZiCaUWTgm5
Fj8JyBZOCdwWYgnrFmcJ+hZxCRMXcQknF3EJMRdxCUoXZwleF2IJbRdOCXwX
PwmLFyYJmhcNCaQX9AiuF/QIvRf0CMwX9AjWF+oI5RfgCPQXzAj5F70I/hep
CAMYkAgDGHwIAxhoCP4XTwj5FzsI9BcsCOUXGAjWFw4IzBcECL0XBAiuFwQI
pBcECJoX6weLF9IHfBe5B20XqgdeF5YHSheRBzEXhwcnF4cHExeHB/oWhwfr
FpEH3BaWB8gWqge5FrkHpRaqB5YWlgeCFpEHcxaHB18WhwdLFocHNxaHByMW
kQcUFpYHABaqB/YVuQfnFdIH0xXrB84VBAi/FQQItRUECKYVBAicFQ4IjRUY
CH4VLAh5FTsIbxVPCG8VaAhvFXwIbxWQCG8VqQh5Fb0IfhXMCI0V4AicFeoI
phX0CLUV9Ai/FfQIzhX0CBQAAAAMAAAADQAAACYAAAAcAAAAAgAAAAYAAAAe
AAAAAAAAAAAAAAAlAAAADAAAAAIAAAAoAAAADAAAAAUAAAAlAAAADAAAAAUA
AIAnAAAAGAAAAAUAAAAAAAAAf39/AAAAAAAlAAAADAAAAAUAAAATAAAADAAA
AAEAAABWAAAAMAAAAIEAAACnAAAArAAAAKwAAAAFAAAASg20EdENMhG0ETIR
LRG0EUoNtBElAAAADAAAAAUAAIAoAAAADAAAAAUAAAAUAAAADAAAAA0AAABX
AAAAMAAAAIEAAACnAAAArAAAAKwAAAAFAAAASg20EdENMhG0ETIRLRG0EUoN
tBEUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAAGAAAAAUAAAAAAAAAv7+/
AAAAAAAlAAAADAAAAAUAAAATAAAADAAAAAEAAABWAAAAMAAAAIEAAACsAAAA
pwAAALMAAAAFAAAASg2vETIRrxEyEW0SSg1tEkoNrxElAAAADAAAAAUAAIAo
AAAADAAAAAUAAAAUAAAADAAAAA0AAABXAAAAMAAAAIEAAACsAAAApwAAALMA
AAAFAAAASg2vETIRrxEyEW0SSg1tEkoNrxEUAAAADAAAAA0AAAAlAAAADAAA
AAUAAIAnAAAAGAAAAAUAAAAAAAAApaWlAAAAAAAlAAAADAAAAAUAAAATAAAA
DAAAAAEAAABWAAAAMAAAAKcAAACnAAAArAAAALMAAAAFAAAAMhFyErQR5hG0
ETIRMhG0ETIRchIlAAAADAAAAAUAAIAoAAAADAAAAAUAAAAUAAAADAAAAA0A
AABXAAAAMAAAAKcAAACnAAAArAAAALMAAAAFAAAAMhFyErQR5hG0ETIRMhG0
ETIRchIUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAAGAAAAAUAAAAAAAAA
2NjYAAAAAAAlAAAADAAAAAUAAAATAAAADAAAAAEAAABWAAAAMAAAAIEAAACJ
AAAAqwAAAIwAAAAFAAAATw1xDrgNDQ6bEQ0OMhFxDk8NcQ4lAAAADAAAAAUA
AIAoAAAADAAAAAUAAAAUAAAADAAAAA0AAABXAAAAMAAAAIEAAACJAAAAqwAA
AIwAAAAFAAAATw1xDrgNDQ6bEQ0OMhFxDk8NcQ4UAAAADAAAAA0AAAAlAAAA
DAAAAAUAAIAnAAAAGAAAAAUAAAAAAAAAv7+/AAAAAAAlAAAADAAAAAUAAAAT
AAAADAAAAAEAAABWAAAAMAAAAIEAAACMAAAApwAAAKsAAAAFAAAASg2METIR
jBEyEWwOSg1sDkoNjBElAAAADAAAAAUAAIAoAAAADAAAAAUAAAAUAAAADAAA
AA0AAABXAAAAMAAAAIEAAACMAAAApwAAAKsAAAAFAAAASg2METIRjBEyEWwO
Sg1sDkoNjBEUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAAGAAAAAUAAAAA
AAAApaWlAAAAAAAlAAAADAAAAAUAAAATAAAADAAAAAEAAABWAAAAMAAAAKcA
AACIAAAAqwAAAKsAAAAFAAAAmxEIDi0RcQ4tEYwRmxEjEZsRCA4lAAAADAAA
AAUAAIAoAAAADAAAAAUAAAAUAAAADAAAAA0AAABXAAAAMAAAAKcAAACIAAAA
qwAAAKsAAAAFAAAAmxEIDi0RcQ4tEYwRmxEjEZsRCA4UAAAADAAAAA0AAAAl
AAAADAAAAAUAAIAnAAAAGAAAAAUAAAAAAAAAv7+/AAAAAAAlAAAADAAAAAUA
AAATAAAADAAAAAEAAABWAAAAMAAAAHgAAAC0AAAApwAAALwAAAAFAAAAWgxY
E/oMkBI8EZASnBBYE1oMWBMlAAAADAAAAAUAAIAoAAAADAAAAAUAAAAUAAAA
DAAAAA0AAABXAAAAMAAAAHgAAAC0AAAApwAAALwAAAAFAAAAWgxYE/oMkBI8
EZASnBBYE1oMWBMUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAAGAAAAAUA
AAAAAAAAv7+/AAAAAAAlAAAADAAAAAUAAAATAAAADAAAAAEAAABWAAAAMAAA
AHgAAAC0AAAApwAAALwAAAAFAAAAWgxYE/oMkBI8EZASnBBYE1oMWBMlAAAA
DAAAAAUAAIAoAAAADAAAAAUAAAAUAAAADAAAAA0AAABXAAAAMAAAAHgAAAC0
AAAApwAAALwAAAAFAAAAWgxYE/oMkBI8EZASnBBYE1oMWBMUAAAADAAAAA0A
AAAlAAAADAAAAAUAAIAnAAAAGAAAAAUAAAAAAAAApaWlAAAAAAAlAAAADAAA
AAUAAAATAAAADAAAAAEAAABWAAAAMAAAAKEAAAC1AAAApwAAAL4AAAAFAAAA
oRCAEzcR1hI3EZUSoRBTE6EQgBMlAAAADAAAAAUAAIAoAAAADAAAAAUAAAAU
AAAADAAAAA0AAABXAAAAMAAAAKEAAAC1AAAApwAAAL4AAAAFAAAAoRCAEzcR
1hI3EZUSoRBTE6EQgBMUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAAGAAA
AAUAAAAAAAAApaWlAAAAAAAlAAAADAAAAAUAAAATAAAADAAAAAEAAABWAAAA
MAAAAKEAAAC1AAAApwAAAL4AAAAFAAAAoRCAEzcR1hI3EZUSoRBTE6EQgBMl
AAAADAAAAAUAAIAoAAAADAAAAAUAAAAUAAAADAAAAA0AAABXAAAAMAAAAKEA
AAC1AAAApwAAAL4AAAAFAAAAoRCAEzcR1hI3EZUSoRBTE6EQgBMUAAAADAAA
AA0AAAAlAAAADAAAAAUAAIAnAAAAGAAAAAUAAAAAAAAAv7+/AAAAAAAlAAAA
DAAAAAUAAAATAAAADAAAAAEAAABWAAAAMAAAAHgAAAC8AAAAoQAAAL4AAAAF
AAAAXwxYE6EQWBOhEIATXwyAE18MWBMlAAAADAAAAAUAAIAoAAAADAAAAAUA
AAAUAAAADAAAAA0AAABXAAAAMAAAAHgAAAC8AAAAoQAAAL4AAAAFAAAAXwxY
E6EQWBOhEIATXwyAE18MWBMUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAA
GAAAAAUAAAAAAAAAv7+/AAAAAAAlAAAADAAAAAUAAAATAAAADAAAAAEAAABW
AAAAMAAAAHgAAAC8AAAAoQAAAL4AAAAFAAAAXwxYE6EQWBOhEIATXwyAE18M
WBMlAAAADAAAAAUAAIAoAAAADAAAAAUAAAAUAAAADAAAAA0AAABXAAAAMAAA
AHgAAAC8AAAAoQAAAL4AAAAFAAAAXwxYE6EQWBOhEIATXwyAE18MWBMUAAAA
DAAAAA0AAAAlAAAADAAAAAUAAIAlAAAADAAAAAQAAAATAAAADAAAAAEAAABW
AAAAMAAAAIUAAACQAAAAowAAAKcAAAAFAAAA0xDQDqkN0A6pDSgR0xAoEdMQ
0A4lAAAADAAAAAUAAIAUAAAADAAAAA0AAABXAAAAMAAAAIUAAACQAAAAowAA
AKcAAAAFAAAA0xDQDqkN0A6pDSgR0xAoEdMQ0A4UAAAADAAAAA0AAAAbAAAA
EAAAAPwPAAAYEgAANgAAABAAAADEEAAAGBIAABQAAAAMAAAADQAAACYAAAAc
AAAABQAAAAYAAABBAAAAAAAAAAAAAAAlAAAADAAAAAUAAAAoAAAADAAAAAIA
AAAlAAAADAAAAAUAAIAlAAAADAAAAAMAAAATAAAADAAAAAEAAABWAAAAoAEA
AIQAAACPAAAAowAAAKgAAABhAAAATg50EFMOjRBnDqYQdg6/EIAOzhCUDuIQ
ow7nELcO8RDLDvEQ3w7xEPMO8RACD+cQFg/iECUPzhA5D78QSA/OEFwP4hBr
D+cQeg/xEJMP8RCnD/EQsQ/xEMoP5xDeD+IQ7Q/OEPwPvxALEKYQGhCNECQQ
dBAuEHQQPRB0EEwQdBBWEGoQZRBgEHQQTBB5ED0QfhApEIMQEBCDEPwPgxDo
D34Qzw95ELsPdBCsD2UQmA9WEI4PTBCEDz0QhA8uEIQPJBCEDxoQaw8LEFIP
/A85D+0PKg/eDxYPyg8RD7EPBw+nDwcPkw8HD3oPBw9rDxEPXA8WD0gPKg85
DzkPJQ8qDxYPFg8CDxEP8w4HD98OBw/LDgcPtw4HD6MOEQ+UDhYPgA4qD3YO
OQ9nDlIPUw5rD04OhA8/DoQPNQ6EDyYOhA8cDo4PDQ6YD/4NrA/5DbsP7w3P
D+8N6A/vDfwP7w0QEO8NKRD5DT0Q/g1MEA0OYBAcDmoQJg50EDUOdBA/DnQQ
Tg50ECUAAAAMAAAABQAAgBQAAAAMAAAADQAAAFcAAACgAQAAhAAAAI8AAACj
AAAAqAAAAGEAAABODnQQUw6NEGcOphB2Dr8QgA7OEJQO4hCjDucQtw7xEMsO
8RDfDvEQ8w7xEAIP5xAWD+IQJQ/OEDkPvxBID84QXA/iEGsP5xB6D/EQkw/x
EKcP8RCxD/EQyg/nEN4P4hDtD84Q/A+/EAsQphAaEI0QJBB0EC4QdBA9EHQQ
TBB0EFYQahBlEGAQdBBMEHkQPRB+ECkQgxAQEIMQ/A+DEOgPfhDPD3kQuw90
EKwPZRCYD1YQjg9MEIQPPRCEDy4QhA8kEIQPGhBrDwsQUg/8DzkP7Q8qD94P
Fg/KDxEPsQ8HD6cPBw+TDwcPeg8HD2sPEQ9cDxYPSA8qDzkPOQ8lDyoPFg8W
DwIPEQ/zDgcP3w4HD8sOBw+3DgcPow4RD5QOFg+ADioPdg45D2cOUg9TDmsP
Tg6EDz8OhA81DoQPJg6EDxwOjg8NDpgP/g2sD/kNuw/vDc8P7w3oD+8N/A/v
DRAQ7w0pEPkNPRD+DUwQDQ5gEBwOahAmDnQQNQ50ED8OdBBODnQQFAAAAAwA
AAANAAAAIgAAAAwAAAD/////KAAAAAwAAAABAAAAJQAAAAwAAAAHAACAJQAA
AAwAAAAAAACAMAAAAAwAAAAPAACASwAAABAAAAAAAAAABQAAACgAAAAMAAAA
AwAAACgAAAAMAAAABAAAACgAAAAMAAAABQAAAA4AAAAUAAAAAAAAABAAAAAU
AAAAGkAGQCwAAAAgAAAA/////wIAAAAAAAAAAAAAAIXemEPoxGVDAAAAAOgD
6AMhAAAACAAAAGIAAAAMAAAAAQAAACEAAAAIAAAAIQAAAAgAAABzAAAADAAA
AAAAAAAcAAAACAAAACUAAAAMAAAAAAAAgCUAAAAMAAAABwAAgCUAAAAMAAAA
DgAAgDAAAAAMAAAADwAAgBkAAAAMAAAA////ABgAAAAMAAAAAAAAABIAAAAM
AAAAAgAAABMAAAAMAAAAAQAAABQAAAAMAAAADQAAABUAAAAMAAAAAQAAABYA
AAAMAAAAAAAAAA0AAAAQAAAAAAAAAAAAAAA6AAAADAAAAAoAAAAbAAAAEAAA
AAAAAAAAAAAAIwAAACAAAACRnck+AAAAAAAAAAD8bMk+AADYwQAAs0MkAAAA
JAAAAJGdyT4AAAAAAAAAAPxsyT4AANjBAACzQwQAAABzAAAADAAAAAAAAAAN
AAAAEAAAAOX///9mAQAAUgAAAHABAAAFAAAAFAAAAAoAAAAAAAAAAAAAAJAB
AAAAAACBBwICIlMAeQBzAHQAZQBtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAA
AAAAAAAAAABIZfF33GTxdwkAAAAhAIoBDQAAAJTfEgCFNPJ30CRkAwQaId7Q
JGQDJgCKAQQaId4LAIgB//8BAAQAAADc3BIApN0SANDdEgAY7pB8cAWRfMjd
EgAAADcAMgeRfAUAAAB4BzcAAAA3AAAACwGg3RIAIDD1d+TfEgAY7pB8OAeR
fP////8yB5F8qwaRfOsGkXwHxMJ3HAAAAP////84Zw8Q7PUVAAgeAGAAABUA
AAAAAAAAAAAWQwBg7PUVADhnDxBU8RUAwGBOYDDeEgA4Zw8QEEIAYAAAAAAB
AAAAayUAYOxpDxA4Zw8QZHYACAAAAAAlAAAADAAAAAUAAABGAAAAKAAAABwA
AABHRElDAgAAAAAAAAAAAAAAMQEAAOUAAAAAAAAAIwAAACAAAACRnck+AAAA
AAAAAAD8bMk+AADYwQAAs0MkAAAAJAAAAJGdyT4AAAAAAAAAAPxsyT4AANjB
AACzQwQAAAAjAAAAIAAAALo08EIAAAAAAAAAAH0utEIAANjBAACzQyQAAAAk
AAAAujTwQgAAAAAAAAAAfS60QgAA2MEAALNDBAAAACMAAAAgAAAAkZ3JPgAA
AAAAAAAA/GzJPgAA2MEAALNDJAAAACQAAACRnck+AAAAAAAAAAD8bMk+AADY
wQAAs0MEAAAAIwAAACAAAACNkHQ8AAAAAAAAAABTvnQ8AADYwQAAs0MkAAAA
JAAAAI2QdDwAAAAAAAAAAFO+dDwAANjBAACzQwQAAAAjAAAAIAAAAI2QdDwA
AAAAAAAAAFO+dDwAANjBAACzQyQAAAAkAAAAjZB0PAAAAAAAAAAAU750PAAA
2MEAALNDBAAAACMAAAAgAAAAjZB0PAAAAAAAAAAAU750PAAA2MEAALNDJAAA
ACQAAACNkHQ8AAAAAAAAAABTvnQ8AADYwQAAs0MEAAAAIQAAAAgAAAAUAAAA
DAAAAA0AAAAlAAAADAAAAAUAAIAmAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAA
AAAAJQAAAAwAAAAEAAAAJgAAABwAAAADAAAABgAAAEEAAAAAAAAAAAAAACUA
AAAMAAAAAwAAACUAAAAMAAAABQAAgCcAAAAYAAAAAgAAAAAAAAD///8AAAAA
ACUAAAAMAAAAAgAAABMAAAAMAAAAAQAAAFYAAACgAQAA5f///2YBAABdAAAA
wAEAAGEAAACtBHMRJQWpEsAFxhNgBsUUIwehFfAHVRbMCNcWqAk2F5gKbRd+
C20XXwxKF08N+hYmDm4W7g66FbYP3hRqELoVRhFuFhMS+hb5EkoX7hNtF8UU
bRemFTYXjBbXFm0XVRY1GKEV8xjFFJ0ZxhMuGqkSuhpzEVUbmxEEHIwRqRxf
EU4d+xDkHWoQVx6xD8Ue0A4BH9sNOB/XDEwfyQs4H7EKAR+oCcUeuAhXHuYH
5B0oB04dnAapHCkGBBz3BVUb7QW6GiQGLhrkBJ0ZvQPzGLkCNRjsAW0XLgGM
FrEAphVNAMUUIADuEyAA+RI+ABMSnQBGESQBahDOAbYPoALuDs4BJg4kAU8N
nQBfDD4AfgsgAJgKIACoCU0AzAixAPAHLgEjB+wBYAa5AsAFvQMlBeQErQQk
BgME7QVZA/cFtAIpBhQCnAaDASgHCwHmB50AuAhNAKgJJQCxCiAAyQslANcM
TQDbDZ0A0A4LAbEPgwFqEBQC+xC0Al8RWQOMEQMEmxGtBHMRJQAAAAwAAAAF
AACAFAAAAAwAAAANAAAAVwAAAKABAADl////ZgEAAF0AAADAAQAAYQAAAK0E
cxElBakSwAXGE2AGxRQjB6EV8AdVFswI1xaoCTYXmAptF34LbRdfDEoXTw36
FiYObhbuDroVtg/eFGoQuhVGEW4WExL6FvkSShfuE20XxRRtF6YVNheMFtcW
bRdVFjUYoRXzGMUUnRnGEy4aqRK6GnMRVRubEQQcjBGpHF8RTh37EOQdahBX
HrEPxR7QDgEf2w04H9cMTB/JCzgfsQoBH6gJxR64CFce5gfkHSgHTh2cBqkc
KQYEHPcFVRvtBboaJAYuGuQEnRm9A/MYuQI1GOwBbRcuAYwWsQCmFU0AxRQg
AO4TIAD5Ej4AExKdAEYRJAFqEM4Btg+gAu4OzgEmDiQBTw2dAF8MPgB+CyAA
mAogAKgJTQDMCLEA8AcuASMH7AFgBrkCwAW9AyUF5AStBCQGAwTtBVkD9wW0
AikGFAKcBoMBKAcLAeYHnQC4CE0AqAklALEKIADJCyUA1wxNANsNnQDQDgsB
sQ+DAWoQFAL7ELQCXxFZA4wRAwSbEa0EcxEUAAAADAAAAA0AAAAmAAAAHAAA
AAYAAAAGAAAAQQAAAAAAAAD/AAAAJQAAAAwAAAAGAAAAKAAAAAwAAAADAAAA
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
gQEAAAsAAACLAQAABQAAAPMJUAfJBlAHyQaoCfMJqAnzCVAHFAAAAAwAAAAN
AAAAGwAAABAAAAAcCQAAmAoAADYAAAAQAAAA5AkAAJgKAAAUAAAADAAAAA0A
AAAmAAAAHAAAAAcAAAAGAAAAQQAAAAAAAAAAAAAAJQAAAAwAAAAHAAAAKAAA
AAwAAAADAAAAJQAAAAwAAAAFAACAJQAAAAwAAAACAAAAEwAAAAwAAAABAAAA
VgAAAKABAAAAAAAAggEAAAoAAACLAQAAYQAAAG4H9AhzBw0JhwcmCZYHPwmg
B04JtAdiCcMHZwnXB3EJ6wdxCf8HcQkTCHEJIghnCTYIYglFCE4JWQg/CWgI
Tgl8CGIJiwhnCZoIcQmzCHEJxwhxCdEIcQnqCGcJ/ghiCQ0JTgkcCT8JKwkm
CToJDQlECfQITgn0CF0J9AhsCfQIdgnqCIUJ4AiUCcwImQm9CJ4JqQijCZAI
owl8CKMJaAieCU8ImQk7CJQJLAiFCRgIdgkOCGwJBAhdCQQITgkECEQJBAg6
CesHKwnSBxwJuQcNCaoH/giWB+oIkQfRCIcHxwiHB7MIhweaCIcHiwiRB3wI
lgdoCKoHWQi5B0UIqgc2CJYHIgiRBxMIhwf/B4cH6weHB9cHhwfDB5EHtAeW
B6AHqgeWB7kHhwfSB3MH6wduBwQIXwcECFUHBAhGBwQIPAcOCC0HGAgeBywI
GQc7CA8HTwgPB2gIDwd8CA8HkAgPB6kIGQe9CB4HzAgtB+AIPAfqCEYH9AhV
B/QIXwf0CG4H9AglAAAADAAAAAUAAIAUAAAADAAAAA0AAABXAAAAoAEAAAAA
AACCAQAACgAAAIsBAABhAAAAbgf0CHMHDQmHByYJlgc/CaAHTgm0B2IJwwdn
CdcHcQnrB3EJ/wdxCRMIcQkiCGcJNghiCUUITglZCD8JaAhOCXwIYgmLCGcJ
mghxCbMIcQnHCHEJ0QhxCeoIZwn+CGIJDQlOCRwJPwkrCSYJOgkNCUQJ9AhO
CfQIXQn0CGwJ9Ah2CeoIhQngCJQJzAiZCb0IngmpCKMJkAijCXwIowloCJ4J
TwiZCTsIlAksCIUJGAh2CQ4IbAkECF0JBAhOCQQIRAkECDoJ6wcrCdIHHAm5
Bw0Jqgf+CJYH6giRB9EIhwfHCIcHswiHB5oIhweLCJEHfAiWB2gIqgdZCLkH
RQiqBzYIlgciCJEHEwiHB/8HhwfrB4cH1weHB8MHkQe0B5YHoAeqB5YHuQeH
B9IHcwfrB24HBAhfBwQIVQcECEYHBAg8Bw4ILQcYCB4HLAgZBzsIDwdPCA8H
aAgPB3wIDweQCA8HqQgZB70IHgfMCC0H4Ag8B+oIRgf0CFUH9AhfB/QIbgf0
CBQAAAAMAAAADQAAACYAAAAcAAAAAwAAAAYAAAAeAAAAAAAAAAAAAAAlAAAA
DAAAAAMAAAAoAAAADAAAAAcAAAAlAAAADAAAAAUAAIAnAAAAGAAAAAcAAAAA
AAAAf39/AAAAAAAlAAAADAAAAAcAAAATAAAADAAAAAEAAABWAAAAMAAAADQA
AACLAQAARgAAAI0BAAAFAAAAyhQ0ClEVsgk0GbIJrRg0CsoUNAolAAAADAAA
AAUAAIAoAAAADAAAAAcAAAAUAAAADAAAAA0AAABXAAAAMAAAADQAAACLAQAA
RgAAAI0BAAAFAAAAyhQ0ClEVsgk0GbIJrRg0CsoUNAoUAAAADAAAAA0AAAAl
AAAADAAAAAUAAIAnAAAAGAAAAAcAAAAAAAAAv7+/AAAAAAAlAAAADAAAAAcA
AAATAAAADAAAAAEAAABWAAAAMAAAADQAAACMAQAARAAAAJABAAAFAAAAyhQv
CrIYLwqyGO0KyhTtCsoULwolAAAADAAAAAUAAIAoAAAADAAAAAcAAAAUAAAA
DAAAAA0AAABXAAAAMAAAADQAAACMAQAARAAAAJABAAAFAAAAyhQvCrIYLwqy
GO0KyhTtCsoULwoUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAAGAAAAAcA
AAAAAAAApaWlAAAAAAAlAAAADAAAAAcAAAATAAAADAAAAAEAAABWAAAAMAAA
AEMAAACLAQAARgAAAJABAAAFAAAAshjyCjQZZgo0GbIJshg0CrIY8golAAAA
DAAAAAUAAIAoAAAADAAAAAcAAAAUAAAADAAAAA0AAABXAAAAMAAAAEMAAACL
AQAARgAAAJABAAAFAAAAshjyCjQZZgo0GbIJshg0CrIY8goUAAAADAAAAA0A
AAAlAAAADAAAAAUAAIAnAAAAGAAAAAcAAAAAAAAA2NjYAAAAAAAlAAAADAAA
AAcAAAATAAAADAAAAAEAAABWAAAAMAAAADQAAAB/AQAARQAAAIEBAAAFAAAA
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
QgAAAIsBAAAFAAAAUxhQBykVUAcpFagJUxioCVMYUAclAAAADAAAAAUAAIAU
AAAADAAAAA0AAABXAAAAMAAAADUAAACBAQAAQgAAAIsBAAAFAAAAUxhQBykV
UAcpFagJUxioCVMYUAcUAAAADAAAAA0AAAAbAAAAEAAAAHwXAACYCgAANgAA
ABAAAABEGAAAmAoAABQAAAAMAAAADQAAACYAAAAcAAAABwAAAAYAAABBAAAA
AAAAAAAAAAAlAAAADAAAAAcAAAAoAAAADAAAAAMAAAAlAAAADAAAAAUAAIAl
AAAADAAAAAIAAAATAAAADAAAAAEAAABWAAAAoAEAADYAAACCAQAAQQAAAIsB
AABhAAAAzhX0CNMVDQnnFSYJ9hU/CQAWTgkUFmIJIxZnCTcWcQlLFnEJXxZx
CXMWcQmCFmcJlhZiCaUWTgm5Fj8JyBZOCdwWYgnrFmcJ+hZxCRMXcQknF3EJ
MRdxCUoXZwleF2IJbRdOCXwXPwmLFyYJmhcNCaQX9AiuF/QIvRf0CMwX9AjW
F+oI5RfgCPQXzAj5F70I/hepCAMYkAgDGHwIAxhoCP4XTwj5FzsI9BcsCOUX
GAjWFw4IzBcECL0XBAiuFwQIpBcECJoX6weLF9IHfBe5B20XqgdeF5YHSheR
BzEXhwcnF4cHExeHB/oWhwfrFpEH3BaWB8gWqge5FrkHpRaqB5YWlgeCFpEH
cxaHB18WhwdLFocHNxaHByMWkQcUFpYHABaqB/YVuQfnFdIH0xXrB84VBAi/
FQQItRUECKYVBAicFQ4IjRUYCH4VLAh5FTsIbxVPCG8VaAhvFXwIbxWQCG8V
qQh5Fb0IfhXMCI0V4AicFeoIphX0CLUV9Ai/FfQIzhX0CCUAAAAMAAAABQAA
gBQAAAAMAAAADQAAAFcAAACgAQAANgAAAIIBAABBAAAAiwEAAGEAAADOFfQI
0xUNCecVJgn2FT8JABZOCRQWYgkjFmcJNxZxCUsWcQlfFnEJcxZxCYIWZwmW
FmIJpRZOCbkWPwnIFk4J3BZiCesWZwn6FnEJExdxCScXcQkxF3EJShdnCV4X
YgltF04JfBc/CYsXJgmaFw0JpBf0CK4X9Ai9F/QIzBf0CNYX6gjlF+AI9BfM
CPkXvQj+F6kIAxiQCAMYfAgDGGgI/hdPCPkXOwj0FywI5RcYCNYXDgjMFwQI
vRcECK4XBAikFwQImhfrB4sX0gd8F7kHbReqB14XlgdKF5EHMReHBycXhwcT
F4cH+haHB+sWkQfcFpYHyBaqB7kWuQelFqoHlhaWB4IWkQdzFocHXxaHB0sW
hwc3FocHIxaRBxQWlgcAFqoH9hW5B+cV0gfTFesHzhUECL8VBAi1FQQIphUE
CJwVDgiNFRgIfhUsCHkVOwhvFU8IbxVoCG8VfAhvFZAIbxWpCHkVvQh+FcwI
jRXgCJwV6gimFfQItRX0CL8V9AjOFfQIFAAAAAwAAAANAAAAJgAAABwAAAAD
AAAABgAAAB4AAAAAAAAAAAAAACUAAAAMAAAAAwAAACgAAAAMAAAABwAAACUA
AAAMAAAABQAAgCcAAAAYAAAABwAAAAAAAAB/f38AAAAAACUAAAAMAAAABwAA
ABMAAAAMAAAAAQAAAFYAAAAwAAAAFwAAAKcBAAApAAAAqgEAAAUAAABKDbQR
0Q0yEbQRMhEtEbQRSg20ESUAAAAMAAAABQAAgCgAAAAMAAAABwAAABQAAAAM
AAAADQAAAFcAAAAwAAAAFwAAAKcBAAApAAAAqgEAAAUAAABKDbQR0Q0yEbQR
MhEtEbQRSg20ERQAAAAMAAAADQAAACUAAAAMAAAABQAAgCcAAAAYAAAABwAA
AAAAAAC/v78AAAAAACUAAAAMAAAABwAAABMAAAAMAAAAAQAAAFYAAAAwAAAA
FwAAAKkBAAAnAAAArQEAAAUAAABKDa8RMhGvETIRbRJKDW0SSg2vESUAAAAM
AAAABQAAgCgAAAAMAAAABwAAABQAAAAMAAAADQAAAFcAAAAwAAAAFwAAAKkB
AAAnAAAArQEAAAUAAABKDa8RMhGvETIRbRJKDW0SSg2vERQAAAAMAAAADQAA
ACUAAAAMAAAABQAAgCcAAAAYAAAABwAAAAAAAAClpaUAAAAAACUAAAAMAAAA
BwAAABMAAAAMAAAAAQAAAFYAAAAwAAAAJgAAAKcBAAApAAAArQEAAAUAAAAy
EXIStBHmEbQRMhEyEbQRMhFyEiUAAAAMAAAABQAAgCgAAAAMAAAABwAAABQA
AAAMAAAADQAAAFcAAAAwAAAAJgAAAKcBAAApAAAArQEAAAUAAAAyEXIStBHm
EbQRMhEyEbQRMhFyEhQAAAAMAAAADQAAACUAAAAMAAAABQAAgCcAAAAYAAAA
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
XwxYExQAAAAMAAAADQAAACUAAAAMAAAABQAAgCUAAAAMAAAABgAAABMAAAAM
AAAAAQAAAFYAAAAwAAAAGQAAAJ4BAAAmAAAAqAEAAAUAAADTENAOqQ3QDqkN
KBHTECgR0xDQDiUAAAAMAAAABQAAgBQAAAAMAAAADQAAAFcAAAAwAAAAGQAA
AJ4BAAAmAAAAqAEAAAUAAADTENAOqQ3QDqkNKBHTECgR0xDQDhQAAAAMAAAA
DQAAABsAAAAQAAAA/A8AABgSAAA2AAAAEAAAAMQQAAAYEgAAFAAAAAwAAAAN
AAAAJgAAABwAAAAHAAAABgAAAEEAAAAAAAAAAAAAACUAAAAMAAAABwAAACgA
AAAMAAAAAwAAACUAAAAMAAAABQAAgCUAAAAMAAAAAgAAABMAAAAMAAAAAQAA
AFYAAACgAQAAGgAAAJ8BAAAlAAAApwEAAGEAAABODnQQUw6NEGcOphB2Dr8Q
gA7OEJQO4hCjDucQtw7xEMsO8RDfDvEQ8w7xEAIP5xAWD+IQJQ/OEDkPvxBI
D84QXA/iEGsP5xB6D/EQkw/xEKcP8RCxD/EQyg/nEN4P4hDtD84Q/A+/EAsQ
phAaEI0QJBB0EC4QdBA9EHQQTBB0EFYQahBlEGAQdBBMEHkQPRB+ECkQgxAQ
EIMQ/A+DEOgPfhDPD3kQuw90EKwPZRCYD1YQjg9MEIQPPRCEDy4QhA8kEIQP
GhBrDwsQUg/8DzkP7Q8qD94PFg/KDxEPsQ8HD6cPBw+TDwcPeg8HD2sPEQ9c
DxYPSA8qDzkPOQ8lDyoPFg8WDwIPEQ/zDgcP3w4HD8sOBw+3DgcPow4RD5QO
Fg+ADioPdg45D2cOUg9TDmsPTg6EDz8OhA81DoQPJg6EDxwOjg8NDpgP/g2s
D/kNuw/vDc8P7w3oD+8N/A/vDRAQ7w0pEPkNPRD+DUwQDQ5gEBwOahAmDnQQ
NQ50ED8OdBBODnQQJQAAAAwAAAAFAACAFAAAAAwAAAANAAAAVwAAAKABAAAa
AAAAnwEAACUAAACnAQAAYQAAAE4OdBBTDo0QZw6mEHYOvxCADs4QlA7iEKMO
5xC3DvEQyw7xEN8O8RDzDvEQAg/nEBYP4hAlD84QOQ+/EEgPzhBcD+IQaw/n
EHoP8RCTD/EQpw/xELEP8RDKD+cQ3g/iEO0PzhD8D78QCxCmEBoQjRAkEHQQ
LhB0ED0QdBBMEHQQVhBqEGUQYBB0EEwQeRA9EH4QKRCDEBAQgxD8D4MQ6A9+
EM8PeRC7D3QQrA9lEJgPVhCOD0wQhA89EIQPLhCEDyQQhA8aEGsPCxBSD/wP
OQ/tDyoP3g8WD8oPEQ+xDwcPpw8HD5MPBw96DwcPaw8RD1wPFg9IDyoPOQ85
DyUPKg8WDxYPAg8RD/MOBw/fDgcPyw4HD7cOBw+jDhEPlA4WD4AOKg92DjkP
Zw5SD1MOaw9ODoQPPw6EDzUOhA8mDoQPHA6ODw0OmA/+DawP+Q27D+8Nzw/v
DegP7w38D+8NEBDvDSkQ+Q09EP4NTBANDmAQHA5qECYOdBA1DnQQPw50EE4O
dBAUAAAADAAAAA0AAAAiAAAADAAAAP////8oAAAADAAAAAQAAAAlAAAADAAA
AAcAAIAlAAAADAAAAAAAAIBLAAAAEAAAAAAAAAAFAAAAKAAAAAwAAAACAAAA
KAAAAAwAAAAGAAAAKAAAAAwAAAAHAAAARgAAABQAAAAIAAAAR0RJQwMAAAAi
AAAADAAAAP////8iAAAADAAAAP////8lAAAADAAAAA0AAIAoAAAADAAAAAUA
AAAiAAAADAAAAP////9GAAAAMFQAACRUAABFTUYrJkAAABAAAAAEAAAAAAAA
ACVAAAAQAAAABAAAAAAAAAAsQAAAJAAAABgAAAD9sPc9AAAAgAAAAICN8bk9
cvIwRG33skMIQAcFsFMAAKRTAAABEMDbAgAAAAMAAACUUwAAAQAAAGwAAAD+
/////v///zMBAADnAAAAAAAAAAAAAABvHwAAkBcAACBFTUYAAAEAlFMAANsB
AAAGAAAAAAAAAAAAAAAAAAAAAAUAAAAEAABSAQAADgEAAAAAAAAAAAAAAAAA
AFAoBQCwHgQARgAAALAiAACiIgAAR0RJQwEAAIAAAwAAuY1p3AAAAACKIgAA
AQAJAAADRREAAAYAxgAAAAAABQAAAAwCjxduHwUAAAAMAo8Xbh8HAAAAEAQB
AAEAAQABAAMAAAAeAAQAAAAEAQ0ABwAAAPwCAQAAAAAAAAAEAAAALQEAAAkA
AAD6AgAAAAAAAAAAAAAiAAQAAAAtAQEACQAAAPoCBgBBAAAAAAAAACIABAAA
AC0BAgAEAAAALQEAAAcAAAD8AgAA////AAAABAAAAC0BAwAEAAAABgEBAMYA
AAAkA2EArQRzESUFqRLABcYTYAbFFCMHoRXwB1UWzAjXFqgJNheYCm0Xfgtt
F18MShdPDfoWJg5uFu4OuhW2D94UahC6FUYRbhYTEvoW+RJKF+4TbRfFFG0X
phU2F4wW1xZtF1UWNRihFfMYxRSdGcYTLhqpEroacxFVG5sRBByMEakcXxFO
HfsQ5B1qEFcesQ/FHtAOAR/bDTgf1wxMH8kLOB+xCgEfqAnFHrgIVx7mB+Qd
KAdOHZwGqRwpBgQc9wVVG+0FuhokBi4a5ASdGb0D8xi5AjUY7AFtFy4BjBax
AKYVTQDFFCAA7hMgAPkSPgATEp0ARhEkAWoQzgG2D6AC7g7OASYOJAFPDZ0A
Xww+AH4LIACYCiAAqAlNAMwIsQDwBy4BIwfsAWAGuQLABb0DJQXkBK0EJAYD
BO0FWQP3BbQCKQYUApwGgwEoBwsB5gedALgITQCoCSUAsQogAMkLJQDXDE0A
2w2dANAOCwGxD4MBahAUAvsQtAJfEVkDjBEDBJsRrQRzEQQAAAAtAQAABAAA
AAQBDQDGAAAAJQNhAK0EcxElBakSwAXGE2AGxRQjB6EV8AdVFswI1xaoCTYX
mAptF34LbRdfDEoXTw36FiYObhbuDroVtg/eFGoQuhVGEW4WExL6FvkSShfu
E20XxRRtF6YVNheMFtcWbRdVFjUYoRXzGMUUnRnGEy4aqRK6GnMRVRubEQQc
jBGpHF8RTh37EOQdahBXHrEPxR7QDgEf2w04H9cMTB/JCzgfsQoBH6gJxR64
CFce5gfkHSgHTh2cBqkcKQYEHPcFVRvtBboaJAYuGuQEnRm9A/MYuQI1GOwB
bRcuAYwWsQCmFU0AxRQgAO4TIAD5Ej4AExKdAEYRJAFqEM4Btg+gAu4OzgEm
DiQBTw2dAF8MPgB+CyAAmAogAKgJTQDMCLEA8AcuASMH7AFgBrkCwAW9AyUF
5AStBCQGAwTtBVkD9wW0AikGFAKcBoMBKAcLAeYHnQC4CE0AqAklALEKIADJ
CyUA1wxNANsNnQDQDgsBsQ+DAWoQFAL7ELQCXxFZA4wRAwSbEa0EcxEEAAAA
BAENAAkAAAD6AgYAQQAAAP8AAAAiAAQAAAAtAQQABAAAAPABAgAMAAAAJQME
AGYP7BA2CCwINhcsCGYP7BAEAAAABAENAAkAAAD6AgYAHgAAAAAAAAAiAAQA
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
Tgl8CGIJiwhnCZoIcQmzCHEJxwhxCdEIcQnqCGcJ/ghiCQ0JTgkcCT8JKwkm
CToJDQlECfQITgn0CF0J9AhsCfQIdgnqCIUJ4AiUCcwImQm9CJ4JqQijCZAI
owl8CKMJaAieCU8ImQk7CJQJLAiFCRgIdgkOCGwJBAhdCQQITgkECEQJBAg6
CesHKwnSBxwJuQcNCaoH/giWB+oIkQfRCIcHxwiHB7MIhweaCIcHiwiRB3wI
lgdoCKoHWQi5B0UIqgc2CJYHIgiRBxMIhwf/B4cH6weHB9cHhwfDB5EHtAeW
B6AHqgeWB7kHhwfSB3MH6wduBwQIXwcECFUHBAhGBwQIPAcOCC0HGAgeBywI
GQc7CA8HTwgPB2gIDwd8CA8HkAgPB6kIGQe9CB4HzAgtB+AIPAfqCEYH9AhV
B/QIXwf0CG4H9AgEAAAALQEAAAQAAAAEAQ0AxgAAACUDYQBuB/QIcwcNCYcH
JgmWBz8JoAdOCbQHYgnDB2cJ1wdxCesHcQn/B3EJEwhxCSIIZwk2CGIJRQhO
CVkIPwloCE4JfAhiCYsIZwmaCHEJswhxCccIcQnRCHEJ6ghnCf4IYgkNCU4J
HAk/CSsJJgk6CQ0JRAn0CE4J9AhdCfQIbAn0CHYJ6giFCeAIlAnMCJkJvQie
CakIowmQCKMJfAijCWgInglPCJkJOwiUCSwIhQkYCHYJDghsCQQIXQkECE4J
BAhECQQIOgnrBysJ0gccCbkHDQmqB/4IlgfqCJEH0QiHB8cIhwezCIcHmgiH
B4sIkQd8CJYHaAiqB1kIuQdFCKoHNgiWByIIkQcTCIcH/weHB+sHhwfXB4cH
wweRB7QHlgegB6oHlge5B4cH0gdzB+sHbgcECF8HBAhVBwQIRgcECDwHDggt
BxgIHgcsCBkHOwgPB08IDwdoCA8HfAgPB5AIDwepCBkHvQgeB8wILQfgCDwH
6ghGB/QIVQf0CF8H9AhuB/QIBAAAAAQBDQAJAAAA+gIGAB4AAAAAAAAAIgAE
AAAALQECAAQAAADwAQUABAAAAC0BAAAHAAAA/AIAAH9/fwAAAAQAAAAtAQUA
BAAAAAYBAQAOAAAAJAMFAMoUNApRFbIJNBmyCa0YNArKFDQKBAAAAC0BAAAE
AAAA8AEFAAQAAAAEAQ0ADgAAACUDBQDKFDQKURWyCTQZsgmtGDQKyhQ0CgQA
AAAEAQ0ABAAAAC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUABAAAAAYBAQAO
AAAAJAMFAMoULwqyGC8KshjtCsoU7QrKFC8KBAAAAC0BAAAEAAAA8AEFAAQA
AAAEAQ0ADgAAACUDBQDKFC8KshgvCrIY7QrKFO0KyhQvCgQAAAAEAQ0ABAAA
AC0BAAAHAAAA/AIAAKWlpQAAAAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFALIY
8go0GWYKNBmyCbIYNAqyGPIKBAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAA
ACUDBQCyGPIKNBlmCjQZsgmyGDQKshjyCgQAAAAEAQ0ABAAAAC0BAAAHAAAA
/AIAANjY2AAAAAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFAM8U8QY4FY0GGxmN
BrIY8QbPFPEGBAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAAACUDBQDPFPEG
OBWNBhsZjQayGPEGzxTxBgQAAAAEAQ0ABAAAAC0BAAAHAAAA/AIAAL+/vwAA
AAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFAMoUDAqyGAwKshjsBsoU7AbKFAwK
BAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAAACUDBQDKFAwKshgMCrIY7AbK
FOwGyhQMCgQAAAAEAQ0ABAAAAC0BAAAHAAAA/AIAAKWlpQAAAAQAAAAtAQUA
BAAAAAYBAQAOAAAAJAMFABsZiAatGPEGrRgMChsZowkbGYgGBAAAAC0BAAAE
AAAA8AEFAAQAAAAEAQ0ADgAAACUDBQAbGYgGrRjxBq0YDAobGaMJGxmIBgQA
AAAEAQ0ABAAAAC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUABAAAAAYBAQAO
AAAAJAMFANoT2At6FBALvBgQCxwY2AvaE9gLBAAAAC0BAAAEAAAA8AEFAAQA
AAAEAQ0ADgAAACUDBQDaE9gLehQQC7wYEAscGNgL2hPYCwQAAAAEAQ0ABAAA
AC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFANoT
2At6FBALvBgQCxwY2AvaE9gLBAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAA
ACUDBQDaE9gLehQQC7wYEAscGNgL2hPYCwQAAAAEAQ0ABAAAAC0BAAAHAAAA
/AIAAKWlpQAAAAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFACEYAAy3GFYLtxgV
CyEY0wshGAAMBAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAAACUDBQAhGAAM
txhWC7cYFQshGNMLIRgADAQAAAAEAQ0ABAAAAC0BAAAHAAAA/AIAAKWlpQAA
AAQAAAAtAQUABAAAAAYBAQAOAAAAJAMFACEYAAy3GFYLtxgVCyEY0wshGAAM
BAAAAC0BAAAEAAAA8AEFAAQAAAAEAQ0ADgAAACUDBQAhGAAMtxhWC7cYFQsh
GNMLIRgADAQAAAAEAQ0ABAAAAC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUA
BAAAAAYBAQAOAAAAJAMFAN8T2AshGNgLIRgADN8TAAzfE9gLBAAAAC0BAAAE
AAAA8AEFAAQAAAAEAQ0ADgAAACUDBQDfE9gLIRjYCyEYAAzfEwAM3xPYCwQA
AAAEAQ0ABAAAAC0BAAAHAAAA/AIAAL+/vwAAAAQAAAAtAQUABAAAAAYBAQAO
AAAAJAMFAN8T2AshGNgLIRgADN8TAAzfE9gLBAAAAC0BAAAEAAAA8AEFAAQA
AAAEAQ0ADgAAACUDBQDfE9gLIRjYCyEYAAzfEwAM3xPYCwQAAAAEAQ0ABAAA
AC0BAAAEAAAALQEEAAQAAAAGAQEADgAAACQDBQBTGFAHKRVQBykVqAlTGKgJ
UxhQBwQAAAAtAQAABAAAAAQBDQAOAAAAJQMFAFMYUAcpFVAHKRWoCVMYqAlT
GFAHBAAAAAQBDQAFAAAAFAKYCnwXBQAAABMCmApEGAQAAAAEAQ0ACQAAAPoC
BgBBAAAAAAAAACIABAAAAC0BBQAEAAAA8AECAAQAAAAtAQAABAAAAC0BAwAE
AAAABgEBAMYAAAAkA2EAzhX0CNMVDQnnFSYJ9hU/CQAWTgkUFmIJIxZnCTcW
cQlLFnEJXxZxCXMWcQmCFmcJlhZiCaUWTgm5Fj8JyBZOCdwWYgnrFmcJ+hZx
CRMXcQknF3EJMRdxCUoXZwleF2IJbRdOCXwXPwmLFyYJmhcNCaQX9AiuF/QI
vRf0CMwX9AjWF+oI5RfgCPQXzAj5F70I/hepCAMYkAgDGHwIAxhoCP4XTwj5
FzsI9BcsCOUXGAjWFw4IzBcECL0XBAiuFwQIpBcECJoX6weLF9IHfBe5B20X
qgdeF5YHSheRBzEXhwcnF4cHExeHB/oWhwfrFpEH3BaWB8gWqge5FrkHpRaq
B5YWlgeCFpEHcxaHB18WhwdLFocHNxaHByMWkQcUFpYHABaqB/YVuQfnFdIH
0xXrB84VBAi/FQQItRUECKYVBAicFQ4IjRUYCH4VLAh5FTsIbxVPCG8VaAhv
FXwIbxWQCG8VqQh5Fb0IfhXMCI0V4AicFeoIphX0CLUV9Ai/FfQIzhX0CAQA
AAAtAQAABAAAAAQBDQDGAAAAJQNhAM4V9AjTFQ0J5xUmCfYVPwkAFk4JFBZi
CSMWZwk3FnEJSxZxCV8WcQlzFnEJghZnCZYWYgmlFk4JuRY/CcgWTgncFmIJ
6xZnCfoWcQkTF3EJJxdxCTEXcQlKF2cJXhdiCW0XTgl8Fz8JixcmCZoXDQmk
F/QIrhf0CL0X9AjMF/QI1hfqCOUX4Aj0F8wI+Re9CP4XqQgDGJAIAxh8CAMY
aAj+F08I+Rc7CPQXLAjlFxgI1hcOCMwXBAi9FwQIrhcECKQXBAiaF+sHixfS
B3wXuQdtF6oHXheWB0oXkQcxF4cHJxeHBxMXhwf6FocH6xaRB9wWlgfIFqoH
uRa5B6UWqgeWFpYHghaRB3MWhwdfFocHSxaHBzcWhwcjFpEHFBaWBwAWqgf2
FbkH5xXSB9MV6wfOFQQIvxUECLUVBAimFQQInBUOCI0VGAh+FSwIeRU7CG8V
TwhvFWgIbxV8CG8VkAhvFakIeRW9CH4VzAiNFeAInBXqCKYV9Ai1FfQIvxX0
CM4V9AgEAAAABAENAAkAAAD6AgYAHgAAAAAAAAAiAAQAAAAtAQIABAAAAPAB
BQAEAAAALQEAAAcAAAD8AgAAf39/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAk
AwUASg20EdENMhG0ETIRLRG0EUoNtBEEAAAALQEAAAQAAADwAQUABAAAAAQB
DQAOAAAAJQMFAEoNtBHRDTIRtBEyES0RtBFKDbQRBAAAAAQBDQAEAAAALQEA
AAcAAAD8AgAAv7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUASg2vETIR
rxEyEW0SSg1tEkoNrxEEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMF
AEoNrxEyEa8RMhFtEkoNbRJKDa8RBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAA
paWlAAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUAMhFyErQR5hG0ETIRMhG0
ETIRchIEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMFADIRchK0EeYR
tBEyETIRtBEyEXISBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAA2NjYAAAABAAA
AC0BBQAEAAAABgEBAA4AAAAkAwUATw1xDrgNDQ6bEQ0OMhFxDk8NcQ4EAAAA
LQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMFAE8NcQ64DQ0OmxENDjIRcQ5P
DXEOBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAAv7+/AAAABAAAAC0BBQAEAAAA
BgEBAA4AAAAkAwUASg2METIRjBEyEWwOSg1sDkoNjBEEAAAALQEAAAQAAADw
AQUABAAAAAQBDQAOAAAAJQMFAEoNjBEyEYwRMhFsDkoNbA5KDYwRBAAAAAQB
DQAEAAAALQEAAAcAAAD8AgAApaWlAAAABAAAAC0BBQAEAAAABgEBAA4AAAAk
AwUAmxEIDi0RcQ4tEYwRmxEjEZsRCA4EAAAALQEAAAQAAADwAQUABAAAAAQB
DQAOAAAAJQMFAJsRCA4tEXEOLRGMEZsRIxGbEQgOBAAAAAQBDQAEAAAALQEA
AAcAAAD8AgAAv7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUAWgxYE/oM
kBI8EZASnBBYE1oMWBMEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMF
AFoMWBP6DJASPBGQEpwQWBNaDFgTBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAA
v7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUAWgxYE/oMkBI8EZASnBBY
E1oMWBMEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMFAFoMWBP6DJAS
PBGQEpwQWBNaDFgTBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAApaWlAAAABAAA
AC0BBQAEAAAABgEBAA4AAAAkAwUAoRCAEzcR1hI3EZUSoRBTE6EQgBMEAAAA
LQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMFAKEQgBM3EdYSNxGVEqEQUxOh
EIATBAAAAAQBDQAEAAAALQEAAAcAAAD8AgAApaWlAAAABAAAAC0BBQAEAAAA
BgEBAA4AAAAkAwUAoRCAEzcR1hI3EZUSoRBTE6EQgBMEAAAALQEAAAQAAADw
AQUABAAAAAQBDQAOAAAAJQMFAKEQgBM3EdYSNxGVEqEQUxOhEIATBAAAAAQB
DQAEAAAALQEAAAcAAAD8AgAAv7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAk
AwUAXwxYE6EQWBOhEIATXwyAE18MWBMEAAAALQEAAAQAAADwAQUABAAAAAQB
DQAOAAAAJQMFAF8MWBOhEFgToRCAE18MgBNfDFgTBAAAAAQBDQAEAAAALQEA
AAcAAAD8AgAAv7+/AAAABAAAAC0BBQAEAAAABgEBAA4AAAAkAwUAXwxYE6EQ
WBOhEIATXwyAE18MWBMEAAAALQEAAAQAAADwAQUABAAAAAQBDQAOAAAAJQMF
AF8MWBOhEFgToRCAE18MgBNfDFgTBAAAAAQBDQAEAAAALQEAAAQAAAAtAQQA
BAAAAAYBAQAOAAAAJAMFANMQ0A6pDdAOqQ0oEdMQKBHTENAOBAAAAC0BAAAE
AAAABAENAA4AAAAlAwUA0xDQDqkN0A6pDSgR0xAoEdMQ0A4EAAAABAENAAUA
AAAUAhgS/A8FAAAAEwIYEsQQBAAAAAQBDQAJAAAA+gIGAEEAAAAAAAAAIgAE
AAAALQEFAAQAAADwAQIABAAAAC0BAAAEAAAALQEDAAQAAAAGAQEAxgAAACQD
YQBODnQQUw6NEGcOphB2Dr8QgA7OEJQO4hCjDucQtw7xEMsO8RDfDvEQ8w7x
EAIP5xAWD+IQJQ/OEDkPvxBID84QXA/iEGsP5xB6D/EQkw/xEKcP8RCxD/EQ
yg/nEN4P4hDtD84Q/A+/EAsQphAaEI0QJBB0EC4QdBA9EHQQTBB0EFYQahBl
EGAQdBBMEHkQPRB+ECkQgxAQEIMQ/A+DEOgPfhDPD3kQuw90EKwPZRCYD1YQ
jg9MEIQPPRCEDy4QhA8kEIQPGhBrDwsQUg/8DzkP7Q8qD94PFg/KDxEPsQ8H
D6cPBw+TDwcPeg8HD2sPEQ9cDxYPSA8qDzkPOQ8lDyoPFg8WDwIPEQ/zDgcP
3w4HD8sOBw+3DgcPow4RD5QOFg+ADioPdg45D2cOUg9TDmsPTg6EDz8OhA81
DoQPJg6EDxwOjg8NDpgP/g2sD/kNuw/vDc8P7w3oD+8N/A/vDRAQ7w0pEPkN
PRD+DUwQDQ5gEBwOahAmDnQQNQ50ED8OdBBODnQQBAAAAC0BAAAEAAAABAEN
AMYAAAAlA2EATg50EFMOjRBnDqYQdg6/EIAOzhCUDuIQow7nELcO8RDLDvEQ
3w7xEPMO8RACD+cQFg/iECUPzhA5D78QSA/OEFwP4hBrD+cQeg/xEJMP8RCn
D/EQsQ/xEMoP5xDeD+IQ7Q/OEPwPvxALEKYQGhCNECQQdBAuEHQQPRB0EEwQ
dBBWEGoQZRBgEHQQTBB5ED0QfhApEIMQEBCDEPwPgxDoD34Qzw95ELsPdBCs
D2UQmA9WEI4PTBCEDz0QhA8uEIQPJBCEDxoQaw8LEFIP/A85D+0PKg/eDxYP
yg8RD7EPBw+nDwcPkw8HD3oPBw9rDxEPXA8WD0gPKg85DzkPJQ8qDxYPFg8C
DxEP8w4HD98OBw/LDgcPtw4HD6MOEQ+UDhYPgA4qD3YOOQ9nDlIPUw5rD04O
hA8/DoQPNQ6EDyYOhA8cDo4PDQ6YD/4NrA/5DbsP7w3PD+8N6A/vDfwP7w0Q
EO8NKRD5DT0Q/g1MEA0OYBAcDmoQJg50EDUOdBA/DnQQTg50EAQAAAAEAQ0A
BAAAACcB//8eAAAAJgYPADEAQ29weXJpZ2h0IKkgMTk5NiBNaWNyb3N5c3Rl
bXMgRW5naW5lZXJpbmcgQ29tcGFueQAPAAAAJgYPABMAQWxsIFJpZ2h0cyBS
ZXNlcnZlZAAEAAAA8AEBAAMAAAAAAAAAEQAAAAwAAAAIAAAACwAAABAAAAAx
AQAA5QAAAAkAAAAQAAAAMQEAAOUAAAAJAAAAEAAAAG4fAACPFwAACQAAABAA
AABuHwAAjxcAACAAAAAYAAAAAQAAAAEAAAABAAAAAQAAACEAAAAIAAAAFAAA
AAwAAAANAAAAJQAAAAwAAAAFAACAJgAAABwAAAABAAAAAAAAAAAAAAAAAAAA
AAAAACUAAAAMAAAAAQAAACYAAAAcAAAAAgAAAAYAAABBAAAAAAAAAAAAAAAl
AAAADAAAAAIAAAAlAAAADAAAAAUAAIAnAAAAGAAAAAMAAAAAAAAA////AAAA
AAAlAAAADAAAAAMAAAATAAAADAAAAAEAAABWAAAAoAEAAP7////+////MwEA
AOcAAABhAAAArQRzESUFqRLABcYTYAbFFCMHoRXwB1UWzAjXFqgJNheYCm0X
fgttF18MShdPDfoWJg5uFu4OuhW2D94UahC6FUYRbhYTEvoW+RJKF+4TbRfF
FG0XphU2F4wW1xZtF1UWNRihFfMYxRSdGcYTLhqpEroacxFVG5sRBByMEakc
XxFOHfsQ5B1qEFcesQ/FHtAOAR/bDTgf1wxMH8kLOB+xCgEfqAnFHrgIVx7m
B+QdKAdOHZwGqRwpBgQc9wVVG+0FuhokBi4a5ASdGb0D8xi5AjUY7AFtFy4B
jBaxAKYVTQDFFCAA7hMgAPkSPgATEp0ARhEkAWoQzgG2D6AC7g7OASYOJAFP
DZ0AXww+AH4LIACYCiAAqAlNAMwIsQDwBy4BIwfsAWAGuQLABb0DJQXkBK0E
JAYDBO0FWQP3BbQCKQYUApwGgwEoBwsB5gedALgITQCoCSUAsQogAMkLJQDX
DE0A2w2dANAOCwGxD4MBahAUAvsQtAJfEVkDjBEDBJsRrQRzESUAAAAMAAAA
BQAAgBQAAAAMAAAADQAAAFcAAACgAQAA/v////7///8zAQAA5wAAAGEAAACt
BHMRJQWpEsAFxhNgBsUUIwehFfAHVRbMCNcWqAk2F5gKbRd+C20XXwxKF08N
+hYmDm4W7g66FbYP3hRqELoVRhFuFhMS+hb5EkoX7hNtF8UUbRemFTYXjBbX
Fm0XVRY1GKEV8xjFFJ0ZxhMuGqkSuhpzEVUbmxEEHIwRqRxfEU4d+xDkHWoQ
Vx6xD8Ue0A4BH9sNOB/XDEwfyQs4H7EKAR+oCcUeuAhXHuYH5B0oB04dnAap
HCkGBBz3BVUb7QW6GiQGLhrkBJ0ZvQPzGLkCNRjsAW0XLgGMFrEAphVNAMUU
IADuEyAA+RI+ABMSnQBGESQBahDOAbYPoALuDs4BJg4kAU8NnQBfDD4Afgsg
AJgKIACoCU0AzAixAPAHLgEjB+wBYAa5AsAFvQMlBeQErQQkBgME7QVZA/cF
tAIpBhQCnAaDASgHCwHmB50AuAhNAKgJJQCxCiAAyQslANcMTQDbDZ0A0A4L
AbEPgwFqEBQC+xC0Al8RWQOMEQMEmxGtBHMRFAAAAAwAAAANAAAAJgAAABwA
AAAEAAAABgAAAEEAAAAAAAAA/wAAACUAAAAMAAAABAAAACgAAAAMAAAAAgAA
AFcAAAAsAAAATQAAAEwAAADkAAAAqAAAAAQAAABmD+wQNggsCDYXLAhmD+wQ
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
DQAAABsAAAAQAAAAHAkAAJgKAAA2AAAAEAAAAOQJAACYCgAAFAAAAAwAAAAN
AAAAJgAAABwAAAAFAAAABgAAAEEAAAAAAAAAAAAAACUAAAAMAAAABQAAACgA
AAAMAAAAAgAAACUAAAAMAAAABQAAgCUAAAAMAAAAAwAAABMAAAAMAAAAAQAA
AFYAAACgAQAAQgAAAEYAAABhAAAAXwAAAGEAAABuB/QIcwcNCYcHJgmWBz8J
oAdOCbQHYgnDB2cJ1wdxCesHcQn/B3EJEwhxCSIIZwk2CGIJRQhOCVkIPwlo
CE4JfAhiCYsIZwmaCHEJswhxCccIcQnRCHEJ6ghnCf4IYgkNCU4JHAk/CSsJ
Jgk6CQ0JRAn0CE4J9AhdCfQIbAn0CHYJ6giFCeAIlAnMCJkJvQieCakIowmQ
CKMJfAijCWgInglPCJkJOwiUCSwIhQkYCHYJDghsCQQIXQkECE4JBAhECQQI
OgnrBysJ0gccCbkHDQmqB/4IlgfqCJEH0QiHB8cIhwezCIcHmgiHB4sIkQd8
CJYHaAiqB1kIuQdFCKoHNgiWByIIkQcTCIcH/weHB+sHhwfXB4cHwweRB7QH
lgegB6oHlge5B4cH0gdzB+sHbgcECF8HBAhVBwQIRgcECDwHDggtBxgIHgcs
CBkHOwgPB08IDwdoCA8HfAgPB5AIDwepCBkHvQgeB8wILQfgCDwH6ghGB/QI
VQf0CF8H9AhuB/QIJQAAAAwAAAAFAACAFAAAAAwAAAANAAAAVwAAAKABAABC
AAAARgAAAGEAAABfAAAAYQAAAG4H9AhzBw0JhwcmCZYHPwmgB04JtAdiCcMH
ZwnXB3EJ6wdxCf8HcQkTCHEJIghnCTYIYglFCE4JWQg/CWgITgl8CGIJiwhn
CZoIcQmzCHEJxwhxCdEIcQnqCGcJ/ghiCQ0JTgkcCT8JKwkmCToJDQlECfQI
Tgn0CF0J9AhsCfQIdgnqCIUJ4AiUCcwImQm9CJ4JqQijCZAIowl8CKMJaAie
CU8ImQk7CJQJLAiFCRgIdgkOCGwJBAhdCQQITgkECEQJBAg6CesHKwnSBxwJ
uQcNCaoH/giWB+oIkQfRCIcHxwiHB7MIhweaCIcHiwiRB3wIlgdoCKoHWQi5
B0UIqgc2CJYHIgiRBxMIhwf/B4cH6weHB9cHhwfDB5EHtAeWB6AHqgeWB7kH
hwfSB3MH6wduBwQIXwcECFUHBAhGBwQIPAcOCC0HGAgeBywIGQc7CA8HTwgP
B2gIDwd8CA8HkAgPB6kIGQe9CB4HzAgtB+AIPAfqCEYH9AhVB/QIXwf0CG4H
9AgUAAAADAAAAA0AAAAmAAAAHAAAAAIAAAAGAAAAHgAAAAAAAAAAAAAAJQAA
AAwAAAACAAAAKAAAAAwAAAAFAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAA
AAAAAH9/fwAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADK
AAAAXgAAAPUAAABjAAAABQAAAMoUNApRFbIJNBmyCa0YNArKFDQKJQAAAAwA
AAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADKAAAAXgAA
APUAAABjAAAABQAAAMoUNApRFbIJNBmyCa0YNArKFDQKFAAAAAwAAAANAAAA
JQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAAF
AAAAEwAAAAwAAAABAAAAVgAAADAAAADKAAAAYwAAAPAAAABqAAAABQAAAMoU
LwqyGC8KshjtCsoU7QrKFC8KJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAA
AAwAAAANAAAAVwAAADAAAADKAAAAYwAAAPAAAABqAAAABQAAAMoULwqyGC8K
shjtCsoU7QrKFC8KFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAF
AAAAAAAAAKWlpQAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAA
AADwAAAAXgAAAPUAAABqAAAABQAAALIY8go0GWYKNBmyCbIYNAqyGPIKJQAA
AAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADwAAAA
XgAAAPUAAABqAAAABQAAALIY8go0GWYKNBmyCbIYNAqyGPIKFAAAAAwAAAAN
AAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAANjY2AAAAAAAJQAAAAwA
AAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADKAAAAQAAAAPQAAABEAAAABQAA
AM8U8QY4FY0GGxmNBrIY8QbPFPEGJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAA
FAAAAAwAAAANAAAAVwAAADAAAADKAAAAQAAAAPQAAABDAAAABQAAAM8U8QY4
FY0GGxmNBrIY8QbPFPEGFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgA
AAAFAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAA
ADAAAADKAAAAQwAAAPAAAABiAAAABQAAAMoUDAqyGAwKshjsBsoU7AbKFAwK
JQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADK
AAAAQwAAAPAAAABiAAAABQAAAMoUDAqyGAwKshjsBsoU7AbKFAwKFAAAAAwA
AAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAKWlpQAAAAAAJQAA
AAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADvAAAAQAAAAPQAAABiAAAA
BQAAABsZiAatGPEGrRgMChsZowkbGYgGJQAAAAwAAAAFAACAKAAAAAwAAAAF
AAAAFAAAAAwAAAANAAAAVwAAADAAAADvAAAAPwAAAPQAAABiAAAABQAAABsZ
iAatGPEGrRgMChsZowkbGYgGFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAA
ABgAAAAFAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAA
VgAAADAAAADBAAAAbAAAAPAAAABzAAAABQAAANoT2At6FBALvBgQCxwY2Ava
E9gLJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAA
AADBAAAAbAAAAPAAAABzAAAABQAAANoT2At6FBALvBgQCxwY2AvaE9gLFAAA
AAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAL+/vwAAAAAA
JQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADBAAAAbAAAAPAAAABz
AAAABQAAANoT2At6FBALvBgQCxwY2AvaE9gLJQAAAAwAAAAFAACAKAAAAAwA
AAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADBAAAAbAAAAPAAAABzAAAABQAA
ANoT2At6FBALvBgQCxwY2AvaE9gLFAAAAAwAAAANAAAAJQAAAAwAAAAFAACA
JwAAABgAAAAFAAAAAAAAAKWlpQAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAAB
AAAAVgAAADAAAADqAAAAbAAAAPAAAAB1AAAABQAAACEYAAy3GFYLtxgVCyEY
0wshGAAMJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAA
ADAAAADqAAAAbAAAAPAAAAB1AAAABQAAACEYAAy3GFYLtxgVCyEY0wshGAAM
FAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAKWlpQAA
AAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADqAAAAbAAAAPAA
AAB1AAAABQAAACEYAAy3GFYLtxgVCyEY0wshGAAMJQAAAAwAAAAFAACAKAAA
AAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADqAAAAbAAAAPAAAAB1AAAA
BQAAACEYAAy3GFYLtxgVCyEY0wshGAAMFAAAAAwAAAANAAAAJQAAAAwAAAAF
AACAJwAAABgAAAAFAAAAAAAAAL+/vwAAAAAAJQAAAAwAAAAFAAAAEwAAAAwA
AAABAAAAVgAAADAAAADBAAAAcwAAAOoAAAB1AAAABQAAAN8T2AshGNgLIRgA
DN8TAAzfE9gLJQAAAAwAAAAFAACAKAAAAAwAAAAFAAAAFAAAAAwAAAANAAAA
VwAAADAAAADBAAAAcwAAAOoAAAB1AAAABQAAAN8T2AshGNgLIRgADN8TAAzf
E9gLFAAAAAwAAAANAAAAJQAAAAwAAAAFAACAJwAAABgAAAAFAAAAAAAAAL+/
vwAAAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAAVgAAADAAAADBAAAAcwAA
AOoAAAB1AAAABQAAAN8T2AshGNgLIRgADN8TAAzfE9gLJQAAAAwAAAAFAACA
KAAAAAwAAAAFAAAAFAAAAAwAAAANAAAAVwAAADAAAADBAAAAcwAAAOoAAAB1
AAAABQAAAN8T2AshGNgLIRgADN8TAAzfE9gLFAAAAAwAAAANAAAAJQAAAAwA
AAAFAACAJQAAAAwAAAAEAAAAEwAAAAwAAAABAAAAVgAAADAAAADNAAAARwAA
AOwAAABeAAAABQAAAFMYUAcpFVAHKRWoCVMYqAlTGFAHJQAAAAwAAAAFAACA
FAAAAAwAAAANAAAAVwAAADAAAADNAAAARwAAAOwAAABeAAAABQAAAFMYUAcp
FVAHKRWoCVMYqAlTGFAHFAAAAAwAAAANAAAAGwAAABAAAAB8FwAAmAoAADYA
AAAQAAAARBgAAJgKAAAUAAAADAAAAA0AAAAmAAAAHAAAAAUAAAAGAAAAQQAA
AAAAAAAAAAAAJQAAAAwAAAAFAAAAKAAAAAwAAAACAAAAJQAAAAwAAAAFAACA
JQAAAAwAAAADAAAAEwAAAAwAAAABAAAAVgAAAKABAADNAAAARgAAAOwAAABf
AAAAYQAAAM4V9AjTFQ0J5xUmCfYVPwkAFk4JFBZiCSMWZwk3FnEJSxZxCV8W
cQlzFnEJghZnCZYWYgmlFk4JuRY/CcgWTgncFmIJ6xZnCfoWcQkTF3EJJxdx
CTEXcQlKF2cJXhdiCW0XTgl8Fz8JixcmCZoXDQmkF/QIrhf0CL0X9AjMF/QI
1hfqCOUX4Aj0F8wI+Re9CP4XqQgDGJAIAxh8CAMYaAj+F08I+Rc7CPQXLAjl
FxgI1hcOCMwXBAi9FwQIrhcECKQXBAiaF+sHixfSB3wXuQdtF6oHXheWB0oX
kQcxF4cHJxeHBxMXhwf6FocH6xaRB9wWlgfIFqoHuRa5B6UWqgeWFpYHghaR
B3MWhwdfFocHSxaHBzcWhwcjFpEHFBaWBwAWqgf2FbkH5xXSB9MV6wfOFQQI
vxUECLUVBAimFQQInBUOCI0VGAh+FSwIeRU7CG8VTwhvFWgIbxV8CG8VkAhv
FakIeRW9CH4VzAiNFeAInBXqCKYV9Ai1FfQIvxX0CM4V9AglAAAADAAAAAUA
AIAUAAAADAAAAA0AAABXAAAAoAEAAM0AAABGAAAA7AAAAF8AAABhAAAAzhX0
CNMVDQnnFSYJ9hU/CQAWTgkUFmIJIxZnCTcWcQlLFnEJXxZxCXMWcQmCFmcJ
lhZiCaUWTgm5Fj8JyBZOCdwWYgnrFmcJ+hZxCRMXcQknF3EJMRdxCUoXZwle
F2IJbRdOCXwXPwmLFyYJmhcNCaQX9AiuF/QIvRf0CMwX9AjWF+oI5RfgCPQX
zAj5F70I/hepCAMYkAgDGHwIAxhoCP4XTwj5FzsI9BcsCOUXGAjWFw4IzBcE
CL0XBAiuFwQIpBcECJoX6weLF9IHfBe5B20XqgdeF5YHSheRBzEXhwcnF4cH
ExeHB/oWhwfrFpEH3BaWB8gWqge5FrkHpRaqB5YWlgeCFpEHcxaHB18WhwdL
FocHNxaHByMWkQcUFpYHABaqB/YVuQfnFdIH0xXrB84VBAi/FQQItRUECKYV
BAicFQ4IjRUYCH4VLAh5FTsIbxVPCG8VaAhvFXwIbxWQCG8VqQh5Fb0IfhXM
CI0V4AicFeoIphX0CLUV9Ai/FfQIzhX0CBQAAAAMAAAADQAAACYAAAAcAAAA
AgAAAAYAAAAeAAAAAAAAAAAAAAAlAAAADAAAAAIAAAAoAAAADAAAAAUAAAAl
AAAADAAAAAUAAIAnAAAAGAAAAAUAAAAAAAAAf39/AAAAAAAlAAAADAAAAAUA
AAATAAAADAAAAAEAAABWAAAAMAAAAIEAAACnAAAArAAAAKwAAAAFAAAASg20
EdENMhG0ETIRLRG0EUoNtBElAAAADAAAAAUAAIAoAAAADAAAAAUAAAAUAAAA
DAAAAA0AAABXAAAAMAAAAIEAAACnAAAArAAAAKwAAAAFAAAASg20EdENMhG0
ETIRLRG0EUoNtBEUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAAGAAAAAUA
AAAAAAAAv7+/AAAAAAAlAAAADAAAAAUAAAATAAAADAAAAAEAAABWAAAAMAAA
AIEAAACsAAAApwAAALMAAAAFAAAASg2vETIRrxEyEW0SSg1tEkoNrxElAAAA
DAAAAAUAAIAoAAAADAAAAAUAAAAUAAAADAAAAA0AAABXAAAAMAAAAIEAAACs
AAAApwAAALMAAAAFAAAASg2vETIRrxEyEW0SSg1tEkoNrxEUAAAADAAAAA0A
AAAlAAAADAAAAAUAAIAnAAAAGAAAAAUAAAAAAAAApaWlAAAAAAAlAAAADAAA
AAUAAAATAAAADAAAAAEAAABWAAAAMAAAAKcAAACnAAAArAAAALMAAAAFAAAA
MhFyErQR5hG0ETIRMhG0ETIRchIlAAAADAAAAAUAAIAoAAAADAAAAAUAAAAU
AAAADAAAAA0AAABXAAAAMAAAAKcAAACnAAAArAAAALMAAAAFAAAAMhFyErQR
5hG0ETIRMhG0ETIRchIUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAnAAAAGAAA
AAUAAAAAAAAA2NjYAAAAAAAlAAAADAAAAAUAAAATAAAADAAAAAEAAABWAAAA
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
DAAAAAEAAABWAAAAMAAAAIUAAACQAAAAowAAAKcAAAAFAAAA0xDQDqkN0A6p
DSgR0xAoEdMQ0A4lAAAADAAAAAUAAIAUAAAADAAAAA0AAABXAAAAMAAAAIUA
AACQAAAAowAAAKcAAAAFAAAA0xDQDqkN0A6pDSgR0xAoEdMQ0A4UAAAADAAA
AA0AAAAbAAAAEAAAAPwPAAAYEgAANgAAABAAAADEEAAAGBIAABQAAAAMAAAA
DQAAACYAAAAcAAAABQAAAAYAAABBAAAAAAAAAAAAAAAlAAAADAAAAAUAAAAo
AAAADAAAAAIAAAAlAAAADAAAAAUAAIAlAAAADAAAAAMAAAATAAAADAAAAAEA
AABWAAAAoAEAAIQAAACPAAAAowAAAKgAAABhAAAATg50EFMOjRBnDqYQdg6/
EIAOzhCUDuIQow7nELcO8RDLDvEQ3w7xEPMO8RACD+cQFg/iECUPzhA5D78Q
SA/OEFwP4hBrD+cQeg/xEJMP8RCnD/EQsQ/xEMoP5xDeD+IQ7Q/OEPwPvxAL
EKYQGhCNECQQdBAuEHQQPRB0EEwQdBBWEGoQZRBgEHQQTBB5ED0QfhApEIMQ
EBCDEPwPgxDoD34Qzw95ELsPdBCsD2UQmA9WEI4PTBCEDz0QhA8uEIQPJBCE
DxoQaw8LEFIP/A85D+0PKg/eDxYPyg8RD7EPBw+nDwcPkw8HD3oPBw9rDxEP
XA8WD0gPKg85DzkPJQ8qDxYPFg8CDxEP8w4HD98OBw/LDgcPtw4HD6MOEQ+U
DhYPgA4qD3YOOQ9nDlIPUw5rD04OhA8/DoQPNQ6EDyYOhA8cDo4PDQ6YD/4N
rA/5DbsP7w3PD+8N6A/vDfwP7w0QEO8NKRD5DT0Q/g1MEA0OYBAcDmoQJg50
EDUOdBA/DnQQTg50ECUAAAAMAAAABQAAgBQAAAAMAAAADQAAAFcAAACgAQAA
hAAAAI8AAACjAAAAqAAAAGEAAABODnQQUw6NEGcOphB2Dr8QgA7OEJQO4hCj
DucQtw7xEMsO8RDfDvEQ8w7xEAIP5xAWD+IQJQ/OEDkPvxBID84QXA/iEGsP
5xB6D/EQkw/xEKcP8RCxD/EQyg/nEN4P4hDtD84Q/A+/EAsQphAaEI0QJBB0
EC4QdBA9EHQQTBB0EFYQahBlEGAQdBBMEHkQPRB+ECkQgxAQEIMQ/A+DEOgP
fhDPD3kQuw90EKwPZRCYD1YQjg9MEIQPPRCEDy4QhA8kEIQPGhBrDwsQUg/8
DzkP7Q8qD94PFg/KDxEPsQ8HD6cPBw+TDwcPeg8HD2sPEQ9cDxYPSA8qDzkP
OQ8lDyoPFg8WDwIPEQ/zDgcP3w4HD8sOBw+3DgcPow4RD5QOFg+ADioPdg45
D2cOUg9TDmsPTg6EDz8OhA81DoQPJg6EDxwOjg8NDpgP/g2sD/kNuw/vDc8P
7w3oD+8N/A/vDRAQ7w0pEPkNPRD+DUwQDQ5gEBwOahAmDnQQNQ50ED8OdBBO
DnQQFAAAAAwAAAANAAAAIgAAAAwAAAD/////KAAAAAwAAAABAAAAJQAAAAwA
AAAHAACAJQAAAAwAAAAAAACAMAAAAAwAAAAPAACASwAAABAAAAAAAAAABQAA
ACgAAAAMAAAAAwAAACgAAAAMAAAABAAAACgAAAAMAAAABQAAAA4AAAAUAAAA
AAAAABAAAAAUAAAAGkAHQCwAAAAgAAAA/////wIAAAAAAAAAAAAAAIXemEPo
xGVDAAAAAOgD6AMhAAAACAAAAGIAAAAMAAAAAQAAACEAAAAIAAAAIQAAAAgA
AABzAAAADAAAAAAAAAAcAAAACAAAACUAAAAMAAAAAAAAgCUAAAAMAAAABwAA
gCUAAAAMAAAADgAAgDAAAAAMAAAADwAAgBkAAAAMAAAA////ABgAAAAMAAAA
AAAAABIAAAAMAAAAAgAAABMAAAAMAAAAAQAAABQAAAAMAAAADQAAABUAAAAM
AAAAAQAAABYAAAAMAAAAAAAAAA0AAAAQAAAAAAAAAAAAAAA6AAAADAAAAAoA
AAAbAAAAEAAAAAAAAAAAAAAAIwAAACAAAACRnck+AAAAAAAAAAD8bMk+AAAx
RAAAs0MkAAAAJAAAAJGdyT4AAAAAAAAAAPxsyT4AADFEAACzQwQAAABzAAAA
DAAAAAAAAAANAAAAEAAAAMQCAABmAQAAUgAAAHABAAAFAAAAFAAAAAoAAAAA
AAAAAAAAAJABAAAAAACBBwICIlMAeQBzAHQAZQBtAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/g0A
AEwQAAAgAAAAYBAAABwOAABIZfF33GTxdwkAAAAhAIoBDQAAAJTfEgCFNPJ3
0CRkAwQaId7QJGQDJgCKAQQaId4LAIgBv78BAAQAAADc3BIApN0SANDdEgAY
7pB8cAWRfP////9tBZF8WpmAfAAAFAAAAAAAbZmAfAAAMFiQT1kDIDD1dyUA
AACwRhUAAAAQALBGFQDk3RIAmyjyd+gUIwCwRhUA0CRkA0dESUMEGiHeIQCK
AQgAAAAAABIAaG1ZA2ivYQNANiAAEwAAAEA2IABANiAAaK9hA2ivYQMo3hIA
wRLyd0A2IAATAAAAaG1ZA0A2IAA43hIAZHYACAAAAAAlAAAADAAAAAUAAABG
AAAAKAAAABwAAABHRElDAgAAAAAAAAAAAAAAMQEAAOUAAAAAAAAAIwAAACAA
AACRnck+AAAAAAAAAAD8bMk+AAAxRAAAs0MkAAAAJAAAAJGdyT4AAAAAAAAA
APxsyT4AADFEAACzQwQAAAAjAAAAIAAAALo08EIAAAAAAAAAAH0utEIAADFE
AACzQyQAAAAkAAAAujTwQgAAAAAAAAAAfS60QgAAMUQAALNDBAAAACMAAAAg
AAAAkZ3JPgAAAAAAAAAA/GzJPgAAMUQAALNDJAAAACQAAACRnck+AAAAAAAA
AAD8bMk+AAAxRAAAs0MEAAAAIwAAACAAAACNkHQ8AAAAAAAAAABTvnQ8AAAx
RAAAs0MkAAAAJAAAAI2QdDwAAAAAAAAAAFO+dDwAADFEAACzQwQAAAAjAAAA
IAAAAI2QdDwAAAAAAAAAAFO+dDwAADFEAACzQyQAAAAkAAAAjZB0PAAAAAAA
AAAAU750PAAAMUQAALNDBAAAACMAAAAgAAAAjZB0PAAAAAAAAAAAU750PAAA
MUQAALNDJAAAACQAAACNkHQ8AAAAAAAAAABTvnQ8AAAxRAAAs0MEAAAAIQAA
AAgAAAAUAAAADAAAAA0AAAAlAAAADAAAAAUAAIAmAAAAHAAAAAcAAAAAAAAA
AAAAAAAAAAAAAAAAJQAAAAwAAAAHAAAAJgAAABwAAAAGAAAABgAAAEEAAAAA
AAAAAAAAACUAAAAMAAAABgAAACUAAAAMAAAABQAAgCcAAAAYAAAAAgAAAAAA
AAD///8AAAAAACUAAAAMAAAAAgAAABMAAAAMAAAAAQAAAFYAAACgAQAAxAIA
AGYBAAA8AwAAwAEAAGEAAACtBHMRJQWpEsAFxhNgBsUUIwehFfAHVRbMCNcW
qAk2F5gKbRd+C20XXwxKF08N+hYmDm4W7g66FbYP3hRqELoVRhFuFhMS+hb5
EkoX7hNtF8UUbRemFTYXjBbXFm0XVRY1GKEV8xjFFJ0ZxhMuGqkSuhpzEVUb
mxEEHIwRqRxfEU4d+xDkHWoQVx6xD8Ue0A4BH9sNOB/XDEwfyQs4H7EKAR+o
CcUeuAhXHuYH5B0oB04dnAapHCkGBBz3BVUb7QW6GiQGLhrkBJ0ZvQPzGLkC
NRjsAW0XLgGMFrEAphVNAMUUIADuEyAA+RI+ABMSnQBGESQBahDOAbYPoALu
Ds4BJg4kAU8NnQBfDD4AfgsgAJgKIACoCU0AzAixAPAHLgEjB+wBYAa5AsAF
vQMlBeQErQQkBgME7QVZA/cFtAIpBhQCnAaDASgHCwHmB50AuAhNAKgJJQCx
CiAAyQslANcMTQDbDZ0A0A4LAbEPgwFqEBQC+xC0Al8RWQOMEQMEmxGtBHMR
JQAAAAwAAAAFAACAFAAAAAwAAAANAAAAVwAAAKABAADEAgAAZgEAADwDAADA
AQAAYQAAAK0EcxElBakSwAXGE2AGxRQjB6EV8AdVFswI1xaoCTYXmAptF34L
bRdfDEoXTw36FiYObhbuDroVtg/eFGoQuhVGEW4WExL6FvkSShfuE20XxRRt
F6YVNheMFtcWbRdVFjUYoRXzGMUUnRnGEy4aqRK6GnMRVRubEQQcjBGpHF8R
Th37EOQdahBXHrEPxR7QDgEf2w04H9cMTB/JCzgfsQoBH6gJxR64CFce5gfk
HSgHTh2cBqkcKQYEHPcFVRvtBboaJAYuGuQEnRm9A/MYuQI1GOwBbRcuAYwW
sQCmFU0AxRQgAO4TIAD5Ej4AExKdAEYRJAFqEM4Btg+gAu4OzgEmDiQBTw2d
AF8MPgB+CyAAmAogAKgJTQDMCLEA8AcuASMH7AFgBrkCwAW9AyUF5AStBCQG
AwTtBVkD9wW0AikGFAKcBoMBKAcLAeYHnQC4CE0AqAklALEKIADJCyUA1wxN
ANsNnQDQDgsBsQ+DAWoQFAL7ELQCXxFZA4wRAwSbEa0EcxEUAAAADAAAAA0A
AAAmAAAAHAAAAAQAAAAGAAAAQQAAAAAAAAD/AAAAJQAAAAwAAAAEAAAAKAAA
AAwAAAAGAAAAVwAAACwAAADjAgAAhQEAAB0DAACnAQAABAAAAGYP7BA2CCwI
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
FAAAAAwAAAANAAAAGwAAABAAAAAcCQAAmAoAADYAAAAQAAAA5AkAAJgKAAAU
AAAADAAAAA0AAAAmAAAAHAAAAAMAAAAGAAAAQQAAAAAAAAAAAAAAJQAAAAwA
AAADAAAAKAAAAAwAAAAGAAAAJQAAAAwAAAAFAACAJQAAAAwAAAACAAAAEwAA
AAwAAAABAAAAVgAAAKABAADfAgAAggEAAOkCAACLAQAAYQAAAG4H9AhzBw0J
hwcmCZYHPwmgB04JtAdiCcMHZwnXB3EJ6wdxCf8HcQkTCHEJIghnCTYIYglF
CE4JWQg/CWgITgl8CGIJiwhnCZoIcQmzCHEJxwhxCdEIcQnqCGcJ/ghiCQ0J
TgkcCT8JKwkmCToJDQlECfQITgn0CF0J9AhsCfQIdgnqCIUJ4AiUCcwImQm9
CJ4JqQijCZAIowl8CKMJaAieCU8ImQk7CJQJLAiFCRgIdgkOCGwJBAhdCQQI
TgkECEQJBAg6CesHKwnSBxwJuQcNCaoH/giWB+oIkQfRCIcHxwiHB7MIhwea
CIcHiwiRB3wIlgdoCKoHWQi5B0UIqgc2CJYHIgiRBxMIhwf/B4cH6weHB9cH
hwfDB5EHtAeWB6AHqgeWB7kHhwfSB3MH6wduBwQIXwcECFUHBAhGBwQIPAcO
CC0HGAgeBywIGQc7CA8HTwgPB2gIDwd8CA8HkAgPB6kIGQe9CB4HzAgtB+AI
PAfqCEYH9AhVB/QIXwf0CG4H9AglAAAADAAAAAUAAIAUAAAADAAAAA0AAABX
AAAAoAEAAN8CAACCAQAA6QIAAIsBAABhAAAAbgf0CHMHDQmHByYJlgc/CaAH
Tgm0B2IJwwdnCdcHcQnrB3EJ/wdxCRMIcQkiCGcJNghiCUUITglZCD8JaAhO
CXwIYgmLCGcJmghxCbMIcQnHCHEJ0QhxCeoIZwn+CGIJDQlOCRwJPwkrCSYJ
OgkNCUQJ9AhOCfQIXQn0CGwJ9Ah2CeoIhQngCJQJzAiZCb0IngmpCKMJkAij
CXwIowloCJ4JTwiZCTsIlAksCIUJGAh2CQ4IbAkECF0JBAhOCQQIRAkECDoJ
6wcrCdIHHAm5Bw0Jqgf+CJYH6giRB9EIhwfHCIcHswiHB5oIhweLCJEHfAiW
B2gIqgdZCLkHRQiqBzYIlgciCJEHEwiHB/8HhwfrB4cH1weHB8MHkQe0B5YH
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
DAAAAAUAAIAUAAAADAAAAA0AAABXAAAAMAAAABQDAACBAQAAIQMAAIsBAAAF
AAAAUxhQBykVUAcpFagJUxioCVMYUAcUAAAADAAAAA0AAAAbAAAAEAAAAHwX
AACYCgAANgAAABAAAABEGAAAmAoAABQAAAAMAAAADQAAACYAAAAcAAAAAwAA
AAYAAABBAAAAAAAAAAAAAAAlAAAADAAAAAMAAAAoAAAADAAAAAYAAAAlAAAA
DAAAAAUAAIAlAAAADAAAAAIAAAATAAAADAAAAAEAAABWAAAAoAEAABUDAACC
AQAAIAMAAIsBAABhAAAAzhX0CNMVDQnnFSYJ9hU/CQAWTgkUFmIJIxZnCTcW
cQlLFnEJXxZxCXMWcQmCFmcJlhZiCaUWTgm5Fj8JyBZOCdwWYgnrFmcJ+hZx
CRMXcQknF3EJMRdxCUoXZwleF2IJbRdOCXwXPwmLFyYJmhcNCaQX9AiuF/QI
vRf0CMwX9AjWF+oI5RfgCPQXzAj5F70I/hepCAMYkAgDGHwIAxhoCP4XTwj5
FzsI9BcsCOUXGAjWFw4IzBcECL0XBAiuFwQIpBcECJoX6weLF9IHfBe5B20X
qgdeF5YHSheRBzEXhwcnF4cHExeHB/oWhwfrFpEH3BaWB8gWqge5FrkHpRaq
B5YWlgeCFpEHcxaHB18WhwdLFocHNxaHByMWkQcUFpYHABaqB/YVuQfnFdIH
0xXrB84VBAi/FQQItRUECKYVBAicFQ4IjRUYCH4VLAh5FTsIbxVPCG8VaAhv
FXwIbxWQCG8VqQh5Fb0IfhXMCI0V4AicFeoIphX0CLUV9Ai/FfQIzhX0CCUA
AAAMAAAABQAAgBQAAAAMAAAADQAAAFcAAACgAQAAFQMAAIIBAAAgAwAAiwEA
AGEAAADOFfQI0xUNCecVJgn2FT8JABZOCRQWYgkjFmcJNxZxCUsWcQlfFnEJ
cxZxCYIWZwmWFmIJpRZOCbkWPwnIFk4J3BZiCesWZwn6FnEJExdxCScXcQkx
F3EJShdnCV4XYgltF04JfBc/CYsXJgmaFw0JpBf0CK4X9Ai9F/QIzBf0CNYX
6gjlF+AI9BfMCPkXvQj+F6kIAxiQCAMYfAgDGGgI/hdPCPkXOwj0FywI5RcY
CNYXDgjMFwQIvRcECK4XBAikFwQImhfrB4sX0gd8F7kHbReqB14XlgdKF5EH
MReHBycXhwcTF4cH+haHB+sWkQfcFpYHyBaqB7kWuQelFqoHlhaWB4IWkQdz
FocHXxaHB0sWhwc3FocHIxaRBxQWlgcAFqoH9hW5B+cV0gfTFesHzhUECL8V
BAi1FQQIphUECJwVDgiNFRgIfhUsCHkVOwhvFU8IbxVoCG8VfAhvFZAIbxWp
CHkVvQh+FcwIjRXgCJwV6gimFfQItRX0CL8V9AjOFfQIFAAAAAwAAAANAAAA
JgAAABwAAAAGAAAABgAAAB4AAAAAAAAAAAAAACUAAAAMAAAABgAAACgAAAAM
AAAAAwAAACUAAAAMAAAABQAAgCcAAAAYAAAAAwAAAAAAAAB/f38AAAAAACUA
AAAMAAAAAwAAABMAAAAMAAAAAQAAAFYAAAAwAAAA9gIAAKcBAAAIAwAAqgEA
AAUAAABKDbQR0Q0yEbQRMhEtEbQRSg20ESUAAAAMAAAABQAAgCgAAAAMAAAA
AwAAABQAAAAMAAAADQAAAFcAAAAwAAAA9gIAAKcBAAAIAwAAqgEAAAUAAABK
DbQR0Q0yEbQRMhEtEbQRSg20ERQAAAAMAAAADQAAACUAAAAMAAAABQAAgCcA
AAAYAAAAAwAAAAAAAAC/v78AAAAAACUAAAAMAAAAAwAAABMAAAAMAAAAAQAA
AFYAAAAwAAAA9gIAAKkBAAAGAwAArQEAAAUAAABKDa8RMhGvETIRbRJKDW0S
Sg2vESUAAAAMAAAABQAAgCgAAAAMAAAAAwAAABQAAAAMAAAADQAAAFcAAAAw
AAAA9gIAAKkBAAAGAwAArQEAAAUAAABKDa8RMhGvETIRbRJKDW0SSg2vERQA
AAAMAAAADQAAACUAAAAMAAAABQAAgCcAAAAYAAAAAwAAAAAAAAClpaUAAAAA
ACUAAAAMAAAAAwAAABMAAAAMAAAAAQAAAFYAAAAwAAAABQMAAKcBAAAIAwAA
rQEAAAUAAAAyEXIStBHmEbQRMhEyEbQRMhFyEiUAAAAMAAAABQAAgCgAAAAM
AAAAAwAAABQAAAAMAAAADQAAAFcAAAAwAAAABQMAAKcBAAAIAwAArQEAAAUA
AAAyEXIStBHmEbQRMhEyEbQRMhFyEhQAAAAMAAAADQAAACUAAAAMAAAABQAA
gCcAAAAYAAAAAwAAAAAAAADY2NgAAAAAACUAAAAMAAAAAwAAABMAAAAMAAAA
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
BAAAABMAAAAMAAAAAQAAAFYAAAAwAAAA+AIAAJ4BAAAFAwAAqAEAAAUAAADT
ENAOqQ3QDqkNKBHTECgR0xDQDiUAAAAMAAAABQAAgBQAAAAMAAAADQAAAFcA
AAAwAAAA+AIAAJ4BAAAFAwAAqAEAAAUAAADTENAOqQ3QDqkNKBHTECgR0xDQ
DhQAAAAMAAAADQAAABsAAAAQAAAA/A8AABgSAAA2AAAAEAAAAMQQAAAYEgAA
FAAAAAwAAAANAAAAJgAAABwAAAADAAAABgAAAEEAAAAAAAAAAAAAACUAAAAM
AAAAAwAAACgAAAAMAAAABgAAACUAAAAMAAAABQAAgCUAAAAMAAAAAgAAABMA
AAAMAAAAAQAAAFYAAACgAQAA+QIAAJ8BAAAEAwAApwEAAGEAAABODnQQUw6N
EGcOphB2Dr8QgA7OEJQO4hCjDucQtw7xEMsO8RDfDvEQ8w7xEAIP5xAWD+IQ
JQ/OEDkPvxBID84QXA/iEGsP5xB6D/EQkw/xEKcP8RCxD/EQyg/nEN4P4hDt
D84Q/A+/EAsQphAaEI0QJBB0EC4QdBA9EHQQTBB0EFYQahBlEGAQdBBMEHkQ
PRB+ECkQgxAQEIMQ/A+DEOgPfhDPD3kQuw90EKwPZRCYD1YQjg9MEIQPPRCE
Dy4QhA8kEIQPGhBrDwsQUg/8DzkP7Q8qD94PFg/KDxEPsQ8HD6cPBw+TDwcP
eg8HD2sPEQ9cDxYPSA8qDzkPOQ8lDyoPFg8WDwIPEQ/zDgcP3w4HD8sOBw+3
DgcPow4RD5QOFg+ADioPdg45D2cOUg9TDmsPTg6EDz8OhA81DoQPJg6EDxwO
jg8NDpgP/g2sD/kNuw/vDc8P7w3oD+8N/A/vDRAQ7w0pEPkNPRD+DUwQDQ5g
EBwOahAmDnQQNQ50ED8OdBBODnQQJQAAAAwAAAAFAACAFAAAAAwAAAANAAAA
VwAAAKABAAD5AgAAnwEAAAQDAACnAQAAYQAAAE4OdBBTDo0QZw6mEHYOvxCA
Ds4QlA7iEKMO5xC3DvEQyw7xEN8O8RDzDvEQAg/nEBYP4hAlD84QOQ+/EEgP
zhBcD+IQaw/nEHoP8RCTD/EQpw/xELEP8RDKD+cQ3g/iEO0PzhD8D78QCxCm
EBoQjRAkEHQQLhB0ED0QdBBMEHQQVhBqEGUQYBB0EEwQeRA9EH4QKRCDEBAQ
gxD8D4MQ6A9+EM8PeRC7D3QQrA9lEJgPVhCOD0wQhA89EIQPLhCEDyQQhA8a
EGsPCxBSD/wPOQ/tDyoP3g8WD8oPEQ+xDwcPpw8HD5MPBw96DwcPaw8RD1wP
Fg9IDyoPOQ85DyUPKg8WDxYPAg8RD/MOBw/fDgcPyw4HD7cOBw+jDhEPlA4W
D4AOKg92DjkPZw5SD1MOaw9ODoQPPw6EDzUOhA8mDoQPHA6ODw0OmA/+DawP
+Q27D+8Nzw/vDegP7w38D+8NEBDvDSkQ+Q09EP4NTBANDmAQHA5qECYOdBA1
DnQQPw50EE4OdBAUAAAADAAAAA0AAAAiAAAADAAAAP////8oAAAADAAAAAcA
AAAlAAAADAAAAAcAAIAlAAAADAAAAAAAAIBLAAAAEAAAAAAAAAAFAAAAKAAA
AAwAAAACAAAAKAAAAAwAAAAEAAAAKAAAAAwAAAADAAAARgAAABQAAAAIAAAA
R0RJQwMAAAAiAAAADAAAAP////8iAAAADAAAAP////8lAAAADAAAAA0AAIAo
AAAADAAAAAUAAAAiAAAADAAAAP////9GAAAANAEAACgBAABFTUYrJkAAABAA
AAAEAAAAAAAAACpAAAAkAAAAGAAAAPJgwEIAAAAAAAAAAOipwEIK2wHBAJ6H
QwhABQYwAAAAJAAAAAEQwNurqio+AAAAAAAAAAAAAAAABQAAAEEAUgBJAEEA
TAAAADZABYDAAAAAtAAAAAAAAP8BAAAAAQAAAA4AAABTAHQAYQB0AGkAYwAg
AE4AZQB0AHcAbwByAGsAd7cmPjMzMz5mRow+MzMzPrz7oz4zMzM+EXHTPjMz
Mz5mJus+MzMzPrwb/j4zMzM+M2MUPzMzMz7ePSA/MzMzPt4NPz8zMzM+ichW
PzMzMz4zo2I/MzMzPpq5gD8zMzM+75aMPzMzMz6asZM/MzMzPgAAgD8AAAAA
AAAAAAAAgD8AAAAAAAAAABIAAAAMAAAAAQAAABgAAAAMAAAAAAAAABYAAAAM
AAAAGAAAACUAAAAMAAAAAQAAAFQAAACgAAAACAAAABEBAABuAAAAIgEAAAEA
AAAAQNNBAPDSQQgAAAAgAQAADgAAAEwAAAAAAAAAAAAAAAAAAAD/////////
/2gAAABTAHQAYQB0AGkAYwAgAE4AZQB0AHcAbwByAGsACwAAAAQAAAAJAAAA
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
CAAAAAQAAAAJAAAABAAAAAQAAAAIAAAABAAAAAQAAAAJAAAABAAAAAkAAAAE
AAAACQAAAAgAAAAJAAAAAAAAACUAAAAMAAAADQAAgEYAAACoAAAAnAAAAEVN
RisrQAAADAAAAAAAAAAqQAAAJAAAABgAAADyYMBCAAAAAAAAAADoqcBCCtsB
wdqiG0M2QAWAaAAAAFwAAAAAAAD/AQAAAAEAAAAFAAAAaQBuACAAUgAyACIy
6T4zM/M+dyf8PjMz8z5mzhU/MzPzPhGpIT8zM/M+EXlAPzMz8z4AAIA/AAAA
AAAAAAAAAIA/AAAAAAAAAAAAABIAAAAMAAAAAQAAABgAAAAMAAAAAAAAABYA
AAAMAAAAGAAAACUAAAAMAAAAAQAAAFQAAABsAAAAJAAAALoAAABIAAAAywAA
AAEAAAAAQNNBAPDSQSQAAADJAAAABQAAAEwAAAAAAAAAAAAAAAAAAAD/////
/////1gAAABpAG4AIABSADIAAAAEAAAACQAAAAQAAAAMAAAAAAAAACUAAAAM
AAAADQAAgEYAAACUAAAAiAAAAEVNRisrQAAADAAAAAAAAAAIQAMCPAAAADAA
AAABEMDbAAAAAE4AAAAAAAAApz52PwIAAAACAAAAAgAAAAIAAAABEMDbAAAA
AAAAAP8IQAQDLAAAACAAAAABEMDbAgAAAAAAAACRJbBCYZ5QQwoGHkOqeJhD
AAEAABVABAAQAAAABAAAAAMAAAAkAAAAJAAAAAAAgD0AAAAAAAAAAAAAgD0A
AAAAAAAAAAIAAABfAAAAOAAAAAUAAAA4AAAAAAAAADgAAAAAAAAAAAABAA8A
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAMAAAABQAAACUAAAAMAAAABQAA
gFcAAAAkAAAAVgAAAM8AAACgAAAAMwEAAAIAAACCBQoN4QkQEyUAAAAMAAAA
BwAAgCUAAAAMAAAAAAAAgCQAAAAkAAAAAACAQQAAAAAAAAAAAACAQQAAAAAA
AAAAAgAAACgAAAAMAAAABQAAAEYAAABcAAAAUAAAAEVNRisIQAQDPAAAADAA
AAABEMDbBAAAAAAAAABD4yBDH8KWQ10GJUO3Sp1D8OIZQ9dOmUND4yBDH8KW
QwABAYEUQASAEAAAAAQAAAAAAAD/JAAAACQAAAAAAIA9AAAAAAAAAAAAAIA9
AAAAAAAAAAACAAAAJwAAABgAAAAFAAAAAAAAAAAAAAAAAAAAJQAAAAwAAAAF
AAAAEwAAAAwAAAABAAAAJQAAAAwAAAAIAACAVgAAACwAAACZAAAALQEAAKYA
AAA7AQAABAAAAA8K2RJRCqoTnwkqEw8K2RIlAAAADAAAAAcAAIATAAAADAAA
AAEAAAAlAAAADAAAAAAAAIAkAAAAJAAAAAAAgEEAAAAAAAAAAAAAgEEAAAAA
AAAAAAIAAABGAAAAiAAAAHwAAABFTUYrCEADAjwAAAAwAAAAARDA2wAAAABO
AAAAAAAAAKc+dj8CAAAAAgAAAAIAAAACAAAAARDA2wAAAAAAAAD/CEAEAywA
AAAgAAAAARDA2wIAAAAAAAAAd1MyRF4deENfkR5EO22sQwABAAAVQAQAEAAA
AAQAAAADAAAAJAAAACQAAAAAAIA9AAAAAAAAAAAAAIA9AAAAAAAAAAACAAAA
XwAAADgAAAADAAAAOAAAAAAAAAA4AAAAAAAAAAAAAQAPAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAlAAAADAAAAAMAAAAlAAAADAAAAAUAAIBXAAAAJAAAAHgC
AAD2AAAAywIAAFsBAAACAAAAlSyCD6UnjhUlAAAADAAAAAcAAIAlAAAADAAA
AAAAAIAkAAAAJAAAAAAAgEEAAAAAAAAAAAAAgEEAAAAAAAAAAAIAAAAoAAAA
DAAAAAMAAABGAAAAXAAAAFAAAABFTUYrCEAEAzwAAAAwAAAAARDA2wQAAAAA
AAAAopMfRDxhrUP1rhxENQqxQ9LmHUSBoqpDopMfRDxhrUMAAQGBFEAEgBAA
AAAEAAAAAAAA/yQAAAAkAAAAAACAPQAAAAAAAAAAAACAPQAAAAAAAAAAAgAA
ACUAAAAMAAAABQAAABMAAAAMAAAAAQAAACUAAAAMAAAACAAAgFYAAAAsAAAA
cgIAAFUBAAB/AgAAYwEAAAQAAADlJ60VLCciFnonVRXlJ60VJQAAAAwAAAAH
AACAEwAAAAwAAAABAAAAJQAAAAwAAAAAAACAJAAAACQAAAAAAIBBAAAAAAAA
AAAAAIBBAAAAAAAAAAACAAAARgAAAIgAAAB8AAAARU1GKwhAAwI8AAAAMAAA
AAEQwNsAAAAATgAAAAAAAACnPnY/AgAAAAIAAAACAAAAAgAAAAEQwNsAAAAA
AAAA/whABAMsAAAAIAAAAAEQwNsCAAAAAAAAAE2KOUQ5/KZDTYo5RIgBrUMA
AQAAFUAEABAAAAAEAAAAAwAAACQAAAAkAAAAAACAPQAAAAAAAAAAAACAPQAA
AAAAAAAAAgAAAF8AAAA4AAAAAwAAADgAAAAAAAAAOAAAAAAAAAAAAAEADwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAwAAAADAAAAJQAAAAwAAAAFAACA
VwAAACQAAADkAgAATAEAAOgCAABcAQAAAgAAAGMu4BRjLqEVJQAAAAwAAAAH
AACAJQAAAAwAAAAAAACAJAAAACQAAAAAAIBBAAAAAAAAAAAAAIBBAAAAAAAA
AAACAAAAKAAAAAwAAAADAAAARgAAAFwAAABQAAAARU1GKwhABAM8AAAAMAAA
AAEQwNsEAAAAAAAAAFOfOkTQdqxDTYo5RG73skNGdThE0HasQ1OfOkTQdqxD
AAEBgRRABIAQAAAABAAAAAAAAP8kAAAAJAAAAAAAgD0AAAAAAAAAAAAAgD0A
AAAAAAAAAAIAAAAlAAAADAAAAAUAAAATAAAADAAAAAEAAAAlAAAADAAAAAgA
AIBWAAAALAAAAOECAABYAQAA6wIAAGYBAAAEAAAAqC6PFWMuXxYeLo8VqC6P
FSUAAAAMAAAABwAAgBMAAAAMAAAAAQAAACUAAAAMAAAAAAAAgCQAAAAkAAAA
AACAQQAAAAAAAAAAAACAQQAAAAAAAAAAAgAAAEYAAACIAAAAfAAAAEVNRisI
QAMCPAAAADAAAAABEMDbAAAAAE4AAAAAAAAApz52PwIAAAACAAAAAgAAAAIA
AAABEMDbAAAAAAAAAP8IQAQDLAAAACAAAAABEMDbAgAAAAAAAADHq4lCGECR
Q4NyVULKfqhDAAEAABVABAAQAAAABAAAAAMAAAAkAAAAJAAAAAAAgD0AAAAA
AAAAAAAAgD0AAAAAAAAAAAIAAABfAAAAOAAAAAMAAAA4AAAAAAAAADgAAAAA
AAAAAAABAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAAAAMAAAAAwAAACUA
AAAMAAAABQAAgFcAAAAkAAAAMwAAACEBAABHAAAAUwEAAAIAAABOBCgSVgMQ
FSUAAAAMAAAABwAAgCUAAAAMAAAAAAAAgCQAAAAkAAAAAACAQQAAAAAAAAAA
AACAQQAAAAAAAAAAAgAAACgAAAAMAAAAAwAAAEYAAABcAAAAUAAAAEVNRisI
QAQDPAAAADAAAAABEMDbBAAAAAAAAADfPWdCp6qoQ/pjRkJhJq5D+mNGQrlL
p0PfPWdCp6qoQwABAYEUQASAEAAAAAQAAAAAAAD/JAAAACQAAAAAAIA9AAAA
AAAAAAAAAIA9AAAAAAAAAAACAAAAJQAAAAwAAAAFAAAAEwAAAAwAAAABAAAA
JQAAAAwAAAAIAACAVgAAACwAAAAxAAAATgEAADoAAABdAQAABAAAAJ0DFhUa
A8UVGgPqFJ0DFhUlAAAADAAAAAcAAIATAAAADAAAAAEAAAAlAAAADAAAAAAA
AIAkAAAAJAAAAAAAgEEAAAAAAAAAAAAAgEEAAAAAAAAAAAIAAABGAAAAWAEA
AEwBAABFTUYrKkAAACQAAAAYAAAA8mDAQgAAAAAAAAAA6KnAQomnmkODaiFD
CEAFBjAAAAAkAAAAARDA26uqKj4AAAAAAAAAAAAAAAAFAAAAQQBSAEkAQQBM
AAAANkAFgPQAAADoAAAAAAAA/wEAAAABAAAAEwAAAE8AbgBsAHkAIABvAG4A
ZQAgAG8AcwBwAGYAIAByAG8AdQB0AGUAmtkwPgrXozzNzJo+CtejPCJCyj4K
16M8dzfdPgrXozwR8QM/CtejPLzLDz8K16M8ZoYnPwrXozwRQT8/CtejPLz7
Vj8K16M8ZtZiPwrXozwRkXo/CtejPDPzhz8K16M8idCTPwrXozzevZk/Ctej
PDOrnz8K16M83sWmPwrXozwzo7I/CtejPImAvj8K16M83m3EPwrXozwAAIA/
AAAAAAAAAAAAAIA/AAAAAAAAAAAAABIAAAAMAAAAAQAAABgAAAAMAAAAAAAA
ABYAAAAMAAAAGAAAACUAAAAMAAAAAQAAAFQAAADAAAAARgEAAJQAAADOAQAA
pQAAAAEAAAAAQNNBAPDSQUYBAACjAAAAEwAAAEwAAAAAAAAAAAAAAAAAAAD/
/////////3QAAABPAG4AbAB5ACAAbwBuAGUAIABvAHMAcABmACAAcgBvAHUA
dABlAE0GDAAAAAkAAAAEAAAACAAAAAQAAAAJAAAACQAAAAkAAAAEAAAACQAA
AAgAAAAJAAAABAAAAAQAAAAFAAAACQAAAAkAAAAEAAAAAAAAACUAAAAMAAAA
DQAAgEYAAAAMAQAAAAEAAEVNRisrQAAADAAAAAAAAAAqQAAAJAAAABgAAADy
YMBCAAAAAAAAAADoqcBCiaeaQ4NqIUM2QAWAzAAAAMAAAAAAAAD/AQAAAAEA
AAAPAAAAZgBvAHIAIAAxADAALgAxAC4AMQAuADAALwAyADQAIqK5Pq5HYT53
V9E+rkdhPmZmAD+uR2E+vJsOP65HYT5mdho/rkdhPhExMj+uR2E+vOtJP65H
YT5mxlU/rkdhPhGBbT+uR2E+vFt5P65HYT4zi4g/rkdhPol4jj+uR2E+3lWa
P65HYT4zQ6A/rkdhPokgrD+uR2E+AACAPwAAAAAAAAAAAACAPwAAAAAAAAAA
AAASAAAADAAAAAEAAAAYAAAADAAAAAAAAAAWAAAADAAAABgAAAAlAAAADAAA
AAEAAABUAAAAqAAAAFgBAACoAAAAuwEAALkAAAABAAAAAEDTQQDw0kFYAQAA
twAAAA8AAABMAAAAAAAAAAAAAAAAAAAA//////////9sAAAAZgBvAHIAIAAx
ADAALgAxAC4AMQAuADAALwAyADQATAYEAAAACQAAAAUAAAAEAAAACQAAAAkA
AAAEAAAACQAAAAQAAAAJAAAABAAAAAkAAAAEAAAACQAAAAAAAAAlAAAADAAA
AA0AAIBGAAAAIAEAABQBAABFTUYrK0AAAAwAAAAAAAAAKkAAACQAAAAYAAAA
8mDAQgAAAAAAAAAA6KnAQomnmkODaiFDNkAFgOAAAADUAAAAAAAA/wEAAAAB
AAAAEQAAAHMAaABvAHcAaQBuAGcAIABpAG4AIABSADEAIAAoAG4AbwDvjm4+
PQrXPiLyoT49Ctc+d2fRPj0K1z5mbgA/PQrXPmY+Hz89Ctc+EbkoPz0K1z68
c0A/PQrXPmYuWD89Ctc+EQlkPz0K1z68g20/PQrXPjOfgj89Ctc+iYyIPz0K
1z6J9Jc/PQrXPt7Roz89Ctc+M7+pPz0K1z7e2bA/PQrXPjO3vD89Ctc+AACA
PwAAAAAAAAAAAACAPwAAAAAAAAAAAAASAAAADAAAAAEAAAAYAAAADAAAAAAA
AAAWAAAADAAAABgAAAAlAAAADAAAAAEAAABUAAAAtAAAAEwBAAC7AAAAywEA
AMwAAAABAAAAAEDTQQDw0kFMAQAAygAAABEAAABMAAAAAAAAAAAAAAAAAAAA
//////////9wAAAAcwBoAG8AdwBpAG4AZwAgAGkAbgAgAFIAMQAgACgAbgBv
AHYFCAAAAAkAAAAJAAAADAAAAAQAAAAJAAAACQAAAAQAAAAEAAAACQAAAAQA
AAAMAAAACQAAAAQAAAAFAAAACQAAAAAAAAAlAAAADAAAAA0AAIBGAAAAqAAA
AJwAAABFTUYrK0AAAAwAAAAAAAAAKkAAACQAAAAYAAAA8mDAQgAAAAAAAAAA
6KnAQomnmkODaiFDNkAFgGgAAABcAAAAAAAA/wEAAAABAAAABQAAAEUAQwBN
AFAAKQARqSE/UrgeP2YePj9SuB4/Zu5cP1K4Hj+JPIA/UrgePzN3jj9SuB4/
AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAASAAAADAAAAAEAAAAYAAAADAAA
AAAAAAAWAAAADAAAABgAAAAlAAAADAAAAAEAAABUAAAAbAAAAHIBAADOAAAA
pAEAAN8AAAABAAAAAEDTQQDw0kFyAQAA3QAAAAUAAABMAAAAAAAAAAAAAAAA
AAAA//////////9YAAAARQBDAE0AUAApADMECwAAAAwAAAANAAAACwAAAAAA
AAAlAAAADAAAAA0AAIBGAAAAlAAAAIgAAABFTUYrK0AAAAwAAAAAAAAACEAD
AjwAAAAwAAAAARDA2wAAAABOAAAAAAAAAKc+dj8CAAAAAgAAAAIAAAACAAAA
ARDA2wAAAAAAAAD/CEAEAywAAAAgAAAAARDA2wIAAAAAAAAAGlK8Q56zaEMa
UrxD9selQwABAAAVQAQAEAAAAAQAAAADAAAAJAAAACQAAAAAAIA9AAAAAAAA
AAAAAIA9AAAAAAAAAAACAAAAXwAAADgAAAADAAAAOAAAAAAAAAA4AAAAAAAA
AAAAAQAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAADAAAAAMAAAAlAAAA
DAAAAAUAAIBXAAAAJAAAAHcBAADnAAAAewEAAE0BAAACAAAAixeMDosXuRQl
AAAADAAAAAcAAIAlAAAADAAAAAAAAIAkAAAAJAAAAAAAgEEAAAAAAAAAAAAA
gEEAAAAAAAAAAAIAAAAoAAAADAAAAAMAAABGAAAAXAAAAFAAAABFTUYrCEAE
AzwAAAAwAAAAARDA2wQAAAAAAAAAJ3y+Qz49pUMaUrxD272rQw0oukM+PaVD
J3y+Qz49pUMAAQGBFEAEgBAAAAAEAAAAAAAA/yQAAAAkAAAAAACAPQAAAAAA
AAAAAACAPQAAAAAAAAAAAgAAACUAAAAMAAAABQAAABMAAAAMAAAAAQAAACUA
AAAMAAAACAAAgFYAAAAsAAAAdAEAAEoBAAB9AQAAWAEAAAQAAADQF6gUixd4
FUUXqBTQF6gUJQAAAAwAAAAHAACAEwAAAAwAAAABAAAAJQAAAAwAAAAAAACA
JAAAACQAAAAAAIBBAAAAAAAAAAAAAIBBAAAAAAAAAAACAAAARgAAAFgBAABM
AQAARU1GKypAAAAkAAAAGAAAAPJgwEIAAAAAAAAAAOipwEJrwX9D1dQXRAhA
BQYwAAAAJAAAAAEQwNurqio+AAAAAAAAAAAAAAAABQAAAEEAUgBJAEEATAAA
ADZABYD0AAAA6AAAAAAAAP8BAAAAAQAAABMAAABDAG8AbgBmAGkAZwB1AHIA
YQB0AGkAbwBuACAAYQB0ACAAUgAxAI5zTz+2YEu/jkNuP7ZgS78c/4I/tmBL
v3Lcjj+2YEu/x8mUP7ZgS78ch5k/tmBLv3JkpT+2YEu/x0GxP7ZgS79yXLg/
tmBLv8c5xD+2YEu/HCfKP7ZgS79y5M4/tmBLv8fB2j+2YEu/HJ/mP7ZgS79y
jOw/tmBLv8dp+D+2YEu/HFf+P7ZgS785IgJAtmBLvznWCUC2YEu/AACAPwAA
AAAAAAAAAACAPwAAAAAAAAAAAAASAAAADAAAAAEAAAAYAAAADAAAAAAAAAAW
AAAADAAAABgAAAAlAAAADAAAAAEAAABUAAAAwAAAAE4BAAAEAgAA1AEAABUC
AAABAAAAAEDTQQDw0kFOAQAAEwIAABMAAABMAAAAAAAAAAAAAAAAAAAA////
//////90AAAAQwBvAG4AZgBpAGcAdQByAGEAdABpAG8AbgAgAGEAdAAgAFIA
MQAAAAwAAAAJAAAACQAAAAQAAAAEAAAACQAAAAkAAAAFAAAACQAAAAQAAAAE
AAAACQAAAAkAAAAEAAAACQAAAAQAAAAEAAAADAAAAAAAAAAlAAAADAAAAA0A
AIBGAAAADAEAAAABAABFTUYrK0AAAAwAAAAAAAAAKkAAACQAAAAYAAAA8mDA
QgAAAAAAAAAA6KnAQmvBf0PV1BdENkAFgMwAAADAAAAAAAAA/wEAAAABAAAA
DwAAAHIAbwB1AHQAZQByACAAbwBzAHAAZgAgADEAMAAwAI7Ddz+DLRi/cvyC
P4MtGL/H2Y4/gy0Yvxy3mj+DLRi/cqSgP4MtGL/Hgaw/gy0Yv3Kcsz+DLRi/
x4m5P4MtGL8cZ8U/gy0Yv8cR0D+DLRi/HO/bP4MtGL9y3OE/gy0Yv8fJ5z+D
LRi/HKfzP4MtGL9yhP8/gy0YvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAA
EgAAAAwAAAABAAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAYAAAAJQAAAAwAAAAB
AAAAVAAAAKgAAABdAQAAFwIAAMUBAAAoAgAAAQAAAABA00EA8NJBXQEAACYC
AAAPAAAATAAAAAAAAAAAAAAAAAAAAP//////////bAAAAHIAbwB1AHQAZQBy
ACAAbwBzAHAAZgAgADEAMAAwAIMEBQAAAAkAAAAJAAAABAAAAAkAAAAFAAAA
BAAAAAkAAAAIAAAACQAAAAQAAAAEAAAACQAAAAkAAAAAAAAAJQAAAAwAAAAN
AACARgAAAHgBAABsAQAARU1GKytAAAAMAAAAAAAAACpAAAAkAAAAGAAAAPJg
wEIAAAAAAAAAAOipwEJrwX9D1dQXRDZABYA4AQAALAEAAAAAAP8BAAAAAQAA
ABoAAAAgAHIAbwB1AHQAZQByAC0AaQBkACAAMgAwADAALgAyADAAMAAuADIA
MAAwAC4AMgAwADAA5NALP5/0yb6Oqxc/n/TJvuTgJT+f9Mm+jps9P5/0yb45
VlU/n/TJvuQwYT+f9Mm+jut4P5/0yb5ykIM/n/TJvhyrij+f9Mm+cmiPP5/0
yb7HRZs/n/TJvhwzoT+f9Mm+chCtP5/0yb7H7bg/n/TJvhzLxD+f9Mm+crjK
P5/0yb7HldY/n/TJvhxz4j+f9Mm+clDuP5/0yb7HPfQ/n/TJvo4NAECf9Mm+
OfwFQJ/0yb7k6gtAn/TJvo7hDkCf9Mm+OdAUQJ/0yb7kvhpAn/TJvgAAgD8A
AAAAAAAAAAAAgD8AAAAAAAAAABIAAAAMAAAAAQAAABgAAAAMAAAAAAAAABYA
AAAMAAAAGAAAACUAAAAMAAAAAQAAAFQAAADoAAAANAEAACoCAADtAQAAOwIA
AAEAAAAAQNNBAPDSQTQBAAA5AgAAGgAAAEwAAAAAAAAAAAAAAAAAAAD/////
/////4AAAAAgAHIAbwB1AHQAZQByAC0AaQBkACAAMgAwADAALgAyADAAMAAu
ADIAMAAwAC4AMgAwADAABAAAAAUAAAAJAAAACQAAAAQAAAAJAAAABQAAAAUA
AAAEAAAACQAAAAQAAAAJAAAACQAAAAkAAAAEAAAACQAAAAkAAAAJAAAABAAA
AAkAAAAJAAAACQAAAAQAAAAJAAAACQAAAAAAAAAlAAAADAAAAA0AAIBGAAAA
UAEAAEQBAABFTUYrK0AAAAwAAAAAAAAAKkAAACQAAAAYAAAA8mDAQgAAAAAA
AAAA6KnAQmvBf0PV1BdENkAFgBABAAAEAQAAAAAA/wEAAAABAAAAFgAAACAA
bABvAGcALQBhAGQAagBhAGMAZQBuAGMAeQAtAGMAaABhAG4AZwBlAHMA5PAl
P3IcR76OyzE/chxHvjlGOz9yHEe+5ABTP3IcR76Ou2o/chxHvuTweD9yHEe+
x1WIP3IcR74cM5Q/chxHvnLwmD9yHEe+x82kP3IcR75yeK8/chxHvsdVuz9y
HEe+HDPHP3IcR77H3dE/chxHvnKI3D9yHEe+HKPjP3IcR77HTe4/chxHvhwr
+j9yHEe+OQQDQHIcR77k8ghAchxHvo7hDkByHEe+OdAUQHIcR74AAIA/AAAA
AAAAAAAAAIA/AAAAAAAAAAASAAAADAAAAAEAAAAYAAAADAAAAAAAAAAWAAAA
DAAAABgAAAAlAAAADAAAAAEAAABUAAAA0AAAAD4BAAA+AgAA5gEAAE8CAAAB
AAAAAEDTQQDw0kE+AQAATQIAABYAAABMAAAAAAAAAAAAAAAAAAAA////////
//94AAAAIABsAG8AZwAtAGEAZABqAGEAYwBlAG4AYwB5AC0AYwBoAGEAbgBn
AGUAcwAEAAAABAAAAAkAAAAJAAAABQAAAAkAAAAJAAAABAAAAAkAAAAIAAAA
CQAAAAkAAAAIAAAACAAAAAUAAAAIAAAACQAAAAkAAAAJAAAACQAAAAkAAAAA
AAAAJQAAAAwAAAANAACARgAAABgCAAAMAgAARU1GKytAAAAMAAAAAAAAACpA
AAAkAAAAGAAAAPJgwEIAAAAAAAAAAOipwEJrwX9D1dQXRDZABYDYAQAAzAEA
AAAAAP8BAAAAAQAAACoAAAAgAHIAZQBkAGkAcwB0AHIAaQBiAHUAdABlACAA
cwB0AGEAdABpAGMAIABtAGUAdAByAGkAYwAtAHQAeQBwAGUAIAAxACAAcwB1
AGIAbgBlAHQAcwA5jmM9YQu2O3Kc0D1hC7Y7jiMhPmELtjscB4A+YQu2O3J8
rz5hC7Y7x3HCPmELtjtyHO0+YQu2O+RoAj9hC7Y7OZ4QP2ELtjvkGBo/YQu2
O47TMT9hC7Y7OY5JP2ELtjvkaFU/YQu2O44jbT9hC7Y7Of54P2ELtjvHKYc/
YQu2OxwXjT9hC7Y7cvSYP2ELtjvH4Z4/YQu2Oxyfoz9hC7Y7x0muP2ELtjsc
N7Q/YQu2O3L8xT9hC7Y7x9nRP2ELtjscx9c/YQu2O8fh3j9hC7Y7HJ/jP2EL
tjvHSe4/YQu2O3Jk9T9hC7Y7x1H7P2ELtjs5/gJAYQu2O+TsCEBhC7Y7jtsO
QGELtjs50hFAYQu2O+TAF0BhC7Y7jrcaQGELtjvkDCBAYQu2O477JUBhC7Y7
OeorQGELtjvk2DFAYQu2O47HN0BhC7Y7Ob46QGELtjsAAIA/AAAAAAAAAAAA
AIA/AAAAAAAAAAASAAAADAAAAAEAAAAYAAAADAAAAAAAAAAWAAAADAAAABgA
AAAlAAAADAAAAAEAAABUAAAASAEAAAUBAABRAgAAGgIAAGICAAABAAAAAEDT
QQDw0kEFAQAAYAIAACoAAABMAAAAAAAAAAAAAAAAAAAA//////////+gAAAA
IAByAGUAZABpAHMAdAByAGkAYgB1AHQAZQAgAHMAdABhAHQAaQBjACAAbQBl
AHQAcgBpAGMALQB0AHkAcABlACAAMQAgAHMAdQBiAG4AZQB0AHMABAAAAAUA
AAAJAAAACQAAAAQAAAAIAAAABAAAAAUAAAAEAAAACQAAAAkAAAAEAAAACQAA
AAQAAAAIAAAABAAAAAkAAAAEAAAABAAAAAgAAAAEAAAADQAAAAkAAAAEAAAA
BQAAAAQAAAAIAAAABQAAAAQAAAAIAAAACQAAAAkAAAAEAAAACQAAAAQAAAAI
AAAACQAAAAkAAAAJAAAACQAAAAQAAAAAAAAAJQAAAAwAAAANAACARgAAAKAB
AACUAQAARU1GKytAAAAMAAAAAAAAACpAAAAkAAAAGAAAAPJgwEIAAAAAAAAA
AOipwEJrwX9D1dQXRDZABYBgAQAAVAEAAAAAAP8BAAAAAQAAAB4AAAAgAHIA
ZQBkAGkAcwB0AHIAaQBiAHUAdABlACAAbwBzAHAAZgAgADMAMAAwACAAcwB1
AGIAbgBlAHQAcwAcx94+KH1SPnJ89j4ofVI+jnMJPyh9Uj45LiE/KH1SPuTo
OD8ofVI+jmNCPyh9Uj7kuFc/KH1SPo6TYz8ofVI+5MhxPyh9Uj6OQ3s/KH1S
Phx/iT8ofVI+clyVPyh9Uj7HSZs/KH1SPhwnpz8ofVI+chStPyh9Uj7H8bg/
KH1SPnKcwz8ofVI+x3nPPyh9Uj4cZ9U/KH1SPnJU2z8ofVI+xzHnPyh9Uj4c
D/M/KH1SPnLs/j8ofVI+5GwCQCh9Uj45wgdAKH1SPuSwDUAofVI+jp8TQCh9
Uj45jhlAKH1SPuR8H0AofVI+jnMiQCh9Uj4AAIA/AAAAAAAAAAAAAIA/AAAA
AAAAAAASAAAADAAAAAEAAAAYAAAADAAAAAAAAAAWAAAADAAAABgAAAAlAAAA
DAAAAAEAAABUAAAAAAEAACoBAABkAgAA+AEAAHUCAAABAAAAAEDTQQDw0kEq
AQAAcwIAAB4AAABMAAAAAAAAAAAAAAAAAAAA//////////+IAAAAIAByAGUA
ZABpAHMAdAByAGkAYgB1AHQAZQAgAG8AcwBwAGYAIAAzADAAMAAgAHMAdQBi
AG4AZQB0AHMABAAAAAUAAAAJAAAACQAAAAQAAAAIAAAABAAAAAUAAAAEAAAA
CQAAAAkAAAAEAAAACQAAAAQAAAAJAAAACAAAAAkAAAAEAAAABAAAAAkAAAAJ
AAAACQAAAAQAAAAIAAAACQAAAAkAAAAJAAAACQAAAAQAAAAAAAAAJQAAAAwA
AAANAACARgAAAMgBAAC8AQAARU1GKytAAAAMAAAAAAAAACpAAAAkAAAAGAAA
APJgwEIAAAAAAAAAAOipwEJrwX9D1dQXRDZABYCIAQAAfAEAAAAAAP8BAAAA
AQAAACIAAAAgAG4AZQB0AHcAbwByAGsAIAAxADUALgAxAC4AMQAuADAAIAAw
AC4AMAAuADAALgAyADUANQAgAGEAcgBlAGEAIAAwAByXhD76pM8+ckycPvqk
zz7Hwcs++qTPPhw3+z76pM8+OXYJP/qkzz45Rig/+qTPPuQAQD/6pM8+OTZO
P/qkzz6Oi2M/+qTPPjlmbz/6pM8+cpCDP/qkzz7HbY8/+qTPPhxblT/6pM8+
cjihP/qkzz7HJac/+qTPPhwDsz/6pM8+cvC4P/qkzz7HzcQ/+qTPPhy7yj/6
pM8+cpjWP/qkzz7Hhdw/+qTPPhxj6D/6pM8+clDuP/qkzz7HLfo/+qTPPo4N
AED6pM8+OfwFQPqkzz7k6gtA+qTPPo7ZEUD6pM8+OdAUQPqkzz7kvhpA+qTP
PjlMHkD6pM8+5DokQPqkzz6OKSpA+qTPPjkgLUD6pM8+AACAPwAAAAAAAAAA
AACAPwAAAAAAAAAAEgAAAAwAAAABAAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAY
AAAAJQAAAAwAAAABAAAAVAAAABgBAAAZAQAAdwIAAAcCAACIAgAAAQAAAABA
00EA8NJBGQEAAIYCAAAiAAAATAAAAAAAAAAAAAAAAAAAAP//////////kAAA
ACAAbgBlAHQAdwBvAHIAawAgADEANQAuADEALgAxAC4AMAAgADAALgAwAC4A
MAAuADIANQA1ACAAYQByAGUAYQAgADAABAAAAAkAAAAJAAAABAAAAAwAAAAJ
AAAABQAAAAgAAAAEAAAACQAAAAkAAAAEAAAACQAAAAQAAAAJAAAABAAAAAkA
AAAEAAAACQAAAAQAAAAJAAAABAAAAAkAAAAEAAAACQAAAAkAAAAJAAAABAAA
AAkAAAAFAAAACQAAAAkAAAAEAAAAAAAAACUAAAAMAAAADQAAgEYAAAAMAQAA
AAEAAEVNRisrQAAADAAAAAAAAAAqQAAAJAAAABgAAADyYMBCAAAAAAAAAADo
qcBCa8F/Q9XUF0Q2QAWAzAAAAMAAAAAAAAD/AQAAAAEAAAAPAAAAcgBvAHUA
dABlAHIAIABvAHMAcABmACAAMwAwADAAjsN3P+Q4Tj9y/II/5DhOP8fZjj/k
OE4/HLeaP+Q4Tj9ypKA/5DhOP8eBrD/kOE4/cpyzP+Q4Tj/Hibk/5DhOPxxn
xT/kOE4/xxHQP+Q4Tj8c79s/5DhOP3Lc4T/kOE4/x8nnP+Q4Tj8cp/M/5DhO
P3KE/z/kOE4/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAASAAAADAAAAAEA
AAAYAAAADAAAAAAAAAAWAAAADAAAABgAAAAlAAAADAAAAAEAAABUAAAAqAAA
AF0BAACeAgAAxQEAAK8CAAABAAAAAEDTQQDw0kFdAQAArQIAAA8AAABMAAAA
AAAAAAAAAAAAAAAA//////////9sAAAAcgBvAHUAdABlAHIAIABvAHMAcABm
ACAAMwAwADAAmAkFAAAACQAAAAkAAAAEAAAACQAAAAUAAAAEAAAACQAAAAgA
AAAJAAAABAAAAAQAAAAJAAAACQAAAAAAAAAlAAAADAAAAA0AAIBGAAAAeAEA
AGwBAABFTUYrK0AAAAwAAAAAAAAAKkAAACQAAAAYAAAA8mDAQgAAAAAAAAAA
6KnAQmvBf0PV1BdENkAFgDgBAAAsAQAAAAAA/wEAAAABAAAAGgAAACAAcgBv
AHUAdABlAHIALQBpAGQAIAAxADUAMAAuADEANQAwAC4AMQA1ADAALgAxADUA
MADk0As/C7aAP46rFz8LtoA/5OAlPwu2gD+Omz0/C7aAPzlWVT8LtoA/5DBh
Pwu2gD+O63g/C7aAP3KQgz8LtoA/HKuKPwu2gD9yaI8/C7aAP8dFmz8LtoA/
HDOhPwu2gD9yEK0/C7aAP8ftuD8LtoA/HMvEPwu2gD9yuMo/C7aAP8eV1j8L
toA/HHPiPwu2gD9yUO4/C7aAP8c99D8LtoA/jg0AQAu2gD85/AVAC7aAP+Tq
C0ALtoA/juEOQAu2gD850BRAC7aAP+S+GkALtoA/AACAPwAAAAAAAAAAAACA
PwAAAAAAAAAAEgAAAAwAAAABAAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAYAAAA
JQAAAAwAAAABAAAAVAAAAOgAAAA0AQAAsQIAAO0BAADCAgAAAQAAAABA00EA
8NJBNAEAAMACAAAaAAAATAAAAAAAAAAAAAAAAAAAAP//////////gAAAACAA
cgBvAHUAdABlAHIALQBpAGQAIAAxADUAMAAuADEANQAwAC4AMQA1ADAALgAx
ADUAMAAEAAAABQAAAAkAAAAJAAAABAAAAAkAAAAFAAAABQAAAAQAAAAJAAAA
BAAAAAkAAAAJAAAACQAAAAQAAAAJAAAACQAAAAkAAAAEAAAACQAAAAkAAAAJ
AAAABAAAAAkAAAAJAAAAAAAAACUAAAAMAAAADQAAgEYAAABQAQAARAEAAEVN
RisrQAAADAAAAAAAAAAqQAAAJAAAABgAAADyYMBCAAAAAAAAAADoqcBCa8F/
Q9XUF0Q2QAWAEAEAAAQBAAAAAAD/AQAAAAEAAAAWAAAAIABsAG8AZwAtAGEA
ZABqAGEAYwBlAG4AYwB5AC0AYwBoAGEAbgBnAGUAcwDk8CU/pU+aP47LMT+l
T5o/OUY7P6VPmj/kAFM/pU+aP467aj+lT5o/5PB4P6VPmj/HVYg/pU+aPxwz
lD+lT5o/cvCYP6VPmj/HzaQ/pU+aP3J4rz+lT5o/x1W7P6VPmj8cM8c/pU+a
P8fd0T+lT5o/cojcP6VPmj8co+M/pU+aP8dN7j+lT5o/HCv6P6VPmj85BANA
pU+aP+TyCEClT5o/juEOQKVPmj850BRApU+aPwAAgD8AAAAAAAAAAAAAgD8A
AAAAAAAAABIAAAAMAAAAAQAAABgAAAAMAAAAAAAAABYAAAAMAAAAGAAAACUA
AAAMAAAAAQAAAFQAAADQAAAAPgEAAMQCAADmAQAA1QIAAAEAAAAAQNNBAPDS
QT4BAADTAgAAFgAAAEwAAAAAAAAAAAAAAAAAAAD//////////3gAAAAgAGwA
bwBnAC0AYQBkAGoAYQBjAGUAbgBjAHkALQBjAGgAYQBuAGcAZQBzAAQAAAAE
AAAACQAAAAkAAAAFAAAACQAAAAkAAAAEAAAACQAAAAgAAAAJAAAACQAAAAgA
AAAIAAAABQAAAAgAAAAJAAAACQAAAAkAAAAJAAAACQAAAAAAAAAlAAAADAAA
AA0AAIBGAAAA6AEAANwBAABFTUYrK0AAAAwAAAAAAAAAKkAAACQAAAAYAAAA
8mDAQgAAAAAAAAAA6KnAQmvBf0PV1BdENkAFgKgBAACcAQAAAAAA/wEAAAAB
AAAAJQAAACAAcgBlAGQAaQBzAHQAcgBpAGIAdQB0AGUAIABjAG8AbgBuAGUA
YwB0AGUAZAAgAG0AZQB0AHIAaQBjAC0AdAB5AHAAZQAgADEA5Ng4Pj/psz+O
Q2g+P+mzP3KMkD4/6bM/xwHAPj/psz8cd+8+P+mzPzk2AT8/6bM/josWPz/p
sz85ZiI/P+mzP46bMD8/6bM/ORY6Pz/psz/k0FE/P+mzP46LaT8/6bM/OWZ1
Pz/psz9ykIY/P+mzP8d9jD8/6bM/ciiXPz/psz/HBaM/P+mzPxzjrj8/6bM/
csC6Pz/psz/HncY/P+mzP3JI0T8/6bM/xzXXPz/psz8cE+M/P+mzP3Lw7j8/
6bM/x930Pz/psz+OUQNAP+mzPzlACUA/6bM/5DYMQD/psz85xA9AP+mzP+Qi
EkA/6bM/OXgXQD/psz+OBRtAP+mzPzn8HUA/6bM/jlEjQD/psz85QClAP+mz
P+QuL0A/6bM/jiUyQD/psz8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAABIA
AAAMAAAAAQAAABgAAAAMAAAAAAAAABYAAAAMAAAAGAAAACUAAAAMAAAAAQAA
AFQAAAAsAQAAEQEAANgCAAANAgAA6QIAAAEAAAAAQNNBAPDSQREBAADnAgAA
JQAAAEwAAAAAAAAAAAAAAAAAAAD//////////5gAAAAgAHIAZQBkAGkAcwB0
AHIAaQBiAHUAdABlACAAYwBvAG4AbgBlAGMAdABlAGQAIABtAGUAdAByAGkA
YwAtAHQAeQBwAGUAIAAxAAgNBAAAAAUAAAAJAAAACQAAAAQAAAAIAAAABAAA
AAUAAAAEAAAACQAAAAkAAAAEAAAACQAAAAQAAAAIAAAACQAAAAkAAAAJAAAA
CQAAAAgAAAAEAAAACQAAAAkAAAAEAAAADQAAAAkAAAAEAAAABQAAAAQAAAAI
AAAABQAAAAQAAAAIAAAACQAAAAkAAAAEAAAAAAAAACUAAAAMAAAADQAAgEYA
AAC8AAAAsAAAAEVNRisrQAAADAAAAAAAAAAqQAAAJAAAABgAAADyYMBCAAAA
AAAAAADoqcBCa8F/Q9XUF0Q2QAWAfAAAAHAAAAAAAAD/AQAAAAEAAAAHAAAA
cwB1AGIAbgBlAHQAcwDHRZ4/2ILNP3LwqD/Ygs0/x820P9iCzT8cq8A/2ILN
P3KIzD/Ygs0/x2XYP9iCzT8cU94/2ILNPwAAgD8AAAAAAAAAAAAAgD8AAAAA
AAAAAAAAEgAAAAwAAAABAAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAYAAAAJQAA
AAwAAAABAAAAVAAAAHgAAAB3AQAA6wIAAK0BAAD8AgAAAQAAAABA00EA8NJB
dwEAAPoCAAAHAAAATAAAAAAAAAAAAAAAAAAAAP//////////XAAAAHMAdQBi
AG4AZQB0AHMAYQ0IAAAACQAAAAkAAAAJAAAACQAAAAQAAAAAAAAAJQAAAAwA
AAANAACARgAAAKABAACUAQAARU1GKytAAAAMAAAAAAAAACpAAAAkAAAAGAAA
APJgwEIAAAAAAAAAAOipwEJrwX9D1dQXRDZABYBgAQAAVAEAAAAAAP8BAAAA
AQAAAB4AAAAgAHIAZQBkAGkAcwB0AHIAaQBiAHUAdABlACAAbwBzAHAAZgAg
ADEAMAAwACAAcwB1AGIAbgBlAHQAcwAcx94+chznP3J89j5yHOc/jnMJP3Ic
5z85LiE/chznP+ToOD9yHOc/jmNCP3Ic5z/kuFc/chznP46TYz9yHOc/5Mhx
P3Ic5z+OQ3s/chznPxx/iT9yHOc/clyVP3Ic5z/HSZs/chznPxwnpz9yHOc/
chStP3Ic5z/H8bg/chznP3Kcwz9yHOc/x3nPP3Ic5z8cZ9U/chznP3JU2z9y
HOc/xzHnP3Ic5z8cD/M/chznP3Ls/j9yHOc/5GwCQHIc5z85wgdAchznP+Sw
DUByHOc/jp8TQHIc5z85jhlAchznP+R8H0ByHOc/jnMiQHIc5z8AAIA/AAAA
AAAAAAAAAIA/AAAAAAAAAAASAAAADAAAAAEAAAAYAAAADAAAAAAAAAAWAAAA
DAAAABgAAAAlAAAADAAAAAEAAABUAAAAAAEAACoBAAD+AgAA+AEAAA8DAAAB
AAAAAEDTQQDw0kEqAQAADQMAAB4AAABMAAAAAAAAAAAAAAAAAAAA////////
//+IAAAAIAByAGUAZABpAHMAdAByAGkAYgB1AHQAZQAgAG8AcwBwAGYAIAAx
ADAAMAAgAHMAdQBiAG4AZQB0AHMABAAAAAUAAAAJAAAACQAAAAQAAAAIAAAA
BAAAAAUAAAAEAAAACQAAAAkAAAAEAAAACQAAAAQAAAAJAAAACAAAAAkAAAAE
AAAABAAAAAkAAAAJAAAACQAAAAQAAAAIAAAACQAAAAkAAAAJAAAACQAAAAQA
AAAAAAAAJQAAAAwAAAANAACARgAAAMgBAAC8AQAARU1GKytAAAAMAAAAAAAA
ACpAAAAkAAAAGAAAAPJgwEIAAAAAAAAAAOipwEJrwX9D1dQXRDZABYCIAQAA
fAEAAAAAAP8BAAAAAQAAACIAAAAgAG4AZQB0AHcAbwByAGsAIAAzADcALgAx
AC4AMQAuADAAIAAwAC4AMAAuADAALgAyADUANQAgAGEAcgBlAGEAIAAwAByX
hD4GWwBAckycPgZbAEDHwcs+BlsAQBw3+z4GWwBAOXYJPwZbAEA5Rig/BlsA
QOQAQD8GWwBAOTZOPwZbAECOi2M/BlsAQDlmbz8GWwBAcpCDPwZbAEDHbY8/
BlsAQBxblT8GWwBAcjihPwZbAEDHJac/BlsAQBwDsz8GWwBAcvC4PwZbAEDH
zcQ/BlsAQBy7yj8GWwBAcpjWPwZbAEDHhdw/BlsAQBxj6D8GWwBAclDuPwZb
AEDHLfo/BlsAQI4NAEAGWwBAOfwFQAZbAEDk6gtABlsAQI7ZEUAGWwBAOdAU
QAZbAEDkvhpABlsAQDlMHkAGWwBA5DokQAZbAECOKSpABlsAQDkgLUAGWwBA
AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAEgAAAAwAAAABAAAAGAAAAAwAAAAA
AAAAFgAAAAwAAAAYAAAAJQAAAAwAAAABAAAAVAAAABgBAAAZAQAAEgMAAAcC
AAAjAwAAAQAAAABA00EA8NJBGQEAACEDAAAiAAAATAAAAAAAAAAAAAAAAAAA
AP//////////kAAAACAAbgBlAHQAdwBvAHIAawAgADMANwAuADEALgAxAC4A
MAAgADAALgAwAC4AMAAuADIANQA1ACAAYQByAGUAYQAgADAABAAAAAkAAAAJ
AAAABAAAAAwAAAAJAAAABQAAAAgAAAAEAAAACQAAAAkAAAAEAAAACQAAAAQA
AAAJAAAABAAAAAkAAAAEAAAACQAAAAQAAAAJAAAABAAAAAkAAAAEAAAACQAA
AAkAAAAJAAAABAAAAAkAAAAFAAAACQAAAAkAAAAEAAAAAAAAACUAAAAMAAAA
DQAAgEYAAAA8AQAAMAEAAEVNRisrQAAADAAAAAAAAAAqQAAAJAAAABgAAADy
YMBCAAAAAAAAAADoqcBCgxATRKs9B0QIQAUGMAAAACQAAAABEMDbq6oqPgAA
AAAAAAAAAAAAAAUAAABBAFIASQBBAEwAAAA2QAWAzAAAAMAAAAAAAAD/AQAA
AAEAAAAPAAAAcgBvAHUAdABlAHIAIABvAHMAcABmACAAMQAwADAAMzOUPm7b
Nj7enbA+bts2PjMT4D5u2zY+RMQHP27bNj7vnhM/bts2PppZKz9u2zY+7445
P27bNj6aaUU/bts2PkQkXT9u2zY+mnlyP27bNj4iGoU/bts2PncHiz9u2zY+
zfSQP27bNj4i0pw/bts2PnevqD9u2zY+AACAPwAAAAAAAAAAAACAPwAAAAAA
AAAAAAASAAAADAAAAAEAAAAYAAAADAAAAAAAAAAWAAAADAAAABgAAAAlAAAA
DAAAAAEAAABUAAAAqAAAAGgCAAAfAgAA0AIAADACAAABAAAAAEDTQQDw0kFo
AgAALgIAAA8AAABMAAAAAAAAAAAAAAAAAAAA//////////9sAAAAcgBvAHUA
dABlAHIAIABvAHMAcABmACAAMQAwADAAFAAFAAAACQAAAAkAAAAEAAAACQAA
AAUAAAAEAAAACQAAAAgAAAAJAAAABAAAAAQAAAAJAAAACQAAAAAAAAAlAAAA
DAAAAA0AAIBGAAAADAEAAAABAABFTUYrK0AAAAwAAAAAAAAAKkAAACQAAAAY
AAAA8mDAQgAAAAAAAAAA6KnAQoMQE0SrPQdENkAFgMwAAADAAAAAAAAA/wEA
AAABAAAADwAAACAAbwBzAHAAZgAgAHIAbwB1AHQAZQByAC0AaQBkAIn4qz4d
1ME+3q3DPh3UwT4zI/M+HdTBPu/mDj8d1ME+mqEmPx3UwT5EfDI/HdTBPu9W
Pj8d1ME+RIxMPx3UwT7vRmQ/HdTBPpoBfD8d1ME+Iu6DPx3UwT53y48/HdTB
PiLmlj8d1ME+zQCePx3UwT4ivqI/HdTBPgAAgD8AAAAAAAAAAAAAgD8AAAAA
AAAAAAAAEgAAAAwAAAABAAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAYAAAAJQAA
AAwAAAABAAAAVAAAAKgAAABtAgAAMgIAAMwCAABDAgAAAQAAAABA00EA8NJB
bQIAAEECAAAPAAAATAAAAAAAAAAAAAAAAAAAAP//////////bAAAACAAbwBz
AHAAZgAgAHIAbwB1AHQAZQByAC0AaQBkAEUGBAAAAAkAAAAIAAAACQAAAAQA
AAAEAAAABQAAAAkAAAAJAAAABAAAAAkAAAAFAAAABQAAAAQAAAAAAAAAJQAA
AAwAAAANAACARgAAAOQAAADYAAAARU1GKytAAAAMAAAAAAAAACpAAAAkAAAA
GAAAAPJgwEIAAAAAAAAAAOipwEKDEBNEqz0HRDZABYCkAAAAmAAAAAAAAP8B
AAAAAQAAAAsAAAA1ADAALgA1ADAALgA1ADAALgA1ADAA3s3RPkIdFD+aoQA/
Qh0UP0RcGD9CHRQ/7zYkP0IdFD+a8Ts/Qh0UP0SsUz9CHRQ/74ZfP0IdFD+a
QXc/Qh0UPyJ+hz9CHRQ/d2uNP0IdFD/NSJk/Qh0UPwAAgD8AAAAAAAAAAAAA
gD8AAAAAAAAAAAAAEgAAAAwAAAABAAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAY
AAAAJQAAAAwAAAABAAAAVAAAAJAAAAB0AgAARgIAAMYCAABXAgAAAQAAAABA
00EA8NJBdAIAAFUCAAALAAAATAAAAAAAAAAAAAAAAAAAAP//////////ZAAA
ADUAMAAuADUAMAAuADUAMAAuADUAMAAAAAkAAAAJAAAABAAAAAkAAAAJAAAA
BAAAAAkAAAAJAAAABAAAAAkAAAAAAAAAJQAAAAwAAAANAACARgAAADwBAAAw
AQAARU1GKytAAAAMAAAAAAAAACpAAAAkAAAAGAAAAPJgwEIAAAAAAAAAAOip
wEKDEBNEqz0HRDZABYD8AAAA8AAAAAAAAP8BAAAAAQAAABQAAAAgAHIAZQBk
AGkAcwB0AHIAaQBiAHUAdABlACAAcwB0AGEAdABpAGMAEbFJPnVQRz+8G3k+
dVBHP4n4mD51UEc/3m3IPnVQRz8z4/c+dVBHP0RsBT91UEc/msEaP3VQRz9E
nCY/dVBHP5rRND91UEc/REw+P3VQRz/vBlY/dVBHP5rBbT91UEc/RJx5P3VQ
Rz93q4g/dVBHP82Yjj91UEc/d0OZP3VQRz/NMJ8/dVBHPyIOqz91UEc/d/uw
P3VQRz/NuLU/dVBHPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAABIAAAAMAAAA
AQAAABgAAAAMAAAAAAAAABYAAAAMAAAAGAAAACUAAAAMAAAAAQAAAFQAAADE
AAAAXwIAAFkCAADZAgAAagIAAAEAAAAAQNNBAPDSQV8CAABoAgAAFAAAAEwA
AAAAAAAAAAAAAAAAAAD//////////3QAAAAgAHIAZQBkAGkAcwB0AHIAaQBi
AHUAdABlACAAcwB0AGEAdABpAGMABAAAAAUAAAAJAAAACQAAAAQAAAAIAAAA
BAAAAAUAAAAEAAAACQAAAAkAAAAEAAAACQAAAAQAAAAIAAAABAAAAAkAAAAE
AAAABAAAAAAAAAAlAAAADAAAAA0AAIBGAAAA+AAAAOwAAABFTUYrK0AAAAwA
AAAAAAAAKkAAACQAAAAYAAAA8mDAQgAAAAAAAAAA6KnAQoMQE0SrPQdENkAF
gLgAAACsAAAAAAAA/wEAAAABAAAADQAAAG0AZQB0AHIAaQBjAC0AdAB5AHAA
ZQAgADEA3p28PqiDej+a2QE/qIN6P0SUGT+og3o/724lP6iDej9EpDM/qIN6
P+8ePT+og3o/RHRSP6iDej+aqWA/qIN6P0SEbD+og3o/zeyAP6iDej8iyow/
qIN6P3enmD+og3o/zZSeP6iDej8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAA
ABIAAAAMAAAAAQAAABgAAAAMAAAAAAAAABYAAAAMAAAAGAAAACUAAAAMAAAA
AQAAAFQAAACcAAAAcAIAAGwCAADHAgAAfQIAAAEAAAAAQNNBAPDSQXACAAB7
AgAADQAAAEwAAAAAAAAAAAAAAAAAAAD//////////2gAAABtAGUAdAByAGkA
YwAtAHQAeQBwAGUAIAAxACAFDQAAAAkAAAAEAAAABQAAAAQAAAAIAAAABQAA
AAQAAAAIAAAACQAAAAkAAAAEAAAAAAAAACUAAAAMAAAADQAAgEYAAAAgAQAA
FAEAAEVNRisrQAAADAAAAAAAAAAqQAAAJAAAABgAAADyYMBCAAAAAAAAAADo
qcBCgxATRKs9B0Q2QAWA4AAAANQAAAAAAAD/AQAAAAEAAAARAAAAIABuAGUA
dAB3AG8AcgBrACAAMQA1AC4AMQAuADEALgAwAGbGVz5u25Y/iZiDPm7blj/e
DbM+btuWPzOD4j5u25Y/iTj6Pm7blj9E7Bs/btuWP++mMz9u25Y/RNxBP27b
lj+aMVc/btuWP0QMYz9u25Y/78Z6P27blj/NQIk/btuWPyIujz9u25Y/dwub
P27blj/N+KA/btuWPyLWrD9u25Y/d8OyP27blj8AAIA/AAAAAAAAAAAAAIA/
AAAAAAAAAAAAABIAAAAMAAAAAQAAABgAAAAMAAAAAAAAABYAAAAMAAAAGAAA
ACUAAAAMAAAAAQAAAFQAAAC0AAAAYQIAAH8CAADYAgAAkAIAAAEAAAAAQNNB
APDSQWECAACOAgAAEQAAAEwAAAAAAAAAAAAAAAAAAAD//////////3AAAAAg
AG4AZQB0AHcAbwByAGsAIAAxADUALgAxAC4AMQAuADAANAcEAAAACQAAAAkA
AAAEAAAADAAAAAkAAAAFAAAACAAAAAQAAAAJAAAACQAAAAQAAAAJAAAABAAA
AAkAAAAEAAAAAAAAACUAAAAMAAAADQAAgEYAAAAUAQAACAEAAEVNRisrQAAA
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
JQAAAAwAAAABAAAAVAAAALgAAAByAAAAfQIAAOcAAACOAgAAAQAAAABA00EA
8NJBcgAAAIwCAAASAAAATAAAAAAAAAAAAAAAAAAAAP//////////cAAAAHMA
dABhAHQAaQBjACAAbQBlAHQAcgBpAGMALQB0AHkAcABlAAgAAAAEAAAACQAA
AAQAAAAEAAAACAAAAAQAAAANAAAACQAAAAQAAAAFAAAABAAAAAgAAAAFAAAA
BAAAAAgAAAAJAAAAAAAAACUAAAAMAAAADQAAgEYAAADQAAAAxAAAAEVNRisr
QAAADAAAAAAAAAAqQAAAJAAAABgAAADyYMBCAAAAAAAAAADoqcBCW5/WQqzH
DEQ2QAWAkAAAAIQAAAAAAAD/AQAAAAEAAAAJAAAAMQAgAHMAdQBiAG4AZQB0
AHMAEWGtPilcjz9m1tw+KVyPP7yL9D4pXI8/M5sPPylcjz/eVSc/KVyPP4kQ
Pz8pXI8/M8tWPylcjz/ehW4/KVyPP4lgej8pXI8/AACAPwAAAAAAAAAAAACA
PwAAAAAAAAAAAAASAAAADAAAAAEAAAAYAAAADAAAAAAAAAAWAAAADAAAABgA
AAAlAAAADAAAAAEAAABUAAAAhAAAAIwAAACQAgAAzwAAAKECAAABAAAAAEDT
QQDw0kGMAAAAnwIAAAkAAABMAAAAAAAAAAAAAAAAAAAA//////////9gAAAA
MQAgAHMAdQBiAG4AZQB0AHMAAAAJAAAABAAAAAgAAAAJAAAACQAAAAkAAAAJ
AAAABAAAAAAAAAAlAAAADAAAAA0AAIBGAAAAxAAAALgAAABFTUYrK0AAAAwA
AAAAAAAAKkAAACQAAAAYAAAA8mDAQgAAAAAAAAAA6KnAQluf1kKsxwxENkAF
gIQAAAB4AAAAAAAA/wEAAAABAAAACAAAACAAbgBlAHQAdwBvAHIAawBmJsU+
w/WoP7zb3D7D9ag/iSgGP8P1qD8z4x0/w/WoP969KT/D9ag/3o1IP8P1qD+J
SGA/w/WoP959bj/D9ag/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAEgAAAAwA
AAABAAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAYAAAAJQAAAAwAAAABAAAAVAAA
AHwAAACQAAAAowIAAMsAAAC0AgAAAQAAAABA00EA8NJBkAAAALICAAAIAAAA
TAAAAAAAAAAAAAAAAAAAAP//////////XAAAACAAbgBlAHQAdwBvAHIAawAE
AAAACQAAAAkAAAAEAAAADAAAAAkAAAAFAAAAAAAAACUAAAAMAAAADQAAgEYA
AADsAAAA4AAAAEVNRisrQAAADAAAAAAAAAAqQAAAJAAAABgAAADyYMBCAAAA
AAAAAADoqcBCW5/WQqzHDEQ2QAWArAAAAKAAAAAAAAD/AQAAAAEAAAAMAAAA
MQAwAC4AMgAuADEAMgA5AC4AMQAzADIAzYxaPlyPwj+8u5w+XI/CPxExzD5c
j8I/ZubjPlyPwj/erQk/XI/CP4mIFT9cj8I/M0MtP1yPwj/e/UQ/XI/CP4m4
XD9cj8I/M5NoP1yPwj/vJoA/XI/CP0QEjD9cj8I/AACAPwAAAAAAAAAAAACA
PwAAAAAAAAAAEgAAAAwAAAABAAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAYAAAA
JQAAAAwAAAABAAAAVAAAAJQAAACAAAAAtwIAANsAAADIAgAAAQAAAABA00EA
8NJBgAAAAMYCAAAMAAAATAAAAAAAAAAAAAAAAAAAAP//////////ZAAAADEA
MAAuADIALgAxADIAOQAuADEAMwAyAAkAAAAJAAAABAAAAAkAAAAEAAAACQAA
AAkAAAAJAAAABAAAAAkAAAAJAAAAAAAAACUAAAAMAAAADQAAgEYAAAAAAQAA
9AAAAEVNRisrQAAADAAAAAAAAAAqQAAAJAAAABgAAADyYMBCAAAAAAAAAADo
qcBCW5/WQqzHDEQ2QAWAwAAAALQAAAAAAAD/AQAAAAEAAAAOAAAAMAAuADAA
LgAwAC4AMwAgAGEAcgBlAGEAIAAwAM0sPj72KNw/vIuOPvYo3D8RQaY+9ijc
P2a21T72KNw/vGvtPvYo3D+JcA4/9ijcPzNLGj/2KNw/3gUyP/Yo3D+J4D0/
9ijcPzObVT/2KNw/idBjP/Yo3D8zi3s/9ijcP++iiT/2KNw/RJCPP/Yo3D8A
AIA/AAAAAAAAAAAAAIA/AAAAAAAAAAASAAAADAAAAAEAAAAYAAAADAAAAAAA
AAAWAAAADAAAABgAAAAlAAAADAAAAAEAAABUAAAAoAAAAH0AAADKAgAA3AAA
ANsCAAABAAAAAEDTQQDw0kF9AAAA2QIAAA4AAABMAAAAAAAAAAAAAAAAAAAA
//////////9oAAAAMAAuADAALgAwAC4AMwAgAGEAcgBlAGEAIAAwAAkAAAAE
AAAACQAAAAQAAAAJAAAABAAAAAkAAAAEAAAACQAAAAUAAAAJAAAACQAAAAQA
AAAAAAAAJQAAAAwAAAANAACARgAAACABAAAUAQAARU1GKytAAAAMAAAAAAAA
ACpAAAAkAAAAGAAAAPJgwEIAAAAAAAAAAOipwEJbn9ZCrMcMRDZABYDgAAAA
1AAAAAAAAP8BAAAAAQAAABEAAAAgAG4AZQB0AHcAbwByAGsAIAAzADcALgAx
AC4AMQAuADAAM7N4PY/C9T/vLts9j8L1PyKCTD6PwvU/ZraVPo/C9T+8a60+
j8L1P7wL6z6PwvU/iUANP4/C9T/edRs/j8L1PzPLMD+PwvU/3qU8P4/C9T+J
YFQ/j8L1PzMbbD+PwvU/3vV3P4/C9T9E2Ic/j8L1P5rFjT+PwvU/76KZP4/C
9T9EkJ8/j8L1PwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAEgAAAAwAAAAB
AAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAYAAAAJQAAAAwAAAABAAAAVAAAALQA
AABxAAAA3QIAAOgAAADuAgAAAQAAAABA00EA8NJBcQAAAOwCAAARAAAATAAA
AAAAAAAAAAAAAAAAAP//////////cAAAACAAbgBlAHQAdwBvAHIAawAgADMA
NwAuADEALgAxAC4AMAAAAAQAAAAJAAAACQAAAAQAAAAMAAAACQAAAAUAAAAI
AAAABAAAAAkAAAAJAAAABAAAAAkAAAAEAAAACQAAAAQAAAAAAAAAJQAAAAwA
AAANAACARgAAABQBAAAIAQAARU1GKytAAAAMAAAAAAAAACpAAAAkAAAAGAAA
APJgwEIAAAAAAAAAAOipwEJbn9ZCrMcMRDZABYDUAAAAyAAAAAAAAP8BAAAA
AQAAABAAAAAwAC4AMAAuADAALgAyADUANQAgAGEAcgBlAGEAIAAwAESEvj0U
rgdAzSw+PhSuB0B3l20+FK4HQBFBpj4UrgdAZva9PhSuB0C8a+0+FK4HQImQ
Aj8UrgdAM0saPxSuB0DeBTI/FK4HQInAST8UrgdAM5tVPxSuB0DeVW0/FK4H
QDOLez8UrgdA76KJPxSuB0BEgJU/FK4HQJptmz8UrgdAAACAPwAAAAAAAAAA
AACAPwAAAAAAAAAAEgAAAAwAAAABAAAAGAAAAAwAAAAAAAAAFgAAAAwAAAAY
AAAAJQAAAAwAAAABAAAAVAAAAKwAAAB0AAAA8AIAAOUAAAABAwAAAQAAAABA
00EA8NJBdAAAAP8CAAAQAAAATAAAAAAAAAAAAAAAAAAAAP//////////bAAA
ADAALgAwAC4AMAAuADIANQA1ACAAYQByAGUAYQAgADAACQAAAAQAAAAJAAAA
BAAAAAkAAAAEAAAACQAAAAkAAAAJAAAABAAAAAkAAAAFAAAACQAAAAkAAAAE
AAAAAAAAACUAAAAMAAAADQAAgEYAAAAcAAAAEAAAAEVNRisrQAAADAAAAAAA
AABMAAAAZAAAAOX///+VAAAAPAMAACMDAADl////lQAAAFgDAACPAgAAKQCq
AAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAIgAAAAwAAAD/////RgAAABwAAAAQAAAARU1GKwJAAAAM
AAAAAAAAAA4AAAAUAAAAAAAAABAAAAAUAAAA////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////AP//////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////gQEAAIIBAACDAQAAhAEAAIUBAACGAQAA
hwEAAIgBAACJAQAAigEAAIsBAACMAQAAjQEAAI4BAACPAQAAkAEAAJEBAACS
AQAAkwEAAJQBAACVAQAAlgEAAJcBAACYAQAAmQEAAJoBAACbAQAAnAEAAJ0B
AACeAQAAnwEAAKABAAChAQAAogEAAKMBAACkAQAApQEAAKYBAACnAQAAqAEA
AKkBAACqAQAAqwEAAKwBAACtAQAArgEAAK8BAACwAQAAsQEAALIBAACzAQAA
tAEAALUBAAC2AQAAtwEAALgBAAC5AQAAugEAALsBAAC8AQAAvQEAAL4BAAC/
AQAAwAEAAMEBAADCAQAAwwEAAMQBAADFAQAAxgEAAMcBAADIAQAAyQEAAMoB
AADLAQAAzAEAAM0BAADOAQAAzwEAANABAADRAQAA0gEAANMBAADUAQAA/v//
//3////XAQAA2AEAANkBAADaAQAA2wEAANwBAADdAQAA3gEAAN8BAADgAQAA
4QEAAOIBAADjAQAA5AEAAOUBAADmAQAA5wEAAOgBAADpAQAA6gEAAOsBAADs
AQAA7QEAAO4BAADvAQAA8AEAAPEBAADyAQAA8wEAAPQBAAD1AQAA9gEAAPcB
AAD4AQAA+QEAAPoBAAD7AQAA/AEAAP0BAAD+AQAA/wEAAAACAAD+/wAABAAC
AAAAAAAAAAAAAAAAAAAAAAABAAAA4IWf8vlPaBCrkQgAKyez2TAAAABQ8AAA
CAAAAAEAAABIAAAABAAAAFAAAAAGAAAAaAAAAAUAAAB0AAAAAwAAAIAAAAAH
AAAAjAAAAAIAAAD8AAAAEQAAACQBAAACAAAAtQMAAB4AAAAOAAAAQWRtaW5p
c3RyYXRvcgAAAB4AAAABAAAAAAAAAB4AAAABAAAAAAAAAB4AAAABAAAAAAAA
AB4AAABoAAAAQzpcUHJvZ3JhbSBGaWxlc1xNaWNyb3NvZnQgT2ZmaWNlXFZp
c2lvMTBcMTAzM1xTb2x1dGlvbnNcTmV0d29ya1xMb2dpY2FsIE5ldHdvcmsg
RGlhZ3JhbSAoVVMgdW5pdHMpLnZzdAAeAAAAIAAAAE9TUEYgTXVsdGkgUHJv
Y2VzcyBFQ01QIHByb2JsZW0ARwAAACTvAAD/////DgAAAAEAAACMAAAAAAAA
AAAAAAB8AAAAoQAAAAAAAAAAAAAAygwAAJUQAAAgRU1GAAABABzvAAADAAAA
AQAAAA8AAABsAAAAAAAAAAAFAAAABAAAUgEAAA4BAAAAAAAAAAAAAAAAAABQ
KAUAsB4EAFYASQBTAEkATwAAAEQAcgBhAHcAaQBuAGcAAAAAAAAATAAAAHzu
AAAAAAAAAAAAAHwAAAChAAAAAAAAAAAAAAB9AAAAogAAACAAzAAAAAAAAAAA
AAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAP///wAAAAAAZAAAACgAAACMAAAA
8O0AACgAAAB9AAAAogAAAAEAGAAAAAAA8O0AAAAAAAAAAAAAAAAAAAAAAAD/
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////8A////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////AP//////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/wD/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////8A////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////AP//////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////wD/////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////8A////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////AP//////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////wD/////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////8A////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////AP//////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////wD/////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////8A////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////AP//
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////wD/////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////8A////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
AP//////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////wD/////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////8A////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////AP//////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////wD/////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////////8A////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////AP//////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////wD/////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////////////8A////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////AP//////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////wD/////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////8A////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////AP//////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////wD/////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////8A
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////AP//////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////wD/////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//8A////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////AP//////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////wD/////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////8A////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////AP//////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////wD/////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////8A////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////
AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////AAAA////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////AP//////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////+fn5////0BAQP///0BAQP///0BAQP///0BAQP//
/0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BA
QP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP//////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////wD/////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////8A////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////AAAA////AAAA////AAAA////AAAA////AAAA////
AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////AP//////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////4eHh////0BAQP///0BAQP//
/0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BA
QP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///7e3t///////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////wD/
////////////////////////////////////////////////////////////
//////////8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8A
AAD///8AAAD///8AAAD/////////////////////////////////////////
//////////////////////////////////////////////////+/v7////+/
v7////+/v7////+/v7//////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////8A////////////////////////////////////////
////////////////////////////5+fn////QEBA////QEBA////QEBA////
QEBA////QEBA////QEBA////QEBA////QEBA////h4eH////////////////
////////////////////////////////////////////////////////////
////////ICAg////AAAA////AAAA////AAAA////YGBg////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////AP//////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////0BAQP///0BAQP///0BAQP///0BA
QP//////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/wD/////////////////////////////////////////////////////////
//////////9gYGD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8A
AAD///8AAAD///8AAAD///8AAAD////////////////////n5+f///+/v7//
//+/v7////+/v7////+/v7////+/v7////+/v7////+/v7////+/v7////+/
v7////+/v7////+/v7////+/v7////+/v7////+/v7////+/v7////+/v7//
//+/v7////+/v7////+/v7/////39/f/////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////8A////////////////////////////////////
////////////////////////////////////QEBA////QEBA////QEBA////
QEBA////QEBA////QEBA////QEBA////QEBA////QEBA////////////////
////////////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////
AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////AP//////////////
////////////////////////////////////////////////////////////
/8fHx////7+/v////7+/v////7+/v////7+/v////7+/v////7+/v////7+/
v////////////////////////////8/Pz////39/f////39/f////39/f///
/39/f////39/f////39/f////39/f////39/f////39/f////39/f////39/
f////39/f////39/f////39/f////39/f////39/f////39/f////39/f///
/39/f////+/v7///////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////wD/////////////////////////////////////////////////////
//////////////////////////8AAAD///8AAAD///8AAAD///8AAAD///8A
AAD///8AAAD///8AAAD///+/v7//////////////////////////////////
///////////////////f39////+/v7////+/v7////+/v7////+/v7////+/
v7////+/v7////+/v7////+/v7////+/v7////+/v7////+/v7////+/v7//
///v7+//////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////8A////////////////////////////////
////////////////////////////////////////////WFhY////QEBA////
QEBA////QEBA////QEBA////QEBA////QEBA////QEBA////////////////
////////////////////////////////////////////AAAA////AAAA////
AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////AP//////////
////////////////////////////////////////////////////////////
/////////7+/v////7+/v////7+/v////7+/v////7+/v////7+/v////7+/
v///////////////////////////////////////////////////////////
/7+/v////39/f////39/f////39/f////39/f////39/f////39/f////39/
f////39/f////39/f////39/f////39/f////39/f////9/f3///////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////wD/////////////////////////////////////////////////
//////////////////////////+fn5////8AAAD///8AAAD///8AAAD///8A
AAD///8AAAD///8AAAD///8gICD/////////////////////////////////
//////////////////9/f3////9/f3////9/f3////9/f3////9/f3////9/
f3////9/f3////9/f3////9/f3////9/f3////9/f3////9/f3////9/f3//
//9/f3////+fn5//////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////8A////////////////////////////
////////////////////////////////////////////////////QEBA////
QEBA////QEBA////QEBA////QEBA////QEBA////QEBA////////////////
////////////////////////////////////////////AAAA////AAAA////
AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////AAAA////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////AP//////
////////////////////////////////////////////////////////////
/////////////////////////7+/v////7+/v////7+/v////7+/v////+/v
7///////////////////////////////////////////////////////////
/39/f////39/f////39/f////39/f////39/f////39/f////39/f////39/
f////39/f////39/f////39/f////39/f////39/f////39/f////5+fn///
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////wD/////////////////////////////////////////////
//////////////////////////////////////////8gICD///8AAAD///8A
AAD///8AAAD///8AAAD/////////////////////////////////////////
//////////////////////////////////////////////////9/f3////9/
f3////9/f3////9/f3////9/f3////9/f3////9/f3////9/f3//////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////8A////////////////////////
////////////////////////////////////////////////////////////
////////f39/////f39/////f39/////f39/////39/f////////////////
////////////////////////////////////////////////////////////
////////QEBA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////YGBg////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////AP//
////////////////////////////////////////////////////////////
/////////////////////////7+/v////7+/v////7+/v////7+/v////7+/
v///////////////////////////////////////////////////////////
/////////////////////////////////7+/v////7+/v////7+/v////7+/
v////7+/v////7+/v////7+/v////7+/v///////////////////////////
////////////////////////////////////////////////////////////
/////////////0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP//
/0BAQP///0BAQP///0BAQP//////////////////////////////////////
/////////////////wD/////////////////////////////////////////
//////////////////////////////////////////9gYGD///8AAAD///8A
AAD///8AAAD///8AAAD///8AAAD/////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////9AQED///8AAAD///8AAAD///8AAAD/
//8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/////////////////////
//////////////////////////////////////8A////////////////////
////////////////////////////////////////////////////////////
////////f39/////f39/////f39/////f39/////f39/////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
AP//////////////////////////////////////////////////////////
/////////7+/v////39/f////39/f////39/f////39/f////39/f////39/
f////39/f////39/f////4+Pj///////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP//
/0BAQP///0BAQP///0BAQP///7e3t///////////////////////////////
/////////////////////wD/////////////////////////////////////
//////////////////////////////////8AAAD///8AAAD///8AAAD///8A
AAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/////////////////
///////////v7+////9/f3////9/f3////9/f3////9/f3////9/f3////9/
f3////9/f3////9/f3////9/f3////9/f3////9/f3////9/f3////9/f3//
//9/f3////9/f3////9/f3////9/f3////9/f3//////////////////////
//////////////////////////////+/v7////8AAAD///8AAAD///8AAAD/
//8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/////////////
//////////////////////////////////////////8A////////////////
////////////////////////////////////////////////////v7+/////
f39/////f39/////f39/////f39/////f39/////f39/////f39/////f39/
////j4+P////////////////////////////AAAA////AAAA////AAAA////
AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////
AAAA////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////AP//////////////////////////////////////////////////////
/////////////////////////6+vr////39/f////39/f////39/f////39/
f////39/f////39/f/////////////////////////////////////f39///
/7+/v////7+/v////7+/v////7+/v////7+/v////7+/v////7+/v////7+/
v////7+/v////7+/v////7+/v////7+/v////7+/v////7+/v////7+/v///
/7+/v////7+/v////7+/v///////////////////////////////////////
/////////////////////////////wAAAP///wAAAP///wAAAP///wAAAP//
/wAAAP///wAAAP///wAAAP//////////////////////////////////////
/////////////////////////wD/////////////////////////////////
//////////////////////////////////////////////////8AAAD///8A
AAD///8AAAD///8AAAD///8AAAD///8AAAD////f39//////////////////
//////////////////////////+Hh4f///9AQED///9AQED///9AQED///9A
QED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED/
//9AQED///9AQED///9AQED///9AQED///+3t7f/////////////////////
//////////////////////////////////////////////8AAAD///8AAAD/
//8AAAD///8AAAD///8AAAD///8AAAD///8AAAD////f39//////////////
//////////////////////////////////////////////8A////////////
////////////////////////////////////////////////////////////
////////19fX////v7+/////v7+/////v7+/////v7+/////v7+/////v7+/
////////////////////////////////////////////////////AAAA////
AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////AP//////////////////////////////////////////////////
/////////////////////////////////////////39/f////39/f////39/
f////39/f////8/Pz///////////////////////////////////////////
/////////9fX1////7+/v////7+/v////7+/v////7+/v////7+/v////7+/
v////7+/v////7+/v////7+/v////7+/v////7+/v////7+/v////7+/v///
/7+/v////7+/v////+fn5///////////////////////////////////////
/////////////////////wAAAP///wAAAP///wAAAP///wAAAP///wAAAP//
/wAAAP///wAAAP///wAAAP///wAAAP///2BgYP//////////////////////
/////////////////////////////wD/////////////////////////////
//////////////////////////////////////////////////////////8g
ICD///8AAAD///8AAAD///8AAAD///8AAAD/////////////////////////
//////////9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9A
QED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED/
//9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9A
QED///////////////////////////////////+fn5////9AQED///9AQED/
//9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED/////
//////////////////////////////////////////////////8A////////
////////////////////////////////////////////////////////////
////////////////////////v7+/////v7+/////v7+/////v7+/////5+fn
////////////////////////////39/f////AAAA////AAAA////AAAA////
AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////
AAAA////AAAA////AAAA////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////AP//////////////////////////////////////////////
/////////////////////////4eHh////0BAQP///0BAQP///0BAQP///0BA
QP///0BAQP///0BAQP///0BAQP///0BAQP//////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////wAAAP///wAAAP///wAAAP//
/wAAAP///wAAAP///wAAAP///39/f///////////////////////////////
/////////////////////////////////wD/////////////////////////
//////////////////////////////////////////////////8AAAD///8A
AAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/////////
//////////////////////////////////////////////////9AQED///9A
QED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED/
//9AQED///9AQED///9AQED///9AQED/////////////////////////////
//////////////////////////////////////////////////////+3t7f/
//9AQED///9AQED///9AQED///9AQED///9AQED///9AQED/////////////
//////////////////////////////////////////////////////8A////
////////////////////////////////////////////////////////////
////////19fX////v7+/////v7+/////v7+/////v7+/////v7+/////v7+/
////v7+/////v7+/////////////////////////////////////////////
////////f39/////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////v7+/////
////////////////////////////////////////////////////////////
////////////39/f////v7+/////v7+/////v7+/////v7+/////v7+/////
v7+/////v7+/////////////////////////////////////////////////
////////////////AP//////////////////////////////////////////
/////////////////////////5+fn////0BAQP///0BAQP///0BAQP///0BA
QP///0BAQP///0BAQP///0BAQP///0BAQP///1hYWP//////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////wAAAP///wAAAP///wAAAP//
/wAAAP///wAAAP///wAAAP///wAAAP///2BgYP//////////////////////
/////////////////////////////////////wD/////////////////////
//////////////////////////////////////////////////8AAAD///8A
AAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/
//////////////////////////////////////////////////8AAAD///8A
AAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/
//8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/////////////////////
//////////////////////////////////////////////////////+fn5//
//9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED/////
//////////////////////////////////////////////////////////8A
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////
QEBA////////////////////////////////////////////////////////
////////////9/f3////v7+/////v7+/////v7+/////v7+/////v7+/////
v7+/////v7+/////v7+/////////////////////////////////////////
////////////////////AP//////////////////////////////////////
/////////////////////////////////////////////////0BAQP///0BA
QP///0BAQP///0BAQP///0BAQP//////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////wAAAP///wAAAP///wAAAP//
/wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///7+/v///////////////
/////////////////////////////////////////wD/////////////////
////////////////////////////////////////////////////////////
///////f39////8AAAD///8AAAD///8AAAD///8AAAD///9gYGD/////////
////////////////////////////////////////////////////////////
//////////////9AQED///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/
//8AAAD///8AAAD///9gYGD/////////////////////////////////////
///////////////////////////////////////////////////////n5+f/
//9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9A
QED/////////////////////////////////////////////////////////
//8A////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////QEBA////QEBA////QEBA
////QEBA////QEBA////QEBA////QEBA////QEBA////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////AP//////////////////////////////////
/////////////////////////////////////////0BAQP///0BAQP///0BA
QP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP//////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////wD/////////////
//////////////////////////////////////////////////////////9/
f3////8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/
//8gICD/////////////////////////////////////////////////////
///////f39////8AAAD///8AAAD///8AAAD///8AAAD///8AAAD///8AAAD/
//8AAAD///8AAAD///8AAAD///8AAAD/////////////////////////////
////////////////////////////////////////////////////////////
//////////+/v7////9/f3//////////////////////////////////////
////////////////////////////////////////////////////////////
//////8A////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////QEBA////QEBA////QEBA////QEBA
////QEBA////QEBA////QEBA////QEBA////QEBA////QEBA////WFhY////
////////////////////////////////////////////////////////////
////////////////////////////////////AAAA////YGBg////////////
////////////////////////////////////////////////////////////
////////////////////////////AP//////////////////////////////
////////////////////////////////////////////////////////////
/////////////39/f////9/f3///////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////+/v7////7+/v///////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////7+/v///
/39/f///////////////////////////////////////////////////////
/////////////////////////////////////////////////wD/////////
////////////////////////////////////////////////////////////
//////////////////////////////8gICD///8AAAD/////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////////8AAAD///8gICD/
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////8A////////////////////////////////////////////////
////////////////////////////////////////////////////////v7+/
////7+/v////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////z8/P////QEBA////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////AP//////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////wD/////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///////////Hx8e/v7+/v7+/v7+/v7/Hx8f/////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///////////Pz8+/v7+/v7+/v7+/v7+/v7/f39//////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////8A////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////v7+/f39/SEhIEBAQAAAAODg4QEBAQEBAQEBAQEBAODg4AAAA
EBAQSEhIf39/v7+/////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////9/f3r6+vf39/QEBAEBAQAAAAMDAwQEBAQEBAQEBAQEBAQEBAICAg
AAAAICAgUFBQf39/x8fH////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////AP//////////////////////
////////////////////////////////////////////////////////////
/////////////////////9/f33h4eCAgIEBAQH9/f7e3t+/v7///////////
/////////////////////+/v77e3t39/f0BAQCAgIIeHh9/f3///////////
////////////////////////////////////////////////////////////
/////////////////////7e3t2BgYBAQEFBQUH9/f7+/v+/v7///////////
/////////////////////////9/f36+vr39/fzg4OCAgIHh4eNfX1///////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////wD/
////////////////////////////////////////////////////////////
///////////////////////////////////n5+dwcHAgICCHh4ff39//////
///////////////////////////////////////////////////////////f
3994eHggICBwcHDv7+//////////////////////////////////////////
//////////////////////////////////+vr68wMDBISEifn5/39/f/////
////////////////////////////////////////////////////////////
///f39+Hh4coKChQUFDPz8//////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////8A////////////////////////////////////////
////////////////////////////////////////////////////j4+PKCgo
j4+P////////////////////////////////////////////////////////
////////////////////////////////j4+PICAgj4+P////////////////
////////////////////////////////////////////////x8fHMDAwUFBQ
z8/P////////////////////////////////////////////////////////
////////////////////////////////////r6+vMDAwUFBQ7+/v////////
////////////////////////////////////////////////////////////
////////////////////////////////////////AP//////////////////
////////////////////////////////////////////////////////////
//////f392hoaHBwcO/v7///////////////////////////////////////
/////////////////////////////////////////////////////////+/v
73BwcGhoaP//////////////////////////////////////////////////
/////5eXl0BAQM/Pz///////////////////////////////////////////
////////////////////////////////////////////////////////////
/////6+vrzAwMM/Pz///////////////////////////////////////////
////////////////////////////////////////////////////////////
/wD/////////////////////////////////////////////////////////
///////////////////////v7+9ISEiXl5f/////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////+Xl5dISEj39/f/////////////////////
//////////////////////9oaGhoaGj39/f/////////////////////////
////////////////////////////////////////////////////////////
///////////////////////////////f3984ODi3t7f/////////////////
////////////////////////////////////////////////////////////
//////////////////////8A////AAAAAAAAAAAA////////AAAAAAAAAAAA
////////////////////////////////////////////SEhIt7e3////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////p6enWFhY
////////////////////////////////////////cHBwh4eH////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////9/f3
SEhIv7+/////////////////////////////////////////////////AAAA
AAAAAAAA////////AAAAAAAAAAAA////////////////AAAAAP//////////
/wAAAAAAAP///////////wAAAP//////////////////////////////////
/3h4eIeHh///////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////3BwcI+Pj////////////////////////////////5eX
l2hoaP//////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////+/v7zg4ONfX1///////////////////////////
/////////////wAAAP///////////wAAAAAAAP///////////wAAAP//////
/////wD///////////8AAAAAAAAAAAD///////////////8AAAD/////////
///////////////////Pz88wMDD///////////8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAD/////////////////////////////////////////////
//////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAD////Pz88wMDD/////////////////////////////////////
//////////////////////////////////////////////////8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAD////////////////////////Pz88wMDD/////
//////////////////////////////8AAAD///////////8AAAAAAAAAAAD/
//////////////8AAAD///////8A////////////AAAAAAAAAAAAAAAA////
////////AAAAAAAAAAAA////////////////////UFBQr6+v////AAAAAAAA
v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/AAAAAAAA////////////////
////////////////////////////////////////////////AAAAAAAAAAAA
v7+/a2trVFRUv7+/v7+/v7+/v7+/v7+/AAAAAAAAAAAA////////////////
////////////////////////////////////////////////////////////
AAAAAAAAAAAAv7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/AAAAAAAAAAAA////
////////////UFBQr6+v////////////////////////AAAAAAAAAAAA////
////////AAAAAAAAAAAAAAAA////////////AAAAAAAAAAAAAP//////////
/wAAAAAAAAAAAP///////////////////////wAAAP///////////////+fn
5yAgIPf39wAAAL+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/
v7+/vwAAAP//////////////////////////////////////////////////
/////wAAAL+/v7+/v7+/v7+/v7m5uRISErOzs7+/v7+/v7+/v7+/v62trRgY
GLm5uQAAAP//////////////////////////////////////////////////
/////////////////wAAAL+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/
v7+/v7+/v7+/v7+/vwAAAP///////////8fHxzg4OP//////////////////
/////wAAAP///////////////////wAAAAAAAAAAAP//////////////////
/////wAAAAD///////////8AAP8AAAAAAAAAAP//////////////////////
//8AAAC/v7+/v7+/v7+Dg4M8PDy/v78AAAC/v7+/v7+/v7+/v78AAAAAAAAA
AAAAAAAAAAC/v7+/v7+/v7+/v78AAADPz8+/v7+/v7+/v7+/v7+/v7+/v7+/
v7+/v7+/v7+/v7+/v7+/v7+/v78AAAC/v7+/v7+/v7+/v78AAAAAAAAAAAAA
AAAAAAAAAAC/v7+Dg4M8PDy/v78AAAC/v7+/v7+/v7+/v7+/v7+/v7+/v7+/
v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v78AAAC/v7+/v7+/v7+/v78A
AAAAAAAAAAAAAAAAAAAAAAC/v7+/v7+/v7+/v78AAAC/v7+/v7+/v7+/v78G
Bga5ubm/v7+/v7+/v7+/v78AAAD///////////////////////8AAP8AAAAA
AAAAAP////////////////////////8AAAAAAAAAAAD/////////////////
AAAAAAAAAAAA////////////AAAAQEBAQEBAQEBAJCQkHBwcUFBQAAAAAAAA
AAAAAAAAAAAAAAAAAAAAv7+/v7+/v7+/AAAAAAAAAAAAAAAAAAAAcHBwQEBA
QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAd3d3v7+/v7+/AAAAAAAAAAAAAAAAv7+/AAAASEhIQEBA
QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAv7+/v7+/v7+/AAAAAAAAAAAAAAAAv7+/
AAAAQEBAQEBAQEBAQEBADAwMNDQ0QEBAQEBAQEBAQEBAAAAA////////AAAA
AAAAAAAAAAD/////////////////AAAAAAAAAAAA////////////AAAAAAAA
AAAAAP///////////////wAAAAAAAAAAAAAAAP///////wAAAP//////////
/39/f39/f////wAAAL+/vwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AL+/v7+/vwAAAP//////////////////////////////////////////////
/////////wAAAL+/vwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5O
TnFxcQAAAAAAAP//////////////////////////////////////////////
/////////////////////wAAAL+/vwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAL+/v7+/vwAAAAAAAP///////////////0BAQL+/v///////////
/////wAAAP///////wAAAAAAAAAAAAAAAP///////////////wAAAAAAAAAA
AAAAAP///////wAAAAAAAAAAAAAAAP8AAP8AAP8AAP8AAAAAAAAAAAAAAAD/
//8AAAD///////////////+Xl5doaGj///8AAAC/v7+/v7+/v78AAAAAAAAA
AAAAAAAAAAAAAAAAAAC/v7+/v7+/v78AAAD/////////////////////////
//////////////////////////////8AAAC/v7+/v7+/v78AAAAAAAAAAAAA
AAAAAAAAAAAAAAD///9ra2tUVFS/v78AAAD/////////////////////////
//////////////////////////////////////////8AAAC/v7+/v7+/v78A
AAAAAAAAAAAAAAAAAAAAAAAAAAD///+/v7+/v7+/v78AAAD/////////////
//8YGBjn5+f///////////////////8AAAD///8AAAAAAAAAAAAAAAAAAP8A
AP8AAP8AAP8AAAAAAAAAAAAAAAD///8AAAAAAAAAAAAA////////////////
////////AAAAAAAAAAAAAAAAAAAA////////////////v7+/QEBA////////
AAAAAAAAAAAAAAAAAAAA////AAAA////AAAAAAAAAAAAAAAAAAAA////////
////////////////////////////////////////////////////////AAAA
AAAAAAAAAAAAAAAAAAAAAAAAv7+/AAAAAAAAAAAAAAAAAAAAAAAA////////
////////////////////////////////////////////////////////////
////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAv7+/AAAAAAAAAAAAAAAAAAAA
AAAA////////////////7+/vEBAQ////////////////////////AAAAAAAA
AAAAAAAAAAAA////////////////////////AAAAAAAAAAAAAAAAAAAAAP//
/////////////////////////////////////wAAAP//////////////////
//////f39yAgIOfn5////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAP//////////////////////////////////////////////////////
/////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
APf39yAgIOfn5///////////////////////////////////////////////
/////////////////////////////////////wAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP///////////////////////////6+vr1BQUP//////////
/////////////////////wAAAP//////////////////////////////////
/////wAAAP///////wAAAAD///////////8AAAAAAAD///////////8AAAD/
//////////////////////////////9/f39/f3//////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////9wcHCP
j4////////////////////////+Pj49wcHD/////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//8wMDDPz8////////////////////////////////////8AAAD/////////
//8AAAAAAAD///////////8AAAD///////////8A////AAAAAAAAAAAA////
////AAAAAAAAAAAA////////////////////////////////////5+fnMDAw
5+fn////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////39/fKCgo9/f3////////////////////////9/f3KCgo39/f
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////n5+fYGBg////////////////////////////////
////////////AAAAAAAAAAAA////////AAAAAAAAAAAA////////////////
AP//////////////////////////////////////////////////////////
/////////////////7+/v0BAQP//////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////f390BAQMfHx///////////////////
/////////////9fX1zg4OO/v7///////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////+/v7////////////8fHx0BAQPf39///////////
/////////////////////////////+/v79fX1///////////////////////
/////////////////////wD////////////////////////////v7+//////
//////////////////////////////////////////+Pj49gYGD/////////
////////////////////////////////////////////////////////////
///////////////////////////////////////////////39/dYWFinp6f/
//////////////////////////////////////+3t7dAQEDv7+//////////
////////////////////////////////////////////////////////////
///////////////////////////////////////////Hx8dXV1fv7+/Hx8c4
ODjn5+f///////////////////////////////////////////+SkpJvb2//
//////////////////////////////////////////8A////////////////
////////////n5+fr6+v////////////////////////////////////////
////////j4+PQEBA7+/v////////////////////////////////////////
////////////////////////////////////////////////////////////
////7+/vSEhIn5+f////////////////39/f////////////////////////
////t7e3MDAwz8/P////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////Q0NDVVVVQEBA39/f////////////////////////////////////
////////////b29vZ2dn////////////////////////////////////////
////AP///////////////////////////6CgoCgoKP//////////////////
/////////////////////////////////7+/vzAwMK+vr///////////////
////////////////////////////////////////////////////////////
/////////////////////6+vrygoKL+/v////////////////////0FBQf//
/////////////////////////////9/f3zg4OHBwcO/v7///////////////
////////////////////////////////////////////////////////////
/////////////////////////8/Pz0hISB0dHbGxsf//////////////////
/////////////////////////////////4eHh39/f///////////////////
/////////////////////////wD///////////////////////////////8g
ICDf39/////////////////////////////////////////////////////f
399QUFBAQEDHx8f/////////////////////////////////////////////
///////////////////////////////////Hx8dAQEBQUFDn5+f/////////
///////////n5+cEBAT39/f////////////////////////////////39/eP
j48gICB/f3/v7+//////////////////////////////////////////////
///////////////////////////////////////f399gYGAwMDC3t7fv7+8w
MDDf39/////////////////////////////////Pz8////9/f3////97e3vv
7+9/f3////9/f3////////////////////////////////8A////////////
////////////////////eHh4h4eH////////////////////////////////
////////////////////////////v7+/ODg4KCgoj4+P5+fn////////////
////////////////////////////////////////////39/fh4eHKCgoODg4
v7+/////////////////////////////////AAAA////////////////////
////////////////////////7+/vf39/EBAQUFBQn5+f7+/v////////////
////////////////////////////////////////////////39/fj4+PMDAw
ICAgn5+f////////////19fXODg47+/v////////////////////////////
////AAAA////AAAA////AAAA////AAAA////f39/////////////////////
////////AP///////////////////////////////8fHxzg4OP//////////
//////////////////////////////////////////////////f39////9fX
13BwcBgYGCgoKGBgYJeXl7+/v7+/v/f39/////////f397+/v7+/v5eXl2Bg
YCAgICAgIHh4eNfX1////////////////////////////////////////wAA
AP///////////////////////////////////////////////////////6+v
r2BgYBAQEDAwMGBgYJeXl7+/v7+/v+/v7////////////9fX17+/v7+/v4eH
h1BQUBgYGCAgIHBwcM/Pz////////////////////////7e3t0hISP//////
/////////////////////8/Pz////39/f////39/f////39/f////39/f///
/////////////////////////////wD/////////////////////////////
//////8gICDf39//////////////////////////////////////////////
///v7+9SUlL39/f////////////////X19efn59oaGhAQEBAQEAICAgAAAAA
AAAICAhAQEBAQEBoaGifn5/f39//////////////////////////////////
//////////////////8AAAD/////////////////////////////////////
///////////////////////////////Pz8+fn59oaGhAQEBAQEAQEBAAAAAA
AAAAAAAoKChAQEBAQEB4eHivr6/n5+f/////////////////////////////
//////////+Hh4d4eHj///////////+fn5////9/f3////9/f3////9/f3//
//9/f3////9/f3////9/f3////9/f3////////////////////8A////////
////////v7+/////AAAA////AAAAeHh4AAAA////AAAA////////////////
////////////////////////d3d3VVVV////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////AAAA////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////WFhYp6en////////////AAAA
////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////ICAg////
////////////AP///////////////////0BAQP///0BAQP///zIyMjg4OEBA
QP///5+fn////////////////////////////////8fHxzg4OP//////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/wAAAP//////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////f3
9zg4OM/Pz////8/Pz////7+/v////7+/v////7+/v////7+/v////7+/v///
/7+/v////7+/v////////////////////wD///////+/v7////+/v7////+/
v7////+/v7////9CQkL39/e/v7////+/v7////+/v7/////////////////v
7+8wMDDf39////////////////+/v7////+/v7////+/v7////+/v7////+/
v7////+/v7////+/v7////+/v7////+/v7////+/v7/////39/f/////////
//////////////////////8AAAD/////////////////////////////////
//////////////+/v7////+/v7////+/v7////+/v7////+/v7////+/v7//
//+/v7////+/v7////+/v7////+/v7/////X19f/////////////////////
///////////////////////f3984ODjn5+f/////////////////////////
//////////////////////////////////////////////////////8A////
QEBA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////////////////////UFBQr6+v////////////////QEBA////AAAA////
AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA
////AAAA////////////////////////////////////AAAA////////////
////////////////////////////////n5+f////AAAA////AAAA////AAAA
////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////AAAA////
////////////////////////////////////////////////x8fHQEBA9/f3
////////////////////////////////////////////////////////////
////////////////AP///////0BAQP///0BAQP///0BAQP///0BAQP///0BA
QP///0BAQP///0BAQP///0BAQP///////////5+fn2BgYP//////////////
/////////0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BA
QP///0BAQP///0BAQP///0BAQP///+fn5///////////////////////////
/////wAAAP///////////////////////////////////////////////0BA
QP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP///0BAQP//
/0BAQP///0BAQP///4eHh///////////////////////////////////////
/////////////5eXl2hoaP//////////////////////////////////////
/////////////////////////////////////wD/////////////////////
///////////////////////////////////////////////////////X19cw
MDD39/f/////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////8AAAD/////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////9wcHCPj4//////////////
//////////////////////////////////////////////////////////8A
////////////////////////////////////////////////////////////
////////////9/f3MDAw19fX////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////AAAA////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////QEBAv7+/////////////////////////////////////////////////
////////////////////AP//////////////////////////////////////
/////////////////////////////////3BwcI+Pj///////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////wAAAP//////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////+/v7zAwMN/f3///////////////////////
/////////////////////////////////////////wD/////////////////
//////////////////////////////////////////////////+vr69QUFD/
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////8AAAD/////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///////////////////////////////////////////////////X19cwMDD3
9/f/////////////////////////////////////////////////////////
//8A////////////////////////////////////////////////////////
////////5+fnKCgo7+/v////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////AAAA////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////39/f////////////////f39/////f39/////f39/////
////////////////////////AP//////////////////////////////////
/////////////////////////////0BAQL+/v///////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////wAAAP//////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////2BgYP//
/wAAAP///wAAAP///9/f3////////////////////////wD/////////////
//////////////////////////////////////////////9/f39/f3//////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////+Pj4//////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////+/v7////+/v7////+/v7//////////////////////
//////8A////////////////////////////////////////////////////
////x8fHODg4////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////QEBA////QEBA////QEBA////QEBA////QEBA////
QEBA////QEBA////QEBA////////AP//////////////////////////////
/////////////////////+/v7zAwMN/f3///////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////wAAAP///wAAAP///wAAAP///wAAAP//////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////39/f////wAAAP///wAAAP//
/wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///////////wD/////////
//////////////////////////////////////////9QUFCvr6//////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////+Hh4f///9AQED///9AQED///9A
QED////Pz8//////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//+/v7////+/v7////+/v7////+/v7////+/v7////+/v7////+/v7////+/
v7////////8A////////////////////////////////////////////////
////39/f////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////QEBA////QEBA////QEBA////QEBA////
QEBA////QEBA////cHBw////////////AP///////////////////////wAA
AP///wAAAP///wAAAP//////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////5+fn///
/wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///wAA
AP///wAAAP///9/f3///////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////7+/v////wAAAP//
/wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///////////////wD/////
//////////////+fn5////9AQED///9AQED////Pz8//////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////9AQED///9AQED///9AQED///9AQED///9AQED///9A
QED///9AQED///9AQED///9AQED///9AQED/////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////8A////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////39/f////v7+/////
v7+/////v7+/////v7+/////v7+/////v7+/////v7+/////7+/v////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////AP///wAAAP///wAAAP///wAA
AP///wAAAP///wAAAP///wAAAP///wAAAP///wAAAP//////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///wAA
AP///wAAAP//////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////wC3
t7f///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED/
///Pz8//////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////+fn5////9AQED///9AQED///9AQED///9A
QED///9AQED///9AQED///9AQED////Pz8//////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////8A////9/f3////v7+/////v7+/////v7+/////v7+/
////v7+/////v7+/////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////7+/v////v7+/////v7+/////
v7+/////v7+/////v7+/////v7+/////v7+/////v7+/////v7+/////v7+/
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////AP///////wAAAP///wAA
AP///wAAAP///wAAAP///wAAAP///wAAAP///yAgIP//////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///wAAAP///wAA
AP///wAAAP///wAAAP///wAAAP//////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/wD////n5+f///9AQED///9AQED///9AQED///9AQED///9AQED///9AQED/
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
///////////////////f39////9/f3////9/f3////9/f3////9/f3////9/
f3////9/f3////9/f3////9/f3////9/f3////9/f3//////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////8A////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////AP//////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////wD/////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////8A////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////AP//////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////wD/////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////8A////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////AP//////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////wD/////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////8A////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////AP//
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////wD/////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////8A////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
AP//////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////wD/////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////8A////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////AP//////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////wD/////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////////8A////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////AP//////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////wD/////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
//////////////////////////////////////////////////8A////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////AP//////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////////////////wAOAAAAFAAAAAAAAAAQAAAAFAAA
AAzsf4xLVo9ogwAkjzaPSI+Oj2yPfo/aj6KPlLh/WEt/DYDB5XAIkX8BBVyR
6n+CbVKfHo8snz6fAISfYp90n9CfmJ+GBd4zuJ9+YEPzCVAHyQZQoW+oCfMJ
WKFQBzAt4JJFTq9gozABBAEUApjXChwJBAETm6DkCcTMP1QLBe02MCmYD2EA
/24H9AhzBw0J/4cHJgmWBz8J/6AHTgm0B2IJ/8MHZwnXB3EJ9esRsP8RsBMI
cQn/IghnCTYIYgn/RQhOCVkIPwlVaCmwfCWwiyGwmh2wVbMdsMcdsNEdsOoh
sP3+JbANCU4JHAl/PwkrCSYJOlOwd0QJ9Cmw9AhdZbD1bGWwdkuwhQngCP+U
CcwImQm9CH+eCakIowmQh7BVfIewaIOwT3+wO3uwVSx3sBhzsA5vsARrsF0E
KbAECESpsDoTsH8rCdIHHAm5+aD/qgf+CJYH6gh/kQfRCIcHx9GwVbPRsJrR
sIvNsHzJsP9oCKoHWQi5B1VF6bA2ybAizQECAAACAgAAAwIAAAQCAAAFAgAA
BgIAAAcCAAAIAgAACQIAAAoCAAALAgAADAIAAA0CAAAOAgAADwIAABACAAAR
AgAAEgIAAP7/////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////Vmlz
aW8gKFRNKSBEcmF3aW5nDQoAAAAAAAAGALB4AAAAhAEAFAAAAMRHDxA5dwAA
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
/2h0IChjKSAy/zAwMSBNaWNy/29zb2Z0IENv/3Jwb3JhdGlv/24uICBBbGwg
/iYCcyByZXNlcj92ZWQuAP4YAAAA0AAAAAAAAAAAAAAAAAAAAAgAAAAIAAAA
AAAAAJsAAAC0+SEQJBYAAJ8AAABHAJgAAADc+iEQwxYAAHEAAABHAJwAAACs
+yEQNBcAAO4AAABHAIcAAAA8/SEQIhgAACcAAABHAKcAAACU/SEQSRgAABEA
AABFAIQAAAC0/SEQWhgAACEAAABHAKQAAAAM/iEQexgAACcAAABHAKMAAADM
/iEQohgAAGgAAABHAAAAAAADAAAAAQAAAAIAAAAEAAAABgAAAAUAAAAHAAAA
/ygXAAABAAkA/wADkwsAAAYA64YB6vEF6/AMAmjXDaAWBAcH6/AQBOkB8fAe
AQPr8B4ABN7r8AQBDQAYAfwCyP/yLQHr8C3/8PTwAPpFAuT3IkEE8vJNAAYp
APJUCwJBBjQDAAC/v1W/PwYDKwIGYQAG//D/JAOBAI8W9wP/ixbEA4AWkQP/
bhZfA1UWLgP/NBb9Ag4WzgL/4BWfAq0VcgL/cxVGAjMVGgL/7hTxAaMUyAH/
UxShAf0TewH/oxNXAUQTNAH/4BITAXcS8wD/ChLWAJkRugD/JRGgAKwQiAD/
MBByALAPXgD/LQ9MAKgOPAD/Hw4vAJQNIwD/Bg0bAHYMFAD/4wsQAE8LDwD/
uwoQACgKFAD/mAkbAAoJIwD/fwgvAPYHPAD/cQdMAO4GXgD/bgZyAPIFiAD/
eQWgAAUFugD/lATWACcE8wD/vgMTAVoDNAH/+wJXAaECewH/SwKhAfsByAH/
sAHxAWsBGgL/KwFGAvEAcgL/vgCfApAAzgL/agD9AkkALgP/MABfAx4AkQN/
EwDEAw8A96cQ/yoEHgBdBDAA/48ESQDABGoA//EEkAAgBb4A/08F8QB8BSsB
/6gFawHUBbAB//0F+wEmBksC/00GoQJzBvsC/5cGWgO6Br4D/9sGJwT7BpQE
/xgHBQU0B3kF/04H8gVmB24G/3wH7gaQB3EH/6IH9geyB38I/78HCgnLB5gJ
/9MHKAraB7sK/94HTwvfB+ML/94HdgzaBwYN/9MHlA3LBx8O/78HqA6yBy0P
/6IHsA+QBzAQ/3wHrBBmByUR/04HmRE0BwoS/xgHdxL7BuAS/9sGRBO6BqMT
/5cG/RNzBlMU/00GoxQmBu4U//0FMxXUBXMV/6gFrRV8BeAV/08FDhYgBTQW
//EEVRbABG4W/48EgBZdBIsWIyoErAFCBSwB8JkEMAECpAElqQ+7D80P3w/x
DwMfABUfJx85H0sfXR9vH4Efkx8ApR+3H8kf2x/tH/8fES8jLwA1L0cvWS9r
L30vjy+hLy8CdH4PkA8B/fIkA8HPJOkqoyLEQVTBQDQW8LsEDblA4BVOr0B7
3qtCMxXTBaRBoxTVJZtATJdAcpNAlgb/QxO5Bt8S2gZPdxL6BoRBgEEkfUAi
eEEvdUBwQWxBp2lAZEEVk2FABV1AdVlAVEFQQSpMQSlJQJlFQAtBQDxBkfc5
QDRBMEFvLUAoQXr4JUAgQRxBJwT6Br+/A9oGWwO5C0CW+gdAcgNATAb7ASXd
BvwxawHT8zLxAN176zBOBZHpMGoAB/AESuEw3DHYMdQx0DFXDwD7zzAHCWAa
CWBVMwlgUwlgeAlgowlgfdIJYAUFDwA8MWDVdjFgsjFg8DFgMAZXDwBxRWCz
RWD1RWBTNgc2YFVgtFVg8FVgXyoIDwBhZWCUZWA1w2Vg7mVgEwkaYHlg1Ux5
YF95YGt5YG8J/xMAogkeANUJ/zAABwpKADgK/2oAaAqRAJgK/74AxgrxAPMK
/ysBIAtrAUsL/7ABdQv7AZ0L/0sCxAuhAuoL//sCDgxbAzEM/78DUgwnBHIM
/5QEkAwFBawM/3oFxgzyBd4M/28G9AzuBggN/3EHGg33ByoN/38INw0LCUMN
/5kJSw0pClIN/7sKVg1PC1cN/+MLVg11DFIN/wUNSw2TDUMN/x8ONw2nDioN
/y0PGg2wDwgN/y8Q9AysEN4M/yQRxgyZEawM/woSkAx3EnIM/98SUgxDEzEM
/6MTDgz9E+oL/1MUxAujFJ0L/+4UdQszFUsL/3MVIAutFfMK/+AVxgoNFpgK
/zQWaApUFjgK/24WBwqAFtUJf4sWogmPFm+JcFVriXBfiXBMiXAziXB9E4lw
7giPFsOlcNWUpXBhpXAqpXDwB1ePFrS5cHa5cDa5cF/1Bo8Ws8lwcclwfTDJ
cPAFjxay2XBVdtlwPNlwBdlw0qsgVaOrIHirIFOrIDOrIDUaqyAHqyD7A6wv
vicC/vElB18ZXytfPV9PX2FfAHNfhV+XX6lfu1/NX99f8V8AA28VbydvOW9L
b11vb2+BbwCTb6Vvt2/Jb9tv7W//bxF/ACN/NX9Hf1l/a399f49/oX8As3/F
f9d/6X/7f9NGZAUEAYRWCZoD8HsPOwpas6ABFP7r8CQDCACaCwf/AzkNjgM6
Ee//AQETewIMEhj/AWENGAFBD4HhAYqxDok2twID////ElkGBLcmgrElh7+Z
vzO/AEW/uyDSsxKFdr/iv/S/rL8Avr/Qv0zPXs8GzxjPKs88z//hCoMETAn8
A/9uBZsFfwMPBf95BIsGTAmLBg86B/oFEtFuz4DPks8ApMES3yTfzM/ez/DP
At9u3wAm3zjfSt9c39jfgN+S36Tf/LbfQMvjA4EBjAX/+gCNCXsCWQv/DQJf
CmsDrwU/awOjBwcDmuH23wAI7xrvpMGa76zvVO9m73jvAIrv9u+u78Dv0u/k
72D/CP/wGv8s/z7/QMu7EicG/xwRrgY5DQ8F/1kLmwU/DDgE/xwROAQAD6EE
ACIBfv+Q/6L/pMEiDzQP3P8A7v8ADxIPfg82D0gPWg9sDwDoD5APog+0D9xN
IhHwRS4T/kLJvQslA2ENrP8DXRENAh8Tmf8CLxJAAX8NQB8BfQ+fAbgRBh8Y
HwLeQQWXzrgfyh9kH3YfACMAygemHxIvJC/cGQovhi8uKfxcL0DLDguhBG8J
/xoEjAW5BaID/y0FnASuBm8JP64GXQcnBvwh2B8A6h/8H6TB/C8OPzYvSC9a
LwDsL1g/ED+iL8A/0j/YL64//xoEnwGvBRgB/7AJmQJ8CysC/4IKjgPcBY4D
D8EHJQNAQRw/Lj9APwCkwUBPUk96P4w/nj8wT5xPwFRP5j8EXxZfHE/yT+MS
/0UGOhHMBmEN/y0FfAu5BWwM/2AEOhFgBCMPA78EhFFgT3JPhE+08oVfAJde
vk/QT+JPdF/gX5hfKl/4SG9ab2BVJwH//x76sfAmaZAxAENvcP95cmlnaHQg
qf8gMTk5NiBNaf9jcm9zeXN0Zf9tcyBFbmdpbv9lZXJpbmcgQ/9vbXBhbnkA
D/6xZBMAQWxsIFL+v2FzIFJlc2Vyd3ZlZFO0AQADD2QAAQ9xQOv06fbp8gEA
Fuvw/wIAdQIAAGAgdub1Bf4GAgF1Aw4LdUDr8Wbz8RoiQO7x7unyAQAW6/AC
AHXfAgAAYCDo8/A/uwX+BgIBdQMOBwAHAAX+9UDr8Wbz8RoiQED9zPzxdBVA
AQAW/uvwAgB1AgAAYL0g6PPwPwX+BgIBA3UDDgvpQOv06fPM/PF0FUD3AQAW
6/ACAHUCbwAAYCDm9QX+BgL3AXUDDgfwPwX+cUDr9On26fIBABbr8P8CAHUC
AABgIHbm9QX+BgIBdQMOCxgAAACcAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAA
AAAAiQAAAOQCIhDxIgAAAwAAAEUAigAAAPwCIhD0IgAAIgAAAEcAiwAAAEwD
IhAWIwAAMAAAAEcAiwAAAJwDIhBGIwAALwAAAEcAiwAAAOwDIhB1IwAAKwAA
AEcAiwAAADwEIhCgIwAAIgAAAEcAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAA
AAAAAAAAAABSb3V0ZXIA/TPd/hAnADIcx21xBAC8P+rxAYD98a7r8AMHBuvw
DA0BAhgAAAAaAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAlAAAAPQEIhB1
JAAAIgAAAEcAAAAAACVm6/BA5vXy9iD8/w4O9wEALuvwAgBwBf4rAgAA8APA
ohu26/CgD+vwgEzw8KM1DOvwk0YCkP4YAAAAGgAAAAAAAAAAAAAAAAAAAAEA
AAABAAAAAAAAAJ4AAABUBiIQzSQAADcAAABHAAAAAADV2OvwROvwiOvwBAA1
Bevw/wAP/wL99BQJquT3AevwBuf0aOvwJP/2IRAKGQAA0O7r8FQADOvwUKpl
+wPaRwAXCQAARvsAbOvwTP8hEMLvIwAApOvwVQAO/uvwjAQiEGYkAKsAD+/y
aevwpHkAl+p9ADZLAmR1AQUiEAMEJZAFJAFV7uvwSOvwmuvwFfnwfQLp8s4r
VgAT6/D9/wwAAACMtwNef9r/BiQAAAH99P8AAFJblU9VXasBaeL5B+f0Ruvw
RP/LIRCHCwAAz+7r8NYAI+vwBNAhfxBWDAAABQFAAf0K6/A80SEQWw3nAABZ
PwJmAfTPIfMQtG8AYQAARAAryuvw/GsAtW8AQgFGAH1H6/Bk0iEQ+28A6ykI
UAFOnQHzIRDfOiUAAIHr8FYAlR7r8ALr8BHz9OnyJQQABPLxAFVG6/D/8vAD
6/BE6PNm+vQAA/HyDg///+rxUB8N4Pv28erxaOf0AevwLRxSAlQY6/AE3/xV
AdRVAeb1kuP4g+vwAgC7VUlkAowpQJcDQLcjQD/o88A/qQW/7Uno8/A/uwQk
QASARQXVD+cP+Q9OBfXwZABloHEIWQ9rD4kI5vUKkQMFCuvwR+nyb5ECIB8y
H3cKFajj+E2RA/3y8LgRMgNNAXYQAQG4EVEC/Pbw/RGRAmAHTmV0d99vcmsA
/l0SAWAXAAD+2RIK3xjrhgHq8SDz8AAAeP7v8pH/JMPh////gYD//wCAf/7v
AAA//A8DH+AAvwADwAAAAR4BgIWDJA4jHgUaARYBEgQ/7/8AAH8GAsPh2v//
ggCC/wPwAP8PiP8I8P//D//wD/8AiP8FD/////Dwg/8BD5+G/wHwhHsAegDw
t4b/BnUBAACGAwd4jQOFAYUAAvAAhF4A3IQBXwEBD4WrAoT/+QRuALcEhf8C
D/B/hf8E+QAACbgA1s8AAZ96AJ+qAPCCCf8nAN4Ag2AA5QFjAKkA4QyQAHYB
jgL7Bv8P/3/wDwCEmQyQ/wEYwgAGGG4A8AD4AoAANhFLD4m1AgFmAIgBAXEA
ZwHwh3MDkgEPh2gHDYleBtT//Vjr8EEgc2V0IP9vZiBjb21wdf90ZXJzIHRo
Yf90IHdvcmsgdH9vZ2V0aGVyDgD/IHByb3ZpZGX/IGEgV2ViIHP/aXRlIG9y
IG/8EwIlAC1iYXNlZP7z8HJ2aWNlLgAA7WLp8pyZ9fAlGcDO9PLZEkD09AMD
2RLtwOnyjBkTA0ATQP+4YAu2YJcdQNskIi0AwiATBBvA1QQdAhUTBBc7BBHA
VUfr8P/y8Arr8ETo80b69AAH6fLy8RENA+/0UCMJ4Pv28erxaAIINOvwLwEA
VBjr8Bzf/AkBlAkD6PMB6/AC6/AjAQSq6/AF6/AG6/Cb4/h/3oQAAgBVQOny
jBn7QECQAQBAE0BA25yZwwAlKcAE2SK4wAW2AMsDEkBQeQnP2wMWhQEEdYgA
YCDe6PPgPwX+9AIFdZQjAP4JYIkBApQBhAEBgQSYASoSlwIqEiUS6vEJCJMC
SBJDFwQmFUwTZhIlFqsJBCASAyYWBTAWAUgwFoUSSBIBRBajFwViFritEmYS
hRYJBRqJAQeKmAEMWgEGlAHqE+ASCHTmH/gUBgAvAQaggQTg6vFgAawAgAXi
+QEQAFMAo4UE6vGDOyP98vDibCH+cSRJKmMCAgBg/xJWaXNfRDYx/y5jaG0h
IzI5vzAzNAD+SYUBAf9gP0NvcHlyaf9naHQgKGMpIP8yMDAxIE1pY/9yb3Nv
ZnQgQ/9vcnBvcmF0af9vbi4gIEFsbP0gsiJzIHJlc2X/cnZlZC4A/qd0iQTq
8RFmJwEAC4sjnwEwAP6EjQTq8WUMOyd8CQAugRIaJpcCBCIIrRJBM/AWAeAS
UDclEgQivQMEIQICgEy8AP7pnJEE6vFLqQRjC7a/YAtCKkBB3QVA93Ecx7Ew
8T9A46s4jrowA6814bg181U/5QWAgQMVgDJ1hjCrYIGEAS2HMRuFAQPW6TJ1
H/wAgDcwQIBVQYcxIYUCcmYTwBlDdwHAgAgwQHoOD0YJARlPK0YkIRYEImEc
eTNA9AQEQf8IViCDFAQiBQoUuP8A/glZAQIGdQkAYKt1CAVBIrwAomABoL0N
6/BiAQCjCDGT7tRAE5B1mABgBf4pvpUE6vEZOyQCFzV6CAEJHDQ0E2IDXQT+
TRlV5vVQZSE9CawAmAFO6fJuhQQCkAEoWgePQeL5kAEXNYgBVIQBMwWp4/hi
Zif8bST0/wR+BDDiMwBgCyX/UHJvcGVydGmvZXMA/lhSAiAQ/v0n+TJgGE5F
VFf/T1JLIFNIQVD/RSBQUk9QRVJ/VElFUwCAUYcxBKxRMiXCOyfDX9VTY1EX
RJ/wA8CiP8xBE0Fg/xRIaWRlIEVx/3VpcG1lbnQg/0xhYmVsAKMeftlBYBRT
aG93bm5xkO9Y/wH+UBFBY9Ih+3MusGNbMl0AgCYEQED+NzMmFfBNFy8Skvsh
AcESiAHwq1JdJbMQOyOEAThv1VNWFEPq8Vth1u7xoCVlYRhqYlRl/XjJIW50
cm9sIP9IYW5kbGUAo6TGQINgGIdiRH9lm2odAvtTDrBrwWTgEqMW1mN6E4Ss
UTMFkDsjDXENf9VTOnpRaytgZ0VkaXRubyL28ZMgEJxvrm4zwGWPQw7tRQYA
bYkElAFgAV0EVHWPjTfJ4/g4hQJUkAFJEqaEMiITs4RdIhTAhBAzAuMx4zG5
ArYvKCtxooCB6Gwh6vFsJdN1LDj0AgL/YAxNYW51ZmG/Y3R1cmVy7lQA3PZR
+DIBYBEcmSBO32FtZQD+uoIEYE0Jb2YA/t2BXSVx6o+4/I8xIzoiAmAO5FBk
/3VjdCBOdW1ihCabOiIBn59Pn2GSMwVr8G+fgZ8xI+MzYAtQYQlyp5fjMgEj
rCqX059hksIXNYbznwWvMSOFcgJg/ROhlURlc2NyafFwl3Ixo+BQV1dXIJ9D
bHVzdCaRhXIBGKGvs6JRr/5njQTQQWuPCOH60EGOjZOfgwgx9AH0AQIyIhdR
tF0iYAFgATMC9UEA9UG5AuAR4BFEEvgx+DHtQsBkAWQBCQKFcYVxwUAAAIiA
YYBhEVEABEC7sggxAFj/Af8BBCEAtC8oQnGv+AUwqYGOIAhMR0NW30kxNDEA
M0RgF/1PsiBpbmFsIET/UlcgZmlsZSABbkqQ7CDWsV0lX2Hmv9BBro4gAzYu
EDAjpyMZ/hLGcmVsZWFzZR8gdmVyc9MhKcMzBfjrc+i/+rMxMC8yNd8vOTkA
/vVCAWD/D0RhdGUgR2UDbmXQIOoi1rEXNbVCjs78j0GOIAY1MDAwM/yuwDKl
VW5pcXVlTyBLZXkoxEQVPNfPfunIU3ltYm9sy6e/U2hhcGUgoZVME2luJ8Xt
RTMe3wUwfzKfAGACMTe5l0vTST9jb24gSUQoxHgFuB3fL9/Lp1ZORQmIVAN5
cCfFqrKbh5DMuoNVmv70AgFgDEZNIEMOusBnb3IN1bey6/AOQAwE79pWRk1X
mM2lMuBvZx9DbGFzcyjExLLr8LlNTezTcQEAPosjNLrAoCzEpCxJbsigbvdl
dCw703MsUmVscGDkICxWdMMsaLMgkCaR1rHRsuvwD5+D/wQkDUCw4gFwkQSI
Af8BXQSg+dXm9YgBXSWABarj+FDoqQTUBro0wNMPBwIBtvGzwABVQQIA+gx0
GPsBmAG4UAUDM5QQErHxGXSmQZgB5ASOQucw+wEvYgIABtHzA73z3vH+k/II
YBpSZXBvA3Np0iEJjlRD12xBPbVCsQQrcj9A2PYN5N3wBQ7d8ANiBVVmwmK0
8FVCsK0XjxJBPVlxAgVAAwFJwOj2UQf+UfEyJTKYPwSqNHf+CYn3FJKY8wNC
3fEBAynkvfJM4YhI1v/o9/VCBwhgD/r4ZXEUCXoTUT8AOAY7REgPWgIsdGYP
2hNrHziQBkNEoA8D/iyNtD3xAMOBeVDDgRi9XSXzMJWG21MBVIdvfGAoIUBV
9UM6I2V/h2UAaafUHV8vX5OIlHCTiFrCJDt+UCcAMrIyG3G8X2EAAdwx4rFE
5fyPQXlQaknsCWsk/yhOt3N/DifEAyK9fxcBAABAnJn08PclGUDy89kSQEA1
mvTyKQME2SIDBfnwrg4DEkBQ5/SA6/AB98ADFuvwAgR1Au8AAGAg6PPgPwVd
/jcCBXUDPwsaOAHrAnQ+AQXr8CD9/5p0Ae9gBQN0VAFuDwCTAgBpB1kMAYMH
QwckTuvwAwIGMQExAQTRAWUJMQECiAHq8QkAYwErAwPRBgXbBgNlvOvwQOb1
8veamQYA9yUpQAQD2SJABP8ACABvH5AXAEkB6vEaAhnr8B8AFuvw/wICdQIA
AGAg3ujz8D8F/jACA3V5AzgLKQECAHIJKgFbAgA7BAAAWgQBYgN1A2kJEOvw
AwIG6/AqYwIAjgIDlAYBf4EBAABAmpn08P8lGUBA5ziO4/84jgPAQOnPlj/j
uCsgQED/8P/xdUAEBBAMBfM/UOf06YDr8O/wL+vwAgJ1b0wAAGDu8QAt8PDv
YggAcurxAwfA1wWBAuvwCfDwgEHW8PD+GzgBAz0CdR/WPwCALl0GKTgBAHDd
Bef0CQDAhwcBwFuAC/Dweg59BgGHD6qZDhY4AQRxAiDo8+CbPwXSAwV13gDd
CRpWUAECBuvwDDEBBAUWVQP/AgMFFgW9B0A4AWcGdAc/ALEBdAg7FNuAIvDw
ohjr8KAN3uvwYgEAo6AAAJPOWhATkHQFED0SBf69R+vwMhzHcfPwrOE/8v8E
BujzFQTgPyC+IQD////vQejzAQEQ3PD9////AQALAAAAAgBgATAA/t1F3P8A
ABrr8AMBtQbr8Azr8AECCQYDKgMCAwkGAAkGAfUv6/Ag4/j+////1wAAAerx
GOvwAgXzcAXr8AQB8APAgB8fAABA/r1x6/D9////8vH+3Pf04vkBAArr8AIA
32AAAP5JEQEBYP8/Q29weXJpZ/9odCAoYykgMv8wMDEgTWljcv9vc29mdCBD
b/9ycG9yYXRpb/9uLiAgQWxsIP4mAnMgcmVzZXI/dmVkLgD+GAAAANAAAAAA
AAAAAAAAAAAAAAAIAAAACAAAAAAAAACbAAAAFDcmECYxAACVAAAARwCYAAAA
hDYmELsxAABwAAAARwCcAAAAxDgmECsyAADvAAAARwCHAAAAFDkmEBozAAAn
AAAARwCnAAAARDQmEEEzAAARAAAARQCEAAAAdDUmEFIzAAAhAAAARwCkAAAA
ZDkmEHMzAAAnAAAARwCjAAAAnDsmEJozAABoAAAARwAAAAAAAwAAAAEAAAAC
AAAABAAAAAYAAAAFAAAABwAAAP+MIgAAAQAJAP8AA0URAAAGAPXG6fIF6/AM
Ao8X624fBAcH6/AQBAF08fAeAQPr8B4ABOvw7wQBDQAYAfwCAeTn9CwBLToA
9PAA+gLi5PciQQTy8k0ABgBB8lMMAkEGNAMAAP//lf8/BgMrAgZhAP7xJP8D
YQCtBHMRJf8FqRLABcYTYP8GxRQjB6EV8P8HVRbMCNcWqP8JNheYCm0Xfv8L
bRdfDEoXT/8N+hYmDm4W7v8OuhW2D94Uav8QuhVGEW4WE/8S+hb5EkoX7v8T
bRfFFG0Xpv8VNheMFtcWbf8XVRY1GKEV8/8YxRSdGcYTLv8aqRK6GnMRVf8b
mxEEHIwRqf8cXxFOHfsQ5P8dahBXHrEPxf8e0A4BH9sNOP8f1wxMH8kLOP8f
sQoBH6gJxf8euAhXHuYH5P8dKAdOHZwGqf8cKQYEHPcFVf8b7QW6GiQGLv8a
5ASdGb0D8/8YuQI1GOwBbf8XLgGMFrEApv8VTQDFFCAA7v8TIAD5Ej4AE/8S
nQBGESQBav8QzgG2D6AC7v8OzgEmDiQBT/8NnQBfDD4Afv8LIACYCiAAqP8J
TQDMCLEA8P8HLgEjB+wBYP8GuQLABb0DJf8F5AStBCQGA/8E7QVZA/cFtP8C
KQYUApwGg/8BKAcLAeYHne8AuAhNvxAlALH+vRDJCyUA1wxN+wDbsRDQDgsB
sfsPg58QFAL7ELT/Al8RWQOMEQOHBJsRrAFCBSwF/vElAKkPuw/ND98P8Q8D
HxUfJx8AOR9LH10fbx+BH5MfpR+3HwDJH9sf7R//HxEvIy4wAWQJVJABWgUE
KwLwewAMQSL/BABmD+wQNgg/LAg2FywI/jHMPeEebQ/vMuwzggl/f3/oPwbs
M6ABDqUCBQBq/wY0CvEGsgnUfwqyCU0KNApmQRAwKTRFMAFeQSVjT3VGMAHO
fg2/v79LT11ILwpLUgrmQe11QO5BL3lPcItO5k+uT4gDpaWlyU/+XUZSCvIK
1ApmDmVQsglSc0BiUfhPjEv4Yl90UzBfAADY2Nj8R19dRm8G8QbYBn+NBrsK
jQZSnUAA4FF2X4xL4F/yU65fxE9YTXkMG1BgYewGagZoYYEMdV+LTmBvKG8+
X0xvu68KiAZNnUBNl2C7BwqjCdxhcm+MS9xv7mP4qm8+b1hLegXYCxr/BhAL
XAoQC7wHCdgLWnHwb4xLWn9scwAofzp/TH+Sf3B/gn/ef6Z//LxvWEvBCQAM
Vwr/VgtXChULwQkN02GAAAzsf4xLVo9ogwAkjzaPSI+Oj2yPfo/aj6KPlLh/
WEt/DYDB5XAIkX8BBVyR6n+CbVKfHo8snz6fAISfYp90n9CfmJ+GBd4zuJ9+
YEPzCVAHyQZQoW+oCfMJWKFQBzAt4JJFTq9gozABBAEUApjXChwJBAETm6Dk
CcTMP1QLBe02MCmYD2EA/24H9AhzBw0J/4cHJgmWBz8J/6AHTgm0B2IJ/8MH
ZwnXB3EJ9esRsP8RsBMIcQn/IghnCTYIYgn/RQhOCVkIPwlVaCmwfCWwiyGw
mh2wVbMdsMcdsNEdsOohsP3+JbANCU4JHAl/PwkrCSYJOlOwd0QJ9Cmw9Ahd
ZbD1bGWwdkuwhQngCP+UCcwImQm9CH+eCakIowmQh7BVfIewaIOwT3+wO3uw
VSx3sBhzsA5vsARrsF0EKbAECESpsDoTsH8rCdIHHAm5+aD/qgf+CJYH6gh/
kQfRCIcHx9GwVbPRsJrRsIvNsHzJsP9oCKoHWQi5B1VF6bA2ybAizbAT0bBf
/weHB+sBwNcBwP/DB5EHtAeWB9egB6oRwLkBwNIHfXMDwG4HBAhfJcD1VSXA
RiXAPAcOCP8tBxgIHgcsCH8ZBzsIDwdPQ8BVaEPAfEPAkEPAqT/AVb07wMw3
wOAzwOovwDX0K8D0J8D0CPShMC8AQiP0rwa/GL8qvzy/Tr9gvwByv4S/lr+o
v7q/zL/ev/C/AALPFM8mzzjPSs9cz27LEk/gJE/KozxPxKlaScoUNP8KURWy
CTQZsh8JrRg0Cmzh5JvKo8COSWzvrE+qn1jvnuEvCguyGOzh7Xvg9OH2TY7v
8OrvKl+uj9bvBQCyGN/yCjQZZmvwsgkBsnngaPH+74xLaP+oX7pf/lT/BQDP
FPEGOP8VjQYbGY0GsgcY8Qbm8Xz/jEvm/yZvyMTv0v+e4Qwh8GYB7AYDyhRu
AXBtCA9kD6RvQv/+UA8FABsZiAatevPwrZ0AGxmjCeIBwHgPjEviDyJ/Pg/O
DwUA69oT5nAU4nAYEAsPHBjYC2AR9g+MS2AfABavOh9MH5IfcB+CH94fph/8
vA/KHwUAIRgADP+3GFYLtxgVCwchGNNnIOaNAC9cLxqfADYvSC+OL2wvfi/a
L6IvuB8uxi8FAN8TICHrEA4xA98TYjHwH4JtWD8kLzI/AEQ/ij9oP3o/1j+e
PzavYEO/UxhQBykVSEGoBwlTGFBBYK9ypUZPjK8bfBegpUQYqq+8r86v/uCv
YQDOFfQI0/8VDQnnFSYJ9v8VPwkAFk4JFP8WYgkjFmcJN68WcQlLCVBfCVBz
qglQggVQlgFQpf1Aua8WPwnI/UDcAVDr+gVQ+glQExdxCSf6OVAxOVBKF2cJ
Xt8XYgltF87AFz//CYsXJgmaFw2/CaQX9AiuXVC9+l1QzF1Q1hfqCOX/F+AI
9BfMCPn/F70I/hepCAOrGJB/UHx/UGh7UE+qd1A7c1Asb1AYa1AO6mdQBGNQ
BF9QBAik/qFQmhfrB4sX0v8HfBe5B20Xqv8HXheWB0oXkb8HMReHByfJUBP2
yVD6Fp7QFpEH3P8WlgfIFqoHua8WuQel4VCW3VCCqtlQc9VQX9VQS9VQN6rV
UCPZUBTdUADhUPb/FbkH5xXSB9P/FesHzhUECL/qHWC1HWCmHWCcFQ7/CI0V
GAh+FSz/CHkVOwhvFU+qO2BoO2B8O2CQO2CpqjdgvTNgzC9g4Ctg6monYPQj
YPQfYPQI7EEAeM+Kw+xP/k8QXyJfNF9GXwBYX2pffF+OX6Bfsl/EX9ZfAOhf
+l8Mbx5vMG9Cb1RvZmvgGO8q7zzvTu86SUoNtP8R0Q0yEbQRMgMRLWuAZIHq
P2RLZI92g8ikP7Y/Vo2vbYDkgW0SC0oN7IGvd4+JjuSPrI/8ti/QjzIRchK0
ERnma4Keg3IS9o9kS2Cf8HKTLp/G/zhLTw1xDv+4DQ0OmxENDg8yEXEO3pF0
n2RL3p+Q8JOsn8KPVo2MbYBeoWwXDkoNZqGM9Y+Jjl6v+CavPJ9Kr5sRCA4t
uuuQLZWgmxEj5aAIgPGfY0zar+yjqK88r8g7Wv8MWBP6DJASPH8RkBKcEFgT
WLEA7q9kS1i/arMmvzi/Sr+Qv8Buv4C/3L+kv7qvyDuhEP+AEzcR1hI3ET+V
EqEQUxNUweq/APw7VM9mwyLPNM9Gz4zPas+gfM/Yz6DPtr/IO18LwKEM47AG
0V8MWtHov/o9UN8AHM8q3zzfgt9g33Lfzt+W3/wuT9Az0xDQDqkNXkDhKBHT
EEjh0O2q8P45Pu9Q44pHGBL8Dx6YQxgSxBCiT7RPxk/+2E9hAE4OdBBT/w6N
EGcOphB2/w6/EIAOzhCU/w7iEKMO5xC3rw7xEMsB8N8B8PP+AfACD+cQFg/i
/xAlD84QOQ+/qxBIGfBcFfBrEfB6rw/xEJMt8Kct8LGqLfDKEfDeFfDtGfD8
/h3wCxCmEBoQjb8QJBB0EC5V8D36VfBMVfBWEGoQZesQYF3yeVvwfhAp7xCD
EBB38PwPg/8Q6A9+EM8Pef8Quw90EKwPZf8QmA9WEI4PTK8QhA89mfAumfAk
+pnwGifwCxBSD/z/DzkP7Q8qD97/DxYPyg8RD7GvDwcPp8Hwk8HweqrB8Gu9
8Fy58Ei18DmqsfAltfAWufACvfDzrw4HD9/t8Mvt8Lf+7fCjDhEPlA4W/w+A
DioPdg45/w9nDlIPUw5rvw9ODoQPPxUANfoVACYVABwOjg8N/w6YD/4NrA/5
vw27D+8NzzMA6PozAPwzABAQ7w0p/xD5DT0Q/g1M/xANDmAQHA5qKxAm5eA1
5eA/5eDk4QBwb4Jj5O/27wj/Gv8s/z7/AFD/Yv90/4b/mP+q/7z/zv8A4P/y
/wQPFg8oDzoPTA9eC96c1ScB//8cgSYG/w8AMQBDb3B5/3JpZ2h0IKkg/zE5
OTYgTWlj/3Jvc3lzdGVt/3MgRW5naW5l/2VyaW5nIENvf21wYW55AA8VJH8T
AEFsbCBSIyH/cyBSZXNlcnY7ZWS75AEAA6vkAAEPcUDr9On26fIBABbr8P8C
AHUCAABgIHbm9QX+BgIBdQMOC+1A6/GamfTwJSlA3O7x6fIBABbr8AIAv3UC
AABgIOjz8Hc/Bf4GAgF1Aw4HDwAABf7tQOvxmpn08CUpQH7y89kiQAEAFuvw
/wIAdQIAAGAg3ujz8D8F/gYCAXUBAw4L2UDr9Onzmpn98Nki70ABABbr8AIA
dd8CAABgIOb1Bf7uBgIBdQMOB/A/BQH+cUDr9On26fIBABbr8P8CAHUCAABg
IHbm9QX+BgIBdQMOCxgAAACcAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAAAAAA
iQAAAKwfBRBVQQAAAwAAAEUAigAAAORfBRBYQQAAIgAAAEcAiwAAAGQyDxB6
QQAAMQAAAEcAiwAAAIR2DxCrQQAALgAAAEcAiwAAAKx8DxDZQQAALQAAAEcA
iwAAAOSPDxAGQgAAIgAAAEcAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAA/RTj
+FdXVyBDbD91c3RlcgD9M93+ECcAMhzHbXEEALw/6vEBgP3xruvwAwcG6/AM
DQECGAAAABoAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAAAAACUAAAAXGIREN1C
AAAiAAAARwAAAAAAJWbr8EDm9fL2IPz/Dg73AQAu6/ACAHAF/isCAADwA8Ci
G7br8KAP6/CATPDwozUM6/CTRgKQ/hgAAAAaAAAAAAAAAAAAAAAAAAAAAQAA
AAEAAAAAAAAAngAAAMxAJhA1QwAANwAAAEcAAAAAANXY6/BE6/CI6/AEADUF
6/D/AA//Av30FAmq5PcB6/AG5/Ro6/Ak/zMmEAI0AADQ7uvwVAAM6/DAlFLr
A9JHAINQAEYAbP7r8Nw8JhAoQgC7AKTr8FUADuvwlK81JhDMawAR6/BG+wBp
6/BkYBEQ/+prADZLAmT38UAmEANsQ5AFJAHV7uvwSOvwmuvwQAD3FQAC6fKf
DlYA9Qjr8P8MAAAAlbn/WolavXadAAD9Af30AABjadtCrxZa8cPi+Qfn9Eb+
6/BcXSUQeiYAuwDK6/DWACPr8Nz/miUQRCcAABL1AUABCuvwRG4lEJ9WKAAA
Xz8CZgGkz1MlELVvAGEAAET7ACvr8HR/JRC26m8AQj8CR+vwDG8l6xD4bwAu
CADWAE7+VQEyJhCiQwAADYLr8FYAVULp8hHr8BLr8BPr8FUU6/AV6/AW6/AX
6/BVGOvwGevwGuvwG+vwVRzr8B3r8B7r8B/r8AEg3PAAAAAAAACldOvwNO/0
6vEQ6/ABtuT3IUACAyZA4/gC9B8E6vEL6/ActigQX9NEAAA46/BDLQL/lLco
EAtFAAAFBuvwQenyAgFVQunyEuvwE+vwFOvwVRXr8Bbr8Bfr8Bjr8FUZ6/Aa
6/Ab6/Ac6/BVHevwHuvwH+vwIOvwASXc8AAAAAAAAKV06/A07/Tq8RDr8AG2
5PchQAIDJkDj+AL0HwTq8Qvr8Ey3KBBfU0UAADjr8EMtAl/8tCgQizcABuvw
AUHp8gIBFAAAAEIAAAAAAAAAAAAAAAAAAAADAAAAAAAAAEAAAABssigQEUUA
AEIAAABSAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABktigQkUUAAEEAAABSAAVI
6/A83P8EDxYPKAoFSOvwPNz/BA8WDygKFAAAAEIAAAAAAAAAAAAAAAAAAAAD
AAAAAAAAAEUAAACktSgQJEYAAA0AAABSAAAAAAAAAAAAAAAAAAAAAAAAAEUA
AADUtigQMUYAAA0AAABSAJWq6/Ao6/B23P/h+gLq6/AF5/Qe6/C8yCG/ELsl
AACs6/BT+wDJ6/DEryUQZ68mAAAT6/BCIQLc/1wlECREAACv+i8CP+vwFLUo
ENJvRQAAUuvwUABPABsAXF0APkZiBRIFFAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN3j6/ABABXj+Pz//9z/BAXqAgQAuf8K
AOb18D9VGAJJe0CqIAH6SkAB3P9c8fDw8QEAZ+vwCzkEYE8PYQ9zD4UP5fY9
Ko8PDDQJwA8AAH9SAQAAAgAd6/D9COf0IP////j/D+MCAgDv8AkCEQ8jDwA1
D0cPWQ9rD30Pjw+hD+X23QLd/kQBCuvwQzr/XFByb2dyYW3/IEZpbGVzXE3/
aWNyb3NvZnT/IE9mZmljZVz/VmlzaW8xMFz/MTAzM1xTb2z/dXRpb25zXE7/
ZXR3b3JrXEf/ZW5lcmljIE3/YW51ZmFjdHX/cmVyIEVxdWn/cG1lbnQgKFX/
UyB1bml0cykfLlZTUwB/RAEAAAIAHevw/Qjn9CD////4/zfjAgLx8AAA7/AQ
DwAiDzQPRg9YD2oPfA+OD6APcOT3CgHo8w4FxAEK7/D/QzpcUHJvZ3L/YW0g
RmlsZXP/XE1pY3Jvc2//ZnQgT2ZmaWP/ZVxWaXNpbzH/MFwxMDMzXFP/b2x1
dGlvbnP/XE5ldHdvcmv/XEludGVybmX/dCBTeW1ib2z/cyAoVVMgdW7/aXRz
KS5WU1MBAH9DAQAAAgAd6/D9COf0IP////j/H+MCAgAD6/Dv8BAPACIPNA9G
D1gPag98D44PoA+65PcC3f5EAQq9AEP/OlxQcm9ncmH/bSBGaWxlc1z/TWlj
cm9zb2b/dCBPZmZpY2X/XFZpc2lvMTD/XDEwMzNcU2//bHV0aW9uc1z/TmV0
d29ya1z/TG9naWNhbCD/U3ltYm9scyD/KFVTIHVuaXR/cykuVlNTAH9DAQAA
AgAd6/D9COf0IP////j/H+MCAgAE6/Dv8BAPACIPNA9GD1gPag98D44PoA96
5PcC3f5EAQoD7PD/OlxQcm9ncmH/bSBGaWxlc1z/TWljcm9zb2b/dCBPZmZp
Y2X/XFZpc2lvMTD/XDEwMzNcU2//bHV0aW9uc1x/TmV0d29yaw0V7yBEZXbz
AHMgKP9VUyB1bml0cz8pLlZTUwB/OwEAAAIAHevw/Qjn9CD////4/x/jAgIA
Bevw7/AQDwAiDzQPRg9YD2oPfA+OD6AP+uT3At3+RAEKBAD/AEM6XFByb2f/
cmFtIEZpbGX/c1xNaWNyb3P/b2Z0IE9mZmn/Y2VcVmlzaW//MTBcMTAzM1z/
U29sdXRpb27/c1xOZXR3b3L/a1xUZWxlY2//bSAoVVMgdW7/aXRzKS5WU1MB
AH9GAQAAAgAd6/D9COf0IP////j/H+MCAgAG6/Dv8BAPACIPNA9GD1gPag98
D44PoA/65PcC3f5EAQoFAP8AQzpcUHJvZ/9yYW0gRmlsZf9zXE1pY3Jvc/9v
ZnQgT2Zmaf9jZVxWaXNpb/8xMFwxMDMzXP9Tb2x1dGlvbv9zXE5ldHdvcv9r
XFBDIGFuZP8gUGVyaXBoZf9yYWxzIChVU/8gdW5pdHMpLg92c3MAf0kBAAAC
AB3r8P0I5/Qg////+P8f4wICAAfr8O/wEA8AIg80D0YPWA9qD3wPjg+gD/bk
9wKA3v1EAQoG/wAAQzpcUHJv/2dyYW0gRmls/2VzXE1pY3Jv/3NvZnQgT2Zm
/2ljZVxWaXNp/28xMFwxMDMz/1xTb2x1dGlv/25zXE5ldHdv+3Jr1wBpbnRl
cv9zIGFuZCBTY/dhbm4bEShVUyD/dW5pdHMpLnYHc3MAXwQBAAAo6/DQ6vEn
BeYC3P/o8wgTBOrx/Srr8HS2DxBKR9cAAE7r8EMhArzc1yYQmCsAuC8GHKp/
JhBQSAAArS8GXzyHJBD9TwCoLwb/hJUkEKVJAAD9oC8GDJgkEEVK9wAAoS8G
TJkkEPnmhQBSB5yaJBCTj0sAAK4vAurx7/AAov3xA+vx+PHr8Abr8AcABABV
Fevw//LwI+vwUOjz/Pr08fIAAA0CBCju4PvwP1UjAklAqg4rAfpKQNz/4vn2
8erx1Ubn9ATr8ETr8AEACVRlAerxA/HyeQ8LAQcF0JAH4PthAerxaG0GAAC9
JOvwAgBUGOvwDNDf/MABwAHm9QHFAgAA9ZLj+DDvAAMAVUHe6fJAVUBB7wEA
gLdbQD/o88A/HBW/GAoTIAAuFCRA4gpMH14frHAfZgH3A2ABEcUBA24cFhP+
nHEBDRC9BCkBjBKoExalFhelFssBqqgTGaUWG6UWHKUWHaqlFh6lFhqlFh+l
FiAqpRYhpRYipRab7ATq8WWRcQJVMgZNLfA/Xy0YVCgBBesCzwOkEvMB7gK7
AQS4EQIEdfMAYIwcIenyBf6kEuMCnCIFJqIiBXXAAKwpt/AE6vGNT0cjEBBx
Ly4UAzgIeQQFPyI/AfMPb+wIhBwhyAQI3/zzAeIl6wWoiuP4TUcj/fLwjjGd
AwFm7wABAY4x6wL8C4sU/wBgB05ldHdv33JrAP4KxQEBYBcAAP6NEgq1OHsx
PiXRUYg/mj+sMBOwMwlD/29ubmVjdG9ylL45D0IKFUpl8AT0EYwCxQd03/z0
EfQR5w3AAWEBVQXr8Abr8AdUNAnr8KjAMawwzgIN6/AO6/APCOvwpBGNERLr
8A9B7vG4EQTCEcsBFOvw1hEIIeAR6hEhg+P4wDEHEO8BR+ny5kEAPiXyRMAB
/UfiJfJEhkH9RwjjBfJEjkFI/kawBfJEVzEAVFeGQe5IlkFUV4pB7kjAMQBU
V45B7kieQVRXVzXyRM8BAFRXlkHuSKZBVFfAMe5IqkEAVFeeQe5IrkFUV88F
8kSkEQBUV6ZB7kiNEVRXqkHuSLpBAP1HrkHuSNJB/UekEe5IuBEAVFeNEe5I
whFUV7pB7kjLAQBUVw9B7kjWEVRX0kHuSAghAFRX7vHuSOARVFe4Ee5I6hEA
VFfCEe5I9BFUV8sB7kj+EQBUV9YR7kgSIVRXCCHuSBwhAFRX4BHuSCYhVFfq
Ee5IMCEqVFPJ4AigxQJQYQGNESSNEe8BESYhJiURMCEwIQaGQREl6/BtgbpB
12WAjwCSj6SPto/Ij+f0/UHvAVcxAGUM71M+JfLxhkF8D4gH5PcAVzW4BYpB
EgHIBLplqAmYVdC8BYJFOiHm9XlHJD9+/+sa/2tDQEBm/qGQpgtRQEBfWP/C
PV96JUBAyK3MtJB0GaiVFbGVCVVAgyoPByMCPiUHmyPEi0IIIgPilvwx75MB
p8jgCK4T7TIBnUKzMAEwBwD+hK0IHBEHEHoa6vGxLrkizwFhAQECXqYDkKZB
YqKlQmKiAZ4Re1VF/kckJMreBNGWJvdAQcDGlEBxHMd+rKDxP0DjOI61oLUD
qqXhs6XzPwEFgADo8z9B7JXqEcgEsAXnCT4lKP9F6kzzAU7p8m2lFsxDoMgE
SL88Jy+B5vU4cQJUAGEBukG6QRQSD0EPQ89E0kEQ4wLu8e7xsAJnc6Y8v06/
AmC+k3KznkG4EbgRFBLCEQDCEZciywHMFdUS1hGwAgghAAghe1LgEeARmFLq
EeoRtVIAZkVXMv4R/hHvUhIhEiEpYgAcIRwhzwISAXtVMgHIAAm52ub1ZKGR
GiKylBVACBmfJaHxA3CHREg/Wj9rTEWq4/gvRyS8lrWkwLufhQfhkP6LAxfR
PiUj1SYom6XFlTzfCU/XcYtE5M8U9s9rTJnj+JBHLXbWTi5LAAFS0wEcIKIi
AKgteqIiAc4p4D8F/ggj1l6vAQMIIgFL7wEDgNbRPiXi1aqc+d8L7x3r8DBC
4C/vQedyrwEBX+Pu7wMBASyxwtVUUWkEgkMFuYDy8YpBws8lne8F6wVBmSwA
xQcuda4maZzvAYJF8wGEmVqSo1d+30Biq5XNtJVA7PPCkPXzy5fXoe8AmDso
0T7T9E4v7P4EsdChFgNpDT0jWQLWEe8AnhHiJeqSpWC9leA11Sf1gq8cx8gR
MtZAlAQBADLVza4QoTilHK8up3tVrhMlV8q+bEE0ikEwqNICclDDvYpBqv16
TYltnAPmMumKOyias1ExDwAAiwDfKHwV7PaNG0FVox719ZUTADilfB7bG3tV
mrNML/pEW4EA6o/uVEFVC59X/y+fQZ9Tn/hln3efiZzoaY8waIOhMp+fsZ/D
n9WaVCUHCDW29JUzNgE9Ng+v2A8zrwhFr1etSucBSoF2o8M2ha8Aatmjr7Wv
sA/Zr+uv/a8PvwDyRHixLL+8v86/Yr90v4a/AJi/qr+PT6FP4L/yvwTPFs8A
KM86z0zPXs9wz4LPlMVUJQCkz7bPE2nJJdzPrd+/3xLfACTfNt9I31rfbN+N
b5DfNG8ARm/G39jfje8gL7Hvw+/V7wBE7bg4X+y4OHnv6N9Lf11/AB7vgX/l
5sM/APU/jxrzyUEAJP828GYTP/+hj2P/df+H/wCZ/6v/vf/P/+H/8/8FDxcP
ICkPOw9ND18PcQ9khA+WDwCoD7oPZj/eD/APAh8UHyYfAPmPSh9cHZcxcB8e
L5QffgIAqx+9H/mp2x/Jr/8fO78jLwD1gzsvTSTeVVwvqI+AL5Iv8KQvti/I
L9osDEu45wdLr07wLwI/FD8mOt5VEQf2gkE5hMYBjsZgPymvUIQ/lj+oNBL2
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
DRUFHiYCUS0BKQENFRgGiAIBSCoEKQE9D+8v9SL28QM9CPYMiQz28SS8FwUN
GQ8rAwWb4/hF9xONH5Q/pj/f/HWGChgu2AMYADMiOukBYwIpABUqAmIAAPti
M/kxeoMAAEDr/oWFCCPYAzB6FD+uR+F6hD9GJIAHAQ0sACpCAQAAAEd1aWRl
AAEAAABUaGVEb2MAAQAAAFBhZ2UtMQD1E+vwAevwR2VzdP91cmUgRm9ybQdh
dAABAAAAUm93XzEAAQAAAE5ldC1Ob3JtYWwA9RPr8AHr8E5ldC3/VGhpY2sg
bGkHbmUA9RLr8AHr8E5ldC3/VGhpbiBsaW4DZQABAAAAQmxhY2sgZmlsbAD1
FOvwAevwTmV0Lf9PcGFxdWUgYg9hY2sAAQAAAFdoaXRlIGxpbmUA9RPr8AHr
8EFyaWH/bCBjZW50ZXIHZWQA9RPr8AHr8EFyaWH/bCB0b3AgbGUHZnQAAQAA
AEFyaWFsIHRvcAD1E+vwAevwVGltZf9zIGNlbnRlcgdlZAABAAAAVGltZXMg
dG9wAPUT6/AB6/BUaW1l/3MgdG9wIGxlB2Z0AAIAAABSb3V0ZXIAAwAAAE1h
bnVmYWN0dXJlcgD1EuvwA+vwUHJvZP91Y3ROdW1iZQNyAAMAAABQYXJ0TnVt
YmVyAPUX6/AD6/BQcm9k/3VjdERlc2Nyf2lwdGlvbgADAAAARHJ3ZmlsZQAD
AAAAUmVsVmVyc2lvbgD1EuvwA+vwRGF0Zd9HZW5lcvfwZAADAAAAdmlzU2hh
cGVJRAD1E+vwA+vwdmlzUP9yb2R1Y3RMaQduZQADAAAAdmlzSWNvbklEAAMA
AAB2aXNFcXVpcFR5cGUA9RLr8APr8HZpc0b/TUNhdGVnb3IDeQADAAAAdmlz
Rk1DbGFzcwADAAAAdmlzS2V5d29yZHMAAwAAAHZpc1ZlcnNpb24AAQAAAFJv
dXRlci4zAAEAAABSb3V0ZXIuNQAAAAAAAAAAAAIAAABXV1cgQ2x1c3RlcgAA
AAAAAAAAAAAAAAAAAAAAAAAAABgAAABeBAAAIwAAAAAAAAAAAAAAKwAAACsA
AAAAAAAAMwAAAKT0DxCqbQAACgAAAEUAMwAAAMT0DxC0bQAACwAAAEUAMwAA
AOT0DxC/bQAACwAAAEUAMwAAAAz1DxDKbQAAGAAAAEcAMwAAADT1DxDibQAA
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
6/BVIOvwVAsSrBEQsxUWqRj7AREQ0+vwmOvw1vsAJuvwxFIPEGvq8/AhBxIa
6/AcUw9bEIzz8EcJPhEb6/D/UOtpA9MKAAD1lwcSHGcR920DavIaAB0HEoQR
lLMPEN+QRgAAYuvwVgB9JOvwPLQPEPKTEK54EVQAPevw3KEQDvlHphVOEXy1
DxAq9LcQGBMp6/BsuQ8QX0FMAACSlxIn6/D/LL8PEK5rAAD1aBkSMevwtN0P
EHMWbIwQ8/DWAP/r8HekPQ/pBmAAMuvw/8ztDxA8cAAA3dIKAFQAP+vw1Pd/
DxDLdAAAKvPw91QARK8RABAQDwF2NiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=


--0-793066149-1240463576=:97846--

From prvs=357b5a555=acee@redback.com  Thu Apr 23 02:26:43 2009
Return-Path: <prvs=357b5a555=acee@redback.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 83AC93A71D5 for <ospf@core3.amsl.com>; Thu, 23 Apr 2009 02:26:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.11
X-Spam-Level: 
X-Spam-Status: No, score=-2.11 tagged_above=-999 required=5 tests=[AWL=-0.112,  BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_44=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EVTyTY82sTGo for <ospf@core3.amsl.com>; Thu, 23 Apr 2009 02:26:42 -0700 (PDT)
Received: from mgate.redback.com (mgate.redback.com [155.53.3.41]) by core3.amsl.com (Postfix) with ESMTP id A1C323A6EDD for <ospf@ietf.org>; Thu, 23 Apr 2009 02:26:42 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.40,235,1239001200"; d="scan'208,217";a="1147108"
Received: from prattle.redback.com ([155.53.12.9]) by mgate.redback.com with ESMTP; 23 Apr 2009 02:28:00 -0700
Received: from localhost (localhost [127.0.0.1]) by prattle.redback.com (Postfix) with ESMTP id B4F0FCE5F7E; Thu, 23 Apr 2009 02:28:00 -0700 (PDT)
Received: from prattle.redback.com ([127.0.0.1]) by localhost (prattle [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07418-04; Thu, 23 Apr 2009 02:28:00 -0700 (PDT)
Received: from [IPv6???1] (unknown [155.53.154.39]) by prattle.redback.com (Postfix) with ESMTP id 26F65CE5F7D; Thu, 23 Apr 2009 02:27:59 -0700 (PDT)
In-Reply-To: <243380.97846.qm@web8401.mail.in.yahoo.com>
References: <243380.97846.qm@web8401.mail.in.yahoo.com>
Mime-Version: 1.0 (Apple Message framework v753.1)
Content-Type: multipart/alternative; boundary=Apple-Mail-94-178675609
Message-Id: <1CE595DB-0B3E-4680-898D-6EFA347F7BBB@redback.com>
From: Acee Lindem <acee@redback.com>
Date: Thu, 23 Apr 2009 05:28:00 -0400
To: Pranjal Chakravarty <pranjalchakravarty@yahoo.co.in>
X-Mailer: Apple Mail (2.753.1)
Cc: ospf@ietf.org
Subject: Re: [OSPF] OSPF Multi Process ECMP Prblem
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 23 Apr 2009 09:31:42 -0000

--Apple-Mail-94-178675609
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=US-ASCII;
	delsp=yes;
	format=flowed

Hi Pranjal,

This really isn't an OSPF protocol issue. Rather, it relates to the  
RIB implementation on R2. If you are not pleased with the behavior,  
then you should take it up with the R2 vendor.

Hope this Helps,
Acee



On Apr 23, 2009, at 1:12 AM, Pranjal Chakravarty wrote:

> Dear all,
>
> I have one doubt regarding OSPF Multi-Process.
>
> R1-------R2-------R3
>
> In Router R1 there is a static route 10.1.1.0/24 ,I have  
> redistribute static into ospf in R1,OSPF Process is 100
>
> In Router R3 the same static route is there ,i have redistribute  
> static into ospf in Router R3 also.OSPF Process is 200
>
> In Router R2 ,there is two process router ospf 100 and router ospf  
> 200,
> Now when we do show ip route there should have seen two next hop  
> showing for the route 10.1.1.0/24 because it is learnt from both R1  
> and R3 via OSPF.
> But in actualy only one route is showing .
>
> My question is why it is not giving ECMP for the route though it is  
> learnt from two different ospf process.
>
> I am attaching one diagram and configuration for reference.
>
> Also i would be delighted if someone points to some useful link  
> about multi-procees ospf.
>
> Regards
> Pranjal
>
> Own a website.Get an unlimited package.Pay next to nothing.* Click  
> here!.<OSPF Multi Process ECMP problem.vsd>
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf


--Apple-Mail-94-178675609
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=ISO-8859-1

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">
Hi Pranjal,<div><br></div><div>This really isn't an OSPF protocol issue. =
Rather, it relates to the RIB implementation on R2. If you are not =
pleased with the behavior, then you should take it up with the R2 =
vendor.=A0</div><div><br></div><div>Hope this =
Helps,</div><div>Acee=A0</div><div><br></div><div><br></div><div><br><div>=
<div>On Apr 23, 2009, at 1:12 AM, Pranjal Chakravarty wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><table =
cellspacing=3D"0" cellpadding=3D"0" border=3D"0"><tbody><tr><td =
valign=3D"top" style=3D"font: inherit;"><div>Dear all,</div> =
<div>=A0</div> <div>I have one doubt regarding OSPF Multi-Process.</div> =
<div>=A0</div> <div>R1-------R2-------R3</div> <div>=A0</div> <div>In =
Router R1 there is a static route 10.1.1.0/24 ,I have redistribute =
static into ospf in R1,OSPF Process is 100</div> <div>=A0</div> <div>In =
Router R3 the same static route is there ,i have redistribute static =
into ospf in Router R3 also.OSPF Process is 200</div> <div>=A0</div> =
<div>In Router R2 ,there is two process router ospf 100 and router ospf =
200,</div> <div>Now when we do show ip route there should have=A0seen =
two next hop showing for the route 10.1.1.0/24 because it is learnt from =
both R1 and R3 via OSPF.</div> <div>But in actualy only one route is =
showing .</div> <div>=A0</div> <div>My question is why it is not giving =
ECMP for the route though it is learnt from two different ospf =
process.</div> <div>=A0</div> <div>I am attaching one diagram and =
configuration for reference.</div> <div>=A0</div> <div>Also i would be =
delighted if someone points to some useful link about multi-procees =
ospf.</div> <div>=A0</div> <div>Regards</div> =
<div>Pranjal</div></td></tr></tbody></table><br>       <!--6--><hr =
size=3D"1"> Own a website.Get an unlimited package.Pay next to =
nothing.*<a =
href=3D"http://in.rd.yahoo.com/tagline_ysb_website/*http://in.business.yah=
oo.com/"> Click here!.</a><span>&lt;OSPF Multi Process ECMP =
problem.vsd></span><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; =
">_______________________________________________</div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; ">OSPF mailing list</div><div style=3D"margin-top: =
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a =
href=3D"mailto:OSPF@ietf.org">OSPF@ietf.org</a></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf">https://www.ietf.org/m=
ailman/listinfo/ospf</a></div> =
</blockquote></div><br></div></body></html>=

--Apple-Mail-94-178675609--

From ogier@earthlink.net  Sun Apr 26 17:18:10 2009
Return-Path: <ogier@earthlink.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 287503A6A7A for <ospf@core3.amsl.com>; Sun, 26 Apr 2009 17:18:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.396
X-Spam-Level: 
X-Spam-Status: No, score=0.396 tagged_above=-999 required=5 tests=[AWL=-2.097,  BAYES_50=0.001, FRT_ESTABLISH2=2.492]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2sLvc+h+7buC for <ospf@core3.amsl.com>; Sun, 26 Apr 2009 17:18:09 -0700 (PDT)
Received: from elasmtp-dupuy.atl.sa.earthlink.net (elasmtp-dupuy.atl.sa.earthlink.net [209.86.89.62]) by core3.amsl.com (Postfix) with ESMTP id 1DE163A68DB for <ospf@ietf.org>; Sun, 26 Apr 2009 17:18:09 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net; b=JV7bU1A8CK3FhlkTTj7234WbfjLCG4SiOVg6JSMO/eAi5QwAdyo62g5ZikoP9PUG; h=Received:Message-ID:Date:From:User-Agent:X-Accept-Language:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type:Content-Transfer-Encoding:X-ELNK-Trace:X-Originating-IP;
Received: from [66.81.222.155] by elasmtp-dupuy.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <ogier@earthlink.net>) id 1LyEZC-0006eB-Js; Sun, 26 Apr 2009 20:19:29 -0400
Message-ID: <49F4FAB9.4030009@earthlink.net>
Date: Sun, 26 Apr 2009 17:22:17 -0700
From: Richard Ogier <ogier@earthlink.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Anton Smirnov <asmirnov@cisco.com>
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net> <49EE0286.9070903@cisco.com>
In-Reply-To: <49EE0286.9070903@cisco.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-ELNK-Trace: a073897a9455599e74bf435c0eb9d478eae09f65131c9d1f561cbabf12b747d5765630d4d59d7bf8350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 66.81.222.155
Cc: ospf@ietf.org
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Apr 2009 00:18:10 -0000

Anton,

I like your idea of sending a checksum for a range of LSAs, to
increase the probability that the LSAs in a given range are in
sync between the two neighbors.  (This helps even if the
age field is ignored when selecting the ranges.)

For example, suppose there are 100 LSAs and each LSA has a 2%
chance of not being in sync.  Then the probability that all
LSAs are in sync is .98^100 = .1326, too low to result in
a significant overhead reduction.
Now suppose the LSAs are divided into 10 ranges, each with 10 LSAs.
The probability that all LSAs in a given range are in sync is then
.98^10 = .8171, resulting in a big overhead reduction on average.

The selected range for each LSA type can depend on how frequently
new LSAs are originated for that type, with a larger range chosen
if LSAs are originated less frequently (so that the probability
of being out of sync is lower).

This idea can be combined with the database exchange optimization
of RFC 5243 to further reduce overhead.  I.e., if the checksums
do not match, then RFC 5243 can be used to reduce the number of
LSA headers exchanged in DD packets by up to 50%.
Also, if the checksums do match for a given range of LSAs, then the
router receiving the checksum need not send the same checksum for
the same range of LSAs.

Richard

Anton Smirnov wrote:

>   Mitchell,
>   LSDBs may be very close but they are seldom EXACTLY the same. The
>thing is that change in adjacency triggers LSA [re]build, so depending
>on timing router and/or network LSAs may change by the time adjacency
>restores.
>   Also, in moderately sized modern OSPF network there is constant
>background noise of LSAs being refreshed. So again, chances that
>refreshed LSA arrived to one side but not another while adjacency is
>down are relatively high.
>   These considerations make precomputed checksums over large number of
>LSAs rather bad for the purpose.
>   If you want to explore venue of checksumming database exchange then I
>recommend to look for more flexible approach giving routers possibility
>to choose range of LSAs to compute checksum over. For example, if both
>routers support the checksum exchange then router sending DBD could
>specify the first, the last LSA and value of some kind of hash of LSA
>headers between them (LSAs in LSDB can be viewed as ordered sequence as
>per RFC 5243). In this way router preparing DBD packet may place start
>and end points of checksumming to avoid including into the range LSAs
>with ages around 0 and MAXAGE (because these are LSAs which are less
>likely to match between routers). So database exchange will consist of
>series of single LSA headers (the 'old' way) and large LSA sequences.
>
>Anton
>
>
>
>Mitchell Erblich wrote:
>  
>
>>Group,
>>
>>        General thoughts...
>>
>>        After a conversation about OSPF's standard database exchange and
>>how inefficient it
>>        is when two routers have large LSDBs and them almost being the
>>same, we concluded
>>        that the use of Checksums might significantly decrease the
>>amount of overhead and
>>        achieve faster convergence.
>>
>>            Moy first (I think) suggested the LSDB checksum support to
>>identify identical
>>            LSDBs.  Sometime later the MIB supported the
>>ospfExternLsaChksumSum,
>>            ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.
>>
>>            Thus, why not support the ability to have OSPF routers first
>>exchange
>>            checksums with LSA counts. If the LSDBs have more than XYZ
>>entries
>>            in their LSDBs, then the counts which are above specific
>>thresholds then
>>            support the checksum on each X count of LSA type. Only the
>>groups
>>            with non-matching Checksums would then go thru database
>>exchange.
>>
>>            Thus, before database exchange, support some form of triple
>>that
>>            as routers have almost the same LSDBs,   the checksum exchange
>>             would remove unnecessary LSA header exchange.
>>
>>            This, IMO, would also be a big win if say a DRother was
>>adjacent, lost
>>            adjacency, and re-exstablished it a short time later while
>>keeping a
>>            past snapshot. It could remove its own originated LSAs and
>>compare
>>            checksums..
>>
>>            In this scenario, within BMA areas, I think only DR /
>>DRother and BDR/ DRother
>>            need to be making this Checksum exchange..
>>
>>            Wouldn't the exchange of this data benefit each router
>>receiving the
>>            information and allow both routers to know the number of
>>LSAs to
>>            be possibly exchanged?
>>           
>>            Yes, a new capability would probably have to be added.
>>
>>
>>            So, the first question is whether the checksums are unique
>>enough with a
>>            count and type to determine whether that section of the LSDB
>>matches
>>            between two routers?
>>
>>            And then what savings would normally exist in this hybrid
>>database exchange
>>            and is it worth the effort?
>>           
>>
>>        Mitchell Erblich
>>
>>       
>>
>>           
>>       
>>_______________________________________________
>>OSPF mailing list
>>OSPF@ietf.org
>>https://www.ietf.org/mailman/listinfo/ospf
>>    
>>
>_______________________________________________
>OSPF mailing list
>OSPF@ietf.org
>https://www.ietf.org/mailman/listinfo/ospf
>
>  
>

From emmanuel.baccelli@gmail.com  Mon Apr 27 00:56:24 2009
Return-Path: <emmanuel.baccelli@gmail.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id DC0D83A6ABC for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 00:56:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.678
X-Spam-Level: 
X-Spam-Status: No, score=-0.678 tagged_above=-999 required=5 tests=[AWL=-1.194, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, FRT_ESTABLISH2=2.492, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PHRzVBqfdt1A for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 00:56:23 -0700 (PDT)
Received: from mail-bw0-f163.google.com (mail-bw0-f163.google.com [209.85.218.163]) by core3.amsl.com (Postfix) with ESMTP id E214B3A6955 for <ospf@ietf.org>; Mon, 27 Apr 2009 00:56:22 -0700 (PDT)
Received: by bwz7 with SMTP id 7so2117183bwz.37 for <ospf@ietf.org>; Mon, 27 Apr 2009 00:57:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:from:date:x-google-sender-auth:message-id:subject:to :content-type; bh=i+mvYNw06angkQP3OLJpVEhIg5uXGAbunbIteW00k6o=; b=dfhw00Q+ADY0be8dP3/MRQgLGxgr1CcXWsLohjE8khEfHz7rjhVTREj4CPxCqvDiWK ee2jkVZGBkKjdD5pPp4XRiqWLvgx5E7mWxVZQ0YsrjfXOZcOhsFydUBRkkvzC35liL0G YOKUJQpOOIUfqC7IeEbaIbLNu5/ZX2NZNu6Lc=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:content-type; b=uvN9Z8nbF9t6NIH3Y/SLN4gwrsaFO/+uxI2tvZEtcczrLPxH8Evj0DkCde2CIhMIMZ kv1Qa6ZbTKRyo47sDKZ+I9YCPhReZkJBDx52fYYGA4em8+wBBzsrxEbItc0HxU/lV1Ht jtSJHbOhOJTL7qIzhxzwWPNCPxe/dYUH/ANeM=
MIME-Version: 1.0
Sender: emmanuel.baccelli@gmail.com
Received: by 10.103.226.20 with SMTP id d20mr3072522mur.8.1240819062088; Mon,  27 Apr 2009 00:57:42 -0700 (PDT)
In-Reply-To: <49F4FAB9.4030009@earthlink.net>
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net>  <49EE0286.9070903@cisco.com> <49F4FAB9.4030009@earthlink.net>
From: Emmanuel Baccelli <Emmanuel.Baccelli@inria.fr>
Date: Mon, 27 Apr 2009 09:57:27 +0200
X-Google-Sender-Auth: 7ba6e05c89dffefe
Message-ID: <be8c8d780904270057gac5fa7ei9b3f366189949584@mail.gmail.com>
To: ospf@ietf.org
Content-Type: multipart/alternative; boundary=0016e6de17ad6d2615046884b3a8
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Apr 2009 07:56:24 -0000

--0016e6de17ad6d2615046884b3a8
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hi Anton,
yes, a similar scheme was studied a few years back, in this paper:
OSPF Database Exchange and Reliable Synchronization in Mobile Ad Hoc
Networks <http://www.emmanuelbaccelli.org/publications/WNET_2004.pdf>

Such a mechanism could indeed lead to interesting performance enhancements,
I agree with Richard.

cheers,

Emmanuel



On Mon, Apr 27, 2009 at 2:22 AM, Richard Ogier <ogier@earthlink.net> wrote:

> Anton,
>
> I like your idea of sending a checksum for a range of LSAs, to
> increase the probability that the LSAs in a given range are in
> sync between the two neighbors.  (This helps even if the
> age field is ignored when selecting the ranges.)
>
> For example, suppose there are 100 LSAs and each LSA has a 2%
> chance of not being in sync.  Then the probability that all
> LSAs are in sync is .98^100 = .1326, too low to result in
> a significant overhead reduction.
> Now suppose the LSAs are divided into 10 ranges, each with 10 LSAs.
> The probability that all LSAs in a given range are in sync is then
> .98^10 = .8171, resulting in a big overhead reduction on average.
>
> The selected range for each LSA type can depend on how frequently
> new LSAs are originated for that type, with a larger range chosen
> if LSAs are originated less frequently (so that the probability
> of being out of sync is lower).
>
> This idea can be combined with the database exchange optimization
> of RFC 5243 to further reduce overhead.  I.e., if the checksums
> do not match, then RFC 5243 can be used to reduce the number of
> LSA headers exchanged in DD packets by up to 50%.
> Also, if the checksums do match for a given range of LSAs, then the
> router receiving the checksum need not send the same checksum for
> the same range of LSAs.
>
> Richard
>
>
> Anton Smirnov wrote:
>
>   Mitchell,
>>  LSDBs may be very close but they are seldom EXACTLY the same. The
>> thing is that change in adjacency triggers LSA [re]build, so depending
>> on timing router and/or network LSAs may change by the time adjacency
>> restores.
>>  Also, in moderately sized modern OSPF network there is constant
>> background noise of LSAs being refreshed. So again, chances that
>> refreshed LSA arrived to one side but not another while adjacency is
>> down are relatively high.
>>  These considerations make precomputed checksums over large number of
>> LSAs rather bad for the purpose.
>>  If you want to explore venue of checksumming database exchange then I
>> recommend to look for more flexible approach giving routers possibility
>> to choose range of LSAs to compute checksum over. For example, if both
>> routers support the checksum exchange then router sending DBD could
>> specify the first, the last LSA and value of some kind of hash of LSA
>> headers between them (LSAs in LSDB can be viewed as ordered sequence as
>> per RFC 5243). In this way router preparing DBD packet may place start
>> and end points of checksumming to avoid including into the range LSAs
>> with ages around 0 and MAXAGE (because these are LSAs which are less
>> likely to match between routers). So database exchange will consist of
>> series of single LSA headers (the 'old' way) and large LSA sequences.
>>
>> Anton
>>
>>
>>
>> Mitchell Erblich wrote:
>>
>>
>>> Group,
>>>
>>>       General thoughts...
>>>
>>>       After a conversation about OSPF's standard database exchange and
>>> how inefficient it
>>>       is when two routers have large LSDBs and them almost being the
>>> same, we concluded
>>>       that the use of Checksums might significantly decrease the
>>> amount of overhead and
>>>       achieve faster convergence.
>>>
>>>           Moy first (I think) suggested the LSDB checksum support to
>>> identify identical
>>>           LSDBs.  Sometime later the MIB supported the
>>> ospfExternLsaChksumSum,
>>>           ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.
>>>
>>>           Thus, why not support the ability to have OSPF routers first
>>> exchange
>>>           checksums with LSA counts. If the LSDBs have more than XYZ
>>> entries
>>>           in their LSDBs, then the counts which are above specific
>>> thresholds then
>>>           support the checksum on each X count of LSA type. Only the
>>> groups
>>>           with non-matching Checksums would then go thru database
>>> exchange.
>>>
>>>           Thus, before database exchange, support some form of triple
>>> that
>>>           as routers have almost the same LSDBs,   the checksum exchange
>>>            would remove unnecessary LSA header exchange.
>>>
>>>           This, IMO, would also be a big win if say a DRother was
>>> adjacent, lost
>>>           adjacency, and re-exstablished it a short time later while
>>> keeping a
>>>           past snapshot. It could remove its own originated LSAs and
>>> compare
>>>           checksums..
>>>
>>>           In this scenario, within BMA areas, I think only DR /
>>> DRother and BDR/ DRother
>>>           need to be making this Checksum exchange..
>>>
>>>           Wouldn't the exchange of this data benefit each router
>>> receiving the
>>>           information and allow both routers to know the number of
>>> LSAs to
>>>           be possibly exchanged?
>>>                     Yes, a new capability would probably have to be
>>> added.
>>>
>>>
>>>           So, the first question is whether the checksums are unique
>>> enough with a
>>>           count and type to determine whether that section of the LSDB
>>> matches
>>>           between two routers?
>>>
>>>           And then what savings would normally exist in this hybrid
>>> database exchange
>>>           and is it worth the effort?
>>>
>>>       Mitchell Erblich
>>>
>>>
>>>                _______________________________________________
>>> OSPF mailing list
>>> OSPF@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ospf
>>>
>>>
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>>
>>
>>
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf
>

--0016e6de17ad6d2615046884b3a8
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi Anton,<div><br></div><div>yes, a similar scheme was studied a few years =
back,=A0in this paper:</div><div><a href=3D"http://www.emmanuelbaccelli.org=
/publications/WNET_2004.pdf">OSPF Database Exchange and Reliable Synchroniz=
ation in Mobile
Ad Hoc Networks</a></div><div><br></div><div>Such a mechanism could indeed =
lead to interesting performance enhancements, I agree with Richard.</div><d=
iv><br></div><div>cheers,</div><div><br></div><div>Emmanuel</div><div>

<br></div><div><br><br><div class=3D"gmail_quote">On Mon, Apr 27, 2009 at 2=
:22 AM, Richard Ogier <span dir=3D"ltr">&lt;<a href=3D"mailto:ogier@earthli=
nk.net">ogier@earthlink.net</a>&gt;</span> wrote:<br><blockquote class=3D"g=
mail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-l=
eft:1ex;">

Anton,<br>
<br>
I like your idea of sending a checksum for a range of LSAs, to<br>
increase the probability that the LSAs in a given range are in<br>
sync between the two neighbors. =A0(This helps even if the<br>
age field is ignored when selecting the ranges.)<br>
<br>
For example, suppose there are 100 LSAs and each LSA has a 2%<br>
chance of not being in sync. =A0Then the probability that all<br>
LSAs are in sync is .98^100 =3D .1326, too low to result in<br>
a significant overhead reduction.<br>
Now suppose the LSAs are divided into 10 ranges, each with 10 LSAs.<br>
The probability that all LSAs in a given range are in sync is then<br>
.98^10 =3D .8171, resulting in a big overhead reduction on average.<br>
<br>
The selected range for each LSA type can depend on how frequently<br>
new LSAs are originated for that type, with a larger range chosen<br>
if LSAs are originated less frequently (so that the probability<br>
of being out of sync is lower).<br>
<br>
This idea can be combined with the database exchange optimization<br>
of RFC 5243 to further reduce overhead. =A0I.e., if the checksums<br>
do not match, then RFC 5243 can be used to reduce the number of<br>
LSA headers exchanged in DD packets by up to 50%.<br>
Also, if the checksums do match for a given range of LSAs, then the<br>
router receiving the checksum need not send the same checksum for<br>
the same range of LSAs.<br><font color=3D"#888888">
<br>
Richard</font><div><div></div><div class=3D"h5"><br>
<br>
Anton Smirnov wrote:<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
 =A0Mitchell,<br>
 =A0LSDBs may be very close but they are seldom EXACTLY the same. The<br>
thing is that change in adjacency triggers LSA [re]build, so depending<br>
on timing router and/or network LSAs may change by the time adjacency<br>
restores.<br>
 =A0Also, in moderately sized modern OSPF network there is constant<br>
background noise of LSAs being refreshed. So again, chances that<br>
refreshed LSA arrived to one side but not another while adjacency is<br>
down are relatively high.<br>
 =A0These considerations make precomputed checksums over large number of<br=
>
LSAs rather bad for the purpose.<br>
 =A0If you want to explore venue of checksumming database exchange then I<b=
r>
recommend to look for more flexible approach giving routers possibility<br>
to choose range of LSAs to compute checksum over. For example, if both<br>
routers support the checksum exchange then router sending DBD could<br>
specify the first, the last LSA and value of some kind of hash of LSA<br>
headers between them (LSAs in LSDB can be viewed as ordered sequence as<br>
per RFC 5243). In this way router preparing DBD packet may place start<br>
and end points of checksumming to avoid including into the range LSAs<br>
with ages around 0 and MAXAGE (because these are LSAs which are less<br>
likely to match between routers). So database exchange will consist of<br>
series of single LSA headers (the &#39;old&#39; way) and large LSA sequence=
s.<br>
<br>
Anton<br>
<br>
<br>
<br>
Mitchell Erblich wrote:<br>
=A0<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Group,<br>
<br>
 =A0 =A0 =A0 General thoughts...<br>
<br>
 =A0 =A0 =A0 After a conversation about OSPF&#39;s standard database exchan=
ge and<br>
how inefficient it<br>
 =A0 =A0 =A0 is when two routers have large LSDBs and them almost being the=
<br>
same, we concluded<br>
 =A0 =A0 =A0 that the use of Checksums might significantly decrease the<br>
amount of overhead and<br>
 =A0 =A0 =A0 achieve faster convergence.<br>
<br>
 =A0 =A0 =A0 =A0 =A0 Moy first (I think) suggested the LSDB checksum suppor=
t to<br>
identify identical<br>
 =A0 =A0 =A0 =A0 =A0 LSDBs. =A0Sometime later the MIB supported the<br>
ospfExternLsaChksumSum,<br>
 =A0 =A0 =A0 =A0 =A0 ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.<br>
<br>
 =A0 =A0 =A0 =A0 =A0 Thus, why not support the ability to have OSPF routers=
 first<br>
exchange<br>
 =A0 =A0 =A0 =A0 =A0 checksums with LSA counts. If the LSDBs have more than=
 XYZ<br>
entries<br>
 =A0 =A0 =A0 =A0 =A0 in their LSDBs, then the counts which are above specif=
ic<br>
thresholds then<br>
 =A0 =A0 =A0 =A0 =A0 support the checksum on each X count of LSA type. Only=
 the<br>
groups<br>
 =A0 =A0 =A0 =A0 =A0 with non-matching Checksums would then go thru databas=
e<br>
exchange.<br>
<br>
 =A0 =A0 =A0 =A0 =A0 Thus, before database exchange, support some form of t=
riple<br>
that<br>
 =A0 =A0 =A0 =A0 =A0 as routers have almost the same LSDBs, =A0 the checksu=
m exchange<br>
 =A0 =A0 =A0 =A0 =A0 =A0would remove unnecessary LSA header exchange.<br>
<br>
 =A0 =A0 =A0 =A0 =A0 This, IMO, would also be a big win if say a DRother wa=
s<br>
adjacent, lost<br>
 =A0 =A0 =A0 =A0 =A0 adjacency, and re-exstablished it a short time later w=
hile<br>
keeping a<br>
 =A0 =A0 =A0 =A0 =A0 past snapshot. It could remove its own originated LSAs=
 and<br>
compare<br>
 =A0 =A0 =A0 =A0 =A0 checksums..<br>
<br>
 =A0 =A0 =A0 =A0 =A0 In this scenario, within BMA areas, I think only DR /<=
br>
DRother and BDR/ DRother<br>
 =A0 =A0 =A0 =A0 =A0 need to be making this Checksum exchange..<br>
<br>
 =A0 =A0 =A0 =A0 =A0 Wouldn&#39;t the exchange of this data benefit each ro=
uter<br>
receiving the<br>
 =A0 =A0 =A0 =A0 =A0 information and allow both routers to know the number =
of<br>
LSAs to<br>
 =A0 =A0 =A0 =A0 =A0 be possibly exchanged?<br>
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Yes, a new capability would probab=
ly have to be added.<br>
<br>
<br>
 =A0 =A0 =A0 =A0 =A0 So, the first question is whether the checksums are un=
ique<br>
enough with a<br>
 =A0 =A0 =A0 =A0 =A0 count and type to determine whether that section of th=
e LSDB<br>
matches<br>
 =A0 =A0 =A0 =A0 =A0 between two routers?<br>
<br>
 =A0 =A0 =A0 =A0 =A0 And then what savings would normally exist in this hyb=
rid<br>
database exchange<br>
 =A0 =A0 =A0 =A0 =A0 and is it worth the effort?<br>
 =A0 =A0 =A0 =A0 =A0<br>
 =A0 =A0 =A0 Mitchell Erblich<br>
<br>
 =A0 =A0 =A0<br>
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0___________________________________________=
____<br>
OSPF mailing list<br>
<a href=3D"mailto:OSPF@ietf.org" target=3D"_blank">OSPF@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/ospf" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/ospf</a><br>
 =A0 <br>
</blockquote>
_______________________________________________<br>
OSPF mailing list<br>
<a href=3D"mailto:OSPF@ietf.org" target=3D"_blank">OSPF@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/ospf" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/ospf</a><br>
<br>
=A0<br>
</blockquote>
_______________________________________________<br>
OSPF mailing list<br>
<a href=3D"mailto:OSPF@ietf.org" target=3D"_blank">OSPF@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/ospf" target=3D"_blank">ht=
tps://www.ietf.org/mailman/listinfo/ospf</a><br>
</div></div></blockquote></div><br></div>

--0016e6de17ad6d2615046884b3a8--

From erblichs@earthlink.net  Mon Apr 27 07:48:02 2009
Return-Path: <erblichs@earthlink.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id CD11B3A6C09 for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 07:48:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.106
X-Spam-Level: 
X-Spam-Status: No, score=-0.106 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FRT_ESTABLISH2=2.492, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AvArn0Dw-pZB for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 07:48:00 -0700 (PDT)
Received: from elasmtp-scoter.atl.sa.earthlink.net (elasmtp-scoter.atl.sa.earthlink.net [209.86.89.67]) by core3.amsl.com (Postfix) with ESMTP id 7F6863A6F5C for <ospf@ietf.org>; Mon, 27 Apr 2009 07:46:17 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net; b=k/Ey3B90yHubMBqw9Rkxze4imxnx2ccTHo4O8fTFb27uob2sTeTe7kVsThl+li+N; h=Received:Cc:Message-Id:From:To:In-Reply-To:Content-Type:Mime-Version:Subject:Date:References:X-Mailer:X-ELNK-Trace:X-Originating-IP;
Received: from [74.95.9.18] (helo=[172.21.1.247]) by elasmtp-scoter.atl.sa.earthlink.net with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.67) (envelope-from <erblichs@earthlink.net>) id 1LyS7N-0002zS-80; Mon, 27 Apr 2009 10:47:37 -0400
Message-Id: <B8093021-06F3-43BD-883B-55E6C8C608CC@earthlink.net>
From: Mitchell Erblich <erblichs@earthlink.net>
To: Emmanuel Baccelli <Emmanuel.Baccelli@inria.fr>
In-Reply-To: <be8c8d780904270057gac5fa7ei9b3f366189949584@mail.gmail.com>
Content-Type: multipart/alternative; boundary=Apple-Mail-196-543450792
Mime-Version: 1.0 (Apple Message framework v930.3)
Date: Mon, 27 Apr 2009 07:47:35 -0700
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net> <49EE0286.9070903@cisco.com> <49F4FAB9.4030009@earthlink.net> <be8c8d780904270057gac5fa7ei9b3f366189949584@mail.gmail.com>
X-Mailer: Apple Mail (2.930.3)
X-ELNK-Trace: 074f60c55517ea841aa676d7e74259b7b3291a7d08dfec79828d8498cc4fea5cd2b97c547415e2e0350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 74.95.9.18
Cc: ospf@ietf.org
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Apr 2009 14:48:02 -0000

--Apple-Mail-196-543450792
Content-Type: text/plain;
	charset=US-ASCII;
	format=flowed;
	delsp=yes
Content-Transfer-Encoding: 7bit

Group,

	First my thoughts are currently in the inception phase
	and COULD apply to both wired and wireless
	environments and I applogize for my verboseness.

	My initial assumptions are that a OSPF area will be
	majority built using the common Ethernet (BMA) environment
	and once a OSPF area is formed major LSA changes are rare.

	Second is that the LSDB is comprised of say 50k LSAs
	which are mostly/90% ExternalLSAs. Thus, Anton, I do not think
	your numbers are correct. If we had routers forming adjs
	via standard LSDB exchange each 100k LSAs sum exchange with
	DR/BDR and using checksums. Then no ExternalLSA hdrs would
	need to be exchanged with the BDR, thus removing almost
	 50% from database exchange. FYI: We got them from the DR.

	My below inquiry stated a checksum per LSA type and
	the ability to generate subgroups of checksums per
	LSA type. Yes, it also stated a full LSDB checksum.

	Since the flooding of LSAs is mostly the same, even a few
	LSAs changing within the ExternalLSa type COULD be covered
	by specifying that the A-Y range did not change and the
	Z range has new hdrs/LSAs and updated normally.

	If the later/changes was false, during convergence, routing anomalies
	would be a major concern and data would be routed improperly
	or just lost. With OLD standardized TCP congestion avoidance
	algorithms, a single lost packet assumes congestion and
	assuming 100% bandwidth usage drops TCP to 50% with
	multiplicative decrease. Then a huge number of round trips
	before additive increase gets back to approx 100% bandwidth.
	Even changes in routing paths can generate out-of-orderness with
	the same result. Different hosts/end systems can have different
	Congestion Avoidance algorithms.

	Thus, if convergences are frequent then the utilization
	of each of the TCP connection paths would have frequently
	poor bandwidth usage. So the assumption is that once a
	OSPF area is formed, it tends to be UNCHANGING.
	

	I mentally prefer a predefined range such that routers
	can pre-compute the checksums before even the
	initial LSDB exchange. To predetermine where the
	breaks should exist is currently unknown.

	I see three possible major wins where checksums COULD
	be used.
	     The first is flooding from the DR to DRothers
	       to update the LSDB so the amount of flooding could
	       be minimized, with the same same effect of DNA LSAs.
		Effectively a group LSA refresh.
	  The second is when a DRother initially forms an adjacency
	      with the BDR and accepting that the ExternalLSAs would
	      be the majority of LSAs and the belief that the DRother
	      would already have the ExternalLSAs in its LSDB.
	   The third is when the DRother wants to just verify that
		no LSAs were lost due to either congestion, temp
		drop of the adj, etc and verfify that no-one has either
		given up rexmits or is still doing xmits. And to pick up
		a single dropped LSA without a full Database Exch.
	

	Getting back to the pre-computation would prevent a
	OSPF speaking router from doing the calcs at adj
	formation time. Even doing the calc at adj formation
	should remove say 90+% of LSAs from needing to
	be recomputed on each LSDB verify sync.

	However, to decrease the need to do the calcs at
	overhead, first checking whether LSA type counts
	match could be done and only if they match, then
	do the necessary computation. The type, count,
	and checksum, should generate some form of
	uniqueness. Some field within the begining and
	ending LSAs might add some more verifcation.

	So, what am I missing here? and why hasn't anybody
	done this?

	Mitchell Erblich
	===================

		
On Apr 27, 2009, at 12:57 AM, Emmanuel Baccelli wrote:

> Hi Anton,
>
> yes, a similar scheme was studied a few years back, in this paper:
> OSPF Database Exchange and Reliable Synchronization in Mobile Ad Hoc  
> Networks
>
> Such a mechanism could indeed lead to interesting performance  
> enhancements, I agree with Richard.
>
> cheers,
>
> Emmanuel
>
>
>
> On Mon, Apr 27, 2009 at 2:22 AM, Richard Ogier <ogier@earthlink.net>  
> wrote:
> Anton,
>
> I like your idea of sending a checksum for a range of LSAs, to
> increase the probability that the LSAs in a given range are in
> sync between the two neighbors.  (This helps even if the
> age field is ignored when selecting the ranges.)
>
> For example, suppose there are 100 LSAs and each LSA has a 2%
> chance of not being in sync.  Then the probability that all
> LSAs are in sync is .98^100 = .1326, too low to result in
> a significant overhead reduction.
> Now suppose the LSAs are divided into 10 ranges, each with 10 LSAs.
> The probability that all LSAs in a given range are in sync is then
> .98^10 = .8171, resulting in a big overhead reduction on average.
>
> The selected range for each LSA type can depend on how frequently
> new LSAs are originated for that type, with a larger range chosen
> if LSAs are originated less frequently (so that the probability
> of being out of sync is lower).
>
> This idea can be combined with the database exchange optimization
> of RFC 5243 to further reduce overhead.  I.e., if the checksums
> do not match, then RFC 5243 can be used to reduce the number of
> LSA headers exchanged in DD packets by up to 50%.
> Also, if the checksums do match for a given range of LSAs, then the
> router receiving the checksum need not send the same checksum for
> the same range of LSAs.
>
> Richard
>
>
> Anton Smirnov wrote:
>
>  Mitchell,
>  LSDBs may be very close but they are seldom EXACTLY the same. The
> thing is that change in adjacency triggers LSA [re]build, so depending
> on timing router and/or network LSAs may change by the time adjacency
> restores.
>  Also, in moderately sized modern OSPF network there is constant
> background noise of LSAs being refreshed. So again, chances that
> refreshed LSA arrived to one side but not another while adjacency is
> down are relatively high.
>  These considerations make precomputed checksums over large number of
> LSAs rather bad for the purpose.
>  If you want to explore venue of checksumming database exchange then I
> recommend to look for more flexible approach giving routers  
> possibility
> to choose range of LSAs to compute checksum over. For example, if both
> routers support the checksum exchange then router sending DBD could
> specify the first, the last LSA and value of some kind of hash of LSA
> headers between them (LSAs in LSDB can be viewed as ordered sequence  
> as
> per RFC 5243). In this way router preparing DBD packet may place start
> and end points of checksumming to avoid including into the range LSAs
> with ages around 0 and MAXAGE (because these are LSAs which are less
> likely to match between routers). So database exchange will consist of
> series of single LSA headers (the 'old' way) and large LSA sequences.
>
> Anton
>
>
>
> Mitchell Erblich wrote:
>
> Group,
>
>       General thoughts...
>
>       After a conversation about OSPF's standard database exchange and
> how inefficient it
>       is when two routers have large LSDBs and them almost being the
> same, we concluded
>       that the use of Checksums might significantly decrease the
> amount of overhead and
>       achieve faster convergence.
>
>           Moy first (I think) suggested the LSDB checksum support to
> identify identical
>           LSDBs.  Sometime later the MIB supported the
> ospfExternLsaChksumSum,
>           ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.
>
>           Thus, why not support the ability to have OSPF routers first
> exchange
>           checksums with LSA counts. If the LSDBs have more than XYZ
> entries
>           in their LSDBs, then the counts which are above specific
> thresholds then
>           support the checksum on each X count of LSA type. Only the
> groups
>           with non-matching Checksums would then go thru database
> exchange.
>
>           Thus, before database exchange, support some form of triple
> that
>           as routers have almost the same LSDBs,   the checksum  
> exchange
>            would remove unnecessary LSA header exchange.
>
>           This, IMO, would also be a big win if say a DRother was
> adjacent, lost
>           adjacency, and re-exstablished it a short time later while
> keeping a
>           past snapshot. It could remove its own originated LSAs and
> compare
>           checksums..
>
>           In this scenario, within BMA areas, I think only DR /
> DRother and BDR/ DRother
>           need to be making this Checksum exchange..
>
>           Wouldn't the exchange of this data benefit each router
> receiving the
>           information and allow both routers to know the number of
> LSAs to
>           be possibly exchanged?
>                     Yes, a new capability would probably have to be  
> added.
>
>
>           So, the first question is whether the checksums are unique
> enough with a
>           count and type to determine whether that section of the LSDB
> matches
>           between two routers?
>
>           And then what savings would normally exist in this hybrid
> database exchange
>           and is it worth the effort?
>
>       Mitchell Erblich
>
>
>                _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf
>
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf
>
>
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf
>
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf


--Apple-Mail-196-543450792
Content-Type: text/html;
	charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">Group,<div><br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>First my =
thoughts are currently in the inception phase</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>and COULD =
apply to both wired and wireless&nbsp;</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>environments and I applogize for my =
verboseness.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>My initial assumptions are that a =
OSPF area will be</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>majority built using the common =
Ethernet (BMA) environment</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>and&nbsp;once a OSPF area =
is&nbsp;formed major LSA changes are =
rare.</div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Second is that the LSDB is =
comprised of say 50k LSAs<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>which are mostly/90% =
ExternalLSAs. Thus, Anton, I do not think<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>your =
numbers are correct. If we had routers forming adjs<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>via =
standard LSDB exchange each 100k LSAs sum exchange =
with<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>DR/BDR and using checksums. Then =
no ExternalLSA hdrs would<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>need to be exchanged with the =
BDR, thus removing almost</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;50% from database exchange. =
FYI: We got them from the DR.<br></div><div><br></div><div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>My below =
inquiry stated a checksum per LSA type and<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space: pre; ">	</span>the =
ability to generate subgroups of checksums per<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space: pre; ">	</span>LSA type. =
Yes, it also stated a full LSDB =
checksum.</div><div><br></div></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Since the flooding of LSAs is =
mostly the same, even a few<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>LSAs changing within the =
ExternalLSa type COULD be covered<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>by =
specifying that the A-Y range did not change and the<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>Z range =
has new hdrs/LSAs and updated =
normally.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>If the later/changes was false, =
during convergence, routing anomalies<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>would be =
a major concern and data would be routed improperly<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>or just =
lost. With OLD standardized TCP congestion avoidance<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>algorithms, a single lost packet assumes congestion =
and<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>assuming 100% bandwidth usage =
drops TCP to 50% with<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>multiplicative decrease. Then a =
huge number of round trips<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>before additive increase gets =
back to approx 100% bandwidth.<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>Even =
changes in routing paths can generate out-of-orderness =
with</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>the same result. Different hosts/end systems can have =
different<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Congestion Avoidance =
algorithms.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Thus, if convergences are =
frequent then the utilization<br></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>of each of the TCP connection =
paths would have frequently<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>poor bandwidth usage. So the =
assumption is that once a<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>OSPF area is formed, it tends to =
be UNCHANGING.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span><br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>I mentally prefer a predefined =
range such that routers<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>can pre-compute the checksums =
before even the<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>initial LSDB exchange. To =
predetermine where the<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>breaks should exist is currently =
unknown.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>I see three possible major wins =
where checksums COULD<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>be used.&nbsp;</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>&nbsp;&nbsp; &nbsp;&nbsp;The first is flooding from the DR to =
DRothers<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; &nbsp; =
&nbsp;&nbsp;to update the LSDB so the amount of flooding =
could<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; &nbsp; =
&nbsp;&nbsp;be minimized, with the same same effect of DNA =
LSAs.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>Effectively a group LSA =
refresh.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp;The second is when a =
DRother initially forms an adjacency</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>&nbsp;&nbsp; &nbsp; &nbsp;with the BDR and accepting that the =
ExternalLSAs would<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; &nbsp; &nbsp;be the =
majority of LSAs and the belief that the DRother</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>&nbsp;&nbsp; &nbsp; &nbsp;would already have the ExternalLSAs in =
its LSDB.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; The third is when =
the DRother wants to just verify that<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>no LSAs were lost due to either congestion, =
temp<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>drop of the adj, etc and =
verfify that no-one has either<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>given up rexmits or is still doing xmits. And to pick =
up<br></div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
		</span>a single dropped LSA without a full Database =
Exch.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span></div><div><br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>Getting =
back to the pre-computation would prevent a<span class=3D"Apple-tab-span" =
style=3D"white-space:pre"></span></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>OSPF speaking router from doing =
the calcs at adj<span class=3D"Apple-tab-span" =
style=3D"white-space:pre"></span></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>formation time. Even doing the =
calc at adj formation<span class=3D"Apple-tab-span" =
style=3D"white-space:pre"></span></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>should remove say 90+% of LSAs =
from needing to<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>be recomputed on each LSDB verify =
sync.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>However, to decrease the need to =
do the calcs at<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>overhead, first checking whether =
LSA type counts<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>match could be done and only if =
they match, then<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>do the necessary computation. The =
type, count,<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>and checksum, should generate =
some form of<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>uniqueness. Some field within the =
begining and<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>ending LSAs might add some more =
verifcation.</div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>So, what am I missing here? and =
why hasn't anybody</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>done =
this?<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Mitchell =
Erblich<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br></div>=
<div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		=
</span><br></div><div><div><div>On Apr 27, 2009, at 12:57 AM, Emmanuel =
Baccelli wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite">Hi Anton,<div><br></div><div>yes, a similar scheme was =
studied a few years back,&nbsp;in this paper:</div><div><a =
href=3D"http://www.emmanuelbaccelli.org/publications/WNET_2004.pdf">OSPF =
Database Exchange and Reliable Synchronization in Mobile Ad Hoc =
Networks</a></div><div><br></div><div>Such a mechanism could indeed lead =
to interesting performance enhancements, I agree with =
Richard.</div><div><br></div><div>cheers,</div><div><br></div><div>Emmanue=
l</div><div> <br></div><div><br><br><div class=3D"gmail_quote">On Mon, =
Apr 27, 2009 at 2:22 AM, Richard Ogier <span dir=3D"ltr">&lt;<a =
href=3D"mailto:ogier@earthlink.net">ogier@earthlink.net</a>></span> =
wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex;"> Anton,<br> <br> I =
like your idea of sending a checksum for a range of LSAs, to<br> =
increase the probability that the LSAs in a given range are in<br> sync =
between the two neighbors. &nbsp;(This helps even if the<br> age field =
is ignored when selecting the ranges.)<br> <br> For example, suppose =
there are 100 LSAs and each LSA has a 2%<br> chance of not being in =
sync. &nbsp;Then the probability that all<br> LSAs are in sync is =
.98^100 =3D .1326, too low to result in<br> a significant overhead =
reduction.<br> Now suppose the LSAs are divided into 10 ranges, each =
with 10 LSAs.<br> The probability that all LSAs in a given range are in =
sync is then<br> .98^10 =3D .8171, resulting in a big overhead reduction =
on average.<br> <br> The selected range for each LSA type can depend on =
how frequently<br> new LSAs are originated for that type, with a larger =
range chosen<br> if LSAs are originated less frequently (so that the =
probability<br> of being out of sync is lower).<br> <br> This idea can =
be combined with the database exchange optimization<br> of RFC 5243 to =
further reduce overhead. &nbsp;I.e., if the checksums<br> do not match, =
then RFC 5243 can be used to reduce the number of<br> LSA headers =
exchanged in DD packets by up to 50%.<br> Also, if the checksums do =
match for a given range of LSAs, then the<br> router receiving the =
checksum need not send the same checksum for<br> the same range of =
LSAs.<br><font color=3D"#888888"> <br> =
Richard</font><div><div></div><div class=3D"h5"><br> <br> Anton Smirnov =
wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"> &nbsp;Mitchell,<br> =
&nbsp;LSDBs may be very close but they are seldom EXACTLY the same. =
The<br> thing is that change in adjacency triggers LSA [re]build, so =
depending<br> on timing router and/or network LSAs may change by the =
time adjacency<br> restores.<br> &nbsp;Also, in moderately sized modern =
OSPF network there is constant<br> background noise of LSAs being =
refreshed. So again, chances that<br> refreshed LSA arrived to one side =
but not another while adjacency is<br> down are relatively high.<br> =
&nbsp;These considerations make precomputed checksums over large number =
of<br> LSAs rather bad for the purpose.<br> &nbsp;If you want to explore =
venue of checksumming database exchange then I<br> recommend to look for =
more flexible approach giving routers possibility<br> to choose range of =
LSAs to compute checksum over. For example, if both<br> routers support =
the checksum exchange then router sending DBD could<br> specify the =
first, the last LSA and value of some kind of hash of LSA<br> headers =
between them (LSAs in LSDB can be viewed as ordered sequence as<br> per =
RFC 5243). In this way router preparing DBD packet may place start<br> =
and end points of checksumming to avoid including into the range =
LSAs<br> with ages around 0 and MAXAGE (because these are LSAs which are =
less<br> likely to match between routers). So database exchange will =
consist of<br> series of single LSA headers (the 'old' way) and large =
LSA sequences.<br> <br> Anton<br> <br> <br> <br> Mitchell Erblich =
wrote:<br> &nbsp;<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Group,<br> <br> =
&nbsp; &nbsp; &nbsp; General thoughts...<br> <br> &nbsp; &nbsp; &nbsp; =
After a conversation about OSPF's standard database exchange and<br> how =
inefficient it<br> &nbsp; &nbsp; &nbsp; is when two routers have large =
LSDBs and them almost being the<br> same, we concluded<br> &nbsp; &nbsp; =
&nbsp; that the use of Checksums might significantly decrease the<br> =
amount of overhead and<br> &nbsp; &nbsp; &nbsp; achieve faster =
convergence.<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Moy first (I =
think) suggested the LSDB checksum support to<br> identify identical<br> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LSDBs. &nbsp;Sometime later the MIB =
supported the<br> ospfExternLsaChksumSum,<br> &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.<br> =
<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Thus, why not support the =
ability to have OSPF routers first<br> exchange<br> &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; checksums with LSA counts. If the LSDBs have more than =
XYZ<br> entries<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; in their LSDBs, =
then the counts which are above specific<br> thresholds then<br> &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; support the checksum on each X count of LSA =
type. Only the<br> groups<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; with =
non-matching Checksums would then go thru database<br> exchange.<br> =
<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Thus, before database exchange, =
support some form of triple<br> that<br> &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; as routers have almost the same LSDBs, &nbsp; the checksum =
exchange<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;would remove =
unnecessary LSA header exchange.<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; This, IMO, would also be a big win if say a DRother was<br> =
adjacent, lost<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; adjacency, and =
re-exstablished it a short time later while<br> keeping a<br> &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; past snapshot. It could remove its own =
originated LSAs and<br> compare<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
checksums..<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; In this =
scenario, within BMA areas, I think only DR /<br> DRother and BDR/ =
DRother<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; need to be making this =
Checksum exchange..<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Wouldn't =
the exchange of this data benefit each router<br> receiving the<br> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; information and allow both routers to =
know the number of<br> LSAs to<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; be =
possibly exchanged?<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; Yes, a new capability would probably have to be =
added.<br> <br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; So, the first =
question is whether the checksums are unique<br> enough with a<br> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count and type to determine whether =
that section of the LSDB<br> matches<br> &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; between two routers?<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
And then what savings would normally exist in this hybrid<br> database =
exchange<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; and is it worth the =
effort?<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp; &nbsp; =
Mitchell Erblich<br> <br> &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;_______________________________________________<br> OSPF mailing =
list<br> <a href=3D"mailto:OSPF@ietf.org" =
target=3D"_blank">OSPF@ietf.org</a><br> <a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/ospf</a><br> =
&nbsp; <br> </blockquote> =
_______________________________________________<br> OSPF mailing =
list<br> <a href=3D"mailto:OSPF@ietf.org" =
target=3D"_blank">OSPF@ietf.org</a><br> <a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/ospf</a><br> =
<br> &nbsp;<br> </blockquote> =
_______________________________________________<br> OSPF mailing =
list<br> <a href=3D"mailto:OSPF@ietf.org" =
target=3D"_blank">OSPF@ietf.org</a><br> <a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/ospf</a><br> =
</div></div></blockquote></div><br></div> =
_______________________________________________<br>OSPF mailing =
list<br><a =
href=3D"mailto:OSPF@ietf.org">OSPF@ietf.org</a><br>https://www.ietf.org/ma=
ilman/listinfo/ospf<br></blockquote></div><br></div></body></html>=

--Apple-Mail-196-543450792--

From asmirnov@cisco.com  Mon Apr 27 12:31:37 2009
Return-Path: <asmirnov@cisco.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id DA12F28C1C6 for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 12:31:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.107
X-Spam-Level: 
X-Spam-Status: No, score=-0.107 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FRT_ESTABLISH2=2.492]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1JKE0NjybEVt for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 12:31:36 -0700 (PDT)
Received: from av-tac-bru.cisco.com (weird-brew.cisco.com [144.254.15.118]) by core3.amsl.com (Postfix) with ESMTP id 61ECF3A6ACB for <ospf@ietf.org>; Mon, 27 Apr 2009 12:30:43 -0700 (PDT)
X-TACSUNS: Virus Scanned
Received: from strange-brew.cisco.com (localhost.cisco.com [127.0.0.1]) by av-tac-bru.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id n3RJW0eP007473; Mon, 27 Apr 2009 21:32:00 +0200 (CEST)
Received: from [10.55.140.89] (ams-asmirnov-8718.cisco.com [10.55.140.89]) by strange-brew.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id n3RJVwpq026374; Mon, 27 Apr 2009 21:31:58 +0200 (CEST)
Message-ID: <49F6082E.3060700@cisco.com>
Date: Mon, 27 Apr 2009 21:31:58 +0200
From: Anton Smirnov <asmirnov@cisco.com>
Organization: Cisco Systems, Inc.
User-Agent: Thunderbird 2.0.0.19 (X11/20081227)
MIME-Version: 1.0
To: Richard Ogier <ogier@earthlink.net>
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net> <49EE0286.9070903@cisco.com> <49F4FAB9.4030009@earthlink.net>
In-Reply-To: <49F4FAB9.4030009@earthlink.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: ospf@ietf.org
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Apr 2009 19:31:38 -0000

   Richard,
   indeed, interaction with RFC 5243 can have multiple aspects.
   It is easy for routers to learn that neighbor supports checksumming
(via, say, some new option bit). But this is not enough to start sending
checksums, routers should first get an idea that their databases are
close enough (i.e. chance of being not in sync is closer to 2% than to
98%). This can come from knowledge external to the algorithm (say,
neighbor was recently fully adjacent but lost neighborship for a short
time). Or it can be part of the algorithm itself - routers start DBD
exchange the 'old' way and if during the exchange they get very good
hits for RFC 5243 optimization then they can measure how close are their
databases and if it makes sense to switch to batched exchange.

   Thanks,

Anton



Richard Ogier wrote:
> Anton,
> 
> I like your idea of sending a checksum for a range of LSAs, to
> increase the probability that the LSAs in a given range are in
> sync between the two neighbors.  (This helps even if the
> age field is ignored when selecting the ranges.)
> 
> For example, suppose there are 100 LSAs and each LSA has a 2%
> chance of not being in sync.  Then the probability that all
> LSAs are in sync is .98^100 = .1326, too low to result in
> a significant overhead reduction.
> Now suppose the LSAs are divided into 10 ranges, each with 10 LSAs.
> The probability that all LSAs in a given range are in sync is then
> .98^10 = .8171, resulting in a big overhead reduction on average.
> 
> The selected range for each LSA type can depend on how frequently
> new LSAs are originated for that type, with a larger range chosen
> if LSAs are originated less frequently (so that the probability
> of being out of sync is lower).
> 
> This idea can be combined with the database exchange optimization
> of RFC 5243 to further reduce overhead.  I.e., if the checksums
> do not match, then RFC 5243 can be used to reduce the number of
> LSA headers exchanged in DD packets by up to 50%.
> Also, if the checksums do match for a given range of LSAs, then the
> router receiving the checksum need not send the same checksum for
> the same range of LSAs.
> 
> Richard
> 
> Anton Smirnov wrote:
> 
>>   Mitchell,
>>   LSDBs may be very close but they are seldom EXACTLY the same. The
>> thing is that change in adjacency triggers LSA [re]build, so depending
>> on timing router and/or network LSAs may change by the time adjacency
>> restores.
>>   Also, in moderately sized modern OSPF network there is constant
>> background noise of LSAs being refreshed. So again, chances that
>> refreshed LSA arrived to one side but not another while adjacency is
>> down are relatively high.
>>   These considerations make precomputed checksums over large number of
>> LSAs rather bad for the purpose.
>>   If you want to explore venue of checksumming database exchange then I
>> recommend to look for more flexible approach giving routers possibility
>> to choose range of LSAs to compute checksum over. For example, if both
>> routers support the checksum exchange then router sending DBD could
>> specify the first, the last LSA and value of some kind of hash of LSA
>> headers between them (LSAs in LSDB can be viewed as ordered sequence as
>> per RFC 5243). In this way router preparing DBD packet may place start
>> and end points of checksumming to avoid including into the range LSAs
>> with ages around 0 and MAXAGE (because these are LSAs which are less
>> likely to match between routers). So database exchange will consist of
>> series of single LSA headers (the 'old' way) and large LSA sequences.
>>
>> Anton
>>
>>
>>
>> Mitchell Erblich wrote:
>>  
>>
>>> Group,
>>>
>>>        General thoughts...
>>>
>>>        After a conversation about OSPF's standard database exchange and
>>> how inefficient it
>>>        is when two routers have large LSDBs and them almost being the
>>> same, we concluded
>>>        that the use of Checksums might significantly decrease the
>>> amount of overhead and
>>>        achieve faster convergence.
>>>
>>>            Moy first (I think) suggested the LSDB checksum support to
>>> identify identical
>>>            LSDBs.  Sometime later the MIB supported the
>>> ospfExternLsaChksumSum,
>>>            ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.
>>>
>>>            Thus, why not support the ability to have OSPF routers first
>>> exchange
>>>            checksums with LSA counts. If the LSDBs have more than XYZ
>>> entries
>>>            in their LSDBs, then the counts which are above specific
>>> thresholds then
>>>            support the checksum on each X count of LSA type. Only the
>>> groups
>>>            with non-matching Checksums would then go thru database
>>> exchange.
>>>
>>>            Thus, before database exchange, support some form of triple
>>> that
>>>            as routers have almost the same LSDBs,   the checksum
>>> exchange
>>>             would remove unnecessary LSA header exchange.
>>>
>>>            This, IMO, would also be a big win if say a DRother was
>>> adjacent, lost
>>>            adjacency, and re-exstablished it a short time later while
>>> keeping a
>>>            past snapshot. It could remove its own originated LSAs and
>>> compare
>>>            checksums..
>>>
>>>            In this scenario, within BMA areas, I think only DR /
>>> DRother and BDR/ DRother
>>>            need to be making this Checksum exchange..
>>>
>>>            Wouldn't the exchange of this data benefit each router
>>> receiving the
>>>            information and allow both routers to know the number of
>>> LSAs to
>>>            be possibly exchanged?
>>>                      Yes, a new capability would probably have to be
>>> added.
>>>
>>>
>>>            So, the first question is whether the checksums are unique
>>> enough with a
>>>            count and type to determine whether that section of the LSDB
>>> matches
>>>            between two routers?
>>>
>>>            And then what savings would normally exist in this hybrid
>>> database exchange
>>>            and is it worth the effort?
>>>          
>>>        Mitchell Erblich
>>>
>>>      
>>>                 _______________________________________________
>>> OSPF mailing list
>>> OSPF@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ospf
>>>   
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>>
>>  
>>

From erblichs@earthlink.net  Mon Apr 27 13:18:38 2009
Return-Path: <erblichs@earthlink.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C4D573A6FEE for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 13:18:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.654
X-Spam-Level: 
X-Spam-Status: No, score=-0.654 tagged_above=-999 required=5 tests=[AWL=0.548,  BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=1.396]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XpRSOkDb3Nnd for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 13:18:38 -0700 (PDT)
Received: from elasmtp-dupuy.atl.sa.earthlink.net (elasmtp-dupuy.atl.sa.earthlink.net [209.86.89.62]) by core3.amsl.com (Postfix) with ESMTP id C3B4E28C20B for <ospf@ietf.org>; Mon, 27 Apr 2009 13:17:51 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net; b=fQKqIkb+z3Lvv5qApH3w+4XFQ9YtEUVbw5CbxAhKUUc+eStBy/ddjZjqqBaedP6I; h=Received:Message-Id:From:To:Content-Type:Mime-Version:Subject:Date:References:X-Mailer:X-ELNK-Trace:X-Originating-IP;
Received: from [74.95.9.18] (helo=[172.21.1.247]) by elasmtp-dupuy.atl.sa.earthlink.net with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.67) (envelope-from <erblichs@earthlink.net>) id 1LyXIG-0003sm-NX for ospf@ietf.org; Mon, 27 Apr 2009 16:19:13 -0400
Message-Id: <AE191F43-1427-4ACD-A14A-9AF40E915611@earthlink.net>
From: Mitchell Erblich <erblichs@earthlink.net>
To: ospf@ietf.org
Content-Type: multipart/alternative; boundary=Apple-Mail-213-563346043
Mime-Version: 1.0 (Apple Message framework v930.3)
Date: Mon, 27 Apr 2009 13:19:10 -0700
References: <31E6E494-A396-47B3-ADD7-11661D867FAE@earthlink.net>
X-Mailer: Apple Mail (2.930.3)
X-ELNK-Trace: 074f60c55517ea841aa676d7e74259b7b3291a7d08dfec79f1a4fb4d2fa4aeb2c60a3607d3bc7179350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 74.95.9.18
Subject: [OSPF] Fwd:  Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Apr 2009 20:18:38 -0000

--Apple-Mail-213-563346043
Content-Type: text/plain;
	charset=US-ASCII;
	format=flowed;
	delsp=yes
Content-Transfer-Encoding: 7bit


Begin forwarded message:

> From: Mitchell Erblich <erblichs@earthlink.net>
> Date: April 27, 2009 12:20:58 PM PDT
> To: "Joel M. Halpern" <jmh@joelhalpern.com>
> Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre- 
> Step
>
> Group and Joel,
>
> 		50K was a conservative number.
>
> 		And if you are saying that ASBRs no longer insert ExternalLSAs  
> into a OSPF area,
> 		then may I ask how do  OSPF routers route to destinations outside  
> of the OSPF area?
>
> 		Mitchell Erblich
> 		=========================
> 		
> On Apr 27, 2009, at 8:58 AM, Joel M. Halpern wrote:
>
>> Why would an OSPF domain typically have 90% External LSAs?  The  
>> only way you could get that is if you were injecting your BGP  
>> prefixes into OSPF.  Such injection is generally considered a bad  
>> practice.  (Yes, it can be done.  Yes, we have the tools to do it.   
>> But it makes a mess.
>>
>> Details:
>> ISPs almost never operate that way.
>> Enterprises which are multi-connectded, but are moderate sized,  
>> typically confine the external connections to a single part of the  
>> net, and do not inject BGP prefixes into their enterprise routing,  
>> even if they exchange BGP with their providers.
>> Very large enterprises use a BGP overlay, and avoid injecting BGP  
>> routes into OSPF.
>>
>> Yes, there are cases where they get injected.  Note that if you do  
>> so, you get a LOT more than 50K routes.
>>
>> Yours,
>> Joel M. Halpern
>>
>> Mitchell Erblich wrote:
>>> Group,
>>> First my thoughts are currently in the inception phase
>>> and COULD apply to both wired and wireless environments and I  
>>> applogize for my verboseness.
>>> My initial assumptions are that a OSPF area will be
>>> majority built using the common Ethernet (BMA) environment
>>> and once a OSPF area is formed major LSA changes are rare.
>>> Second is that the LSDB is comprised of say 50k LSAs
>>> which are mostly/90% ExternalLSAs.
>> ...
>


--Apple-Mail-213-563346043
Content-Type: text/html;
	charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; "><div><br><div>Begin forwarded =
message:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><font face=3D"Helvetica" =
size=3D"4" color=3D"#000000" style=3D"font: 14.0px Helvetica; color: =
#000000"><b>From: </b></font><font face=3D"Helvetica" size=3D"4" =
style=3D"font: 14.0px Helvetica">Mitchell Erblich &lt;<a =
href=3D"mailto:erblichs@earthlink.net">erblichs@earthlink.net</a>></font><=
/div><div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: =
0px; margin-left: 0px; "><font face=3D"Helvetica" size=3D"4" =
color=3D"#000000" style=3D"font: 14.0px Helvetica; color: =
#000000"><b>Date: </b></font><font face=3D"Helvetica" size=3D"4" =
style=3D"font: 14.0px Helvetica">April 27, 2009 12:20:58 PM =
PDT</font></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><font face=3D"Helvetica" =
size=3D"4" color=3D"#000000" style=3D"font: 14.0px Helvetica; color: =
#000000"><b>To: </b></font><font face=3D"Helvetica" size=3D"4" =
style=3D"font: 14.0px Helvetica">"Joel M. Halpern" &lt;<a =
href=3D"mailto:jmh@joelhalpern.com">jmh@joelhalpern.com</a>></font></div><=
div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><font face=3D"Helvetica" size=3D"4" color=3D"#000000" =
style=3D"font: 14.0px Helvetica; color: #000000"><b>Subject: =
</b></font><font face=3D"Helvetica" size=3D"4" style=3D"font: 14.0px =
Helvetica"><b>Re: [OSPF] Preliminary idea: OSPF Database Exchange : =
Pre-Step</b></font></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; =
"><br></div> </div><div>Group and Joel,<br><br><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>50K was a =
conservative number.<br><br><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>And if you are saying that ASBRs =
no longer insert ExternalLSAs into a OSPF area,<br><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>then may =
I ask how do &nbsp;OSPF routers route to destinations outside of the =
OSPF area?<br><br><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Mitchell Erblich<br><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D<br><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><br>On Apr 27, 2009, at 8:58 AM, Joel M. Halpern =
wrote:<br><br><blockquote type=3D"cite">Why would an OSPF domain =
typically have 90% External LSAs? &nbsp;The only way you could get that =
is if you were injecting your BGP prefixes into OSPF. &nbsp;Such =
injection is generally considered a bad practice. &nbsp;(Yes, it can be =
done. &nbsp;Yes, we have the tools to do it. &nbsp;But it makes a =
mess.<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote =
type=3D"cite">Details:<br></blockquote><blockquote type=3D"cite">ISPs =
almost never operate that way.<br></blockquote><blockquote =
type=3D"cite">Enterprises which are multi-connectded, but are moderate =
sized, typically confine the external connections to a single part of =
the net, and do not inject BGP prefixes into their enterprise routing, =
even if they exchange BGP with their =
providers.<br></blockquote><blockquote type=3D"cite">Very large =
enterprises use a BGP overlay, and avoid injecting BGP routes into =
OSPF.<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">Yes, there are =
cases where they get injected. &nbsp;Note that if you do so, you get a =
LOT more than 50K routes.<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote =
type=3D"cite">Yours,<br></blockquote><blockquote type=3D"cite">Joel M. =
Halpern<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">Mitchell =
Erblich wrote:<br></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">Group,<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">First my thoughts are currently =
in the inception phase<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">and COULD apply to both wired =
and wireless environments and I applogize for my =
verboseness.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">My initial assumptions are that =
a OSPF area will be<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">majority built using the common =
Ethernet (BMA) environment<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">and once a OSPF area is formed =
major LSA changes are rare.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">Second is that the LSDB is =
comprised of say 50k LSAs<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">which are mostly/90% =
ExternalLSAs.<br></blockquote></blockquote><blockquote =
type=3D"cite">...<br></blockquote><br></div></blockquote></div><br></body>=
</html>=

--Apple-Mail-213-563346043--

From dkatz@juniper.net  Mon Apr 27 16:27:11 2009
Return-Path: <dkatz@juniper.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E004B3A68DA for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 16:27:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.352
X-Spam-Level: 
X-Spam-Status: No, score=-5.352 tagged_above=-999 required=5 tests=[AWL=-1.246, BAYES_00=-2.599, FRT_ESTABLISH2=2.492, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HIzFHe3JBtfl for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 16:27:09 -0700 (PDT)
Received: from chip3og53.obsmtp.com (chip3og53.obsmtp.com [64.18.14.171]) by core3.amsl.com (Postfix) with ESMTP id 048193A67EB for <ospf@ietf.org>; Mon, 27 Apr 2009 16:27:08 -0700 (PDT)
Received: from source ([66.129.224.36]) (using TLSv1) by chip3ob53.postini.com ([64.18.6.12]) with SMTP ID DSNKSfY/m7XL99vm6+1Fis/sY7wANr8zfqBA@postini.com; Mon, 27 Apr 2009 16:28:30 PDT
Received: from p-emfe01-sac.jnpr.net (66.129.254.72) by P-EMHUB01-HQ.jnpr.net (172.24.192.35) with Microsoft SMTP Server id 8.1.340.0; Mon, 27 Apr 2009 16:21:00 -0700
Received: from p-emlb01-sac.jnpr.net ([66.129.254.46]) by p-emfe01-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 27 Apr 2009 16:21:00 -0700
Received: from emailsmtp56.jnpr.net ([172.24.60.77]) by p-emlb01-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 27 Apr 2009 16:21:00 -0700
Received: from merlot.juniper.net ([172.17.27.10]) by emailsmtp56.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 27 Apr 2009 16:20:59 -0700
Received: from sa-nc-spg-31.static.jnpr.net (sa-nc-spg-31.static.jnpr.net [172.23.1.31])	by merlot.juniper.net (8.11.3/8.11.3) with ESMTP id n3RNKw099452;	Mon, 27 Apr 2009 16:20:58 -0700 (PDT)	(envelope-from dkatz@juniper.net)
Message-ID: <0E0F4684-5F14-4E13-B573-DC1F32C31317@juniper.net>
From: Dave Katz <dkatz@juniper.net>
To: Mitchell Erblich <erblichs@earthlink.net>
In-Reply-To: <B8093021-06F3-43BD-883B-55E6C8C608CC@earthlink.net>
Content-Type: multipart/alternative; boundary="Apple-Mail-4-574252028"
MIME-Version: 1.0 (Apple Message framework v930.3)
Date: Mon, 27 Apr 2009 18:20:56 -0500
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net> <49EE0286.9070903@cisco.com> <49F4FAB9.4030009@earthlink.net> <be8c8d780904270057gac5fa7ei9b3f366189949584@mail.gmail.com> <B8093021-06F3-43BD-883B-55E6C8C608CC@earthlink.net>
X-Mailer: Apple Mail (2.930.3)
X-OriginalArrivalTime: 27 Apr 2009 23:20:59.0165 (UTC) FILETIME=[D2BCECD0:01C9C78E]
Cc: ospf@ietf.org, Emmanuel Baccelli <Emmanuel.Baccelli@inria.fr>
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Apr 2009 23:27:12 -0000

--Apple-Mail-4-574252028
Content-Type: text/plain; charset="US-ASCII"; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit

On first principles, it seems as though the only reason to do  
something like this is to reduce the amount of time it takes to bring  
up a new link, and even that is probably only interesting if the  
network is at least slightly partitioned without it.  Keep in mind  
that such a scheme is only useful if the database is already close to  
synchronized, so it doesn't help when a router first comes up.  Given  
all that, it's not entirely clear that doing this is *that*  
interesting, but no matter.

The problem with any of these checksum schemes is that the benefits  
are compromised by the LSA refresh mechanism, as has been noted.  With  
50,000 LSAs, my back-of-the-laptop calculations are that an LSA is  
refreshed on the average of once every 36 msec, or roughly 30 per  
second.  Scalable implementations go out of their way to smooth  
refreshes when they are originating a large number of LSAs, and if  
there are a large number of machines originating a small number of  
LSAs, these will (hopefully) tend to be smoothed out as well, in a way  
that does not correlate with the ordering mechanism proposed.

The efficiency of such schemes improves as the number of LSAs per  
checksum block goes up, but so does the probability of a checksum  
failure, in which case you're actually worse off than if you'd just  
send the darned things (since you have to anyhow, unless you start  
doing scary bifurcations of the space, all of which takes more time,  
and all of which causes even more LSAs to be stale.)

If that 50K LSA network was represented as 30 checksum blocks, and it  
takes a second for the basic handshaking to take place with a  
neighbor, the odds are decent that *all* of them will fail, in which  
case it's a waste of time.  Keep in mind that if you want to avoid bad  
checksums, you need to make the block size small, and thus the number  
of blocks large, and then you end up back where you started from  
unless the checksum-exchange protocol is reasonably windowed as well.

If you want to improve adjacency bringup in a non-compatible way, it  
seems like a more effective mechanism would be simply to fix the brain- 
dead DBD protocol so that it is not stop-and-wait;  if you can pump a  
few hundred PPS of DBDs across the wire without stopping, you can sync  
up very quickly in terms of wall-clock time without getting into the  
inevitable problems caused by trying to glom LSAs together and  
expecting them to sit still in the process.  It seems a lot cheaper  
and more straightforward.

Bandwidth and CPU are practically free (particularly for something  
done relatively rarely) so trying to do heroic things to optimize such  
situations seems like a waste of effort.

Maybe I'm missing something fundamental here?

--Dave


On Apr 27, 2009, at 9:47 AM, Mitchell Erblich wrote:

> Group,
>
> 	First my thoughts are currently in the inception phase
> 	and COULD apply to both wired and wireless
> 	environments and I applogize for my verboseness.
>
> 	My initial assumptions are that a OSPF area will be
> 	majority built using the common Ethernet (BMA) environment
> 	and once a OSPF area is formed major LSA changes are rare.
>
> 	Second is that the LSDB is comprised of say 50k LSAs
> 	which are mostly/90% ExternalLSAs. Thus, Anton, I do not think
> 	your numbers are correct. If we had routers forming adjs
> 	via standard LSDB exchange each 100k LSAs sum exchange with
> 	DR/BDR and using checksums. Then no ExternalLSA hdrs would
> 	need to be exchanged with the BDR, thus removing almost
> 	 50% from database exchange. FYI: We got them from the DR.
>
> 	My below inquiry stated a checksum per LSA type and
> 	the ability to generate subgroups of checksums per
> 	LSA type. Yes, it also stated a full LSDB checksum.
>
> 	Since the flooding of LSAs is mostly the same, even a few
> 	LSAs changing within the ExternalLSa type COULD be covered
> 	by specifying that the A-Y range did not change and the
> 	Z range has new hdrs/LSAs and updated normally.
>
> 	If the later/changes was false, during convergence, routing anomalies
> 	would be a major concern and data would be routed improperly
> 	or just lost. With OLD standardized TCP congestion avoidance
> 	algorithms, a single lost packet assumes congestion and
> 	assuming 100% bandwidth usage drops TCP to 50% with
> 	multiplicative decrease. Then a huge number of round trips
> 	before additive increase gets back to approx 100% bandwidth.
> 	Even changes in routing paths can generate out-of-orderness with
> 	the same result. Different hosts/end systems can have different
> 	Congestion Avoidance algorithms.
>
> 	Thus, if convergences are frequent then the utilization
> 	of each of the TCP connection paths would have frequently
> 	poor bandwidth usage. So the assumption is that once a
> 	OSPF area is formed, it tends to be UNCHANGING.
> 	
>
> 	I mentally prefer a predefined range such that routers
> 	can pre-compute the checksums before even the
> 	initial LSDB exchange. To predetermine where the
> 	breaks should exist is currently unknown.
>
> 	I see three possible major wins where checksums COULD
> 	be used.
> 	     The first is flooding from the DR to DRothers
> 	       to update the LSDB so the amount of flooding could
> 	       be minimized, with the same same effect of DNA LSAs.
> 		Effectively a group LSA refresh.
> 	  The second is when a DRother initially forms an adjacency
> 	      with the BDR and accepting that the ExternalLSAs would
> 	      be the majority of LSAs and the belief that the DRother
> 	      would already have the ExternalLSAs in its LSDB.
> 	   The third is when the DRother wants to just verify that
> 		no LSAs were lost due to either congestion, temp
> 		drop of the adj, etc and verfify that no-one has either
> 		given up rexmits or is still doing xmits. And to pick up
> 		a single dropped LSA without a full Database Exch.
> 	
>
> 	Getting back to the pre-computation would prevent a
> 	OSPF speaking router from doing the calcs at adj
> 	formation time. Even doing the calc at adj formation
> 	should remove say 90+% of LSAs from needing to
> 	be recomputed on each LSDB verify sync.
>
> 	However, to decrease the need to do the calcs at
> 	overhead, first checking whether LSA type counts
> 	match could be done and only if they match, then
> 	do the necessary computation. The type, count,
> 	and checksum, should generate some form of
> 	uniqueness. Some field within the begining and
> 	ending LSAs might add some more verifcation.
>
> 	So, what am I missing here? and why hasn't anybody
> 	done this?
>
> 	Mitchell Erblich
> 	===================
>
> 		
> On Apr 27, 2009, at 12:57 AM, Emmanuel Baccelli wrote:
>
>> Hi Anton,
>>
>> yes, a similar scheme was studied a few years back, in this paper:
>> OSPF Database Exchange and Reliable Synchronization in Mobile Ad  
>> Hoc Networks
>>
>> Such a mechanism could indeed lead to interesting performance  
>> enhancements, I agree with Richard.
>>
>> cheers,
>>
>> Emmanuel
>>
>>
>>
>> On Mon, Apr 27, 2009 at 2:22 AM, Richard Ogier  
>> <ogier@earthlink.net> wrote:
>> Anton,
>>
>> I like your idea of sending a checksum for a range of LSAs, to
>> increase the probability that the LSAs in a given range are in
>> sync between the two neighbors.  (This helps even if the
>> age field is ignored when selecting the ranges.)
>>
>> For example, suppose there are 100 LSAs and each LSA has a 2%
>> chance of not being in sync.  Then the probability that all
>> LSAs are in sync is .98^100 = .1326, too low to result in
>> a significant overhead reduction.
>> Now suppose the LSAs are divided into 10 ranges, each with 10 LSAs.
>> The probability that all LSAs in a given range are in sync is then
>> .98^10 = .8171, resulting in a big overhead reduction on average.
>>
>> The selected range for each LSA type can depend on how frequently
>> new LSAs are originated for that type, with a larger range chosen
>> if LSAs are originated less frequently (so that the probability
>> of being out of sync is lower).
>>
>> This idea can be combined with the database exchange optimization
>> of RFC 5243 to further reduce overhead.  I.e., if the checksums
>> do not match, then RFC 5243 can be used to reduce the number of
>> LSA headers exchanged in DD packets by up to 50%.
>> Also, if the checksums do match for a given range of LSAs, then the
>> router receiving the checksum need not send the same checksum for
>> the same range of LSAs.
>>
>> Richard
>>
>>
>> Anton Smirnov wrote:
>>
>>  Mitchell,
>>  LSDBs may be very close but they are seldom EXACTLY the same. The
>> thing is that change in adjacency triggers LSA [re]build, so  
>> depending
>> on timing router and/or network LSAs may change by the time adjacency
>> restores.
>>  Also, in moderately sized modern OSPF network there is constant
>> background noise of LSAs being refreshed. So again, chances that
>> refreshed LSA arrived to one side but not another while adjacency is
>> down are relatively high.
>>  These considerations make precomputed checksums over large number of
>> LSAs rather bad for the purpose.
>>  If you want to explore venue of checksumming database exchange  
>> then I
>> recommend to look for more flexible approach giving routers  
>> possibility
>> to choose range of LSAs to compute checksum over. For example, if  
>> both
>> routers support the checksum exchange then router sending DBD could
>> specify the first, the last LSA and value of some kind of hash of LSA
>> headers between them (LSAs in LSDB can be viewed as ordered  
>> sequence as
>> per RFC 5243). In this way router preparing DBD packet may place  
>> start
>> and end points of checksumming to avoid including into the range LSAs
>> with ages around 0 and MAXAGE (because these are LSAs which are less
>> likely to match between routers). So database exchange will consist  
>> of
>> series of single LSA headers (the 'old' way) and large LSA sequences.
>>
>> Anton
>>
>>
>>
>> Mitchell Erblich wrote:
>>
>> Group,
>>
>>       General thoughts...
>>
>>       After a conversation about OSPF's standard database exchange  
>> and
>> how inefficient it
>>       is when two routers have large LSDBs and them almost being the
>> same, we concluded
>>       that the use of Checksums might significantly decrease the
>> amount of overhead and
>>       achieve faster convergence.
>>
>>           Moy first (I think) suggested the LSDB checksum support to
>> identify identical
>>           LSDBs.  Sometime later the MIB supported the
>> ospfExternLsaChksumSum,
>>           ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.
>>
>>           Thus, why not support the ability to have OSPF routers  
>> first
>> exchange
>>           checksums with LSA counts. If the LSDBs have more than XYZ
>> entries
>>           in their LSDBs, then the counts which are above specific
>> thresholds then
>>           support the checksum on each X count of LSA type. Only the
>> groups
>>           with non-matching Checksums would then go thru database
>> exchange.
>>
>>           Thus, before database exchange, support some form of triple
>> that
>>           as routers have almost the same LSDBs,   the checksum  
>> exchange
>>            would remove unnecessary LSA header exchange.
>>
>>           This, IMO, would also be a big win if say a DRother was
>> adjacent, lost
>>           adjacency, and re-exstablished it a short time later while
>> keeping a
>>           past snapshot. It could remove its own originated LSAs and
>> compare
>>           checksums..
>>
>>           In this scenario, within BMA areas, I think only DR /
>> DRother and BDR/ DRother
>>           need to be making this Checksum exchange..
>>
>>           Wouldn't the exchange of this data benefit each router
>> receiving the
>>           information and allow both routers to know the number of
>> LSAs to
>>           be possibly exchanged?
>>                     Yes, a new capability would probably have to be  
>> added.
>>
>>
>>           So, the first question is whether the checksums are unique
>> enough with a
>>           count and type to determine whether that section of the  
>> LSDB
>> matches
>>           between two routers?
>>
>>           And then what savings would normally exist in this hybrid
>> database exchange
>>           and is it worth the effort?
>>
>>       Mitchell Erblich
>>
>>
>>                _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>>
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>>
>>
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>>
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf


--Apple-Mail-4-574252028
Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; "><div>On first principles, it =
seems as though the only reason to do something like this is to reduce =
the amount of time it takes to bring up a new link, and even that is =
probably only interesting if the network is at least slightly =
partitioned without it. &nbsp;Keep in mind that such a scheme is only =
useful if the database is already close to synchronized, so it doesn't =
help when a router first comes up. &nbsp;Given all that, it's not =
entirely clear that doing this is *that* interesting, but no =
matter.</div><div><br></div>The problem with any of these checksum =
schemes is that the benefits are compromised by the LSA refresh =
mechanism, as has been noted. &nbsp;With 50,000 LSAs, my =
back-of-the-laptop calculations are that an LSA is refreshed on the =
average of once every 36 msec, or roughly 30 per second. &nbsp;Scalable =
implementations go out of their way to smooth refreshes when they are =
originating a large number of LSAs, and if there are a large number of =
machines originating a small number of LSAs, these will (hopefully) tend =
to be smoothed out as well, in a way that does not correlate with the =
ordering mechanism proposed.<div><br></div><div>The efficiency of such =
schemes improves as the number of LSAs per checksum block goes up, but =
so does the probability of a checksum failure, in which case you're =
actually worse off than if you'd just send the darned things (since you =
have to anyhow, unless you start doing scary bifurcations of the space, =
all of which takes more time, and all of which causes even more LSAs to =
be stale.)</div><div><br></div><div>If that 50K LSA network was =
represented as 30 checksum blocks, and it takes a second for the basic =
handshaking to take place with a neighbor, the odds are decent that =
*all* of them will fail, in which case it's a waste of =
time.&nbsp;&nbsp;Keep in mind that if you want to avoid bad checksums, =
you need to make the block size small, and thus the number of blocks =
large, and then you end up back where you started from unless the =
checksum-exchange protocol is reasonably windowed as =
well.</div><div><br></div><div>If you want to improve adjacency bringup =
in a non-compatible way, it seems like a more effective mechanism would =
be simply to fix the brain-dead DBD protocol so that it is not =
stop-and-wait; &nbsp;if you can pump a few hundred PPS of DBDs across =
the wire without stopping, you can sync up very quickly in terms of =
wall-clock time without getting into the inevitable problems caused by =
trying to glom LSAs together and expecting them to sit still in the =
process. &nbsp;It seems a lot cheaper and more =
straightforward.</div><div><br></div><div>Bandwidth and CPU are =
practically free (particularly for something done relatively rarely) so =
trying to do heroic things to optimize such situations seems like a =
waste of effort.</div><div><br></div><div>Maybe I'm missing something =
fundamental here? =
&nbsp;</div><div><br></div><div>--Dave</div><div><br></div><div><br><div><=
div>On Apr 27, 2009, at 9:47 AM, Mitchell Erblich wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">Group,<div><br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>First my =
thoughts are currently in the inception phase</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>and COULD =
apply to both wired and wireless&nbsp;</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>environments and I applogize for my =
verboseness.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>My initial assumptions are that a =
OSPF area will be</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>majority built using the common =
Ethernet (BMA) environment</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>and&nbsp;once a OSPF area =
is&nbsp;formed major LSA changes are =
rare.</div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Second is that the LSDB is =
comprised of say 50k LSAs<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>which are mostly/90% =
ExternalLSAs. Thus, Anton, I do not think<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>your =
numbers are correct. If we had routers forming adjs<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>via =
standard LSDB exchange each 100k LSAs sum exchange =
with<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>DR/BDR and using checksums. Then =
no ExternalLSA hdrs would<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>need to be exchanged with the =
BDR, thus removing almost</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;50% from database exchange. =
FYI: We got them from the DR.<br></div><div><br></div><div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>My below =
inquiry stated a checksum per LSA type and<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space: pre; ">	</span>the =
ability to generate subgroups of checksums per<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space: pre; ">	</span>LSA type. =
Yes, it also stated a full LSDB =
checksum.</div><div><br></div></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Since the flooding of LSAs is =
mostly the same, even a few<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>LSAs changing within the =
ExternalLSa type COULD be covered<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>by =
specifying that the A-Y range did not change and the<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>Z range =
has new hdrs/LSAs and updated =
normally.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>If the later/changes was false, =
during convergence, routing anomalies<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>would be =
a major concern and data would be routed improperly<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>or just =
lost. With OLD standardized TCP congestion avoidance<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>algorithms, a single lost packet assumes congestion =
and<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>assuming 100% bandwidth usage =
drops TCP to 50% with<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>multiplicative decrease. Then a =
huge number of round trips<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>before additive increase gets =
back to approx 100% bandwidth.<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>Even =
changes in routing paths can generate out-of-orderness =
with</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>the same result. Different hosts/end systems can have =
different<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Congestion Avoidance =
algorithms.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Thus, if convergences are =
frequent then the utilization<br></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>of each of the TCP connection =
paths would have frequently<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>poor bandwidth usage. So the =
assumption is that once a<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>OSPF area is formed, it tends to =
be UNCHANGING.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span><br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>I mentally prefer a predefined =
range such that routers<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>can pre-compute the checksums =
before even the<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>initial LSDB exchange. To =
predetermine where the<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>breaks should exist is currently =
unknown.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>I see three possible major wins =
where checksums COULD<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>be used.&nbsp;</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>&nbsp;&nbsp; &nbsp;&nbsp;The first is flooding from the DR to =
DRothers<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; &nbsp; =
&nbsp;&nbsp;to update the LSDB so the amount of flooding =
could<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; &nbsp; =
&nbsp;&nbsp;be minimized, with the same same effect of DNA =
LSAs.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>Effectively a group LSA =
refresh.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp;The second is when a =
DRother initially forms an adjacency</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>&nbsp;&nbsp; &nbsp; &nbsp;with the BDR and accepting that the =
ExternalLSAs would<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; &nbsp; &nbsp;be the =
majority of LSAs and the belief that the DRother</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>&nbsp;&nbsp; &nbsp; &nbsp;would already have the ExternalLSAs in =
its LSDB.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; The third is when =
the DRother wants to just verify that<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>no LSAs were lost due to either congestion, =
temp<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>drop of the adj, etc and =
verfify that no-one has either<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>given up rexmits or is still doing xmits. And to pick =
up<br></div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
		</span>a single dropped LSA without a full Database =
Exch.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span></div><div><br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>Getting =
back to the pre-computation would prevent a<span class=3D"Apple-tab-span" =
style=3D"white-space:pre"></span></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>OSPF speaking router from doing =
the calcs at adj<span class=3D"Apple-tab-span" =
style=3D"white-space:pre"></span></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>formation time. Even doing the =
calc at adj formation<span class=3D"Apple-tab-span" =
style=3D"white-space:pre"></span></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>should remove say 90+% of LSAs =
from needing to<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>be recomputed on each LSDB verify =
sync.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>However, to decrease the need to =
do the calcs at<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>overhead, first checking whether =
LSA type counts<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>match could be done and only if =
they match, then<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>do the necessary computation. The =
type, count,<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>and checksum, should generate =
some form of<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>uniqueness. Some field within the =
begining and<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>ending LSAs might add some more =
verifcation.</div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>So, what am I missing here? and =
why hasn't anybody</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>done =
this?<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Mitchell =
Erblich<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br></div>=
<div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		=
</span><br></div><div><div><div>On Apr 27, 2009, at 12:57 AM, Emmanuel =
Baccelli wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite">Hi Anton,<div><br></div><div>yes, a similar scheme was =
studied a few years back,&nbsp;in this paper:</div><div><a =
href=3D"http://www.emmanuelbaccelli.org/publications/WNET_2004.pdf">OSPF =
Database Exchange and Reliable Synchronization in Mobile Ad Hoc =
Networks</a></div><div><br></div><div>Such a mechanism could indeed lead =
to interesting performance enhancements, I agree with =
Richard.</div><div><br></div><div>cheers,</div><div><br></div><div>Emmanue=
l</div><div> <br></div><div><br><br><div class=3D"gmail_quote">On Mon, =
Apr 27, 2009 at 2:22 AM, Richard Ogier <span dir=3D"ltr">&lt;<a =
href=3D"mailto:ogier@earthlink.net">ogier@earthlink.net</a>&gt;</span> =
wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex;"> Anton,<br> <br> I =
like your idea of sending a checksum for a range of LSAs, to<br> =
increase the probability that the LSAs in a given range are in<br> sync =
between the two neighbors. &nbsp;(This helps even if the<br> age field =
is ignored when selecting the ranges.)<br> <br> For example, suppose =
there are 100 LSAs and each LSA has a 2%<br> chance of not being in =
sync. &nbsp;Then the probability that all<br> LSAs are in sync is =
.98^100 =3D .1326, too low to result in<br> a significant overhead =
reduction.<br> Now suppose the LSAs are divided into 10 ranges, each =
with 10 LSAs.<br> The probability that all LSAs in a given range are in =
sync is then<br> .98^10 =3D .8171, resulting in a big overhead reduction =
on average.<br> <br> The selected range for each LSA type can depend on =
how frequently<br> new LSAs are originated for that type, with a larger =
range chosen<br> if LSAs are originated less frequently (so that the =
probability<br> of being out of sync is lower).<br> <br> This idea can =
be combined with the database exchange optimization<br> of RFC 5243 to =
further reduce overhead. &nbsp;I.e., if the checksums<br> do not match, =
then RFC 5243 can be used to reduce the number of<br> LSA headers =
exchanged in DD packets by up to 50%.<br> Also, if the checksums do =
match for a given range of LSAs, then the<br> router receiving the =
checksum need not send the same checksum for<br> the same range of =
LSAs.<br><font color=3D"#888888"> <br> =
Richard</font><div><div></div><div class=3D"h5"><br> <br> Anton Smirnov =
wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"> &nbsp;Mitchell,<br> =
&nbsp;LSDBs may be very close but they are seldom EXACTLY the same. =
The<br> thing is that change in adjacency triggers LSA [re]build, so =
depending<br> on timing router and/or network LSAs may change by the =
time adjacency<br> restores.<br> &nbsp;Also, in moderately sized modern =
OSPF network there is constant<br> background noise of LSAs being =
refreshed. So again, chances that<br> refreshed LSA arrived to one side =
but not another while adjacency is<br> down are relatively high.<br> =
&nbsp;These considerations make precomputed checksums over large number =
of<br> LSAs rather bad for the purpose.<br> &nbsp;If you want to explore =
venue of checksumming database exchange then I<br> recommend to look for =
more flexible approach giving routers possibility<br> to choose range of =
LSAs to compute checksum over. For example, if both<br> routers support =
the checksum exchange then router sending DBD could<br> specify the =
first, the last LSA and value of some kind of hash of LSA<br> headers =
between them (LSAs in LSDB can be viewed as ordered sequence as<br> per =
RFC 5243). In this way router preparing DBD packet may place start<br> =
and end points of checksumming to avoid including into the range =
LSAs<br> with ages around 0 and MAXAGE (because these are LSAs which are =
less<br> likely to match between routers). So database exchange will =
consist of<br> series of single LSA headers (the 'old' way) and large =
LSA sequences.<br> <br> Anton<br> <br> <br> <br> Mitchell Erblich =
wrote:<br> &nbsp;<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Group,<br> <br> =
&nbsp; &nbsp; &nbsp; General thoughts...<br> <br> &nbsp; &nbsp; &nbsp; =
After a conversation about OSPF's standard database exchange and<br> how =
inefficient it<br> &nbsp; &nbsp; &nbsp; is when two routers have large =
LSDBs and them almost being the<br> same, we concluded<br> &nbsp; &nbsp; =
&nbsp; that the use of Checksums might significantly decrease the<br> =
amount of overhead and<br> &nbsp; &nbsp; &nbsp; achieve faster =
convergence.<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Moy first (I =
think) suggested the LSDB checksum support to<br> identify identical<br> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LSDBs. &nbsp;Sometime later the MIB =
supported the<br> ospfExternLsaChksumSum,<br> &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.<br> =
<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Thus, why not support the =
ability to have OSPF routers first<br> exchange<br> &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; checksums with LSA counts. If the LSDBs have more than =
XYZ<br> entries<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; in their LSDBs, =
then the counts which are above specific<br> thresholds then<br> &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; support the checksum on each X count of LSA =
type. Only the<br> groups<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; with =
non-matching Checksums would then go thru database<br> exchange.<br> =
<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Thus, before database exchange, =
support some form of triple<br> that<br> &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; as routers have almost the same LSDBs, &nbsp; the checksum =
exchange<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;would remove =
unnecessary LSA header exchange.<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; This, IMO, would also be a big win if say a DRother was<br> =
adjacent, lost<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; adjacency, and =
re-exstablished it a short time later while<br> keeping a<br> &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; past snapshot. It could remove its own =
originated LSAs and<br> compare<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
checksums..<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; In this =
scenario, within BMA areas, I think only DR /<br> DRother and BDR/ =
DRother<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; need to be making this =
Checksum exchange..<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Wouldn't =
the exchange of this data benefit each router<br> receiving the<br> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; information and allow both routers to =
know the number of<br> LSAs to<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; be =
possibly exchanged?<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; Yes, a new capability would probably have to be =
added.<br> <br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; So, the first =
question is whether the checksums are unique<br> enough with a<br> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count and type to determine whether =
that section of the LSDB<br> matches<br> &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; between two routers?<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
And then what savings would normally exist in this hybrid<br> database =
exchange<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; and is it worth the =
effort?<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp; &nbsp; =
Mitchell Erblich<br> <br> &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;_______________________________________________<br> OSPF mailing =
list<br> <a href=3D"mailto:OSPF@ietf.org" =
target=3D"_blank">OSPF@ietf.org</a><br> <a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/ospf</a><br> =
&nbsp; <br> </blockquote> =
_______________________________________________<br> OSPF mailing =
list<br> <a href=3D"mailto:OSPF@ietf.org" =
target=3D"_blank">OSPF@ietf.org</a><br> <a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/ospf</a><br> =
<br> &nbsp;<br> </blockquote> =
_______________________________________________<br> OSPF mailing =
list<br> <a href=3D"mailto:OSPF@ietf.org" =
target=3D"_blank">OSPF@ietf.org</a><br> <a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/ospf</a><br> =
</div></div></blockquote></div><br></div> =
_______________________________________________<br>OSPF mailing =
list<br><a href=3D"mailto:OSPF@ietf.org">OSPF@ietf.org</a><br><a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf">https://www.ietf.org/m=
ailman/listinfo/ospf</a><br></blockquote></div><br></div></div>___________=
____________________________________<br>OSPF mailing list<br><a =
href=3D"mailto:OSPF@ietf.org">OSPF@ietf.org</a><br>https://www.ietf.org/ma=
ilman/listinfo/ospf<br></blockquote></div><br></div></body></html>=

--Apple-Mail-4-574252028--

From dkatz@juniper.net  Mon Apr 27 16:28:03 2009
Return-Path: <dkatz@juniper.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7262128C0F5 for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 16:28:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.817
X-Spam-Level: 
X-Spam-Status: No, score=-5.817 tagged_above=-999 required=5 tests=[AWL=-0.615, BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=1.396, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xWU91Wv4oSAZ for <ospf@core3.amsl.com>; Mon, 27 Apr 2009 16:28:02 -0700 (PDT)
Received: from chip3og50.obsmtp.com (chip3og50.obsmtp.com [64.18.14.165]) by core3.amsl.com (Postfix) with ESMTP id 08A923A693B for <ospf@ietf.org>; Mon, 27 Apr 2009 16:28:01 -0700 (PDT)
Received: from source ([66.129.224.36]) (using TLSv1) by chip3ob50.postini.com ([64.18.6.12]) with SMTP ID DSNKSfY/0gQIpUjeq5J7qdsvGzeusgA6K5uq@postini.com; Mon, 27 Apr 2009 16:29:23 PDT
Received: from p-emfe01-sac.jnpr.net (66.129.254.72) by P-EMHUB01-HQ.jnpr.net (172.24.192.35) with Microsoft SMTP Server id 8.1.340.0; Mon, 27 Apr 2009 16:21:58 -0700
Received: from p-emlb02-sac.jnpr.net ([66.129.254.47]) by p-emfe01-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 27 Apr 2009 16:21:58 -0700
Received: from emailsmtp56.jnpr.net ([172.24.60.77]) by p-emlb02-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 27 Apr 2009 16:21:58 -0700
Received: from merlot.juniper.net ([172.17.27.10]) by emailsmtp56.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Mon, 27 Apr 2009 16:21:57 -0700
Received: from sa-nc-spg-31.static.jnpr.net (sa-nc-spg-31.static.jnpr.net [172.23.1.31])	by merlot.juniper.net (8.11.3/8.11.3) with ESMTP id n3RNLu099465;	Mon, 27 Apr 2009 16:21:56 -0700 (PDT)	(envelope-from dkatz@juniper.net)
Message-ID: <679D5102-F541-4F89-A90B-54A094188B48@juniper.net>
From: Dave Katz <dkatz@juniper.net>
To: Mitchell Erblich <erblichs@earthlink.net>
In-Reply-To: <AE191F43-1427-4ACD-A14A-9AF40E915611@earthlink.net>
Content-Type: multipart/alternative; boundary="Apple-Mail-5-574311613"
MIME-Version: 1.0 (Apple Message framework v930.3)
Date: Mon, 27 Apr 2009 18:21:56 -0500
References: <31E6E494-A396-47B3-ADD7-11661D867FAE@earthlink.net> <AE191F43-1427-4ACD-A14A-9AF40E915611@earthlink.net>
X-Mailer: Apple Mail (2.930.3)
X-OriginalArrivalTime: 27 Apr 2009 23:21:57.0335 (UTC) FILETIME=[F568F670:01C9C78E]
Cc: ospf@ietf.org
Subject: Re: [OSPF] Fwd: Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 Apr 2009 23:28:03 -0000

--Apple-Mail-5-574311613
Content-Type: text/plain; charset="US-ASCII"; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit

It's called "BGP".  *Nobody* injects external routing into OSPF,  
except by mistake (and then most routers melt under the load.)

--Dave

On Apr 27, 2009, at 3:19 PM, Mitchell Erblich wrote:

>
> Begin forwarded message:
>
>> From: Mitchell Erblich <erblichs@earthlink.net>
>> Date: April 27, 2009 12:20:58 PM PDT
>> To: "Joel M. Halpern" <jmh@joelhalpern.com>
>> Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre- 
>> Step
>>
>> Group and Joel,
>>
>> 		50K was a conservative number.
>>
>> 		And if you are saying that ASBRs no longer insert ExternalLSAs  
>> into a OSPF area,
>> 		then may I ask how do  OSPF routers route to destinations outside  
>> of the OSPF area?
>>
>> 		Mitchell Erblich
>> 		=========================
>> 		
>> On Apr 27, 2009, at 8:58 AM, Joel M. Halpern wrote:
>>
>>> Why would an OSPF domain typically have 90% External LSAs?  The  
>>> only way you could get that is if you were injecting your BGP  
>>> prefixes into OSPF.  Such injection is generally considered a bad  
>>> practice.  (Yes, it can be done.  Yes, we have the tools to do  
>>> it.  But it makes a mess.
>>>
>>> Details:
>>> ISPs almost never operate that way.
>>> Enterprises which are multi-connectded, but are moderate sized,  
>>> typically confine the external connections to a single part of the  
>>> net, and do not inject BGP prefixes into their enterprise routing,  
>>> even if they exchange BGP with their providers.
>>> Very large enterprises use a BGP overlay, and avoid injecting BGP  
>>> routes into OSPF.
>>>
>>> Yes, there are cases where they get injected.  Note that if you do  
>>> so, you get a LOT more than 50K routes.
>>>
>>> Yours,
>>> Joel M. Halpern
>>>
>>> Mitchell Erblich wrote:
>>>> Group,
>>>> First my thoughts are currently in the inception phase
>>>> and COULD apply to both wired and wireless environments and I  
>>>> applogize for my verboseness.
>>>> My initial assumptions are that a OSPF area will be
>>>> majority built using the common Ethernet (BMA) environment
>>>> and once a OSPF area is formed major LSA changes are rare.
>>>> Second is that the LSDB is comprised of say 50k LSAs
>>>> which are mostly/90% ExternalLSAs.
>>> ...
>>
>
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf


--Apple-Mail-5-574311613
Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">It's called "BGP". =
&nbsp;*Nobody* injects external routing into OSPF, except by mistake =
(and then most routers melt under the =
load.)<div><br></div><div>--Dave</div><div><br><div><div>On Apr 27, =
2009, at 3:19 PM, Mitchell Erblich wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; "><div><br><div>Begin forwarded =
message:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><font face=3D"Helvetica" =
size=3D"4" color=3D"#000000" style=3D"font: 14.0px Helvetica; color: =
#000000"><b>From: </b></font><font face=3D"Helvetica" size=3D"4" =
style=3D"font: 14.0px Helvetica">Mitchell Erblich &lt;<a =
href=3D"mailto:erblichs@earthlink.net">erblichs@earthlink.net</a>&gt;</fon=
t></div><div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: =
0px; margin-left: 0px; "><font face=3D"Helvetica" size=3D"4" =
color=3D"#000000" style=3D"font: 14.0px Helvetica; color: =
#000000"><b>Date: </b></font><font face=3D"Helvetica" size=3D"4" =
style=3D"font: 14.0px Helvetica">April 27, 2009 12:20:58 PM =
PDT</font></div><div style=3D"margin-top: 0px; margin-right: 0px; =
margin-bottom: 0px; margin-left: 0px; "><font face=3D"Helvetica" =
size=3D"4" color=3D"#000000" style=3D"font: 14.0px Helvetica; color: =
#000000"><b>To: </b></font><font face=3D"Helvetica" size=3D"4" =
style=3D"font: 14.0px Helvetica">"Joel M. Halpern" &lt;<a =
href=3D"mailto:jmh@joelhalpern.com">jmh@joelhalpern.com</a>&gt;</font></di=
v><div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px; "><font face=3D"Helvetica" size=3D"4" color=3D"#000000" =
style=3D"font: 14.0px Helvetica; color: #000000"><b>Subject: =
</b></font><font face=3D"Helvetica" size=3D"4" style=3D"font: 14.0px =
Helvetica"><b>Re: [OSPF] Preliminary idea: OSPF Database Exchange : =
Pre-Step</b></font></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; =
"><br></div> </div><div>Group and Joel,<br><br><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>50K was a =
conservative number.<br><br><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>And if you are saying that ASBRs =
no longer insert ExternalLSAs into a OSPF area,<br><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>then may =
I ask how do &nbsp;OSPF routers route to destinations outside of the =
OSPF area?<br><br><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Mitchell Erblich<br><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D<br><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span><br>On Apr 27, 2009, at 8:58 AM, Joel M. Halpern =
wrote:<br><br><blockquote type=3D"cite">Why would an OSPF domain =
typically have 90% External LSAs? &nbsp;The only way you could get that =
is if you were injecting your BGP prefixes into OSPF. &nbsp;Such =
injection is generally considered a bad practice. &nbsp;(Yes, it can be =
done. &nbsp;Yes, we have the tools to do it. &nbsp;But it makes a =
mess.<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote =
type=3D"cite">Details:<br></blockquote><blockquote type=3D"cite">ISPs =
almost never operate that way.<br></blockquote><blockquote =
type=3D"cite">Enterprises which are multi-connectded, but are moderate =
sized, typically confine the external connections to a single part of =
the net, and do not inject BGP prefixes into their enterprise routing, =
even if they exchange BGP with their =
providers.<br></blockquote><blockquote type=3D"cite">Very large =
enterprises use a BGP overlay, and avoid injecting BGP routes into =
OSPF.<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">Yes, there are =
cases where they get injected. &nbsp;Note that if you do so, you get a =
LOT more than 50K routes.<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote =
type=3D"cite">Yours,<br></blockquote><blockquote type=3D"cite">Joel M. =
Halpern<br></blockquote><blockquote =
type=3D"cite"><br></blockquote><blockquote type=3D"cite">Mitchell =
Erblich wrote:<br></blockquote><blockquote type=3D"cite"><blockquote =
type=3D"cite">Group,<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">First my thoughts are currently =
in the inception phase<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">and COULD apply to both wired =
and wireless environments and I applogize for my =
verboseness.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">My initial assumptions are that =
a OSPF area will be<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">majority built using the common =
Ethernet (BMA) environment<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">and once a OSPF area is formed =
major LSA changes are rare.<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">Second is that the LSDB is =
comprised of say 50k LSAs<br></blockquote></blockquote><blockquote =
type=3D"cite"><blockquote type=3D"cite">which are mostly/90% =
ExternalLSAs.<br></blockquote></blockquote><blockquote =
type=3D"cite">...<br></blockquote><br></div></blockquote></div><br></div>_=
______________________________________________<br>OSPF mailing =
list<br><a =
href=3D"mailto:OSPF@ietf.org">OSPF@ietf.org</a><br>https://www.ietf.org/ma=
ilman/listinfo/ospf<br></blockquote></div><br></div></body></html>=

--Apple-Mail-5-574311613--

From asmirnov@cisco.com  Tue Apr 28 03:48:45 2009
Return-Path: <asmirnov@cisco.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0E6983A6CA1 for <ospf@core3.amsl.com>; Tue, 28 Apr 2009 03:48:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.107
X-Spam-Level: 
X-Spam-Status: No, score=-0.107 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FRT_ESTABLISH2=2.492]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ox3WsFsXILU0 for <ospf@core3.amsl.com>; Tue, 28 Apr 2009 03:48:43 -0700 (PDT)
Received: from av-tac-bru.cisco.com (weird-brew.cisco.com [144.254.15.118]) by core3.amsl.com (Postfix) with ESMTP id F31003A6C99 for <ospf@ietf.org>; Tue, 28 Apr 2009 03:48:42 -0700 (PDT)
X-TACSUNS: Virus Scanned
Received: from strange-brew.cisco.com (localhost.cisco.com [127.0.0.1]) by av-tac-bru.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id n3SAo0Ke009181; Tue, 28 Apr 2009 12:50:01 +0200 (CEST)
Received: from [10.55.140.89] (ams-asmirnov-8718.cisco.com [10.55.140.89]) by strange-brew.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id n3SAo0U9012571; Tue, 28 Apr 2009 12:50:00 +0200 (CEST)
Message-ID: <49F6DF5D.80409@cisco.com>
Date: Tue, 28 Apr 2009 12:50:05 +0200
From: Anton Smirnov <asmirnov@cisco.com>
Organization: Cisco Systems, Inc.
User-Agent: Thunderbird 2.0.0.19 (X11/20081227)
MIME-Version: 1.0
To: Dave Katz <dkatz@juniper.net>
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net>	<49EE0286.9070903@cisco.com> <49F4FAB9.4030009@earthlink.net>	<be8c8d780904270057gac5fa7ei9b3f366189949584@mail.gmail.com>	<B8093021-06F3-43BD-883B-55E6C8C608CC@earthlink.net> <0E0F4684-5F14-4E13-B573-DC1F32C31317@juniper.net>
In-Reply-To: <0E0F4684-5F14-4E13-B573-DC1F32C31317@juniper.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: ospf@ietf.org
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 Apr 2009 10:48:45 -0000

   Hi Dave,
   I agree with you in most (but not all) statements.

> Bandwidth and CPU are practically free

   Unless you consider MANETs where bandwidth is not free and CPU
resources may also be relatively limited.
   Originally idea of checksumming was born in context of MANETs. And in
that environment exchange of database checksums may actually work  well.
   The first Mitchell's post was about network scenario NOT related to
MANETs but questioned how well that idea will work. So my post was more
to point out that no, idea conceived with MANET in mind will not work in
non-MANET environment. At least not until the idea is properly generalized.


> If you want to improve adjacency bringup in a non-compatible way, it
> seems like a more effective mechanism would be simply to fix the
> brain-dead DBD protocol so that it is not stop-and-wait

   Agree.


>  if you can
> pump a few hundred PPS of DBDs across the wire without stopping, you can
> sync up very quickly in terms of wall-clock time without getting into
> the inevitable problems caused by trying to glom LSAs together and
> expecting them to sit still in the process.  It seems a lot cheaper and
> more straightforward.

   That's good only in case of homogeneous network of powerful routers
connected by high-bandwidth links.
   It is likely to give a lot of troubles in star topologies where one
router has many neighbors. Fast DBD flooding from spokes will just swamp
the hub router.
   And I have mentioned it is not going to work in case of MANETs.


   Of course, transport protocols have solved all these issues long time
ago. But we don't want to turn DBD into window-based protocol with slow
start, congestion avoidance and all the stuff :-)

   Thanks,

Anton



Dave Katz wrote:
> On first principles, it seems as though the only reason to do something
> like this is to reduce the amount of time it takes to bring up a new
> link, and even that is probably only interesting if the network is at
> least slightly partitioned without it.  Keep in mind that such a scheme
> is only useful if the database is already close to synchronized, so it
> doesn't help when a router first comes up.  Given all that, it's not
> entirely clear that doing this is *that* interesting, but no matter.
> 
> The problem with any of these checksum schemes is that the benefits are
> compromised by the LSA refresh mechanism, as has been noted.  With
> 50,000 LSAs, my back-of-the-laptop calculations are that an LSA is
> refreshed on the average of once every 36 msec, or roughly 30 per
> second.  Scalable implementations go out of their way to smooth
> refreshes when they are originating a large number of LSAs, and if there
> are a large number of machines originating a small number of LSAs, these
> will (hopefully) tend to be smoothed out as well, in a way that does not
> correlate with the ordering mechanism proposed.
> 
> The efficiency of such schemes improves as the number of LSAs per
> checksum block goes up, but so does the probability of a checksum
> failure, in which case you're actually worse off than if you'd just send
> the darned things (since you have to anyhow, unless you start doing
> scary bifurcations of the space, all of which takes more time, and all
> of which causes even more LSAs to be stale.)
> 
> If that 50K LSA network was represented as 30 checksum blocks, and it
> takes a second for the basic handshaking to take place with a neighbor,
> the odds are decent that *all* of them will fail, in which case it's a
> waste of time.  Keep in mind that if you want to avoid bad checksums,
> you need to make the block size small, and thus the number of blocks
> large, and then you end up back where you started from unless the
> checksum-exchange protocol is reasonably windowed as well.
> 
> If you want to improve adjacency bringup in a non-compatible way, it
> seems like a more effective mechanism would be simply to fix the
> brain-dead DBD protocol so that it is not stop-and-wait;  if you can
> pump a few hundred PPS of DBDs across the wire without stopping, you can
> sync up very quickly in terms of wall-clock time without getting into
> the inevitable problems caused by trying to glom LSAs together and
> expecting them to sit still in the process.  It seems a lot cheaper and
> more straightforward.
> 
> Bandwidth and CPU are practically free (particularly for something done
> relatively rarely) so trying to do heroic things to optimize such
> situations seems like a waste of effort.
> 
> Maybe I'm missing something fundamental here?  
> 
> --Dave
> 
> 
> On Apr 27, 2009, at 9:47 AM, Mitchell Erblich wrote:
> 
>> Group,
>>
>> First my thoughts are currently in the inception phase
>> and COULD apply to both wired and wireless 
>> environments and I applogize for my verboseness.
>>
>> My initial assumptions are that a OSPF area will be
>> majority built using the common Ethernet (BMA) environment
>> and once a OSPF area is formed major LSA changes are rare.
>>
>> Second is that the LSDB is comprised of say 50k LSAs
>> which are mostly/90% ExternalLSAs. Thus, Anton, I do not think
>> your numbers are correct. If we had routers forming adjs
>> via standard LSDB exchange each 100k LSAs sum exchange with
>> DR/BDR and using checksums. Then no ExternalLSA hdrs would
>> need to be exchanged with the BDR, thus removing almost
>>  50% from database exchange. FYI: We got them from the DR.
>>
>> My below inquiry stated a checksum per LSA type and
>> the ability to generate subgroups of checksums per
>> LSA type. Yes, it also stated a full LSDB checksum.
>>
>> Since the flooding of LSAs is mostly the same, even a few
>> LSAs changing within the ExternalLSa type COULD be covered
>> by specifying that the A-Y range did not change and the
>> Z range has new hdrs/LSAs and updated normally.
>>
>> If the later/changes was false, during convergence, routing anomalies
>> would be a major concern and data would be routed improperly
>> or just lost. With OLD standardized TCP congestion avoidance
>> algorithms, a single lost packet assumes congestion and
>> assuming 100% bandwidth usage drops TCP to 50% with
>> multiplicative decrease. Then a huge number of round trips
>> before additive increase gets back to approx 100% bandwidth.
>> Even changes in routing paths can generate out-of-orderness with
>> the same result. Different hosts/end systems can have different
>> Congestion Avoidance algorithms.
>>
>> Thus, if convergences are frequent then the utilization
>> of each of the TCP connection paths would have frequently
>> poor bandwidth usage. So the assumption is that once a
>> OSPF area is formed, it tends to be UNCHANGING.
>>
>>
>> I mentally prefer a predefined range such that routers
>> can pre-compute the checksums before even the
>> initial LSDB exchange. To predetermine where the
>> breaks should exist is currently unknown.
>>
>> I see three possible major wins where checksums COULD
>> be used. 
>>      The first is flooding from the DR to DRothers
>>        to update the LSDB so the amount of flooding could
>>        be minimized, with the same same effect of DNA LSAs.
>> Effectively a group LSA refresh.
>>   The second is when a DRother initially forms an adjacency
>>       with the BDR and accepting that the ExternalLSAs would
>>       be the majority of LSAs and the belief that the DRother
>>       would already have the ExternalLSAs in its LSDB.
>>    The third is when the DRother wants to just verify that
>> no LSAs were lost due to either congestion, temp
>> drop of the adj, etc and verfify that no-one has either
>> given up rexmits or is still doing xmits. And to pick up
>> a single dropped LSA without a full Database Exch.
>>
>> Getting back to the pre-computation would prevent a
>> OSPF speaking router from doing the calcs at adj
>> formation time. Even doing the calc at adj formation
>> should remove say 90+% of LSAs from needing to
>> be recomputed on each LSDB verify sync.
>>
>> However, to decrease the need to do the calcs at
>> overhead, first checking whether LSA type counts
>> match could be done and only if they match, then
>> do the necessary computation. The type, count,
>> and checksum, should generate some form of
>> uniqueness. Some field within the begining and
>> ending LSAs might add some more verifcation.
>>
>> So, what am I missing here? and why hasn't anybody
>> done this?
>>
>> Mitchell Erblich
>> ===================
>>
>>
>> On Apr 27, 2009, at 12:57 AM, Emmanuel Baccelli wrote:
>>
>>> Hi Anton,
>>>
>>> yes, a similar scheme was studied a few years back, in this paper:
>>> OSPF Database Exchange and Reliable Synchronization in Mobile Ad Hoc
>>> Networks <http://www.emmanuelbaccelli.org/publications/WNET_2004.pdf>
>>>
>>> Such a mechanism could indeed lead to interesting performance
>>> enhancements, I agree with Richard.
>>>
>>> cheers,
>>>
>>> Emmanuel
>>>
>>>
>>>
>>> On Mon, Apr 27, 2009 at 2:22 AM, Richard Ogier <ogier@earthlink.net
>>> <mailto:ogier@earthlink.net>> wrote:
>>>
>>>     Anton,
>>>
>>>     I like your idea of sending a checksum for a range of LSAs, to
>>>     increase the probability that the LSAs in a given range are in
>>>     sync between the two neighbors.  (This helps even if the
>>>     age field is ignored when selecting the ranges.)
>>>
>>>     For example, suppose there are 100 LSAs and each LSA has a 2%
>>>     chance of not being in sync.  Then the probability that all
>>>     LSAs are in sync is .98^100 = .1326, too low to result in
>>>     a significant overhead reduction.
>>>     Now suppose the LSAs are divided into 10 ranges, each with 10 LSAs.
>>>     The probability that all LSAs in a given range are in sync is then
>>>     .98^10 = .8171, resulting in a big overhead reduction on average.
>>>
>>>     The selected range for each LSA type can depend on how frequently
>>>     new LSAs are originated for that type, with a larger range chosen
>>>     if LSAs are originated less frequently (so that the probability
>>>     of being out of sync is lower).
>>>
>>>     This idea can be combined with the database exchange optimization
>>>     of RFC 5243 to further reduce overhead.  I.e., if the checksums
>>>     do not match, then RFC 5243 can be used to reduce the number of
>>>     LSA headers exchanged in DD packets by up to 50%.
>>>     Also, if the checksums do match for a given range of LSAs, then the
>>>     router receiving the checksum need not send the same checksum for
>>>     the same range of LSAs.
>>>
>>>     Richard
>>>
>>>
>>>     Anton Smirnov wrote:
>>>
>>>          Mitchell,
>>>          LSDBs may be very close but they are seldom EXACTLY the
>>>         same. The
>>>         thing is that change in adjacency triggers LSA [re]build, so
>>>         depending
>>>         on timing router and/or network LSAs may change by the time
>>>         adjacency
>>>         restores.
>>>          Also, in moderately sized modern OSPF network there is constant
>>>         background noise of LSAs being refreshed. So again, chances that
>>>         refreshed LSA arrived to one side but not another while
>>>         adjacency is
>>>         down are relatively high.
>>>          These considerations make precomputed checksums over large
>>>         number of
>>>         LSAs rather bad for the purpose.
>>>          If you want to explore venue of checksumming database
>>>         exchange then I
>>>         recommend to look for more flexible approach giving routers
>>>         possibility
>>>         to choose range of LSAs to compute checksum over. For
>>>         example, if both
>>>         routers support the checksum exchange then router sending DBD
>>>         could
>>>         specify the first, the last LSA and value of some kind of
>>>         hash of LSA
>>>         headers between them (LSAs in LSDB can be viewed as ordered
>>>         sequence as
>>>         per RFC 5243). In this way router preparing DBD packet may
>>>         place start
>>>         and end points of checksumming to avoid including into the
>>>         range LSAs
>>>         with ages around 0 and MAXAGE (because these are LSAs which
>>>         are less
>>>         likely to match between routers). So database exchange will
>>>         consist of
>>>         series of single LSA headers (the 'old' way) and large LSA
>>>         sequences.
>>>
>>>         Anton
>>>
>>>
>>>
>>>         Mitchell Erblich wrote:
>>>          
>>>
>>>             Group,
>>>
>>>                   General thoughts...
>>>
>>>                   After a conversation about OSPF's standard database
>>>             exchange and
>>>             how inefficient it
>>>                   is when two routers have large LSDBs and them
>>>             almost being the
>>>             same, we concluded
>>>                   that the use of Checksums might significantly
>>>             decrease the
>>>             amount of overhead and
>>>                   achieve faster convergence.
>>>
>>>                       Moy first (I think) suggested the LSDB checksum
>>>             support to
>>>             identify identical
>>>                       LSDBs.  Sometime later the MIB supported the
>>>             ospfExternLsaChksumSum,
>>>                       ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.
>>>
>>>                       Thus, why not support the ability to have OSPF
>>>             routers first
>>>             exchange
>>>                       checksums with LSA counts. If the LSDBs have
>>>             more than XYZ
>>>             entries
>>>                       in their LSDBs, then the counts which are above
>>>             specific
>>>             thresholds then
>>>                       support the checksum on each X count of LSA
>>>             type. Only the
>>>             groups
>>>                       with non-matching Checksums would then go thru
>>>             database
>>>             exchange.
>>>
>>>                       Thus, before database exchange, support some
>>>             form of triple
>>>             that
>>>                       as routers have almost the same LSDBs,   the
>>>             checksum exchange
>>>                        would remove unnecessary LSA header exchange.
>>>
>>>                       This, IMO, would also be a big win if say a
>>>             DRother was
>>>             adjacent, lost
>>>                       adjacency, and re-exstablished it a short time
>>>             later while
>>>             keeping a
>>>                       past snapshot. It could remove its own
>>>             originated LSAs and
>>>             compare
>>>                       checksums..
>>>
>>>                       In this scenario, within BMA areas, I think
>>>             only DR /
>>>             DRother and BDR/ DRother
>>>                       need to be making this Checksum exchange..
>>>
>>>                       Wouldn't the exchange of this data benefit each
>>>             router
>>>             receiving the
>>>                       information and allow both routers to know the
>>>             number of
>>>             LSAs to
>>>                       be possibly exchanged?
>>>                                 Yes, a new capability would probably
>>>             have to be added.
>>>
>>>
>>>                       So, the first question is whether the checksums
>>>             are unique
>>>             enough with a
>>>                       count and type to determine whether that
>>>             section of the LSDB
>>>             matches
>>>                       between two routers?
>>>
>>>                       And then what savings would normally exist in
>>>             this hybrid
>>>             database exchange
>>>                       and is it worth the effort?
>>>                      
>>>                   Mitchell Erblich
>>>
>>>                  
>>>                          
>>>              _______________________________________________
>>>             OSPF mailing list
>>>             OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>             https://www.ietf.org/mailman/listinfo/ospf
>>>              
>>>
>>>         _______________________________________________
>>>         OSPF mailing list
>>>         OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>         https://www.ietf.org/mailman/listinfo/ospf
>>>
>>>          
>>>
>>>     _______________________________________________
>>>     OSPF mailing list
>>>     OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>     https://www.ietf.org/mailman/listinfo/ospf
>>>
>>>
>>> _______________________________________________
>>> OSPF mailing list
>>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>>> https://www.ietf.org/mailman/listinfo/ospf
>>
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>> https://www.ietf.org/mailman/listinfo/ospf
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf

From dkatz@juniper.net  Tue Apr 28 17:03:46 2009
Return-Path: <dkatz@juniper.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0E8843A6781 for <ospf@core3.amsl.com>; Tue, 28 Apr 2009 17:03:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.231
X-Spam-Level: 
X-Spam-Status: No, score=-5.231 tagged_above=-999 required=5 tests=[AWL=-1.124, BAYES_00=-2.599, FRT_ESTABLISH2=2.492, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3raPsY5A0N6a for <ospf@core3.amsl.com>; Tue, 28 Apr 2009 17:03:44 -0700 (PDT)
Received: from chip3og59.obsmtp.com (chip3og59.obsmtp.com [64.18.14.183]) by core3.amsl.com (Postfix) with ESMTP id 4DC853A6DB5 for <ospf@ietf.org>; Tue, 28 Apr 2009 17:01:02 -0700 (PDT)
Received: from source ([66.129.224.36]) (using TLSv1) by chip3ob59.postini.com ([64.18.6.12]) with SMTP ID DSNKSfeZD5Yr34vjliPNCC6LrIAdtOHIbQ1E@postini.com; Tue, 28 Apr 2009 17:02:45 PDT
Received: from p-emfe01-sac.jnpr.net (66.129.254.72) by P-EMHUB01-HQ.jnpr.net (172.24.192.35) with Microsoft SMTP Server id 8.1.340.0; Tue, 28 Apr 2009 16:50:37 -0700
Received: from p-emlb02-sac.jnpr.net ([66.129.254.47]) by p-emfe01-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Tue, 28 Apr 2009 16:50:37 -0700
Received: from emailsmtp55.jnpr.net ([172.24.18.132]) by p-emlb02-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Tue, 28 Apr 2009 16:50:37 -0700
Received: from merlot.juniper.net ([172.17.27.10]) by emailsmtp55.jnpr.net with Microsoft SMTPSVC(6.0.3790.1830); Tue, 28 Apr 2009 16:50:36 -0700
Received: from sa-nc-spg-52.static.jnpr.net (sa-nc-spg-52.static.jnpr.net [172.23.1.52])	by merlot.juniper.net (8.11.3/8.11.3) with ESMTP id n3SNoZ044676;	Tue, 28 Apr 2009 16:50:36 -0700 (PDT)	(envelope-from dkatz@juniper.net)
Message-ID: <E0D6017D-5030-42EB-AC73-234E0768985E@juniper.net>
From: Dave Katz <dkatz@juniper.net>
To: Anton Smirnov <asmirnov@cisco.com>
In-Reply-To: <49F6DF5D.80409@cisco.com>
Content-Type: text/plain; charset="US-ASCII"; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 (Apple Message framework v930.3)
Date: Tue, 28 Apr 2009 18:50:34 -0500
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net>	<49EE0286.9070903@cisco.com> <49F4FAB9.4030009@earthlink.net>	<be8c8d780904270057gac5fa7ei9b3f366189949584@mail.gmail.com>	<B8093021-06F3-43BD-883B-55E6C8C608CC@earthlink.net> <0E0F4684-5F14-4E13-B573-DC1F32C31317@juniper.net> <49F6DF5D.80409@cisco.com>
X-Mailer: Apple Mail (2.930.3)
X-OriginalArrivalTime: 28 Apr 2009 23:50:36.0611 (UTC) FILETIME=[20976930:01C9C85C]
Cc: ospf@ietf.org
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Apr 2009 00:03:46 -0000

On Apr 28, 2009, at 5:50 AM, Anton Smirnov wrote:

>   Hi Dave,
>   I agree with you in most (but not all) statements.
>
>> Bandwidth and CPU are practically free
>
>   Unless you consider MANETs where bandwidth is not free and CPU
> resources may also be relatively limited.
>   Originally idea of checksumming was born in context of MANETs. And  
> in
> that environment exchange of database checksums may actually work   
> well.
>   The first Mitchell's post was about network scenario NOT related to
> MANETs but questioned how well that idea will work. So my post was  
> more
> to point out that no, idea conceived with MANET in mind will not  
> work in
> non-MANET environment. At least not until the idea is properly  
> generalized.

I guess I'd be impressed with a network that had 50,000 LSAs but very  
limited bandwidth and CPU.  I have a feeling that such a network would  
have bigger problems than the time it takes to bring up an additional  
link.

>
>
>> If you want to improve adjacency bringup in a non-compatible way, it
>> seems like a more effective mechanism would be simply to fix the
>> brain-dead DBD protocol so that it is not stop-and-wait
>
>   Agree.
>
>
>> if you can
>> pump a few hundred PPS of DBDs across the wire without stopping,  
>> you can
>> sync up very quickly in terms of wall-clock time without getting into
>> the inevitable problems caused by trying to glom LSAs together and
>> expecting them to sit still in the process.  It seems a lot cheaper  
>> and
>> more straightforward.
>
>   That's good only in case of homogeneous network of powerful routers
> connected by high-bandwidth links.
>   It is likely to give a lot of troubles in star topologies where one
> router has many neighbors. Fast DBD flooding from spokes will just  
> swamp
> the hub router.
>   And I have mentioned it is not going to work in case of MANETs.

But this is no different than the situation with LSUpd packets today,  
and needs to be solved in the same way (hack.)  We used to deal with a  
much worse situation ten or fifteen years ago, which were sizable full  
meshes.  If it were easy, we wouldn't make any money doing it.  ;-)

--Dave

>
>
>   Of course, transport protocols have solved all these issues long  
> time
> ago. But we don't want to turn DBD into window-based protocol with  
> slow
> start, congestion avoidance and all the stuff :-)
>
>   Thanks,
>
> Anton
>
>
>
> Dave Katz wrote:
>> On first principles, it seems as though the only reason to do  
>> something
>> like this is to reduce the amount of time it takes to bring up a new
>> link, and even that is probably only interesting if the network is at
>> least slightly partitioned without it.  Keep in mind that such a  
>> scheme
>> is only useful if the database is already close to synchronized, so  
>> it
>> doesn't help when a router first comes up.  Given all that, it's not
>> entirely clear that doing this is *that* interesting, but no matter.
>>
>> The problem with any of these checksum schemes is that the benefits  
>> are
>> compromised by the LSA refresh mechanism, as has been noted.  With
>> 50,000 LSAs, my back-of-the-laptop calculations are that an LSA is
>> refreshed on the average of once every 36 msec, or roughly 30 per
>> second.  Scalable implementations go out of their way to smooth
>> refreshes when they are originating a large number of LSAs, and if  
>> there
>> are a large number of machines originating a small number of LSAs,  
>> these
>> will (hopefully) tend to be smoothed out as well, in a way that  
>> does not
>> correlate with the ordering mechanism proposed.
>>
>> The efficiency of such schemes improves as the number of LSAs per
>> checksum block goes up, but so does the probability of a checksum
>> failure, in which case you're actually worse off than if you'd just  
>> send
>> the darned things (since you have to anyhow, unless you start doing
>> scary bifurcations of the space, all of which takes more time, and  
>> all
>> of which causes even more LSAs to be stale.)
>>
>> If that 50K LSA network was represented as 30 checksum blocks, and it
>> takes a second for the basic handshaking to take place with a  
>> neighbor,
>> the odds are decent that *all* of them will fail, in which case  
>> it's a
>> waste of time.  Keep in mind that if you want to avoid bad checksums,
>> you need to make the block size small, and thus the number of blocks
>> large, and then you end up back where you started from unless the
>> checksum-exchange protocol is reasonably windowed as well.
>>
>> If you want to improve adjacency bringup in a non-compatible way, it
>> seems like a more effective mechanism would be simply to fix the
>> brain-dead DBD protocol so that it is not stop-and-wait;  if you can
>> pump a few hundred PPS of DBDs across the wire without stopping,  
>> you can
>> sync up very quickly in terms of wall-clock time without getting into
>> the inevitable problems caused by trying to glom LSAs together and
>> expecting them to sit still in the process.  It seems a lot cheaper  
>> and
>> more straightforward.
>>
>> Bandwidth and CPU are practically free (particularly for something  
>> done
>> relatively rarely) so trying to do heroic things to optimize such
>> situations seems like a waste of effort.
>>
>> Maybe I'm missing something fundamental here?
>>
>> --Dave
>>
>>
>> On Apr 27, 2009, at 9:47 AM, Mitchell Erblich wrote:
>>
>>> Group,
>>>
>>> First my thoughts are currently in the inception phase
>>> and COULD apply to both wired and wireless
>>> environments and I applogize for my verboseness.
>>>
>>> My initial assumptions are that a OSPF area will be
>>> majority built using the common Ethernet (BMA) environment
>>> and once a OSPF area is formed major LSA changes are rare.
>>>
>>> Second is that the LSDB is comprised of say 50k LSAs
>>> which are mostly/90% ExternalLSAs. Thus, Anton, I do not think
>>> your numbers are correct. If we had routers forming adjs
>>> via standard LSDB exchange each 100k LSAs sum exchange with
>>> DR/BDR and using checksums. Then no ExternalLSA hdrs would
>>> need to be exchanged with the BDR, thus removing almost
>>> 50% from database exchange. FYI: We got them from the DR.
>>>
>>> My below inquiry stated a checksum per LSA type and
>>> the ability to generate subgroups of checksums per
>>> LSA type. Yes, it also stated a full LSDB checksum.
>>>
>>> Since the flooding of LSAs is mostly the same, even a few
>>> LSAs changing within the ExternalLSa type COULD be covered
>>> by specifying that the A-Y range did not change and the
>>> Z range has new hdrs/LSAs and updated normally.
>>>
>>> If the later/changes was false, during convergence, routing  
>>> anomalies
>>> would be a major concern and data would be routed improperly
>>> or just lost. With OLD standardized TCP congestion avoidance
>>> algorithms, a single lost packet assumes congestion and
>>> assuming 100% bandwidth usage drops TCP to 50% with
>>> multiplicative decrease. Then a huge number of round trips
>>> before additive increase gets back to approx 100% bandwidth.
>>> Even changes in routing paths can generate out-of-orderness with
>>> the same result. Different hosts/end systems can have different
>>> Congestion Avoidance algorithms.
>>>
>>> Thus, if convergences are frequent then the utilization
>>> of each of the TCP connection paths would have frequently
>>> poor bandwidth usage. So the assumption is that once a
>>> OSPF area is formed, it tends to be UNCHANGING.
>>>
>>>
>>> I mentally prefer a predefined range such that routers
>>> can pre-compute the checksums before even the
>>> initial LSDB exchange. To predetermine where the
>>> breaks should exist is currently unknown.
>>>
>>> I see three possible major wins where checksums COULD
>>> be used.
>>>     The first is flooding from the DR to DRothers
>>>       to update the LSDB so the amount of flooding could
>>>       be minimized, with the same same effect of DNA LSAs.
>>> Effectively a group LSA refresh.
>>>  The second is when a DRother initially forms an adjacency
>>>      with the BDR and accepting that the ExternalLSAs would
>>>      be the majority of LSAs and the belief that the DRother
>>>      would already have the ExternalLSAs in its LSDB.
>>>   The third is when the DRother wants to just verify that
>>> no LSAs were lost due to either congestion, temp
>>> drop of the adj, etc and verfify that no-one has either
>>> given up rexmits or is still doing xmits. And to pick up
>>> a single dropped LSA without a full Database Exch.
>>>
>>> Getting back to the pre-computation would prevent a
>>> OSPF speaking router from doing the calcs at adj
>>> formation time. Even doing the calc at adj formation
>>> should remove say 90+% of LSAs from needing to
>>> be recomputed on each LSDB verify sync.
>>>
>>> However, to decrease the need to do the calcs at
>>> overhead, first checking whether LSA type counts
>>> match could be done and only if they match, then
>>> do the necessary computation. The type, count,
>>> and checksum, should generate some form of
>>> uniqueness. Some field within the begining and
>>> ending LSAs might add some more verifcation.
>>>
>>> So, what am I missing here? and why hasn't anybody
>>> done this?
>>>
>>> Mitchell Erblich
>>> ===================
>>>
>>>
>>> On Apr 27, 2009, at 12:57 AM, Emmanuel Baccelli wrote:
>>>
>>>> Hi Anton,
>>>>
>>>> yes, a similar scheme was studied a few years back, in this paper:
>>>> OSPF Database Exchange and Reliable Synchronization in Mobile Ad  
>>>> Hoc
>>>> Networks <http://www.emmanuelbaccelli.org/publications/WNET_2004.pdf 
>>>> >
>>>>
>>>> Such a mechanism could indeed lead to interesting performance
>>>> enhancements, I agree with Richard.
>>>>
>>>> cheers,
>>>>
>>>> Emmanuel
>>>>
>>>>
>>>>
>>>> On Mon, Apr 27, 2009 at 2:22 AM, Richard Ogier <ogier@earthlink.net
>>>> <mailto:ogier@earthlink.net>> wrote:
>>>>
>>>>    Anton,
>>>>
>>>>    I like your idea of sending a checksum for a range of LSAs, to
>>>>    increase the probability that the LSAs in a given range are in
>>>>    sync between the two neighbors.  (This helps even if the
>>>>    age field is ignored when selecting the ranges.)
>>>>
>>>>    For example, suppose there are 100 LSAs and each LSA has a 2%
>>>>    chance of not being in sync.  Then the probability that all
>>>>    LSAs are in sync is .98^100 = .1326, too low to result in
>>>>    a significant overhead reduction.
>>>>    Now suppose the LSAs are divided into 10 ranges, each with 10  
>>>> LSAs.
>>>>    The probability that all LSAs in a given range are in sync is  
>>>> then
>>>>    .98^10 = .8171, resulting in a big overhead reduction on  
>>>> average.
>>>>
>>>>    The selected range for each LSA type can depend on how  
>>>> frequently
>>>>    new LSAs are originated for that type, with a larger range  
>>>> chosen
>>>>    if LSAs are originated less frequently (so that the probability
>>>>    of being out of sync is lower).
>>>>
>>>>    This idea can be combined with the database exchange  
>>>> optimization
>>>>    of RFC 5243 to further reduce overhead.  I.e., if the checksums
>>>>    do not match, then RFC 5243 can be used to reduce the number of
>>>>    LSA headers exchanged in DD packets by up to 50%.
>>>>    Also, if the checksums do match for a given range of LSAs,  
>>>> then the
>>>>    router receiving the checksum need not send the same checksum  
>>>> for
>>>>    the same range of LSAs.
>>>>
>>>>    Richard
>>>>
>>>>
>>>>    Anton Smirnov wrote:
>>>>
>>>>         Mitchell,
>>>>         LSDBs may be very close but they are seldom EXACTLY the
>>>>        same. The
>>>>        thing is that change in adjacency triggers LSA [re]build, so
>>>>        depending
>>>>        on timing router and/or network LSAs may change by the time
>>>>        adjacency
>>>>        restores.
>>>>         Also, in moderately sized modern OSPF network there is  
>>>> constant
>>>>        background noise of LSAs being refreshed. So again,  
>>>> chances that
>>>>        refreshed LSA arrived to one side but not another while
>>>>        adjacency is
>>>>        down are relatively high.
>>>>         These considerations make precomputed checksums over large
>>>>        number of
>>>>        LSAs rather bad for the purpose.
>>>>         If you want to explore venue of checksumming database
>>>>        exchange then I
>>>>        recommend to look for more flexible approach giving routers
>>>>        possibility
>>>>        to choose range of LSAs to compute checksum over. For
>>>>        example, if both
>>>>        routers support the checksum exchange then router sending  
>>>> DBD
>>>>        could
>>>>        specify the first, the last LSA and value of some kind of
>>>>        hash of LSA
>>>>        headers between them (LSAs in LSDB can be viewed as ordered
>>>>        sequence as
>>>>        per RFC 5243). In this way router preparing DBD packet may
>>>>        place start
>>>>        and end points of checksumming to avoid including into the
>>>>        range LSAs
>>>>        with ages around 0 and MAXAGE (because these are LSAs which
>>>>        are less
>>>>        likely to match between routers). So database exchange will
>>>>        consist of
>>>>        series of single LSA headers (the 'old' way) and large LSA
>>>>        sequences.
>>>>
>>>>        Anton
>>>>
>>>>
>>>>
>>>>        Mitchell Erblich wrote:
>>>>
>>>>
>>>>            Group,
>>>>
>>>>                  General thoughts...
>>>>
>>>>                  After a conversation about OSPF's standard  
>>>> database
>>>>            exchange and
>>>>            how inefficient it
>>>>                  is when two routers have large LSDBs and them
>>>>            almost being the
>>>>            same, we concluded
>>>>                  that the use of Checksums might significantly
>>>>            decrease the
>>>>            amount of overhead and
>>>>                  achieve faster convergence.
>>>>
>>>>                      Moy first (I think) suggested the LSDB  
>>>> checksum
>>>>            support to
>>>>            identify identical
>>>>                      LSDBs.  Sometime later the MIB supported the
>>>>            ospfExternLsaChksumSum,
>>>>                      ospfAreaLsaChksumSum, and ospfLsdbChecksum  
>>>> fields.
>>>>
>>>>                      Thus, why not support the ability to have OSPF
>>>>            routers first
>>>>            exchange
>>>>                      checksums with LSA counts. If the LSDBs have
>>>>            more than XYZ
>>>>            entries
>>>>                      in their LSDBs, then the counts which are  
>>>> above
>>>>            specific
>>>>            thresholds then
>>>>                      support the checksum on each X count of LSA
>>>>            type. Only the
>>>>            groups
>>>>                      with non-matching Checksums would then go thru
>>>>            database
>>>>            exchange.
>>>>
>>>>                      Thus, before database exchange, support some
>>>>            form of triple
>>>>            that
>>>>                      as routers have almost the same LSDBs,   the
>>>>            checksum exchange
>>>>                       would remove unnecessary LSA header exchange.
>>>>
>>>>                      This, IMO, would also be a big win if say a
>>>>            DRother was
>>>>            adjacent, lost
>>>>                      adjacency, and re-exstablished it a short time
>>>>            later while
>>>>            keeping a
>>>>                      past snapshot. It could remove its own
>>>>            originated LSAs and
>>>>            compare
>>>>                      checksums..
>>>>
>>>>                      In this scenario, within BMA areas, I think
>>>>            only DR /
>>>>            DRother and BDR/ DRother
>>>>                      need to be making this Checksum exchange..
>>>>
>>>>                      Wouldn't the exchange of this data benefit  
>>>> each
>>>>            router
>>>>            receiving the
>>>>                      information and allow both routers to know the
>>>>            number of
>>>>            LSAs to
>>>>                      be possibly exchanged?
>>>>                                Yes, a new capability would probably
>>>>            have to be added.
>>>>
>>>>
>>>>                      So, the first question is whether the  
>>>> checksums
>>>>            are unique
>>>>            enough with a
>>>>                      count and type to determine whether that
>>>>            section of the LSDB
>>>>            matches
>>>>                      between two routers?
>>>>
>>>>                      And then what savings would normally exist in
>>>>            this hybrid
>>>>            database exchange
>>>>                      and is it worth the effort?
>>>>
>>>>                  Mitchell Erblich
>>>>
>>>>
>>>>
>>>>             _______________________________________________
>>>>            OSPF mailing list
>>>>            OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>>            https://www.ietf.org/mailman/listinfo/ospf
>>>>
>>>>
>>>>        _______________________________________________
>>>>        OSPF mailing list
>>>>        OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>>        https://www.ietf.org/mailman/listinfo/ospf
>>>>
>>>>
>>>>
>>>>    _______________________________________________
>>>>    OSPF mailing list
>>>>    OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>>    https://www.ietf.org/mailman/listinfo/ospf
>>>>
>>>>
>>>> _______________________________________________
>>>> OSPF mailing list
>>>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>> https://www.ietf.org/mailman/listinfo/ospf
>>>
>>> _______________________________________________
>>> OSPF mailing list
>>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>>> https://www.ietf.org/mailman/listinfo/ospf
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>


From erblichs@earthlink.net  Wed Apr 29 04:23:20 2009
Return-Path: <erblichs@earthlink.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 522CE3A6D0D for <ospf@core3.amsl.com>; Wed, 29 Apr 2009 04:23:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.555
X-Spam-Level: 
X-Spam-Status: No, score=-0.555 tagged_above=-999 required=5 tests=[AWL=-1.049, BAYES_00=-2.599, FRT_ESTABLISH2=2.492, HTML_MESSAGE=0.001, J_CHICKENPOX_42=0.6]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GFse8VQozPmV for <ospf@core3.amsl.com>; Wed, 29 Apr 2009 04:23:17 -0700 (PDT)
Received: from elasmtp-curtail.atl.sa.earthlink.net (elasmtp-curtail.atl.sa.earthlink.net [209.86.89.64]) by core3.amsl.com (Postfix) with ESMTP id C247B3A6CAD for <ospf@ietf.org>; Wed, 29 Apr 2009 04:23:16 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net; b=htFlNBQI6NZn5zd434l+NaTXneSOEV0JA3UxZBuCK/f9BswYE3x0oKMRT1UaIdev; h=Received:Cc:Message-Id:From:To:In-Reply-To:Content-Type:Mime-Version:Subject:Date:References:X-Mailer:X-ELNK-Trace:X-Originating-IP;
Received: from [98.234.127.54] (helo=[10.0.1.9]) by elasmtp-curtail.atl.sa.earthlink.net with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.67) (envelope-from <erblichs@earthlink.net>) id 1Lz7u0-00033M-AX; Wed, 29 Apr 2009 07:24:36 -0400
Message-Id: <FAEA50FC-8200-4F54-A414-76E4ABF23069@earthlink.net>
From: Mitchell Erblich <erblichs@earthlink.net>
To: Dave Katz <dkatz@juniper.net>
In-Reply-To: <0E0F4684-5F14-4E13-B573-DC1F32C31317@juniper.net>
Content-Type: multipart/alternative; boundary=Apple-Mail-240-704069833
Mime-Version: 1.0 (Apple Message framework v930.3)
Date: Wed, 29 Apr 2009 04:24:34 -0700
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net> <49EE0286.9070903@cisco.com> <49F4FAB9.4030009@earthlink.net> <be8c8d780904270057gac5fa7ei9b3f366189949584@mail.gmail.com> <B8093021-06F3-43BD-883B-55E6C8C608CC@earthlink.net> <0E0F4684-5F14-4E13-B573-DC1F32C31317@juniper.net>
X-Mailer: Apple Mail (2.930.3)
X-ELNK-Trace: 074f60c55517ea841aa676d7e74259b7b3291a7d08dfec793d980401994a495266e49f0c3eb82ed9350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 98.234.127.54
Cc: ospf@ietf.org, Emmanuel Baccelli <Emmanuel.Baccelli@inria.fr>
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Apr 2009 11:23:20 -0000

--Apple-Mail-240-704069833
Content-Type: text/plain;
	charset=US-ASCII;
	format=flowed;
	delsp=yes
Content-Transfer-Encoding: 7bit

Group,

	Sorry, verbose..

	Inline..

	Mitchell Erblich
	===============
On Apr 27, 2009, at 4:20 PM, Dave Katz wrote:

> On first principles, it seems as though the only reason to do  
> something like this is to reduce the amount of time it takes to  
> bring up a new link, and even that is probably only interesting if  
> the network is at least slightly partitioned without it.  Keep in  
> mind that such a scheme is only useful if the database is already  
> close to synchronized, so it doesn't help when a router first comes  
> up.  Given all that, it's not entirely clear that doing this is  
> *that* interesting, but no matter.

Actually, the first thought was how to verify that two LSDBs are  
identical at ANY time after Database Exchange.
And if not first what are the differences wrt LSA type and count. And  
have the router periodicly report / summarize
any seen diffs.

Then how to resynch without waiting for the LSA update or renewing  
(tear down and reforming the adj) the adj

However, if you can then resync, you should be able to do refreshes  
from the DR and BDR (common Eth).

However, the first interaction between two OSPF speakers is with  
Database Exchange and decreasing the
workload on the 2nd adj due to common LSAs should allow the formation  
of 2x simulateneous adj formations
than standard.


>
> The problem with any of these checksum schemes is that the benefits  
> are compromised by the LSA refresh mechanism, as has been noted.   
> With 50,000 LSAs, my back-of-the-laptop calculations are that an LSA  
> is refreshed on the average of once every 36 msec, or roughly 30 per  
> second.  Scalable implementations go out of their way to smooth  
> refreshes when they are originating a large number of LSAs, and if  
> there are a large number of machines originating a small number of  
> LSAs, these will (hopefully) tend to be smoothed out as well, in a  
> way that does not correlate with the ordering mechanism proposed.

First, 50k was just a number picked that would identify a common large  
number of LSAs of a specific type(Externals)
  (also the major of LSAs in the LSDB) that should all match and not  
have any new DRother add to this LSA type pool.

The simplified assumption is that the updates are just age refreshes.

I am not sure that this/checksums would be a better approach then say  
DNA LSAs. The chksum approach fits better
IMO in this case when a router stops rexmits of the LSA and has taken  
down the adj. The DRother either would
have to renew the adj or implement a search for the lost LSA.

In the common case of Eth, with your flooding example, in my limited  
experience, the OSPF routers tend to
initially come up within the area at the same time and thus iniitally  
the LSAs are mostly flooded within the
same quarter hour, if not within the first 5 minutes. Thus, peaks of  
LSAs per second would be on the order
of 200 LSAs per sec.

Since the chksum is even simpler than a LSA hdr, I would expect more  
than a 100 to 10kx LSA processing of
just LSA age refreshes should be able to be accomplished with the same  
level of work.

Somewhere in these numbers is a meltdown by a router with standardized  
OSPF, where I question whether
the chksum approach would have the same failure behaviour.

>
> The efficiency of such schemes improves as the number of LSAs per  
> checksum block goes up, but so does the probability of a checksum  
> failure, in which case you're actually worse off than if you'd just  
> send the darned things (since you have to anyhow, unless you start  
> doing scary bifurcations of the space, all of which takes more time,  
> and all of which causes even more LSAs to be stale.)

The assumption is that a checksum is specified for the entire LSDB,  
then a chksum for all the LSAs of a specified
type, then a breakdown of each type. If we have Eth, we have a  
1500byte packet. We have no LSA lookups if
we can can match each table line. If we add additional values like LSA  
count, LSA type, etc, to each group
checksum, then the same chksums that map to different sets of LSAs  
should be minimized. Remember, we
need a double failure/mapping because not just the group must map  
identically but the chksum over the
entire LSA type.

FYI, yes, I know about the 64k byte offset of IP, but I don't want  
reassembly overhead so a limit of 1.5k.

What the additional groups get us, is the ability to locate request  
entire LSA groups without needing
all of the LSAs. The smaller the group, then  the smaller number of  
extra LSAs that we really don't
need but with more table lookups.

YES, the complication is the CORRECT number of LSAs needed in a block  
to minimize a duplicate mapping,
where all items in the table line match, but the set of LSAs don't  
match within the group.


>
> If that 50K LSA network was represented as 30 checksum blocks, and  
> it takes a second for the basic handshaking to take place with a  
> neighbor, the odds are decent that *all* of them will fail, in which  
> case it's a waste of time.  Keep in mind that if you want to avoid  
> bad checksums, you need to make the block size small, and thus the  
> number of blocks large, and then you end up back where you started  
> from unless the checksum-exchange protocol is reasonably windowed as  
> well.

Actually, how long does it take to process 1 1500 byte packet and do  
say 100 table lookups. The key here is that not
the entire LSDB summary needs to be exchanged per packet. We could say  
that every 15 secs the next set of groups
is xmit'ed and every x minutes you cover all the LSAs via the  
groupings. So, I would expect less than 10ms to processs
each packet.

>
> If you want to improve adjacency bringup in a non-compatible way, it  
> seems like a more effective mechanism would be simply to fix the  
> brain-dead DBD protocol so that it is not stop-and-wait;  if you can  
> pump a few hundred PPS of DBDs across the wire without stopping, you  
> can sync up very quickly in terms of wall-clock time without getting  
> into the inevitable problems caused by trying to glom LSAs together  
> and expecting them to sit still in the process.  It seems a lot  
> cheaper and more straightforward.

The wireless win is the minimum number of bytes that COULD then be  
sent over the connection and the ability
to have dropouts and verifications that the LSDB is in sync and if  
not, why not.

With a protocol like OSPF that has aged, I would think that simpler  
approaches to
scale them in a transparent way would make more sense.

With chksums, I would think that a DRother forming an adj with a BDR  
after the DR, should be able to
do this within just a few 100 packets. If the fastpath allows a common  
read-mostly table lookup and can
remove 90% of LSA hdr exchanges, then the ability for the BDR to  
support 100+ simultaneous adj formations
should sum to your 100s of packets per sec rate.

With the ability to not send say 100s packets before a response to a  
DRother
during database exchange prevents the DR and/or BDR to FLOOD/overload
  the DRother with LSAs. TCP's slow start is a multiplicative increase  
to identify
not just un-used capacity but also buffer capacity. If a flood of 100  
packets is
jjust sent, and they are fragmented, they really need to be  
reasembled, etc.
This is assuming no tail drop or RED, where a dropped fragment requires
the sending of the entire packet/segment. The problem is not all  
routers would
have the same pps capacity and if they did and say 5 DRothers  
implement your
flooding to a single DR, wouldn't that be a problem? With a ACK based  
protocol,
the two communicating end points can add small latencies as needed and
prevent one end point to overwhelm the other end point. Lastly, the  
amount of
CPU cycles needed to process 100 pps tends to be greater than xmiting  
the
100 pps rate.

Within an area, the assumption is
that the link/media connection is probably at 1ms or less and thus the  
round-trip-time should not
be a concern. If the DRother and DR/or/BDR processes the packet within  
say 1ms each, then
the sum of packets per connection should easily reach your 100s of  
packets per sec.

Yes, with a ACK like protocol, having the the ability to poll or  
generate just 1 interrupt
for x number of packets can not be done with only 1 set of concurrent  
connections. If
you had say 100 simultaneous adj formations, yes you can then  
implement the above.


>
> Bandwidth and CPU are practically free (particularly for something  
> done relatively rarely) so trying to do heroic things to optimize  
> such situations seems like a waste of effort.

The above SHOULD use a fraction of the bandwidth and CPU. The gains of  
doing so is the ability
to verify that all the LSDBs are in synch within the area every sec.  
The decrease of bandwidth
is a decrease in latency when differences exist and the ability to  
correct them quickly. IF flooding
uses 1% of a CPU, we then have 99% to recompute routing changes. With  
1Gb and faster Eth
media, having short convergent cycles is imperative. With this  
additional CPU cycles and low cost
memory, we have the abiltiy to compute backup routes. And to be able  
to separate the LSA
updates into age updates versus content updates. The later need to be  
processed as a high
priority and moving the former into Chksum verification, should be  
able to take LSA content
changes and reconverge the area within a subsec timeframe.

However, alot of end systems (and routers) are or becoming mobile and  
their bandwidth is in the
kilobytes/sec capabilities, have expected dropouts, and we still need  
to route to them. Thus adding
downward scalability shouldn't be a negative.

>
> Maybe I'm missing something fundamental here?
>
> --Dave
>
>
> On Apr 27, 2009, at 9:47 AM, Mitchell Erblich wrote:
>
>> Group,
>>
>> 	First my thoughts are currently in the inception phase
>> 	and COULD apply to both wired and wireless
>> 	environments and I applogize for my verboseness.
>>
>> 	My initial assumptions are that a OSPF area will be
>> 	majority built using the common Ethernet (BMA) environment
>> 	and once a OSPF area is formed major LSA changes are rare.
>>
>> 	Second is that the LSDB is comprised of say 50k LSAs
>> 	which are mostly/90% ExternalLSAs. Thus, Anton, I do not think
>> 	your numbers are correct. If we had routers forming adjs
>> 	via standard LSDB exchange each 100k LSAs sum exchange with
>> 	DR/BDR and using checksums. Then no ExternalLSA hdrs would
>> 	need to be exchanged with the BDR, thus removing almost
>> 	 50% from database exchange. FYI: We got them from the DR.
>>
>> 	My below inquiry stated a checksum per LSA type and
>> 	the ability to generate subgroups of checksums per
>> 	LSA type. Yes, it also stated a full LSDB checksum.
>>
>> 	Since the flooding of LSAs is mostly the same, even a few
>> 	LSAs changing within the ExternalLSa type COULD be covered
>> 	by specifying that the A-Y range did not change and the
>> 	Z range has new hdrs/LSAs and updated normally.
>>
>> 	If the later/changes was false, during convergence, routing  
>> anomalies
>> 	would be a major concern and data would be routed improperly
>> 	or just lost. With OLD standardized TCP congestion avoidance
>> 	algorithms, a single lost packet assumes congestion and
>> 	assuming 100% bandwidth usage drops TCP to 50% with
>> 	multiplicative decrease. Then a huge number of round trips
>> 	before additive increase gets back to approx 100% bandwidth.
>> 	Even changes in routing paths can generate out-of-orderness with
>> 	the same result. Different hosts/end systems can have different
>> 	Congestion Avoidance algorithms.
>>
>> 	Thus, if convergences are frequent then the utilization
>> 	of each of the TCP connection paths would have frequently
>> 	poor bandwidth usage. So the assumption is that once a
>> 	OSPF area is formed, it tends to be UNCHANGING.
>> 	
>>
>> 	I mentally prefer a predefined range such that routers
>> 	can pre-compute the checksums before even the
>> 	initial LSDB exchange. To predetermine where the
>> 	breaks should exist is currently unknown.
>>
>> 	I see three possible major wins where checksums COULD
>> 	be used.
>> 	     The first is flooding from the DR to DRothers
>> 	       to update the LSDB so the amount of flooding could
>> 	       be minimized, with the same same effect of DNA LSAs.
>> 		Effectively a group LSA refresh.
>> 	  The second is when a DRother initially forms an adjacency
>> 	      with the BDR and accepting that the ExternalLSAs would
>> 	      be the majority of LSAs and the belief that the DRother
>> 	      would already have the ExternalLSAs in its LSDB.
>> 	   The third is when the DRother wants to just verify that
>> 		no LSAs were lost due to either congestion, temp
>> 		drop of the adj, etc and verfify that no-one has either
>> 		given up rexmits or is still doing xmits. And to pick up
>> 		a single dropped LSA without a full Database Exch.
>> 	
>>
>> 	Getting back to the pre-computation would prevent a
>> 	OSPF speaking router from doing the calcs at adj
>> 	formation time. Even doing the calc at adj formation
>> 	should remove say 90+% of LSAs from needing to
>> 	be recomputed on each LSDB verify sync.
>>
>> 	However, to decrease the need to do the calcs at
>> 	overhead, first checking whether LSA type counts
>> 	match could be done and only if they match, then
>> 	do the necessary computation. The type, count,
>> 	and checksum, should generate some form of
>> 	uniqueness. Some field within the begining and
>> 	ending LSAs might add some more verifcation.
>>
>> 	So, what am I missing here? and why hasn't anybody
>> 	done this?
>>
>> 	Mitchell Erblich
>> 	===================
>>
>> 		
>> On Apr 27, 2009, at 12:57 AM, Emmanuel Baccelli wrote:
>>
>>> Hi Anton,
>>>
>>> yes, a similar scheme was studied a few years back, in this paper:
>>> OSPF Database Exchange and Reliable Synchronization in Mobile Ad  
>>> Hoc Networks
>>>
>>> Such a mechanism could indeed lead to interesting performance  
>>> enhancements, I agree with Richard.
>>>
>>> cheers,
>>>
>>> Emmanuel
>>>
>>>
>>>
>>> On Mon, Apr 27, 2009 at 2:22 AM, Richard Ogier  
>>> <ogier@earthlink.net> wrote:
>>> Anton,
>>>
>>> I like your idea of sending a checksum for a range of LSAs, to
>>> increase the probability that the LSAs in a given range are in
>>> sync between the two neighbors.  (This helps even if the
>>> age field is ignored when selecting the ranges.)
>>>
>>> For example, suppose there are 100 LSAs and each LSA has a 2%
>>> chance of not being in sync.  Then the probability that all
>>> LSAs are in sync is .98^100 = .1326, too low to result in
>>> a significant overhead reduction.
>>> Now suppose the LSAs are divided into 10 ranges, each with 10 LSAs.
>>> The probability that all LSAs in a given range are in sync is then
>>> .98^10 = .8171, resulting in a big overhead reduction on average.
>>>
>>> The selected range for each LSA type can depend on how frequently
>>> new LSAs are originated for that type, with a larger range chosen
>>> if LSAs are originated less frequently (so that the probability
>>> of being out of sync is lower).
>>>
>>> This idea can be combined with the database exchange optimization
>>> of RFC 5243 to further reduce overhead.  I.e., if the checksums
>>> do not match, then RFC 5243 can be used to reduce the number of
>>> LSA headers exchanged in DD packets by up to 50%.
>>> Also, if the checksums do match for a given range of LSAs, then the
>>> router receiving the checksum need not send the same checksum for
>>> the same range of LSAs.
>>>
>>> Richard
>>>
>>>
>>> Anton Smirnov wrote:
>>>
>>>  Mitchell,
>>>  LSDBs may be very close but they are seldom EXACTLY the same. The
>>> thing is that change in adjacency triggers LSA [re]build, so  
>>> depending
>>> on timing router and/or network LSAs may change by the time  
>>> adjacency
>>> restores.
>>>  Also, in moderately sized modern OSPF network there is constant
>>> background noise of LSAs being refreshed. So again, chances that
>>> refreshed LSA arrived to one side but not another while adjacency is
>>> down are relatively high.
>>>  These considerations make precomputed checksums over large number  
>>> of
>>> LSAs rather bad for the purpose.
>>>  If you want to explore venue of checksumming database exchange  
>>> then I
>>> recommend to look for more flexible approach giving routers  
>>> possibility
>>> to choose range of LSAs to compute checksum over. For example, if  
>>> both
>>> routers support the checksum exchange then router sending DBD could
>>> specify the first, the last LSA and value of some kind of hash of  
>>> LSA
>>> headers between them (LSAs in LSDB can be viewed as ordered  
>>> sequence as
>>> per RFC 5243). In this way router preparing DBD packet may place  
>>> start
>>> and end points of checksumming to avoid including into the range  
>>> LSAs
>>> with ages around 0 and MAXAGE (because these are LSAs which are less
>>> likely to match between routers). So database exchange will  
>>> consist of
>>> series of single LSA headers (the 'old' way) and large LSA  
>>> sequences.
>>>
>>> Anton
>>>
>>>
>>>
>>> Mitchell Erblich wrote:
>>>
>>> Group,
>>>
>>>       General thoughts...
>>>
>>>       After a conversation about OSPF's standard database exchange  
>>> and
>>> how inefficient it
>>>       is when two routers have large LSDBs and them almost being the
>>> same, we concluded
>>>       that the use of Checksums might significantly decrease the
>>> amount of overhead and
>>>       achieve faster convergence.
>>>
>>>           Moy first (I think) suggested the LSDB checksum support to
>>> identify identical
>>>           LSDBs.  Sometime later the MIB supported the
>>> ospfExternLsaChksumSum,
>>>           ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.
>>>
>>>           Thus, why not support the ability to have OSPF routers  
>>> first
>>> exchange
>>>           checksums with LSA counts. If the LSDBs have more than XYZ
>>> entries
>>>           in their LSDBs, then the counts which are above specific
>>> thresholds then
>>>           support the checksum on each X count of LSA type. Only the
>>> groups
>>>           with non-matching Checksums would then go thru database
>>> exchange.
>>>
>>>           Thus, before database exchange, support some form of  
>>> triple
>>> that
>>>           as routers have almost the same LSDBs,   the checksum  
>>> exchange
>>>            would remove unnecessary LSA header exchange.
>>>
>>>           This, IMO, would also be a big win if say a DRother was
>>> adjacent, lost
>>>           adjacency, and re-exstablished it a short time later while
>>> keeping a
>>>           past snapshot. It could remove its own originated LSAs and
>>> compare
>>>           checksums..
>>>
>>>           In this scenario, within BMA areas, I think only DR /
>>> DRother and BDR/ DRother
>>>           need to be making this Checksum exchange..
>>>
>>>           Wouldn't the exchange of this data benefit each router
>>> receiving the
>>>           information and allow both routers to know the number of
>>> LSAs to
>>>           be possibly exchanged?
>>>                     Yes, a new capability would probably have to  
>>> be added.
>>>
>>>
>>>           So, the first question is whether the checksums are unique
>>> enough with a
>>>           count and type to determine whether that section of the  
>>> LSDB
>>> matches
>>>           between two routers?
>>>
>>>           And then what savings would normally exist in this hybrid
>>> database exchange
>>>           and is it worth the effort?
>>>
>>>       Mitchell Erblich
>>>
>>>
>>>                _______________________________________________
>>> OSPF mailing list
>>> OSPF@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ospf
>>>
>>> _______________________________________________
>>> OSPF mailing list
>>> OSPF@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ospf
>>>
>>>
>>> _______________________________________________
>>> OSPF mailing list
>>> OSPF@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ospf
>>>
>>> _______________________________________________
>>> OSPF mailing list
>>> OSPF@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ospf
>>
>> _______________________________________________
>> OSPF mailing list
>> OSPF@ietf.org
>> https://www.ietf.org/mailman/listinfo/ospf
>


--Apple-Mail-240-704069833
Content-Type: text/html;
	charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; =
">Group,&nbsp;<div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Sorry, =
verbose..<br><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span>Inline..</div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Mitchell Erblich</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><div><div>On Apr =
27, 2009, at 4:20 PM, Dave Katz wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; "><div>On first principles, it =
seems as though the only reason to do something like this is to reduce =
the amount of time it takes to bring up a new link, and even that is =
probably only interesting if the network is at least slightly =
partitioned without it. &nbsp;Keep in mind that such a scheme is only =
useful if the database is already close to synchronized, so it doesn't =
help when a router first comes up. &nbsp;Given all that, it's not =
entirely clear that doing this is *that* interesting, but no =
matter.</div></div></blockquote><div><br></div>Actually, the first =
thought was how to verify that two LSDBs are identical at ANY time after =
Database Exchange.</div><div>And if not first what are the differences =
wrt LSA type and count. And have the router periodicly report / =
summarize</div><div>any seen&nbsp;diffs.</div><div><br></div><div>Then =
how to resynch without waiting for the LSA update or renewing (tear down =
and reforming the adj) the adj</div><div><br></div><div>However, if you =
can then resync, you should be able to do refreshes from the DR and BDR =
(common Eth).</div><div><br></div><div>However, the first interaction =
between two OSPF speakers is with Database Exchange and decreasing =
the</div><div>workload on the 2nd adj due to common LSAs should allow =
the formation of 2x simulateneous adj formations</div><div>than =
standard.</div><div><br></div><div><br><blockquote type=3D"cite"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; "><div><br></div>The problem with =
any of these checksum schemes is that the benefits are compromised by =
the LSA refresh mechanism, as has been noted. &nbsp;With 50,000 LSAs, my =
back-of-the-laptop calculations are that an LSA is refreshed on the =
average of once every 36 msec, or roughly 30 per second. &nbsp;Scalable =
implementations go out of their way to smooth refreshes when they are =
originating a large number of LSAs, and if there are a large number of =
machines originating a small number of LSAs, these will (hopefully) tend =
to be smoothed out as well, in a way that does not correlate with the =
ordering mechanism =
proposed.</div></blockquote><div><br></div><div>First, 50k was just a =
number picked that would identify a common large number of LSAs of a =
specific type(Externals)</div><div>&nbsp;(also the major of LSAs in the =
LSDB) that&nbsp;should all match and not have any new DRother add to =
this LSA type pool.</div><div><br></div><div>The simplified assumption =
is that the updates are just age refreshes.</div><div><br></div>I am not =
sure that this/checksums would be a better approach then say DNA LSAs. =
The chksum approach fits better</div><div>IMO in this case when a router =
stops rexmits of the LSA and has taken down the adj. The DRother either =
would</div><div>have to renew the adj or implement a search for the lost =
LSA.</div><div><br></div><div>In the common case of Eth, with your =
flooding example, in my limited experience, the OSPF routers tend =
to&nbsp;</div><div>initially come up within the area at the same time =
and thus iniitally the LSAs are mostly flooded within the</div><div>same =
quarter hour, if not within the first 5 minutes. Thus, peaks of LSAs per =
second would be on the order</div><div>of 200 LSAs per =
sec.</div><div><br></div><div>Since the chksum is even simpler than a =
LSA hdr, I would expect more than a 100 to 10kx LSA processing =
of</div><div>just LSA age refreshes should be able to be accomplished =
with the same level of work.</div><div><br></div><div>Somewhere in these =
numbers is a meltdown by a router with standardized OSPF, where I =
question whether</div><div>the chksum approach would have the same =
failure behaviour.</div><div><br><blockquote type=3D"cite"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; "><div><br></div><div>The =
efficiency of such schemes improves as the number of LSAs per checksum =
block goes up, but so does the probability of a checksum failure, in =
which case you're actually worse off than if you'd just send the darned =
things (since you have to anyhow, unless you start doing scary =
bifurcations of the space, all of which takes more time, and all of =
which causes even more LSAs to be =
stale.)</div></div></blockquote><div><br></div>The assumption is that a =
checksum is specified for the entire LSDB, then a chksum for all the =
LSAs of a specified</div><div>type, then a breakdown of each type. If we =
have Eth, we have a 1500byte packet. We have no LSA lookups =
if</div><div>we can can match each table line. If we add additional =
values like LSA count, LSA type, etc, to each group</div><div>checksum, =
then the same chksums that map to different sets of LSAs should be =
minimized. Remember, we</div><div>need a double failure/mapping because =
not just the group must map identically but the chksum over =
the</div><div>entire LSA type.</div><div><br></div><div>FYI, yes, I know =
about the 64k byte offset of IP, but I don't want reassembly overhead so =
a limit of 1.5k.</div><div><br></div><div>What the additional groups get =
us, is the ability to locate request entire LSA groups without =
needing</div><div>all of the LSAs. The smaller the group, then &nbsp;the =
smaller number of extra LSAs that we really don't</div><div>need but =
with more table lookups.</div><div><br></div><div>YES, the complication =
is the CORRECT number of LSAs needed in a block to minimize a duplicate =
mapping,</div><div>where all items in the table line match, but the set =
of LSAs don't match within the =
group.</div><div><br></div><div><br></div><div><blockquote =
type=3D"cite"><div style=3D"word-wrap: break-word; -webkit-nbsp-mode: =
space; -webkit-line-break: after-white-space; "><div><br></div><div>If =
that 50K LSA network was represented as 30 checksum blocks, and it takes =
a second for the basic handshaking to take place with a neighbor, the =
odds are decent that *all* of them will fail, in which case it's a waste =
of time.&nbsp;&nbsp;Keep in mind that if you want to avoid bad =
checksums, you need to make the block size small, and thus the number of =
blocks large, and then you end up back where you started from unless the =
checksum-exchange protocol is reasonably windowed as =
well.</div></div></blockquote><div><br></div>Actually, how long does it =
take to process 1 1500 byte packet and do say 100 table lookups. The key =
here is that not</div><div>the entire LSDB summary needs to be exchanged =
per packet. We could say that every 15 secs the next set of =
groups</div><div>is xmit'ed and every x minutes you cover all the LSAs =
via the groupings. So, I would expect less than 10ms to =
processs</div><div>each packet.</div><div><br></div><div><blockquote =
type=3D"cite"><div style=3D"word-wrap: break-word; -webkit-nbsp-mode: =
space; -webkit-line-break: after-white-space; "><div><br></div><div>If =
you want to improve adjacency bringup in a non-compatible way, it seems =
like a more effective mechanism would be simply to fix the brain-dead =
DBD protocol so that it is not stop-and-wait; &nbsp;if you can pump a =
few hundred PPS of DBDs across the wire without stopping, you can sync =
up very quickly in terms of wall-clock time without getting into the =
inevitable problems caused by trying to glom LSAs together and expecting =
them to sit still in the process. &nbsp;It seems a lot cheaper and more =
straightforward.</div></div></blockquote><div><br></div><div>The =
wireless win is the minimum number of bytes that COULD then be sent over =
the connection and the ability</div><div>to have dropouts and =
verifications that the LSDB is in sync and if not, why =
not.</div><div><br></div><div>With a protocol like OSPF that has aged, I =
would think that simpler approaches to&nbsp;</div><div>scale them in a =
transparent&nbsp;way would make more =
sense.</div><div><br></div><div>With chksums, I would think that a =
DRother forming an adj with a BDR after the DR, should be able =
to</div><div>do this within just a few 100 packets. If the fastpath =
allows a common read-mostly table lookup and can</div><div>remove 90% of =
LSA hdr exchanges, then the ability for the BDR to support 100+ =
simultaneous adj formations</div><div>should sum to your 100s of packets =
per sec rate.</div><div><br></div><div>With the ability to not send say =
100s packets before a response to a DRother&nbsp;</div><div>during =
database exchange prevents the&nbsp;DR and/or BDR to =
FLOOD/overload</div><div>&nbsp;the DRother with LSAs. TCP's slow start =
is a multiplicative increase to identify</div><div>not just un-used =
capacity but also buffer capacity. If a flood of 100 packets =
is</div><div>jjust sent, and they are fragmented, they really need to be =
reasembled, etc.</div><div>This is assuming no tail drop or RED, where a =
dropped fragment requires</div><div>the sending of the entire =
packet/segment. The problem is not all routers would</div><div>have the =
same pps capacity and if they did and say 5 DRothers implement =
your</div><div>flooding to a single DR, wouldn't that be a problem? With =
a ACK based protocol,</div><div>the two communicating end points can add =
small latencies as needed and</div><div>prevent one end point to =
overwhelm the other end point. Lastly, the amount of</div><div>CPU =
cycles needed to process 100 pps tends to be greater than xmiting =
the</div><div>100 pps rate.</div><div><br></div><div>Within an area, the =
assumption is</div><div>that the link/media connection is probably at =
1ms or less and thus the round-trip-time should not</div><div>be a =
concern. If the DRother and DR/or/BDR processes the packet within say =
1ms each, then</div><div>the sum of packets per connection should easily =
reach your 100s of packets per sec.</div><div><br></div><div>Yes, with a =
ACK like protocol, having the the ability to poll or generate just 1 =
interrupt</div><div>for x number of packets can not be done with only 1 =
set of concurrent connections. If</div><div>you had say 100 simultaneous =
adj formations, yes you can then implement the =
above.</div><div><br></div><div><br></div><blockquote type=3D"cite"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; "><div><br></div><div>Bandwidth =
and CPU are practically free (particularly for something done relatively =
rarely) so trying to do heroic things to optimize such situations seems =
like a waste of effort.</div></div></blockquote><div><br></div>The above =
SHOULD use a fraction of the bandwidth and CPU. The gains of doing so is =
the ability</div><div>to verify that all the LSDBs are in synch within =
the area every sec. The decrease of bandwidth</div><div>is a decrease in =
latency when differences exist and the ability to correct them quickly. =
IF flooding</div><div>uses 1% of a CPU, we then have 99% to recompute =
routing changes. With 1Gb and faster Eth</div><div>media, having short =
convergent cycles is imperative. With this additional CPU cycles and low =
cost</div><div>memory, we have the abiltiy to compute backup routes. And =
to be able to separate the LSA</div><div>updates into age updates versus =
content updates. The later need to be processed as a =
high</div><div>priority and moving the former into Chksum verification, =
should be able to take LSA content</div><div>changes and reconverge the =
area within a subsec timeframe.</div><div><br></div><div>However, alot =
of end systems (and routers) are or becoming mobile and their bandwidth =
is in the&nbsp;</div><div>kilobytes/sec&nbsp;capabilities, have expected =
dropouts, and we still need to route to them. Thus =
adding</div><div>downward scalability shouldn't be a =
negative.</div><div><br><blockquote type=3D"cite"><div style=3D"word-wrap:=
 break-word; -webkit-nbsp-mode: space; -webkit-line-break: =
after-white-space; "><div><br></div><div>Maybe I'm missing something =
fundamental here? =
&nbsp;</div><div><br></div><div>--Dave</div><div><br></div><div><br><div><=
div>On Apr 27, 2009, at 9:47 AM, Mitchell Erblich wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; ">Group,<div><br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>First my =
thoughts are currently in the inception phase</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>and COULD =
apply to both wired and wireless&nbsp;</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>environments and I applogize for my =
verboseness.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>My initial assumptions are that a =
OSPF area will be</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>majority built using the common =
Ethernet (BMA) environment</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>and&nbsp;once a OSPF area =
is&nbsp;formed major LSA changes are =
rare.</div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Second is that the LSDB is =
comprised of say 50k LSAs<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>which are mostly/90% =
ExternalLSAs. Thus, Anton, I do not think<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>your =
numbers are correct. If we had routers forming adjs<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>via =
standard LSDB exchange each 100k LSAs sum exchange =
with<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>DR/BDR and using checksums. Then =
no ExternalLSA hdrs would<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>need to be exchanged with the =
BDR, thus removing almost</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;50% from database exchange. =
FYI: We got them from the DR.<br></div><div><br></div><div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>My below =
inquiry stated a checksum per LSA type and<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space: pre; ">	</span>the =
ability to generate subgroups of checksums per<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space: pre; ">	</span>LSA type. =
Yes, it also stated a full LSDB =
checksum.</div><div><br></div></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Since the flooding of LSAs is =
mostly the same, even a few<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>LSAs changing within the =
ExternalLSa type COULD be covered<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>by =
specifying that the A-Y range did not change and the<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>Z range =
has new hdrs/LSAs and updated =
normally.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>If the later/changes was false, =
during convergence, routing anomalies<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>would be =
a major concern and data would be routed improperly<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>or just =
lost. With OLD standardized TCP congestion avoidance<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>algorithms, a single lost packet assumes congestion =
and<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>assuming 100% bandwidth usage =
drops TCP to 50% with<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>multiplicative decrease. Then a =
huge number of round trips<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>before additive increase gets =
back to approx 100% bandwidth.<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>Even =
changes in routing paths can generate out-of-orderness =
with</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>the same result. Different hosts/end systems can have =
different<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Congestion Avoidance =
algorithms.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Thus, if convergences are =
frequent then the utilization<br></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>of each of the TCP connection =
paths would have frequently<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>poor bandwidth usage. So the =
assumption is that once a<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>OSPF area is formed, it tends to =
be UNCHANGING.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span><br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>I mentally prefer a predefined =
range such that routers<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>can pre-compute the checksums =
before even the<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>initial LSDB exchange. To =
predetermine where the<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>breaks should exist is currently =
unknown.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>I see three possible major wins =
where checksums COULD<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>be used.&nbsp;</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>&nbsp;&nbsp; &nbsp;&nbsp;The first is flooding from the DR to =
DRothers<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; &nbsp; =
&nbsp;&nbsp;to update the LSDB so the amount of flooding =
could<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; &nbsp; =
&nbsp;&nbsp;be minimized, with the same same effect of DNA =
LSAs.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>Effectively a group LSA =
refresh.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp;The second is when a =
DRother initially forms an adjacency</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>&nbsp;&nbsp; &nbsp; &nbsp;with the BDR and accepting that the =
ExternalLSAs would<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; &nbsp; &nbsp;be the =
majority of LSAs and the belief that the DRother</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>&nbsp;&nbsp; &nbsp; &nbsp;would already have the ExternalLSAs in =
its LSDB.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>&nbsp;&nbsp; The third is when =
the DRother wants to just verify that<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>no LSAs were lost due to either congestion, =
temp<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>drop of the adj, etc and =
verfify that no-one has either<br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>given up rexmits or is still doing xmits. And to pick =
up<br></div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
		</span>a single dropped LSA without a full Database =
Exch.<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span></div><div><br></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>Getting =
back to the pre-computation would prevent a<span class=3D"Apple-tab-span" =
style=3D"white-space:pre"></span></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>OSPF speaking router from doing =
the calcs at adj<span class=3D"Apple-tab-span" =
style=3D"white-space:pre"></span></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>formation time. Even doing the =
calc at adj formation<span class=3D"Apple-tab-span" =
style=3D"white-space:pre"></span></div><div><span class=3D"Apple-tab-span"=
 style=3D"white-space:pre">	</span>should remove say 90+% of LSAs =
from needing to<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>be recomputed on each LSDB verify =
sync.<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>However, to decrease the need to =
do the calcs at<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>overhead, first checking whether =
LSA type counts<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>match could be done and only if =
they match, then<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>do the necessary computation. The =
type, count,<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>and checksum, should generate =
some form of<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>uniqueness. Some field within the =
begining and<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>ending LSAs might add some more =
verifcation.</div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>So, what am I missing here? and =
why hasn't anybody</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>done =
this?<br></div><div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Mitchell =
Erblich<br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	=
</span>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br></div>=
<div><br></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		=
</span><br></div><div><div><div>On Apr 27, 2009, at 12:57 AM, Emmanuel =
Baccelli wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite">Hi Anton,<div><br></div><div>yes, a similar scheme was =
studied a few years back,&nbsp;in this paper:</div><div><a =
href=3D"http://www.emmanuelbaccelli.org/publications/WNET_2004.pdf">OSPF =
Database Exchange and Reliable Synchronization in Mobile Ad Hoc =
Networks</a></div><div><br></div><div>Such a mechanism could indeed lead =
to interesting performance enhancements, I agree with =
Richard.</div><div><br></div><div>cheers,</div><div><br></div><div>Emmanue=
l</div><div> <br></div><div><br><br><div class=3D"gmail_quote">On Mon, =
Apr 27, 2009 at 2:22 AM, Richard Ogier <span dir=3D"ltr">&lt;<a =
href=3D"mailto:ogier@earthlink.net">ogier@earthlink.net</a>></span> =
wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex;"> Anton,<br> <br> I =
like your idea of sending a checksum for a range of LSAs, to<br> =
increase the probability that the LSAs in a given range are in<br> sync =
between the two neighbors. &nbsp;(This helps even if the<br> age field =
is ignored when selecting the ranges.)<br> <br> For example, suppose =
there are 100 LSAs and each LSA has a 2%<br> chance of not being in =
sync. &nbsp;Then the probability that all<br> LSAs are in sync is =
.98^100 =3D .1326, too low to result in<br> a significant overhead =
reduction.<br> Now suppose the LSAs are divided into 10 ranges, each =
with 10 LSAs.<br> The probability that all LSAs in a given range are in =
sync is then<br> .98^10 =3D .8171, resulting in a big overhead reduction =
on average.<br> <br> The selected range for each LSA type can depend on =
how frequently<br> new LSAs are originated for that type, with a larger =
range chosen<br> if LSAs are originated less frequently (so that the =
probability<br> of being out of sync is lower).<br> <br> This idea can =
be combined with the database exchange optimization<br> of RFC 5243 to =
further reduce overhead. &nbsp;I.e., if the checksums<br> do not match, =
then RFC 5243 can be used to reduce the number of<br> LSA headers =
exchanged in DD packets by up to 50%.<br> Also, if the checksums do =
match for a given range of LSAs, then the<br> router receiving the =
checksum need not send the same checksum for<br> the same range of =
LSAs.<br><font color=3D"#888888"> <br> =
Richard</font><div><div></div><div class=3D"h5"><br> <br> Anton Smirnov =
wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"> &nbsp;Mitchell,<br> =
&nbsp;LSDBs may be very close but they are seldom EXACTLY the same. =
The<br> thing is that change in adjacency triggers LSA [re]build, so =
depending<br> on timing router and/or network LSAs may change by the =
time adjacency<br> restores.<br> &nbsp;Also, in moderately sized modern =
OSPF network there is constant<br> background noise of LSAs being =
refreshed. So again, chances that<br> refreshed LSA arrived to one side =
but not another while adjacency is<br> down are relatively high.<br> =
&nbsp;These considerations make precomputed checksums over large number =
of<br> LSAs rather bad for the purpose.<br> &nbsp;If you want to explore =
venue of checksumming database exchange then I<br> recommend to look for =
more flexible approach giving routers possibility<br> to choose range of =
LSAs to compute checksum over. For example, if both<br> routers support =
the checksum exchange then router sending DBD could<br> specify the =
first, the last LSA and value of some kind of hash of LSA<br> headers =
between them (LSAs in LSDB can be viewed as ordered sequence as<br> per =
RFC 5243). In this way router preparing DBD packet may place start<br> =
and end points of checksumming to avoid including into the range =
LSAs<br> with ages around 0 and MAXAGE (because these are LSAs which are =
less<br> likely to match between routers). So database exchange will =
consist of<br> series of single LSA headers (the 'old' way) and large =
LSA sequences.<br> <br> Anton<br> <br> <br> <br> Mitchell Erblich =
wrote:<br> &nbsp;<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Group,<br> <br> =
&nbsp; &nbsp; &nbsp; General thoughts...<br> <br> &nbsp; &nbsp; &nbsp; =
After a conversation about OSPF's standard database exchange and<br> how =
inefficient it<br> &nbsp; &nbsp; &nbsp; is when two routers have large =
LSDBs and them almost being the<br> same, we concluded<br> &nbsp; &nbsp; =
&nbsp; that the use of Checksums might significantly decrease the<br> =
amount of overhead and<br> &nbsp; &nbsp; &nbsp; achieve faster =
convergence.<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Moy first (I =
think) suggested the LSDB checksum support to<br> identify identical<br> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LSDBs. &nbsp;Sometime later the MIB =
supported the<br> ospfExternLsaChksumSum,<br> &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; ospfAreaLsaChksumSum, and ospfLsdbChecksum fields.<br> =
<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Thus, why not support the =
ability to have OSPF routers first<br> exchange<br> &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; checksums with LSA counts. If the LSDBs have more than =
XYZ<br> entries<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; in their LSDBs, =
then the counts which are above specific<br> thresholds then<br> &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; support the checksum on each X count of LSA =
type. Only the<br> groups<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; with =
non-matching Checksums would then go thru database<br> exchange.<br> =
<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Thus, before database exchange, =
support some form of triple<br> that<br> &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; as routers have almost the same LSDBs, &nbsp; the checksum =
exchange<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;would remove =
unnecessary LSA header exchange.<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; This, IMO, would also be a big win if say a DRother was<br> =
adjacent, lost<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; adjacency, and =
re-exstablished it a short time later while<br> keeping a<br> &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; past snapshot. It could remove its own =
originated LSAs and<br> compare<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
checksums..<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; In this =
scenario, within BMA areas, I think only DR /<br> DRother and BDR/ =
DRother<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; need to be making this =
Checksum exchange..<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Wouldn't =
the exchange of this data benefit each router<br> receiving the<br> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; information and allow both routers to =
know the number of<br> LSAs to<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; be =
possibly exchanged?<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; Yes, a new capability would probably have to be =
added.<br> <br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; So, the first =
question is whether the checksums are unique<br> enough with a<br> =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count and type to determine whether =
that section of the LSDB<br> matches<br> &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; between two routers?<br> <br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
And then what savings would normally exist in this hybrid<br> database =
exchange<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; and is it worth the =
effort?<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp; &nbsp; =
Mitchell Erblich<br> <br> &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;_______________________________________________<br> OSPF mailing =
list<br> <a href=3D"mailto:OSPF@ietf.org" =
target=3D"_blank">OSPF@ietf.org</a><br> <a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/ospf</a><br> =
&nbsp; <br> </blockquote> =
_______________________________________________<br> OSPF mailing =
list<br> <a href=3D"mailto:OSPF@ietf.org" =
target=3D"_blank">OSPF@ietf.org</a><br> <a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/ospf</a><br> =
<br> &nbsp;<br> </blockquote> =
_______________________________________________<br> OSPF mailing =
list<br> <a href=3D"mailto:OSPF@ietf.org" =
target=3D"_blank">OSPF@ietf.org</a><br> <a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/ospf</a><br> =
</div></div></blockquote></div><br></div> =
_______________________________________________<br>OSPF mailing =
list<br><a href=3D"mailto:OSPF@ietf.org">OSPF@ietf.org</a><br><a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf">https://www.ietf.org/m=
ailman/listinfo/ospf</a><br></blockquote></div><br></div></div>___________=
____________________________________<br>OSPF mailing list<br><a =
href=3D"mailto:OSPF@ietf.org">OSPF@ietf.org</a><br><a =
href=3D"https://www.ietf.org/mailman/listinfo/ospf">https://www.ietf.org/m=
ailman/listinfo/ospf</a><br></blockquote></div><br></div></div></blockquot=
e></div><br></div></div></body></html>=

--Apple-Mail-240-704069833--

From dkatz@juniper.net  Wed Apr 29 08:53:33 2009
Return-Path: <dkatz@juniper.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 60BB13A715F for <ospf@core3.amsl.com>; Wed, 29 Apr 2009 08:53:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.111
X-Spam-Level: 
X-Spam-Status: No, score=-6.111 tagged_above=-999 required=5 tests=[AWL=-0.112, BAYES_00=-2.599, J_CHICKENPOX_42=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rVcB823HaEDE for <ospf@core3.amsl.com>; Wed, 29 Apr 2009 08:53:31 -0700 (PDT)
Received: from chip3og57.obsmtp.com (chip3og57.obsmtp.com [64.18.14.179]) by core3.amsl.com (Postfix) with ESMTP id C81A728C2D0 for <ospf@ietf.org>; Wed, 29 Apr 2009 08:52:25 -0700 (PDT)
Received: from source ([66.129.224.36]) (using TLSv1) by chip3ob57.postini.com ([64.18.6.12]) with SMTP ID DSNKSfh4Cbto86pZifJ3H0I7lbLoQzx3FTAB@postini.com; Wed, 29 Apr 2009 08:53:48 PDT
Received: from p-emfe01-sac.jnpr.net (66.129.254.72) by P-EMHUB01-HQ.jnpr.net (172.24.192.35) with Microsoft SMTP Server id 8.1.340.0; Wed, 29 Apr 2009 08:34:25 -0700
Received: from p-emlb01-sac.jnpr.net ([66.129.254.46]) by p-emfe01-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Wed, 29 Apr 2009 08:34:24 -0700
Received: from emailsmtp55.jnpr.net ([172.24.18.132]) by p-emlb01-sac.jnpr.net with Microsoft SMTPSVC(6.0.3790.3959); Wed, 29 Apr 2009 08:34:24 -0700
Received: from merlot.juniper.net ([172.17.27.10]) by emailsmtp55.jnpr.net with Microsoft SMTPSVC(6.0.3790.1830); Wed, 29 Apr 2009 08:34:23 -0700
Received: from sa-nc-spg-32.static.jnpr.net (sa-nc-spg-32.static.jnpr.net [172.23.1.32])	by merlot.juniper.net (8.11.3/8.11.3) with ESMTP id n3TFYN074558;	Wed, 29 Apr 2009 08:34:23 -0700 (PDT)	(envelope-from dkatz@juniper.net)
Message-ID: <63CE22DA-FB2B-433E-BF3C-1F1EBE3B5D18@juniper.net>
From: Dave Katz <dkatz@juniper.net>
To: Mitchell Erblich <erblichs@earthlink.net>
In-Reply-To: <FAEA50FC-8200-4F54-A414-76E4ABF23069@earthlink.net>
Content-Type: text/plain; charset="US-ASCII"; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0 (Apple Message framework v930.3)
Date: Wed, 29 Apr 2009 10:34:22 -0500
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net> <49EE0286.9070903@cisco.com> <49F4FAB9.4030009@earthlink.net> <be8c8d780904270057gac5fa7ei9b3f366189949584@mail.gmail.com> <B8093021-06F3-43BD-883B-55E6C8C608CC@earthlink.net> <0E0F4684-5F14-4E13-B573-DC1F32C31317@juniper.net> <FAEA50FC-8200-4F54-A414-76E4ABF23069@earthlink.net>
X-Mailer: Apple Mail (2.930.3)
X-OriginalArrivalTime: 29 Apr 2009 15:34:23.0876 (UTC) FILETIME=[F9125440:01C9C8DF]
Cc: ospf@ietf.org, Emmanuel Baccelli <Emmanuel.Baccelli@inria.fr>
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Apr 2009 15:53:33 -0000

On Apr 29, 2009, at 6:24 AM, Mitchell Erblich wrote:

> Group,
>
> 	Sorry, verbose..
>
> 	Inline..
>
> 	Mitchell Erblich
> 	===============
> On Apr 27, 2009, at 4:20 PM, Dave Katz wrote:
>
>> On first principles, it seems as though the only reason to do  
>> something like this is to reduce the amount of time it takes to  
>> bring up a new link, and even that is probably only interesting if  
>> the network is at least slightly partitioned without it.  Keep in  
>> mind that such a scheme is only useful if the database is already  
>> close to synchronized, so it doesn't help when a router first comes  
>> up.  Given all that, it's not entirely clear that doing this is  
>> *that* interesting, but no matter.
>
> Actually, the first thought was how to verify that two LSDBs are  
> identical at ANY time after Database Exchange.
> And if not first what are the differences wrt LSA type and count.  
> And have the router periodicly report / summarize
> any seen diffs.

This already happens by magic over a 60 minute period, and is  
unnecessary in any case unless the implementation is broken (in which  
case, adding additional complexity is not likely to improve it.)

>
> Then how to resynch without waiting for the LSA update or renewing  
> (tear down and reforming the adj) the adj

A generalized refresh mechanism would make things like hot standby  
much easier (it's very tricky to do without it) but seems to be  
orthogonal to what is being presented here, as you could easily use  
the existing mechanisms to leverage a refresh-without-teardown scheme.

>
> However, if you can then resync, you should be able to do refreshes  
> from the DR and BDR (common Eth).

I don't understand what you think is special about the DR or BDR as  
opposed to any other adjacent router.  DR-ness is just an adjacency  
pruning hack, nothing more.

>
> However, the first interaction between two OSPF speakers is with  
> Database Exchange and decreasing the
> workload on the 2nd adj due to common LSAs should allow the  
> formation of 2x simulateneous adj formations
> than standard.

>
>>
>> The problem with any of these checksum schemes is that the benefits  
>> are compromised by the LSA refresh mechanism, as has been noted.   
>> With 50,000 LSAs, my back-of-the-laptop calculations are that an  
>> LSA is refreshed on the average of once every 36 msec, or roughly  
>> 30 per second.  Scalable implementations go out of their way to  
>> smooth refreshes when they are originating a large number of LSAs,  
>> and if there are a large number of machines originating a small  
>> number of LSAs, these will (hopefully) tend to be smoothed out as  
>> well, in a way that does not correlate with the ordering mechanism  
>> proposed.
>
> First, 50k was just a number picked that would identify a common  
> large number of LSAs of a specific type(Externals)
>  (also the major of LSAs in the LSDB) that should all match and not  
> have any new DRother add to this LSA type pool.
>
> The simplified assumption is that the updates are just age refreshes.

Refreshed LSAs are no different than LSAs with significant changes,  
from the standpoint of flooding--even if the contents haven't changed,  
they still need to be flooded and the identities of those to be  
flooded need to be ascertained.  The fact of the matter is that the  
LSDB entropy grows with the size, and very large databases are very  
entropic, and thus resistant to any sort of blocky verification.

>
> I am not sure that this/checksums would be a better approach then  
> say DNA LSAs. The chksum approach fits better
> IMO in this case when a router stops rexmits of the LSA and has  
> taken down the adj. The DRother either would
> have to renew the adj or implement a search for the lost LSA.

I'm lost here.  What "lost LSA" are we searching for?  Why would a  
DROther not learn it in any case (from any other box with which it is  
adjacent)?

>
> In the common case of Eth, with your flooding example, in my limited  
> experience, the OSPF routers tend to
> initially come up within the area at the same time and thus  
> iniitally the LSAs are mostly flooded within the
> same quarter hour, if not within the first 5 minutes. Thus, peaks of  
> LSAs per second would be on the order
> of 200 LSAs per sec.

That's not my experience, but even if it were, our implementation  
rapidly covers this up so that there are no LSA peaks.  Refreshes are  
smeared smoothly across the refresh period precisely to avoid peaks,  
but of course this causes worst-case LSDB entropy.

Keep in mind that this flooding load is per-adjacency as well.

>
> Since the chksum is even simpler than a LSA hdr, I would expect more  
> than a 100 to 10kx LSA processing of
> just LSA age refreshes should be able to be accomplished with the  
> same level of work.

But LSA processing is simply not that costly.

>
> Somewhere in these numbers is a meltdown by a router with  
> standardized OSPF, where I question whether
> the chksum approach would have the same failure behaviour.

OSPF meltdowns in my experience are not caused by a lack of CPU;  they  
are caused by poor queueing and memory management behavior and stupid  
implementations that forget to send Hellos when they are busy.

>
>>
>> The efficiency of such schemes improves as the number of LSAs per  
>> checksum block goes up, but so does the probability of a checksum  
>> failure, in which case you're actually worse off than if you'd just  
>> send the darned things (since you have to anyhow, unless you start  
>> doing scary bifurcations of the space, all of which takes more  
>> time, and all of which causes even more LSAs to be stale.)
>
> The assumption is that a checksum is specified for the entire LSDB,  
> then a chksum for all the LSAs of a specified
> type, then a breakdown of each type. If we have Eth, we have a  
> 1500byte packet. We have no LSA lookups if
> we can can match each table line. If we add additional values like  
> LSA count, LSA type, etc, to each group
> checksum, then the same chksums that map to different sets of LSAs  
> should be minimized. Remember, we
> need a double failure/mapping because not just the group must map  
> identically but the chksum over the
> entire LSA type.
>
> FYI, yes, I know about the 64k byte offset of IP, but I don't want  
> reassembly overhead so a limit of 1.5k.
>
> What the additional groups get us, is the ability to locate request  
> entire LSA groups without needing
> all of the LSAs. The smaller the group, then  the smaller number of  
> extra LSAs that we really don't
> need but with more table lookups.
>
> YES, the complication is the CORRECT number of LSAs needed in a  
> block to minimize a duplicate mapping,
> where all items in the table line match, but the set of LSAs don't  
> match within the group.

I don't really follow all this, but I'll point out once again that  
because of refresh smoothing, the probability that *any* blocking  
scheme will work is very low when there are large numbers of LSAs.

>
>
>>
>> If that 50K LSA network was represented as 30 checksum blocks, and  
>> it takes a second for the basic handshaking to take place with a  
>> neighbor, the odds are decent that *all* of them will fail, in  
>> which case it's a waste of time.  Keep in mind that if you want to  
>> avoid bad checksums, you need to make the block size small, and  
>> thus the number of blocks large, and then you end up back where you  
>> started from unless the checksum-exchange protocol is reasonably  
>> windowed as well.
>
> Actually, how long does it take to process 1 1500 byte packet and do  
> say 100 table lookups. The key here is that not
> the entire LSDB summary needs to be exchanged per packet. We could  
> say that every 15 secs the next set of groups
> is xmit'ed and every x minutes you cover all the LSAs via the  
> groupings. So, I would expect less than 10ms to processs
> each packet.

You're completely missing the point, I think.  Or maybe I am.  In 15  
seconds in a 50K LSA network (at least with our routers) there will be  
400 changed LSAs, randomized across however you divide things into  
blocks.  If there are less than O(400) blocks, the probability of any  
of them being unchanged is poor.

>
>>
>> If you want to improve adjacency bringup in a non-compatible way,  
>> it seems like a more effective mechanism would be simply to fix the  
>> brain-dead DBD protocol so that it is not stop-and-wait;  if you  
>> can pump a few hundred PPS of DBDs across the wire without  
>> stopping, you can sync up very quickly in terms of wall-clock time  
>> without getting into the inevitable problems caused by trying to  
>> glom LSAs together and expecting them to sit still in the process.   
>> It seems a lot cheaper and more straightforward.
>
> The wireless win is the minimum number of bytes that COULD then be  
> sent over the connection and the ability
> to have dropouts and verifications that the LSDB is in sync and if  
> not, why not.
>
> With a protocol like OSPF that has aged, I would think that simpler  
> approaches to
> scale them in a transparent way would make more sense.
>
> With chksums, I would think that a DRother forming an adj with a BDR  
> after the DR, should be able to
> do this within just a few 100 packets. If the fastpath allows a  
> common read-mostly table lookup and can
> remove 90% of LSA hdr exchanges, then the ability for the BDR to  
> support 100+ simultaneous adj formations
> should sum to your 100s of packets per sec rate.
>
> With the ability to not send say 100s packets before a response to a  
> DRother
> during database exchange prevents the DR and/or BDR to FLOOD/overload
>  the DRother with LSAs. TCP's slow start is a multiplicative  
> increase to identify
> not just un-used capacity but also buffer capacity. If a flood of  
> 100 packets is
> jjust sent, and they are fragmented, they really need to be  
> reasembled, etc.
> This is assuming no tail drop or RED, where a dropped fragment  
> requires
> the sending of the entire packet/segment. The problem is not all  
> routers would
> have the same pps capacity and if they did and say 5 DRothers  
> implement your
> flooding to a single DR, wouldn't that be a problem? With a ACK  
> based protocol,
> the two communicating end points can add small latencies as needed and
> prevent one end point to overwhelm the other end point. Lastly, the  
> amount of
> CPU cycles needed to process 100 pps tends to be greater than  
> xmiting the
> 100 pps rate.
>
> Within an area, the assumption is
> that the link/media connection is probably at 1ms or less and thus  
> the round-trip-time should not
> be a concern.

The RTT on most networks I've seen are 10s or 100s of msec (they are  
geographically diverse.)  If you're using slow media (which I thought  
was one of the points of the exercise) the latency is also very high.   
A 1500 byte packet on a 56K link has over 200 msec of latency even  
before the speed of light comes into play.

> If the DRother and DR/or/BDR processes the packet within say 1ms  
> each, then
> the sum of packets per connection should easily reach your 100s of  
> packets per sec.
>
> Yes, with a ACK like protocol, having the the ability to poll or  
> generate just 1 interrupt
> for x number of packets can not be done with only 1 set of  
> concurrent connections. If
> you had say 100 simultaneous adj formations, yes you can then  
> implement the above.
>
>
>>
>> Bandwidth and CPU are practically free (particularly for something  
>> done relatively rarely) so trying to do heroic things to optimize  
>> such situations seems like a waste of effort.
>
> The above SHOULD use a fraction of the bandwidth and CPU. The gains  
> of doing so is the ability
> to verify that all the LSDBs are in synch within the area every sec.  
> The decrease of bandwidth
> is a decrease in latency when differences exist and the ability to  
> correct them quickly. IF flooding
> uses 1% of a CPU, we then have 99% to recompute routing changes.  
> With 1Gb and faster Eth
> media, having short convergent cycles is imperative. With this  
> additional CPU cycles and low cost
> memory, we have the abiltiy to compute backup routes. And to be able  
> to separate the LSA
> updates into age updates versus content updates. The later need to  
> be processed as a high
> priority and moving the former into Chksum verification, should be  
> able to take LSA content
> changes and reconverge the area within a subsec timeframe.
>
> However, alot of end systems (and routers) are or becoming mobile  
> and their bandwidth is in the
> kilobytes/sec capabilities, have expected dropouts, and we still  
> need to route to them. Thus adding
> downward scalability shouldn't be a negative.
>

IMHO, you have a solution looking for a problem here, and the solution  
seems to be uninteresting.

There's lots of talk about CPU optimization, and while it may be true  
that something could take 50% less CPU, if that thing is only taking a  
nominal amount of CPU to begin with (and is not the long pole in the  
tent) that optimization may be uninteresting.

OSPF as a whole doesn't scale well for large networks with small,  
unreliable bandwidth, and any scheme to improve initial database  
synchronization is only a patch on a much larger problem.

Rather than coming up with a one-off fix for part of the protocol  
(which may not even be viable), it seems like the right thing to do is  
to start on first principles.  What problem are you trying to solve,  
on the large scale?  Is OSPF (or link-state routing in general) a good  
match for solving this problem?  What other kinds of things need to be  
fixed in that problem space?

But that's just my opinion...

--Dave



From ogier@earthlink.net  Thu Apr 30 12:27:04 2009
Return-Path: <ogier@earthlink.net>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0B14D3A6B96 for <ospf@core3.amsl.com>; Thu, 30 Apr 2009 12:27:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.945
X-Spam-Level: 
X-Spam-Status: No, score=-1.945 tagged_above=-999 required=5 tests=[AWL=0.654,  BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6HG0vomJiJPg for <ospf@core3.amsl.com>; Thu, 30 Apr 2009 12:27:03 -0700 (PDT)
Received: from elasmtp-kukur.atl.sa.earthlink.net (elasmtp-kukur.atl.sa.earthlink.net [209.86.89.65]) by core3.amsl.com (Postfix) with ESMTP id 54F4A3A67DB for <ospf@ietf.org>; Thu, 30 Apr 2009 12:27:03 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net; b=jJMvISAsXQ44LzF4QO70tEbjn6za+MnbC7MHoe4nb+WmbKU7nanAKG4CfIpXegpK; h=Received:Message-ID:Date:From:User-Agent:X-Accept-Language:MIME-Version:To:Subject:Content-Type:Content-Transfer-Encoding:X-ELNK-Trace:X-Originating-IP;
Received: from [66.81.220.90] by elasmtp-kukur.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <ogier@earthlink.net>) id 1Lzbvl-0002pg-JJ for ospf@ietf.org; Thu, 30 Apr 2009 15:28:26 -0400
Message-ID: <49F9FC9C.7070509@earthlink.net>
Date: Thu, 30 Apr 2009 12:31:40 -0700
From: Richard Ogier <ogier@earthlink.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: ospf@ietf.org
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-ELNK-Trace: a073897a9455599e74bf435c0eb9d478594a5b3a834a310e40658b7f116ba216021ad78892ff807e350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 66.81.220.90
Subject: [OSPF] draft-ietf-ospf-lls
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 30 Apr 2009 19:27:04 -0000

The LLS draft is in state IESG Evaluation :: Revised ID Needed.
https://datatracker.ietf.org/idtracker/draft-ietf-ospf-lls/

When can we expect the draft to be revised?  The OSPF-MDR draft
(draft-ietf-ospf-manet-mdr) is held up in the RFC Editor Queue
waiting for the LLS draft to be approved (since the LLS draft is
a normative reference).  I am starting to wish I had incorrectly
referenced RFC 4813 (LLS for IPv4), as the OSPF-MPR draft did.

Richard



From akr@cisco.com  Thu Apr 30 13:03:15 2009
Return-Path: <akr@cisco.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 561233A6885 for <ospf@core3.amsl.com>; Thu, 30 Apr 2009 13:03:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level: 
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VcXq68n93UxY for <ospf@core3.amsl.com>; Thu, 30 Apr 2009 13:03:14 -0700 (PDT)
Received: from sj-iport-6.cisco.com (sj-iport-6.cisco.com [171.71.176.117]) by core3.amsl.com (Postfix) with ESMTP id 78A663A6B66 for <ospf@ietf.org>; Thu, 30 Apr 2009 13:03:14 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.40,274,1238976000"; d="scan'208";a="296082119"
Received: from sj-dkim-2.cisco.com ([171.71.179.186]) by sj-iport-6.cisco.com with ESMTP; 30 Apr 2009 20:04:30 +0000
Received: from sj-core-1.cisco.com (sj-core-1.cisco.com [171.71.177.237]) by sj-dkim-2.cisco.com (8.12.11/8.12.11) with ESMTP id n3UK4UBh008061;  Thu, 30 Apr 2009 13:04:30 -0700
Received: from [171.70.225.207] (dhcp-171-70-225-207.cisco.com [171.70.225.207]) by sj-core-1.cisco.com (8.13.8/8.13.8) with ESMTP id n3UK4UnI013600; Thu, 30 Apr 2009 20:04:30 GMT
Message-ID: <49FA044E.3050200@cisco.com>
Date: Thu, 30 Apr 2009 13:04:30 -0700
From: Abhay Roy <akr@cisco.com>
User-Agent: Thunderbird 2.0.0.21 (Windows/20090302)
MIME-Version: 1.0
To: Richard Ogier <ogier@earthlink.net>
References: <49F9FC9C.7070509@earthlink.net>
In-Reply-To: <49F9FC9C.7070509@earthlink.net>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=831; t=1241121870; x=1241985870; c=relaxed/simple; s=sjdkim2002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=akr@cisco.com; z=From:=20Abhay=20Roy=20<akr@cisco.com> |Subject:=20Re=3A=20[OSPF]=20draft-ietf-ospf-lls |Sender:=20; bh=X3FJLtzfSIPdmg5k277X4m7rMHbl8Z2U2MIXRKQ+BS0=; b=hijfV9ti2tep1GeVv/4rQ6qFPKzcOItU8hIE7BMl8qW9ir5jGvcD49Ui6g pQ+17Z3bXhvmNZVMvNm7cC502DRfwo2H5t7aLU7zf5R5TulCGDFEkWW02qol NnqLZ33T7N;
Authentication-Results: sj-dkim-2; header.From=akr@cisco.com; dkim=pass ( sig from cisco.com/sjdkim2002 verified; ); 
Cc: ospf@ietf.org
Subject: Re: [OSPF] draft-ietf-ospf-lls
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 30 Apr 2009 20:03:15 -0000

Hi Richard,

There are still a few discuss issues to be cleared. Let me ping them and 
see what else is needed in the next revision.

Regards,
-Abhay

On 4/30/2009 12:31 PM, Richard Ogier wrote:
> The LLS draft is in state IESG Evaluation :: Revised ID Needed.
> https://datatracker.ietf.org/idtracker/draft-ietf-ospf-lls/
> 
> When can we expect the draft to be revised?  The OSPF-MDR draft
> (draft-ietf-ospf-manet-mdr) is held up in the RFC Editor Queue
> waiting for the LLS draft to be approved (since the LLS draft is
> a normative reference).  I am starting to wish I had incorrectly
> referenced RFC 4813 (LLS for IPv4), as the OSPF-MPR draft did.
> 
> Richard
> 
> 
> _______________________________________________
> OSPF mailing list
> OSPF@ietf.org
> https://www.ietf.org/mailman/listinfo/ospf

From asmirnov@cisco.com  Thu Apr 30 15:11:40 2009
Return-Path: <asmirnov@cisco.com>
X-Original-To: ospf@core3.amsl.com
Delivered-To: ospf@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4B4373A6853 for <ospf@core3.amsl.com>; Thu, 30 Apr 2009 15:11:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.107
X-Spam-Level: 
X-Spam-Status: No, score=-0.107 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FRT_ESTABLISH2=2.492]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OiSx4pNfQt05 for <ospf@core3.amsl.com>; Thu, 30 Apr 2009 15:11:38 -0700 (PDT)
Received: from av-tac-bru.cisco.com (weird-brew.cisco.com [144.254.15.118]) by core3.amsl.com (Postfix) with ESMTP id 0CC9D3A6A18 for <ospf@ietf.org>; Thu, 30 Apr 2009 15:10:47 -0700 (PDT)
X-TACSUNS: Virus Scanned
Received: from strange-brew.cisco.com (localhost.cisco.com [127.0.0.1]) by av-tac-bru.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id n3UMC8st011879; Fri, 1 May 2009 00:12:09 +0200 (CEST)
Received: from [10.55.140.89] (ams-asmirnov-8718.cisco.com [10.55.140.89]) by strange-brew.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id n3UMC50H014585; Fri, 1 May 2009 00:12:06 +0200 (CEST)
Message-ID: <49FA2235.7080507@cisco.com>
Date: Fri, 01 May 2009 00:12:05 +0200
From: Anton Smirnov <asmirnov@cisco.com>
Organization: Cisco Systems, Inc.
User-Agent: Thunderbird 2.0.0.19 (X11/20081227)
MIME-Version: 1.0
To: Dave Katz <dkatz@juniper.net>
References: <B4F41E54-FC9A-4E67-A82E-E5AB280BD7C3@earthlink.net>	<49EE0286.9070903@cisco.com> <49F4FAB9.4030009@earthlink.net>	<be8c8d780904270057gac5fa7ei9b3f366189949584@mail.gmail.com>	<B8093021-06F3-43BD-883B-55E6C8C608CC@earthlink.net> <0E0F4684-5F14-4E13-B573-DC1F32C31317@juniper.net> <49F6DF5D.80409@cisco.com> <E0D6017D-5030-42EB-AC73-234E0768985E@juniper.net>
In-Reply-To: <E0D6017D-5030-42EB-AC73-234E0768985E@juniper.net>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: ospf@ietf.org
Subject: Re: [OSPF] Preliminary idea: OSPF Database Exchange : Pre-Step
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 30 Apr 2009 22:11:40 -0000

   Hi Dave,

> I guess I'd be impressed with a network that had 50,000 LSAs but very
> limited bandwidth and CPU.  I have a feeling that such a network would
> have bigger problems than the time it takes to bring up an additional
link.

   In the context of this discussion example with 50000 LSAs does not
interest me at all, MANET or not. Not because it is a difficult case.
Vice versa, it is unrealistically too optimal case.


>>> If that 50K LSA network was represented as 30 checksum blocks, and it
>>> takes a second for the basic handshaking to take place with a neighbor,
>>> the odds are decent that *all* of them will fail, in which case it's a
>>> waste of time.  Keep in mind that if you want to avoid bad checksums,
>>> you need to make the block size small, and thus the number of blocks
>>> large, and then you end up back where you started from unless the
>>> checksum-exchange protocol is reasonably windowed as well.

   Not at all. Refreshed LSAs are easy to exclude from checksumming on
both sides exactly because they are known to be young. Let me do MY math :-)
   Suppose LSDB of routers were in sync N seconds ago. In this case LSA
ages for older LSAs should be within N +- InfTransDelay. Lets take a
value k with sufficiently big margin, say 15.
   Router sending DBD places start and end points of checksumming range
so that the range does not cover any LSAs with age of N +- k  (but may
cover LSAs with age less than N-k; those are 'new' refreshed LSAs).
After that checksum is calculated over the range but LSAs with age less
than N-k are not included into the checksum.
   Router receiving DBD will have N and start/end points. It too
calculates the checksum over the range excluding from it LSAs with age
less than N.
   Value of 2k is << MaxAge (1-2%), hence it is very easy to choose
range with good chances of eligible LSAs in the range being in sync.

   As for the value of N - it can be known from prior events or it can
even be estimated dynamically.
   If a router receives DBD describing LSA with age n and finds this LSA
in its LSDB then it is not unreasonable to expect that n seconds ago
LSDBs were in sync. Hence N can be set to n. There are some scenarios
where this assumption fails, for example if adjacency was terminated
while LOADING. But estimation is good enough to try using this for
sending older LSAs as checksum ranges.


   You may wonder what's my point :-)
   My point is that technically idea of checksumming can be made
working. And it will work the better the more LSAs are in LSDB.
   The downside of it is that it is not backward compatible. So the
question is if this scenario needs to be solved even if it can be
solved. Or if it needs to be solved by checksumming, by complicating DBD
packet serialization or by some other means.

   Thanks,

Anton



Dave Katz wrote:
> 
> On Apr 28, 2009, at 5:50 AM, Anton Smirnov wrote:
> 
>>   Hi Dave,
>>   I agree with you in most (but not all) statements.
>>
>>> Bandwidth and CPU are practically free
>>
>>   Unless you consider MANETs where bandwidth is not free and CPU
>> resources may also be relatively limited.
>>   Originally idea of checksumming was born in context of MANETs. And in
>> that environment exchange of database checksums may actually work  well.
>>   The first Mitchell's post was about network scenario NOT related to
>> MANETs but questioned how well that idea will work. So my post was more
>> to point out that no, idea conceived with MANET in mind will not work in
>> non-MANET environment. At least not until the idea is properly
>> generalized.
> 
> I guess I'd be impressed with a network that had 50,000 LSAs but very
> limited bandwidth and CPU.  I have a feeling that such a network would
> have bigger problems than the time it takes to bring up an additional link.
> 
>>
>>
>>> If you want to improve adjacency bringup in a non-compatible way, it
>>> seems like a more effective mechanism would be simply to fix the
>>> brain-dead DBD protocol so that it is not stop-and-wait
>>
>>   Agree.
>>
>>
>>> if you can
>>> pump a few hundred PPS of DBDs across the wire without stopping, you can
>>> sync up very quickly in terms of wall-clock time without getting into
>>> the inevitable problems caused by trying to glom LSAs together and
>>> expecting them to sit still in the process.  It seems a lot cheaper and
>>> more straightforward.
>>
>>   That's good only in case of homogeneous network of powerful routers
>> connected by high-bandwidth links.
>>   It is likely to give a lot of troubles in star topologies where one
>> router has many neighbors. Fast DBD flooding from spokes will just swamp
>> the hub router.
>>   And I have mentioned it is not going to work in case of MANETs.
> 
> But this is no different than the situation with LSUpd packets today,
> and needs to be solved in the same way (hack.)  We used to deal with a
> much worse situation ten or fifteen years ago, which were sizable full
> meshes.  If it were easy, we wouldn't make any money doing it.  ;-)
> 
> --Dave
> 
>>
>>
>>   Of course, transport protocols have solved all these issues long time
>> ago. But we don't want to turn DBD into window-based protocol with slow
>> start, congestion avoidance and all the stuff :-)
>>
>>   Thanks,
>>
>> Anton
>>
>>
>>
>> Dave Katz wrote:
>>> On first principles, it seems as though the only reason to do something
>>> like this is to reduce the amount of time it takes to bring up a new
>>> link, and even that is probably only interesting if the network is at
>>> least slightly partitioned without it.  Keep in mind that such a scheme
>>> is only useful if the database is already close to synchronized, so it
>>> doesn't help when a router first comes up.  Given all that, it's not
>>> entirely clear that doing this is *that* interesting, but no matter.
>>>
>>> The problem with any of these checksum schemes is that the benefits are
>>> compromised by the LSA refresh mechanism, as has been noted.  With
>>> 50,000 LSAs, my back-of-the-laptop calculations are that an LSA is
>>> refreshed on the average of once every 36 msec, or roughly 30 per
>>> second.  Scalable implementations go out of their way to smooth
>>> refreshes when they are originating a large number of LSAs, and if there
>>> are a large number of machines originating a small number of LSAs, these
>>> will (hopefully) tend to be smoothed out as well, in a way that does not
>>> correlate with the ordering mechanism proposed.
>>>
>>> The efficiency of such schemes improves as the number of LSAs per
>>> checksum block goes up, but so does the probability of a checksum
>>> failure, in which case you're actually worse off than if you'd just send
>>> the darned things (since you have to anyhow, unless you start doing
>>> scary bifurcations of the space, all of which takes more time, and all
>>> of which causes even more LSAs to be stale.)
>>>
>>> If that 50K LSA network was represented as 30 checksum blocks, and it
>>> takes a second for the basic handshaking to take place with a neighbor,
>>> the odds are decent that *all* of them will fail, in which case it's a
>>> waste of time.  Keep in mind that if you want to avoid bad checksums,
>>> you need to make the block size small, and thus the number of blocks
>>> large, and then you end up back where you started from unless the
>>> checksum-exchange protocol is reasonably windowed as well.
>>>
>>> If you want to improve adjacency bringup in a non-compatible way, it
>>> seems like a more effective mechanism would be simply to fix the
>>> brain-dead DBD protocol so that it is not stop-and-wait;  if you can
>>> pump a few hundred PPS of DBDs across the wire without stopping, you can
>>> sync up very quickly in terms of wall-clock time without getting into
>>> the inevitable problems caused by trying to glom LSAs together and
>>> expecting them to sit still in the process.  It seems a lot cheaper and
>>> more straightforward.
>>>
>>> Bandwidth and CPU are practically free (particularly for something done
>>> relatively rarely) so trying to do heroic things to optimize such
>>> situations seems like a waste of effort.
>>>
>>> Maybe I'm missing something fundamental here?
>>>
>>> --Dave
>>>
>>>
>>> On Apr 27, 2009, at 9:47 AM, Mitchell Erblich wrote:
>>>
>>>> Group,
>>>>
>>>> First my thoughts are currently in the inception phase
>>>> and COULD apply to both wired and wireless
>>>> environments and I applogize for my verboseness.
>>>>
>>>> My initial assumptions are that a OSPF area will be
>>>> majority built using the common Ethernet (BMA) environment
>>>> and once a OSPF area is formed major LSA changes are rare.
>>>>
>>>> Second is that the LSDB is comprised of say 50k LSAs
>>>> which are mostly/90% ExternalLSAs. Thus, Anton, I do not think
>>>> your numbers are correct. If we had routers forming adjs
>>>> via standard LSDB exchange each 100k LSAs sum exchange with
>>>> DR/BDR and using checksums. Then no ExternalLSA hdrs would
>>>> need to be exchanged with the BDR, thus removing almost
>>>> 50% from database exchange. FYI: We got them from the DR.
>>>>
>>>> My below inquiry stated a checksum per LSA type and
>>>> the ability to generate subgroups of checksums per
>>>> LSA type. Yes, it also stated a full LSDB checksum.
>>>>
>>>> Since the flooding of LSAs is mostly the same, even a few
>>>> LSAs changing within the ExternalLSa type COULD be covered
>>>> by specifying that the A-Y range did not change and the
>>>> Z range has new hdrs/LSAs and updated normally.
>>>>
>>>> If the later/changes was false, during convergence, routing anomalies
>>>> would be a major concern and data would be routed improperly
>>>> or just lost. With OLD standardized TCP congestion avoidance
>>>> algorithms, a single lost packet assumes congestion and
>>>> assuming 100% bandwidth usage drops TCP to 50% with
>>>> multiplicative decrease. Then a huge number of round trips
>>>> before additive increase gets back to approx 100% bandwidth.
>>>> Even changes in routing paths can generate out-of-orderness with
>>>> the same result. Different hosts/end systems can have different
>>>> Congestion Avoidance algorithms.
>>>>
>>>> Thus, if convergences are frequent then the utilization
>>>> of each of the TCP connection paths would have frequently
>>>> poor bandwidth usage. So the assumption is that once a
>>>> OSPF area is formed, it tends to be UNCHANGING.
>>>>
>>>>
>>>> I mentally prefer a predefined range such that routers
>>>> can pre-compute the checksums before even the
>>>> initial LSDB exchange. To predetermine where the
>>>> breaks should exist is currently unknown.
>>>>
>>>> I see three possible major wins where checksums COULD
>>>> be used.
>>>>     The first is flooding from the DR to DRothers
>>>>       to update the LSDB so the amount of flooding could
>>>>       be minimized, with the same same effect of DNA LSAs.
>>>> Effectively a group LSA refresh.
>>>>  The second is when a DRother initially forms an adjacency
>>>>      with the BDR and accepting that the ExternalLSAs would
>>>>      be the majority of LSAs and the belief that the DRother
>>>>      would already have the ExternalLSAs in its LSDB.
>>>>   The third is when the DRother wants to just verify that
>>>> no LSAs were lost due to either congestion, temp
>>>> drop of the adj, etc and verfify that no-one has either
>>>> given up rexmits or is still doing xmits. And to pick up
>>>> a single dropped LSA without a full Database Exch.
>>>>
>>>> Getting back to the pre-computation would prevent a
>>>> OSPF speaking router from doing the calcs at adj
>>>> formation time. Even doing the calc at adj formation
>>>> should remove say 90+% of LSAs from needing to
>>>> be recomputed on each LSDB verify sync.
>>>>
>>>> However, to decrease the need to do the calcs at
>>>> overhead, first checking whether LSA type counts
>>>> match could be done and only if they match, then
>>>> do the necessary computation. The type, count,
>>>> and checksum, should generate some form of
>>>> uniqueness. Some field within the begining and
>>>> ending LSAs might add some more verifcation.
>>>>
>>>> So, what am I missing here? and why hasn't anybody
>>>> done this?
>>>>
>>>> Mitchell Erblich
>>>> ===================
>>>>
>>>>
>>>> On Apr 27, 2009, at 12:57 AM, Emmanuel Baccelli wrote:
>>>>
>>>>> Hi Anton,
>>>>>
>>>>> yes, a similar scheme was studied a few years back, in this paper:
>>>>> OSPF Database Exchange and Reliable Synchronization in Mobile Ad Hoc
>>>>> Networks <http://www.emmanuelbaccelli.org/publications/WNET_2004.pdf>
>>>>>
>>>>> Such a mechanism could indeed lead to interesting performance
>>>>> enhancements, I agree with Richard.
>>>>>
>>>>> cheers,
>>>>>
>>>>> Emmanuel
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Apr 27, 2009 at 2:22 AM, Richard Ogier <ogier@earthlink.net
>>>>> <mailto:ogier@earthlink.net>> wrote:
>>>>>
>>>>>    Anton,
>>>>>
>>>>>    I like your idea of sending a checksum for a range of LSAs, to
>>>>>    increase the probability that the LSAs in a given range are in
>>>>>    sync between the two neighbors.  (This helps even if the
>>>>>    age field is ignored when selecting the ranges.)
>>>>>
>>>>>    For example, suppose there are 100 LSAs and each LSA has a 2%
>>>>>    chance of not being in sync.  Then the probability that all
>>>>>    LSAs are in sync is .98^100 = .1326, too low to result in
>>>>>    a significant overhead reduction.
>>>>>    Now suppose the LSAs are divided into 10 ranges, each with 10 LSAs.
>>>>>    The probability that all LSAs in a given range are in sync is then
>>>>>    .98^10 = .8171, resulting in a big overhead reduction on average.
>>>>>
>>>>>    The selected range for each LSA type can depend on how frequently
>>>>>    new LSAs are originated for that type, with a larger range chosen
>>>>>    if LSAs are originated less frequently (so that the probability
>>>>>    of being out of sync is lower).
>>>>>
>>>>>    This idea can be combined with the database exchange optimization
>>>>>    of RFC 5243 to further reduce overhead.  I.e., if the checksums
>>>>>    do not match, then RFC 5243 can be used to reduce the number of
>>>>>    LSA headers exchanged in DD packets by up to 50%.
>>>>>    Also, if the checksums do match for a given range of LSAs, then the
>>>>>    router receiving the checksum need not send the same checksum for
>>>>>    the same range of LSAs.
>>>>>
>>>>>    Richard
>>>>>
>>>>>
>>>>>    Anton Smirnov wrote:
>>>>>
>>>>>         Mitchell,
>>>>>         LSDBs may be very close but they are seldom EXACTLY the
>>>>>        same. The
>>>>>        thing is that change in adjacency triggers LSA [re]build, so
>>>>>        depending
>>>>>        on timing router and/or network LSAs may change by the time
>>>>>        adjacency
>>>>>        restores.
>>>>>         Also, in moderately sized modern OSPF network there is
>>>>> constant
>>>>>        background noise of LSAs being refreshed. So again, chances
>>>>> that
>>>>>        refreshed LSA arrived to one side but not another while
>>>>>        adjacency is
>>>>>        down are relatively high.
>>>>>         These considerations make precomputed checksums over large
>>>>>        number of
>>>>>        LSAs rather bad for the purpose.
>>>>>         If you want to explore venue of checksumming database
>>>>>        exchange then I
>>>>>        recommend to look for more flexible approach giving routers
>>>>>        possibility
>>>>>        to choose range of LSAs to compute checksum over. For
>>>>>        example, if both
>>>>>        routers support the checksum exchange then router sending DBD
>>>>>        could
>>>>>        specify the first, the last LSA and value of some kind of
>>>>>        hash of LSA
>>>>>        headers between them (LSAs in LSDB can be viewed as ordered
>>>>>        sequence as
>>>>>        per RFC 5243). In this way router preparing DBD packet may
>>>>>        place start
>>>>>        and end points of checksumming to avoid including into the
>>>>>        range LSAs
>>>>>        with ages around 0 and MAXAGE (because these are LSAs which
>>>>>        are less
>>>>>        likely to match between routers). So database exchange will
>>>>>        consist of
>>>>>        series of single LSA headers (the 'old' way) and large LSA
>>>>>        sequences.
>>>>>
>>>>>        Anton
>>>>>
>>>>>
>>>>>
>>>>>        Mitchell Erblich wrote:
>>>>>
>>>>>
>>>>>            Group,
>>>>>
>>>>>                  General thoughts...
>>>>>
>>>>>                  After a conversation about OSPF's standard database
>>>>>            exchange and
>>>>>            how inefficient it
>>>>>                  is when two routers have large LSDBs and them
>>>>>            almost being the
>>>>>            same, we concluded
>>>>>                  that the use of Checksums might significantly
>>>>>            decrease the
>>>>>            amount of overhead and
>>>>>                  achieve faster convergence.
>>>>>
>>>>>                      Moy first (I think) suggested the LSDB checksum
>>>>>            support to
>>>>>            identify identical
>>>>>                      LSDBs.  Sometime later the MIB supported the
>>>>>            ospfExternLsaChksumSum,
>>>>>                      ospfAreaLsaChksumSum, and ospfLsdbChecksum
>>>>> fields.
>>>>>
>>>>>                      Thus, why not support the ability to have OSPF
>>>>>            routers first
>>>>>            exchange
>>>>>                      checksums with LSA counts. If the LSDBs have
>>>>>            more than XYZ
>>>>>            entries
>>>>>                      in their LSDBs, then the counts which are above
>>>>>            specific
>>>>>            thresholds then
>>>>>                      support the checksum on each X count of LSA
>>>>>            type. Only the
>>>>>            groups
>>>>>                      with non-matching Checksums would then go thru
>>>>>            database
>>>>>            exchange.
>>>>>
>>>>>                      Thus, before database exchange, support some
>>>>>            form of triple
>>>>>            that
>>>>>                      as routers have almost the same LSDBs,   the
>>>>>            checksum exchange
>>>>>                       would remove unnecessary LSA header exchange.
>>>>>
>>>>>                      This, IMO, would also be a big win if say a
>>>>>            DRother was
>>>>>            adjacent, lost
>>>>>                      adjacency, and re-exstablished it a short time
>>>>>            later while
>>>>>            keeping a
>>>>>                      past snapshot. It could remove its own
>>>>>            originated LSAs and
>>>>>            compare
>>>>>                      checksums..
>>>>>
>>>>>                      In this scenario, within BMA areas, I think
>>>>>            only DR /
>>>>>            DRother and BDR/ DRother
>>>>>                      need to be making this Checksum exchange..
>>>>>
>>>>>                      Wouldn't the exchange of this data benefit each
>>>>>            router
>>>>>            receiving the
>>>>>                      information and allow both routers to know the
>>>>>            number of
>>>>>            LSAs to
>>>>>                      be possibly exchanged?
>>>>>                                Yes, a new capability would probably
>>>>>            have to be added.
>>>>>
>>>>>
>>>>>                      So, the first question is whether the checksums
>>>>>            are unique
>>>>>            enough with a
>>>>>                      count and type to determine whether that
>>>>>            section of the LSDB
>>>>>            matches
>>>>>                      between two routers?
>>>>>
>>>>>                      And then what savings would normally exist in
>>>>>            this hybrid
>>>>>            database exchange
>>>>>                      and is it worth the effort?
>>>>>
>>>>>                  Mitchell Erblich
>>>>>
>>>>>
>>>>>
>>>>>             _______________________________________________
>>>>>            OSPF mailing list
>>>>>            OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>>>            https://www.ietf.org/mailman/listinfo/ospf
>>>>>
>>>>>
>>>>>        _______________________________________________
>>>>>        OSPF mailing list
>>>>>        OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>>>        https://www.ietf.org/mailman/listinfo/ospf
>>>>>
>>>>>
>>>>>
>>>>>    _______________________________________________
>>>>>    OSPF mailing list
>>>>>    OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>>>    https://www.ietf.org/mailman/listinfo/ospf
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> OSPF mailing list
>>>>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>>> https://www.ietf.org/mailman/listinfo/ospf
>>>>
>>>> _______________________________________________
>>>> OSPF mailing list
>>>> OSPF@ietf.org <mailto:OSPF@ietf.org>
>>>> https://www.ietf.org/mailman/listinfo/ospf
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> OSPF mailing list
>>> OSPF@ietf.org
>>> https://www.ietf.org/mailman/listinfo/ospf
>>
