From nobody Wed Apr 6 10:36:19 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B316A12D6D9; Wed, 6 Apr 2016 10:36:17 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.6 X-Spam-Level: X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001] autolearn=ham autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TBf9E-Mqb0Dt; Wed, 6 Apr 2016 10:36:15 -0700 (PDT) Received: from mx0a-00191d01.pphosted.com (mx0a-00191d01.pphosted.com [67.231.149.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 97D7612D0F3; Wed, 6 Apr 2016 10:36:15 -0700 (PDT) Received: from pps.filterd (m0049295.ppops.net [127.0.0.1]) by m0049295.ppops.net-00191d01. (8.15.0.59/8.15.0.59) with SMTP id u36ExIf3043440; Wed, 6 Apr 2016 11:01:47 -0400 Received: from alpi155.enaf.aldc.att.com (sbcsmtp7.sbc.com [144.160.229.24]) by m0049295.ppops.net-00191d01. with ESMTP id 2254ev0rk2-1 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 06 Apr 2016 11:01:47 -0400 Received: from enaf.aldc.att.com (localhost [127.0.0.1]) by alpi155.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id u36F1jtX014116; Wed, 6 Apr 2016 11:01:45 -0400 Received: from mlpi407.sfdc.sbc.com (mlpi407.sfdc.sbc.com [130.9.128.239]) by alpi155.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id u36F1XMr013575 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 6 Apr 2016 11:01:38 -0400 Received: from MISOUT7MSGHUBAB.ITServices.sbc.com (MISOUT7MSGHUBAB.itservices.sbc.com [130.9.129.146]) by mlpi407.sfdc.sbc.com (RSA Interceptor); Wed, 6 Apr 2016 15:01:19 GMT Received: from MISOUT7MSGUSRDE.ITServices.sbc.com ([169.254.5.49]) by MISOUT7MSGHUBAB.ITServices.sbc.com ([130.9.129.146]) with mapi id 14.03.0248.002; Wed, 6 Apr 2016 11:01:19 -0400 From: "BRUNGARD, DEBORAH A" To: "rtg-dir@ietf.org" Thread-Topic: Routing Area Directorate updates Thread-Index: AdGQEU5cDaO4fAC9SX+oo715MCt6ng== Date: Wed, 6 Apr 2016 15:01:19 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [130.10.234.235] Content-Type: multipart/alternative; boundary="_000_F64C10EAA68C8044B33656FA214632C85286FDAAMISOUT7MSGUSRDE_" MIME-Version: 1.0 X-RSA-Inspected: yes X-RSA-Classifications: public X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-04-06_08:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1601100000 definitions=main-1604060221 Archived-At: Cc: " \(rtg-ads@ietf.org\)" , "Jonathan Hardwick \(Jonathan.Hardwick@metaswitch.com\)" , "Zhangxian \(Xian\)" , "Jon Hudson \(jon.hudson@gmail.com\)" Subject: [RTG-DIR] Routing Area Directorate updates X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Apr 2016 17:36:17 -0000 --_000_F64C10EAA68C8044B33656FA214632C85286FDAAMISOUT7MSGUSRDE_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, We've added a third Coordinator, Xian Zhang. Welcome Xian! Your reviews have been really helpful for improving our documents and we wa= nt to expand to do more of the Routing Area documents before submitting to = the IESG. We also may ask your help on drafts from other Areas that may hav= e routing implications. To better utilize everyone, we're going to move to = a different assignment model for reviews. We're going to do as in other Are= as, we're going to use a round-robin model. The other Areas use a tool for = the assignment, our Coordinators will let you know how they will do it. To ensure we have timely reviews, it will be really important that you resp= ond quickly when receiving a request. If you have not responded in 3 days, = the review will be reassigned. If you don't respond/refuse 3 reviews over a= 6 month period, we will suggest that you not be on the Directorate. If you are assigned a document which may not be exactly your expertise that= 's ok. It's very important the document is "readable". That's where we ofte= n get hung up during IESG review. If on vacation or will be without email, just let the Coordinators know and= /or use away-from-email auto-responder. Thanks to everyone for your time and support! Deborah --_000_F64C10EAA68C8044B33656FA214632C85286FDAAMISOUT7MSGUSRDE_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Hi,
 
We’ve added a third Coordinator, Xian Zhang. Welcome Xian!
 
Your reviews have been really helpful for improving our documents and = we want to expand to do more of the Routing Area documents before submittin= g to the IESG. We also may ask your help on drafts from other Areas that ma= y have routing implications. To better utilize everyone, we’re going to move to a different assignmen= t model for reviews. We’re going to do as in other Areas, we’re= going to use a round-robin model. The other Areas use a tool for the assig= nment, our Coordinators will let you know how they will do it.
 
To ensure we have timely reviews, it will be really important that you= respond quickly when receiving a request. If you have not responded in 3 d= ays, the review will be reassigned. If you don’t respond/refuse 3 rev= iews over a 6 month period, we will suggest that you not be on the Directorate.
 
If you are assigned a document which may not be exactly your expertise= that’s ok. It’s very important the document is “readable= ”. That’s where we often get hung up during IESG review.
 
If on vacation or will be without email, just let the Coordinators kno= w and/or use away-from-email auto-responder.
 
Thanks to everyone for your time and support!
Deborah
 
--_000_F64C10EAA68C8044B33656FA214632C85286FDAAMISOUT7MSGUSRDE_-- From nobody Thu Apr 7 11:38:24 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1439112D564; Thu, 7 Apr 2016 11:38:22 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: 1.739 X-Spam-Level: * X-Spam-Status: No, score=1.739 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, HTML_MESSAGE=0.001, RDNS_NONE=0.793] autolearn=no autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bC2WNhiTsLPo; Thu, 7 Apr 2016 11:38:20 -0700 (PDT) Received: from hickoryhill-consulting.com (unknown [50.245.122.97]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E604212D5C2; Thu, 7 Apr 2016 11:38:19 -0700 (PDT) X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=31.133.178.123; From: "Susan Hares" To: "'BRUNGARD, DEBORAH A'" , References: In-Reply-To: Date: Thu, 7 Apr 2016 14:37:14 -0400 Message-ID: <000001d190fc$83ae94b0$8b0bbe10$@ndzh.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0001_01D190DA.FC9E7B50" X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQGLEBzZGSNVU8m7W1I3TnQklK8l8qAL2J3w Content-Language: en-us X-Authenticated-User: skh@ndzh.com Archived-At: Cc: rtg-ads@ietf.org, 'Jonathan Hardwick' , "'Zhangxian \(Xian\)'" , 'Jon Hudson' Subject: Re: [RTG-DIR] Routing Area Directorate updates X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Apr 2016 18:38:22 -0000 This is a multipart message in MIME format. ------=_NextPart_000_0001_01D190DA.FC9E7B50 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Xian: Welcome. We appreciate your help. Sue From: rtg-dir [mailto:rtg-dir-bounces@ietf.org] On Behalf Of BRUNGARD, DEBORAH A Sent: Wednesday, April 06, 2016 11:01 AM To: rtg-dir@ietf.org Cc: (rtg-ads@ietf.org); Jonathan Hardwick (Jonathan.Hardwick@metaswitch.com); Zhangxian (Xian); Jon Hudson (jon.hudson@gmail.com) Subject: [RTG-DIR] Routing Area Directorate updates Hi, We've added a third Coordinator, Xian Zhang. Welcome Xian! Your reviews have been really helpful for improving our documents and we want to expand to do more of the Routing Area documents before submitting to the IESG. We also may ask your help on drafts from other Areas that may have routing implications. To better utilize everyone, we're going to move to a different assignment model for reviews. We're going to do as in other Areas, we're going to use a round-robin model. The other Areas use a tool for the assignment, our Coordinators will let you know how they will do it. To ensure we have timely reviews, it will be really important that you respond quickly when receiving a request. If you have not responded in 3 days, the review will be reassigned. If you don't respond/refuse 3 reviews over a 6 month period, we will suggest that you not be on the Directorate. If you are assigned a document which may not be exactly your expertise that's ok. It's very important the document is "readable". That's where we often get hung up during IESG review. If on vacation or will be without email, just let the Coordinators know and/or use away-from-email auto-responder. Thanks to everyone for your time and support! Deborah ------=_NextPart_000_0001_01D190DA.FC9E7B50 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Xian:

 

Welcome.  We appreciate your help.

 

Sue

 

From:= = rtg-dir [mailto:rtg-dir-bounces@ietf.org] On Behalf Of BRUNGARD, = DEBORAH A
Sent: Wednesday, April 06, 2016 11:01 = AM
To: rtg-dir@ietf.org
Cc: <rtg-ads@ietf.org> = (rtg-ads@ietf.org); Jonathan Hardwick = (Jonathan.Hardwick@metaswitch.com); Zhangxian (Xian); Jon Hudson = (jon.hudson@gmail.com)
Subject: [RTG-DIR] Routing Area = Directorate updates

 

Hi,

 =

We’ve= added a third Coordinator, Xian Zhang. Welcome = Xian!

 =

Your = reviews have been really helpful for improving our documents and we want = to expand to do more of the Routing Area documents before submitting to = the IESG. We also may ask your help on drafts from other Areas that may = have routing implications. To better utilize everyone, we’re going = to move to a different assignment model for reviews. We’re going = to do as in other Areas, we’re going to use a round-robin model. = The other Areas use a tool for the assignment, our Coordinators will let = you know how they will do it.

 =

To ensure = we have timely reviews, it will be really important that you respond = quickly when receiving a request. If you have not responded in 3 days, = the review will be reassigned. If you don’t respond/refuse 3 = reviews over a 6 month period, we will suggest that you not be on the = Directorate.

 =

If you are = assigned a document which may not be exactly your expertise that’s = ok. It’s very important the document is “readable”. = That’s where we often get hung up during IESG = review.

 =

If on = vacation or will be without email, just let the Coordinators know and/or = use away-from-email auto-responder.

 =

Thanks to = everyone for your time and support!

Deborah

 =

------=_NextPart_000_0001_01D190DA.FC9E7B50-- From nobody Wed Apr 13 13:47:38 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3320412E516; Wed, 13 Apr 2016 13:47:37 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.702 X-Spam-Level: X-Spam-Status: No, score=-2.702 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=joelhalpern.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CZSC-BumzuAw; Wed, 13 Apr 2016 13:47:35 -0700 (PDT) Received: from mailb2.tigertech.net (mailb2.tigertech.net [208.80.4.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9A58012E515; Wed, 13 Apr 2016 13:47:32 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mailb2.tigertech.net (Postfix) with ESMTP id 573C21C0346; Wed, 13 Apr 2016 13:47:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelhalpern.com; s=1.tigertech; t=1460580452; bh=yFhSTxCQFf+1llxpYORygXKDfbNMOg1v/KrknjtwFfk=; h=To:Cc:From:Subject:Date:From; b=ftHb1dilZNEnUk3bj2nHOKWtIdVh9PzeLwYzgiDZZgmLfioGqNosAWN+EtJArVirK n60POsPeX6crNdhOzW8r4umPawsdIHpDJ5hNVCbTbmh03Wl+QlQrn0ROdhgFYtOwVq 68TK8GCmv8/EbjyLTAK/zrDYP9KFcsiN+tTRQOkA= X-Virus-Scanned: Debian amavisd-new at b2.tigertech.net Received: from Joels-MacBook-Pro.local (209-255-163-147.ip.mcleodusa.net [209.255.163.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mailb2.tigertech.net (Postfix) with ESMTPSA id 9A580540435; Wed, 13 Apr 2016 13:47:31 -0700 (PDT) To: "rtg-ads@ietf.org" From: "Joel M. Halpern" Message-ID: <570EB05D.20802@joelhalpern.com> Date: Wed, 13 Apr 2016 16:47:25 -0400 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Archived-At: Cc: "rtg-dir@ietf.org" , trill@ietf.org, draft-ietf-trill-directory-assist-mechanisms.all@ietf.org Subject: [RTG-DIR] RtgDir review of draft-ietf-trill-directory-assist-mechanisms-07.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Apr 2016 20:47:37 -0000 Hello, I have been selected as the Routing Directorate reviewer for this draft. The Routing Directorate seeks to review all routing or routing-related drafts as they pass through IETF last call and IESG review, and sometimes on special request. The purpose of the review is to provide assistance to the Routing ADs. For more information about the Routing Directorate, please see ​ http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir Although these comments are primarily for the use of the Routing ADs, it would be helpful if you could consider them along with any other IETF Last Call comments that you receive, and strive to resolve them through discussion or by updating the draft. Document: draft-ietf-trill-directory-assist-mechanisms-07.txt Reviewer: Joel Halpern Review Date: 13-April-2016 IETF LC End Date: N/A Intended Status: Proposed Standard Summary: I have significant concerns about this document and recommend that the Routing ADs discuss these issues further with the authors. I do believe that the major issues are easily resolvable. I have tried to provide my best guess as to text how to resolve each of them. I would like to see the minor issues discussed and preferably addressed. Major Issues: In the state machine transitions in section 2.3.3 for push servers, it appears that if the event indicating that the server is being shut down occurs while the server is already Going Stand-By or Uncompleting, the transitions indicate that this "going down" event will be lost. A strict reading of this would seem to mean that the "go Down" event would need to recur after the timeout condition. This would seem to be best addressed by a new state "Going-Down" whose timeout behavior is to move to down state. In section 2.3.2, The descriptions for event 3 and 5 are identical. I believe from the state transitions that condition 3 is supposed to reflect the server NOT having complete data when the Activate condition is met. In section 3.2.1 there is provision for using a received frame as a Query. There are type indications as to what the type of the frame is. I believe that the intent is that the query always contains the full received Ethernet Frame, no matter what the type is. But it does not say that. So one could also conclude that for ARP, what I should send is the ARP message, and for ND, the ND message, etc. I believe the text needs to be clarified. If my guess is correct that the full Ethernet Frame is to be send in all cases, then explanatory text as to why the various type codes exist would seem helpful, since the received frame contains enough information to support decoding. Minor Issues: In section 2.3.3 describing the state transitions for push servers, there is an event (event 1) described as "the server was Down but is now Up." The state transition diagram describes this as being a valid event that does not change the servers state if the server is in any state other than "Down." In one sense, this is reasonable, saying that such an event is harmless. I would however expect some sort of logging or administrative notification, as something in the system is quite confused. Should section 2.4 include a note that indicates that reliance on information completeness does mean that there are windows when new entities join the space represented by particular TRILL data label during which packets for that destination may be dropped, due to clients not yet having received the updated information? I believe this window is small, and it is quite reasonable to also note that in such text. Text in section 3.2.2.1 on lifetimes and the information maintenance in section 3.3 imply that the clients and servers must maintain a connection. Presumably, this is required already by the RBRidge Channel protocol, and I understand that we should not repeat the entire protocol here. It would seem to make readers life MUCH simpler if the text noted that the RBRidge Channel protocol requires that there be a maintained connection between the client and the server, and that these mechanisms leverage the presence of that connection. In section 3.2.2.2 on Pull directory forwarding, I expect to see text about and to whom the Pull server will flood the received request. Instead, the text appears to say that it is teh response that will be flooded. More importantly, the descriptive text talks about sending the response, which would normally be a description of sending the response to the requestor, not sending it to someone else. In a related confusion, it seems very strange that a "flood" request will result in sending an underlying paket unicast to the destination. This may be just terminology, but it seems likely to confuse implementors. Maybe the flag should be called the Forward flag, with a note in the definition that it nromally causes the response to be sent to multiple parties, but in the case of a raw MAC frame, results in the packet being forwarded to the destination or flooded, as the server can manage? In the description in section 3.3 of Cache management, in the text on method one in which the servers keep minimal state, it would seem that a large health warning is needed, as this method will cause all clients to discard all positive data whenever any positive data at the server changes (even if no client is using the modified data.) This makes a flapping end station an attack on the cache of all clients! It strikes me that the working group could help get robust deployment by making method 3 (tracking what you told clients) a SHOULD. (I grant that it is not a MUST, as the other choices do work.) Editorial Issues / Nits : From nobody Wed Apr 13 15:53:51 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C00F312DD59; Wed, 13 Apr 2016 15:53:49 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: 1.738 X-Spam-Level: * X-Spam-Status: No, score=1.738 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, RDNS_NONE=0.793] autolearn=no autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id x9wTWzs27uZ0; Wed, 13 Apr 2016 15:53:48 -0700 (PDT) Received: from hickoryhill-consulting.com (unknown [50.245.122.97]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BA6DA12DA7A; Wed, 13 Apr 2016 15:53:47 -0700 (PDT) X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=74.43.47.77; From: "Susan Hares" To: "'Joel M. Halpern'" , References: <570EB05D.20802@joelhalpern.com> In-Reply-To: <570EB05D.20802@joelhalpern.com> Date: Wed, 13 Apr 2016 18:53:42 -0400 Message-ID: <02c401d195d7$550d7e70$ff287b50$@ndzh.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQLt0ar96cOf013H3k5feyl+BDKWp51QCxpQ Content-Language: en-us X-Authenticated-User: skh@ndzh.com Archived-At: Cc: rtg-dir@ietf.org, trill@ietf.org, draft-ietf-trill-directory-assist-mechanisms.all@ietf.org Subject: Re: [RTG-DIR] RtgDir review of draft-ietf-trill-directory-assist-mechanisms-07.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Apr 2016 22:53:50 -0000 Joel:=20 Thank you for the review of this document. As co-chair, I will work = with the authors to try to address this issue.=20 Sue=20 -----Original Message----- From: Joel M. Halpern [mailto:jmh@joelhalpern.com]=20 Sent: Wednesday, April 13, 2016 4:47 PM To: rtg-ads@ietf.org Cc: rtg-dir@ietf.org; = draft-ietf-trill-directory-assist-mechanisms.all@ietf.org; = trill@ietf.org Subject: RtgDir review of = draft-ietf-trill-directory-assist-mechanisms-07.txt Hello, I have been selected as the Routing Directorate reviewer for this draft. = The Routing Directorate seeks to review all routing or routing-related = drafts as they pass through IETF last call and IESG review, and = sometimes on special request. The purpose of the review is to provide = assistance to the Routing ADs. For more information about the Routing = Directorate, please see =E2=80=8B = http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir Although these comments are primarily for the use of the Routing ADs, it = would be helpful if you could consider them along with any other IETF = Last Call comments that you receive, and strive to resolve them through = discussion or by updating the draft. Document: draft-ietf-trill-directory-assist-mechanisms-07.txt Reviewer: Joel Halpern Review Date: 13-April-2016 IETF LC End Date: N/A Intended Status: Proposed Standard Summary: I have significant concerns about this document and recommend = that the Routing ADs discuss these issues further with the authors. I do believe that the major issues are easily resolvable. I have = tried to provide my best guess as to text how to resolve each of them. I would like to see the minor issues discussed and preferably = addressed. Major Issues: In the state machine transitions in section 2.3.3 for push servers, = it appears that if the event indicating that the server is being shut = down occurs while the server is already Going Stand-By or Uncompleting, = the transitions indicate that this "going down" event will be lost. A = strict reading of this would seem to mean that the "go Down" event would = need to recur after the timeout condition. This would seem to be best = addressed by a new state "Going-Down" whose timeout behavior is to move = to down state. In section 2.3.2, The descriptions for event 3 and 5 are identical. I = believe from the state transitions that condition 3 is supposed to = reflect the server NOT having complete data when the Activate condition = is met. In section 3.2.1 there is provision for using a received frame as a = Query. There are type indications as to what the type of the frame is.=20 I believe that the intent is that the query always contains the full = received Ethernet Frame, no matter what the type is. But it does not = say that. So one could also conclude that for ARP, what I should send = is the ARP message, and for ND, the ND message, etc. I believe the text = needs to be clarified. If my guess is correct that the full Ethernet = Frame is to be send in all cases, then explanatory text as to why the = various type codes exist would seem helpful, since the received frame = contains enough information to support decoding. Minor Issues: In section 2.3.3 describing the state transitions for push servers, = there is an event (event 1) described as "the server was Down but is now = Up." The state transition diagram describes this as being a valid event = that does not change the servers state if the server is in any state = other than "Down." In one sense, this is reasonable, saying that such an = event is harmless. I would however expect some sort of logging or = administrative notification, as something in the system is quite = confused. Should section 2.4 include a note that indicates that reliance on = information completeness does mean that there are windows when new = entities join the space represented by particular TRILL data label = during which packets for that destination may be dropped, due to clients = not yet having received the updated information? I believe this window = is small, and it is quite reasonable to also note that in such text. Text in section 3.2.2.1 on lifetimes and the information = maintenance in section 3.3 imply that the clients and servers must = maintain a connection. Presumably, this is required already by the = RBRidge Channel protocol, and I understand that we should not repeat the = entire protocol here. It would seem to make readers life MUCH simpler = if the text noted that the RBRidge Channel protocol requires that there = be a maintained connection between the client and the server, and that = these mechanisms leverage the presence of that connection. In section 3.2.2.2 on Pull directory forwarding, I expect to see = text about and to whom the Pull server will flood the received request.=20 Instead, the text appears to say that it is teh response that will be = flooded. More importantly, the descriptive text talks about sending the = response, which would normally be a description of sending the response = to the requestor, not sending it to someone else. In a related confusion, it seems very strange that a "flood"=20 request will result in sending an underlying paket unicast to the = destination. This may be just terminology, but it seems likely to = confuse implementors. Maybe the flag should be called the Forward flag, = with a note in the definition that it nromally causes the response to be = sent to multiple parties, but in the case of a raw MAC frame, results in = the packet being forwarded to the destination or flooded, as the server = can manage? In the description in section 3.3 of Cache management, in the text = on method one in which the servers keep minimal state, it would seem = that a large health warning is needed, as this method will cause all = clients to discard all positive data whenever any positive data at the = server changes (even if no client is using the modified data.) This = makes a flapping end station an attack on the cache of all clients! It strikes me that the working group could help get robust = deployment by making method 3 (tracking what you told clients) a SHOULD. = (I grant that it is not a MUST, as the other choices do work.) Editorial Issues / Nits : From nobody Wed Apr 13 18:35:23 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0370E12DE7C; Wed, 13 Apr 2016 18:35:22 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -102.699 X-Spam-Level: X-Spam-Status: No, score=-102.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id psgCFb6WODIr; Wed, 13 Apr 2016 18:35:19 -0700 (PDT) Received: from mail-oi0-x22e.google.com (mail-oi0-x22e.google.com [IPv6:2607:f8b0:4003:c06::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0F96412DA3C; Wed, 13 Apr 2016 18:35:19 -0700 (PDT) Received: by mail-oi0-x22e.google.com with SMTP id s79so80732416oie.1; Wed, 13 Apr 2016 18:35:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=7N+KkVzkY9nxDKdBLICYpai7fEzodohK1LSFphsiEA4=; b=M+pIh5nuDDfR5fLhSPnrFJSJSn/UkUeSKKmVdCgJl1AsRE8dtN5nfV/lRuaw3pWv1r SuIvKZ/5eGC37LSxpZVmvS5FTivCvpXzBSXXXYmpdMblcM91VfdR/FdQw1DeNZdbcu/6 cjpvsBIW9BrltfGupgArtGnR7/+3mWnzaeTswZcJYoQXy+UsyYaFpyyJkQEoOpnq4Nq3 jb+pEYCG7rf82JWxJWCV7Z5B6NgQa73oZfEQQ8PnolpAWAoN8FKZ7/eHBrdXpC0BdX59 9cPlcYsy7xkcECMbKtvNAuiBfClBRH415tcMOerC4h8pOHRoe7248On4hhleSbx7G3JN FdQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=7N+KkVzkY9nxDKdBLICYpai7fEzodohK1LSFphsiEA4=; b=K/XYngApJ7iAbyIusybjbGgWnKoRJQH+fWhc6HN44JHQkF+BQqFA8dau/GE7mYRzlm Zjsmwtq3IdD1ZMOhlzW93MKO1nnrHf1TfjS9d+v5zNZBvvgq3oMIOTZZ3QhO8wpP7F10 PeCQhvI8rWKCwP4e6PnRnGucBQwSEWj4tN+jBcG1gOUYsrdBxS7NgoG0l99WBO7uZIYC 7ltqu8ueN8YVsoOTVsXijQutvFjwEKdZQMjtEA1ecIble5fzfswFXQEEqt7f/H6vxK8w 2M0ZgQkZbvpJDws7Zt8MVS0fZr+GFK4bGH8KtczQPiue6+h2Pz9LS9RzOj+geRhUAJJr /5DA== X-Gm-Message-State: AOPr4FWs3I3vKuamYLboN1xW1x0Ia0Te0UzkOl0m6YO/bzJYIS7/ORmsjxzJoqupmz6qZDarxnnnW2a1iLg4DQ== MIME-Version: 1.0 X-Received: by 10.202.172.201 with SMTP id v192mr5638435oie.29.1460597718419; Wed, 13 Apr 2016 18:35:18 -0700 (PDT) Received: by 10.60.115.168 with HTTP; Wed, 13 Apr 2016 18:35:18 -0700 (PDT) In-Reply-To: <02c401d195d7$550d7e70$ff287b50$@ndzh.com> References: <570EB05D.20802@joelhalpern.com> <02c401d195d7$550d7e70$ff287b50$@ndzh.com> Date: Wed, 13 Apr 2016 21:35:18 -0400 Message-ID: From: Alia Atlas To: Susan Hares Content-Type: multipart/alternative; boundary=001a113ced742a926b053067e8a9 Archived-At: Cc: "" , "rtg-dir@ietf.org" , "Joel M. Halpern" , trill@ietf.org, draft-ietf-trill-directory-assist-mechanisms.all@ietf.org Subject: Re: [RTG-DIR] RtgDir review of draft-ietf-trill-directory-assist-mechanisms-07.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Apr 2016 01:35:22 -0000 --001a113ced742a926b053067e8a9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Joel, Thank you very much for your review! Alia On Wed, Apr 13, 2016 at 6:53 PM, Susan Hares wrote: > Joel: > > Thank you for the review of this document. As co-chair, I will work with > the authors to try to address this issue. > > Sue > > -----Original Message----- > From: Joel M. Halpern [mailto:jmh@joelhalpern.com] > Sent: Wednesday, April 13, 2016 4:47 PM > To: rtg-ads@ietf.org > Cc: rtg-dir@ietf.org; > draft-ietf-trill-directory-assist-mechanisms.all@ietf.org; trill@ietf.org > Subject: RtgDir review of > draft-ietf-trill-directory-assist-mechanisms-07.txt > > Hello, > > I have been selected as the Routing Directorate reviewer for this draft. > The Routing Directorate seeks to review all routing or routing-related > drafts as they pass through IETF last call and IESG review, and sometimes > on special request. The purpose of the review is to provide assistance to > the Routing ADs. For more information about the Routing Directorate, plea= se > see =E2=80=8B http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir > > Although these comments are primarily for the use of the Routing ADs, it > would be helpful if you could consider them along with any other IETF Las= t > Call comments that you receive, and strive to resolve them through > discussion or by updating the draft. > > Document: draft-ietf-trill-directory-assist-mechanisms-07.txt > Reviewer: Joel Halpern > Review Date: 13-April-2016 > IETF LC End Date: N/A > Intended Status: Proposed Standard > > Summary: I have significant concerns about this document and recommend > that the Routing ADs discuss these issues further with the authors. > I do believe that the major issues are easily resolvable. I have > tried to provide my best guess as to text how to resolve each of them. > I would like to see the minor issues discussed and preferably > addressed. > > Major Issues: > In the state machine transitions in section 2.3.3 for push servers, > it appears that if the event indicating that the server is being shut dow= n > occurs while the server is already Going Stand-By or Uncompleting, the > transitions indicate that this "going down" event will be lost. A strict > reading of this would seem to mean that the "go Down" event would need to > recur after the timeout condition. This would seem to be best addressed = by > a new state "Going-Down" whose timeout behavior is to move to down state. > > In section 2.3.2, The descriptions for event 3 and 5 are identical. I > believe from the state transitions that condition 3 is supposed to reflec= t > the server NOT having complete data when the Activate condition is met. > > In section 3.2.1 there is provision for using a received frame as a > Query. There are type indications as to what the type of the frame is. > I believe that the intent is that the query always contains the full > received Ethernet Frame, no matter what the type is. But it does not say > that. So one could also conclude that for ARP, what I should send is the > ARP message, and for ND, the ND message, etc. I believe the text needs t= o > be clarified. If my guess is correct that the full Ethernet Frame is to = be > send in all cases, then explanatory text as to why the various type codes > exist would seem helpful, since the received frame contains enough > information to support decoding. > > > > Minor Issues: > In section 2.3.3 describing the state transitions for push servers, > there is an event (event 1) described as "the server was Down but is now > Up." The state transition diagram describes this as being a valid event > that does not change the servers state if the server is in any state othe= r > than "Down." In one sense, this is reasonable, saying that such an event = is > harmless. I would however expect some sort of logging or administrative > notification, as something in the system is quite confused. > > Should section 2.4 include a note that indicates that reliance on > information completeness does mean that there are windows when new entiti= es > join the space represented by particular TRILL data label during which > packets for that destination may be dropped, due to clients not yet havin= g > received the updated information? I believe this window is small, and it > is quite reasonable to also note that in such text. > > Text in section 3.2.2.1 on lifetimes and the information maintenance > in section 3.3 imply that the clients and servers must maintain a > connection. Presumably, this is required already by the RBRidge Channel > protocol, and I understand that we should not repeat the entire protocol > here. It would seem to make readers life MUCH simpler if the text noted > that the RBRidge Channel protocol requires that there be a maintained > connection between the client and the server, and that these mechanisms > leverage the presence of that connection. > > In section 3.2.2.2 on Pull directory forwarding, I expect to see tex= t > about and to whom the Pull server will flood the received request. > Instead, the text appears to say that it is teh response that will be > flooded. More importantly, the descriptive text talks about sending the > response, which would normally be a description of sending the response t= o > the requestor, not sending it to someone else. > In a related confusion, it seems very strange that a "flood" > request will result in sending an underlying paket unicast to the > destination. This may be just terminology, but it seems likely to confus= e > implementors. Maybe the flag should be called the Forward flag, with a > note in the definition that it nromally causes the response to be sent to > multiple parties, but in the case of a raw MAC frame, results in the pack= et > being forwarded to the destination or flooded, as the server can manage? > > In the description in section 3.3 of Cache management, in the text o= n > method one in which the servers keep minimal state, it would seem that a > large health warning is needed, as this method will cause all clients to > discard all positive data whenever any positive data at the server change= s > (even if no client is using the modified data.) This makes a flapping en= d > station an attack on the cache of all clients! > It strikes me that the working group could help get robust deploymen= t > by making method 3 (tracking what you told clients) a SHOULD. > (I grant that it is not a MUST, as the other choices do work.) > > Editorial Issues / Nits : > > > > --001a113ced742a926b053067e8a9 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Joel,

Thank you very much for your revi= ew! =C2=A0=C2=A0

Alia

On Wed, Apr 13, 2016 at 6:53 PM, S= usan Hares <shares@ndzh.com> wrote:
Joel:

Thank you for the review of this document.=C2=A0 As co-chair, I will work w= ith the authors to try to address this issue.

Sue

-----Original Message-----
From: Joel M. Halpern [mailto:jmh@jo= elhalpern.com]
Sent: Wednesday, April 13, 2016 4:47 PM
To: rtg-ads@ietf.org
Cc: rtg-dir@ietf.org; draft-ietf-= trill-directory-assist-mechanisms.all@ietf.org; trill@ietf.org
Subject: RtgDir review of draft-ietf-trill-directory-assist-mechanisms-07.t= xt

Hello,

I have been selected as the Routing Directorate reviewer for this draft. The Routing Directorate seeks to review all routing or routing-related draf= ts as they pass through IETF last call and IESG review, and sometimes on sp= ecial request. The purpose of the review is to provide assistance to the Ro= uting ADs. For more information about the Routing Directorate, please see = =E2=80=8B http://trac.tools.ietf.org/area/rtg/tr= ac/wiki/RtgDir

Although these comments are primarily for the use of the Routing ADs, it wo= uld be helpful if you could consider them along with any other IETF Last Ca= ll comments that you receive, and strive to resolve them through discussion= or by updating the draft.

Document: draft-ietf-trill-directory-assist-mechanisms-07.txt
Reviewer: Joel Halpern
Review Date: 13-April-2016
IETF LC End Date: N/A
Intended Status: Proposed Standard

Summary: I have significant concerns about this document and recommend that= the Routing ADs discuss these issues further with the authors.
=C2=A0 =C2=A0 =C2=A0I do believe that the major issues are easily resolvabl= e.=C2=A0 I have tried to provide my best guess as to text how to resolve ea= ch of them.
=C2=A0 =C2=A0 =C2=A0I would like to see the minor issues discussed and pref= erably addressed.

Major Issues:
=C2=A0 =C2=A0 =C2=A0In the state machine transitions in section 2.3.3 for p= ush servers, it appears that if the event indicating that the server is bei= ng shut down occurs while the server is already Going Stand-By or Uncomplet= ing, the transitions indicate that this "going down" event will b= e lost.=C2=A0 A strict reading of this would seem to mean that the "go= Down" event would need to recur after the timeout condition.=C2=A0 Th= is would seem to be best addressed by a new state "Going-Down" wh= ose timeout behavior is to move to down state.

In section 2.3.2, The descriptions for event 3 and 5 are identical.=C2=A0 I= believe from the state transitions that condition 3 is supposed to reflect= the server NOT having complete data when the Activate condition is met.
In section 3.2.1 there is provision for using a received frame as a Query.= =C2=A0 There are type indications as to what the type of the frame is.
=C2=A0 I believe that the intent is that the query always contains the full= received Ethernet Frame, no matter what the type is.=C2=A0 But it does not= say that.=C2=A0 So one could also conclude that for ARP, what I should sen= d is the ARP message, and for ND, the ND message, etc.=C2=A0 I believe the = text needs to be clarified.=C2=A0 If my guess is correct that the full Ethe= rnet Frame is to be send in all cases, then explanatory text as to why the = various type codes exist would seem helpful, since the received frame conta= ins enough information to support decoding.



Minor Issues:
=C2=A0 =C2=A0 =C2=A0In section 2.3.3 describing the state transitions for p= ush servers, there is an event (event 1) described as "the server was = Down but is now Up."=C2=A0 The state transition diagram describes this= as being a valid event that does not change the servers state if the serve= r is in any state other than "Down." In one sense, this is reason= able, saying that such an event is harmless.=C2=A0 I would however expect s= ome sort of logging or administrative notification, as something in the sys= tem is quite confused.

=C2=A0 =C2=A0 =C2=A0Should section 2.4 include a note that indicates that r= eliance on information completeness does mean that there are windows when n= ew entities join the space represented by particular TRILL data label durin= g which packets for that destination may be dropped, due to clients not yet= having received the updated information?=C2=A0 I believe this window is sm= all, and it is quite reasonable to also note that in such text.

=C2=A0 =C2=A0 =C2=A0Text in section 3.2.2.1 on lifetimes and the informatio= n maintenance in section 3.3 imply that the clients and servers must mainta= in a connection.=C2=A0 Presumably, this is required already by the RBRidge = Channel protocol, and I understand that we should not repeat the entire pro= tocol here.=C2=A0 It would seem to make readers life MUCH simpler if the te= xt noted that the RBRidge Channel protocol requires that there be a maintai= ned connection between the client and the server, and that these mechanisms= leverage the presence of that connection.

=C2=A0 =C2=A0 =C2=A0In section 3.2.2.2 on Pull directory forwarding, I expe= ct to see text about and to whom the Pull server will flood the received re= quest.
=C2=A0 Instead, the text appears to say that it is teh response that will b= e flooded.=C2=A0 More importantly, the descriptive text talks about sending= the response, which would normally be a description of sending the respons= e to the requestor, not sending it to someone else.
=C2=A0 =C2=A0 =C2=A0In a related confusion, it seems very strange that a &q= uot;flood"
request will result in sending an underlying paket unicast to the destinati= on.=C2=A0 This may be just terminology, but it seems likely to confuse impl= ementors.=C2=A0 Maybe the flag should be called the Forward flag, with a no= te in the definition that it nromally causes the response to be sent to mul= tiple parties, but in the case of a raw MAC frame, results in the packet be= ing forwarded to the destination or flooded, as the server can manage?

=C2=A0 =C2=A0 =C2=A0In the description in section 3.3 of Cache management, = in the text on method one in which the servers keep minimal state, it would= seem that a large health warning is needed, as this method will cause all = clients to discard all positive data whenever any positive data at the serv= er changes (even if no client is using the modified data.)=C2=A0 This makes= a flapping end station an attack on the cache of all clients!
=C2=A0 =C2=A0 =C2=A0It strikes me that the working group could help get rob= ust deployment by making method 3 (tracking what you told clients) a SHOULD= .
=C2=A0 (I grant that it is not a MUST, as the other choices do work.)

Editorial Issues / Nits :




--001a113ced742a926b053067e8a9-- From nobody Fri Apr 15 08:23:41 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2BB1312DDDB; Fri, 15 Apr 2016 08:23:37 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.449 X-Spam-Level: X-Spam-Status: No, score=-2.449 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UBMg7gib1Ven; Fri, 15 Apr 2016 08:23:32 -0700 (PDT) Received: from mail-oi0-x230.google.com (mail-oi0-x230.google.com [IPv6:2607:f8b0:4003:c06::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5A5BA12DF96; Fri, 15 Apr 2016 08:23:32 -0700 (PDT) Received: by mail-oi0-x230.google.com with SMTP id s79so127184827oie.1; Fri, 15 Apr 2016 08:23:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=XW+CZWyx/fFE6Xm+yOqrOGpr5mv12//meK/r3Z6uuYM=; b=cBeO8IJoDAb/HGhjiiPqrgc9FxfRA4xfNyhbxF3vocIpHSc5q5jMfabTeWRQsuB/XB HnXDuScFbIwurMOagdF8FvoNFqMnx9gYuydRP24oYKwxgFB+/t7PfUJ85oCF4NEq9Yjx 9rR8ftnZ0aWwGHm1QBvPIa7mCQui2t4fpPhCcPsMFVMycUgLtUAmW1TZkOL/SbjM01J1 lJyQexm0uhEFaRUoZ0hfHaFF789QZMl3blxwquzXCuYMz5K9l/6vtPb7NhOTra65Q0nJ VSAqaafAlcOuiERn12ihTU1i39bqauhFZhuAkEs3rPJy8y3A2nNcHrSGplIPa/tlJfP4 GRag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=XW+CZWyx/fFE6Xm+yOqrOGpr5mv12//meK/r3Z6uuYM=; b=S5wY9tZRu5ZAnbVHyq0bDbMNDX5Jl5VsAZg5h8/6qgYR8GHwnxvurDK8MjBZbKTptN kOQoWUqASj3urlAvw4GXpQQuqgm9Kwev3O4TbIa3PDpHOf2cD/7RG0FAmWagBvP6dzkY w6ioNcx4H45YB/kPc92JoV3nabejU0VXIeOYkPx3GTElFs4/18CacvLdvqU2nfRm5j8c M5xIYY/+LwVNpVBQze39AzzdF1YaFsakthZ1q9eucvH7c0rXMSI33WBOaV7zI/fMZWuR cGv0oNuOdhJhSup4sggQR5VXvwBV3FdiD2fcd/iIFaRMF1RuFlJpRvz/2FxzAEjKM0t5 e2Zg== X-Gm-Message-State: AOPr4FXVQpffFfcUsiJ3YeUO1t0BDsBZliQRsXvqHy7kK41ukKDWr1BDpbQezvOLF3z6zR6gwlBf5eMBq9zQMg== X-Received: by 10.157.2.69 with SMTP id 63mr11237504otb.170.1460733811655; Fri, 15 Apr 2016 08:23:31 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.22.250 with HTTP; Fri, 15 Apr 2016 08:23:17 -0700 (PDT) In-Reply-To: <570EB05D.20802@joelhalpern.com> References: <570EB05D.20802@joelhalpern.com> From: Donald Eastlake Date: Fri, 15 Apr 2016 11:23:17 -0400 Message-ID: To: "Joel M. Halpern" Content-Type: multipart/alternative; boundary=94eb2c114d24f48ca00530879739 Archived-At: Cc: "rtg-ads@ietf.org" , "rtg-dir@ietf.org" , "trill@ietf.org" , draft-ietf-trill-directory-assist-mechanisms.all@ietf.org Subject: Re: [RTG-DIR] RtgDir review of draft-ietf-trill-directory-assist-mechanisms-07.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Apr 2016 15:23:38 -0000 --94eb2c114d24f48ca00530879739 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Joel Thanks for your thorough review and comments. See below On Wed, Apr 13, 2016 at 4:47 PM, Joel M. Halpern wrote: > Hello, > > I have been selected as the Routing Directorate reviewer for this > draft. The Routing Directorate seeks to review all routing or > routing-related drafts as they pass through IETF last call and IESG > review, and sometimes on special request. The purpose of the review > is to provide assistance to the Routing ADs. For more information > about the Routing Directorate, please see =E2=80=8B > http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir > > Although these comments are primarily for the use > of the Routing ADs, it would be helpful if you could consider them > along with any other IETF Last Call comments that you receive, and > strive to resolve them through discussion or by updating the draft. > > Document: draft-ietf-trill-directory-assist-mechanisms-07.txt > Reviewer: Joel Halpern > Review Date: 13-April-2016 > IETF LC End Date: N/A > Intended Status: Proposed Standard > > Summary: I have significant concerns about this document and > recommend that the Routing ADs discuss these issues further with the > authors. > > I do believe that the major issues are easily resolvable. I > have tried to provide my best guess as to text how to resolve > each of them. Thanks. > I would like to see the minor issues discussed and preferably > addressed. > > Major Issues: > In the state machine transitions in section 2.3.3 > for push servers, it appears that if the event indicating that the > server is being shut down occurs while the server is already Going > Stand-By or Uncompleting, the transitions indicate that this "going > down" event will be lost. A strict reading of this would seem to > mean that the "go Down" event would need to recur after the timeout > condition. This would seem to be best addressed by a new state > "Going-Down" whose timeout behavior is to move to down state. I understand your point but "going down" and the like are called "events or conditions" in this draft, not just events. The problem with adding a single "Going-Down" state is that transition to that state would lose the information as to whether or not the Push Directory had been advertising that it was pushing complete information or not. The reason to remember this is that you would want to behave a differently if the "going down" condition was revoked before it completed. This information could be preserved in a Boolean pseudo variable but the current style of state machine in this draft avoids such pseudo variables and encodes all of the relevant push directory's state into the state machine state. Thus, I can see three possible responses to your comment: 1) Change wording to emphasize that these "events or conditions" can be conditions that cause a state transition some substantial time after they become true. 2) Add two new states: (1) going down - was complete; (2) going down - was incomplete. 3) Change the style of state machine to admit pseudo variables which can be set and testing as part of the state machinery. Option 1 is just some minor wording changes but adopting either options 2 or 3 involves more extensive changes so I would prefer to avoid them. > In section 2.3.2, the descriptions for event 3 and 5 are identical. > I believe from the state transitions that condition 3 is supposed to > reflect the server NOT having complete data when the Activate > condition is met. You are correct. Thanks for spotting this somewhat glaring error in the event descriptions. > In section 3.2.1 there is provision for using a received frame as a > Query. There are type indications as to what the type of the frame > is. I believe that the intent is that the query always contains the > full received Ethernet Frame, no matter what the type is. But it > does not say that. So one could also conclude that for ARP, what I > should send is the ARP message, and for ND, the ND message, etc. I > believe the text needs to be clarified. If my guess is correct that > the full Ethernet Frame is to be send in all cases, then explanatory > text as to why the various type codes exist would seem helpful, > since the received frame contains enough information to support > decoding. Good point that this needs to say that the full Ethernet Frame (less the FCS) is to be included. QTYPEs 2, 3, and 4 for ARP, ND, and RARP could be combined. QTYPE 5 for an unknown unicast destination MAC address is really a different service. > Minor Issues: > In section 2.3.3 describing the state transitions for push > servers, there is an event (event 1) described as "the server was > Down but is now Up." The state transition diagram describes this as > being a valid event that does not change the servers state if the > server is in any state other than "Down." In one sense, this is > reasonable, saying that such an event is harmless. I would however > expect some sort of logging or administrative notification, as > something in the system is quite confused. Again, I see your point but it seems to me to be a matter of state machine style. Note that the "event" is described as a condition, so from that point of view, it is true anytime the state is other than Down. On the other hand, if you view it as strictly an event, you are left with the question of what to put at the intersection of a state and event in the table when it is impossible for that event to occur in that state. Some people note this with an "N/A" (not applicable) entry. In fact, previous TRILL state diagrams such as in RFC 7177 use "N/A" so it would probably be simplest to change to that for consistency. > Should section 2.4 include a note that indicates that reliance > on information completeness does mean that there are windows when > new entities join the space represented by particular TRILL data > label during which packets for that destination may be dropped, due > to clients not yet having received the updated information? I > believe this window is small, and it is quite reasonable to also > note that in such text. Yes, something like that would be a good addition to Section 2.4. It depends a bit on how the Push Directory is being managed. It may be pushing data provided by orchestration. In any case, there are always finite delays and for a particular ingress TRILL switch and an end station being connected to some other TRILL switch, the ingress could learn reachability for the end station either a bit before or after it is actually reachable so traffic intended for the end station could, for example, be dropped during a brief window of time when it should be forwarded. > Text in section 3.2.2.1 on lifetimes and the information > maintenance in section 3.3 imply that the clients and servers must > maintain a connection. Presumably, this is required already by the > RBridge Channel protocol, and I understand that we should not repeat > the entire protocol here. It would seem to make readers life MUCH > simpler if the text noted that the RBridge Channel protocol requires > that there be a maintained connection between the client and the > server, and that these mechanisms leverage the presence of that > connection. The basic RBridge Channel protocol [RFC7178] is a datagram protocol rather than a connection protocol. So there is no guaranteed continuity of connection between RBridges that have previously exchanged RBridge Channel messages. But connection would only be lost if the network partitions since RBridge Channel messages look like data packets to any transit RBridges and will get forwarded as long as there is any route. Network partition is immediately visible in the link state database to the RBridges at both ends of an RBridge Channel exchange. Section 3.7 provides that if a Pull Directory is no longer reachable (i.e., RBridge Channel protocol packets would no longer get through), then all pull responses from that Pull Directory MUST be discarded since cache consistency update messages can't get through. Perhaps a reference to Section 3.7 should be added to Section 3.3. > In section 3.2.2.2 on Pull directory forwarding, I expect to see > text about and to whom the Pull server will flood the received > request. Instead, the text appears to say that it is the response > that will be flooded. More importantly, the descriptive text talks > about sending the response, which would normally be a description of > sending the response to the requestor, not sending it to someone > else. If an ingress RBridge receives one of these broadcast/multicast requests (ARP, etc.) and wants it flooded, they just do the normal encapsulation as a TRILL data packet and it will be flooded (within the VLAN or FGL). It is only if the ingress RBridge wants the directory to answer the request that it would package it into an RBridge Channel message and unicast it to a directory. As to whom a response synthesized by the directory should be sent, it seems like the safest thing is to send it as the response would normally be sent by an end station responder. So, if an ARP response would be broadcast (within a VLAN or the like), then I don't see what is wrong about the directory flooding it. > In a related confusion, it seems very strange that a "flood" > request will result in sending an underlying packet unicast to the > destination. This may be just terminology, but it seems likely to > confuse implementers. Maybe the flag should be called the Forward > flag, with a note in the definition that it normally causes the > response to be sent to multiple parties, but in the case of a raw > MAC frame, results in the packet being forwarded to the destination > or flooded, as the server can manage? I don't have any particular problem with changing the FL flood flag to an FR forward flag or whatever, but I'm not sure what difference it would make to behavior. If you want the failure of the directory to be able to answer the query to be that the query (ARP request or whatever) to be sent pretty much as if it had never been packaged into an RBridge Channel message and sent to the directory, then you set this flag. When the flag is set and the directory can't answer the query, it sends it as a TRILL Data packet. If the original frame was broadcast or multicast, as is usually the case, then the directory server "floods" it (with the frames VLAN or FGL). The same is true if the request was of the "unknown destination unicast MAC" type -- if the directory does not know the edge RBridge from which that MAC is reachable and the FL flag is set, it floods it even though in this case the Inner.MacDA is a unicast address. In the unknown destination MAC case where the directory does know the reachability of that MAC, then the frame is decapsulated from the RBridge Channel and then encapsulated as a TRILL Data packet and sent to the edge RBridge from which that MAC is reachable. In this case, the FL flag has no effect since it only comes into play if the directory does not have the required information. I=E2=80=99m fine with adding some clarifying text on all this. > In the description in section 3.3 of Cache management, in the > text on method one in which the servers keep minimal state, it would > seem that a large health warning is needed, as this method will > cause all clients to discard all positive data whenever any positive > data at the server changes (even if no client is using the modified > data.) This makes a flapping end station an attack on the cache of > all clients! That would be true if the directory data comes from data plane learning but not so much if it is from an orchestration system in a Data Center. Adding some additional efficiency warning(s) is reasonable. > It strikes me that the working group could help get robust > deployment by making method 3 (tracking what you told clients) a > SHOULD. (I grant that it is not a MUST, as the other choices do > work.) That sounds reasonable. We can check with the WG. Thanks, Donald =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= =3D=3D=3D=3D Donald E. Eastlake 3rd +1-508-333-2270 (cell) 155 Beaver Street, Milford, MA 01757 USA d3e3e3@gmail.com --94eb2c114d24f48ca00530879739 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Hi Joel

=C2=A0

Thanks for your thorough review and comments. See be= low

=C2=A0

On Wed, Apr 13, 2016 at 4:47 PM, Joel M. Halpern <jmh@joelhalpern.com>

wrote:

> Hello,

>=C2=A0

> I have been selected as the Routing Directorate reviewer for this

> draft. The Routing Directorate seeks to review = all routing or

> routing-related drafts as they pass through IET= F last call and IESG

> review, and sometimes on special request. The p= urpose of the review

> is to provide assistance to the Routing ADs. Fo= r more information

> about the Routing Directorate, please see =E2= =80=8B

> http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir<= /p>

>

> Although these comments are primarily for the u= se

> of the Routing ADs, it would be helpful if you = could consider them

> along with any other IETF Last Call comments th= at you receive, and

> strive to resolve them through discussion or by updating the draft.

>

> Document: draft-ietf-trill-directory-assist-mechanisms-07.txt

> Reviewer: Joel Halpern

> Review Date: 13-April-2016

> IETF LC End Date: N/A

> Intended Status: Proposed Standard

>=C2=A0

> Summary: I have significant concerns about this document and

> recommend that the Routing ADs discuss these is= sues further with the

> authors.

>=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0 I do believe that the major issues are easily resolvable.=C2=A0 I

>=C2=A0=C2=A0=C2=A0=C2=A0 have tried to provide my best guess as to text how to resolve

>=C2=A0=C2=A0=C2=A0=C2=A0 each of them.

=C2=A0

Thanks.

=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0 I would like to see the minor issues discussed and preferably

>=C2=A0=C2=A0=C2=A0=C2=A0 addressed.=C2=A0

>

> Major Issues:

>=C2=A0=C2=A0=C2=A0=C2=A0 In the state machine transitions in section 2.3.3

> for push servers, it appears that if the event indicating that the

> server is being shut down occurs while the serv= er is already Going

> Stand-By or Uncompleting, the transitions indic= ate that this "going

> down" event will be lost.=C2=A0 A strict r= eading of this would seem to

> mean that the "go Down" event would n= eed to recur after the timeout

> condition.=C2=A0 This would seem to be best addressed by a new state

> "Going-Down" whose timeout behavior i= s to move to down state.

=C2=A0

I understand your point but "going down" a= nd the like are called

"events or conditions" in this draft, not = just events.

=C2=A0

The problem with adding a single "Going-Down&qu= ot; state is that transition

to that state would lose the information as to wheth= er or not the Push

Directory had been advertising that it was pushing c= omplete

information or not. The reason to remember this is t= hat you would want

to behave a differently if the "going down"= ; condition was revoked

before it completed.=C2=A0 This information could be preserved in a Boolean

pseudo variable but the current style of state machi= ne in this draft

avoids such pseudo variables and encodes all of the = relevant push

directory's state into the state machine state. = Thus, I can see three

possible responses to your comment:

=C2=A0

1) Change wording to emphasize that these "even= ts or conditions" can

be conditions that cause a state transition some sub= stantial time

after they become true.

=C2=A0

2) Add two new states: (1) going down - was complete= ; (2) going down -

was incomplete.

=C2=A0

3) Change the style of state machine to admit pseudo variables which

can be set and testing as part of the state machiner= y.

=C2=A0

Option 1 is just some minor wording changes but adop= ting either

options 2 or 3 involves more extensive changes so I = would prefer to

avoid them.

=C2=A0

> In section 2.3.2, the descriptions for event 3 = and 5 are identical.

> I believe from the state transitions that condi= tion 3 is supposed to

> reflect the server NOT having complete data whe= n the Activate

> condition is met.

=C2=A0

You are correct. Thanks for spotting this somewhat g= laring error in

the event descriptions.

=C2=A0

> In section 3.2.1 there is provision for using a received frame as a

> Query.=C2=A0 There are type indications as to what the type of the frame

> is.=C2=A0 I believe that the intent is that the query always contains the

> full received Ethernet Frame, no matter what th= e type is.=C2=A0 But it

> does not say that.=C2=A0 So one could also conclude that for ARP, what I

> should send is the ARP message, and for ND, the= ND message, etc.=C2=A0 I

> believe the text needs to be clarified.=C2=A0 I= f my guess is correct that

> the full Ethernet Frame is to be send in all ca= ses, then explanatory

> text as to why the various type codes exist wou= ld seem helpful,

> since the received frame contains enough inform= ation to support

> decoding.

=C2=A0

Good point that this needs to say that the full Ethe= rnet Frame (less

the FCS) is to be included. QTYPEs 2, 3, and 4 for A= RP, ND, and RARP

could be combined. QTYPE 5 for an unknown unicast de= stination MAC

address is really a different service.

=C2=A0

> Minor Issues:

=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0 In section 2.3.3 describing the state transitions for push

> servers, there is an event (event 1) described = as "the server was

> Down but is now Up."=C2=A0 The state trans= ition diagram describes this as

> being a valid event that does not change the se= rvers state if the

> server is in any state other than "Down.&q= uot; In one sense, this is

> reasonable, saying that such an event is harmle= ss.=C2=A0 I would however

> expect some sort of logging or administrative notification, as

> something in the system is quite confused.

=C2=A0

Again, I see your point but it seems to me to be a m= atter of state

machine style. Note that the "event" is de= scribed as a condition, so

from that point of view, it is true anytime the stat= e is other than

Down. On the other hand, if you view it as strictly = an event, you are

left with the question of what to put at the interse= ction of a state

and event in the table when it is impossible for tha= t event to occur

in that state. Some people note this with an "N= /A" (not applicable)

entry. In fact, previous TRILL state diagrams such a= s in RFC 7177 use

"N/A" so it would probably be simplest to = change to that for

consistency.

=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0 Should section 2.4 include a note that indicates that reliance

> on information completeness does mean that ther= e are windows when

> new entities join the space represented by part= icular TRILL data

> label during which packets for that destination= may be dropped, due

> to clients not yet having received the updated information?=C2=A0 I

> believe this window is small, and it is quite reasonable to also

> note that in such text.

=C2=A0

Yes, something like that would be a good addition to= Section 2.4. It

depends a bit on how the Push Directory is being man= aged. It may be

pushing data provided by orchestration. In any case,= there are always

finite delays and for a particular ingress TRILL swi= tch and an end

station being connected to some other TRILL switch, = the ingress could

learn reachability for the end station either a bit = before or after it

is actually reachable so traffic intended for the en= d station could,

for example, be dropped during a brief window of tim= e when it should

be forwarded.

=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0 Text in section 3.2.2.1 on lifetimes and the information

> maintenance in section 3.3 imply that the clien= ts and servers must

> maintain a connection.=C2=A0 Presumably, this is required already by the

> RBridge Channel protocol, and I understand that= we should not repeat

> the entire protocol here.=C2=A0 It would seem t= o make readers life MUCH

> simpler if the text noted that the RBridge Chan= nel protocol requires

> that there be a maintained connection between t= he client and the

> server, and that these mechanisms leverage the = presence of that

> connection.

=C2=A0

The basic RBridge Channel protocol [RFC7178] is a da= tagram protocol

rather than a connection protocol. So there is no gu= aranteed

continuity of connection between RBridges that have previously

exchanged RBridge Channel messages. But connection w= ould only be lost

if the network partitions since RBridge Channel mess= ages look like

data packets to any transit RBridges and will get fo= rwarded as long as

there is any route.=C2=A0 Network partition is immediately visible in the

link state database to the RBridges at both ends of = an RBridge Channel

exchange.=C2=A0 Section 3.7 provides that if a Pull Directory is no longer

reachable (i.e., RBridge Channel protocol packets wo= uld no longer get

through), then all pull responses from that Pull Dir= ectory MUST be

discarded since cache consistency update messages ca= n't get through.

=C2=A0

Perhaps a reference to Section 3.7 should be added t= o Section 3.3.

=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0 In section 3.2.2.2 on Pull directory forwarding, I expect to see

> text about and to whom the Pull server will flo= od the received

> request.=C2=A0 Instead, the text appears to say that it is the response

> that will be flooded.=C2=A0 More importantly, the descriptive text talks

> about sending the response, which would normall= y be a description of

> sending the response to the requestor, not send= ing it to someone

> else.

=C2=A0

If an ingress RBridge receives one of these broadcast/multicast

requests (ARP, etc.) and wants it flooded, they just= do the normal

encapsulation as a TRILL data packet and it will be = flooded (within

the VLAN or FGL). It is only if the ingress RBridge = wants the directory

to answer the request that it would package it into = an RBridge Channel

message and unicast it to a directory.

=C2=A0

As to whom a response synthesized by the directory s= hould be sent, it

seems like the safest thing is to send it as the res= ponse would

normally be sent by an end station responder. So, if= an ARP response

would be broadcast (within a VLAN or the like), then= I don't see what

is wrong about the directory flooding it.

=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0 In a related confusion, it seems very strange that a "flood"

> request will result in sending an underlying pa= cket unicast to the

> destination.=C2=A0 This may be just terminology, but it seems likely to

> confuse implementers.=C2=A0 Maybe the flag should be called the Forward

> flag, with a note in the definition that it nor= mally causes the

> response to be sent to multiple parties, but in= the case of a raw

> MAC frame, results in the packet being forwarde= d to the destination

> or flooded, as the server can manage?

=C2=A0

I don't have any particular problem with changin= g the FL flood flag to

an FR forward flag or whatever, but I'm not sure= what difference it

would make to behavior. If you want the failure of t= he directory to be

able to answer the query to be that the query (ARP r= equest or

whatever) to be sent pretty much as if it had never = been packaged into

an RBridge Channel message and sent to the directory= , then you set

this flag. When the flag is set and the directory ca= n't answer the

query, it sends it as a TRILL Data packet. If the or= iginal frame was

broadcast or multicast, as is usually the case, then= the directory

server "floods" it (with the frames VLAN o= r FGL). The same is true if

the request was of the "unknown destination uni= cast MAC" type -- if

the directory does not know the edge RBridge from wh= ich that MAC is

reachable and the FL flag is set, it floods it even = though in this

case the Inner.MacDA is a unicast address.

=C2=A0

In the unknown destination MAC case where the direct= ory does know the

reachability of that MAC, then the frame is decapsul= ated from the

RBridge Channel and then encapsulated as a TRILL Dat= a packet and sent

to the edge RBridge from which that MAC is reachable= . In this case,

the FL flag has no effect since it only comes into p= lay if the

directory does not have the required information.

=C2=A0

I=E2=80=99m fine with adding some clarifying text on= all this.

=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0 In the description in section 3.3 of Cache management, in the

> text on method one in which the servers keep mi= nimal state, it would

> seem that a large health warning is needed, as = this method will

> cause all clients to discard all positive data = whenever any positive

> data at the server changes (even if no client i= s using the modified

> data.)=C2=A0 This makes a flapping end station an attack on the cache of

> all clients!

=C2=A0

That would be true if the directory data comes from = data plane

learning but not so much if it is from an orchestrat= ion system in a

Data Center. Adding some additional efficiency warni= ng(s) is

reasonable.

=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0 It strikes me that the working group could help get robust

> deployment by making method 3 (tracking what yo= u told clients) a

> SHOULD.=C2=A0 (I grant that it is not a MUST, as the other choices do

> work.)

=C2=A0

That sounds reasonable. We can check with the WG.

=C2=A0

Thanks,

Donald

=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=3D=3D=3D=3D

=C2=A0Donald E. Eastlake 3rd=C2=A0=C2=A0 +1-508-333-2270 (cell)

=C2=A0155 Beaver Street, Milford, MA 01757 USA

=C2=A0d3e3e3@gma= il.com

=C2=A0

--94eb2c114d24f48ca00530879739-- From nobody Fri Apr 15 08:52:09 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 57D0412D9DF; Fri, 15 Apr 2016 08:52:07 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.702 X-Spam-Level: X-Spam-Status: No, score=-2.702 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=joelhalpern.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AUXNif2rSkLD; Fri, 15 Apr 2016 08:52:05 -0700 (PDT) Received: from mailb2.tigertech.net (mailb2.tigertech.net [208.80.4.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D0BE312D9A3; Fri, 15 Apr 2016 08:52:05 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mailb2.tigertech.net (Postfix) with ESMTP id 82D252E27DC; Fri, 15 Apr 2016 08:52:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelhalpern.com; s=1.tigertech; t=1460735525; bh=iK6V/+M9YffJC4eZYJfqhuVBlh1m9hotNn1OSrl94LM=; h=Subject:To:References:Cc:From:Date:In-Reply-To:From; b=j1f7rldtgUYled8rktTizzQA90Vfl3cjgfLNoZO6Bkt6vEZ41OX5ayBw8VkmfI5n/ 9er16879PfJeoXUegJtivEeC1xRYVKk3OMRSoScOoUmvTHFAyBu2Em33iiobRaUg0z CntXmmStu+aAHe3Jh9d1ab+iHMLdqBnsvy2jDybU= X-Virus-Scanned: Debian amavisd-new at b2.tigertech.net Received: from Joels-MacBook-Pro.local (209-255-163-147.ip.mcleodusa.net [209.255.163.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mailb2.tigertech.net (Postfix) with ESMTPSA id 8B2D61C0D95; Fri, 15 Apr 2016 08:52:04 -0700 (PDT) To: Donald Eastlake References: <570EB05D.20802@joelhalpern.com> From: "Joel M. Halpern" Message-ID: <57110E19.6050304@joelhalpern.com> Date: Fri, 15 Apr 2016 11:51:53 -0400 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Archived-At: Cc: "rtg-ads@ietf.org" , "rtg-dir@ietf.org" , "trill@ietf.org" , draft-ietf-trill-directory-assist-mechanisms.all@ietf.org Subject: Re: [RTG-DIR] RtgDir review of draft-ietf-trill-directory-assist-mechanisms-07.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Apr 2016 15:52:07 -0000 Thank you Donald. Points of agreement elided, some responses to try to clarify my observations. I will note that from your comments about 3.1, I believe my concerns, now moved to 3.7, are larger, as I had assumed that the magic was in some other protocol, and you now say it is not defined there. Yours, Joel On 4/15/16 11:23 AM, Donald Eastlake wrote: > Hi Joel > > Thanks for your thorough review and comments. See below > > On Wed, Apr 13, 2016 at 4:47 PM, Joel M. Halpern > > > wrote: > ... >> Major Issues: > >> In the state machine transitions in section 2.3.3 > >> for push servers, it appears that if the event indicating that the > >> server is being shut down occurs while the server is already Going > >> Stand-By or Uncompleting, the transitions indicate that this >> "going > >> down" event will be lost. A strict reading of this would seem to > >> mean that the "go Down" event would need to recur after the >> timeout > >> condition. This would seem to be best addressed by a new state > >> "Going-Down" whose timeout behavior is to move to down state. > > I understand your point but "going down" and the like are called > > "events or conditions" in this draft, not just events. > > The problem with adding a single "Going-Down" state is that > transition > > to that state would lose the information as to whether or not the > Push > > Directory had been advertising that it was pushing complete > > information or not. The reason to remember this is that you would > want > > to behave a differently if the "going down" condition was revoked > > before it completed. This information could be preserved in a > Boolean > > pseudo variable but the current style of state machine in this draft > > avoids such pseudo variables and encodes all of the relevant push > > directory's state into the state machine state. Thus, I can see > three > > possible responses to your comment: > > 1) Change wording to emphasize that these "events or conditions" can > > be conditions that cause a state transition some substantial time > > after they become true. > > 2) Add two new states: (1) going down - was complete; (2) going down > - > > was incomplete. > > 3) Change the style of state machine to admit pseudo variables which > > can be set and testing as part of the state machinery. > > Option 1 is just some minor wording changes but adopting either > > options 2 or 3 involves more extensive changes so I would prefer to > > avoid them. > From what I have seen, trying to build a state machine with conditions rather than events is fraught with problems and tends to lead to errors in implementation. It amounts to hiding pseudo-variables inside the states, but not describing them. Thus, I would much prefer solution 2, but it is of course up to the WG. ... >> Minor Issues: > >> In section 2.3.3 describing the state transitions for push > >> servers, there is an event (event 1) described as "the server was > >> Down but is now Up." The state transition diagram describes this >> as > >> being a valid event that does not change the servers state if the > >> server is in any state other than "Down." In one sense, this is > >> reasonable, saying that such an event is harmless. I would >> however > >> expect some sort of logging or administrative notification, as > >> something in the system is quite confused. > > Again, I see your point but it seems to me to be a matter of state > > machine style. Note that the "event" is described as a condition, so > > from that point of view, it is true anytime the state is other than > > Down. On the other hand, if you view it as strictly an event, you > are > > left with the question of what to put at the intersection of a state > > and event in the table when it is impossible for that event to occur > > in that state. Some people note this with an "N/A" (not applicable) > > entry. In fact, previous TRILL state diagrams such as in RFC 7177 > use > > "N/A" so it would probably be simplest to change to that for > > consistency. I think N/A would be good. ... >> Text in section 3.2.2.1 on lifetimes and the information > >> maintenance in section 3.3 imply that the clients and servers must > >> maintain a connection. Presumably, this is required already by the > >> RBridge Channel protocol, and I understand that we should not >> repeat > >> the entire protocol here. It would seem to make readers life MUCH > >> simpler if the text noted that the RBridge Channel protocol >> requires > >> that there be a maintained connection between the client and the > >> server, and that these mechanisms leverage the presence of that > >> connection. > > The basic RBridge Channel protocol [RFC7178] is a datagram protocol > > rather than a connection protocol. So there is no guaranteed > > continuity of connection between RBridges that have previously > > exchanged RBridge Channel messages. But connection would only be > lost > > if the network partitions since RBridge Channel messages look like > > data packets to any transit RBridges and will get forwarded as long > as > > there is any route. Network partition is immediately visible in the > > link state database to the RBridges at both ends of an RBridge > Channel > > exchange. Section 3.7 provides that if a Pull Directory is no > longer > > reachable (i.e., RBridge Channel protocol packets would no longer > get > > through), then all pull responses from that Pull Directory MUST be > > discarded since cache consistency update messages can't get through. > > Perhaps a reference to Section 3.7 should be added to Section 3.3. > I don't think a reference to 3.7 is sufficient, although it is helpful. If the protocol is a datagram protocol, and if it is important to discard data from unreachable pull servers, then I think 3.7 NEEDS to say more than just ~if you happen to magically figure out you can't reach the server, discard data it has given you.~ From the rest of the text, this is an important and unspecified protocol mechanism. ... In the flooding flag and behavior, (long text elided) I don't think there is anything wrong with the intended behavior. It is just that the very brief description of the FL flag leads the reader to an incorrect expectation. Yes, it gets sorted out, but that is not good. What I would suggest is when the flag is defined (with whatever name you choose) note that "for the qtypes 2,3,and 4, the flag indicates that the server should flood its response." ... > > Thanks, > > Donald From nobody Fri Apr 15 18:44:26 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8215E12D602 for ; Fri, 15 Apr 2016 18:44:22 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -107.787 X-Spam-Level: X-Spam-Status: No, score=-107.787 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001, T_DKIM_INVALID=0.01, USER_IN_WHITELIST=-100] autolearn=unavailable autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=apnic.net Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vsCTyK9f4HTk for ; Fri, 15 Apr 2016 18:44:20 -0700 (PDT) Received: from nx-mailgw.apnic.net (nx-mailgw.apnic.net [IPv6:2001:dd8:9:801::25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A001712B023 for ; Fri, 15 Apr 2016 18:44:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apnic.net; s=R2D2; h=received:received:content-type:mime-version:subject:from:in-reply-to:date:cc: content-transfer-encoding:message-id:references:to:x-mailer:return-path; bh=/LkNkQOoj7qLfiJhVEDTEPalv+6IfL4l3RdPw7FMZew=; b=O8B/v6SnGihn50dXeBdFLyWH8acesISNfLFgDW5AQwHHFfUawHWkODcpwlQeZQqfoK48lcb1F5FEp rNSsXJZUKWvEtRjYmUd4cC4h9GX9ZaMVGZ3ewXhehO43pkt3IFse7D3z26lyNTpJ5DPpuLgDqhCulB qai3lqK6KOhvNjQc= Received: from NXMDA2.org.apnic.net (unknown [IPv6:2001:dd8:9:2::101:249]) by nx-mailgw.apnic.net (Halon Mail Gateway) with ESMTPS; Sat, 16 Apr 2016 11:46:58 +1000 (AEST) Received: from dhcp150.potaroo.net (203.119.101.249) by NXMDA2.org.apnic.net (203.119.107.21) with Microsoft SMTP Server (TLS) id 14.3.123.3; Sat, 16 Apr 2016 11:43:47 +1000 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) From: Geoff Huston In-Reply-To: Date: Sat, 16 Apr 2016 11:44:11 +1000 Content-Transfer-Encoding: quoted-printable Message-ID: <85F5A4D0-AE6B-4B5A-B888-0F0FF9859991@apnic.net> References: To: X-Mailer: Apple Mail (2.3124) Archived-At: Cc: draft-ietf-trill-arp-optimization@tools.ietg.org, rtg-dir@ietf.org, trill@ietf.org Subject: [RTG-DIR] RtgDir review: draft-ietf-trill-arp-optimization X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Apr 2016 01:44:22 -0000 Hello, I have been selected as the Routing Directorate reviewer for this draft. = The Routing Directorate seeks to review all routing or routing-related = drafts as they pass through IETF last call and IESG review, and = sometimes on special request. The purpose of the review is to provide = assistance to the Routing ADs. For more information about the Routing = Directorate, please see = =E2=80=8Bhttp://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir Although these comments are primarily for the use of the Routing ADs, it = would be helpful if you could consider them along with any other IETF = Last Call comments that you receive, and strive to resolve them through = discussion or by updating the draft. Document: draft-ietf-trill-arp-optimization-05.txt Reviewer: Geoff Huston Review Date: 16 April 2016 IETF LC End Date: date-if-known=20 Intended Status: copy-from-I-D Summary:=20 This document is basically ready for publication, but has nits = that should be considered prior to publication. Comments: I found the draft concise and clear. It was readable and readily = understood. Major Issues: No major issues found Minor Issues: No minor issues found. Nits: Minor: section 2: =E2=80=9C...receive and save such mapping = information also.=E2=80=9D seems a bit stilted and I would say =E2=80=9Ca= lso receive and save such mapping information. section 3.1 "populate the information of sender's IP/MAC in its = ARP table=E2=80=9D. Do the authors really mean "ARP table" if the = information was learned by ND? i.e. its clear that the authors are = referring to the local IP/MAC address table, but the previous text tends = to associated ARP with IPv4 and ND with IPv6. Perhaps =E2=80=9CAARP/ND = table=E2=80=9D ?= From nobody Fri Apr 15 20:12:24 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2D46612DD86; Fri, 15 Apr 2016 20:12:23 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.45 X-Spam-Level: X-Spam-Status: No, score=-2.45 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QWQ-ORlRV4EK; Fri, 15 Apr 2016 20:12:21 -0700 (PDT) Received: from mail-ob0-x22b.google.com (mail-ob0-x22b.google.com [IPv6:2607:f8b0:4003:c01::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5701712DD54; Fri, 15 Apr 2016 20:12:21 -0700 (PDT) Received: by mail-ob0-x22b.google.com with SMTP id bg3so73601529obb.1; Fri, 15 Apr 2016 20:12:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=lB/98AmUlQe54F6LLUuxFanybL7EVUTfqRQ//s0Nh94=; b=HxiHB3OBocY/qmSVSv8tK85agCuDmC02iKxtbckXdOG8VOLa/2Qw1HtoB4+lCw+H5P u/paaYPQgwuSIDYkD74DjpMQLEzcuezVdPktT2jSn3EXfoU3u+SKGsz3qYqhNmkmGap0 +tzpCZU5pREXbixsyJNnU8wBnq6zpVP4Cb2Q+oJDwZOkXGslFMAoHj//86KA1OGqxDWx gl0NSkNtpbjwgp/bixWwqpykSIwX3vRImCMcwhsW4WQ5V/DBCwGdprTalkZU7qMuwThb HveZw86+8YmB0KD1+9yvo9L+r/voj5phMD1WOIrYOcV58Uegj1jX94ZMB+XOj2VK1G/V mx9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=lB/98AmUlQe54F6LLUuxFanybL7EVUTfqRQ//s0Nh94=; b=FuctY57EkokBFimXuDYI/GbC7ECIrRrBkfm6ILnIty8gOaja0uBqx/51pfpaAj/8vV WOBj1/2T/i5CKdRNqRjKbWpCcQYUrPJERcCppTounit3pl15pmePIBbHCIjipo5n2DaZ QHJIYS3FPFQyZN8nfCjISnDaV681fZslx+c+lEAxJRINRXPKe6xKWb40a0HqTHqI8jFo 5+NkJGgl9btywwlay9BmQqwTvxTclGDtnIbLq9ieA/vuvh9sd9PVgx8nd56XOYbruRgn 6AiH8SooJwMjR2+6iNfC64OkOZ+i25yJkweIrG8eIl+KOYF7bMe2Mrywz7PbNXbxPFBK p0nw== X-Gm-Message-State: AOPr4FX0C1BHPE1PUH6f/rEnMwRh4Mmq2onTs4Iy/mRqe7P1oitZ7QSYe8+lrt2zrIp0iLewP120mH63aYdVUQ== X-Received: by 10.182.103.194 with SMTP id fy2mr12018602obb.74.1460776340599; Fri, 15 Apr 2016 20:12:20 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.22.250 with HTTP; Fri, 15 Apr 2016 20:12:06 -0700 (PDT) In-Reply-To: <57110E19.6050304@joelhalpern.com> References: <570EB05D.20802@joelhalpern.com> <57110E19.6050304@joelhalpern.com> From: Donald Eastlake Date: Fri, 15 Apr 2016 23:12:06 -0400 Message-ID: To: "Joel M. Halpern" Content-Type: text/plain; charset=UTF-8 Archived-At: Cc: "rtg-ads@ietf.org" , "rtg-dir@ietf.org" , "trill@ietf.org" , draft-ietf-trill-directory-assist-mechanisms.all@ietf.org Subject: Re: [RTG-DIR] RtgDir review of draft-ietf-trill-directory-assist-mechanisms-07.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Apr 2016 03:12:23 -0000 Hi Joel, On Fri, Apr 15, 2016 at 11:51 AM, Joel M. Halpern wrote: > Thank you Donald. Points of agreement elided, some responses to try to > clarify my observations. I will note that from your comments about 3.1, I > believe my concerns, now moved to 3.7, are larger, as I had assumed that the > magic was in some other protocol, and you now say it is not defined there. > > Yours, > Joel > > On 4/15/16 11:23 AM, Donald Eastlake wrote: >> >> Hi Joel >> >> Thanks for your thorough review and comments. See below >> >> On Wed, Apr 13, 2016 at 4:47 PM, Joel M. Halpern > wrote: >> > ... > >>> Major Issues: >>> In the state machine transitions in section 2.3.3 >>> for push servers, it appears that if the event indicating that the >>> server is being shut down occurs while the server is already Going >>> Stand-By or Uncompleting, the transitions indicate that this >>> "going >>> down" event will be lost. A strict reading of this would seem to >>> mean that the "go Down" event would need to recur after the >>> timeout >>> condition. This would seem to be best addressed by a new state >>> "Going-Down" whose timeout behavior is to move to down state. >> >> I understand your point but "going down" and the like are called >> "events or conditions" in this draft, not just events. >> The problem with adding a single "Going-Down" state is that >> transition >> to that state would lose the information as to whether or not the >> Push >> Directory had been advertising that it was pushing complete >> information or not. The reason to remember this is that you would >> want >> to behave a differently if the "going down" condition was revoked >> before it completed. This information could be preserved in a >> Boolean >> pseudo variable but the current style of state machine in this draft >> avoids such pseudo variables and encodes all of the relevant push >> directory's state into the state machine state. Thus, I can see >> three >> possible responses to your comment: >> >> 1) Change wording to emphasize that these "events or conditions" can >> be conditions that cause a state transition some substantial time >> after they become true. >> >> 2) Add two new states: (1) going down - was complete; (2) going down >> - >> was incomplete. >> >> 3) Change the style of state machine to admit pseudo variables which >> can be set and testing as part of the state machinery. >> >> Option 1 is just some minor wording changes but adopting either >> options 2 or 3 involves more extensive changes so I would prefer to >> avoid them. > > From what I have seen, trying to build a state machine with conditions > rather than events is fraught with problems and tends to lead to errors in > implementation. It amounts to hiding pseudo-variables inside the states, > but not describing them. > Thus, I would much prefer solution 2, but it is of course up to the WG. Well, option 2 wouldn't be too hard. Option 3 would probably involve the most change. > ... > >>> Minor Issues: >>> In section 2.3.3 describing the state transitions for push >>> servers, there is an event (event 1) described as "the server was >>> Down but is now Up." The state transition diagram describes this >>> as >>> being a valid event that does not change the servers state if the >>> server is in any state other than "Down." In one sense, this is >>> reasonable, saying that such an event is harmless. I would >>> however >>> expect some sort of logging or administrative notification, as >>> something in the system is quite confused. >> >> Again, I see your point but it seems to me to be a matter of state >> machine style. Note that the "event" is described as a condition, so >> from that point of view, it is true anytime the state is other than >> Down. On the other hand, if you view it as strictly an event, you >> are >> left with the question of what to put at the intersection of a state >> and event in the table when it is impossible for that event to occur >> in that state. Some people note this with an "N/A" (not applicable) >> entry. In fact, previous TRILL state diagrams such as in RFC 7177 >> use >> "N/A" so it would probably be simplest to change to that for >> consistency. > > I think N/A would be good. OK. > ... > >>> Text in section 3.2.2.1 on lifetimes and the information >>> maintenance in section 3.3 imply that the clients and servers must >>> maintain a connection. Presumably, this is required already by the >>> RBridge Channel protocol, and I understand that we should not >>> repeat >>> the entire protocol here. It would seem to make readers life MUCH >>> simpler if the text noted that the RBridge Channel protocol >>> requires >>> that there be a maintained connection between the client and the >>> server, and that these mechanisms leverage the presence of that >>> connection. >> >> The basic RBridge Channel protocol [RFC7178] is a datagram protocol >> rather than a connection protocol. So there is no guaranteed >> continuity of connection between RBridges that have previously >> exchanged RBridge Channel messages. But connection would only be >> lost >> if the network partitions since RBridge Channel messages look like >> data packets to any transit RBridges and will get forwarded as long >> as >> there is any route. Network partition is immediately visible in the >> link state database to the RBridges at both ends of an RBridge >> Channel >> exchange. Section 3.7 provides that if a Pull Directory is no >> longer >> reachable (i.e., RBridge Channel protocol packets would no longer >> get >> through), then all pull responses from that Pull Directory MUST be >> discarded since cache consistency update messages can't get through. >> Perhaps a reference to Section 3.7 should be added to Section 3.3. > > I don't think a reference to 3.7 is sufficient, although it is helpful. > If the protocol is a datagram protocol, and if it is important to discard > data from unreachable pull servers, then I think 3.7 NEEDS to say more than > just ~if you happen to magically figure out you can't reach the server, > discard data it has given you.~ From the rest of the text, this is an > important and unspecified protocol mechanism. Figuring out whether/how you can reach other RBridges is a basic function of TRILL IS-IS based routing, not something "magical". Whenever their is a topology change, an RBridge MUST determine routes to all data reachable RBridges in the new topology. If there was an RBridge previously reachable but no longer reachable, as would be the case for all RBridges on the other side of a network partition, this MUST be noticed so that, for example, all MAC reachability information associated with each of the no longer reachable RBridges can be discarded. It does not seem like much of a stretch to believe that an RBridge would keep track of the Pull Directory or Directories it was using, each of which will be some other RBridge, and notice when a topology change makes any of them inaccessible. But I have no problem adding some wording to make this clearer. > ... > In the flooding flag and behavior, (long text elided) I don't think there is > anything wrong with the intended behavior. It is just that the very brief > description of the FL flag leads the reader to an incorrect expectation. > Yes, it gets sorted out, but that is not good. What I would suggest is when > the flag is defined (with whatever name you choose) note that "for the > qtypes 2,3,and 4, the flag indicates that the server should flood its > response." We can work on clarifying the wording. Thanks, Donald ============================= Donald E. Eastlake 3rd +1-508-333-2270 (cell) 155 Beaver Street, Milford, MA 01757 USA d3e3e3@gmail.com From nobody Fri Apr 15 20:46:41 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 08FDE12E2A6; Fri, 15 Apr 2016 20:46:37 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.702 X-Spam-Level: X-Spam-Status: No, score=-2.702 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=joelhalpern.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id i0lv23oNAbou; Fri, 15 Apr 2016 20:46:35 -0700 (PDT) Received: from mailb2.tigertech.net (mailb2.tigertech.net [208.80.4.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 537FC12DBFA; Fri, 15 Apr 2016 20:46:35 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mailb2.tigertech.net (Postfix) with ESMTP id 135DB5E0BF8; Fri, 15 Apr 2016 20:46:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelhalpern.com; s=1.tigertech; t=1460778395; bh=jD3WISf2Pcc5wFpjWpbSQm/plcDm3j96LLtUbtRtllk=; h=Subject:To:References:Cc:From:Date:In-Reply-To:From; b=IkiaN1zxFNz2H2ncBNLbFxjpYiSuT+vXMZjtQmsp4NjEsw8LFlXjfMt6rGmQYRRGF Swq81RwPYYVb//FG+zQH7xkbCQ7BjNFAKxA9bFrUqAb4h60DY5EB8xqqIApkE5Muvo XJsErcSzoliC1B7PYsjfiDmZzBhBUMQoOoS6rNWM= X-Virus-Scanned: Debian amavisd-new at b2.tigertech.net Received: from Joels-MacBook-Pro.local (209-255-163-147.ip.mcleodusa.net [209.255.163.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mailb2.tigertech.net (Postfix) with ESMTPSA id 242DD5E0BF6; Fri, 15 Apr 2016 20:46:34 -0700 (PDT) To: Donald Eastlake References: <570EB05D.20802@joelhalpern.com> <57110E19.6050304@joelhalpern.com> From: "Joel M. Halpern" Message-ID: <5711B58E.8010506@joelhalpern.com> Date: Fri, 15 Apr 2016 23:46:22 -0400 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Archived-At: Cc: "rtg-ads@ietf.org" , "rtg-dir@ietf.org" , "trill@ietf.org" , draft-ietf-trill-directory-assist-mechanisms.all@ietf.org Subject: Re: [RTG-DIR] RtgDir review of draft-ietf-trill-directory-assist-mechanisms-07.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Apr 2016 03:46:37 -0000 If by the connectivity check to the directory server, you mean the underlying IS-IS routing reporting connectivity, then say that. While that is not actually interchangeable with real connectivity, it is perfectly reasoanble for the WG to deem it sufficient. I think it would only take a sentence or two to clarify for the reader that what is meant is apparent topological connectivity, as distinct from verified communication. Yours, Joel On 4/15/16 11:12 PM, Donald Eastlake wrote: > Hi Joel, > > On Fri, Apr 15, 2016 at 11:51 AM, Joel M. Halpern wrote: >> Thank you Donald. Points of agreement elided, some responses to try to >> clarify my observations. I will note that from your comments about 3.1, I >> believe my concerns, now moved to 3.7, are larger, as I had assumed that the >> magic was in some other protocol, and you now say it is not defined there. >> >> Yours, >> Joel >> >> On 4/15/16 11:23 AM, Donald Eastlake wrote: >>> >>> Hi Joel >>> >>> Thanks for your thorough review and comments. See below >>> >>> On Wed, Apr 13, 2016 at 4:47 PM, Joel M. Halpern >> wrote: >>> >> ... >> >>>> Major Issues: >>>> In the state machine transitions in section 2.3.3 >>>> for push servers, it appears that if the event indicating that the >>>> server is being shut down occurs while the server is already Going >>>> Stand-By or Uncompleting, the transitions indicate that this >>>> "going >>>> down" event will be lost. A strict reading of this would seem to >>>> mean that the "go Down" event would need to recur after the >>>> timeout >>>> condition. This would seem to be best addressed by a new state >>>> "Going-Down" whose timeout behavior is to move to down state. >>> >>> I understand your point but "going down" and the like are called >>> "events or conditions" in this draft, not just events. >>> The problem with adding a single "Going-Down" state is that >>> transition >>> to that state would lose the information as to whether or not the >>> Push >>> Directory had been advertising that it was pushing complete >>> information or not. The reason to remember this is that you would >>> want >>> to behave a differently if the "going down" condition was revoked >>> before it completed. This information could be preserved in a >>> Boolean >>> pseudo variable but the current style of state machine in this draft >>> avoids such pseudo variables and encodes all of the relevant push >>> directory's state into the state machine state. Thus, I can see >>> three >>> possible responses to your comment: >>> >>> 1) Change wording to emphasize that these "events or conditions" can >>> be conditions that cause a state transition some substantial time >>> after they become true. >>> >>> 2) Add two new states: (1) going down - was complete; (2) going down >>> - >>> was incomplete. >>> >>> 3) Change the style of state machine to admit pseudo variables which >>> can be set and testing as part of the state machinery. >>> >>> Option 1 is just some minor wording changes but adopting either >>> options 2 or 3 involves more extensive changes so I would prefer to >>> avoid them. >> >> From what I have seen, trying to build a state machine with conditions >> rather than events is fraught with problems and tends to lead to errors in >> implementation. It amounts to hiding pseudo-variables inside the states, >> but not describing them. >> Thus, I would much prefer solution 2, but it is of course up to the WG. > > Well, option 2 wouldn't be too hard. Option 3 would probably involve the most > change. > >> ... >> >>>> Minor Issues: >>>> In section 2.3.3 describing the state transitions for push >>>> servers, there is an event (event 1) described as "the server was >>>> Down but is now Up." The state transition diagram describes this >>>> as >>>> being a valid event that does not change the servers state if the >>>> server is in any state other than "Down." In one sense, this is >>>> reasonable, saying that such an event is harmless. I would >>>> however >>>> expect some sort of logging or administrative notification, as >>>> something in the system is quite confused. >>> >>> Again, I see your point but it seems to me to be a matter of state >>> machine style. Note that the "event" is described as a condition, so >>> from that point of view, it is true anytime the state is other than >>> Down. On the other hand, if you view it as strictly an event, you >>> are >>> left with the question of what to put at the intersection of a state >>> and event in the table when it is impossible for that event to occur >>> in that state. Some people note this with an "N/A" (not applicable) >>> entry. In fact, previous TRILL state diagrams such as in RFC 7177 >>> use >>> "N/A" so it would probably be simplest to change to that for >>> consistency. >> >> I think N/A would be good. > > OK. > >> ... >> >>>> Text in section 3.2.2.1 on lifetimes and the information >>>> maintenance in section 3.3 imply that the clients and servers must >>>> maintain a connection. Presumably, this is required already by the >>>> RBridge Channel protocol, and I understand that we should not >>>> repeat >>>> the entire protocol here. It would seem to make readers life MUCH >>>> simpler if the text noted that the RBridge Channel protocol >>>> requires >>>> that there be a maintained connection between the client and the >>>> server, and that these mechanisms leverage the presence of that >>>> connection. >>> >>> The basic RBridge Channel protocol [RFC7178] is a datagram protocol >>> rather than a connection protocol. So there is no guaranteed >>> continuity of connection between RBridges that have previously >>> exchanged RBridge Channel messages. But connection would only be >>> lost >>> if the network partitions since RBridge Channel messages look like >>> data packets to any transit RBridges and will get forwarded as long >>> as >>> there is any route. Network partition is immediately visible in the >>> link state database to the RBridges at both ends of an RBridge >>> Channel >>> exchange. Section 3.7 provides that if a Pull Directory is no >>> longer >>> reachable (i.e., RBridge Channel protocol packets would no longer >>> get >>> through), then all pull responses from that Pull Directory MUST be >>> discarded since cache consistency update messages can't get through. >>> Perhaps a reference to Section 3.7 should be added to Section 3.3. >> >> I don't think a reference to 3.7 is sufficient, although it is helpful. >> If the protocol is a datagram protocol, and if it is important to discard >> data from unreachable pull servers, then I think 3.7 NEEDS to say more than >> just ~if you happen to magically figure out you can't reach the server, >> discard data it has given you.~ From the rest of the text, this is an >> important and unspecified protocol mechanism. > > Figuring out whether/how you can reach other RBridges is a basic > function of TRILL IS-IS based routing, not something "magical". > Whenever their is a topology change, an RBridge MUST determine routes > to all data reachable RBridges in the new topology. If there was an > RBridge previously reachable but no longer reachable, as would be the > case for all RBridges on the other side of a network partition, this > MUST be noticed so that, for example, all MAC reachability information > associated with each of the no longer reachable RBridges can be discarded. > It does not seem like much of a stretch to believe that an RBridge would > keep track of the Pull Directory or Directories it was using, each of > which will be some other RBridge, and notice when a topology change > makes any of them inaccessible. But I have no problem adding some > wording to make this clearer. > >> ... >> In the flooding flag and behavior, (long text elided) I don't think there is >> anything wrong with the intended behavior. It is just that the very brief >> description of the FL flag leads the reader to an incorrect expectation. >> Yes, it gets sorted out, but that is not good. What I would suggest is when >> the flag is defined (with whatever name you choose) note that "for the >> qtypes 2,3,and 4, the flag indicates that the server should flood its >> response." > > We can work on clarifying the wording. > > Thanks, > Donald > ============================= > Donald E. Eastlake 3rd +1-508-333-2270 (cell) > 155 Beaver Street, Milford, MA 01757 USA > d3e3e3@gmail.com > From nobody Sat Apr 16 19:03:40 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2087212D950; Sat, 16 Apr 2016 19:03:39 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.45 X-Spam-Level: X-Spam-Status: No, score=-2.45 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YDHpUGOxLF8U; Sat, 16 Apr 2016 19:03:37 -0700 (PDT) Received: from mail-ob0-x232.google.com (mail-ob0-x232.google.com [IPv6:2607:f8b0:4003:c01::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3844312D0BB; Sat, 16 Apr 2016 19:03:37 -0700 (PDT) Received: by mail-ob0-x232.google.com with SMTP id j9so81772259obd.3; Sat, 16 Apr 2016 19:03:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=s4jcW4lOCW4Q0YidEkOti2gbG3redYKPrzsldRoN598=; b=Rsy56jXlgP73AZ3tFcu402Gjl7cpFp7KlupjEOlxNiSZzo9Ryh577SnoEoTdK3Td4d J6kV9soxz3berpoU+LiDEi7avupEQClRAPE5z7p2ohjUqF+WinqvKzXWRXNaZckM39lb Oco52m2v4O0/Rw76zFL8JceGvRA2WqeAhTx7kmZKV+VCro4S8Fcvpe5XloO4bI688noO 93Ux20wXTvsT2mQnjNEEIVCdyJU22QmevGvijyoZb2ckNLmrzr4bISx5jBUnZOkrXNV4 y4sJ5gTzDwaDQ0n4u+sJi3zpgPbqAR6nIHNZlUe0MZ8fD7nvd51vS0KAz0WgdoKz68aa w47w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=s4jcW4lOCW4Q0YidEkOti2gbG3redYKPrzsldRoN598=; b=VzNLpO43imUIM1BtNgp6btT8q9ggDahgf8F4CtnglLr2FDBV8oiLuL7BWmXO3vRwj4 ng4wDoPEEGllQQnLvUgw5KiFxdGkWmnEgcReFSdH6NWSBwvWMzUdQL9q+KSPteOZ00mG YFLBLIv96P/JNUr6kxfh14al2vTM//l9tYvUOQkqdfRWBmhbeuMLx0r3FW0tNLbwF5Xf NS9Lr5lbRTfGHvggu7dYtGSrQCvLyFoGoZc5uznmU+ae2On7fdDpl+/FxUmqanD2AbiV rSBgDPBdXZfgQZihsf/n+hYzPX0/5w0/zeWcWmqlKK/mlWFuHrgKf3mVgzdfmopz4CHp oDXw== X-Gm-Message-State: AOPr4FUXfMtPNmTzMxalxIq7Z6AGjAdOevYbNYOnrDM/nmzUgG+Tnt/6nJ7NsETLYLVGGBNNBOZcbrUzDqvezw== X-Received: by 10.60.97.38 with SMTP id dx6mr13620416oeb.5.1460858616541; Sat, 16 Apr 2016 19:03:36 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.22.250 with HTTP; Sat, 16 Apr 2016 19:03:22 -0700 (PDT) In-Reply-To: <5711B58E.8010506@joelhalpern.com> References: <570EB05D.20802@joelhalpern.com> <57110E19.6050304@joelhalpern.com> <5711B58E.8010506@joelhalpern.com> From: Donald Eastlake Date: Sat, 16 Apr 2016 22:03:22 -0400 Message-ID: To: "Joel M. Halpern" Content-Type: text/plain; charset=UTF-8 Archived-At: Cc: "rtg-ads@ietf.org" , "rtg-dir@ietf.org" , "trill@ietf.org" , draft-ietf-trill-directory-assist-mechanisms.all@ietf.org Subject: Re: [RTG-DIR] RtgDir review of draft-ietf-trill-directory-assist-mechanisms-07.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Apr 2016 02:03:39 -0000 Hi Joel, On Fri, Apr 15, 2016 at 11:46 PM, Joel M. Halpern wrote: > If by the connectivity check to the directory server, you mean the > underlying IS-IS routing reporting connectivity, then say that. OK. > While that > is not actually interchangeable with real connectivity, it is perfectly > reasoanble for the WG to deem it sufficient. I think it would only take a > sentence or two to clarify for the reader that what is meant is apparent > topological connectivity, as distinct from verified communication. The phrase usually used in TRILL (See RFC 7780) is "data reachable". Thanks, Donald ============================= Donald E. Eastlake 3rd +1-508-333-2270 (cell) 155 Beaver Street, Milford, MA 01757 USA d3e3e3@gmail.com > Yours, > Joel > > > On 4/15/16 11:12 PM, Donald Eastlake wrote: >> >> Hi Joel, >> >> On Fri, Apr 15, 2016 at 11:51 AM, Joel M. Halpern >> wrote: >>> >>> Thank you Donald. Points of agreement elided, some responses to try to >>> clarify my observations. I will note that from your comments about 3.1, >>> I >>> believe my concerns, now moved to 3.7, are larger, as I had assumed that >>> the >>> magic was in some other protocol, and you now say it is not defined >>> there. >>> >>> Yours, >>> Joel >>> >>> On 4/15/16 11:23 AM, Donald Eastlake wrote: >>>> >>>> >>>> Hi Joel >>>> >>>> Thanks for your thorough review and comments. See below >>>> >>>> On Wed, Apr 13, 2016 at 4:47 PM, Joel M. Halpern >>> wrote: >>>> >>> ... >>> >>>>> Major Issues: >>>>> In the state machine transitions in section 2.3.3 >>>>> for push servers, it appears that if the event indicating that the >>>>> server is being shut down occurs while the server is already Going >>>>> Stand-By or Uncompleting, the transitions indicate that this >>>>> "going >>>>> down" event will be lost. A strict reading of this would seem to >>>>> mean that the "go Down" event would need to recur after the >>>>> timeout >>>>> condition. This would seem to be best addressed by a new state >>>>> "Going-Down" whose timeout behavior is to move to down state. >>>> >>>> >>>> I understand your point but "going down" and the like are called >>>> "events or conditions" in this draft, not just events. >>>> The problem with adding a single "Going-Down" state is that >>>> transition >>>> to that state would lose the information as to whether or not the >>>> Push >>>> Directory had been advertising that it was pushing complete >>>> information or not. The reason to remember this is that you would >>>> want >>>> to behave a differently if the "going down" condition was revoked >>>> before it completed. This information could be preserved in a >>>> Boolean >>>> pseudo variable but the current style of state machine in this draft >>>> avoids such pseudo variables and encodes all of the relevant push >>>> directory's state into the state machine state. Thus, I can see >>>> three >>>> possible responses to your comment: >>>> >>>> 1) Change wording to emphasize that these "events or conditions" can >>>> be conditions that cause a state transition some substantial time >>>> after they become true. >>>> >>>> 2) Add two new states: (1) going down - was complete; (2) going down >>>> - >>>> was incomplete. >>>> >>>> 3) Change the style of state machine to admit pseudo variables which >>>> can be set and testing as part of the state machinery. >>>> >>>> Option 1 is just some minor wording changes but adopting either >>>> options 2 or 3 involves more extensive changes so I would prefer to >>>> avoid them. >>> >>> >>> From what I have seen, trying to build a state machine with conditions >>> rather than events is fraught with problems and tends to lead to errors >>> in >>> implementation. It amounts to hiding pseudo-variables inside the states, >>> but not describing them. >>> Thus, I would much prefer solution 2, but it is of course up to the WG. >> >> >> Well, option 2 wouldn't be too hard. Option 3 would probably involve the >> most >> change. >> >>> ... >>> >>>>> Minor Issues: >>>>> In section 2.3.3 describing the state transitions for push >>>>> servers, there is an event (event 1) described as "the server was >>>>> Down but is now Up." The state transition diagram describes this >>>>> as >>>>> being a valid event that does not change the servers state if the >>>>> server is in any state other than "Down." In one sense, this is >>>>> reasonable, saying that such an event is harmless. I would >>>>> however >>>>> expect some sort of logging or administrative notification, as >>>>> something in the system is quite confused. >>>> >>>> >>>> Again, I see your point but it seems to me to be a matter of state >>>> machine style. Note that the "event" is described as a condition, so >>>> from that point of view, it is true anytime the state is other than >>>> Down. On the other hand, if you view it as strictly an event, you >>>> are >>>> left with the question of what to put at the intersection of a state >>>> and event in the table when it is impossible for that event to occur >>>> in that state. Some people note this with an "N/A" (not applicable) >>>> entry. In fact, previous TRILL state diagrams such as in RFC 7177 >>>> use >>>> "N/A" so it would probably be simplest to change to that for >>>> consistency. >>> >>> >>> I think N/A would be good. >> >> >> OK. >> >>> ... >>> >>>>> Text in section 3.2.2.1 on lifetimes and the information >>>>> maintenance in section 3.3 imply that the clients and servers must >>>>> maintain a connection. Presumably, this is required already by the >>>>> RBridge Channel protocol, and I understand that we should not >>>>> repeat >>>>> the entire protocol here. It would seem to make readers life MUCH >>>>> simpler if the text noted that the RBridge Channel protocol >>>>> requires >>>>> that there be a maintained connection between the client and the >>>>> server, and that these mechanisms leverage the presence of that >>>>> connection. >>>> >>>> >>>> The basic RBridge Channel protocol [RFC7178] is a datagram protocol >>>> rather than a connection protocol. So there is no guaranteed >>>> continuity of connection between RBridges that have previously >>>> exchanged RBridge Channel messages. But connection would only be >>>> lost >>>> if the network partitions since RBridge Channel messages look like >>>> data packets to any transit RBridges and will get forwarded as long >>>> as >>>> there is any route. Network partition is immediately visible in the >>>> link state database to the RBridges at both ends of an RBridge >>>> Channel >>>> exchange. Section 3.7 provides that if a Pull Directory is no >>>> longer >>>> reachable (i.e., RBridge Channel protocol packets would no longer >>>> get >>>> through), then all pull responses from that Pull Directory MUST be >>>> discarded since cache consistency update messages can't get through. >>>> Perhaps a reference to Section 3.7 should be added to Section 3.3. >>> >>> >>> I don't think a reference to 3.7 is sufficient, although it is helpful. >>> If the protocol is a datagram protocol, and if it is important to discard >>> data from unreachable pull servers, then I think 3.7 NEEDS to say more >>> than >>> just ~if you happen to magically figure out you can't reach the server, >>> discard data it has given you.~ From the rest of the text, this is an >>> important and unspecified protocol mechanism. >> >> >> Figuring out whether/how you can reach other RBridges is a basic >> function of TRILL IS-IS based routing, not something "magical". >> Whenever their is a topology change, an RBridge MUST determine routes >> to all data reachable RBridges in the new topology. If there was an >> RBridge previously reachable but no longer reachable, as would be the >> case for all RBridges on the other side of a network partition, this >> MUST be noticed so that, for example, all MAC reachability information >> associated with each of the no longer reachable RBridges can be discarded. >> It does not seem like much of a stretch to believe that an RBridge would >> keep track of the Pull Directory or Directories it was using, each of >> which will be some other RBridge, and notice when a topology change >> makes any of them inaccessible. But I have no problem adding some >> wording to make this clearer. >> >>> ... >>> In the flooding flag and behavior, (long text elided) I don't think there >>> is >>> anything wrong with the intended behavior. It is just that the very >>> brief >>> description of the FL flag leads the reader to an incorrect expectation. >>> Yes, it gets sorted out, but that is not good. What I would suggest is >>> when >>> the flag is defined (with whatever name you choose) note that "for the >>> qtypes 2,3,and 4, the flag indicates that the server should flood its >>> response." >> >> >> We can work on clarifying the wording. >> >> Thanks, >> Donald >> ============================= >> Donald E. Eastlake 3rd +1-508-333-2270 (cell) >> 155 Beaver Street, Milford, MA 01757 USA >> d3e3e3@gmail.com >> > From nobody Sun Apr 17 19:50:33 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6259912D695; Sun, 17 Apr 2016 19:50:31 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -5.217 X-Spam-Level: X-Spam-Status: No, score=-5.217 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D69_UoVFzmYS; Sun, 17 Apr 2016 19:50:29 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CAF5612D514; Sun, 17 Apr 2016 19:50:27 -0700 (PDT) Received: from 172.18.7.190 (EHLO lhreml703-cah.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CHT41051; Mon, 18 Apr 2016 02:50:23 +0000 (GMT) Received: from NKGEML412-HUB.china.huawei.com (10.98.56.73) by lhreml703-cah.china.huawei.com (10.201.5.104) with Microsoft SMTP Server (TLS) id 14.3.235.1; Mon, 18 Apr 2016 03:50:22 +0100 Received: from NKGEML513-MBX.china.huawei.com ([169.254.1.56]) by nkgeml412-hub.china.huawei.com ([10.98.56.73]) with mapi id 14.03.0235.001; Mon, 18 Apr 2016 10:50:18 +0800 From: Liyizhou To: Geoff Huston , "rtg-ads@tools.ietf.org" Thread-Topic: [trill] RtgDir review: draft-ietf-trill-arp-optimization Thread-Index: AQHRl4GIP3VGSJP0X0KTEMHOwz8xxp+PChcw Date: Mon, 18 Apr 2016 02:50:18 +0000 Message-ID: References: <85F5A4D0-AE6B-4B5A-B888-0F0FF9859991@apnic.net> In-Reply-To: <85F5A4D0-AE6B-4B5A-B888-0F0FF9859991@apnic.net> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.135.180.237] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090203.57144B70.002D, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=169.254.1.56, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 3892fa909b3e4652b982b66b17dd265d Archived-At: Cc: "draft-ietf-trill-arp-optimization@tools.ietg.org" , "rtg-dir@ietf.org" , "trill@ietf.org" Subject: Re: [RTG-DIR] [trill] RtgDir review: draft-ietf-trill-arp-optimization X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Apr 2016 02:50:31 -0000 SGkgR2VvZmYsDQoNClRoYW5rIHlvdSBmb3IgdGhlIHJldmlldyBhbmQgY29tbWVudHMuIEkgd2ls bCB1cGRhdGUgdGhlIHRleHQgYXMgeW91IHN1Z2dlc3RlZCBpbiBuZXh0IHJldmlzaW9uLg0KDQpU aGFua3MsDQpZaXpob3UNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogdHJp bGwgW21haWx0bzp0cmlsbC1ib3VuY2VzQGlldGYub3JnXSBPbiBCZWhhbGYgT2YgR2VvZmYgSHVz dG9uDQpTZW50OiBTYXR1cmRheSwgQXByaWwgMTYsIDIwMTYgOTo0NCBBTQ0KVG86IHJ0Zy1hZHNA dG9vbHMuaWV0Zi5vcmcNCkNjOiBkcmFmdC1pZXRmLXRyaWxsLWFycC1vcHRpbWl6YXRpb25AdG9v bHMuaWV0Zy5vcmc7IHJ0Zy1kaXJAaWV0Zi5vcmc7IHRyaWxsQGlldGYub3JnDQpTdWJqZWN0OiBb dHJpbGxdIFJ0Z0RpciByZXZpZXc6IGRyYWZ0LWlldGYtdHJpbGwtYXJwLW9wdGltaXphdGlvbg0K DQpIZWxsbywNCg0KSSBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgdGhlIFJvdXRpbmcgRGlyZWN0b3Jh dGUgcmV2aWV3ZXIgZm9yIHRoaXMgZHJhZnQuIFRoZSBSb3V0aW5nIERpcmVjdG9yYXRlIHNlZWtz IHRvIHJldmlldyBhbGwgcm91dGluZyBvciByb3V0aW5nLXJlbGF0ZWQgZHJhZnRzIGFzIHRoZXkg cGFzcyB0aHJvdWdoIElFVEYgbGFzdCBjYWxsIGFuZCBJRVNHIHJldmlldywgYW5kIHNvbWV0aW1l cyBvbiBzcGVjaWFsIHJlcXVlc3QuIFRoZSBwdXJwb3NlIG9mIHRoZSByZXZpZXcgaXMgdG8gcHJv dmlkZSBhc3Npc3RhbmNlIHRvIHRoZSBSb3V0aW5nIEFEcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24g YWJvdXQgdGhlIFJvdXRpbmcgRGlyZWN0b3JhdGUsIHBsZWFzZSBzZWUg4oCLaHR0cDovL3RyYWMu dG9vbHMuaWV0Zi5vcmcvYXJlYS9ydGcvdHJhYy93aWtpL1J0Z0Rpcg0KDQpBbHRob3VnaCB0aGVz ZSBjb21tZW50cyBhcmUgcHJpbWFyaWx5IGZvciB0aGUgdXNlIG9mIHRoZSBSb3V0aW5nIEFEcywg aXQgd291bGQgYmUgaGVscGZ1bCBpZiB5b3UgY291bGQgY29uc2lkZXIgdGhlbSBhbG9uZyB3aXRo IGFueSBvdGhlciBJRVRGIExhc3QgQ2FsbCBjb21tZW50cyB0aGF0IHlvdSByZWNlaXZlLCBhbmQg c3RyaXZlIHRvIHJlc29sdmUgdGhlbSB0aHJvdWdoIGRpc2N1c3Npb24gb3IgYnkgdXBkYXRpbmcg dGhlIGRyYWZ0Lg0KDQpEb2N1bWVudDogZHJhZnQtaWV0Zi10cmlsbC1hcnAtb3B0aW1pemF0aW9u LTA1LnR4dA0KUmV2aWV3ZXI6IEdlb2ZmIEh1c3Rvbg0KUmV2aWV3IERhdGU6IDE2IEFwcmlsIDIw MTYNCklFVEYgTEMgRW5kIERhdGU6IGRhdGUtaWYta25vd24gDQpJbnRlbmRlZCBTdGF0dXM6IGNv cHktZnJvbS1JLUQNCg0KU3VtbWFyeTogDQoJVGhpcyBkb2N1bWVudCBpcyBiYXNpY2FsbHkgcmVh ZHkgZm9yIHB1YmxpY2F0aW9uLCBidXQgaGFzIG5pdHMgdGhhdCBzaG91bGQgYmUgY29uc2lkZXJl ZCBwcmlvciB0byBwdWJsaWNhdGlvbi4NCg0KQ29tbWVudHM6DQoJSSBmb3VuZCB0aGUgZHJhZnQg Y29uY2lzZSBhbmQgY2xlYXIuIEl0IHdhcyByZWFkYWJsZSBhbmQgcmVhZGlseSB1bmRlcnN0b29k Lg0KDQpNYWpvciBJc3N1ZXM6DQoJTm8gbWFqb3IgaXNzdWVzIGZvdW5kDQoNCg0KTWlub3IgSXNz dWVzOg0KCU5vIG1pbm9yIGlzc3VlcyBmb3VuZC4NCg0KTml0czoNCglNaW5vcjoNCgkgc2VjdGlv biAyOiDigJwuLi5yZWNlaXZlIGFuZCBzYXZlIHN1Y2ggbWFwcGluZyBpbmZvcm1hdGlvbiBhbHNv LuKAnSBzZWVtcyBhIGJpdCBzdGlsdGVkICBhbmQgSSB3b3VsZCBzYXkg4oCcYWxzbyByZWNlaXZl IGFuZCBzYXZlIHN1Y2ggbWFwcGluZyBpbmZvcm1hdGlvbi4NCg0KICAgICAgICAgc2VjdGlvbiAz LjEgInBvcHVsYXRlIHRoZSBpbmZvcm1hdGlvbiBvZiBzZW5kZXIncyBJUC9NQUMgaW4gaXRzIEFS UCB0YWJsZeKAnS4gRG8gdGhlIGF1dGhvcnMgcmVhbGx5IG1lYW4gIkFSUCB0YWJsZSIgaWYgdGhl IGluZm9ybWF0aW9uIHdhcyBsZWFybmVkIGJ5IE5EPyBpLmUuIGl0cyBjbGVhciB0aGF0IHRoZSBh dXRob3JzIGFyZSByZWZlcnJpbmcgdG8gdGhlIGxvY2FsIElQL01BQyBhZGRyZXNzIHRhYmxlLCBi dXQgdGhlIHByZXZpb3VzIHRleHQgdGVuZHMgdG8gYXNzb2NpYXRlZCBBUlAgd2l0aCBJUHY0IGFu ZCBORCB3aXRoIElQdjYuIFBlcmhhcHMg4oCcQUFSUC9ORCB0YWJsZeKAnSA/DQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KdHJpbGwgbWFpbGluZyBsaXN0 DQp0cmlsbEBpZXRmLm9yZw0KaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby90 cmlsbA0K From nobody Tue Apr 19 00:26:36 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B4B0C12EB3E; Tue, 19 Apr 2016 00:26:32 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.001 X-Spam-Level: X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=metaswitch.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hx693l47cKVL; Tue, 19 Apr 2016 00:26:31 -0700 (PDT) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0741.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:741]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4740512EACF; Tue, 19 Apr 2016 00:26:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=metaswitch.com; s=selector1; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=8f5Ip+mAniSijKD9r7dxm145MLwdyAJ2wDjuLO9Hs/k=; b=cR/XlbrIRHs+P0SgDmBicOd0+KD5wFzWvFnXFUGyqmn3a3PjnYVEQ8YLWjTxMXUpQh9ZeaB1IzkM6AmuP0ziVia87IgzYJhbBiZoQhWI+L/212zr7aFIJuSKRg9VT1pgFuvzbZybZuukq8AFnXj+6l4EdNFJ2AB6ixznGtm/vj0= Received: from BY2PR0201MB1910.namprd02.prod.outlook.com (10.163.75.152) by BY2PR0201MB1910.namprd02.prod.outlook.com (10.163.75.152) with Microsoft SMTP Server (TLS) id 15.1.466.19; Tue, 19 Apr 2016 07:26:11 +0000 Received: from BY2PR0201MB1910.namprd02.prod.outlook.com ([10.163.75.152]) by BY2PR0201MB1910.namprd02.prod.outlook.com ([10.163.75.152]) with mapi id 15.01.0466.022; Tue, 19 Apr 2016 07:26:11 +0000 From: Jonathan Hardwick To: "routing-discussion@ietf.org" , "rtg-chairs@ietf.org" , "rtg-dir@ietf.org" , "rtg-ads@tools.ietf.org" Thread-Topic: Routing area draft minutes available Thread-Index: AdGaDLcOZKrUXLVKSDSUg2qLzwr05A== Date: Tue, 19 Apr 2016 07:26:10 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=metaswitch.com; x-originating-ip: [86.164.140.212] x-ms-office365-filtering-correlation-id: ce4025c3-6dc3-45a7-6279-08d36823e1c1 x-microsoft-exchange-diagnostics: 1; BY2PR0201MB1910; 5:wdiSb1O/cHVi4EyW+Qc3pkx3T9srJk6OzEmCkUH6/cKxJ4Dl6Q6UwTFDvNHOp8NUIOcKxzJC5wLD0qP3aGDjzOlmJ6lDsKS3qn5+oNpijf2ILCS/Uqikl8TehbOnDNS4kl467RRfvHOAPNHEXO7T7OuN9dnpc3vTBkiQnve+QBwS1fMCPZoOoOmzqKEwzAKi; 24:zxEZYPYrFvXZ/AxkUO0I0X6C4GRIwxF4HaEK+qpXNjow1qVeLfPzf/CHZF1qd4qUCjyofFU0PXk+pkHkASF6Glr+pSrN//N7agRr2yNCHKg=; 7:X2pViS1Glep+964b8I+yRZc5r7A2hGofDiJTYUnbn1DGxXp5N03OAfLytMiC6oPx0i1cNapxGal9Atb0zUe9yQ1QalORBxNEU9B/W5f/2M4pLA2zyB4U6+xysO/jev9cNEww3jMDwfcP5+fxLj+L7/C1p+xuyAxdCzsT8XaA/amqFNQ43W3F93ElAkDdUJF1R9Xu1c3uQnyPkHeuhAKoYzSPclzpl3CxdIgw0Ko+RNw= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1910; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(9101521026)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001); SRVR:BY2PR0201MB1910; BCL:0; PCL:0; RULEID:; SRVR:BY2PR0201MB1910; x-forefront-prvs: 0917DFAC67 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(86362001)(3660700001)(81166005)(5002640100001)(2906002)(3280700002)(10400500002)(74316001)(229853001)(9686002)(19617315012)(1096002)(2201001)(5003600100002)(6116002)(586003)(189998001)(790700001)(66066001)(107886002)(3846002)(5001770100001)(558084003)(102836003)(19625215002)(15975445007)(5004730100002)(19300405004)(122556002)(5008740100001)(92566002)(33656002)(16236675004)(19580395003)(1220700001)(50986999)(99286002)(54356999)(2900100001)(76576001)(11100500001)(77096005)(87936001)(2501003); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR0201MB1910; H:BY2PR0201MB1910.namprd02.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: multipart/alternative; boundary="_000_BY2PR0201MB1910E5FC06E37FAE73BB9606846C0BY2PR0201MB1910_" MIME-Version: 1.0 X-OriginatorOrg: metaswitch.com X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2016 07:26:10.6625 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9d9e56eb-f613-4ddb-b27b-bfcdf14b2cdb X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB1910 Archived-At: Subject: [RTG-DIR] Routing area draft minutes available X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Apr 2016 07:26:32 -0000 --_000_BY2PR0201MB1910E5FC06E37FAE73BB9606846C0BY2PR0201MB1910_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable The draft minutes for the RTGAREA meeting at IETF 95 are now available. Pl= ease let me know if you have any comments. https://www.ietf.org/proceedings/95/minutes/minutes-95-rtgarea Best regards Jon --_000_BY2PR0201MB1910E5FC06E37FAE73BB9606846C0BY2PR0201MB1910_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

The draft minutes for the RTGAREA meeting at IETF 95= are now available.  Please let me know if you have any comments.=

https://www.ietf.org/proceedings/95/minutes/minutes-= 95-rtgarea

 

Best regards

Jon

 

--_000_BY2PR0201MB1910E5FC06E37FAE73BB9606846C0BY2PR0201MB1910_-- From nobody Wed Apr 20 06:53:52 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DE16412DADB; Wed, 20 Apr 2016 06:53:48 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.914 X-Spam-Level: X-Spam-Status: No, score=-2.914 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 74fO7al9tuXE; Wed, 20 Apr 2016 06:53:44 -0700 (PDT) Received: from relais-inet.orange.com (relais-nor34.orange.com [80.12.70.34]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3EF7212EF09; Wed, 20 Apr 2016 06:53:40 -0700 (PDT) Received: from opfednr07.francetelecom.fr (unknown [xx.xx.xx.71]) by opfednr26.francetelecom.fr (ESMTP service) with ESMTP id 68EA420450; Wed, 20 Apr 2016 15:53:39 +0200 (CEST) Received: from Exchangemail-eme2.itn.ftgroup (unknown [xx.xx.31.69]) by opfednr07.francetelecom.fr (ESMTP service) with ESMTP id 26C011C007D; Wed, 20 Apr 2016 15:53:39 +0200 (CEST) Received: from OPEXCLILM21.corporate.adroot.infra.ftgroup ([fe80::e92a:c932:907e:8f06]) by OPEXCLILMA2.corporate.adroot.infra.ftgroup ([fe80::bc1c:ad2f:eda3:8c3d%18]) with mapi id 14.03.0279.002; Wed, 20 Apr 2016 15:53:39 +0200 From: To: "rtg-ads@ietf.org" Thread-Topic: RtgDir review: draft-ietf-rtgwg-bgp-pic-00 Thread-Index: AdGbCY+KVpJbAa3dT8ic1wCl7AzRBA== Date: Wed, 20 Apr 2016 13:53:38 +0000 Message-ID: <18205_1461160419_571789E3_18205_2694_2_53C29892C857584299CBF5D05346208A0F8761E1@OPEXCLILM21.corporate.adroot.infra.ftgroup> Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.168.234.5] Content-Type: multipart/alternative; boundary="_000_53C29892C857584299CBF5D05346208A0F8761E1OPEXCLILM21corp_" MIME-Version: 1.0 Archived-At: Cc: "rtg-dir@ietf.org" , "draft-ietf-rtgwg-bgp-pic.all@ietf.org" , "rtgwg@ietf.org" Subject: [RTG-DIR] RtgDir review: draft-ietf-rtgwg-bgp-pic-00 X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Apr 2016 13:53:49 -0000 --_000_53C29892C857584299CBF5D05346208A0F8761E1OPEXCLILM21corp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGVsbG8sDQoNCkkgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHRoZSBSb3V0aW5nIERpcmVjdG9yYXRl IHJldmlld2VyIGZvciB0aGlzIGRyYWZ0LiBUaGUgUm91dGluZyBEaXJlY3RvcmF0ZSBzZWVrcyB0 byByZXZpZXcgYWxsIHJvdXRpbmcgb3Igcm91dGluZy1yZWxhdGVkIGRyYWZ0cyBhcyB0aGV5IHBh c3MgdGhyb3VnaCBJRVRGIGxhc3QgY2FsbCBhbmQgSUVTRyByZXZpZXcsIGFuZCBzb21ldGltZXMg b24gc3BlY2lhbCByZXF1ZXN0LiBUaGUgcHVycG9zZSBvZiB0aGUgcmV2aWV3IGlzIHRvIHByb3Zp ZGUgYXNzaXN0YW5jZSB0byB0aGUgUm91dGluZyBBRHMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFi b3V0IHRoZSBSb3V0aW5nIERpcmVjdG9yYXRlLCBwbGVhc2Ugc2VlIOKAi2h0dHA6Ly90cmFjLnRv b2xzLmlldGYub3JnL2FyZWEvcnRnL3RyYWMvd2lraS9SdGdEaXI8aHR0cDovL3RyYWMudG9vbHMu aWV0Zi5vcmcvYXJlYS9ydGcvdHJhYy93aWtpL1J0Z0Rpcj4NCg0KQWx0aG91Z2ggdGhlc2UgY29t bWVudHMgYXJlIHByaW1hcmlseSBmb3IgdGhlIHVzZSBvZiB0aGUgUm91dGluZyBBRHMsIGl0IHdv dWxkIGJlIGhlbHBmdWwgaWYgeW91IGNvdWxkIGNvbnNpZGVyIHRoZW0gYWxvbmcgd2l0aCBhbnkg b3RoZXIgSUVURiBMYXN0IENhbGwgY29tbWVudHMgdGhhdCB5b3UgcmVjZWl2ZSwgYW5kIHN0cml2 ZSB0byByZXNvbHZlIHRoZW0gdGhyb3VnaCBkaXNjdXNzaW9uIG9yIGJ5IHVwZGF0aW5nIHRoZSBk cmFmdC4NCg0KRG9jdW1lbnQ6IGRyYWZ0LWlldGYtcnRnd2ctYmdwLXBpYy0wMA0KUmV2aWV3ZXI6 IEJydW5vIERlY3JhZW5lDQpJRVRGIExDIEVuZCBEYXRlOiDigJxRQSByZXZpZXfigJ0gcHJlIFdH IExDDQpJbnRlbmRlZCBTdGF0dXM6IEluZm9ybWF0aW9uYWwNCg0KU3VtbWFyeToNCkkgaGF2ZSBz b21lIG1pbm9yIGNvbmNlcm5zIGFib3V0IHRoaXMgZG9jdW1lbnQgdGhhdCBJIHRoaW5rIHNob3Vs ZCBiZSByZXNvbHZlZCBiZWZvcmUgcHVibGljYXRpb24uDQoNCkNvbW1lbnRzOg0KLSBEb2N1bWVu dCBpcyBpbnRlcmVzdGluZy4gRG9jdW1lbnQgaXMgcmVsYXRpdmVseSBjbGVhciBidXQgc29tZXRp bWUgaXQgZmVlbHMgbGlrZSB0aGVyZSBpcyBhIGxpdHRsZSByb29tIGZvciBzb21lIHJlZm9ybXVs YXRpb24vZWRpdGlvbiB0byBpbXByb3ZlIGZsdWlkaXR5LiBJbiBwYXJ0aWN1bGFyLCB0aGUgbGVh cm5pbmcgY3VydmUgaXMgYSBiaXQgc3RlZXAgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jIGFz IG1vc3Qgb2YgdGhlIGNvbmNlcHRzIGFyZSBpbnRyb2R1Y2VkIGluIDMgcGFnZXMgKHBhZ2VzIDQt NikgaW4gdGhlIGZvcm0gb2YgYSBsaXN0IG9mIHRlcm1pbm9sb2d5IGFuZCBhIHBzZXVkbyBjb2Rl LiBJIHdvdWxkIGZpbmQgdXNlZnVsIHRvIGhhdmUgYW4gb3ZlcnZpZXcgc2VjdGlvbiBqdXN0IGFm dGVyIHRoZSBpbnRyb2R1Y3Rpb24sIHdpdGggYSBoaWdoIGxldmVsIHZpZXcgb2YgdGhlIHNvbHV0 aW9uIHdpdGggYSBsaW1pdGVkIG51bWJlciBvZiBuZXcgdGVybXMuDQotIFRoZSB0ZXh0IGZlZWxz IGxpa2UgYXV0aG9yaXRhdGl2ZSwgd2hpbGUgcHJvYmFibHkgbWFueSB0ZXJtcyBhcmUgaW1wbGVt ZW50YXRpb24gc3BlY2lmaWMuIEEgcHJpb3JpLCBJIHdvdWxkIG5vdCBleHBlY3QgYWxsIGltcGxl bWVudGF0aW9uIG9mIEJHUCBQSUMgdG8gdXNlIHRoZSBzYW1lIHRlcm1zLCBhbmQgcG9zc2libHkg bm90IHRoZSBzYW1lIGRhdGEgc3RydWN0dXJlLiBNYXkgYmUgdGhlIHRleHQgY291bGQgYmUgZ2Vu ZXJhbGl6ZWQgdG8gY292ZXIgbXVsdGlwbGUgaW1wbGVtZW50YXRpb25zOyBvciBtb2RpZmllZCB0 byBkZXNjcmliZSBhIGdlbmVyYWxpemVkIGNvbmNlcHQgKGkuZS4gZGF0YS1zdHJ1Y3R1cmUgZGVz aWduZWQgdG8gc2hhcmUgYXMgbXVjaCBkYXRhIGFzIHBvc3NpYmxlIGJldHdlZW4gZWxlbWVudHMs IGF0IHRoZSBjb3N0IG9mIGFkZGl0aW9uYWwgaW5kaXJlY3Rpb25zKTsgb3IgdGhlIGRvY3VtZW50 IGNvdWxkIHN0YXRlIHRoYXQgaXQgZGVzY3JpYmVzIGEgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24g d2l0aCBpbXBsZW1lbnRhdGlvbnMgc3BlY2lmaWMgdGVybWlub2xvZ3ksIGRhdGEgc3RydWN0dXJl LCBhbmQgc3BlY2lmaWNzLiBPciBhIGNvbWJpbmF0aW9uIG9mIGJvdGggKGUuZy4gYWRkaW5nIGEg c2VjdGlvbiBiZWluZyBib3RoIGdlbmVyYWxpemVkIGFuZCBkZXNjcmliaW5nIHRoZSBjb25jZXB0 LCBhbmQgdGhlbiB0aGUgZXhpc3Rpbmcgc2VjdGlvbnMgYWZ0ZXIgc3RhdGluZyB0aGF0IHRoZXkg YXJlIHNwZWNpZmljIHRvIG9uZSBpbXBsZW1lbnRhdGlvbikuDQoNCk1pbm9yIElzc3VlczoNCg0K LSBJIGZpbmQgZmlndXJlIDIgdmVyeSB1c2VmdWwgdG8gdW5kZXJzdGFuZCB0aGUgZGF0YS1zdHJ1 Y3R1cmUuIEkgd291bGQgbW92ZSBpdCBzb29uZXIgaW4gdGhlIGRvYywgc29tZXdoZXJlIGJlZm9y ZSDCpzIuMi4gKHdpdGggaXRzIHN1YnNlcXVlbnQgdGV4dCBiZWxvdykgZS5nLiBhIG5ldyDCpzIu MiAiRklCIGRhdGEtc3RydWN0dXJlIg0KSXQgd291bGQgbmVlZCB0byBiZSBnZW5lcmFsaXplZCBp LmUuIGV4YW1wbGUgbm9uLXNwZWNpZmljLiBJIGNvdWxkIHRoaW5rIG9mOg0KDQpJUCBMZWFmOiAg ICAgIFBhdGhsaXN0OiAgICAgICBJUCBMZWFmOiAgICAgICAgICAgICAgICBQYXRobGlzdDoNCi0t LS0tLS0tICAgICAgLS0tLS0tLS0tICAgICAgIC0tLS0tLS0gICAgICAgICAgICAgICAgIC0tLS0t LS0tDQpCR1AgTkxSSSAtLS0+IEJHUCBOSDEgICAtLS0tPiBJR1AgSVAxIChCR1AgTkgxKSAgLS0t PiBJR1AgTkgxLCBJMSAgLS0tPiBBZGphY2VuY3kxDQogICAgICAgICAgICAgIEJHUCBOSGkgICAt LS4uLiAgICAgICAgICAgICAgICAgICAgICAgICBJR1AgTkhpLCBJaSAgLS0uLg0KICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwN CiAgICAgICAgICAgICAgICB2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2DQogICAgICAgICAgT3V0TGFiZWwgQXJyYXk6ICAgICAgICAgICAgICAgICAgICAgICAgICAg T3V0TGFiZWwgQXJyYXk6DQogICAgICAgICAgLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICBMIChOTFJJLCBOSDEpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMIChJUDEsIE5IMSkNCiAgICAgICAgICBMIChOTFJJLCBO SGkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMIChJUDEsIE5IaSkNCg0KDQotIEZpZ3Vy ZSAxIGNvdWxkIGJlIGVuaGFuY2VkIHdpdGggSUdQLU5IMSwgSUdQLU5IMiwgSTEgYW5kIEkyLg0K LSBFeGFtcGxlIDMgZG9lcyBub3QgdXNlIHRoZSBzYW1lIG5hbWluZyBjb252ZW50aW9uIHRoYW4g ZXhhbXBsZXMgMSBhbmQgMiwgdGhpcyBtYWtlIGl0IGhhcmRlciB0byBmb2xsb3cgZm9yIGEgcHJp b3JpIG5vIHJlYXNvbi4gZS5nLiBWUE4gbGFiZWxzIGFyZSBuYW1lZCBWUE4tTDExIGluIGV4YW1w bGVzIDEgYW5kIDIsIGJ1dCBhcmUgbmFtZWQgVlBOLVBFMjEoUDEpIGluIGV4bWFwbGUgMzsgdHJh bnNwb3J0IGxhYmVscyBhcmUgbmFtZWQgTERQLUwxMiBpbiBleG1hcGxlcyAxIGFuZCAyLCBidXQg TEFTQlIxMShQRTIyKSBhbmQgTDExIGluIGZpZ3VyZSAzLg0KLSDCpzIuMy4zDQoiVGhlIGxvY2Fs IGxhYmVscyBvZiB0aGUgbmV4dCBob3BzIi4NCiAtIEFsbCBsYWJlbHMgYXJlIGxvY2FsbHkgYXNz aWduZWQuIFNvIHdoYXQgZG8geW91IG1lYW4gYnkgImxvY2FsIg0KLSAibmV4dC1ob3AiIHNvbWV0 aW1lcyByZWZlcnMgdG8gSUdQL2Nvbm5lY3RlZCBuZXh0LWhvcCAoYSBwcmlvcmkgdGhlIGNhc2Ug aGVyZSkgYW5kIHNvbWV0aW1lcyB0byBCR1AgbmV4dC1ob3AuIEkgZmluZCBpdCBoYXJkIHRvIGZv bGxvdy4gSSByYXRoZXIgdXNlIGEgZGlmZmVyZW50IG5hbWUgKGUuZzsgY29ubmVjdGVkIG5leHQt aG9wIHZzIEJHUCBuZXh0LWhvcCkNCi0gwqczDQoidGhlIGhhc2hpbmcgYXQgdGhlIEJHUCBsZXZl bCB5aWVsZHMgcGF0aCAwIHdoaWxlIHRoZSBoYXNoaW5nIGF0IHRoZSBJR1AgbGV2ZWwgeWllbGRz IHBhdGggMS4gSW4gdGhhdCBjYXNlLCB0aGUgcGFja2V0IHdpbGwgYmUgc2VudCBvdXQgb2YgaW50 ZXJmYWNlIEkxIHdpdGggdGhlIGxhYmVsIHN0YWNrICJMRFAtTDEyLFZQTi1MMjEiLg0KRG9lcyBu b3Qgc2VlbSB0byBtYXRjaCBteSB1bmRlcnN0YW5kaW5nLiBGb3IgIkxEUC1MMTIsVlBOLUwyMSIg SSB3b3VsZCBhc3N1bWUgQkdQIHVzZWQgcGF0aCBpbmRleCAxIGFuZCBJR1AgdXNlZCBwYXRoIGlu ZGV4IDAuDQoNCklNSE86DQpPTEQ6ICJIZW5jZSBBU0JSMjIgc3dhcHMgIkxBU0JSMjIoUEUyMiki IHdpdGggdGhlIExEUC9TUiBsYWJlbCBvZiBQRTIyLCBwdXNoZXMgdGhlIGxhYmVsIG9mIHRoZSBu ZXh0LWhvcCB0b3dhcmRzIFBFMjIgaW4gZG9tYWluIDIsIGFuZCBzZW5kcyB0aGUgcGFja2V0IGFs b25nIHRoZSBzaG9ydGVzdCBwYXRoIHRvd2FyZHMgUEUyMi4iDQpORVc6ICJIZW5jZSBBU0JSMjIg c3dhcHMgIkxBU0JSMjIoUEUyMikiIHdpdGggdGhlIExEUC9TUiBsYWJlbCBmb3IgUEUyMiBhZHZl cnRpc2VkIGJ5IHRoZSBuZXh0LWhvcCB0b3dhcmRzIFBFMjIgaW4gZG9tYWluIDIsIGFuZCBzZW5k cyB0aGUgcGFja2V0IGFsb25nIHRoZSBzaG9ydGVzdCBwYXRoIHRvd2FyZHMgUEUyMi4iDQooaW4g YWxsIGNhc2VzICJzd2FwcyIgdGhlbiAicHVzaGVzIiB3b3VsZCBpbmNyZWFzZSB0aGUgbGFiZWwg c3RhY2sgYnkgMSwgd2hpY2ggaXMgbm90IHRoZSBjYXNlLikNCg0Kwqc0LjENCiJ0aGUgdXNlYWJs ZSBwYXRocyBpbiB0aGUgbG9hZGluZm8iDQpsb2FkaW5mbyBpcyBhIHByb3ByaWV0YXJ5IEZJQiBk YXRhc3RydWN0dXJlIHdoaWNoIGhhcyBub3QgYmVlbiBpbnRyb2R1Y2VkL2RlZmluZWQuIFlvdSBu ZWVkIHRvIGVpdGhlciByZW1vdmUgdGhhdCB0ZXJtIChpZiBwb3NzaWJsZSkgb3IgZGVmaW5lIGl0 IHNvbWV3aGVyZS4NCg0KIkhlbmNlIHRyYWZmaWMgcmVzdG9yYXRpb24gb2NjdXJzIHdpdGhpbiB0 aGUgdGltZSBmcmFtZSBvZiBJR1AgY29udmVyZ2VuY2UsIg0KYWdyZWUuDQouLi4iYW5kLCBmb3Ig bG9jYWwgbGluayBmYWlsdXJlLCB3aXRoaW4gdGhlIHRpbWVmcmFtZSBvZiBsb2NhbCBkZXRlY3Rp b24uIFRodXMgaXQgaXMgcG9zc2libGUgdG8gYWNoaWV2ZSBzdWItNTAgbXNlYyBjb252ZXJnZW5j ZSBhcyBkZXNjcmliZWQgaW4gWzEwXSBmb3IgbG9jYWwgbGluayBmYWlsdXJlIg0KSU1PLCB0aGlz IGlzIHJlc3RyaWN0ZWQgdG8gc3BlY2lmaWMgY2FzZXMuIGUuZy4gZXh0ZXJuYWwgKGVCR1ApIGxp bmsgZmFpbHVyZSwgRUNNUCBjYXNlLCBwb3NzaWJseSBJUCBGUlIuICBTbyBwb3NzaWJseQ0KT0xE OiBmb3IgbG9jYWwgbGluayBmYWlsdXJlLCB3aXRoaW4gdGhlIHRpbWVmcmFtZSBvZiBsb2NhbCBk ZXRlY3Rpb24uIFRodXMgaXQgaXMgcG9zc2libGUgdG8gYWNoaWV2ZSBzdWItNTAgbXNlYyBjb252 ZXJnZW5jZSBhcyBkZXNjcmliZWQgaW4gWzEwXSBmb3IgbG9jYWwgbGluayBmYWlsdXJlDQpORVc6 IGZvciBsb2NhbCBsaW5rIGZhaWx1cmUsIGFzc3VtaW5nIGEgYmFja3VwIHBhdGggaGFzIGJlZW4g cHJlY29tcHV0ZWQsIHdpdGhpbiB0aGUgdGltZWZyYW1lIG9mIGxvY2FsIGRldGVjdGlvbiAoZS5n LiA1MG1zKS4gRXhhbXBsZSBvZiBzb2x1dGlvbnMgcHJlY29tcHV0aW5nIGEgYmFja3VwIHBhdGgg YXJlIElQIEZSUiBbTEZBXSwgW1JMRkFdLCBbTVJUXSwgW1RJLUxGQV0gb3IgZUJHUCBwYXRoIGhh dmluZyBhIGJhY2t1cCBwYXRoIFsxMF0uDQoNCsKnNA0KSSB3b3VsZCBmaW5kIHVzZWZ1bCB0byBp bmRpY2F0ZSwgZm9yIGVhY2ggdHlwZSBvZiBmYWlsdXJlLCB0aGUgbnVtYmVyIG9mIGRhdGEtc3Ry dWN0dXJlIHRoYXQgbmVlZCB0byBiZSB1cGRhdGVkLg0KLS0tDQrCpzQuMi4yDQoiVG8gYXZvaWQg bG9vcHMsIGVQRTIgTVVTVCB0cmVhdCBhbnkgY29yZSBmYWNpbmcgcGF0aCBhcyBhIGJhY2t1cA0K ICAgICAgcGF0aCwgb3RoZXJ3aXNlIGVQRTIgbWF5IHJlZGlyZWN0IHRyYWZmaWMgYXJyaXZpbmcg ZnJvbSB0aGUgY29yZQ0KICAgICAgYmFjayB0byBlUEUxIGNhdXNpbmcgYSBsb29wLiINCg0KTG9v a3MgYSBiaXQgdW5kZXItZGVzY3JpYmVkIHRvIG1lLiBDb3VsZCB5b3UgcGxlYXNlIGVsYWJvcmF0 ZSBhIGJpdD8gSW4gcGFydGljdWxhcjoNCi0gaWYgMiBQRSAoUEUxLCBQRTIpIGFyZSBjb25uZWN0 ZWQgaW4gVSB0byAyIFAgKFAxLCBQMikgICAgIChQMS1QRTEtUEUyLVAyKSwgUEUxIGJlaW5nIG5v bWluYWwgYW5kIFBFMiBvbmx5IHVzZWQgaW4gYmFja3VwLCBpbiB0aGUgbm9taW5hbCBzaXR1YXRp b24sIGlmIHRoZSBjb3JlIG5ldHdvcmsgc2VuZHMgdGhlIHRyYWZpYyB0byBQRTEgdmlhIFBFMiAo dXNlZCBhcyBhIFAvdHJhbnNpdCksIGhvdyBkb2VzIFBFMiBrbm93IHRoYXQgaXQgbXVzdCBzZW5k IHRoaXMgdHJhZmZpYyB0byBQRTE/IChyYXRoZXIgdGhhbiBDRTIpDQotIHRoaXMgYmVoYXZpb3Ig bG9va3MgbGlrZSBhbiBhZGRpdGlvbmFsIHNwZWNpZmljIGZlYXR1cmUuIEhvdyBkb2V3IGVQRTEg a25vd3MgdGhhdCBlUEUyIGhhdmUgdGhpcyBmZWF0dXJlPw0KLS0tDQrCpzQuMw0KIiAgSGVuY2Ug aWYgdGhlIHBsYXRmb3JtIHN1cHBvcnRzIHRoZSAidW5mbGF0dGVuZWQiIGZvcndhcmRpbmcgY2hh aW4sDQogICB0aGVuIGEgc2luZ2xlIHBhdGhsaXN0IG5lZWRzIHRvIGJlIHVwZGF0ZWQgd2hpbGUg aWYgdGhlIHBsYXRmb3JtDQogICBzdXBwb3J0cyBhIHNoYWxsb3dlciBmb3J3YXJkaW5nIGNoYWlu LCB0aGVuIHR3byBwYXRobGlzdHMgbmVlZCB0byBiZQ0KICAgdXBkYXRlZC4iDQpJSU5NICJzaW5n bGUiICBhbmQgInR3byIgcGF0aGxpc3QgYXBwbGllcyB0byB0aGUgc3BlY2lmaWMgZXhhbXBsZS4g SW4gdGhpcyBsYXN0IHNlbnRlbmNlL3N1bW1hcnksIEknZCBwcmVmZXIgYSBtb3JlIGdlbmVyYWwg c3RhdGVtZW50LiBBIHByaW9yaSwgd2l0aG91dCBkaWdnaW5nIHRvbyBtdWNoIGluIHRoaXMgbW9z dCBjb21wbGV4IHVzZSBjYXNlLCBpdCBzZWVtcyBsaWtlIDpzL3NpbmdsZS9vKDEpICA6cy90d28v byhQRSkgLiBUaGUgZm9ybWVyIGxvb2tzIGNsb3NlIChzaW5nbGUgdnMgbygxKSkgYnV0IElNSE8g dGhlcmUgaXMgYSBzaWduaWZpY2FudCBkaWZmZXJlbmNlIGJldHdlZW4gMiBhbmQgbyhQRSkgKGku ZS4gMTAwcykNCi0tLQ0Kwqc1LjENCkdvb2QgcGFyYWdyYXBoLiBJdCdzIHF1aXRlIGNsZWFyIHRo YXQgdGhlIGNvbnZlcmdlbmNlIHRpbWUgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBudW1iZXIgb2Yg QkdQIHByZWZpeGVzLCB3aGljaCBpcyBnb29kLiBGb3IgdGhlIGJlbmVmaXQgb2YgdGhlIHJlYWRl ciwgaXQgd291bGQgYmUgZXZlbiBtb3JlIGludGVyZXN0aW5nIGlmLCBmb3IgZWFjaCB0eXBlIG9m IGZhaWx1cmUsIHRoZSB0ZXh0IGNvdWxkIGluZGljYXRlIG9uIHdoYXQgaXQgZGVwZW5kcy4gZS5n LiAgbygxKSwgbyhjb25uZWN0ZWQgaW50ZXJmYWNlcyksIG8oUEUpLCBvKFBFbm9taW5hbCpQRWJh Y2t1cCkuLi4uDQotLQ0Kwqc3DQoiTm8gYWRkaXRpb25hbCBzZWN1cml0eSByaXNrIGlzIGludHJv ZHVjZWQgYnkgdXNpbmcgdGhlIG1lY2hhbmlzbXMgcHJvcG9zZWQgaW4gdGhpcyBkb2N1bWVudCIN CkluIGdlbmVyYWwsIHdpdGggc3VjaCBhIHNlbnRlbmNlLCBpdCdzIGRpZmZpY3VsdCB0byBldmFs dWF0ZSB3aGV0aGVyIHRoZSBhdXRob3JzIGhhdmUgdmVyeSBxdWlja2x5IGV2YWx1YXRlZCB0aGUg cmlzayBvciBpZiB0aGlzIGV2YWx1YXRpb24gaGFzIGJlZW4gcGVyZm9ybWVkIGluIGRldGFpbHMu IFNvIGluIGdlbmVyYWwsIHNvbWUgbW9yZSB0ZXh0IGRldGFpbGluZyB3aGljaCBhc3BlY3RzIGhh dmUgYmVlbiBldmFsdWF0ZWQgaXMgaW50ZXJlc3RpbmcgZm9yIHRoZSByZWFkZXIgKHlldCBwYWlu ZnVsIGZvciB0aGUgYXV0aG9ycykuDQpBcyB0aGUgZG9jdW1lbnQgZGVzY3JpYmUgYW4gaW50ZXJu YWwgYm94IGJlaGF2aW9yLCB0aGlzIGlzIGRpZmZpY3VsdCB0byBldmFsdWF0ZSBhbmQgZGlzY3Vz cy4gQnV0IGZyb20gYSBiYWQgZXhwZXJpZW5jZSwgSSBmZWFyIHRoYXQgdGhlcmUgbWF5IGJlIGFu IGltcGFjdC4gSW5kZWVkLCB3aXRoIHN1Y2ggc3RydWN0dXJlLCB0aGUgRklCIHN0cnVjdHVyZS9t ZW1vcnkgaXMgdHlwaWNhbGx5IGRpZmZlcmVudCBiZXR3ZWVuIEJHUCBwcmVmaXhlcyBhbmQgSUdQ IHByZWZpeGVzLiBJbiBnZW5lcmFsLCB0aGUgaW1wbGVtZW50YXRpb24gaXMgZGVzaWduZWQgdG8g c3VwcG9ydCB0aGUgInJpZ2h0IiBudW1iZXJzIG9mIGJvdGguIEJ1dCBhc3N1bWluZyBhbiBhY2Np ZGVudCBvciBhbiBhdHRhY2ssIHRoZSBudW1iZXJzIG1heSBub3QgYmUgInJpZ2h0Ii4gZS5nLiBv bmUgdXBvbiBhIHRpbWUsIHNvbWVvbmUgaGFzIHJlZGlzdHJpYnV0ZWQgdGhlIEJHUCB0YWJsZSBp bnRvIHRoZSBJR1AuIEluIHRoaXMgY2FzZSwgdGhlIHRvdGFsIG51bWJlciBvZiBJUCBwcmVmaXhl cyBpbiB0aGUgRklCIGlzIGV4YWN0bHkgdGhlIHNhbWUuIEJ1dCBhcyB0aGUgZGF0YSBzdHJ1Y3R1 cmUgdXNlZCBpbiB0aGUgRklCIHdhcyBkaWZmZXJlbnQgYmV0d2VlbiBCR1AgYW5kIElHUCBwcmVm aXhlcywgdGhlIEZJQiByYW4gb3V0IG9mIG1lbW9yeSBhbmQgdGhlIGxpbmUgY2FyZCBjcmFzaGVk ICh3ZWxsIGFjdHVhbGx5IG9ubHkgdGhlIElQIEZJQiwgc28gSVMtSVMgaGVsbG8gcGFja2V0IHdl cmUgc3RpbGwgY29ycmVjdGx5IHNlbnQgYW5kIGZvcndhcmRlZC4gQXMgYSByZXN1bHQsIHRyYWZm aWMgd2FzIHBlcm1hbmVudGx5IGJsYWNrIGhvbGVkKQ0KLS0tDQrCpyA5DQpPTEQ6IHRoYXQgYWxs b3dzIGFjaGlldmluZyBwcmVmaXggaW5kZXBlbmRlbnQgY29udmVyZ2VuY2UNCk5FVzogdGhhdCBh bGxvd3MgYWNoaWV2aW5nIEJHUCBwcmVmaXhlcyBpbmRlcGVuZGVudCBjb252ZXJnZW5jZQ0KDQoo aXQncyBzdGlsbCBkZXBlbmQgb24gdGhlIG51bWJlciBvZiBJR1AgcHJlZml4ZXMgYW5kL29yIEJH UCBwYXRobGlzdCkNCg0KTml0czoNCg0KQWJzdHJhY3QNCiJ2aWEgbW9yZSB0aGFuIG9uZSBwYXRo LiINCkluIHRoaXMgMXJzdCBzZW50ZW5jZSwgaXQncyBub3QgY2xlYXIgd2hhdCBwYXRoIHJlYWxs eSBtZWFucy4gKGUuZyBjZiB0aGUgdGVybWlub2xvZ3kgc2VjdGlvbiB3aGVyZSB5b3UgaGF2ZSBt b3JlIHRoYW4gb25lKS4gSSBndWVzcyB0aGF0IHlvdSBtZWFuICJCR1AgcGF0aCIuIChhcyB0aGVy ZSBhcmUgYWxzbyB0eXBpY2FsbHkgbXVsdGlwbGUgSUdQIHBhdGggdG8gcmVhY2ggZWFjaCBCR1Ag TmV4dCBIb3ApDQoNCiJUaGUgb2JqZWN0aXZlIGlzIGFjaGlldmVkIHRocm91Z2ggb3JnYW5pemlu ZyB0aGUgZm9yd2FyZGluZyBjaGFpbnMiDQoiY2hhaW4iIGRvZXMgbm90IHNlbGYgc2VsZiBleHBs aWNpdCB0byBtZS4gd2hhdCBhYm91dCA6cy9jaGFpbnMvZGF0YSBzdHJ1Y3R1cmUiDQoNCiJjb21w bGV0ZSB0cmFuc3BhcmVuY3kiDQp3aGF0IGRvIHlvdSBtZWFuPyB0cmFuc3BhcmVuY3kgdG8gd2hh dCAvIGZyb20gd2hvPw0KwqcxDQpPTEQ6IHRvIGFsbG93IGZvciBtb3JlIHRoYW4gb25lIHBhdGgg Zm9yIGEgZ2l2ZW4gcHJlZml4DQpORVc6IHRvIGFsbG93IGZvciBCR1AgdG8gYWR2ZXJ0aXNlIG1v cmUgdGhhbiBvbmUgcGF0aCBmb3IgYSBnaXZlbiBwcmVmaXgNCg0KT0xEOiBBbm90aGVyIG1vcmUg Y29tbW9uIGFuZCB3aWRlbHkgZGVwbG95ZWQgc2NlbmFyaW8gaXMgTDNWUE4gd2l0aCBtdWx0aS1o b21lZCBWUE4gc2l0ZXMNCk5FVzogQW5vdGhlciBtb3JlIGNvbW1vbiBhbmQgd2lkZWx5IGRlcGxv eWVkIHNjZW5hcmlvIGlzIEwzVlBOIHdpdGggbXVsdGktaG9tZWQgVlBOIHNpdGVzIHdpdGggdW5p cXVlIFJvdXRlIERpc3Rpbmd1aXNoZXIuDQoNCi0tLQ0KwqcxLjINCiJQYXRobGlzdDogSXQgaXMg YW4gYXJyYXkgb2YgcGF0aHMiDQoiT3V0TGFiZWwtQXJyYXk6IFRoZSBPdXRMYWJlbC1BcnJheSBp cyBhIGxpc3Qgb2Ygb25lIG9yIG1vcmUgb3V0Z29pbmcgbGFiZWxzICINCg0KU28gYSBsaXN0IGlz IGRlZmluZWQgYXMgYW4gYXJyYXkgYW5kIHRoZSBhcnJheSBpcyBkZWZpbmVkIGFzIGEgbGlzdCA6 LSkuDQpXaGF0IGFib3V0IHVzaW5nIHRoZSBzYW1lIHRlcm0sIGUuZy4gYSBsaXN0Pw0KLS0NClRo ZSBPdXRMYWJlbC1BcnJheSBpcyBhIGxpc3Qgb2Ygb25lIG9yIG1vcmUNCiAgICAgIG91dGdvaW5n IGxhYmVscyBhbmQvb3IgbGFiZWwgYWN0aW9ucyB3aGVyZSBlYWNoIGxhYmVsIG9yIGxhYmVsDQog ICAgICBhY3Rpb24gaGFzIDEtdG8tMSBjb3JyZXNwb25kZW5jZSB0byBhIHBhdGggaW4gdGhlIHBh dGhsaXN0LiBJdA0KICAgICAgaXMgcG9zc2libGUgdGhhdCB0aGUgbnVtYmVyIG9mIGVudHJpZXMg aW4gdGhlIE91dExhYmVsLWFycmF5IGlzDQogICAgICBkaWZmZXJlbnQgZnJvbSB0aGUgbnVtYmVy IG9mIHBhdGhzIGluIHRoZSBwYXRobGlzdCBhbmQgdGhlIGl0aA0KICAgICAgT3V0bGFiZWwtQXJy YXkgZW50cnkgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwYXRoIHdob3NlIHBhdGgtDQogICAgICBp bmRleCBpcyAiaSIuDQoNCi0gSSBkb24ndCBzZWUgaG93IG9uZSBjYW4gaGF2ZSBhIDEtdG8tMSBj b3JyZXNwb25kYW5jZSBpZiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGlzIG5vdCB0aGUgc2FtZS4N Ci0gTGFzdCBzZW50ZW5jZSBjb3VsZCBiZSBzcGxpdHRlZCBpbiAyLg0KLS0NClNpbmNlIHRoZSB0 ZXJtIGluZ3JlcyBQRSBpcyBkZWZpbmVkLCB5b3UgY291bGQgYWxzbyBkZXRpbmUgdGhlIHRlcm0g ZWdyZXNzIFBFLiBQb3NzaWJseSBpbiB0aGUgc2FtZSBzZW50ZW5jZS4NCk9MRDogIkluZ3Jlc3Mg UEUsICJpUEUiOiBJdCBpcyBhIEJHUCBzcGVha2VyIHRoYXQgbGVhcm5zIGFib3V0IGENCiAgICAg IHByZWZpeCB0aHJvdWdoIGFub3RoZXIgSUJHUCBwZWVyIGFuZCBjaG9vc2VzIHRoYXQgSUJHUCBw ZWVyIGFzDQogICAgICB0aGUgbmV4dC1ob3AgZm9yIHRoZSBwcmVmaXgNCg0KTkVXOiAgICAgICJJ bmdyZXNzIFBFLCAiaVBFIjogSXQgaXMgYSBCR1Agc3BlYWtlciB0aGF0IGxlYXJucyBhYm91dCBh DQogICAgICBwcmVmaXggdGhyb3VnaCBhIElCR1AgcGVlciBhbmQgY2hvb3NlcyBhbiBlZ3Jlc3Mg UEUgYXMgdGhlIG5leHQtaG9wIGZvciB0aGUgcHJlZml4Lg0KDQpBcyBhIHNpZGUgbm90ZSwgdGhl IHByZXZpb3VzIGRlZmluaXRpb24gYXNzdW1lIHRoYXQgdGhlcmUgd2VyZSBubyBSb3V0ZSBSZWxm ZWN0b3IgKHRoZSBpQkdQIHBlZXIgaXMgdGhlIEJHUCBOZXh0IEhvcCkNCi0tDQrCpzIuMw0KRmln dXJlIDEgcmVwcmVzZW50cyBhIFZQTiBuZXR3b3JrIHdpdGggMyBQRSBhbmQgYSBDRS4gSW4gdGhp cyBjb250ZXh0LCAiVlBOLVAxIiBzb3VuZHMgYSBiaXQgbGlrZSBhIFAgcm91dGVyLiBXaGF0IGFi b3V0IDpzL1ZQTi1QMS9WUE4tSVAxICA/IFNhbWUgY29tbWVudCBmb3IgSUdQLVAxLg0KLS0NCsKn Mi4zLjINCk9MRDogZVBFMiBjb25zdHJ1Y3RzIHRoZSBmb3J3YXJkaW5nIGNoYWluIGRlcGljdGVk IGluIEZpZ3VyZSAxDQpORVc6IGVQRTIgY29uc3RydWN0cyB0aGUgZm9yd2FyZGluZyBjaGFpbiBk ZXBpY3RlZCBpbiBGaWd1cmUgMw0KDQpPTEQ6IFZQTC1MMTENCk5FVzogVlBOLUwxMQ0KDQrCpzIu My4zDQpPTEQ6IGNhbiByZWFjaCBBU0JSMQ0KTkVXOiBjYW4gcmVhY2ggQVNCUjExDQoNCk9MRDog VGhlIGxhYmVsIGZvciBhZHZlcnRpc2VkIGJ5IEFTQlIxMSB0byBpUEUNCk5FVzogVGhlIGxhYmVs IGFkdmVydGlzZWQgYnkgQVNCUjExIHRvIGlQRQ0KDQpPTEQ6IFRoZSBsYWJlbHMgZm9yIGFkdmVy dGlzZWQgYnkgQVNCUjEyIHRvIGlQRQ0KTkVXOiBUaGUgbGFiZWxzIGFkdmVydGlzZWQgYnkgQVNC UjEyIHRvIGlQRQ0KDQpPTEQ6IFRoZSBsYWJlbHMgZm9yIGFkdmVydGlzZWQgdG8gaVBFIGJ5IEFT QlIxMSB1c2luZyBCR1AtTFUNCk5FVzogVGhlIGxhYmVscyBhZHZlcnRpc2VkICBieSBBU0JSMTEg dG8gaVBFIHVzaW5nIEJHUC1MVQ0KLS0tDQrCpzMNCg0KT0xEOiBMZXQncyBhcHBseWluZyB0aGUg YWJvdmUgZm9yd2FyZGluZyBzdGVwcyB0byB0aGUgZXhhbXBsZSBkZXNjcmliZWQgaW4gRmlndXJl IDEgU2VjdGlvbiAyLjMuMS4NCk9MRDogTGV0J3MgYXBwbHlpbmcgdGhlIGFib3ZlIGZvcndhcmRp bmcgc3RlcHMgdG8gdGhlIGV4YW1wbGUgZGVzY3JpYmVkIGluIEZpZ3VyZSAyIFNlY3Rpb24gMi4z LjEuDQoNCihzb21ld2hhdCBndWVzc3NpbmcuIEJ1dCBpbiBhbGwgY2FzZXMsIHRoZXJlIGlzIG5v IGZpZ3VyZSAxIGluIHNlY3Rpb24gMi4zLjEpDQoNCi0tLQ0Kwqc0LjENCklNTw0KT0xEOiBBcyBz b29uIGFzIHRoZSBJR1AgY29udmVyZ2VuY2UgaXMgZWZmZWN0aXZlIGZvciB0aGUgQkdQIG5ob3Ag ZW50cnksIHRoZSBuZXcgZm9yd2FyZGluZyBzdGF0ZSBpcyBpbW1lZGlhdGVseSBhdmFpbGFibGUg dG8gYWxsIGRlcGVuZGVudCBCR1AgcHJlZml4ZXMuDQpORVc6IEFzIHNvb24gYXMgdGhlIElHUCBj b252ZXJnZW5jZSBpcyBlZmZlY3RpdmUgZm9yIGEgQkdQIG5leHQtaG9wIGVudHJ5LCB0aGUgbmV3 IGZvcndhcmRpbmcgc3RhdGUgaXMgaW1tZWRpYXRlbHkgYXZhaWxhYmxlIHRvIGFsbCBkZXBlbmRl bnQgQkdQIHByZWZpeGVzLg0KDQptb3JlIGdlbmVyYWxseQ0KOnMvbmhvcC9uZXh0LWhvcA0KLS0t DQrCpzQuMw0KOnMvUEUyMjIvUEUyMg0KDQpCZXN0IHJlZ2FyZHMsDQpCcnVubw0KDQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwoKQ2UgbWVzc2FnZSBldCBzZXMgcGllY2VzIGpvaW50ZXMgcGV1dmVudCBjb250ZW5pciBkZXMg aW5mb3JtYXRpb25zIGNvbmZpZGVudGllbGxlcyBvdSBwcml2aWxlZ2llZXMgZXQgbmUgZG9pdmVu dCBkb25jCnBhcyBldHJlIGRpZmZ1c2VzLCBleHBsb2l0ZXMgb3UgY29waWVzIHNhbnMgYXV0b3Jp c2F0aW9uLiBTaSB2b3VzIGF2ZXogcmVjdSBjZSBtZXNzYWdlIHBhciBlcnJldXIsIHZldWlsbGV6 IGxlIHNpZ25hbGVyCmEgbCdleHBlZGl0ZXVyIGV0IGxlIGRldHJ1aXJlIGFpbnNpIHF1ZSBsZXMg cGllY2VzIGpvaW50ZXMuIExlcyBtZXNzYWdlcyBlbGVjdHJvbmlxdWVzIGV0YW50IHN1c2NlcHRp YmxlcyBkJ2FsdGVyYXRpb24sCk9yYW5nZSBkZWNsaW5lIHRvdXRlIHJlc3BvbnNhYmlsaXRlIHNp IGNlIG1lc3NhZ2UgYSBldGUgYWx0ZXJlLCBkZWZvcm1lIG91IGZhbHNpZmllLiBNZXJjaS4KClRo aXMgbWVzc2FnZSBhbmQgaXRzIGF0dGFjaG1lbnRzIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBv ciBwcml2aWxlZ2VkIGluZm9ybWF0aW9uIHRoYXQgbWF5IGJlIHByb3RlY3RlZCBieSBsYXc7CnRo ZXkgc2hvdWxkIG5vdCBiZSBkaXN0cmlidXRlZCwgdXNlZCBvciBjb3BpZWQgd2l0aG91dCBhdXRo b3Jpc2F0aW9uLgpJZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGVtYWlsIGluIGVycm9yLCBwbGVh c2Ugbm90aWZ5IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSB0aGlzIG1lc3NhZ2UgYW5kIGl0cyBhdHRh Y2htZW50cy4KQXMgZW1haWxzIG1heSBiZSBhbHRlcmVkLCBPcmFuZ2UgaXMgbm90IGxpYWJsZSBm b3IgbWVzc2FnZXMgdGhhdCBoYXZlIGJlZW4gbW9kaWZpZWQsIGNoYW5nZWQgb3IgZmFsc2lmaWVk LgpUaGFuayB5b3UuCgo= --_000_53C29892C857584299CBF5D05346208A0F8761E1OPEXCLILM21corp_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9DQovKiBTdHlsZSBEZWZp bml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXtt YXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0K CWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJbXNvLWZhcmVhc3QtbGFuZ3Vh Z2U6RU4tVVM7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXttc28tc3R5bGUtcHJpb3Jp dHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCmE6dmlz aXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7 DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KcA0KCXttc28t c3R5bGUtcHJpb3JpdHk6OTk7DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJp Z2h0OjBjbTsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowY207 DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2Vy aWYiO30NCnNwYW4uRW1haWxTdHlsZTE3DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLWNvbXBv c2U7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjsNCgljb2xvcjp3aW5kb3d0 ZXh0O30NCnNwYW4uaWNvbg0KCXttc28tc3R5bGUtbmFtZTppY29uO30NCi5Nc29DaHBEZWZhdWx0 DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwi c2Fucy1zZXJpZiI7DQoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQ0KQHBhZ2UgV29yZFNl Y3Rpb24xDQoJe3NpemU6NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3MC44NXB0IDcwLjg1cHQg NzAuODVwdCA3MC44NXB0O30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7 fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMg djpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lm IGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFw IHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlm XS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRlIiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUi Pg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwPjxzcGFuIGxhbmc9IkVOLVVTIj5IZWxs bywgPG86cD48L286cD48L3NwYW4+PC9wPg0KPHA+PHNwYW4gbGFuZz0iRU4tVVMiPkkgaGF2ZSBi ZWVuIHNlbGVjdGVkIGFzIHRoZSBSb3V0aW5nIERpcmVjdG9yYXRlIHJldmlld2VyIGZvciB0aGlz IGRyYWZ0LiBUaGUgUm91dGluZyBEaXJlY3RvcmF0ZSBzZWVrcyB0byByZXZpZXcgYWxsIHJvdXRp bmcgb3Igcm91dGluZy1yZWxhdGVkIGRyYWZ0cyBhcyB0aGV5IHBhc3MgdGhyb3VnaCBJRVRGIGxh c3QgY2FsbCBhbmQgSUVTRyByZXZpZXcsIGFuZCBzb21ldGltZXMgb24gc3BlY2lhbCByZXF1ZXN0 Lg0KIFRoZSBwdXJwb3NlIG9mIHRoZSByZXZpZXcgaXMgdG8gcHJvdmlkZSBhc3Npc3RhbmNlIHRv IHRoZSBSb3V0aW5nIEFEcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFJvdXRpbmcg RGlyZWN0b3JhdGUsIHBsZWFzZSBzZWUNCjwvc3Bhbj48YSBocmVmPSJodHRwOi8vdHJhYy50b29s cy5pZXRmLm9yZy9hcmVhL3J0Zy90cmFjL3dpa2kvUnRnRGlyIj48c3BhbiBjbGFzcz0iaWNvbiI+ PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjpibHVlIj7igIs8L3NwYW4+PC9zcGFuPjxz cGFuIGxhbmc9IkVOLVVTIj5odHRwOi8vdHJhYy50b29scy5pZXRmLm9yZy9hcmVhL3J0Zy90cmFj L3dpa2kvUnRnRGlyPC9zcGFuPjwvYT4NCjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwv c3Bhbj48L3A+DQo8cD48c3BhbiBsYW5nPSJFTi1VUyI+QWx0aG91Z2ggdGhlc2UgY29tbWVudHMg YXJlIHByaW1hcmlseSBmb3IgdGhlIHVzZSBvZiB0aGUgUm91dGluZyBBRHMsIGl0IHdvdWxkIGJl IGhlbHBmdWwgaWYgeW91IGNvdWxkIGNvbnNpZGVyIHRoZW0gYWxvbmcgd2l0aCBhbnkgb3RoZXIg SUVURiBMYXN0IENhbGwgY29tbWVudHMgdGhhdCB5b3UgcmVjZWl2ZSwgYW5kIHN0cml2ZSB0byBy ZXNvbHZlIHRoZW0gdGhyb3VnaCBkaXNjdXNzaW9uIG9yIGJ5IHVwZGF0aW5nDQogdGhlIGRyYWZ0 LiA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cD48c3BhbiBsYW5nPSJFTi1VUyI+RG9jdW1lbnQ6 IGRyYWZ0LWlldGYtcnRnd2ctYmdwLXBpYy0wMDxicj4NClJldmlld2VyOiBCcnVubyBEZWNyYWVu ZSA8YnI+DQpJRVRGIExDIEVuZCBEYXRlOiDigJxRQSByZXZpZXfigJ0gcHJlIFdHIExDIDxicj4N CkludGVuZGVkIFN0YXR1czogSW5mb3JtYXRpb25hbDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw PjxzdHJvbmc+PHNwYW4gbGFuZz0iRU4tVVMiPlN1bW1hcnk6PC9zcGFuPjwvc3Ryb25nPjxzcGFu IGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBsYW5nPSJFTi1VUyI+SSBoYXZlIHNvbWUgbWlub3IgY29uY2VybnMgYWJvdXQgdGhp cyBkb2N1bWVudCB0aGF0IEkgdGhpbmsgc2hvdWxkIGJlIHJlc29sdmVkIGJlZm9yZSBwdWJsaWNh dGlvbi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cD48c3Ryb25nPjxzcGFuIGxhbmc9IkVOLVVT Ij5Db21tZW50czo8L3NwYW4+PC9zdHJvbmc+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+PC9vOnA+ PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4tIERv Y3VtZW50IGlzIGludGVyZXN0aW5nLiBEb2N1bWVudCBpcyByZWxhdGl2ZWx5IGNsZWFyIGJ1dCBz b21ldGltZSBpdCBmZWVscyBsaWtlIHRoZXJlIGlzIGEgbGl0dGxlIHJvb20gZm9yIHNvbWUgcmVm b3JtdWxhdGlvbi9lZGl0aW9uIHRvIGltcHJvdmUgZmx1aWRpdHkuIEluIHBhcnRpY3VsYXIsIHRo ZSBsZWFybmluZyBjdXJ2ZSBpcyBhIGJpdCBzdGVlcCBhdCB0aGUgYmVnaW5uaW5nDQogb2YgdGhl IGRvYyBhcyBtb3N0IG9mIHRoZSBjb25jZXB0cyBhcmUgaW50cm9kdWNlZCBpbiAzIHBhZ2VzIChw YWdlcyA0LTYpIGluIHRoZSBmb3JtIG9mIGEgbGlzdCBvZiB0ZXJtaW5vbG9neSBhbmQgYSBwc2V1 ZG8gY29kZS4gSSB3b3VsZCBmaW5kIHVzZWZ1bCB0byBoYXZlIGFuIG92ZXJ2aWV3IHNlY3Rpb24g anVzdCBhZnRlciB0aGUgaW50cm9kdWN0aW9uLCB3aXRoIGEgaGlnaCBsZXZlbCB2aWV3IG9mIHRo ZSBzb2x1dGlvbiB3aXRoIGEgbGltaXRlZA0KIG51bWJlciBvZiBuZXcgdGVybXMuPG86cD48L286 cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0g VGhlIHRleHQgZmVlbHMgbGlrZSBhdXRob3JpdGF0aXZlLCB3aGlsZSBwcm9iYWJseSBtYW55IHRl cm1zIGFyZSBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYy4gQSBwcmlvcmksIEkgd291bGQgbm90IGV4 cGVjdCBhbGwgaW1wbGVtZW50YXRpb24gb2YgQkdQIFBJQyB0byB1c2UgdGhlIHNhbWUgdGVybXMs IGFuZCBwb3NzaWJseSBub3QgdGhlIHNhbWUgZGF0YSBzdHJ1Y3R1cmUuIE1heQ0KIGJlIHRoZSB0 ZXh0IGNvdWxkIGJlIGdlbmVyYWxpemVkIHRvIGNvdmVyIG11bHRpcGxlIGltcGxlbWVudGF0aW9u czsgb3IgbW9kaWZpZWQgdG8gZGVzY3JpYmUgYSBnZW5lcmFsaXplZCBjb25jZXB0IChpLmUuIGRh dGEtc3RydWN0dXJlIGRlc2lnbmVkIHRvIHNoYXJlIGFzIG11Y2ggZGF0YSBhcyBwb3NzaWJsZSBi ZXR3ZWVuIGVsZW1lbnRzLCBhdCB0aGUgY29zdCBvZiBhZGRpdGlvbmFsIGluZGlyZWN0aW9ucyk7 IG9yIHRoZSBkb2N1bWVudCBjb3VsZA0KIHN0YXRlIHRoYXQgaXQgZGVzY3JpYmVzIGEgc3BlY2lm aWMgaW1wbGVtZW50YXRpb24gd2l0aCBpbXBsZW1lbnRhdGlvbnMgc3BlY2lmaWMgdGVybWlub2xv Z3ksIGRhdGEgc3RydWN0dXJlLCBhbmQgc3BlY2lmaWNzLiBPciBhIGNvbWJpbmF0aW9uIG9mIGJv dGggKGUuZy4gYWRkaW5nIGEgc2VjdGlvbiBiZWluZyBib3RoIGdlbmVyYWxpemVkIGFuZCBkZXNj cmliaW5nIHRoZSBjb25jZXB0LCBhbmQgdGhlbiB0aGUgZXhpc3Rpbmcgc2VjdGlvbnMgYWZ0ZXIN CiBzdGF0aW5nIHRoYXQgdGhleSBhcmUgc3BlY2lmaWMgdG8gb25lIGltcGxlbWVudGF0aW9uKS48 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF Ti1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHN0cm9uZz48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv dDtzYW5zLXNlcmlmJnF1b3Q7Ij5NaW5vciBJc3N1ZXM6PC9zcGFuPjwvc3Ryb25nPjxzcGFuIGxh bmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0gSSBmaW5kIGZpZ3VyZSAyIHZlcnkgdXNl ZnVsIHRvIHVuZGVyc3RhbmQgdGhlIGRhdGEtc3RydWN0dXJlLiBJIHdvdWxkIG1vdmUgaXQgc29v bmVyIGluIHRoZSBkb2MsIHNvbWV3aGVyZSBiZWZvcmUgwqcyLjIuICh3aXRoIGl0cyBzdWJzZXF1 ZW50IHRleHQgYmVsb3cpIGUuZy4gYSBuZXcgwqcyLjIgJnF1b3Q7RklCIGRhdGEtc3RydWN0dXJl JnF1b3Q7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g bGFuZz0iRU4tVVMiPkl0IHdvdWxkIG5lZWQgdG8gYmUgZ2VuZXJhbGl6ZWQgaS5lLiBleGFtcGxl IG5vbi1zcGVjaWZpYy4gSSBjb3VsZCB0aGluayBvZjo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48 L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxl PSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+SVAgTGVhZjombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgUGF0aGxpc3Q6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7IElQIExlYWY6Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BhdGhs aXN0OjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh bmc9IkVOLVVTIiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPi0t LS0tLS0tJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC0tLS0tLS0tLSZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAtLS0tLS0tJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IC0tLS0tLS0tPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtD b3VyaWVyIE5ldyZxdW90OyI+QkdQIE5MUkkgLS0tJmd0OyBCR1AgTkgxJm5ic3A7Jm5ic3A7IC0t LS0mZ3Q7IElHUCBJUDEgKEJHUCBOSDEpJm5ic3A7IC0tLSZndDsgSUdQIE5IMSwgSTEmbmJzcDsg LS0tJmd0OyBBZGphY2VuY3kxPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVy IE5ldyZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZv bnQtZmFtaWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij5CR1AgTkhpJm5ic3A7Jm5ic3A7IC0t Li4uJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IElHUCBOSGksIElpJm5ic3A7IC0tLi48 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5i c3A7PC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291 cmllciBOZXcmcXVvdDsiPnwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7fDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1mYW1pbHk6 JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfCZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyB8PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g bGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+ Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHwmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfDxvOnA+PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBz dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyB2Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHY8bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZvbnQtZmFt aWx5OiZxdW90O0NvdXJpZXIgTmV3JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgT3V0TGFiZWwgQXJyYXk6Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IE91dExhYmVsIEFycmF5OjxvOnA+PC9vOnA+PC9z cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0i Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAtLS0tLS0tLS0tLS0tLSZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAtLS0tLS0tLS0tLS0tLTxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO LVVTIiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBMIChOTFJJLCBO SDEpJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IEwgKElQMSwgTkgxKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcm cXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOw0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtDb3VyaWVyIE5ldyZx dW90OyI+TCAoTkxSSSwgTkhpKSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBMIChJUDEsIE5IaSk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgJm5ic3A7IDxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86 cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V UyI+LSBGaWd1cmUgMSBjb3VsZCBiZSBlbmhhbmNlZCB3aXRoIElHUC1OSDEsIElHUC1OSDIsIEkx IGFuZCBJMi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh biBsYW5nPSJFTi1VUyI+LSBFeGFtcGxlIDMgZG9lcyBub3QgdXNlIHRoZSBzYW1lIG5hbWluZyBj b252ZW50aW9uIHRoYW4gZXhhbXBsZXMgMSBhbmQgMiwgdGhpcyBtYWtlIGl0IGhhcmRlciB0byBm b2xsb3cgZm9yIGEgcHJpb3JpIG5vIHJlYXNvbi4gZS5nLiBWUE4gbGFiZWxzIGFyZSBuYW1lZCBW UE4tTDExIGluIGV4YW1wbGVzIDEgYW5kIDIsIGJ1dCBhcmUgbmFtZWQgVlBOLVBFMjEoUDEpIGlu IGV4bWFwbGUNCiAzOyB0cmFuc3BvcnQgbGFiZWxzIGFyZSBuYW1lZCBMRFAtTDEyIGluIGV4bWFw bGVzIDEgYW5kIDIsIGJ1dCBMQVNCUjExKFBFMjIpIGFuZCBMMTEgaW4gZmlndXJlIDMuDQo8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V UyI+LSDCpzIuMy4zPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHNwYW4gbGFuZz0iRU4tVVMiPiZxdW90O1RoZSBsb2NhbCBsYWJlbHMgb2YgdGhlIG5leHQgaG9w cyZxdW90Oy4gPG86cD4NCjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7LSBBbGwgbGFiZWxzIGFyZSBsb2NhbGx5IGFzc2lnbmVk LiBTbyB3aGF0IGRvIHlvdSBtZWFuIGJ5ICZxdW90O2xvY2FsJnF1b3Q7PG86cD48L286cD48L3Nw YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0gJnF1b3Q7 bmV4dC1ob3AmcXVvdDsgc29tZXRpbWVzIHJlZmVycyB0byBJR1AvY29ubmVjdGVkIG5leHQtaG9w IChhIHByaW9yaSB0aGUgY2FzZSBoZXJlKSBhbmQgc29tZXRpbWVzIHRvIEJHUCBuZXh0LWhvcC4g SSBmaW5kIGl0IGhhcmQgdG8gZm9sbG93LiBJIHJhdGhlciB1c2UgYSBkaWZmZXJlbnQgbmFtZSAo ZS5nOyBjb25uZWN0ZWQgbmV4dC1ob3AgdnMgQkdQIG5leHQtaG9wKTxvOnA+PC9vOnA+PC9zcGFu PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4tIMKnMzxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVT Ij4mcXVvdDt0aGUgaGFzaGluZyBhdCB0aGUgQkdQIGxldmVsIHlpZWxkcyBwYXRoIDAgd2hpbGUg dGhlIGhhc2hpbmcgYXQgdGhlIElHUCBsZXZlbCB5aWVsZHMgcGF0aCAxLiBJbiB0aGF0IGNhc2Us IHRoZSBwYWNrZXQgd2lsbCBiZSBzZW50IG91dCBvZiBpbnRlcmZhY2UgSTEgd2l0aCB0aGUgbGFi ZWwgc3RhY2sgJnF1b3Q7TERQLUwxMixWUE4tTDIxJnF1b3Q7LjxvOnA+PC9vOnA+PC9zcGFuPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5Eb2VzIG5vdCBzZWVt IHRvIG1hdGNoIG15IHVuZGVyc3RhbmRpbmcuIEZvciAmcXVvdDtMRFAtTDEyLFZQTi1MMjEmcXVv dDsgSSB3b3VsZCBhc3N1bWUgQkdQIHVzZWQgcGF0aCBpbmRleCAxIGFuZCBJR1AgdXNlZCBwYXRo IGluZGV4IDAuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw YW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5JTUhPOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5PTEQ6ICZxdW90O0hlbmNl IEFTQlIyMiBzd2FwcyAmcXVvdDtMQVNCUjIyKFBFMjIpJnF1b3Q7IHdpdGggdGhlIExEUC9TUiBs YWJlbCBvZiBQRTIyLCBwdXNoZXMgdGhlIGxhYmVsIG9mIHRoZSBuZXh0LWhvcCB0b3dhcmRzIFBF MjIgaW4gZG9tYWluIDIsIGFuZCBzZW5kcyB0aGUgcGFja2V0IGFsb25nIHRoZSBzaG9ydGVzdCBw YXRoIHRvd2FyZHMgUEUyMi4mcXVvdDsNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5ORVc6ICZxdW90O0hlbmNlIEFTQlIyMiBz d2FwcyAmcXVvdDtMQVNCUjIyKFBFMjIpJnF1b3Q7IHdpdGggdGhlIExEUC9TUiBsYWJlbCBmb3Ig UEUyMiBhZHZlcnRpc2VkIGJ5IHRoZSBuZXh0LWhvcCB0b3dhcmRzIFBFMjIgaW4gZG9tYWluIDIs IGFuZCBzZW5kcyB0aGUgcGFja2V0IGFsb25nIHRoZSBzaG9ydGVzdCBwYXRoIHRvd2FyZHMgUEUy Mi4mcXVvdDsNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz cGFuIGxhbmc9IkVOLVVTIj4oaW4gYWxsIGNhc2VzICZxdW90O3N3YXBzJnF1b3Q7IHRoZW4gJnF1 b3Q7cHVzaGVzJnF1b3Q7IHdvdWxkIGluY3JlYXNlIHRoZSBsYWJlbCBzdGFjayBieSAxLCB3aGlj aCBpcyBub3QgdGhlIGNhc2UuKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+wqc0LjE8bzpwPjwvbzpwPjwv c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+JnF1b3Q7 dGhlIHVzZWFibGUgcGF0aHMgaW4gdGhlIGxvYWRpbmZvJnF1b3Q7PG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPmxvYWRpbmZvIGlz IGEgcHJvcHJpZXRhcnkgRklCIGRhdGFzdHJ1Y3R1cmUgd2hpY2ggaGFzIG5vdCBiZWVuIGludHJv ZHVjZWQvZGVmaW5lZC4gWW91IG5lZWQgdG8gZWl0aGVyIHJlbW92ZSB0aGF0IHRlcm0gKGlmIHBv c3NpYmxlKSBvciBkZWZpbmUgaXQgc29tZXdoZXJlLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwv c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+JnF1b3Q7 SGVuY2UgdHJhZmZpYyByZXN0b3JhdGlvbiBvY2N1cnMgd2l0aGluIHRoZSB0aW1lIGZyYW1lIG9m IElHUCBjb252ZXJnZW5jZSwmcXVvdDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+YWdyZWUuPG86cD48L286cD48L3NwYW4+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi4uLiZxdW90O2FuZCwg Zm9yIGxvY2FsIGxpbmsgZmFpbHVyZSwgd2l0aGluIHRoZSB0aW1lZnJhbWUgb2YgbG9jYWwgZGV0 ZWN0aW9uLiBUaHVzIGl0IGlzIHBvc3NpYmxlIHRvIGFjaGlldmUgc3ViLTUwIG1zZWMgY29udmVy Z2VuY2UgYXMgZGVzY3JpYmVkIGluIFsxMF0gZm9yIGxvY2FsIGxpbmsgZmFpbHVyZSZxdW90Ozxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO LVVTIj5JTU8sIHRoaXMgaXMgcmVzdHJpY3RlZCB0byBzcGVjaWZpYyBjYXNlcy4gZS5nLiBleHRl cm5hbCAoZUJHUCkgbGluayBmYWlsdXJlLCBFQ01QIGNhc2UsIHBvc3NpYmx5IElQIEZSUi4mbmJz cDsgU28gcG9zc2libHk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBsYW5nPSJFTi1VUyI+T0xEOiBmb3IgbG9jYWwgbGluayBmYWlsdXJlLCB3aXRoaW4g dGhlIHRpbWVmcmFtZSBvZiBsb2NhbCBkZXRlY3Rpb24uIFRodXMgaXQgaXMgcG9zc2libGUgdG8g YWNoaWV2ZSBzdWItNTAgbXNlYyBjb252ZXJnZW5jZSBhcyBkZXNjcmliZWQgaW4gWzEwXSBmb3Ig bG9jYWwgbGluayBmYWlsdXJlPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPk5FVzogZm9yIGxvY2FsIGxpbmsgZmFpbHVyZSwgYXNz dW1pbmcgYSBiYWNrdXAgcGF0aCBoYXMgYmVlbiBwcmVjb21wdXRlZCwgd2l0aGluIHRoZSB0aW1l ZnJhbWUgb2YgbG9jYWwgZGV0ZWN0aW9uIChlLmcuIDUwbXMpLiBFeGFtcGxlIG9mIHNvbHV0aW9u cyBwcmVjb21wdXRpbmcgYSBiYWNrdXAgcGF0aCBhcmUgSVAgRlJSIFtMRkFdLCBbUkxGQV0sIFtN UlRdLCBbVEktTEZBXQ0KIG9yIGVCR1AgcGF0aCBoYXZpbmcgYSBiYWNrdXAgcGF0aCBbMTBdLiA8 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF Ti1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHNwYW4gbGFuZz0iRU4tVVMiPsKnNDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5JIHdvdWxkIGZpbmQgdXNlZnVsIHRvIGluZGlj YXRlLCBmb3IgZWFjaCB0eXBlIG9mIGZhaWx1cmUsIHRoZSBudW1iZXIgb2YgZGF0YS1zdHJ1Y3R1 cmUgdGhhdCBuZWVkIHRvIGJlIHVwZGF0ZWQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0tLTxvOnA+PC9vOnA+PC9zcGFuPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj7CpzQuMi4yPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi PiZxdW90O1RvIGF2b2lkIGxvb3BzLCBlUEUyIE1VU1QgdHJlYXQgYW55IGNvcmUgZmFjaW5nIHBh dGggYXMgYSBiYWNrdXA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHBhdGgs IG90aGVyd2lzZSBlUEUyIG1heSByZWRpcmVjdCB0cmFmZmljIGFycml2aW5nIGZyb20gdGhlIGNv cmU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n PSJFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGJhY2sgdG8gZVBFMSBjYXVz aW5nIGEgbG9vcC4mcXVvdDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ICZuYnNwOyA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh biBsYW5nPSJFTi1VUyI+TG9va3MgYSBiaXQgdW5kZXItZGVzY3JpYmVkIHRvIG1lLiBDb3VsZCB5 b3UgcGxlYXNlIGVsYWJvcmF0ZSBhIGJpdD8gSW4gcGFydGljdWxhcjo8bzpwPjwvbzpwPjwvc3Bh bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+LSBpZiAyIFBF IChQRTEsIFBFMikgYXJlIGNvbm5lY3RlZCBpbiBVIHRvIDIgUCAoUDEsIFAyKSZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyAoUDEtUEUxLVBFMi1QMiksIFBFMSBiZWluZyBub21pbmFsIGFuZCBQRTIg b25seSB1c2VkIGluIGJhY2t1cCwgaW4gdGhlIG5vbWluYWwgc2l0dWF0aW9uLCBpZiB0aGUgY29y ZSBuZXR3b3JrIHNlbmRzIHRoZSB0cmFmaWMgdG8gUEUxIHZpYSBQRTIgKHVzZWQgYXMgYSBQL3Ry YW5zaXQpLA0KIGhvdyBkb2VzIFBFMiBrbm93IHRoYXQgaXQgbXVzdCBzZW5kIHRoaXMgdHJhZmZp YyB0byBQRTE/IChyYXRoZXIgdGhhbiBDRTIpPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0gdGhpcyBiZWhhdmlvciBsb29rcyBs aWtlIGFuIGFkZGl0aW9uYWwgc3BlY2lmaWMgZmVhdHVyZS4gSG93IGRvZXcgZVBFMSBrbm93cyB0 aGF0IGVQRTIgaGF2ZSB0aGlzIGZlYXR1cmU/PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0tLTxvOnA+PC9vOnA+PC9zcGFuPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj7CpzQuMzxvOnA+PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4m cXVvdDsmbmJzcDsgSGVuY2UgaWYgdGhlIHBsYXRmb3JtIHN1cHBvcnRzIHRoZSAmcXVvdDt1bmZs YXR0ZW5lZCZxdW90OyBmb3J3YXJkaW5nIGNoYWluLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsmbmJzcDsgdGhlbiBh IHNpbmdsZSBwYXRobGlzdCBuZWVkcyB0byBiZSB1cGRhdGVkIHdoaWxlIGlmIHRoZSBwbGF0Zm9y bTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9 IkVOLVVTIj4mbmJzcDsmbmJzcDsgc3VwcG9ydHMgYSBzaGFsbG93ZXIgZm9yd2FyZGluZyBjaGFp biwgdGhlbiB0d28gcGF0aGxpc3RzIG5lZWQgdG8gYmU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8 cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7Jm5ic3A7IHVwZGF0 ZWQuJnF1b3Q7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw YW4gbGFuZz0iRU4tVVMiPklJTk0gJnF1b3Q7c2luZ2xlJnF1b3Q7Jm5ic3A7IGFuZCAmcXVvdDt0 d28mcXVvdDsgcGF0aGxpc3QgYXBwbGllcyB0byB0aGUgc3BlY2lmaWMgZXhhbXBsZS4gSW4gdGhp cyBsYXN0IHNlbnRlbmNlL3N1bW1hcnksIEknZCBwcmVmZXIgYSBtb3JlIGdlbmVyYWwgc3RhdGVt ZW50LiBBIHByaW9yaSwgd2l0aG91dCBkaWdnaW5nIHRvbyBtdWNoIGluIHRoaXMgbW9zdCBjb21w bGV4IHVzZSBjYXNlLCBpdCBzZWVtcyBsaWtlIDpzL3NpbmdsZS9vKDEpJm5ic3A7DQogOnMvdHdv L28oUEUpIC4gVGhlIGZvcm1lciBsb29rcyBjbG9zZSAoc2luZ2xlIHZzIG8oMSkpIGJ1dCBJTUhP IHRoZXJlIGlzIGEgc2lnbmlmaWNhbnQgZGlmZmVyZW5jZSBiZXR3ZWVuIDIgYW5kIG8oUEUpIChp LmUuIDEwMHMpPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw YW4gbGFuZz0iRU4tVVMiPi0tLTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj7CpzUuMTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5Hb29kIHBhcmFncmFwaC4gSXQn cyBxdWl0ZSBjbGVhciB0aGF0IHRoZSBjb252ZXJnZW5jZSB0aW1lIGRvZXMgbm90IGRlcGVuZCBv biB0aGUgbnVtYmVyIG9mIEJHUCBwcmVmaXhlcywgd2hpY2ggaXMgZ29vZC4gRm9yIHRoZSBiZW5l Zml0IG9mIHRoZSByZWFkZXIsIGl0IHdvdWxkIGJlIGV2ZW4gbW9yZSBpbnRlcmVzdGluZyBpZiwg Zm9yIGVhY2ggdHlwZSBvZiBmYWlsdXJlLCB0aGUNCiB0ZXh0IGNvdWxkIGluZGljYXRlIG9uIHdo YXQgaXQgZGVwZW5kcy4gZS5nLiZuYnNwOyBvKDEpLCBvKGNvbm5lY3RlZCBpbnRlcmZhY2VzKSwg byhQRSksIG8oUEVub21pbmFsKlBFYmFja3VwKS4uLi4mbmJzcDsmbmJzcDsNCjxvOnA+PC9vOnA+ PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4tLTxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO LVVTIj7Cpzc8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh biBsYW5nPSJFTi1VUyI+JnF1b3Q7Tm8gYWRkaXRpb25hbCBzZWN1cml0eSByaXNrIGlzIGludHJv ZHVjZWQgYnkgdXNpbmcgdGhlIG1lY2hhbmlzbXMgcHJvcG9zZWQgaW4gdGhpcyBkb2N1bWVudCZx dW90OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh bmc9IkVOLVVTIj5JbiBnZW5lcmFsLCB3aXRoIHN1Y2ggYSBzZW50ZW5jZSwgaXQncyBkaWZmaWN1 bHQgdG8gZXZhbHVhdGUgd2hldGhlciB0aGUgYXV0aG9ycyBoYXZlIHZlcnkgcXVpY2tseSBldmFs dWF0ZWQgdGhlIHJpc2sgb3IgaWYgdGhpcyBldmFsdWF0aW9uIGhhcyBiZWVuIHBlcmZvcm1lZCBp biBkZXRhaWxzLiBTbyBpbiBnZW5lcmFsLCBzb21lIG1vcmUgdGV4dCBkZXRhaWxpbmcgd2hpY2gN CiBhc3BlY3RzIGhhdmUgYmVlbiBldmFsdWF0ZWQgaXMgaW50ZXJlc3RpbmcgZm9yIHRoZSByZWFk ZXIgKHlldCBwYWluZnVsIGZvciB0aGUgYXV0aG9ycykuPG86cD48L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPkFzIHRoZSBkb2N1bWVudCBk ZXNjcmliZSBhbiBpbnRlcm5hbCBib3ggYmVoYXZpb3IsIHRoaXMgaXMgZGlmZmljdWx0IHRvIGV2 YWx1YXRlIGFuZCBkaXNjdXNzLiBCdXQgZnJvbSBhIGJhZCBleHBlcmllbmNlLCBJIGZlYXIgdGhh dCB0aGVyZSBtYXkgYmUgYW4gaW1wYWN0LiBJbmRlZWQsIHdpdGggc3VjaCBzdHJ1Y3R1cmUsIHRo ZSBGSUIgc3RydWN0dXJlL21lbW9yeSBpcyB0eXBpY2FsbHkNCiBkaWZmZXJlbnQgYmV0d2VlbiBC R1AgcHJlZml4ZXMgYW5kIElHUCBwcmVmaXhlcy4gSW4gZ2VuZXJhbCwgdGhlIGltcGxlbWVudGF0 aW9uIGlzIGRlc2lnbmVkIHRvIHN1cHBvcnQgdGhlICZxdW90O3JpZ2h0JnF1b3Q7IG51bWJlcnMg b2YgYm90aC4gQnV0IGFzc3VtaW5nIGFuIGFjY2lkZW50IG9yIGFuIGF0dGFjaywgdGhlIG51bWJl cnMgbWF5IG5vdCBiZSAmcXVvdDtyaWdodCZxdW90Oy4gZS5nLiBvbmUgdXBvbiBhIHRpbWUsIHNv bWVvbmUgaGFzIHJlZGlzdHJpYnV0ZWQgdGhlIEJHUA0KIHRhYmxlIGludG8gdGhlIElHUC4gSW4g dGhpcyBjYXNlLCB0aGUgdG90YWwgbnVtYmVyIG9mIElQIHByZWZpeGVzIGluIHRoZSBGSUIgaXMg ZXhhY3RseSB0aGUgc2FtZS4gQnV0IGFzIHRoZSBkYXRhIHN0cnVjdHVyZSB1c2VkIGluIHRoZSBG SUIgd2FzIGRpZmZlcmVudCBiZXR3ZWVuIEJHUCBhbmQgSUdQIHByZWZpeGVzLCB0aGUgRklCIHJh biBvdXQgb2YgbWVtb3J5IGFuZCB0aGUgbGluZSBjYXJkIGNyYXNoZWQgKHdlbGwgYWN0dWFsbHkg b25seQ0KIHRoZSBJUCBGSUIsIHNvIElTLUlTIGhlbGxvIHBhY2tldCB3ZXJlIHN0aWxsIGNvcnJl Y3RseSBzZW50IGFuZCBmb3J3YXJkZWQuIEFzIGEgcmVzdWx0LCB0cmFmZmljIHdhcyBwZXJtYW5l bnRseSBibGFjayBob2xlZCk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+LS0tPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPsKnIDk8bzpwPjwvbzpwPjwvc3Bhbj48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+T0xEOiB0aGF0IGFs bG93cyBhY2hpZXZpbmcgcHJlZml4IGluZGVwZW5kZW50IGNvbnZlcmdlbmNlPG86cD48L286cD48 L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPk5FVzog dGhhdCBhbGxvd3MgYWNoaWV2aW5nIEJHUCBwcmVmaXhlcyBpbmRlcGVuZGVudCBjb252ZXJnZW5j ZQ0KPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu Zz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4oaXQncyBzdGlsbCBkZXBlbmQgb24gdGhlIG51bWJlciBv ZiBJR1AgcHJlZml4ZXMgYW5kL29yIEJHUCBwYXRobGlzdCk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286 cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHN0cm9uZz48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5O aXRzOjxvOnA+PC9vOnA+PC9zcGFuPjwvc3Ryb25nPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+QWJzdHJhY3Q8bzpwPjwvbzpwPjwvc3Bh bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+JnF1b3Q7dmlh IG1vcmUgdGhhbiBvbmUgcGF0aC4mcXVvdDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+SW4gdGhpcyAxcnN0IHNlbnRlbmNlLCBp dCdzIG5vdCBjbGVhciB3aGF0IHBhdGggcmVhbGx5IG1lYW5zLiAoZS5nIGNmIHRoZSB0ZXJtaW5v bG9neSBzZWN0aW9uIHdoZXJlIHlvdSBoYXZlIG1vcmUgdGhhbiBvbmUpLiBJIGd1ZXNzIHRoYXQg eW91IG1lYW4gJnF1b3Q7QkdQIHBhdGgmcXVvdDsuIChhcyB0aGVyZSBhcmUgYWxzbyB0eXBpY2Fs bHkgbXVsdGlwbGUgSUdQIHBhdGggdG8gcmVhY2ggZWFjaA0KIEJHUCBOZXh0IEhvcCk8bzpwPjwv bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+ PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g bGFuZz0iRU4tVVMiPiZxdW90O1RoZSBvYmplY3RpdmUgaXMgYWNoaWV2ZWQgdGhyb3VnaCBvcmdh bml6aW5nIHRoZSBmb3J3YXJkaW5nIGNoYWlucyZxdW90OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mcXVvdDtjaGFpbiZxdW90 OyBkb2VzIG5vdCBzZWxmIHNlbGYgZXhwbGljaXQgdG8gbWUuIHdoYXQgYWJvdXQgOnMvY2hhaW5z L2RhdGEgc3RydWN0dXJlJnF1b3Q7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mcXVvdDtjb21wbGV0ZSB0 cmFuc3BhcmVuY3kmcXVvdDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+d2hhdCBkbyB5b3UgbWVhbj8gdHJhbnNwYXJlbmN5IHRv IHdoYXQgLyBmcm9tIHdobz88bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+wqcxPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPk9MRDogdG8gYWxsb3cgZm9yIG1vcmUg dGhhbiBvbmUgcGF0aCBmb3IgYSBnaXZlbiBwcmVmaXgNCjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5ORVc6IHRvIGFsbG93IGZv ciBCR1AgdG8gYWR2ZXJ0aXNlIG1vcmUgdGhhbiBvbmUgcGF0aCBmb3IgYSBnaXZlbiBwcmVmaXgN CjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9 IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBsYW5nPSJFTi1VUyI+T0xEOiBBbm90aGVyIG1vcmUgY29tbW9uIGFuZCB3aWRlbHkg ZGVwbG95ZWQgc2NlbmFyaW8gaXMgTDNWUE4gd2l0aCBtdWx0aS1ob21lZCBWUE4gc2l0ZXM8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V UyI+TkVXOiBBbm90aGVyIG1vcmUgY29tbW9uIGFuZCB3aWRlbHkgZGVwbG95ZWQgc2NlbmFyaW8g aXMgTDNWUE4gd2l0aCBtdWx0aS1ob21lZCBWUE4gc2l0ZXMgd2l0aCB1bmlxdWUgUm91dGUgRGlz dGluZ3Vpc2hlci48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0tLTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj7CpzEuMjxvOnA+PC9vOnA+ PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mcXVv dDtQYXRobGlzdDogSXQgaXMgYW4gYXJyYXkgb2YgcGF0aHMmcXVvdDs8bzpwPjwvbzpwPjwvc3Bh bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+JnF1b3Q7T3V0 TGFiZWwtQXJyYXk6IFRoZSBPdXRMYWJlbC1BcnJheSBpcyBhIGxpc3Qgb2Ygb25lIG9yIG1vcmUg b3V0Z29pbmcgbGFiZWxzICZxdW90OzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+U28gYSBsaXN0IGlzIGRl ZmluZWQgYXMgYW4gYXJyYXkgYW5kIHRoZSBhcnJheSBpcyBkZWZpbmVkIGFzIGEgbGlzdCA6LSku PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0i RU4tVVMiPldoYXQgYWJvdXQgdXNpbmcgdGhlIHNhbWUgdGVybSwgZS5nLiBhIGxpc3Q/PG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi Pi0tPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu Zz0iRU4tVVMiPlRoZSBPdXRMYWJlbC1BcnJheSBpcyBhIGxpc3Qgb2Ygb25lIG9yIG1vcmU8bzpw PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V UyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG91dGdvaW5nIGxhYmVscyBhbmQvb3Ig bGFiZWwgYWN0aW9ucyB3aGVyZSBlYWNoIGxhYmVsIG9yIGxhYmVsPG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyBhY3Rpb24gaGFzIDEtdG8tMSBjb3JyZXNwb25kZW5jZSB0byBh IHBhdGggaW4gdGhlIHBhdGhsaXN0LiBJdDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgaXMgcG9zc2libGUgdGhhdCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIE91dExh YmVsLWFycmF5IGlzPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+ PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkaWZmZXJl bnQgZnJvbSB0aGUgbnVtYmVyIG9mIHBhdGhzIGluIHRoZSBwYXRobGlzdCBhbmQgdGhlIGl0aDxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO LVVTIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgT3V0bGFiZWwtQXJyYXkgZW50cnkg aXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwYXRoIHdob3NlIHBhdGgtPG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyBpbmRleCBpcyAmcXVvdDtpJnF1b3Q7LjxvOnA+PC9vOnA+PC9z cGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7IDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4tIEkgZG9uJ3Qgc2VlIGhv dyBvbmUgY2FuIGhhdmUgYSAxLXRvLTEgY29ycmVzcG9uZGFuY2UgaWYgdGhlIG51bWJlciBvZiBl bGVtZW50cyBpcyBub3QgdGhlIHNhbWUuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0gTGFzdCBzZW50ZW5jZSBjb3VsZCBiZSBz cGxpdHRlZCBpbiAyLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIGxhbmc9IkVOLVVTIj4tLSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgPG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPlNpbmNlIHRoZSB0 ZXJtIGluZ3JlcyBQRSBpcyBkZWZpbmVkLCB5b3UgY291bGQgYWxzbyBkZXRpbmUgdGhlIHRlcm0g ZWdyZXNzIFBFLiBQb3NzaWJseSBpbiB0aGUgc2FtZSBzZW50ZW5jZS48bzpwPjwvbzpwPjwvc3Bh bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+T0xEOiAmcXVv dDtJbmdyZXNzIFBFLCAmcXVvdDtpUEUmcXVvdDs6IEl0IGlzIGEgQkdQIHNwZWFrZXIgdGhhdCBs ZWFybnMgYWJvdXQgYTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHJlZml4 IHRocm91Z2ggYW5vdGhlciBJQkdQIHBlZXIgYW5kIGNob29zZXMgdGhhdCBJQkdQIHBlZXIgYXM8 bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF Ti1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHRoZSBuZXh0LWhvcCBmb3IgdGhl IHByZWZpeDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu IGxhbmc9IkVOLVVTIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7IDxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO LVVTIj5ORVc6ICZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmcXVvdDtJbmdyZXNzIFBFLCAmcXVv dDtpUEUmcXVvdDs6IEl0IGlzIGEgQkdQIHNwZWFrZXIgdGhhdCBsZWFybnMgYWJvdXQgYTxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVT Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcHJlZml4IHRocm91Z2ggYSBJQkdQIHBl ZXIgYW5kIGNob29zZXMgYW4gZWdyZXNzIFBFIGFzIHRoZSBuZXh0LWhvcCBmb3IgdGhlIHByZWZp eC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5n PSJFTi1VUyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyA8bzpwPjwv bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+ QXMgYSBzaWRlIG5vdGUsIHRoZSBwcmV2aW91cyBkZWZpbml0aW9uIGFzc3VtZSB0aGF0IHRoZXJl IHdlcmUgbm8gUm91dGUgUmVsZmVjdG9yICh0aGUgaUJHUCBwZWVyIGlzIHRoZSBCR1AgTmV4dCBI b3ApJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOw0KPG86cD48L286cD48 L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0tIDxv OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO LVVTIj7CpzIuMzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxz cGFuIGxhbmc9IkVOLVVTIj5GaWd1cmUgMSByZXByZXNlbnRzIGEgVlBOIG5ldHdvcmsgd2l0aCAz IFBFIGFuZCBhIENFLiBJbiB0aGlzIGNvbnRleHQsICZxdW90O1ZQTi1QMSZxdW90OyBzb3VuZHMg YSBiaXQgbGlrZSBhIFAgcm91dGVyLiBXaGF0IGFib3V0IDpzL1ZQTi1QMS9WUE4tSVAxJm5ic3A7 ID8gU2FtZSBjb21tZW50IGZvciBJR1AtUDEuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0tPG86cD48L286cD48L3NwYW4+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPsKnMi4zLjI8bzpwPjwv bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+ T0xEOiBlUEUyIGNvbnN0cnVjdHMgdGhlIGZvcndhcmRpbmcgY2hhaW4gZGVwaWN0ZWQgaW4gRmln dXJlIDE8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs YW5nPSJFTi1VUyI+TkVXOiBlUEUyIGNvbnN0cnVjdHMgdGhlIGZvcndhcmRpbmcgY2hhaW4gZGVw aWN0ZWQgaW4gRmlndXJlIDM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y bWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPk9MRDogVlBMLUwxMTxvOnA+PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5O RVc6IFZQTi1MMTE8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48 c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPsKnMi4zLjM8bzpwPjwvbzpwPjwvc3Bhbj48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+T0xEOiBjYW4gcmVh Y2ggQVNCUjE8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh biBsYW5nPSJFTi1VUyI+TkVXOiBjYW4gcmVhY2ggQVNCUjExPG86cD48L286cD48L3NwYW4+PC9w Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9v OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5P TEQ6IFRoZSBsYWJlbCBmb3IgYWR2ZXJ0aXNlZCBieSBBU0JSMTEgdG8gaVBFPG86cD48L286cD48 L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPk5FVzog VGhlIGxhYmVsIGFkdmVydGlzZWQgYnkgQVNCUjExIHRvIGlQRTxvOnA+PC9vOnA+PC9zcGFuPjwv cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwv bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+ T0xEOiBUaGUgbGFiZWxzIGZvciBhZHZlcnRpc2VkIGJ5IEFTQlIxMiB0byBpUEU8bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+TkVX OiBUaGUgbGFiZWxzIGFkdmVydGlzZWQgYnkgQVNCUjEyIHRvIGlQRTxvOnA+PC9vOnA+PC9zcGFu PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNw OzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V UyI+T0xEOiBUaGUgbGFiZWxzIGZvciBhZHZlcnRpc2VkIHRvIGlQRSBieSBBU0JSMTEgdXNpbmcg QkdQLUxVPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g bGFuZz0iRU4tVVMiPk5FVzogVGhlIGxhYmVscyBhZHZlcnRpc2VkJm5ic3A7IGJ5IEFTQlIxMSB0 byBpUEUgdXNpbmcgQkdQLUxVPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v cm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0tLTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj7CpzM8bzpwPjwvbzpwPjwvc3Bhbj48 L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi Pk9MRDogTGV0J3MgYXBwbHlpbmcgdGhlIGFib3ZlIGZvcndhcmRpbmcgc3RlcHMgdG8gdGhlIGV4 YW1wbGUgZGVzY3JpYmVkIGluIEZpZ3VyZSAxIFNlY3Rpb24gMi4zLjEuPG86cD48L286cD48L3Nw YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPk9MRDogTGV0 J3MgYXBwbHlpbmcgdGhlIGFib3ZlIGZvcndhcmRpbmcgc3RlcHMgdG8gdGhlIGV4YW1wbGUgZGVz Y3JpYmVkIGluIEZpZ3VyZSAyIFNlY3Rpb24gMi4zLjEuPG86cD48L286cD48L3NwYW4+PC9wPg0K PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+ PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4oc29t ZXdoYXQgZ3Vlc3NzaW5nLiBCdXQgaW4gYWxsIGNhc2VzLCB0aGVyZSBpcyBubyBmaWd1cmUgMSBp biBzZWN0aW9uIDIuMy4xKTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+LS0tPG86cD48L286cD48L3NwYW4+ PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPsKnNC4xPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi PklNTyA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBs YW5nPSJFTi1VUyI+T0xEOiBBcyBzb29uIGFzIHRoZSBJR1AgY29udmVyZ2VuY2UgaXMgZWZmZWN0 aXZlIGZvciB0aGUgQkdQIG5ob3AgZW50cnksIHRoZSBuZXcgZm9yd2FyZGluZyBzdGF0ZSBpcyBp bW1lZGlhdGVseSBhdmFpbGFibGUgdG8gYWxsIGRlcGVuZGVudCBCR1AgcHJlZml4ZXMuPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMi Pk5FVzogQXMgc29vbiBhcyB0aGUgSUdQIGNvbnZlcmdlbmNlIGlzIGVmZmVjdGl2ZSBmb3IgYSBC R1AgbmV4dC1ob3AgZW50cnksIHRoZSBuZXcgZm9yd2FyZGluZyBzdGF0ZSBpcyBpbW1lZGlhdGVs eSBhdmFpbGFibGUgdG8gYWxsIGRlcGVuZGVudCBCR1AgcHJlZml4ZXMuPG86cD48L286cD48L3Nw YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5i c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO LVVTIj5tb3JlIGdlbmVyYWxseTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj46cy9uaG9wL25leHQtaG9wPG86cD48L286cD48L3Nw YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPi0tLTxvOnA+ PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVT Ij7CpzQuMzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu IGxhbmc9IkVOLVVTIj46cy9QRTIyMi9QRTIyPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFu PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5CZXN0IHJlZ2Fy ZHMsPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu Zz0iRU4tVVMiPkJydW5vPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h bCI+PHN0cm9uZz48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90Oywm cXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3N0cm9uZz48 L3A+DQo8L2Rpdj4NCjxQUkU+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwoKQ2UgbWVzc2FnZSBldCBzZXMgcGllY2VzIGpvaW50 ZXMgcGV1dmVudCBjb250ZW5pciBkZXMgaW5mb3JtYXRpb25zIGNvbmZpZGVudGllbGxlcyBvdSBw cml2aWxlZ2llZXMgZXQgbmUgZG9pdmVudCBkb25jCnBhcyBldHJlIGRpZmZ1c2VzLCBleHBsb2l0 ZXMgb3UgY29waWVzIHNhbnMgYXV0b3Jpc2F0aW9uLiBTaSB2b3VzIGF2ZXogcmVjdSBjZSBtZXNz YWdlIHBhciBlcnJldXIsIHZldWlsbGV6IGxlIHNpZ25hbGVyCmEgbCdleHBlZGl0ZXVyIGV0IGxl IGRldHJ1aXJlIGFpbnNpIHF1ZSBsZXMgcGllY2VzIGpvaW50ZXMuIExlcyBtZXNzYWdlcyBlbGVj dHJvbmlxdWVzIGV0YW50IHN1c2NlcHRpYmxlcyBkJ2FsdGVyYXRpb24sCk9yYW5nZSBkZWNsaW5l IHRvdXRlIHJlc3BvbnNhYmlsaXRlIHNpIGNlIG1lc3NhZ2UgYSBldGUgYWx0ZXJlLCBkZWZvcm1l IG91IGZhbHNpZmllLiBNZXJjaS4KClRoaXMgbWVzc2FnZSBhbmQgaXRzIGF0dGFjaG1lbnRzIG1h eSBjb250YWluIGNvbmZpZGVudGlhbCBvciBwcml2aWxlZ2VkIGluZm9ybWF0aW9uIHRoYXQgbWF5 IGJlIHByb3RlY3RlZCBieSBsYXc7CnRoZXkgc2hvdWxkIG5vdCBiZSBkaXN0cmlidXRlZCwgdXNl ZCBvciBjb3BpZWQgd2l0aG91dCBhdXRob3Jpc2F0aW9uLgpJZiB5b3UgaGF2ZSByZWNlaXZlZCB0 aGlzIGVtYWlsIGluIGVycm9yLCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSB0 aGlzIG1lc3NhZ2UgYW5kIGl0cyBhdHRhY2htZW50cy4KQXMgZW1haWxzIG1heSBiZSBhbHRlcmVk LCBPcmFuZ2UgaXMgbm90IGxpYWJsZSBmb3IgbWVzc2FnZXMgdGhhdCBoYXZlIGJlZW4gbW9kaWZp ZWQsIGNoYW5nZWQgb3IgZmFsc2lmaWVkLgpUaGFuayB5b3UuCjwvUFJFPjwvYm9keT4NCjwvaHRt bD4NCg== --_000_53C29892C857584299CBF5D05346208A0F8761E1OPEXCLILM21corp_-- From nobody Wed Apr 20 10:30:49 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4631F12E900; Wed, 20 Apr 2016 10:30:45 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dVFbyj75A9-a; Wed, 20 Apr 2016 10:30:43 -0700 (PDT) Received: from mail-oi0-x232.google.com (mail-oi0-x232.google.com [IPv6:2607:f8b0:4003:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 195C212E710; Wed, 20 Apr 2016 10:30:40 -0700 (PDT) Received: by mail-oi0-x232.google.com with SMTP id x201so47184549oif.3; Wed, 20 Apr 2016 10:30:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc; bh=HbWKFQihcKSI13T7EOC2/0K9wXDzJc2+NDsbwWua39k=; b=0sERDOAjGWT507ExZj8CaUsK5wF4uteM5Jmn7YaQrEAY74Vtdi4YD0gx88+VkgrvIC PuMNeLHkKaQies04wfqrgggGHILfKCRkUx7W3lI2GKjciIlPIUP1Ym1t6gaEIvi0/3G1 rXUFdISr2Je3aftkk2+39zekHzk9deD6iGd2TtsbkCJmREnYJAJcptFNHKaLfsUgsZP3 8lzXbopWtLrJ/aOTGBwNON4n1LbENytpTeIT/I3xFPQHogfS8TaSSswEFVAt/3/0UsaE uGdLIPJ6aCU49dgkCZNv0BF88ItbbOoguFt2cUM5RH/+owTtHwfXDI22RsLtZcvsctED x99g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=HbWKFQihcKSI13T7EOC2/0K9wXDzJc2+NDsbwWua39k=; b=ZZey7D66naSL60oQoRxbzALvBk6c/OUMb0ZycQO6i7YiFBqr3rA5zdXm6h3iLdh3Sa fM6DbtbqHhyzGtPo3Vvez6XpLYB63TKdP7/lv17jPlTYbXL+hdGJoL4nSGbsKiNgcjq/ DJ6rUOOa+8YQOc/IUt7pfJVMMH1ITuXQm+lMsS/6q8rnwIdb6WVUaGrJo5NeTB1D/t+6 0rB8AMkYIOduJ9S9nM7aDter7xalBHM4QmPeSxIvlMvhKmWg4vtZWTt+Lvn+XOXQ7jvN ylhpFPRV5MJa6WSYqa3AaJdnu4tA+r/ECfJqMmWyUG/Jh7MbwYtq6blYBB3cxMtvMabE Vx0Q== X-Gm-Message-State: AOPr4FXERCGK047+ocLUELU3rgkc8FAMyPmrAoyY+XIAGo92DDJAEVJ1rwHSxFWzxLBagLedK5RtJCdD6Oxm8Q== X-Received: by 10.202.224.70 with SMTP id x67mr4430513oig.124.1461173439513; Wed, 20 Apr 2016 10:30:39 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.231.106 with HTTP; Wed, 20 Apr 2016 10:30:20 -0700 (PDT) From: "Andrew G. Malis" Date: Wed, 20 Apr 2016 13:30:20 -0400 Message-ID: To: rtg-ads@ietf.org Content-Type: multipart/alternative; boundary=001a113d38a0d14bda0530edf38c Archived-At: Cc: "rtg-dir@ietf.org" , isis-wg@ietf.org, draft-ietf-isis-node-admin-tag.all@ietf.org Subject: [RTG-DIR] RtgDir review: draft-ietf-isis-node-admin-tag-08.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Apr 2016 17:30:45 -0000 --001a113d38a0d14bda0530edf38c Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello, I have been selected as the Routing Directorate reviewer for this draft. The Routing Directorate seeks to review all routing or routing-related drafts as they pass through IETF last call and IESG review, and sometimes on special request. The purpose of the review is to provide assistance to the Routing ADs. For more information about the Routing Directorate, please see =E2=80=8Bhttp://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir Although these comments are primarily for the use of the Routing ADs, it would be helpful if you could consider them along with any other IETF Last Call comments that you receive, and strive to resolve them through discussion or by updating the draft. Document: draft-ietf-isis-node-admin-tag-08.txt Reviewer: Andy Malis Review Date: April 20, 2016 IETF LC End Date: April 29, 2016 Intended Status: Standards Track Summary: I have some minor concerns about this document that I think should be resolved before publication, if the AD agrees (see below for details). Comments and minor concerns: I have no technical concerns with this draft. I have noted the two comments in the AD review of this draft, and agree with them. Given the similarity in functionality to RFC 7777 and the overlap in authorship, I expected the draft to be more or less identical to the RFC, except for the technical differences between OSPF and ISIS. However, there are parts of the RFC that are editorially better (easier to read or understand) than the equivalent text in the draft, starting with the title, Abstract, and Introduction. In particular, the Introduction in the RFC looks like the result of cleanup by the RFC Editor, but which still needs to be done in the draft. Why not take advantage of the work already done by the RFC Editor? Also, the Introduction in the draft doesn't include the usual reference to RFC 2119 terms, which is in the RFC. The Abstract in the RFC also includes more useful detail than the Abstract in the draft. As another example, these differences are also true in Section 4.1 of the draft, when compared to the mostly equivalent Section 2.2.1 of the RFC. For example, from an editorial standpoint there is a missing "The" in the first line of the section, and there are other improvements as well. I also see editorial corrections in Section 3 of the RFC when compared to Section 5 in the draft. I would recommend an editorial pass where the text is compared with the RFC, and when obvious, editorially improved to take advantage of work already done. This will make the RFC Editor's job easier. Alternatively, the AD could choose to include a note to the RFC Editor, noting the similarity and asking the RFC Editor to take advantage of the work that they already did for the RFC. However, having this done by the document editor would take advantage of the editor's knowledge of when differences between the two are deliberate. Thanks, Andy --001a113d38a0d14bda0530edf38c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello,

I have been selected = as the Routing Directorate reviewer for this draft. The Routing Directorate= seeks to review all routing or routing-related drafts as they pass through= IETF last call and IESG review, and sometimes on special request. The purp= ose of the review is to provide assistance to the Routing ADs. For more inf= ormation about the Routing Directorate, please see =E2=80=8Bhttp://= trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir

= Although these comments are primarily for the use of the Routing ADs, it wo= uld be helpful if you could consider them along with any other IETF Last Ca= ll comments that you receive, and strive to resolve them through discussion= or by updating the draft.

Document: draft-ietf-is= is-node-admin-tag-08.txt
Reviewer: Andy Malis
Review Da= te: April 20, 2016
IETF LC End Date: April 29, 2016
Int= ended Status: Standards Track

Summary:
<= br>
I have some minor concerns about this document that I think s= hould be resolved before publication, if the AD agrees (see below for detai= ls).

Comments and minor concerns:

I have no technical concerns with this draft.

=
I have noted the two comments in the AD review of this draft, and agre= e with them.

Given the similarity in functionality= to RFC 7777 and the overlap in authorship, I expected the draft to be more= or less identical to the RFC, except for the technical differences between= OSPF and ISIS. However, there are parts of the RFC that are editorially be= tter (easier to read or understand) than the equivalent text in the draft, = starting with the title, Abstract, and Introduction. In particular, the Int= roduction in the RFC looks like the result of cleanup by the RFC Editor, bu= t which still needs to be done in the draft. Why not take advantage of the = work already done by the RFC Editor? Also, the Introduction in the draft do= esn't include the usual reference to RFC 2119 terms, which is in the RF= C. The Abstract in the RFC also includes more useful detail than the Abstra= ct in the draft.

As another example, these differe= nces are also true in Section 4.1 of the draft, when compared to the mostly= equivalent Section 2.2.1 of the RFC. For example, from an editorial standp= oint there is a missing "The" in the first line of the section, a= nd there are other improvements as well. I also see editorial corrections i= n Section 3 of the RFC when compared to Section 5 in the draft.
<= br>
I would recommend an editorial pass where the text is compare= d with the RFC, and when obvious, editorially improved to take advantage of= work already done. This will make the RFC Editor's job easier. Alterna= tively, the AD could choose to include a note to the RFC Editor, noting the= similarity and asking the RFC Editor to take advantage of the work that th= ey already did for the RFC. However, having this done by the document edito= r would take advantage of the editor's knowledge of when differences be= tween the two are deliberate.

Thanks,
An= dy

--001a113d38a0d14bda0530edf38c-- From nobody Wed Apr 20 12:17:28 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0DD7712E7D0; Wed, 20 Apr 2016 12:17:25 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.7 X-Spam-Level: X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4I80deg35Z3z; Wed, 20 Apr 2016 12:17:24 -0700 (PDT) Received: from mail-pf0-x243.google.com (mail-pf0-x243.google.com [IPv6:2607:f8b0:400e:c00::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4B19012E7C9; Wed, 20 Apr 2016 12:17:24 -0700 (PDT) Received: by mail-pf0-x243.google.com with SMTP id d184so5223105pfc.1; Wed, 20 Apr 2016 12:17:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=csAWSTrA00IU+XJzT6KQJITbpWfjeq/cH3kswkg6jdM=; b=TlExGyPjjySw4BS9AkedkVU/az+0kY4u2wI6q93QWZc5sWsAdsmKrzedZsFLYsNJlw 29mMefF8HYWcepGAryp0CTClJ5edjqGAw36DXr7g0r+4AYoyueYZExI9juwtSDXGBpH1 UaeAXqPIFWFZjQkCQWtT9vlGFo1O2DNXTiFZQbU8OTlR+RX8Ykp6rCnEeU+u/zkDXIjZ gmfoaaWeugOVEnDp9i4QQvd/cx8nq8lSOUaXv+n5RfjPDAef8f+bdPuyjVEviToYWwDZ ZYD4csHop7mCtsD1PT83lyl79rCOSie6+GtyX7mmRUYKQMG/8Al3ptmy+C2rrQZGbNyu NRGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=csAWSTrA00IU+XJzT6KQJITbpWfjeq/cH3kswkg6jdM=; b=VhyD5CDE/RuJPH60IGQspclNxNu6DRq0IyJTWVqWcAQ+wRu8KrcxD6gJNxQg9bAEf1 ramAK/meov/YN3xSaRBNpssLFV4D93em41HE4h4Gh0ZZgXmUIacLwYDz+92WgVXVszaW UDCX7MEemwzN3g1enHm1Cd4lffXG4ITRjKoVYnTyaQQWdQKdgUH053hCGvdPcaXmMUVB jdKFJft9m2Z13ZLw3g+ZPoHuGRKEgYJlEI+5aU7KkiWpvBwhMCHa6jvccKGGqw+F1URA Dujx09qLi9ttNDVsc6fSEcTgqVxR1h4JjQdA1SFrku1FUnBfPiVc4NGm9vJ84uhcDYTB DLRw== X-Gm-Message-State: AOPr4FWRKxlVgPYhgJR5EnmhFNl0owwt9+mTlNllYn2ndNCYJY6Jh985e+UnsYZwcXuptg== X-Received: by 10.98.7.135 with SMTP id 7mr14433669pfh.124.1461179843884; Wed, 20 Apr 2016 12:17:23 -0700 (PDT) Received: from Pushpasiss-MacBook-Pro.local ([122.166.172.203]) by smtp.gmail.com with ESMTPSA id ak9sm100386581pac.13.2016.04.20.12.17.20 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 20 Apr 2016 12:17:22 -0700 (PDT) To: "Andrew G. Malis" , rtg-ads@ietf.org References: From: Pushpasis Sarkar Message-ID: <5717D5BE.8020603@gmail.com> Date: Thu, 21 Apr 2016 00:47:18 +0530 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Archived-At: Cc: "rtg-dir@ietf.org" , isis-wg@ietf.org, draft-ietf-isis-node-admin-tag.all@ietf.org Subject: Re: [RTG-DIR] RtgDir review: draft-ietf-isis-node-admin-tag-08.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Apr 2016 19:17:26 -0000 Hi Andy, Thanks a lot for review. I am in agreement with all the points made below. So I will address them soon and upload the next version. Also the AD has also suggested that much of the Usecase sections is a duplicate of the same section in RFC 7777 and hence should be shortened to just list the usecases without detailing them and refering to RFC7777 instead. I will take care both sets of comments and come up with a version early next week. Thanks once again and Regards, -Pushpasis On 4/20/16 11:00 PM, Andrew G. Malis wrote: > Hello, > > I have been selected as the Routing Directorate reviewer for this > draft. The Routing Directorate seeks to review all routing or > routing-related drafts as they pass through IETF last call and IESG > review, and sometimes on special request. The purpose of the review is > to provide assistance to the Routing ADs. For more information about > the Routing Directorate, please see ​ > http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir > > Although these comments are primarily for the use of the Routing ADs, > it would be helpful if you could consider them along with any other > IETF Last Call comments that you receive, and strive to resolve them > through discussion or by updating the draft. > > Document: draft-ietf-isis-node-admin-tag-08.txt > Reviewer: Andy Malis > Review Date: April 20, 2016 > IETF LC End Date: April 29, 2016 > Intended Status: Standards Track > > Summary: > > I have some minor concerns about this document that I think should be > resolved before publication, if the AD agrees (see below for details). > > Comments and minor concerns: > > I have no technical concerns with this draft. > > I have noted the two comments in the AD review of this draft, and > agree with them. > > Given the similarity in functionality to RFC 7777 and the overlap in > authorship, I expected the draft to be more or less identical to the > RFC, except for the technical differences between OSPF and ISIS. > However, there are parts of the RFC that are editorially better > (easier to read or understand) than the equivalent text in the draft, > starting with the title, Abstract, and Introduction. In particular, > the Introduction in the RFC looks like the result of cleanup by the > RFC Editor, but which still needs to be done in the draft. Why not > take advantage of the work already done by the RFC Editor? Also, the > Introduction in the draft doesn't include the usual reference to RFC > 2119 terms, which is in the RFC. The Abstract in the RFC also includes > more useful detail than the Abstract in the draft. > > As another example, these differences are also true in Section 4.1 of > the draft, when compared to the mostly equivalent Section 2.2.1 of the > RFC. For example, from an editorial standpoint there is a missing > "The" in the first line of the section, and there are other > improvements as well. I also see editorial corrections in Section 3 of > the RFC when compared to Section 5 in the draft. > > I would recommend an editorial pass where the text is compared with > the RFC, and when obvious, editorially improved to take advantage of > work already done. This will make the RFC Editor's job easier. > Alternatively, the AD could choose to include a note to the RFC > Editor, noting the similarity and asking the RFC Editor to take > advantage of the work that they already did for the RFC. However, > having this done by the document editor would take advantage of the > editor's knowledge of when differences between the two are deliberate. > > Thanks, > Andy > From nobody Thu Apr 21 00:08:19 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8EEFA12DF50; Thu, 21 Apr 2016 00:08:17 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -5.217 X-Spam-Level: X-Spam-Status: No, score=-5.217 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t8kEedaWUwAq; Thu, 21 Apr 2016 00:08:14 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B24112DC4A; Thu, 21 Apr 2016 00:08:13 -0700 (PDT) Received: from 172.18.7.190 (EHLO lhreml707-cah.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CIA88338; Thu, 21 Apr 2016 07:08:09 +0000 (GMT) Received: from SZXEMA411-HUB.china.huawei.com (10.82.72.70) by lhreml707-cah.china.huawei.com (10.201.5.199) with Microsoft SMTP Server (TLS) id 14.3.235.1; Thu, 21 Apr 2016 08:08:08 +0100 Received: from SZXEMA510-MBX.china.huawei.com ([169.254.3.171]) by szxema411-hub.china.huawei.com ([10.82.72.70]) with mapi id 14.03.0235.001; Thu, 21 Apr 2016 15:08:02 +0800 From: Mach Chen To: "rtg-ads@tools.ietf.org" Thread-Topic: RtgDir review of draft-ietf-grow-route-leak-problem-definition-04.txt Thread-Index: AdGbnIt+qe4n2mM9TPmH6skTMoVhLQ== Date: Thu, 21 Apr 2016 07:08:02 +0000 Message-ID: Accept-Language: en-US, zh-CN Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.111.102.135] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020206.57187C5A.00BA, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=169.254.3.171, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 317ed1a6d7a9ac88936217323668a88c Archived-At: Cc: "rtg-dir@ietf.org" , "grow@ietf.org" , "draft-ietf-grow-route-leak-problem-definition.all@ietf.org" Subject: [RTG-DIR] RtgDir review of draft-ietf-grow-route-leak-problem-definition-04.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Apr 2016 07:08:17 -0000 Hello, I have been selected as the Routing Directorate reviewer for this draft. Th= e Routing Directorate seeks to review all routing or routing-related drafts= as they pass through IETF last call and IESG review, and sometimes on spec= ial request. The purpose of the review is to provide assistance to the Rout= ing ADs. For more information about the Routing Directorate, please see htt= p://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir Although these comments are primarily for the use of the Routing ADs, it wo= uld be helpful if you could consider them along with any other IETF Last Ca= ll comments that you receive, and strive to resolve them through discussion= or by updating the draft. Document: draft-ietf-grow-route-leak-problem-definition-04.txt Reviewer: Mach Chen Review Date: April 21, 2016 IETF LC End Date: March 28, 2016 Intended Status: Informational Summary: This document is well written and easy to read. There some minor nits that = need to be addressed before the publication. Comments: 1. There are many places in the document that uses "we", which is not the t= ypical usage for an IETF draft or RFC, a common way is to use "this documen= t" or the like.=20 2. Section 3.4 "... from the customer cone of the lateral peer.", what's the mean of the "= customer cone" here? It's better to use a more common term here.=20 3. s/ No updates to the registries are suggested by this document. /This docum= ent does not require an action from IANA. Major issues: None. Minor issues: None. Nits: Thanks, Mach From nobody Thu Apr 21 04:38:31 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4B8EF12E37D; Thu, 21 Apr 2016 04:38:31 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.6 X-Spam-Level: X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1pivK1BKAbfq; Thu, 21 Apr 2016 04:38:30 -0700 (PDT) Received: from asmtp2.iomartmail.com (asmtp2.iomartmail.com [62.128.201.249]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F01D112E3DA; Thu, 21 Apr 2016 04:38:28 -0700 (PDT) Received: from asmtp2.iomartmail.com (localhost.localdomain [127.0.0.1]) by asmtp2.iomartmail.com (8.13.8/8.13.8) with ESMTP id u3LBc28a030639; Thu, 21 Apr 2016 12:38:02 +0100 Received: from 950129200 ([213.5.92.177]) (authenticated bits=0) by asmtp2.iomartmail.com (8.13.8/8.13.8) with ESMTP id u3LBc1oR030631 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Thu, 21 Apr 2016 12:38:01 +0100 From: "Adrian Farrel" To: "'Stewart Bryant'" , References: <5718AFA4.4010908@gmail.com> <062501d19bc1$d3fb24e0$7bf16ea0$@olddog.co.uk> In-Reply-To: <062501d19bc1$d3fb24e0$7bf16ea0$@olddog.co.uk> Date: Thu, 21 Apr 2016 12:38:02 +0100 Message-ID: <063401d19bc2$43e55a00$cbb00e00$@olddog.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQHySV7uinDF30sOc86UhvTDbccVMAL6R9kDnzsfY0A= Content-Language: en-gb X-TM-AS-MML: disable X-TM-AS-Product-Ver: IMSS-7.1.0.1679-8.0.0.1202-22274.006 X-TM-AS-Result: No--17.906-10.0-31-10 X-imss-scan-details: No--17.906-10.0-31-10 X-TMASE-MatchedRID: X4bcv0S75Kk4HKI/yaqRm8zWN98iBBeGQNrgRraxTQFGr8G3v23M31Dc zN/SMpBYlj9EHCczd3JnuZu7SLIewojQo/Iw2s1SQpxiLlDD9FVhBfGxmdHCguc1p9J5fpfi94m WpQQzED/h7zLZMPEJbrLJMDbAGS4OhdUss4Ved7Ovdf2B19ItZXidToq2MMwDh8BhJvgqWBkimX l7sJqs2lDsDHKCnI6VmRZvbOkh+FPYfPOPCpnfAnqlaakV3yjelWXxvHK+rV7czkKO5k4APqTUJ fxllbMPk1QAW+Nk6QAixnd3Qvh+BcME2BsoiKJMZg1i2wTmScNQCOsAlaxN76R+x6Y7WC8DMA0T vVWjWva8q5RnxSTV7eCp+Owu+eqsqdj16zO5P+SeAiCmPx4NwFkMvWAuahr8+gD2vYtOFhgqtq5 d3cxkNQP90fJP9eHt Archived-At: Cc: rtg-dir@ietf.org, zhang.xian@huawei.com, "'BRUNGARD, DEBORAH A'" , draft-ietf-teas-interconnected-te-info-exchange@tools.ietf.org, teas@ietf.org, Jonathan.Hardwick@metaswitch.com, jon.hudson@gmail.com Subject: Re: [RTG-DIR] RtgDir review of draft-ietf-teas-interconnected-te-info-exchange-04 X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: adrian@olddog.co.uk List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Apr 2016 11:38:31 -0000 Re-send with correct RTG-DIR address > -----Original Message----- > From: Adrian Farrel [mailto:adrian@olddog.co.uk] > Sent: 21 April 2016 12:35 > To: 'Stewart Bryant'; rtg-ads@ietf.org > Cc: RTG-DIR@tools.ietf.org; draft-ietf-teas-interconnected-te-info- > exchange@tools.ietf.org; teas@ietf.org; = Jonathan.Hardwick@metaswitch.com; > jon.hudson@gmail.com; zhang.xian@huawei.com; 'BRUNGARD, DEBORAH A' > Subject: RE: RtgDir review of = draft-ietf-teas-interconnected-te-info-exchange-04 >=20 > Stewart, >=20 > Many thanks for your time and kind words. >=20 > Responses in line. >=20 > Deborah, when in the process do you want to see an update? >=20 > Cheers, > Adrian >=20 > > Summary: > > I have some minor concerns about this document that I think should = be > resolved > > before publication. > > > > Comments: > > This is an exceptionally well written document that will serve = community well in > > understanding this problem. > > > > The first two minor comments are in many ways optional, but I think = addressing > > them would be appreciated by those new to the subject. > > > > Major Issues: > > No major issues found. > > > > Minor Issues: > > > > In section 1.1.2 TE Metrics and TE Attributes, there appears to be = no definition > of > > either term (either by reference of by value). A definition and in = particular a > > distinction would be helpful to the reader less familiar with the = subject. >=20 > I think that you're right that some clarity could be added. The = general description > of the combination of the two terms looks fine to me, but by = presenting two > terms we do need to distinguish them and explain. I suspect that some = examples > and a little more description will do the job. Mainly we need to = characterise a TE > metric as a quantifiable value (including measurement) describing some = property > of a link or node that can be used as part of TE routing or planning, = while a TE > attribute is a wider term (i.e. including TE metric) that refers to = any property or > characteristic of a link or node that can be used as part of TE = routing or planning. >=20 > > Regarding Section 1.1.8. Abstract Node or Virtual Node. It is = unclear whether > these > > are synonyms, or if there is a distinction between them. >=20 > Hmmm. During WG last call we were asked to add 1.1.8 to give a root = for use of > these terms, although I chose to point at 3.5 and 4.2.2.1 for more = details. But I > think I can add a distinction between the very similar terms. >=20 > > Section 5.2 > > The text "(i.e., completely separate instances using different = address)" is > > incomplete. I think that you have omitted the word "spaces". >=20 > Yes. Thanks. >=20 > > Nits: > > "2.4. Requesting Connectivity > > > > " This relationship between domains can be entirely under the = control" > > > > I think that should be "The relationship" >=20 > Ack >=20 > > Section 6 the text "are arranged a set of small domains" I think = should be > > "are arranged as a set of small domains" >=20 > Ack >=20 > > Section 10.1 para 3 duplicate word "the the" >=20 > Ack From nobody Thu Apr 21 16:28:00 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 92A8212E737; Thu, 21 Apr 2016 16:27:56 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -15.516 X-Spam-Level: X-Spam-Status: No, score=-15.516 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LyC-WWhDYLgc; Thu, 21 Apr 2016 16:27:52 -0700 (PDT) Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6D2A212E147; Thu, 21 Apr 2016 16:27:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=49284; q=dns/txt; s=iport; t=1461281272; x=1462490872; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to; bh=Otp58elrjjdn5w3af1SGGyjhX/kwP4Tb0wIXdInstrI=; b=LxopeO7GtdIrGtwd4U/opXhL6fV6xV0T+Q/GQ73SSAXAqQr2D8fEM5Oy jkOO5MiYKN3VWzm6yDwgiQXr3U2dS4k31Ln5kCjxhDfLIq5opPxQ4mXgX EQRFNt/6dd3Z8e8YgAbnumcNqvgugCf67DCmHdqkmxMmnBI2vcMg88qwj A=; X-IronPort-AV: E=Sophos; i="5.24,514,1454976000"; d="scan'208,217"; a="94538315" Received: from rcdn-core-3.cisco.com ([173.37.93.154]) by rcdn-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Apr 2016 23:27:51 +0000 Received: from [10.154.57.130] ([10.154.57.130]) by rcdn-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id u3LNRpuP017698; Thu, 21 Apr 2016 23:27:51 GMT Message-ID: <571961F6.9040608@cisco.com> Date: Thu, 21 Apr 2016 16:27:50 -0700 From: "Ahmed Bashandy (bashandy)" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: bruno.decraene@orange.com, "rtg-ads@ietf.org" References: <18205_1461160419_571789E3_18205_2694_2_53C29892C857584299CBF5D05346208A0F8761E1@OPEXCLILM21.corporate.adroot.infra.ftgroup> In-Reply-To: <18205_1461160419_571789E3_18205_2694_2_53C29892C857584299CBF5D05346208A0F8761E1@OPEXCLILM21.corporate.adroot.infra.ftgroup> Content-Type: multipart/alternative; boundary="------------050700020907010209010406" Archived-At: Cc: "rtg-dir@ietf.org" , "draft-ietf-rtgwg-bgp-pic.all@ietf.org" , "rtgwg@ietf.org" Subject: Re: [RTG-DIR] RtgDir review: draft-ietf-rtgwg-bgp-pic-00 X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Apr 2016 23:27:56 -0000 This is a multi-part message in MIME format. --------------050700020907010209010406 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Thanks a lot for the valuable comments. I will try the address the comments in the next spin Ahmed On 4/20/2016 6:53 AM, bruno.decraene@orange.com wrote: > > Hello, > > I have been selected as the Routing Directorate reviewer for this > draft. The Routing Directorate seeks to review all routing or > routing-related drafts as they pass through IETF last call and IESG > review, and sometimes on special request. The purpose of the review is > to provide assistance to the Routing ADs. For more information about > the Routing Directorate, please see ​ > http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir > > Although these comments are primarily for the use of the Routing ADs, > it would be helpful if you could consider them along with any other > IETF Last Call comments that you receive, and strive to resolve them > through discussion or by updating the draft. > > Document: draft-ietf-rtgwg-bgp-pic-00 > Reviewer: Bruno Decraene > IETF LC End Date: “QA review” pre WG LC > Intended Status: Informational > > *Summary:* > > I have some minor concerns about this document that I think should be > resolved before publication. > > *Comments:* > > - Document is interesting. Document is relatively clear but sometime > it feels like there is a little room for some reformulation/edition to > improve fluidity. In particular, the learning curve is a bit steep at > the beginning of the doc as most of the concepts are introduced in 3 > pages (pages 4-6) in the form of a list of terminology and a pseudo > code. I would find useful to have an overview section just after the > introduction, with a high level view of the solution with a limited > number of new terms. > > - The text feels like authoritative, while probably many terms are > implementation specific. A priori, I would not expect all > implementation of BGP PIC to use the same terms, and possibly not the > same data structure. May be the text could be generalized to cover > multiple implementations; or modified to describe a generalized > concept (i.e. data-structure designed to share as much data as > possible between elements, at the cost of additional indirections); or > the document could state that it describes a specific implementation > with implementations specific terminology, data structure, and > specifics. Or a combination of both (e.g. adding a section being both > generalized and describing the concept, and then the existing sections > after stating that they are specific to one implementation). > > *Minor Issues:* > > - I find figure 2 very useful to understand the data-structure. I > would move it sooner in the doc, somewhere before §2.2. (with its > subsequent text below) e.g. a new §2.2 "FIB data-structure" > > It would need to be generalized i.e. example non-specific. I could > think of: > > IP Leaf: Pathlist: IP Leaf: Pathlist: > > -------- --------- ------- -------- > > BGP NLRI ---> BGP NH1 ----> IGP IP1 (BGP NH1) ---> IGP NH1, I1 > ---> Adjacency1 > > BGP NHi --... IGP NHi, Ii --.. > > | | > > | | > > | | > > v v > > OutLabel Array: OutLabel Array: > > -------------- -------------- > > L (NLRI, NH1) L (IP1, NH1) > > L (NLRI, NHi) L (IP1, NHi) > > - Figure 1 could be enhanced with IGP-NH1, IGP-NH2, I1 and I2. > > - Example 3 does not use the same naming convention than examples 1 > and 2, this make it harder to follow for a priori no reason. e.g. VPN > labels are named VPN-L11 in examples 1 and 2, but are named > VPN-PE21(P1) in exmaple 3; transport labels are named LDP-L12 in > exmaples 1 and 2, but LASBR11(PE22) and L11 in figure 3. > > - §2.3.3 > > "The local labels of the next hops". > > - All labels are locally assigned. So what do you mean by "local" > > - "next-hop" sometimes refers to IGP/connected next-hop (a priori the > case here) and sometimes to BGP next-hop. I find it hard to follow. I > rather use a different name (e.g; connected next-hop vs BGP next-hop) > > - §3 > > "the hashing at the BGP level yields path 0 while the hashing at the > IGP level yields path 1. In that case, the packet will be sent out of > interface I1 with the label stack "LDP-L12,VPN-L21". > > Does not seem to match my understanding. For "LDP-L12,VPN-L21" I would > assume BGP used path index 1 and IGP used path index 0. > > IMHO: > > OLD: "Hence ASBR22 swaps "LASBR22(PE22)" with the LDP/SR label of > PE22, pushes the label of the next-hop towards PE22 in domain 2, and > sends the packet along the shortest path towards PE22." > > NEW: "Hence ASBR22 swaps "LASBR22(PE22)" with the LDP/SR label for > PE22 advertised by the next-hop towards PE22 in domain 2, and sends > the packet along the shortest path towards PE22." > > (in all cases "swaps" then "pushes" would increase the label stack by > 1, which is not the case.) > > §4.1 > > "the useable paths in the loadinfo" > > loadinfo is a proprietary FIB datastructure which has not been > introduced/defined. You need to either remove that term (if possible) > or define it somewhere. > > "Hence traffic restoration occurs within the time frame of IGP > convergence," > > agree. > > ..."and, for local link failure, within the timeframe of local > detection. Thus it is possible to achieve sub-50 msec convergence as > described in [10] for local link failure" > > IMO, this is restricted to specific cases. e.g. external (eBGP) link > failure, ECMP case, possibly IP FRR. So possibly > > OLD: for local link failure, within the timeframe of local detection. > Thus it is possible to achieve sub-50 msec convergence as described in > [10] for local link failure > > NEW: for local link failure, assuming a backup path has been > precomputed, within the timeframe of local detection (e.g. 50ms). > Example of solutions precomputing a backup path are IP FRR [LFA], > [RLFA], [MRT], [TI-LFA] or eBGP path having a backup path [10]. > > §4 > > I would find useful to indicate, for each type of failure, the number > of data-structure that need to be updated. > > --- > > §4.2.2 > > "To avoid loops, ePE2 MUST treat any core facing path as a backup > > path, otherwise ePE2 may redirect traffic arriving from the core > > back to ePE1 causing a loop." > > Looks a bit under-described to me. Could you please elaborate a bit? > In particular: > > - if 2 PE (PE1, PE2) are connected in U to 2 P (P1, P2) > (P1-PE1-PE2-P2), PE1 being nominal and PE2 only used in backup, in the > nominal situation, if the core network sends the trafic to PE1 via PE2 > (used as a P/transit), how does PE2 know that it must send this > traffic to PE1? (rather than CE2) > > - this behavior looks like an additional specific feature. How doew > ePE1 knows that ePE2 have this feature? > > --- > > §4.3 > > " Hence if the platform supports the "unflattened" forwarding chain, > > then a single pathlist needs to be updated while if the platform > > supports a shallower forwarding chain, then two pathlists need to be > > updated." > > IINM "single" and "two" pathlist applies to the specific example. In > this last sentence/summary, I'd prefer a more general statement. A > priori, without digging too much in this most complex use case, it > seems like :s/single/o(1) :s/two/o(PE) . The former looks close > (single vs o(1)) but IMHO there is a significant difference between 2 > and o(PE) (i.e. 100s) > > --- > > §5.1 > > Good paragraph. It's quite clear that the convergence time does not > depend on the number of BGP prefixes, which is good. For the benefit > of the reader, it would be even more interesting if, for each type of > failure, the text could indicate on what it depends. e.g. o(1), > o(connected interfaces), o(PE), o(PEnominal*PEbackup).... > > -- > > §7 > > "No additional security risk is introduced by using the mechanisms > proposed in this document" > > In general, with such a sentence, it's difficult to evaluate whether > the authors have very quickly evaluated the risk or if this evaluation > has been performed in details. So in general, some more text detailing > which aspects have been evaluated is interesting for the reader (yet > painful for the authors). > > As the document describe an internal box behavior, this is difficult > to evaluate and discuss. But from a bad experience, I fear that there > may be an impact. Indeed, with such structure, the FIB > structure/memory is typically different between BGP prefixes and IGP > prefixes. In general, the implementation is designed to support the > "right" numbers of both. But assuming an accident or an attack, the > numbers may not be "right". e.g. one upon a time, someone has > redistributed the BGP table into the IGP. In this case, the total > number of IP prefixes in the FIB is exactly the same. But as the data > structure used in the FIB was different between BGP and IGP prefixes, > the FIB ran out of memory and the line card crashed (well actually > only the IP FIB, so IS-IS hello packet were still correctly sent and > forwarded. As a result, traffic was permanently black holed) > > --- > > § 9 > > OLD: that allows achieving prefix independent convergence > > NEW: that allows achieving BGP prefixes independent convergence > > (it's still depend on the number of IGP prefixes and/or BGP pathlist) > > *Nits:* > > Abstract > > "via more than one path." > > In this 1rst sentence, it's not clear what path really means. (e.g cf > the terminology section where you have more than one). I guess that > you mean "BGP path". (as there are also typically multiple IGP path to > reach each BGP Next Hop) > > "The objective is achieved through organizing the forwarding chains" > > "chain" does not self self explicit to me. what about :s/chains/data > structure" > > "complete transparency" > > what do you mean? transparency to what / from who? > > §1 > > OLD: to allow for more than one path for a given prefix > > NEW: to allow for BGP to advertise more than one path for a given prefix > > OLD: Another more common and widely deployed scenario is L3VPN with > multi-homed VPN sites > > NEW: Another more common and widely deployed scenario is L3VPN with > multi-homed VPN sites with unique Route Distinguisher. > > --- > > §1.2 > > "Pathlist: It is an array of paths" > > "OutLabel-Array: The OutLabel-Array is a list of one or more outgoing > labels " > > So a list is defined as an array and the array is defined as a list :-). > > What about using the same term, e.g. a list? > > -- > > The OutLabel-Array is a list of one or more > > outgoing labels and/or label actions where each label or label > > action has 1-to-1 correspondence to a path in the pathlist. It > > is possible that the number of entries in the OutLabel-array is > > different from the number of paths in the pathlist and the ith > > Outlabel-Array entry is associated with the path whose path- > > index is "i". > > - I don't see how one can have a 1-to-1 correspondance if the number > of elements is not the same. > > - Last sentence could be splitted in 2. > > -- > > Since the term ingres PE is defined, you could also detine the term > egress PE. Possibly in the same sentence. > > OLD: "Ingress PE, "iPE": It is a BGP speaker that learns about a > > prefix through another IBGP peer and chooses that IBGP peer as > > the next-hop for the prefix > > NEW: "Ingress PE, "iPE": It is a BGP speaker that learns about a > > prefix through a IBGP peer and chooses an egress PE as the > next-hop for the prefix. > > As a side note, the previous definition assume that there were no > Route Relfector (the iBGP peer is the BGP Next Hop) > > -- > > §2.3 > > Figure 1 represents a VPN network with 3 PE and a CE. In this context, > "VPN-P1" sounds a bit like a P router. What about :s/VPN-P1/VPN-IP1 ? > Same comment for IGP-P1. > > -- > > §2.3.2 > > OLD: ePE2 constructs the forwarding chain depicted in Figure 1 > > NEW: ePE2 constructs the forwarding chain depicted in Figure 3 > > OLD: VPL-L11 > > NEW: VPN-L11 > > §2.3.3 > > OLD: can reach ASBR1 > > NEW: can reach ASBR11 > > OLD: The label for advertised by ASBR11 to iPE > > NEW: The label advertised by ASBR11 to iPE > > OLD: The labels for advertised by ASBR12 to iPE > > NEW: The labels advertised by ASBR12 to iPE > > OLD: The labels for advertised to iPE by ASBR11 using BGP-LU > > NEW: The labels advertised by ASBR11 to iPE using BGP-LU > > --- > > §3 > > OLD: Let's applying the above forwarding steps to the example > described in Figure 1 Section 2.3.1. > > OLD: Let's applying the above forwarding steps to the example > described in Figure 2 Section 2.3.1. > > (somewhat guesssing. But in all cases, there is no figure 1 in section > 2.3.1) > > --- > > §4.1 > > IMO > > OLD: As soon as the IGP convergence is effective for the BGP nhop > entry, the new forwarding state is immediately available to all > dependent BGP prefixes. > > NEW: As soon as the IGP convergence is effective for a BGP next-hop > entry, the new forwarding state is immediately available to all > dependent BGP prefixes. > > more generally > > :s/nhop/next-hop > > --- > > §4.3 > > :s/PE222/PE22 > > Best regards, > > Bruno > > ** > > _________________________________________________________________________________________________________________________ > > Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc > pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler > a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration, > Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci. > > This message and its attachments may contain confidential or privileged information that may be protected by law; > they should not be distributed, used or copied without authorisation. > If you have received this email in error, please notify the sender and delete this message and its attachments. > As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified. > Thank you. --------------050700020907010209010406 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks a lot for the valuable comments.

I will try the address the comments in the next spin

Ahmed

On 4/20/2016 6:53 AM, bruno.decraene@orange.com wrote:

Hello,

I have been selected as the Routing Directorate reviewer for this draft. The Routing Directorate seeks to review all routing or routing-related drafts as they pass through IETF last call and IESG review, and sometimes on special request. The purpose of the review is to provide assistance to the Routing ADs. For more information about the Routing Directorate, please see http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir

Although these comments are primarily for the use of the Routing ADs, it would be helpful if you could consider them along with any other IETF Last Call comments that you receive, and strive to resolve them through discussion or by updating the draft.

Document: draft-ietf-rtgwg-bgp-pic-00
Reviewer: Bruno Decraene
IETF LC End Date: “QA review” pre WG LC
Intended Status: Informational

Summary:

I have some minor concerns about this document that I think should be resolved before publication.

Comments:

- Document is interesting. Document is relatively clear but sometime it feels like there is a little room for some reformulation/edition to improve fluidity. In particular, the learning curve is a bit steep at the beginning of the doc as most of the concepts are introduced in 3 pages (pages 4-6) in the form of a list of terminology and a pseudo code. I would find useful to have an overview section just after the introduction, with a high level view of the solution with a limited number of new terms.

- The text feels like authoritative, while probably many terms are implementation specific. A priori, I would not expect all implementation of BGP PIC to use the same terms, and possibly not the same data structure. May be the text could be generalized to cover multiple implementations; or modified to describe a generalized concept (i.e. data-structure designed to share as much data as possible between elements, at the cost of additional indirections); or the document could state that it describes a specific implementation with implementations specific terminology, data structure, and specifics. Or a combination of both (e.g. adding a section being both generalized and describing the concept, and then the existing sections after stating that they are specific to one implementation).

 

Minor Issues:

 

- I find figure 2 very useful to understand the data-structure. I would move it sooner in the doc, somewhere before §2.2. (with its subsequent text below) e.g. a new §2.2 "FIB data-structure"

It would need to be generalized i.e. example non-specific. I could think of:

 

IP Leaf:      Pathlist:       IP Leaf:                Pathlist:

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

BGP NLRI ---> BGP NH1   ----> IGP IP1 (BGP NH1)  ---> IGP NH1, I1  ---> Adjacency1

              BGP NHi   --...                         IGP NHi, Ii  --..

               |                                         |

               |                                         |

                |                                         |

                v                                         v

          OutLabel Array:                           OutLabel Array:

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

          L (NLRI, NH1)                             L (IP1, NH1)

          L (NLRI, NHi)                             L (IP1, NHi)

                                                

 

- Figure 1 could be enhanced with IGP-NH1, IGP-NH2, I1 and I2.

- Example 3 does not use the same naming convention than examples 1 and 2, this make it harder to follow for a priori no reason. e.g. VPN labels are named VPN-L11 in examples 1 and 2, but are named VPN-PE21(P1) in exmaple 3; transport labels are named LDP-L12 in exmaples 1 and 2, but LASBR11(PE22) and L11 in figure 3.

- §2.3.3

"The local labels of the next hops".

 - All labels are locally assigned. So what do you mean by "local"

- "next-hop" sometimes refers to IGP/connected next-hop (a priori the case here) and sometimes to BGP next-hop. I find it hard to follow. I rather use a different name (e.g; connected next-hop vs BGP next-hop)

- §3

"the hashing at the BGP level yields path 0 while the hashing at the IGP level yields path 1. In that case, the packet will be sent out of interface I1 with the label stack "LDP-L12,VPN-L21".

Does not seem to match my understanding. For "LDP-L12,VPN-L21" I would assume BGP used path index 1 and IGP used path index 0.

 

IMHO:

OLD: "Hence ASBR22 swaps "LASBR22(PE22)" with the LDP/SR label of PE22, pushes the label of the next-hop towards PE22 in domain 2, and sends the packet along the shortest path towards PE22."

NEW: "Hence ASBR22 swaps "LASBR22(PE22)" with the LDP/SR label for PE22 advertised by the next-hop towards PE22 in domain 2, and sends the packet along the shortest path towards PE22."

(in all cases "swaps" then "pushes" would increase the label stack by 1, which is not the case.)

 

§4.1

"the useable paths in the loadinfo"

loadinfo is a proprietary FIB datastructure which has not been introduced/defined. You need to either remove that term (if possible) or define it somewhere.

 

"Hence traffic restoration occurs within the time frame of IGP convergence,"

agree.

..."and, for local link failure, within the timeframe of local detection. Thus it is possible to achieve sub-50 msec convergence as described in [10] for local link failure"

IMO, this is restricted to specific cases. e.g. external (eBGP) link failure, ECMP case, possibly IP FRR.  So possibly

OLD: for local link failure, within the timeframe of local detection. Thus it is possible to achieve sub-50 msec convergence as described in [10] for local link failure

NEW: for local link failure, assuming a backup path has been precomputed, within the timeframe of local detection (e.g. 50ms). Example of solutions precomputing a backup path are IP FRR [LFA], [RLFA], [MRT], [TI-LFA] or eBGP path having a backup path [10].

 

§4

I would find useful to indicate, for each type of failure, the number of data-structure that need to be updated.

---

§4.2.2

"To avoid loops, ePE2 MUST treat any core facing path as a backup

      path, otherwise ePE2 may redirect traffic arriving from the core

      back to ePE1 causing a loop."

                 

Looks a bit under-described to me. Could you please elaborate a bit? In particular:

- if 2 PE (PE1, PE2) are connected in U to 2 P (P1, P2)     (P1-PE1-PE2-P2), PE1 being nominal and PE2 only used in backup, in the nominal situation, if the core network sends the trafic to PE1 via PE2 (used as a P/transit), how does PE2 know that it must send this traffic to PE1? (rather than CE2)

- this behavior looks like an additional specific feature. How doew ePE1 knows that ePE2 have this feature?

---

§4.3

"  Hence if the platform supports the "unflattened" forwarding chain,

   then a single pathlist needs to be updated while if the platform

   supports a shallower forwarding chain, then two pathlists need to be

   updated."

IINM "single"  and "two" pathlist applies to the specific example. In this last sentence/summary, I'd prefer a more general statement. A priori, without digging too much in this most complex use case, it seems like :s/single/o(1)  :s/two/o(PE) . The former looks close (single vs o(1)) but IMHO there is a significant difference between 2 and o(PE) (i.e. 100s)

---

§5.1

Good paragraph. It's quite clear that the convergence time does not depend on the number of BGP prefixes, which is good. For the benefit of the reader, it would be even more interesting if, for each type of failure, the text could indicate on what it depends. e.g.  o(1), o(connected interfaces), o(PE), o(PEnominal*PEbackup)....  

--

§7

"No additional security risk is introduced by using the mechanisms proposed in this document"

In general, with such a sentence, it's difficult to evaluate whether the authors have very quickly evaluated the risk or if this evaluation has been performed in details. So in general, some more text detailing which aspects have been evaluated is interesting for the reader (yet painful for the authors).

As the document describe an internal box behavior, this is difficult to evaluate and discuss. But from a bad experience, I fear that there may be an impact. Indeed, with such structure, the FIB structure/memory is typically different between BGP prefixes and IGP prefixes. In general, the implementation is designed to support the "right" numbers of both. But assuming an accident or an attack, the numbers may not be "right". e.g. one upon a time, someone has redistributed the BGP table into the IGP. In this case, the total number of IP prefixes in the FIB is exactly the same. But as the data structure used in the FIB was different between BGP and IGP prefixes, the FIB ran out of memory and the line card crashed (well actually only the IP FIB, so IS-IS hello packet were still correctly sent and forwarded. As a result, traffic was permanently black holed)

---

§ 9

OLD: that allows achieving prefix independent convergence

NEW: that allows achieving BGP prefixes independent convergence

 

(it's still depend on the number of IGP prefixes and/or BGP pathlist)

 

Nits:

 

Abstract

"via more than one path."

In this 1rst sentence, it's not clear what path really means. (e.g cf the terminology section where you have more than one). I guess that you mean "BGP path". (as there are also typically multiple IGP path to reach each BGP Next Hop)

 

"The objective is achieved through organizing the forwarding chains"

"chain" does not self self explicit to me. what about :s/chains/data structure"

 

"complete transparency"

what do you mean? transparency to what / from who?

§1

OLD: to allow for more than one path for a given prefix

NEW: to allow for BGP to advertise more than one path for a given prefix

 

OLD: Another more common and widely deployed scenario is L3VPN with multi-homed VPN sites

NEW: Another more common and widely deployed scenario is L3VPN with multi-homed VPN sites with unique Route Distinguisher.

 

---

§1.2

"Pathlist: It is an array of paths"

"OutLabel-Array: The OutLabel-Array is a list of one or more outgoing labels "

 

So a list is defined as an array and the array is defined as a list :-).

What about using the same term, e.g. a list?

--

The OutLabel-Array is a list of one or more

      outgoing labels and/or label actions where each label or label

      action has 1-to-1 correspondence to a path in the pathlist. It

      is possible that the number of entries in the OutLabel-array is

      different from the number of paths in the pathlist and the ith

      Outlabel-Array entry is associated with the path whose path-

      index is "i".

                 

- I don't see how one can have a 1-to-1 correspondance if the number of elements is not the same.

- Last sentence could be splitted in 2.

--             

Since the term ingres PE is defined, you could also detine the term egress PE. Possibly in the same sentence.

OLD: "Ingress PE, "iPE": It is a BGP speaker that learns about a

      prefix through another IBGP peer and chooses that IBGP peer as

      the next-hop for the prefix

                 

NEW:      "Ingress PE, "iPE": It is a BGP speaker that learns about a

      prefix through a IBGP peer and chooses an egress PE as the next-hop for the prefix.

                 

As a side note, the previous definition assume that there were no Route Relfector (the iBGP peer is the BGP Next Hop)                 

--

§2.3

Figure 1 represents a VPN network with 3 PE and a CE. In this context, "VPN-P1" sounds a bit like a P router. What about :s/VPN-P1/VPN-IP1  ? Same comment for IGP-P1.

--

§2.3.2

OLD: ePE2 constructs the forwarding chain depicted in Figure 1

NEW: ePE2 constructs the forwarding chain depicted in Figure 3

 

OLD: VPL-L11

NEW: VPN-L11

 

§2.3.3

OLD: can reach ASBR1

NEW: can reach ASBR11

 

OLD: The label for advertised by ASBR11 to iPE

NEW: The label advertised by ASBR11 to iPE

 

OLD: The labels for advertised by ASBR12 to iPE

NEW: The labels advertised by ASBR12 to iPE

 

OLD: The labels for advertised to iPE by ASBR11 using BGP-LU

NEW: The labels advertised  by ASBR11 to iPE using BGP-LU

---

§3

 

OLD: Let's applying the above forwarding steps to the example described in Figure 1 Section 2.3.1.

OLD: Let's applying the above forwarding steps to the example described in Figure 2 Section 2.3.1.

 

(somewhat guesssing. But in all cases, there is no figure 1 in section 2.3.1)

 

---

§4.1

IMO

OLD: As soon as the IGP convergence is effective for the BGP nhop entry, the new forwarding state is immediately available to all dependent BGP prefixes.

NEW: As soon as the IGP convergence is effective for a BGP next-hop entry, the new forwarding state is immediately available to all dependent BGP prefixes.

 

more generally

:s/nhop/next-hop

---

§4.3

:s/PE222/PE22

 

Best regards,

Bruno

 

_________________________________________________________________________________________________________________________

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

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

--------------050700020907010209010406-- From nobody Thu Apr 21 18:31:30 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CF59212EC6D; Thu, 21 Apr 2016 18:31:28 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.902 X-Spam-Level: X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=junipernetworks.onmicrosoft.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zrabjvzWT0_N; Thu, 21 Apr 2016 18:31:26 -0700 (PDT) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0701.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:701]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7154512EC6B; Thu, 21 Apr 2016 18:31:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=junipernetworks.onmicrosoft.com; s=selector1-juniper-net; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=6ZqD/3oZ3K/nB3x7Amc4aV1QCdNk7JeG6U0cCwwn1x0=; b=F12VPhsoggsesn/7RgELGvC2TjjMuXorX5YMABgClleiYRMvN5hDgiDJ9Nvq5FULdNvR6nWPQyFJHc+c0DXR0KzGsTXBA/i9mZdimzCCZxn9W4H5GLB8s7PWF3EcI6+gw7hrMYeCjNNFnkYA4CHc+Jjf8dCvc3H9M9umgqtqPuY= Received: from SN1PR0501MB1709.namprd05.prod.outlook.com (10.163.130.155) by SN1PR0501MB1712.namprd05.prod.outlook.com (10.163.130.158) with Microsoft SMTP Server (TLS) id 15.1.466.19; Fri, 22 Apr 2016 01:31:07 +0000 Received: from SN1PR0501MB1709.namprd05.prod.outlook.com ([10.163.130.155]) by SN1PR0501MB1709.namprd05.prod.outlook.com ([10.163.130.155]) with mapi id 15.01.0466.023; Fri, 22 Apr 2016 01:31:08 +0000 From: John E Drake To: "rtg-ads@ietf.org" Thread-Topic: RtgDir review: draft-ietf-i2rs-yang-network-topo-02.txt Thread-Index: AdGcNeg82jdlR8nEQn24OJ2iDs8AfQ== Date: Fri, 22 Apr 2016 01:31:07 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=juniper.net; x-originating-ip: [66.129.239.13] x-ms-office365-filtering-correlation-id: 877d092e-8d40-4d4e-1679-08d36a4dc774 x-microsoft-exchange-diagnostics: 1; SN1PR0501MB1712; 5:Pamli/Simd70s3wdNVfoFks0lc132Za9o4eGyb5jmWKfFK42na+wiCEoUBu9wLUR0KEKPBTvRfQ8fAUv9VTu55Bn72SoyoliUoLAsCacQk4papqDKU5lyzgzpaZmei0DMZ6xESXl24/0jLnbWC8yyv0tOVtMZBb64DFWHIUTPgymERQn8vZfrxN1vAde1HvM; 24:ujOXJXcGIWJSu5PAUIKrhqMI5B5GD6+DBrofaNxl35h/GSEH6M0wt/bsK7BwriLc7S89KnDDbSJZTc0WSyZ8CMBqJ0zJodbiGLL8otW1IN4=; 7:9cIriNKTUbjUVw3EHKCSthGj/EbS1HMJsczkRh37+IAhLGgGCMaQK4p6CpVqY2DpjQSixUx37xnzng2asP/1Gd8JcAvb3oZHKudYxMObSRCKTEa4YpDXoeMl7qovMBhi3tXgD2QbBxUKxRPPrtvTrFlpWIbN/Y6EldpWgLdb4jBTLSP5VDQn4dMJrNbx2EDDV55HxMwlwgqvGa9azKv9luRKv8ur/gKHSaOYpX+mBwo= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0501MB1712; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(9101521026)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026); SRVR:SN1PR0501MB1712; BCL:0; PCL:0; RULEID:; SRVR:SN1PR0501MB1712; x-forefront-prvs: 0920602B08 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(3846002)(6116002)(74316001)(33656002)(4326007)(66066001)(86362001)(77096005)(102836003)(1220700001)(1096002)(230783001)(450100001)(2906002)(2351001)(76576001)(110136002)(5003600100002)(229853001)(2900100001)(586003)(5002640100001)(87936001)(92566002)(99286002)(1720100001)(50986999)(54356999)(189998001)(5640700001)(5004730100002)(81166005)(10400500002)(9686002)(5008740100001)(2501003)(19580395003)(122556002); DIR:OUT; SFP:1102; SCL:1; SRVR:SN1PR0501MB1712; H:SN1PR0501MB1709.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: juniper.net X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Apr 2016 01:31:07.8953 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR0501MB1712 Archived-At: Cc: "rtg-dir@ietf.org" , "draft-ietf-i2rs-yang-network-topo.all@ietf.org" , "i2rs@ietf.org" Subject: [RTG-DIR] RtgDir review: draft-ietf-i2rs-yang-network-topo-02.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Apr 2016 01:31:29 -0000 SGVsbG8sDQoNCkkgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHRoZSBSb3V0aW5nIERpcmVjdG9yYXRl IHJldmlld2VyIGZvciB0aGlzIGRyYWZ0LiBUaGUgUm91dGluZyBEaXJlY3RvcmF0ZSBzZWVrcyB0 byByZXZpZXcgYWxsIHJvdXRpbmcgb3Igcm91dGluZy1yZWxhdGVkIGRyYWZ0cyBhcyB0aGV5IHBh c3MgdGhyb3VnaCBJRVRGIGxhc3QgY2FsbCBhbmQgSUVTRyByZXZpZXcsIGFuZCBzb21ldGltZXMg b24gc3BlY2lhbCByZXF1ZXN0LiBUaGUgcHVycG9zZSBvZiB0aGUgcmV2aWV3IGlzIHRvIHByb3Zp ZGUgYXNzaXN0YW5jZSB0byB0aGUgUm91dGluZyBBRHMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFi b3V0IHRoZSBSb3V0aW5nIERpcmVjdG9yYXRlLCBwbGVhc2Ugc2VlIOKAi2h0dHA6Ly90cmFjLnRv b2xzLmlldGYub3JnL2FyZWEvcnRnL3RyYWMvd2lraS9SdGdEaXINCg0KQWx0aG91Z2ggdGhlc2Ug Y29tbWVudHMgYXJlIHByaW1hcmlseSBmb3IgdGhlIHVzZSBvZiB0aGUgUm91dGluZyBBRHMsIGl0 IHdvdWxkIGJlIGhlbHBmdWwgaWYgeW91IGNvdWxkIGNvbnNpZGVyIHRoZW0gYWxvbmcgd2l0aCBh bnkgb3RoZXIgSUVURiBMYXN0IENhbGwgY29tbWVudHMgdGhhdCB5b3UgcmVjZWl2ZSwgYW5kIHN0 cml2ZSB0byByZXNvbHZlIHRoZW0gdGhyb3VnaCBkaXNjdXNzaW9uIG9yIGJ5IHVwZGF0aW5nIHRo ZSBkcmFmdC4NCg0KRG9jdW1lbnQ6IGRyYWZ0LWlldGYtaTJycy15YW5nLW5ldHdvcmstdG9wby0w Mi50eHQNClJldmlld2VyOiBKb2huIEUgRHJha2UNClJldmlldyBEYXRlOiAyMS1BcHItMjAxNg0K SW50ZW5kZWQgU3RhdHVzOiBTdGFuZGFyZHMgVHJhY2sNCg0KU3VtbWFyeToNCkNob29zZSBmcm9t IHRoaXMgbGlzdC4uLg0KDQogICAgTm8gaXNzdWVzIGZvdW5kLiBUaGlzIGRvY3VtZW50IGlzIHJl YWR5IGZvciBwdWJsaWNhdGlvbi4NCg0KQ29tbWVudHM6DQoNCiAgICBBIHZlcnkgd2VsbCB3cml0 dGVuIGFuZCBjb21wcmVoZW5zaWJsZSBkcmFmdC4gDQoNCk1ham9yIElzc3VlczoNCg0KICAgIE5v IG1ham9yIGlzc3VlcyBmb3VuZC4gDQoNCk1pbm9yIElzc3VlczoNCg0KICAgIE5vIG1pbm9yIGlz c3VlcyBmb3VuZC4NCg0KWW91cnMgSXJyZXNwZWN0aXZlbHksDQoNCkpvaG4NCg0K From nobody Sun Apr 24 01:28:35 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DD47A12D103; Sun, 24 Apr 2016 01:28:33 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.9 X-Spam-Level: X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 77JJzzIPaT2i; Sun, 24 Apr 2016 01:28:31 -0700 (PDT) Received: from mailex.mailcore.me (smtp.123-reg.co.uk [94.136.40.63]) by ietfa.amsl.com (Postfix) with ESMTP id 5B59912D0E5; Sun, 24 Apr 2016 01:28:30 -0700 (PDT) Received: from 97e41b89.skybroadband.com ([151.228.27.137] helo=[192.168.0.6]) by smtp04.mailcore.me with esmtpa (Exim 4.80.1) (envelope-from ) id 1auFP3-0001ky-Gc; Sun, 24 Apr 2016 09:28:29 +0100 From: Ben Niven-Jenkins Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Sun, 24 Apr 2016 09:28:27 +0100 Message-Id: <719932B6-AA05-47A4-99BA-EBB842D3AFF0@niven-jenkins.co.uk> To: rtg-ads@ietf.org Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\)) X-Mailer: Apple Mail (2.2098) X-Mailcore-Auth: 9600544 X-Mailcore-Domain: 172912 Archived-At: Cc: rtg-dir@ietf.org, draft-ietf-trill-directory-assisted-encap-02.all@ietf.org, trill@ietf.org Subject: [RTG-DIR] RtgDir review: draft-ietf-trill-directory-assisted-encap-02 X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2016 08:28:34 -0000 Hello, I have been selected as the Routing Directorate reviewer for this draft. = The Routing Directorate seeks to review all routing or routing-related = drafts as they pass through IETF last call and IESG review. The purpose = of the review is to provide assistance to the Routing ADs. For more = information about the Routing Directorate, please see = =E2=80=8Bhttp://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir Although these comments are primarily for the use of the Routing ADs, it = would be helpful if you could consider them along with any other IETF = Last Call comments that you receive, and strive to resolve them through = discussion or by updating the draft. Document: draft-ietf-trill-directory-assisted-encap-02.txt=20 Reviewer: Ben Niven-Jenkins Review Date: 21 April 2016=20 Intended Status: Proposed Standard Summary:=20 I have significant concerns about this document and recommend that the = Routing ADs discuss these issues further with the authors. Comments:=20 Overall this is not the easiest document to read although some of that = might be due to my lack of background in TRILL and its terminology. Major Issues:=20 1) The document has an Intended Status of Proposed Standard, however it = does not contain any RFC2119 keywords and does not seem to make any = normative statements about required behaviour which I would have = expected in a Proposed Standard. 2) Section 4: If I understand correctly the TRILL-EN spoofs the Ingress = RBridge edge node's nickname in the source address field of the TRILL = header. Is this likely to introduce problems? E.g. if RBridges will = accept & forward frames that have their own source address in, does it = perpetuate routing loops or present security considerations that the = document should discuss? Section 8 on Security Considerations also looks very light on text. If = you are allowing TRILL-ENs to spoof RBridge source addresses (which I = think you are, see comment above) I think you should have a discussion = about that somewhere in the document. Minor Issues:=20 1) Section 3. I am not sure what Figure 2 is trying to convey and it is = not referred to by the main text. Is it required? 2) Section 3 says: Editor's note: [Directory] has defined Push and Pull methods for edge RBridges to get directory mapping information. The Pull Model is relative simple for TRILL-EN to implement (see Section 9). Pushing Directory information requires some reliable flooding mechanism, like the one used by IS-IS, between the edge RBridge and the TRILL encapsulating node. which gives me the impression the authors prefer pull and discourage = push as it would require something extra like IS-IS. However, Section 4 says The TRILL-EN learns this nickname by listening to the TRILL IS-IS Hellos from the Ingress RBridge. which makes me think if the TRILL-EN is running IS-IS for hellos, is = pushing the directory such an obstacle? Is whether the directory is pulled or pushed something this document = needs to discuss at all? If it does need to discuss push vs pull, should = the document be stronger and make a clearer recommendation on which = method should be used (or implemented by default) to aid with = interoperability? 3) Section 5.1 states setting TRILL boundary at aggregation switches that have many virtualized servers attached can limit the number of RBridge nodes in a TRILL domain, but introduce the issues of very large MAC&VLAN<->RBridgeEdge mapping table to be maintained by RBridge edge nodes and the necessity of enforcing AF ports. Allowing Non-RBridge nodes to pre-encapsulate data frames with TRILL header makes it possible to have a TRILL domain with a reasonable number of RBridge nodes in a large data center. All the TRILL-ENs attached to one RBridge are represented by one TRILL nickname, which can avoid the Nickname exhaustion problem. As I understand it TRILL-ENs pre-encapsulate packets that they send, but = when receiving packets the RBridge attached to the TRILL-EN decapsulates = the TRILL packet and forwards it to the TRILL-EN =E2=80=9Cnatively=E2=80=9D= (without TRILL encapsulation), as stated in section 3: When a TRILL frame arrives at an RBridge whose nickname matches with the destination nickname in the TRILL header of the frame, the processing is exactly same as normal, i.e. as specified in [RFC6325] the RBridge decapsulates the received TRILL frame and forwards the decapsulated frame to the target attached to its edge ports. Therefore all the RBridges still need to maintain a very large = "MAC&VLAN<->RBridgeEdge mapping table=E2=80=9D? If that is the case, = what advantage does this approach give over the =E2=80=9Cbase case=E2=80=9D= of setting TRILL boundary at aggregation switches? 4) Section 7 on Manageability Considerations only states that in order = for the solution to work requires the availability of a directory = service, which seems a bit redundant when the entire document is about = "Directory Assisted TRILL Encapsulation=E2=80=9D. Is this section = required? Regards Ben From nobody Sun Apr 24 01:32:12 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0F96B12D0E5; Sun, 24 Apr 2016 01:32:11 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.7 X-Spam-Level: X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TWn_ipIhQX1D; Sun, 24 Apr 2016 01:32:09 -0700 (PDT) Received: from mail-pf0-x22e.google.com (mail-pf0-x22e.google.com [IPv6:2607:f8b0:400e:c00::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 763FE12B01D; Sun, 24 Apr 2016 01:32:09 -0700 (PDT) Received: by mail-pf0-x22e.google.com with SMTP id c189so10859568pfb.3; Sun, 24 Apr 2016 01:32:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=OYufAB9YK6m3gko7iLHVk+szXGuEpqR9wg2Iw5LGVr0=; b=G9c4O/gjbav54VsIlqUa4kvXPwJOZ9bXCRBNJrRjudjDDuEyvpkBf6E1PaPq/bUIj4 d9jEYUdtja72upZit+1jcHAzT+TSbmNocbFoYW+JjRaHmIZRgBixsi1tVzzvj21JKmOM OsWPAtTyXHKbBPnMiiNj5PrJ/X3q829ie51VrPDANn1Z2iVYSzHWc7ZSTqoAPx/NNimA uVXwRDZUIh0MlNA7WSPCu4uSnmLzDDub8UtZwErJXQGYDA/62rt6WDxv0bAm4/PakNt+ rRgZqGg3yT6zUm/bO2IXg685g+LkEuaOGT8C2IZeqIuyrnKTIQZhnun8aK2QFzAXe2ws mUZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=OYufAB9YK6m3gko7iLHVk+szXGuEpqR9wg2Iw5LGVr0=; b=mzGo81TJ7IEm0FboguNX8xysfNcyNmqmzSMwudw5frpSz60dtwn2WKxW8sFrpL79Xt 59bQnjLpMCedUA6Dn0NOI1rasenJFmcwLDm/riF6NotxRt2nAsklMkGUwMXoOKfwwNW5 e7gN3wxz6XqzYF7mgCFIxxI4ngV8P4i5C1is9lGTkNynPamW/cKsB58xTvzp0yNXxrrV XM3aT3qrOwk+cHPVUj5zxAaS+fDRQB1I2WRmKcuBhjJbcDmpSCrK+gYTfGvQGF3ryFg1 ZA/CQarkKp2VqoV7v5ze/sMTSsah0uBzijm/7m6iMno2qzmkb/rrliHQgyVMw/YWB8/T 74Tg== X-Gm-Message-State: AOPr4FU2RYbq/KUY+plkF0Js72v76fAMkKO0UjD/xHpPILtfCrW5W9Q2D+mtTAyTQO7M7Q== X-Received: by 10.98.1.69 with SMTP id 66mr41437126pfb.10.1461486729033; Sun, 24 Apr 2016 01:32:09 -0700 (PDT) Received: from [10.0.1.18] (c-98-234-217-127.hsd1.ca.comcast.net. [98.234.217.127]) by smtp.gmail.com with ESMTPSA id h85sm19694778pfj.52.2016.04.24.01.32.07 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 24 Apr 2016 01:32:08 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (1.0) From: Jon Hudson X-Mailer: iPhone Mail (13E238) In-Reply-To: <719932B6-AA05-47A4-99BA-EBB842D3AFF0@niven-jenkins.co.uk> Date: Sun, 24 Apr 2016 01:32:07 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: References: <719932B6-AA05-47A4-99BA-EBB842D3AFF0@niven-jenkins.co.uk> To: Ben Niven-Jenkins Archived-At: Cc: rtg-ads@ietf.org, rtg-dir@ietf.org, draft-ietf-trill-directory-assisted-encap-02.all@ietf.org, trill@ietf.org Subject: Re: [RTG-DIR] RtgDir review: draft-ietf-trill-directory-assisted-encap-02 X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2016 08:32:11 -0000 WoW! Thank you so much. Jon > On Apr 24, 2016, at 1:28 AM, Ben Niven-Jenkins w= rote: >=20 > Hello, >=20 > I have been selected as the Routing Directorate reviewer for this draft. T= he Routing Directorate seeks to review all routing or routing-related drafts= as they pass through IETF last call and IESG review. The purpose of the rev= iew is to provide assistance to the Routing ADs. For more information about t= he Routing Directorate, please see =E2=80=8Bhttp://trac.tools.ietf.org/area/= rtg/trac/wiki/RtgDir >=20 > Although these comments are primarily for the use of the Routing ADs, it w= ould be helpful if you could consider them along with any other IETF Last Ca= ll comments that you receive, and strive to resolve them through discussion o= r by updating the draft. >=20 > Document: draft-ietf-trill-directory-assisted-encap-02.txt=20 > Reviewer: Ben Niven-Jenkins > Review Date: 21 April 2016=20 > Intended Status: Proposed Standard >=20 > Summary:=20 > I have significant concerns about this document and recommend that the Rou= ting ADs discuss these issues further with the authors. >=20 > Comments:=20 > Overall this is not the easiest document to read although some of that mig= ht be due to my lack of background in TRILL and its terminology. >=20 >=20 > Major Issues:=20 > 1) The document has an Intended Status of Proposed Standard, however it do= es not contain any RFC2119 keywords and does not seem to make any normative s= tatements about required behaviour which I would have expected in a Proposed= Standard. >=20 > 2) Section 4: If I understand correctly the TRILL-EN spoofs the Ingress RB= ridge edge node's nickname in the source address field of the TRILL header. I= s this likely to introduce problems? E.g. if RBridges will accept & forward f= rames that have their own source address in, does it perpetuate routing loop= s or present security considerations that the document should discuss? >=20 > Section 8 on Security Considerations also looks very light on text. If you= are allowing TRILL-ENs to spoof RBridge source addresses (which I think you= are, see comment above) I think you should have a discussion about that som= ewhere in the document. >=20 >=20 > Minor Issues:=20 > 1) Section 3. I am not sure what Figure 2 is trying to convey and it is no= t referred to by the main text. Is it required? >=20 > 2) Section 3 says: >=20 > Editor's note: [Directory] has defined Push and Pull methods for edge > RBridges to get directory mapping information. The Pull Model is > relative simple for TRILL-EN to implement (see Section 9). Pushing > Directory information requires some reliable flooding mechanism, like > the one used by IS-IS, between the edge RBridge and the TRILL > encapsulating node. >=20 > which gives me the impression the authors prefer pull and discourage push a= s it would require something extra like IS-IS. >=20 > However, Section 4 says >=20 > The TRILL-EN learns this nickname by listening > to the TRILL IS-IS Hellos from the Ingress RBridge. >=20 > which makes me think if the TRILL-EN is running IS-IS for hellos, is pushi= ng the directory such an obstacle? >=20 > Is whether the directory is pulled or pushed something this document needs= to discuss at all? If it does need to discuss push vs pull, should the docu= ment be stronger and make a clearer recommendation on which method should be= used (or implemented by default) to aid with interoperability? >=20 > 3) Section 5.1 states >=20 > setting TRILL boundary at aggregation > switches that have many virtualized servers attached can limit the > number of RBridge nodes in a TRILL domain, but introduce the issues > of very large MAC&VLAN<->RBridgeEdge mapping table to be maintained > by RBridge edge nodes and the necessity of enforcing AF ports. >=20 > Allowing Non-RBridge nodes to pre-encapsulate data frames with TRILL > header makes it possible to have a TRILL domain with a reasonable > number of RBridge nodes in a large data center. All the TRILL-ENs > attached to one RBridge are represented by one TRILL nickname, which > can avoid the Nickname exhaustion problem. >=20 > As I understand it TRILL-ENs pre-encapsulate packets that they send, but w= hen receiving packets the RBridge attached to the TRILL-EN decapsulates the T= RILL packet and forwards it to the TRILL-EN =E2=80=9Cnatively=E2=80=9D (with= out TRILL encapsulation), as stated in section 3: >=20 > When a TRILL frame arrives at an RBridge whose nickname matches with > the destination nickname in the TRILL header of the frame, the > processing is exactly same as normal, i.e. as specified in [RFC6325] > the RBridge decapsulates the received TRILL frame and forwards the > decapsulated frame to the target attached to its edge ports. >=20 > Therefore all the RBridges still need to maintain a very large "MAC&VLAN<-= >RBridgeEdge mapping table=E2=80=9D? If that is the case, what advantage doe= s this approach give over the =E2=80=9Cbase case=E2=80=9D of setting TRILL b= oundary at aggregation switches? >=20 > 4) Section 7 on Manageability Considerations only states that in order for= the solution to work requires the availability of a directory service, whic= h seems a bit redundant when the entire document is about "Directory Assiste= d TRILL Encapsulation=E2=80=9D. Is this section required? >=20 > Regards > Ben >=20 From nobody Sun Apr 24 13:42:08 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C98BD12D0E6; Sun, 24 Apr 2016 13:42:03 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -7.896 X-Spam-Level: X-Spam-Status: No, score=-7.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.996] autolearn=unavailable autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02sSMHAyeoe5; Sun, 24 Apr 2016 13:42:03 -0700 (PDT) Received: from ran.psg.com (ran.psg.com [IPv6:2001:418:8006::18]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3566212D0FD; Sun, 24 Apr 2016 13:42:00 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=ryuu.psg.com) by ran.psg.com with esmtp (Exim 4.82) (envelope-from ) id 1auQqk-0004kf-OM; Sun, 24 Apr 2016 20:41:50 +0000 Date: Mon, 25 Apr 2016 05:41:48 +0900 Message-ID: From: Randy Bush To: Mach Chen In-Reply-To: References: User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/22.3 Mule/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII Archived-At: Cc: "rtg-dir@ietf.org" , "grow@ietf.org" , "draft-ietf-grow-route-leak-problem-definition.all@ietf.org" , "rtg-ads@tools.ietf.org" Subject: Re: [RTG-DIR] [GROW] RtgDir review of draft-ietf-grow-route-leak-problem-definition-04.txt X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Apr 2016 20:42:04 -0000 > "... from the customer cone of the lateral peer.", what's the mean of > the "customer cone" here? It's better to use a more common term here. well known term. you want "transitive closure of customers of lateral peer?? randy From nobody Sun Apr 24 17:44:49 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2FBDA12D094; Sun, 24 Apr 2016 17:44:48 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -5.218 X-Spam-Level: X-Spam-Status: No, score=-5.218 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B4J5BTWRSZaW; Sun, 24 Apr 2016 17:44:45 -0700 (PDT) Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0E2EB12B05F; Sun, 24 Apr 2016 17:44:43 -0700 (PDT) Received: from 172.18.7.190 (EHLO lhreml707-cah.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CII71687; Mon, 25 Apr 2016 00:44:41 +0000 (GMT) Received: from NKGEML412-HUB.china.huawei.com (10.98.56.73) by lhreml707-cah.china.huawei.com (10.201.5.199) with Microsoft SMTP Server (TLS) id 14.3.235.1; Mon, 25 Apr 2016 01:44:37 +0100 Received: from NKGEML513-MBX.china.huawei.com ([169.254.1.56]) by nkgeml412-hub.china.huawei.com ([10.98.56.73]) with mapi id 14.03.0235.001; Mon, 25 Apr 2016 08:44:26 +0800 From: Liyizhou To: Liyizhou , Geoff Huston , "rtg-ads@tools.ietf.org" Thread-Topic: [trill] RtgDir review: draft-ietf-trill-arp-optimization Thread-Index: AQHRl4GIP3VGSJP0X0KTEMHOwz8xxp+PChcwgArd1uA= Date: Mon, 25 Apr 2016 00:44:25 +0000 Message-ID: References: <85F5A4D0-AE6B-4B5A-B888-0F0FF9859991@apnic.net> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.135.180.237] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020206.571D687A.002C, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=169.254.1.56, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 3892fa909b3e4652b982b66b17dd265d Archived-At: Cc: "draft-ietf-trill-arp-optimization@tools.ietg.org" , "rtg-dir@ietf.org" , "trill@ietf.org" Subject: Re: [RTG-DIR] [trill] RtgDir review: draft-ietf-trill-arp-optimization X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2016 00:44:48 -0000 SGkgR2VvZmYsDQoNCkkgaGF2ZSB1cGxvYWRlZCB0aGUgbmV3IHZlcnNpb24gdG8gcmVmbGVjdCB5 b3VyIHN1Z2dlc3Rpb25zLiBUaGFuayB5b3UuDQoNClJnZHMsDQpZaXpob3UNCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IExpeWl6aG91IA0KU2VudDogTW9uZGF5LCBBcHJpbCAx OCwgMjAxNiAxMDo1MCBBTQ0KVG86ICdHZW9mZiBIdXN0b24nOyBydGctYWRzQHRvb2xzLmlldGYu b3JnDQpDYzogZHJhZnQtaWV0Zi10cmlsbC1hcnAtb3B0aW1pemF0aW9uQHRvb2xzLmlldGcub3Jn OyBydGctZGlyQGlldGYub3JnOyB0cmlsbEBpZXRmLm9yZw0KU3ViamVjdDogUkU6IFt0cmlsbF0g UnRnRGlyIHJldmlldzogZHJhZnQtaWV0Zi10cmlsbC1hcnAtb3B0aW1pemF0aW9uDQoNCkhpIEdl b2ZmLA0KDQpUaGFuayB5b3UgZm9yIHRoZSByZXZpZXcgYW5kIGNvbW1lbnRzLiBJIHdpbGwgdXBk YXRlIHRoZSB0ZXh0IGFzIHlvdSBzdWdnZXN0ZWQgaW4gbmV4dCByZXZpc2lvbi4NCg0KVGhhbmtz LA0KWWl6aG91DQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IHRyaWxsIFtt YWlsdG86dHJpbGwtYm91bmNlc0BpZXRmLm9yZ10gT24gQmVoYWxmIE9mIEdlb2ZmIEh1c3Rvbg0K U2VudDogU2F0dXJkYXksIEFwcmlsIDE2LCAyMDE2IDk6NDQgQU0NClRvOiBydGctYWRzQHRvb2xz LmlldGYub3JnDQpDYzogZHJhZnQtaWV0Zi10cmlsbC1hcnAtb3B0aW1pemF0aW9uQHRvb2xzLmll dGcub3JnOyBydGctZGlyQGlldGYub3JnOyB0cmlsbEBpZXRmLm9yZw0KU3ViamVjdDogW3RyaWxs XSBSdGdEaXIgcmV2aWV3OiBkcmFmdC1pZXRmLXRyaWxsLWFycC1vcHRpbWl6YXRpb24NCg0KSGVs bG8sDQoNCkkgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHRoZSBSb3V0aW5nIERpcmVjdG9yYXRlIHJl dmlld2VyIGZvciB0aGlzIGRyYWZ0LiBUaGUgUm91dGluZyBEaXJlY3RvcmF0ZSBzZWVrcyB0byBy ZXZpZXcgYWxsIHJvdXRpbmcgb3Igcm91dGluZy1yZWxhdGVkIGRyYWZ0cyBhcyB0aGV5IHBhc3Mg dGhyb3VnaCBJRVRGIGxhc3QgY2FsbCBhbmQgSUVTRyByZXZpZXcsIGFuZCBzb21ldGltZXMgb24g c3BlY2lhbCByZXF1ZXN0LiBUaGUgcHVycG9zZSBvZiB0aGUgcmV2aWV3IGlzIHRvIHByb3ZpZGUg YXNzaXN0YW5jZSB0byB0aGUgUm91dGluZyBBRHMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0 IHRoZSBSb3V0aW5nIERpcmVjdG9yYXRlLCBwbGVhc2Ugc2VlIOKAi2h0dHA6Ly90cmFjLnRvb2xz LmlldGYub3JnL2FyZWEvcnRnL3RyYWMvd2lraS9SdGdEaXINCg0KQWx0aG91Z2ggdGhlc2UgY29t bWVudHMgYXJlIHByaW1hcmlseSBmb3IgdGhlIHVzZSBvZiB0aGUgUm91dGluZyBBRHMsIGl0IHdv dWxkIGJlIGhlbHBmdWwgaWYgeW91IGNvdWxkIGNvbnNpZGVyIHRoZW0gYWxvbmcgd2l0aCBhbnkg b3RoZXIgSUVURiBMYXN0IENhbGwgY29tbWVudHMgdGhhdCB5b3UgcmVjZWl2ZSwgYW5kIHN0cml2 ZSB0byByZXNvbHZlIHRoZW0gdGhyb3VnaCBkaXNjdXNzaW9uIG9yIGJ5IHVwZGF0aW5nIHRoZSBk cmFmdC4NCg0KRG9jdW1lbnQ6IGRyYWZ0LWlldGYtdHJpbGwtYXJwLW9wdGltaXphdGlvbi0wNS50 eHQNClJldmlld2VyOiBHZW9mZiBIdXN0b24NClJldmlldyBEYXRlOiAxNiBBcHJpbCAyMDE2DQpJ RVRGIExDIEVuZCBEYXRlOiBkYXRlLWlmLWtub3duIA0KSW50ZW5kZWQgU3RhdHVzOiBjb3B5LWZy b20tSS1EDQoNClN1bW1hcnk6IA0KCVRoaXMgZG9jdW1lbnQgaXMgYmFzaWNhbGx5IHJlYWR5IGZv ciBwdWJsaWNhdGlvbiwgYnV0IGhhcyBuaXRzIHRoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgcHJp b3IgdG8gcHVibGljYXRpb24uDQoNCkNvbW1lbnRzOg0KCUkgZm91bmQgdGhlIGRyYWZ0IGNvbmNp c2UgYW5kIGNsZWFyLiBJdCB3YXMgcmVhZGFibGUgYW5kIHJlYWRpbHkgdW5kZXJzdG9vZC4NCg0K TWFqb3IgSXNzdWVzOg0KCU5vIG1ham9yIGlzc3VlcyBmb3VuZA0KDQoNCk1pbm9yIElzc3VlczoN CglObyBtaW5vciBpc3N1ZXMgZm91bmQuDQoNCk5pdHM6DQoJTWlub3I6DQoJIHNlY3Rpb24gMjog 4oCcLi4ucmVjZWl2ZSBhbmQgc2F2ZSBzdWNoIG1hcHBpbmcgaW5mb3JtYXRpb24gYWxzby7igJ0g c2VlbXMgYSBiaXQgc3RpbHRlZCAgYW5kIEkgd291bGQgc2F5IOKAnGFsc28gcmVjZWl2ZSBhbmQg c2F2ZSBzdWNoIG1hcHBpbmcgaW5mb3JtYXRpb24uDQoNCiAgICAgICAgIHNlY3Rpb24gMy4xICJw b3B1bGF0ZSB0aGUgaW5mb3JtYXRpb24gb2Ygc2VuZGVyJ3MgSVAvTUFDIGluIGl0cyBBUlAgdGFi bGXigJ0uIERvIHRoZSBhdXRob3JzIHJlYWxseSBtZWFuICJBUlAgdGFibGUiIGlmIHRoZSBpbmZv cm1hdGlvbiB3YXMgbGVhcm5lZCBieSBORD8gaS5lLiBpdHMgY2xlYXIgdGhhdCB0aGUgYXV0aG9y cyBhcmUgcmVmZXJyaW5nIHRvIHRoZSBsb2NhbCBJUC9NQUMgYWRkcmVzcyB0YWJsZSwgYnV0IHRo ZSBwcmV2aW91cyB0ZXh0IHRlbmRzIHRvIGFzc29jaWF0ZWQgQVJQIHdpdGggSVB2NCBhbmQgTkQg d2l0aCBJUHY2LiBQZXJoYXBzIOKAnEFBUlAvTkQgdGFibGXigJ0gPw0KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCnRyaWxsIG1haWxpbmcgbGlzdA0KdHJp bGxAaWV0Zi5vcmcNCmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vdHJpbGwN Cg== From nobody Mon Apr 25 09:04:31 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0728612D52D for ; Mon, 25 Apr 2016 09:04:29 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.72 X-Spam-Level: X-Spam-Status: No, score=-2.72 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mm.st header.b=VHQqtwSc; dkim=pass (1024-bit key) header.d=messagingengine.com header.b=MRNQL1hK Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4k71cQrsU18j for ; Mon, 25 Apr 2016 09:04:21 -0700 (PDT) Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A1AE812D625 for ; Mon, 25 Apr 2016 09:04:19 -0700 (PDT) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 50FD0270A0 for ; Mon, 25 Apr 2016 12:04:19 -0400 (EDT) Received: from web4 ([10.202.2.214]) by compute5.internal (MEProxy); Mon, 25 Apr 2016 12:04:19 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=mm.st; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=qbS RE7eS0yiM7IJVIq5b1nnDgM8=; b=VHQqtwScZvPZjqR7m1UsDkvC8miWTZao44r u3x+6h59/YgcSrc1Dt+QTyoA48kE/hra3JpWz+6DOm35JqmHGYLUMmOD88BCqypY 0H9Ooo/zNWBsD1vdn0OqbdKLYE1d8KmkP0gulLBV5owKSn9/PgvF/1Uefh4MAgpv wObqaxVY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-sasl-enc :x-sasl-enc; s=smtpout; bh=qbSRE7eS0yiM7IJVIq5b1nnDgM8=; b=MRNQL 1hKMBYUCSCxzcWzL0IpAzI57M/VpixOYRm4fG/MM4MFALBCq5usKQJa2/5M+K8sm GurjIlA9DZSrulQIhAhsuUnzIqCglmccRmGbgDU8fQHF1lnUmjtsnDgRgZRAxjzY c/kEgVr6XthvAB0fkE5w+WC3VFeXJ/0WvE2VGQ= Received: by web4.nyi.internal (Postfix, from userid 99) id 173C910233A; Mon, 25 Apr 2016 12:04:19 -0400 (EDT) Message-Id: <1461600259.1868989.588979393.728AD1A2@webmail.messagingengine.com> X-Sasl-Enc: lwVr8uurrD6EG1YuHVUyPeDVYwGA7qSvUJKy1+MjauFS 1461600259 From: Dan Frost To: rtg-ads@ietf.org MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain X-Mailer: MessagingEngine.com Webmail Interface - ajax-76f1c811 Date: Mon, 25 Apr 2016 17:04:19 +0100 Archived-At: Cc: rtg-dir@ietf.org, draft-ietf-i2rs-pub-sub-requirements.all@ietf.org, i2rs@ietf.org Subject: [RTG-DIR] RtgDir review: draft-ietf-i2rs-pub-sub-requirements-06 X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2016 16:04:29 -0000 Hello, I have been selected as the Routing Directorate reviewer for this draft. The Routing Directorate seeks to review all routing or routing-related drafts as they pass through IETF last call and IESG review, and sometimes on special request. The purpose of the review is to provide assistance to the Routing ADs. For more information about the Routing Directorate, please see http://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir Although these comments are primarily for the use of the Routing ADs, it would be helpful if you could consider them along with any other IETF Last Call comments that you receive, and strive to resolve them through discussion or by updating the draft. Document: draft-ietf-i2rs-pub-sub-requirements-06 Reviewer: Dan Frost Review Date: 2016-04-25 IETF LC End Date: 2016-04-29 Intended Status: Informational (?) Summary: I have significant concerns about this document and recommend that the Routing ADs discuss these issues further with the authors. Comments: Overall this is a clear and consistent requirements document that addresses an important real-world problem domain, and is nearly ready for publication. However, because this work may lead to significant changes in the mechanics of network management and control, some extra care in the review stage is warranted. I've marked some issues as major to indicate that they may deserve extra consideration by the ADs and/or the wider Internet community. Major Issues: 1. There seems to be some confusion as to the intended status of the document. The draft itself lists its intended status as Informational, which is usually appropriate for a requirements document. On the other hand, the draft was submitted to the IESG with an Intended Status of Proposed Standard. Furthermore, a quick check of other I2RS WG requirements docs shows them split between Informational and Proposed Standard, so the confusion may extend beyond this draft. I'd suggest the ADs and chairs agree on a consistent policy. 2. The document concerns requirements for a publish/subscribe interface to, among other things, real-time operational data. The text in Section 2.3 indicates an awareness of the need to support potentially large numbers of subscribers and high volumes of data. However, the document doesn't seem to discuss the global network impact of continuously pushing a lot of data to many subscribers. As the introduction of such a push system could lead to a qualitative shift in the total volume of management/control traffic, it seems important to begin addressing this issue at the requirements stage. A possible resolution would be to add a brief section on network impact under large-scale conditions, and/or a set of requirements for minimizing this impact. Some of the listed requirements are germane to this, e.g. subscription filters. bundling, and dampening. Issues that are not addressed include support for encoding formats that are efficient for high-volume transport and processing (XML and JSON are usually considered not to be); appropriate selection of transport protocols and features according to scale/use-case; and support for mechanisms to determine or restrict the bandwidth cost of a proposed or ongoing subscription. 3. This work is being carried out in the I2RS WG, but the first sentence of Section 2.2 states that this document is intended to cover requirements beyond I2RS. A general question for the editors/chairs/ADs is whether it has received any review by interested/affected parties outside I2RS? 4. The Security Requirements make no mention of data integrity or confidentiality. This is a potentially serious omission in today's network environment. I would expect at the least that subscribers have the ability to request a secure (authenticated, integrity-verified, confidential) session, that publishers likewise have the ability to refuse non-secure sessions, and that the security status of a session is explicitly signaled and checked by both parties during negotiation. Minor Issues: 1. The requirements in this document ought to be numbered for ease of reference. 2. Section 3: As this is a requirements doc, the RFC 2119 language paragraph could use a clarification sentence along the lines of the one in Section 1.1 of RFC 5654. 3. Section 3: It's not obvious to me from the text in this section what the distinction and intended relationship is between Receivers and Subscribers. Perhaps this can be clarified with an example? Also the statement "In general, the Receiver and Subscriber will be the same entity" doesn't sound right -- maybe you meant that in general they can be different, but usually they will be the same? 4. Section 3, last sentence: What is the difference between the terms "previous Push" and "last Update" used in this sentence? 5. Section 4.2.3, last paragraph: This paragraph would be more useful if it explained what a persistence/replay capability was and how it might work. 6. Can a definition or reference be provided for the term "object property" as used in Sections 3 and 4.2.7? This terminology seems slightly different from that used in RFC 6020. 7. Section 4.2.4: What is the purpose of stating that a subscription service should support "different" transports and encodings? This sounds too vague to be useful. Choice of transport and encoding are of great practical importance, but the document has almost nothing to say on these topics. Can the authors not provide a summary of options and some definite guidance here? 8. Section 4.2.5, third paragraph: Can you spell out in the document exactly what "Versioning" means here? 9. When the underlying transport provides some form of security, should there not be a requirement for alignment between transport security and pub/sub protocol security? Can, for example, TLS certificate validation fulfil the pub/sub authentication requirement? 10. An important use-case for such a pub/sub update service is a subscriber that wants to maintain an up-to-date local copy of a datastore residing on the publisher. This requires the ability to correlate the version of the datastore obtained via an out-of-band full download with the version reflected by each published update. Do the authors intend to allow for this case, and have they considered the associated requirements? Nits: Section 2.2, first paragraph: - s/Switches and Routers/switches and routers/ - s/past subscriptions includes/past subscription mechanisms includes/ Section 2.2, last paragraph: - s/NETCONF should the/NETCONF should be the/ - s/support Multicast and Broadcast/support for multicast and broadcast/ Section 3, 8th paragraph: - s/referred in/referred to in/ Section 3, 9th paragraph: - s/which have been made/that have been made/ Section 3, last paragraph: - s/propert(ies)/properties/ - s/different that/different than that/ Section 4, first paragraph: - s/morphed/adapted/ Section 4.1, last paragraph: - s/lease a Subscription/lease of a Subscription/ Section 4.2.1, second and third paragraphs: These two requirements seem to make more sense if "one or more" is replaced by "multiple". Section 4.2.8, third paragraph: - s/us a failure/is a failure/ Cheers, -d From nobody Mon Apr 25 10:04:25 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EC36312D547; Mon, 25 Apr 2016 10:04:23 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -4.22 X-Spam-Level: X-Spam-Status: No, score=-4.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Rc9ML6CLr9Lu; Mon, 25 Apr 2016 10:04:22 -0700 (PDT) Received: from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 96F2312B018; Mon, 25 Apr 2016 10:04:16 -0700 (PDT) X-AuditID: c1b4fb3a-f79386d00000467b-bd-571e4e0e9bc3 Received: from ESESSHC019.ericsson.se (Unknown_Domain [153.88.183.75]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id EB.73.18043.E0E4E175; Mon, 25 Apr 2016 19:04:14 +0200 (CEST) Received: from ESESSMB301.ericsson.se ([169.254.1.65]) by ESESSHC019.ericsson.se ([153.88.183.75]) with mapi id 14.03.0248.002; Mon, 25 Apr 2016 19:04:14 +0200 From: Daniele Ceccarelli To: " (rtg-ads@ietf.org)" Thread-Topic: RtgDir review: draft-ietf-pals-mpls-tp-pw-over-bidir-lsp-06 Thread-Index: AdGe+Z/lFOzQc8O7SFSbqLe7ce8oew== Date: Mon, 25 Apr 2016 17:04:13 +0000 Message-ID: <4A1562797D64E44993C5CBF38CF1BE48162BAB58@ESESSMB301.ericsson.se> Accept-Language: it-IT, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [153.88.183.150] Content-Type: multipart/alternative; boundary="_000_4A1562797D64E44993C5CBF38CF1BE48162BAB58ESESSMB301erics_" MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpnkeLIzCtJLcpLzFFi42KZGbHdW5fPTy7cYNZLQ4uPPe2MFifn/GC2 WLDmKbsDs8eSJT+ZAhijuGxSUnMyy1KL9O0SuDIeXl/DVHDmMVPFvlkHmRsYV9xi6mLk5JAQ MJHo2rqSGcIWk7hwbz1bFyMXh5DAEUaJy6fuMkI4ixklXp/8yd7FyMHBJmAl8eSQD4gpImAn MeuiLkgJs8ACRol9k3axggwSFnCR2LR1KiOILSLgKXFk/XQoW0/i+bMOsGUsAqoSHRfXgNXz CvhKNNydzQZiMwrISkzYvQisnllAXOLWk/lQhwpILNlzHupQUYmXj/+xQthKEiu2X2IEuYdZ IF/i22QxiJGCEidnPmGZwCg8C8mkWQhVs5BUQYQ1Jdbv0oeoVpSY0v2QHcLWkGidM5cdWXwB I/sqRtHi1OLi3HQjI73Uoszk4uL8PL281JJNjMDoObjlt9UOxoPPHQ8xCnAwKvHwLuCUDRdi TSwrrsw9xCjBwawkwrvcWy5ciDclsbIqtSg/vqg0J7X4EKM0B4uSOG9O5L8wIYH0xJLU7NTU gtQimCwTB6dUA6Pkq3kGf3fPa2dsn8hpOOXX4X6WxTtunC580pDguHp23Yn1wi8tDRjmdE33 emv423rynEb7Y3JvGcpSw0V77jL8NPuxQCM6dflnqaZc7YMl9/dxRk0VDfLc4aWe//e2hsq3 DLE32tJzAp/c/VuYFr+6JYv5kb3P31sZ87kvybGlajnYlrm7PVJiKc5INNRiLipOBABnhXxh mgIAAA== Archived-At: Cc: "rtg-dir@ietf.org" , "draft-ietf-pals-mpls-tp-pw-over-bidir-lsp.all@ietf.org" Subject: [RTG-DIR] RtgDir review: draft-ietf-pals-mpls-tp-pw-over-bidir-lsp-06 X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2016 17:04:24 -0000 --_000_4A1562797D64E44993C5CBF38CF1BE48162BAB58ESESSMB301erics_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGVsbG8sDQoNCkkgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHRoZSBSb3V0aW5nIERpcmVjdG9yYXRl IHJldmlld2VyIGZvciB0aGlzIGRyYWZ0LiBUaGUgUm91dGluZyBEaXJlY3RvcmF0ZSBzZWVrcyB0 byByZXZpZXcgYWxsIHJvdXRpbmcgb3Igcm91dGluZy1yZWxhdGVkIGRyYWZ0cyBhcyB0aGV5IHBh c3MgdGhyb3VnaCBJRVRGIGxhc3QgY2FsbCBhbmQgSUVTRyByZXZpZXcsIGFuZCBzb21ldGltZXMg b24gc3BlY2lhbCByZXF1ZXN0LiBUaGUgcHVycG9zZSBvZiB0aGUgcmV2aWV3IGlzIHRvIHByb3Zp ZGUgYXNzaXN0YW5jZSB0byB0aGUgUm91dGluZyBBRHMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFi b3V0IHRoZSBSb3V0aW5nIERpcmVjdG9yYXRlLCBwbGVhc2Ugc2VlIOKAi2h0dHA6Ly90cmFjLnRv b2xzLmlldGYub3JnL2FyZWEvcnRnL3RyYWMvd2lraS9SdGdEaXI8aHR0cDovL3RyYWMudG9vbHMu aWV0Zi5vcmcvYXJlYS9ydGcvdHJhYy93aWtpL1J0Z0Rpcj4NCg0KQWx0aG91Z2ggdGhlc2UgY29t bWVudHMgYXJlIHByaW1hcmlseSBmb3IgdGhlIHVzZSBvZiB0aGUgUm91dGluZyBBRHMsIGl0IHdv dWxkIGJlIGhlbHBmdWwgaWYgeW91IGNvdWxkIGNvbnNpZGVyIHRoZW0gYWxvbmcgd2l0aCBhbnkg b3RoZXIgSUVURiBMYXN0IENhbGwgY29tbWVudHMgdGhhdCB5b3UgcmVjZWl2ZSwgYW5kIHN0cml2 ZSB0byByZXNvbHZlIHRoZW0gdGhyb3VnaCBkaXNjdXNzaW9uIG9yIGJ5IHVwZGF0aW5nIHRoZSBk cmFmdC4NCg0KRG9jdW1lbnQ6IGRyYWZ0LWlldGYtcGFscy1tcGxzLXRwLXB3LW92ZXItYmlkaXIt bHNwLTA2DQpSZXZpZXdlcjogRGFuaWVsZSBDZWNjYXJlbGxpDQpSZXZpZXcgRGF0ZTogQXByaWwg MjUgMjAxNg0KSUVURiBMQyBFbmQgRGF0ZTogLQ0KSW50ZW5kZWQgU3RhdHVzOiBTdGFuZGFyZCBU cmFjaw0KU3VtbWFyeToNCg0KICAqICAgSSBoYXZlIHNvbWUgbWlub3IgY29uY2VybnMgYWJvdXQg dGhpcyBkb2N1bWVudCB0aGF0IEkgdGhpbmsgc2hvdWxkIGJlIHJlc29sdmVkIGJlZm9yZSBwdWJs aWNhdGlvbi4NCkNvbW1lbnRzOg0KDQogICogICBXaGF0IHRoZSBkcmFmdHMgaXMgcHJvcG9zaW5n IGFzIHByb3RvY29sIG1vZGlmaWNhdGlvbiBpcyBjbGVhciBhbmQgYWxzbyB0aGUgb3BlcmF0aW9u IHNlY3Rpb24gYXJlIHByZXR0eSBzdHJhaWdoZm9yd2FyZC4gV2hhdCBuZWVkcyB0byBiZSBpbXBy b3ZlZCBpcyB0aGUgaW50cm9kdWN0aW9uIHBhcnQsIHdoaWNoIHNob3VsZCBiZSByZXZpZXdlZCBi eSBhIG5hdGl2ZSBFbmdsaXNoIHNwZWFrZXIuIEFsc28gdGhlIElBTkEgc2VjdGlvbiBzaG91bGQg YmUgbWFkZSBjbGVhcmVyLg0KTWFqb3IgSXNzdWVzOg0KDQogICogICBObyBtYWpvciBpc3N1ZXMg Zm91bmQNCk1pbm9yIElzc3VlczoNCg0KICAqICAgQWJzdHJhY3Q6IOKAnEluIGFkZGl0aW9uLCB0 aGUgdXNlciB0cmFmZmljIG1heSB0cmF2ZXJzZSB0aHJvdWdoIG11bHRpcGxlIHRyYW5zcG9ydCBu ZXR3b3Jrcy7igJ0gTWF5YmUgaXMgd29ydGggZWxhYm9yYXRpbmcgYSBiaXQgdGhpcyBzZW50ZW5j ZSBzYXlpbmcgdGhhdCB0aGUgZXh0ZW5zaW9ucyBkZWZpbmVkIGluIHRoaXMgZHJhZnQgYXBwbHkg Ym90aCB0byBTUy1QVyBhbmQgTVMtUFcuDQogICogICBJbiB0aGUgYWJzdHJhY3QgaXQgaXMgc2Fp ZCB0aGF0IGEgUFcgaXMgbGlua2VkIHRvIGFuIExTUCBidXQgdGhlbiBpbiB0aGUgaW50cm8gaXQg aXMgc2FpZCB0aGF0IHRoZSBQVyBiaW5kaW5nIGlzIHRvIGEgdHVubmVsLiBDYW4geW91IGNsYXJp ZnkgdGhpcz8gSeKAmWQgc2F5IHRoYXQgaXQgc2hvdWxkIGJlIGxpbmtlZCB0byBhIHR1bm5lbCwg cmlnaHQ/DQogICogICBJbnRybzogICDigJxQVy10by1QU04gVHVubmVsIGJpbmRpbmcgaGFzIGJl Y29tZSBpbmNyZWFzaW5nbHkgY29tbW9uIGFuZCBpbXBvcnRhbnQgaW4gbWFueSBkZXBsb3ltZW50 IHNjZW5hcmlvc+KAnS4gSSBndWVzcyB5b3UgbWVhbiBhbiBhdXRvbWF0aWMgYmluZGluZyBkb25l IHZpYSBhIHNpZ25hbGluZyBwcm90b2NvbD8NCiAgKiAgIFdoYXQgZG8geW91IG1lYW4gd2l0aCDi gJxtYXkgdHJhdmVyc2UgdGhyb3VnaCBkaWZmZXJlbnQgcm91dGVz4oCdPyBJIHN1Z2dlc3QgbGVh dmluZyDigJxtYXkgdHJhdmVyc2UgbXVsdGlwbGUgbmV0d29ya3Mgb3IgZG9tYWlucy4NCiAgKiAg IEludHJvIGFuZCBGaWd1cmUgMTogY291bGQgYmUgZXhhbXBsZSBiZSBtYWRlIGEgYml0IG1vcmUg Z2VuZXJpYyB3aXRoIGEgbmV0d29yayBiZXR3ZWVuIHRoZSBQRXM/IFdpdGggZGlyZWN0bHkgY29u bmVjdGVkIFBFcyBpdCBkb2VzbuKAmXQgc2VlbSBhIHJlYWxpc3RpYyBhbmQgZ2VuZXJpYyBlbm91 Z2ggZXhhbXBsZS4NCiAgKiAgIEludHJvOiBzdWdnZXN0IHJlbW92aW5nIOKAnEFzIG1lbnRpb25l ZCBhYm92ZeKAnS4NCiAgKiAgICBUaGUgbmFtZSBvZiB0aGUgZHJhZnQgZXhwbGljaXRseSBtZW50 aW9ucyBNUExTLVRQIGJ1dCBpbiB0aGUgcmVzdCBvZiB0aGUgZHJhZnQgdGhlcmUgaXMgbm8gbWVu dGlvbiBvZiBpdCwganVzdCB0aGUgbXVjaCBtb3JlIGdlbmVyYWwgUGFja2V0IFN3aXRjaGluZyBO ZXR3b3JrIHRlcm0gaXMgdXNlZC4NCiAgKiAgIFNlY3Rpb24gMjogICDigJxUaGlzIGRvY3VtZW50 IGRlZmluZXMgYSBuZXcgb3B0aW9uYWwgVExWLCBQU04gVHVubmVsIEJpbmRpbmcgVExWLCB0byBj b21tdW5pY2F0ZSB0dW5uZWwvTFNQcyBzZWxlY3Rpb24gYW5kIGJpbmRpbmcgcmVxdWVzdHMgYmV0 d2VlbiBQRXMuIOKAnCBUaGUgYmluZGluZyByZXF1ZXN0IGlzIGJldHdlZW4gUEVzPyBPciBiZXR3 ZWVuIGFuIFBXIGFuZCBhIFR1bm5lbCAob3IgTFNQPykgYmV0d2VlbiB0d28gUEVzPw0KICAqICAg U2VjdGlvbiAyOiBTdHJpY3QgYmluZGluZyB2cyBDby1yb3V0ZWQgYmluZGluZzogZnJvbSB0aGUg ZGVzY3JpcHRpb24gaXQgc2VlbXMgdGhhdCB0aGUgZmlyc3Qgb25lIGlzIHN0cmljdCBhbmQgdGhl IHNlY29uZCBvbmUgaXMg4oCcbG9vc2XigJ0gKGluIHRoZSBzZW5zZSB0aGF0IHRoZSBQRSBjYW4g YWNjZXB0IHRoZSByZXF1ZXN0IG9yIG5vdCkuIERvbuKAmXQgYm90aCBhcHBseSB0byBjby1yb3V0 ZWQgTFNQcz8NCiAgKiAgIFNlY3Rpb24gMjog4oCdVGhlIHRlcm1pbm9sb2d5ICJMU1AiIGlzICBp ZGVudGljYWwgdG8gdGhlICJMU1AgdHVubmVsIiBkZWZpbmVkIGluIFNlY3Rpb24gMi4xIG9mIFtS RkMzMjA5XSwgIHdoaWNoIGlzIHVuaXF1ZWx5IGlkZW50aWZpZWQgYnkgdGhlIFNFU1NJT04gb2Jq ZWN0IHRvZ2V0aGVyIHdpdGggIFNFTkRFUl9URU1QTEFURSAob3IgRklMVEVSX1NQRUMpIG9iamVj dCB0aGF0IGNvbnNpc3RzIG9mIExTUCBJRCBhbmQgVHVubmVsIGVuZHBvaW50IGFkZHJlc3Mu4oCd IFdoeSBpcyB0aGUgZHJhZnQgY29uc2lkZXJpbmcgb25seSBzaWduYWxlZCBMU1BzPyBEb2VzbuKA mXQgaXQgYXBwbHkgYWxzbyB0byBjZW50cmFsbHkgcHJvdmlzaW9uZWQgb25lcz8gKGUuZy4gTk1T IG9yIFNETikuDQogICogICBTZWN0aW9uIDIuMTog4oCcTERQIExhYmVsIE1hcHBpbmcgbWVzc2Fn ZeKAnSBtaXNzaW5nIHJlZmVyZW5jZS4gQW5kIHdoeSB0aGUgVHlwZSBmaWVsZCBzdGFydHMgd2l0 aCAxIGFuZCAwPw0KTml0czoNCg0KICAqICAgQWJzdHJhY3Qgcy8gdHJhdmVyc2UgdGhyb3VnaCBt dWx0aXBsZS8gdHJhdmVyc2UgbXVsdGlwbGUNCiAgKiAgIEludHJvZHVjdGlvbjog4oCcUHNldWRv d2lyZSAoUFcpIEVtdWxhdGlvbiBFZGdlLXRvLUVkZ2UgKFBXRTMp4oCdLiBJIHN1Z2dlc3QgcmVt b3ZpbmcgKFBXKSwgaXTigJlzIGFscmVhZHkgaW5jbHVkZWQgaW50byBQV0UzLg0KICAqICAgSW50 cm86IHMvIGEgYmlkaXJlY3Rpb25hbCBjaXJjdWl0cy8gYSBiaWRpcmVjdGlvbmFsIGNpcmN1aXQN CiAgKiAgIEludHJvOiBzdWdnZXN0IHJlcGhyYXNpbmc6IOKAnEJpZGlyZWN0aW9uYWwgTFNQcyBz aGFyZSBmYXRlIGFuZCBzaW1wbGlmeSB0aGUgcm91dGluZyBvZiBhIHByb3RlY3Rpb24gcGF0aCBh bHNvIGNvbnNpc3Rpbmcgb2YgYmlkaXJlY3Rpb25hbCAgIExTUHMgYmVjYXVzZSB3b3JraW5nIGFu ZCBwcm90ZWN0aW9uIHBhdGhzIGhhdmUgdG8gYmUgZGlzam9pbnQu4oCdDQogICogICBJbnRybzog cy8gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyLyB0aGVyZSBpcyBhIGxhcmdlIG51bWJlcg0KICAq ICAgSW50cm86cy90byBiZSBjYXJyaWVkL2FyZSBjYXJyaWVkDQogICogICBJbnRybzpzL3RoZXJl IGFyZSBhIG51bWJlci90aGVyZSBpcyBhIG51bWJlcg0KICAqICAgSW50cm86IHMvIHRyYWZmaWMg YmVsb25ncy90cmFmZmljIGJlbG9uZ2luZw0KICAqICAgSW50cm86IChzdWdnZXN0aW9uKSBzLyhQ RTEtUDMtUEUyKS8gKFBFMi1QMy1QRTEpIHNpbmNlIHdlIGFyZSBzcGVha2luZyBhYm91dCBkaXJl Y3Rpb25hbGl0eSBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGxpc3QgdGhlIG5vZGVzIG9mIHRoZSBw YXRoIGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4NCiAgKiAgIEludHJvOiBzLyBUaGUgc2ltaWxh ciBwcm9ibGVtcy9BIHNpbWlsYXIgcHJvYmxlbQ0KICAqICAgSW50cm86IHMvIHdvbid0L2RvZXMg bm90DQogICogICBJbnRybzogcy8gSW4gdGhpcyBkb2N1bWVudCwgaXQgaW50cm9kdWNlcy9UaGlz IGRvY3VtZW50IGludHJvZHVjZXMNCkJSDQpEYW5pZWxlDQoNCg0K --_000_4A1562797D64E44993C5CBF38CF1BE48162BAB58ESESSMB301erics_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K CXtmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJcGFub3NlLTE6NSAwIDAgMCAwIDAgMCAwIDAgMDt9 DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIg MiAyIDQgMyAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5N c29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJnaW4tYm90dG9tOi4w MDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMt c2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5 Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0 ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0K CWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnANCgl7bXNvLXN0 eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdo dDowY207DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGNtOw0K CWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlm Ijt9DQpzcGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1jb21wb3Nl Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJY29sb3I6d2luZG93dGV4 dDt9DQpzcGFuLmFwcGxlLWNvbnZlcnRlZC1zcGFjZQ0KCXttc28tc3R5bGUtbmFtZTphcHBsZS1j b252ZXJ0ZWQtc3BhY2U7fQ0Kc3Bhbi5pY29uDQoJe21zby1zdHlsZS1uYW1lOmljb247fQ0KLk1z b0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJZm9udC1zaXplOjEw LjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7DQoJbWFy Z2luOjcwLjg1cHQgNzAuODVwdCA3MC44NXB0IDcwLjg1cHQ7fQ0KZGl2LldvcmRTZWN0aW9uMQ0K CXtwYWdlOldvcmRTZWN0aW9uMTt9DQovKiBMaXN0IERlZmluaXRpb25zICovDQpAbGlzdCBsMA0K CXttc28tbGlzdC1pZDoyMjMxNTA2MDg7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOi0xMzEwMzA0 MDY2O30NCkBsaXN0IGwwOmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7 DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDozNi4wcHQ7DQoJbXNv LWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNv LWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDA6 bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4 dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDo3Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEw LjBwdDsNCglmb250LWZhbWlseToiQ291cmllciBOZXciOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5 OiJUaW1lcyBOZXcgUm9tYW4iO30NCkBsaXN0IGwwOmxldmVsMw0KCXttc28tbGV2ZWwtbnVtYmVy LWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3Rv cDoxMDguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVu dDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2lu Z2RpbmdzO30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxs ZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoxNDQuMHB0Ow0K CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0K CW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBs aXN0IGwwOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxl dmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoxODAuMHB0Ow0KCW1zby1sZXZlbC1u dW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZv bnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwwOmxldmVs Ng0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674Kn Ow0KCW1zby1sZXZlbC10YWItc3RvcDoyMTYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRp b246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4w cHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwwOmxldmVsNw0KCXttc28tbGV2 ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZl bC10YWItc3RvcDoyNTIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0 ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1m YW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwwOmxldmVsOA0KCXttc28tbGV2ZWwtbnVtYmVyLWZv cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoy ODguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot MTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2Rp bmdzO30NCkBsaXN0IGwwOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7 DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDozMjQuMHB0Ow0KCW1z by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1z by1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0 IGwxDQoJe21zby1saXN0LWlkOjQ1MzkxMzE4MjsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6NTUz NTIyNzQ2O30NCkBsaXN0IGwxOmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxs ZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDozNi4wcHQ7DQoJ bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJ bXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3Qg bDE6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwt dGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDo3Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1w b3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXpl OjEwLjBwdDsNCglmb250LWZhbWlseToiQ291cmllciBOZXciOw0KCW1zby1iaWRpLWZvbnQtZmFt aWx5OiJUaW1lcyBOZXcgUm9tYW4iO30NCkBsaXN0IGwxOmxldmVsMw0KCXttc28tbGV2ZWwtbnVt YmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWIt c3RvcDoxMDguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWlu ZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6 V2luZ2RpbmdzO30NCkBsaXN0IGwxOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpi dWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoxNDQuMHB0 Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0 Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30N CkBsaXN0IGwxOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNv LWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoxODAuMHB0Ow0KCW1zby1sZXZl bC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNp LWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwxOmxl dmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6 74KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoyMTYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9z aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZTox MC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwxOmxldmVsNw0KCXttc28t bGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1s ZXZlbC10YWItc3RvcDoyNTIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsN Cgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9u dC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwxOmxldmVsOA0KCXttc28tbGV2ZWwtbnVtYmVy LWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3Rv cDoyODguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVu dDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2lu Z2RpbmdzO30NCkBsaXN0IGwxOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxs ZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDozMjQuMHB0Ow0K CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0K CW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBs aXN0IGwyDQoJe21zby1saXN0LWlkOjEzNjE2NjcyMjM7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRz Oi0xOTk2MzE1ODE0O30NCkBsaXN0IGwyOmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1h dDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDozNi4w cHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4w cHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0K QGxpc3QgbDI6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t bGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDo3Mi4wcHQ7DQoJbXNvLWxldmVsLW51 bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9u dC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseToiQ291cmllciBOZXciOw0KCW1zby1iaWRpLWZv bnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30NCkBsaXN0IGwyOmxldmVsMw0KCXttc28tbGV2 ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZl bC10YWItc3RvcDoxMDguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0 ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1m YW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwyOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZv cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDox NDQuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot MTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2Rp bmdzO30NCkBsaXN0IGwyOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7 DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoxODAuMHB0Ow0KCW1z by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1z by1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0 IGwyOmxldmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVs LXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoyMTYuMHB0Ow0KCW1zby1sZXZlbC1udW1i ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQt c2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwyOmxldmVsNw0K CXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0K CW1zby1sZXZlbC10YWItc3RvcDoyNTIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246 bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7 DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwyOmxldmVsOA0KCXttc28tbGV2ZWwt bnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10 YWItc3RvcDoyODguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0 LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1p bHk6V2luZ2RpbmdzO30NCkBsaXN0IGwyOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1h dDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDozMjQu MHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTgu MHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2Rpbmdz O30NCkBsaXN0IGwzDQoJe21zby1saXN0LWlkOjE0ODczNTMyMTE7DQoJbXNvLWxpc3QtdGVtcGxh dGUtaWRzOi0yNjAyMDIwNDt9DQpAbGlzdCBsMzpsZXZlbDENCgl7bXNvLWxldmVsLW51bWJlci1m b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6 MzYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot MTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9s O30NCkBsaXN0IGwzOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJ bXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6NzIuMHB0Ow0KCW1zby1sZXZl bC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNp LWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3IjsNCgltc28tYmlk aS1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9DQpAbGlzdCBsMzpsZXZlbDMNCgl7bXNv LWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28t bGV2ZWwtdGFiLXN0b3A6MTA4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7 DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZv bnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMzpsZXZlbDQNCgl7bXNvLWxldmVsLW51bWJl ci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0 b3A6MTQ0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl bnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5Oldp bmdkaW5nczt9DQpAbGlzdCBsMzpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVs bGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MTgwLjBwdDsN Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsN Cgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpA bGlzdCBsMzpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1s ZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MjE2LjBwdDsNCgltc28tbGV2ZWwt bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1m b250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMzpsZXZl bDcNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+C pzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MjUyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0 aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAu MHB0Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMzpsZXZlbDgNCgl7bXNvLWxl dmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2 ZWwtdGFiLXN0b3A6Mjg4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ dGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQt ZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMzpsZXZlbDkNCgl7bXNvLWxldmVsLW51bWJlci1m b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6 MzI0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6 LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5Oldpbmdk aW5nczt9DQpAbGlzdCBsNA0KCXttc28tbGlzdC1pZDoxNzI3MTQ0ODA1Ow0KCW1zby1saXN0LXRl bXBsYXRlLWlkczo2MTk5NzgzMzA7fQ0KQGxpc3QgbDQ6bGV2ZWwxDQoJe21zby1sZXZlbC1udW1i ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1z dG9wOjM2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl bnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5 bWJvbDt9DQpAbGlzdCBsNDpsZXZlbDINCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0 Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOjcyLjBwdDsNCgltc28t bGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28t YW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7DQoJbXNv LWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQ0KQGxpc3QgbDQ6bGV2ZWwzDQoJ e21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJ bXNvLWxldmVsLXRhYi1zdG9wOjEwOC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps ZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsN Cglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDQ6bGV2ZWw0DQoJe21zby1sZXZlbC1u dW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRh Yi1zdG9wOjE0NC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQt aW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWls eTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDQ6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0 OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjE4MC4w cHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4w cHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7 fQ0KQGxpc3QgbDQ6bGV2ZWw2DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCglt c28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjIxNi4wcHQ7DQoJbXNvLWxl dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFu c2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDQ6 bGV2ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4 dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjI1Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1w b3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXpl OjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDQ6bGV2ZWw4DQoJe21z by1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNv LWxldmVsLXRhYi1zdG9wOjI4OC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0 Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglm b250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDQ6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1i ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1z dG9wOjMyNC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k ZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpX aW5nZGluZ3M7fQ0KQGxpc3QgbDUNCgl7bXNvLWxpc3QtaWQ6MTgwMDQ5MDUzOTsNCgltc28tbGlz dC10ZW1wbGF0ZS1pZHM6OTg2NDQ5Mjc2O30NCkBsaXN0IGw1OmxldmVsMQ0KCXttc28tbGV2ZWwt bnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10 YWItc3RvcDozNi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQt aW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWls eTpTeW1ib2w7fQ0KQGxpc3QgbDU6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1 bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDo3Mi4wcHQ7DQoJ bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJ bXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseToiQ291cmllciBOZXciOw0K CW1zby1iaWRpLWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30NCkBsaXN0IGw1OmxldmVs Mw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674Kn Ow0KCW1zby1sZXZlbC10YWItc3RvcDoxMDguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRp b246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4w cHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGw1OmxldmVsNA0KCXttc28tbGV2 ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZl bC10YWItc3RvcDoxNDQuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0 ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1m YW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGw1OmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZv cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDox ODAuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot MTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2Rp bmdzO30NCkBsaXN0IGw1OmxldmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7 DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoyMTYuMHB0Ow0KCW1z by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1z by1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0 IGw1OmxldmVsNw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVs LXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoyNTIuMHB0Ow0KCW1zby1sZXZlbC1udW1i ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQt c2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGw1OmxldmVsOA0K CXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0K CW1zby1sZXZlbC10YWItc3RvcDoyODguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246 bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7 DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGw1OmxldmVsOQ0KCXttc28tbGV2ZWwt bnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10 YWItc3RvcDozMjQuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0 LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1p bHk6V2luZ2RpbmdzO30NCm9sDQoJe21hcmdpbi1ib3R0b206MGNtO30NCnVsDQoJe21hcmdpbi1i b3R0b206MGNtO30NCi0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFw ZWRlZmF1bHRzIHY6ZXh0PSJlZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZd LS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+ DQo8bzppZG1hcCB2OmV4dD0iZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3ht bD48IVtlbmRpZl0tLT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPSJibHVlIiB2 bGluaz0icHVycGxlIj4NCjxkaXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBzdHlsZT0iYmFj a2dyb3VuZDp3aGl0ZSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6YmxhY2si PkhlbGxvLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIHN0eWxlPSJiYWNrZ3JvdW5kOndoaXRl O29ycGhhbnM6IGF1dG87dGV4dC1hbGlnbjpzdGFydDt3aWRvd3M6IDE7LXdlYmtpdC10ZXh0LXN0 cm9rZS13aWR0aDogMHB4O3dvcmQtc3BhY2luZzowcHgiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6 ZToxMS4wcHQ7Y29sb3I6YmxhY2siPkkgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHRoZSBSb3V0aW5n IERpcmVjdG9yYXRlIHJldmlld2VyIGZvciB0aGlzIGRyYWZ0LiBUaGUgUm91dGluZyBEaXJlY3Rv cmF0ZSBzZWVrcyB0byByZXZpZXcgYWxsIHJvdXRpbmcgb3Igcm91dGluZy1yZWxhdGVkIGRyYWZ0 cyBhcyB0aGV5IHBhc3MgdGhyb3VnaCBJRVRGIGxhc3QgY2FsbCBhbmQgSUVTRyByZXZpZXcsIGFu ZCBzb21ldGltZXMNCiBvbiBzcGVjaWFsIHJlcXVlc3QuIFRoZSBwdXJwb3NlIG9mIHRoZSByZXZp ZXcgaXMgdG8gcHJvdmlkZSBhc3Npc3RhbmNlIHRvIHRoZSBSb3V0aW5nIEFEcy4gRm9yIG1vcmUg aW5mb3JtYXRpb24gYWJvdXQgdGhlIFJvdXRpbmcgRGlyZWN0b3JhdGUsIHBsZWFzZSBzZWU8c3Bh biBjbGFzcz0iYXBwbGUtY29udmVydGVkLXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0iaHR0 cDovL3RyYWMudG9vbHMuaWV0Zi5vcmcvYXJlYS9ydGcvdHJhYy93aWtpL1J0Z0RpciI+PHNwYW4g Y2xhc3M9Imljb24iPjxzcGFuIHN0eWxlPSJjb2xvcjojNDQwMDg4Ij7igIs8L3NwYW4+PC9zcGFu PjxzcGFuIHN0eWxlPSJjb2xvcjojNDQwMDg4Ij5odHRwOi8vdHJhYy50b29scy5pZXRmLm9yZy9h cmVhL3J0Zy90cmFjL3dpa2kvUnRnRGlyPC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBzdHlsZT0iYmFja2dyb3VuZDp3aGl0ZTtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3Rh cnQ7d2lkb3dzOiAxOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6 MHB4Ij4NCjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2NvbG9yOmJsYWNrIj5BbHRob3Vn aCB0aGVzZSBjb21tZW50cyBhcmUgcHJpbWFyaWx5IGZvciB0aGUgdXNlIG9mIHRoZSBSb3V0aW5n IEFEcywgaXQgd291bGQgYmUgaGVscGZ1bCBpZiB5b3UgY291bGQgY29uc2lkZXIgdGhlbSBhbG9u ZyB3aXRoIGFueSBvdGhlciBJRVRGIExhc3QgQ2FsbCBjb21tZW50cyB0aGF0IHlvdSByZWNlaXZl LCBhbmQgc3RyaXZlIHRvIHJlc29sdmUgdGhlbSB0aHJvdWdoDQogZGlzY3Vzc2lvbiBvciBieSB1 cGRhdGluZyB0aGUgZHJhZnQuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgc3R5bGU9ImJhY2tn cm91bmQ6d2hpdGU7b3JwaGFuczogYXV0bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93czogMTstd2Vi a2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHls ZT0iZm9udC1zaXplOjExLjBwdDtjb2xvcjpibGFjayI+RG9jdW1lbnQ6PHNwYW4gY2xhc3M9ImFw cGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5ic3A7ZHJhZnQtaWV0Zi1wYWxzLW1wbHMtdHAtcHctb3Zl ci1iaWRpci1sc3AtMDY8L3NwYW4+PGJyPg0KUmV2aWV3ZXI6IERhbmllbGUgQ2VjY2FyZWxsaTxi cj4NClJldmlldyBEYXRlOiBBcHJpbCAyNSAyMDE2PGJyPg0KSUVURiBMQyBFbmQgRGF0ZTogLTxi cj4NCkludGVuZGVkIFN0YXR1czogU3RhbmRhcmQgVHJhY2s8bzpwPjwvbzpwPjwvc3Bhbj48L3A+ DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv LW1hcmdpbi1ib3R0b20tYWx0OmF1dG87YmFja2dyb3VuZDp3aGl0ZTtvcnBoYW5zOiBhdXRvO3Rl eHQtYWxpZ246c3RhcnQ7d2lkb3dzOiAxOy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3 b3JkLXNwYWNpbmc6MHB4Ij4NCjxiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1l cyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPlN1bW1hcnk6 PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFu JnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj4mbmJzcDs8bzpwPjwvbzpwPjwv c3Bhbj48L3A+DQo8dWwgdHlwZT0iZGlzYyI+DQo8bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9 ImNvbG9yOmJsYWNrO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs dDphdXRvO21zby1saXN0Omw1IGxldmVsMSBsZm8xO2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJp ZiZxdW90OyI+SSBoYXZlIHNvbWUgbWlub3IgY29uY2VybnMgYWJvdXQgdGhpcyBkb2N1bWVudCB0 aGF0IEkgdGhpbmsgc2hvdWxkIGJlIHJlc29sdmVkIGJlZm9yZSBwdWJsaWNhdGlvbi4NCjxvOnA+ PC9vOnA+PC9zcGFuPjwvbGk+PC91bD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28t bWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztiYWNrZ3JvdW5k OndoaXRlIj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9t YW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPkNvbW1lbnRzOjwvc3Bhbj48 L2I+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oywm cXVvdDtzZXJpZiZxdW90Oztjb2xvcjpibGFjayI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHVs IHR5cGU9ImRpc2MiPg0KPGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjaztt c28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlz dDpsMyBsZXZlbDEgbGZvMjtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZh bWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPldoYXQg dGhlIGRyYWZ0cyBpcyBwcm9wb3NpbmcgYXMgcHJvdG9jb2wgbW9kaWZpY2F0aW9uIGlzIGNsZWFy IGFuZCBhbHNvIHRoZSBvcGVyYXRpb24gc2VjdGlvbiBhcmUgcHJldHR5IHN0cmFpZ2hmb3J3YXJk LiBXaGF0IG5lZWRzIHRvIGJlIGltcHJvdmVkIGlzIHRoZSBpbnRyb2R1Y3Rpb24gcGFydCwgd2hp Y2ggc2hvdWxkIGJlIHJldmlld2VkIGJ5IGEgbmF0aXZlDQogRW5nbGlzaCBzcGVha2VyLiBBbHNv IHRoZSBJQU5BIHNlY3Rpb24gc2hvdWxkIGJlIG1hZGUgY2xlYXJlci4gPG86cD48L286cD48L3Nw YW4+PC9saT48L3VsPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9w LWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0K PGI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oywm cXVvdDtzZXJpZiZxdW90Oztjb2xvcjpibGFjayI+TWFqb3IgSXNzdWVzOjwvc3Bhbj48L2I+PHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtz ZXJpZiZxdW90Oztjb2xvcjpibGFjayI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHVsIHR5cGU9 ImRpc2MiPg0KPGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjazttc28tbWFy Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsMSBs ZXZlbDEgbGZvMztiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTom cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPk5vIG1ham9yIGlz c3VlcyBmb3VuZDxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PC91bD4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6 YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVv dDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPk1p bm9yIElzc3Vlczo8L3NwYW4+PC9iPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1l cyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPjxvOnA+PC9v OnA+PC9zcGFuPjwvcD4NCjx1bCB0eXBlPSJkaXNjIj4NCjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0 b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8 c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90 O3NlcmlmJnF1b3Q7Ij5BYnN0cmFjdDog4oCcSW4gYWRkaXRpb24sIHRoZSB1c2VyIHRyYWZmaWMg bWF5IHRyYXZlcnNlIHRocm91Z2ggbXVsdGlwbGUgdHJhbnNwb3J0IG5ldHdvcmtzLuKAnSBNYXli ZSBpcyB3b3J0aCBlbGFib3JhdGluZyBhIGJpdCB0aGlzIHNlbnRlbmNlIHNheWluZyB0aGF0IHRo ZSBleHRlbnNpb25zIGRlZmluZWQgaW4gdGhpcyBkcmFmdCBhcHBseSBib3RoIHRvIFNTLVBXDQog YW5kIE1TLVBXLjxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0 eWxlPSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0bzttc28tbGlzdDpsMCBsZXZlbDEgbGZvNDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxz cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7 c2VyaWYmcXVvdDsiPkluIHRoZSBhYnN0cmFjdCBpdCBpcyBzYWlkIHRoYXQgYSBQVyBpcyBsaW5r ZWQgdG8gYW4gTFNQIGJ1dCB0aGVuIGluIHRoZSBpbnRybyBpdCBpcyBzYWlkIHRoYXQgdGhlIFBX IGJpbmRpbmcgaXMgdG8gYSB0dW5uZWwuIENhbiB5b3UgY2xhcmlmeSB0aGlzPyBJ4oCZZCBzYXkg dGhhdCBpdCBzaG91bGQgYmUgbGlua2VkIHRvIGEgdHVubmVsLCByaWdodD88bzpwPjwvbzpwPjwv c3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAg bGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6 JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzombmJz cDsmbmJzcDsg4oCcUFctdG8tUFNOIFR1bm5lbCBiaW5kaW5nIGhhcyBiZWNvbWUgaW5jcmVhc2lu Z2x5IGNvbW1vbiBhbmQgaW1wb3J0YW50IGluIG1hbnkgZGVwbG95bWVudCBzY2VuYXJpb3PigJ0u IEkgZ3Vlc3MgeW91IG1lYW4gYW4gYXV0b21hdGljIGJpbmRpbmcgZG9uZSB2aWEgYSBzaWduYWxp bmcgcHJvdG9jb2w/PG86cD48L286cD48L3NwYW4+PC9saT48bGkgY2xhc3M9Ik1zb05vcm1hbCIg c3R5bGU9ImNvbG9yOmJsYWNrO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90 dG9tLWFsdDphdXRvO21zby1saXN0OmwwIGxldmVsMSBsZm80O2JhY2tncm91bmQ6d2hpdGUiPg0K PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVv dDtzZXJpZiZxdW90OyI+V2hhdCBkbyB5b3UgbWVhbiB3aXRoIOKAnG1heSB0cmF2ZXJzZSB0aHJv dWdoIGRpZmZlcmVudCByb3V0ZXPigJ0/IEkgc3VnZ2VzdCBsZWF2aW5nIOKAnG1heSB0cmF2ZXJz ZSBtdWx0aXBsZSBuZXR3b3JrcyBvciBkb21haW5zLjxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PGxp IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6 YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsMCBsZXZlbDEgbGZvNDti YWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBO ZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPkludHJvIGFuZCBGaWd1cmUgMTogY291 bGQgYmUgZXhhbXBsZSBiZSBtYWRlIGEgYml0IG1vcmUgZ2VuZXJpYyB3aXRoIGEgbmV0d29yayBi ZXR3ZWVuIHRoZSBQRXM/IFdpdGggZGlyZWN0bHkgY29ubmVjdGVkIFBFcyBpdCBkb2VzbuKAmXQg c2VlbSBhIHJlYWxpc3RpYyBhbmQgZ2VuZXJpYyBlbm91Z2ggZXhhbXBsZS48bzpwPjwvbzpwPjwv c3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAg bGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6 JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzogc3Vn Z2VzdCByZW1vdmluZyDigJxBcyBtZW50aW9uZWQgYWJvdmXigJ0uDQo8bzpwPjwvbzpwPjwvc3Bh bj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdp bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAgbGV2 ZWwxIGxmbzQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1 b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij4mbmJzcDtUaGUgbmFt ZSBvZiB0aGUgZHJhZnQgZXhwbGljaXRseSBtZW50aW9ucyBNUExTLVRQIGJ1dCBpbiB0aGUgcmVz dCBvZiB0aGUgZHJhZnQgdGhlcmUgaXMgbm8gbWVudGlvbiBvZiBpdCwganVzdCB0aGUgbXVjaCBt b3JlIGdlbmVyYWwgUGFja2V0IFN3aXRjaGluZyBOZXR3b3JrIHRlcm0gaXMgdXNlZC4NCjxvOnA+ PC9vOnA+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFj azttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28t bGlzdDpsMCBsZXZlbDEgbGZvNDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPlNl Y3Rpb24gMjombmJzcDsmbmJzcDsg4oCcVGhpcyBkb2N1bWVudCBkZWZpbmVzIGEgbmV3IG9wdGlv bmFsIFRMViwgUFNOIFR1bm5lbCBCaW5kaW5nIFRMViwgdG8gY29tbXVuaWNhdGUgdHVubmVsL0xT UHMgc2VsZWN0aW9uIGFuZCBiaW5kaW5nIHJlcXVlc3RzIGJldHdlZW4gUEVzLiDigJwgVGhlIGJp bmRpbmcgcmVxdWVzdCBpcyBiZXR3ZWVuIFBFcz8gT3IgYmV0d2VlbiBhbiBQVw0KIGFuZCBhIFR1 bm5lbCAob3IgTFNQPykgYmV0d2VlbiB0d28gUEVzPzxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PGxp IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6 YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsMCBsZXZlbDEgbGZvNDti YWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBO ZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPlNlY3Rpb24gMjogU3RyaWN0IGJpbmRp bmcgdnMgQ28tcm91dGVkIGJpbmRpbmc6IGZyb20gdGhlIGRlc2NyaXB0aW9uIGl0IHNlZW1zIHRo YXQgdGhlIGZpcnN0IG9uZSBpcyBzdHJpY3QgYW5kIHRoZSBzZWNvbmQgb25lIGlzIOKAnGxvb3Nl 4oCdIChpbiB0aGUgc2Vuc2UgdGhhdCB0aGUgUEUgY2FuIGFjY2VwdCB0aGUgcmVxdWVzdCBvciBu b3QpLiBEb27igJl0IGJvdGgNCiBhcHBseSB0byBjby1yb3V0ZWQgTFNQcz88bzpwPjwvbzpwPjwv c3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAg bGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6 JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5TZWN0aW9uIDI6 IOKAnVRoZSB0ZXJtaW5vbG9neSAmcXVvdDtMU1AmcXVvdDsgaXMmbmJzcDsgaWRlbnRpY2FsIHRv IHRoZSAmcXVvdDtMU1AgdHVubmVsJnF1b3Q7IGRlZmluZWQgaW4gU2VjdGlvbiAyLjEgb2YgW1JG QzMyMDldLCZuYnNwOyB3aGljaCBpcyB1bmlxdWVseSBpZGVudGlmaWVkIGJ5IHRoZSBTRVNTSU9O IG9iamVjdCB0b2dldGhlciB3aXRoJm5ic3A7IFNFTkRFUl9URU1QTEFURSAob3IgRklMVEVSX1NQ RUMpDQogb2JqZWN0IHRoYXQgY29uc2lzdHMgb2YgTFNQIElEIGFuZCBUdW5uZWwgZW5kcG9pbnQg YWRkcmVzcy7igJ0gV2h5IGlzIHRoZSBkcmFmdCBjb25zaWRlcmluZyBvbmx5IHNpZ25hbGVkIExT UHM/IERvZXNu4oCZdCBpdCBhcHBseSBhbHNvIHRvIGNlbnRyYWxseSBwcm92aXNpb25lZCBvbmVz PyAoZS5nLiBOTVMgb3IgU0ROKS48bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3 aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1 b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5TZWN0aW9uIDIuMTog4oCcTERQIExhYmVsIE1hcHBpbmcg bWVzc2FnZeKAnSBtaXNzaW5nIHJlZmVyZW5jZS4gQW5kIHdoeSB0aGUgVHlwZSBmaWVsZCBzdGFy dHMgd2l0aCAxIGFuZCAwPzxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PC91bD4NCjxwIGNsYXNzPSJN c29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LWZhbWls eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6Ymxh Y2siPk5pdHM6PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg TmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+DQo8dWwgdHlwZT0iZGlzYyI+DQo8bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9ImNvbG9yOmJsYWNrO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t LWFsdDphdXRvO21zby1saXN0Omw0IGxldmVsMSBsZm81O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtz ZXJpZiZxdW90OyI+QWJzdHJhY3Qgcy88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3Rl eHQiPg0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9t YW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPnRyYXZlcnNlIHRocm91Z2ggbXVsdGlwbGUvPC9z cGFuPjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij4NCjwvc3Bhbj48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7 Ij50cmF2ZXJzZSBtdWx0aXBsZTxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy Z2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsNCBsZXZlbDEgbGZvNTtiYWNrZ3JvdW5kOndo aXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVv dDssJnF1b3Q7c2VyaWYmcXVvdDsiPkludHJvZHVjdGlvbjog4oCcUHNldWRvd2lyZSAoUFcpIEVt dWxhdGlvbiBFZGdlLXRvLUVkZ2UgKFBXRTMp4oCdLiBJIHN1Z2dlc3QgcmVtb3ZpbmcgKFBXKSwg aXTigJlzIGFscmVhZHkgaW5jbHVkZWQgaW50byBQV0UzLjxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+ PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1h bHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsNCBsZXZlbDEgbGZv NTtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1l cyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPkludHJvOiBzLzwvc3Bhbj48c3Bh biBzdHlsZT0iY29sb3I6d2luZG93dGV4dCI+DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFt aWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+YSBiaWRp cmVjdGlvbmFsIGNpcmN1aXRzLzwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dCI+ DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZx dW90OywmcXVvdDtzZXJpZiZxdW90OyI+YSBiaWRpcmVjdGlvbmFsIGNpcmN1aXQ8bzpwPjwvbzpw Pjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNv LW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6 bDQgbGV2ZWwxIGxmbzU7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1p bHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzog c3VnZ2VzdCByZXBocmFzaW5nOiDigJxCaWRpcmVjdGlvbmFsIExTUHMgc2hhcmUgZmF0ZSBhbmQg c2ltcGxpZnkgdGhlIHJvdXRpbmcgb2YgYSBwcm90ZWN0aW9uIHBhdGggYWxzbyBjb25zaXN0aW5n IG9mIGJpZGlyZWN0aW9uYWwmbmJzcDsmbmJzcDsgTFNQcyBiZWNhdXNlIHdvcmtpbmcgYW5kIHBy b3RlY3Rpb24gcGF0aHMgaGF2ZSB0byBiZSBkaXNqb2ludC7igJ08bzpwPjwvbzpwPjwvc3Bhbj48 L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10 b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDQgbGV2ZWwx IGxmbzU7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7 VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzogcy88L3NwYW4+ PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPg0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPnRo ZXJlIGFyZSBhIGxhcmdlIG51bWJlci88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3Rl eHQiPg0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9t YW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPnRoZXJlIGlzIGEgbGFyZ2UgbnVtYmVyPG86cD48 L286cD48L3NwYW4+PC9saT48bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNvbG9yOmJsYWNr O21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21zby1s aXN0Omw0IGxldmVsMSBsZm81O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQt ZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+SW50 cm86cy90byBiZSBjYXJyaWVkL2FyZSBjYXJyaWVkPG86cD48L286cD48L3NwYW4+PC9saT48bGkg Y2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNvbG9yOmJsYWNrO21zby1tYXJnaW4tdG9wLWFsdDph dXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21zby1saXN0Omw0IGxldmVsMSBsZm81O2Jh Y2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5l dyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+SW50cm86cy90aGVyZSBhcmUgYSBudW1i ZXIvdGhlcmUgaXMgYSBudW1iZXI8bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDQgbGV2ZWwxIGxmbzU7YmFja2dyb3VuZDp3 aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1 b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzogcy8gdHJhZmZpYyBiZWxvbmdzL3RyYWZmaWMg YmVsb25naW5nPG86cD48L286cD48L3NwYW4+PC9saT48bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5 bGU9ImNvbG9yOmJsYWNrO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9t LWFsdDphdXRvO21zby1saXN0Omw0IGxldmVsMSBsZm81O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNw YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtz ZXJpZiZxdW90OyI+SW50cm86IChzdWdnZXN0aW9uKSBzLyhQRTEtUDMtUEUyKS8gKFBFMi1QMy1Q RTEpIHNpbmNlIHdlIGFyZSBzcGVha2luZyBhYm91dCBkaXJlY3Rpb25hbGl0eSBpdCBtYWtlcyBt b3JlIHNlbnNlIHRvIGxpc3QgdGhlIG5vZGVzIG9mIHRoZSBwYXRoIGluIHRoZSByZXZlcnNlIGRp cmVjdGlvbi48bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHls ZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20t YWx0OmF1dG87bXNvLWxpc3Q6bDQgbGV2ZWwxIGxmbzU7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3Bh biBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3Nl cmlmJnF1b3Q7Ij5JbnRybzogcy8gVGhlIHNpbWlsYXIgcHJvYmxlbXMvQSBzaW1pbGFyIHByb2Js ZW08bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29s b3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1 dG87bXNvLWxpc3Q6bDQgbGV2ZWwxIGxmbzU7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHls ZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1 b3Q7Ij5JbnRybzogcy8gd29uJ3QvZG9lcyBub3Q8bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBj bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1 dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDQgbGV2ZWwxIGxmbzU7YmFj a2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3 IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzogcy8gSW4gdGhpcyBkb2N1bWVu dCwgaXQgaW50cm9kdWNlcy9UaGlzIGRvY3VtZW50IGludHJvZHVjZXM8bzpwPjwvbzpwPjwvc3Bh bj48L2xpPjwvdWw+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5CUjxicj4NCkRhbmllbGU8bzpwPjwv bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAg Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvYm9keT4N CjwvaHRtbD4NCg== --_000_4A1562797D64E44993C5CBF38CF1BE48162BAB58ESESSMB301erics_-- From nobody Mon Apr 25 10:09:41 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9897712D63F; Mon, 25 Apr 2016 10:09:37 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -4.22 X-Spam-Level: X-Spam-Status: No, score=-4.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id J8L0hvWeS51G; Mon, 25 Apr 2016 10:09:25 -0700 (PDT) Received: from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1A89712D639; Mon, 25 Apr 2016 10:09:23 -0700 (PDT) X-AuditID: c1b4fb3a-f79386d00000467b-bc-571e4f426b53 Received: from ESESSHC012.ericsson.se (Unknown_Domain [153.88.183.54]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 9B.F3.18043.24F4E175; Mon, 25 Apr 2016 19:09:22 +0200 (CEST) Received: from ESESSMB301.ericsson.se ([169.254.1.65]) by ESESSHC012.ericsson.se ([153.88.183.54]) with mapi id 14.03.0248.002; Mon, 25 Apr 2016 19:09:17 +0200 From: Daniele Ceccarelli To: " (rtg-ads@ietf.org)" Thread-Topic: RtgDir review: draft-ietf-pals-mpls-tp-pw-over-bidir-lsp-06 Thread-Index: AdGe+Z/lFOzQc8O7SFSbqLe7ce8oewAG1OFw Date: Mon, 25 Apr 2016 17:09:16 +0000 Message-ID: <4A1562797D64E44993C5CBF38CF1BE48162BAB9E@ESESSMB301.ericsson.se> Accept-Language: it-IT, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [153.88.183.150] Content-Type: multipart/alternative; boundary="_000_4A1562797D64E44993C5CBF38CF1BE48162BAB9EESESSMB301erics_" MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprIIsWRmVeSWpSXmKPExsUyM2K7ma6Tv1y4wfpuGYu5UxYwWaz5t47J 4uScH8wWC9Y8ZXdg8Viy5CeTx5fLn9kCmKK4bFJSczLLUov07RK4Mr492MBW8OIOU8Wx03/Z GhjvXGbqYuTkkBAwkeh9e4AFwhaTuHBvPVsXIxeHkMARRolPj24zQjiLGSUO/7/M3MXIwcEm YCXx5JAPiCkiYCcx66IuSC+zwHlGiSWzzUFsYQEPifn3T7CC2CICnhJH1k9nhCg3kpjcXgsS ZhFQlZh/+gTYCbwCvhI3N0OcwyggKzFh9yJGiJHiEreezIc6U0BiyZ7zzBC2qMTLx/9YIWwl iRXbL0HV50uc/vaSEWKmoMTJmU9YJjAKz0IyahaSsllIymYBXccsoCmxfpc+RImixJTuh+wQ toZE65y57MjiCxjZVzGKFqcWF+emGxnppRZlJhcX5+fp5aWWbGIERtTBLb+tdjAefO54iFGA g1GJh3cBp2y4EGtiWXFl7iFGCQ5mJRHe5d5y4UK8KYmVValF+fFFpTmpxYcYpTlYlMR5cyL/ hQkJpCeWpGanphakFsFkmTg4pRoY8zcLV+5fJOTcbdAfKvu5KXnL+gbzH20mv2Lk+3TjmPpd mzRnXtsdvbIt+6D0nEsGtl82ZgQ93LjyhMp7MZ91tZ2ys5+ddn+RpMYwganx4dWWbXfny7vp FwjWNd8w50s48P79yl+3ik9PUnu8PqKnmEnKhfHjRhFL16tvNmy6dTju3JGJE3quKrEUZyQa ajEXFScCAKxmJhakAgAA Archived-At: Cc: "rtg-dir@ietf.org" , "draft-ietf-pals-mpls-tp-pw-over-bidir-lsp.all@tools.ietf.org" , "pals@ietf.org" Subject: Re: [RTG-DIR] RtgDir review: draft-ietf-pals-mpls-tp-pw-over-bidir-lsp-06 X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2016 17:09:37 -0000 --_000_4A1562797D64E44993C5CBF38CF1BE48162BAB9EESESSMB301erics_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmVzZW5kaW5nIHRvIHRoZSByaWdodCBleHBsb2Rlcg0KDQpGcm9tOiBEYW5pZWxlIENlY2NhcmVs bGkNClNlbnQ6IGx1bmVkw6wgMjUgYXByaWxlIDIwMTYgMTk6MDQNClRvOiA8cnRnLWFkc0BpZXRm Lm9yZz4gKHJ0Zy1hZHNAaWV0Zi5vcmcpDQpDYzogJ3J0Zy1kaXJAaWV0Zi5vcmcnOyAnZHJhZnQt aWV0Zi1wYWxzLW1wbHMtdHAtcHctb3Zlci1iaWRpci1sc3AuYWxsQGlldGYub3JnJw0KU3ViamVj dDogUnRnRGlyIHJldmlldzogZHJhZnQtaWV0Zi1wYWxzLW1wbHMtdHAtcHctb3Zlci1iaWRpci1s c3AtMDYNCg0KDQpIZWxsbywNCg0KSSBoYXZlIGJlZW4gc2VsZWN0ZWQgYXMgdGhlIFJvdXRpbmcg RGlyZWN0b3JhdGUgcmV2aWV3ZXIgZm9yIHRoaXMgZHJhZnQuIFRoZSBSb3V0aW5nIERpcmVjdG9y YXRlIHNlZWtzIHRvIHJldmlldyBhbGwgcm91dGluZyBvciByb3V0aW5nLXJlbGF0ZWQgZHJhZnRz IGFzIHRoZXkgcGFzcyB0aHJvdWdoIElFVEYgbGFzdCBjYWxsIGFuZCBJRVNHIHJldmlldywgYW5k IHNvbWV0aW1lcyBvbiBzcGVjaWFsIHJlcXVlc3QuIFRoZSBwdXJwb3NlIG9mIHRoZSByZXZpZXcg aXMgdG8gcHJvdmlkZSBhc3Npc3RhbmNlIHRvIHRoZSBSb3V0aW5nIEFEcy4gRm9yIG1vcmUgaW5m b3JtYXRpb24gYWJvdXQgdGhlIFJvdXRpbmcgRGlyZWN0b3JhdGUsIHBsZWFzZSBzZWUg4oCLaHR0 cDovL3RyYWMudG9vbHMuaWV0Zi5vcmcvYXJlYS9ydGcvdHJhYy93aWtpL1J0Z0RpcjxodHRwOi8v dHJhYy50b29scy5pZXRmLm9yZy9hcmVhL3J0Zy90cmFjL3dpa2kvUnRnRGlyPg0KDQpBbHRob3Vn aCB0aGVzZSBjb21tZW50cyBhcmUgcHJpbWFyaWx5IGZvciB0aGUgdXNlIG9mIHRoZSBSb3V0aW5n IEFEcywgaXQgd291bGQgYmUgaGVscGZ1bCBpZiB5b3UgY291bGQgY29uc2lkZXIgdGhlbSBhbG9u ZyB3aXRoIGFueSBvdGhlciBJRVRGIExhc3QgQ2FsbCBjb21tZW50cyB0aGF0IHlvdSByZWNlaXZl LCBhbmQgc3RyaXZlIHRvIHJlc29sdmUgdGhlbSB0aHJvdWdoIGRpc2N1c3Npb24gb3IgYnkgdXBk YXRpbmcgdGhlIGRyYWZ0Lg0KDQpEb2N1bWVudDogZHJhZnQtaWV0Zi1wYWxzLW1wbHMtdHAtcHct b3Zlci1iaWRpci1sc3AtMDYNClJldmlld2VyOiBEYW5pZWxlIENlY2NhcmVsbGkNClJldmlldyBE YXRlOiBBcHJpbCAyNSAyMDE2DQpJRVRGIExDIEVuZCBEYXRlOiAtDQpJbnRlbmRlZCBTdGF0dXM6 IFN0YW5kYXJkIFRyYWNrDQpTdW1tYXJ5Og0KDQogICogICBJIGhhdmUgc29tZSBtaW5vciBjb25j ZXJucyBhYm91dCB0aGlzIGRvY3VtZW50IHRoYXQgSSB0aGluayBzaG91bGQgYmUgcmVzb2x2ZWQg YmVmb3JlIHB1YmxpY2F0aW9uLg0KQ29tbWVudHM6DQoNCiAgKiAgIFdoYXQgdGhlIGRyYWZ0cyBp cyBwcm9wb3NpbmcgYXMgcHJvdG9jb2wgbW9kaWZpY2F0aW9uIGlzIGNsZWFyIGFuZCBhbHNvIHRo ZSBvcGVyYXRpb24gc2VjdGlvbiBhcmUgcHJldHR5IHN0cmFpZ2hmb3J3YXJkLiBXaGF0IG5lZWRz IHRvIGJlIGltcHJvdmVkIGlzIHRoZSBpbnRyb2R1Y3Rpb24gcGFydCwgd2hpY2ggc2hvdWxkIGJl IHJldmlld2VkIGJ5IGEgbmF0aXZlIEVuZ2xpc2ggc3BlYWtlci4gQWxzbyB0aGUgSUFOQSBzZWN0 aW9uIHNob3VsZCBiZSBtYWRlIGNsZWFyZXIuDQpNYWpvciBJc3N1ZXM6DQoNCiAgKiAgIE5vIG1h am9yIGlzc3VlcyBmb3VuZA0KTWlub3IgSXNzdWVzOg0KDQogICogICBBYnN0cmFjdDog4oCcSW4g YWRkaXRpb24sIHRoZSB1c2VyIHRyYWZmaWMgbWF5IHRyYXZlcnNlIHRocm91Z2ggbXVsdGlwbGUg dHJhbnNwb3J0IG5ldHdvcmtzLuKAnSBNYXliZSBpcyB3b3J0aCBlbGFib3JhdGluZyBhIGJpdCB0 aGlzIHNlbnRlbmNlIHNheWluZyB0aGF0IHRoZSBleHRlbnNpb25zIGRlZmluZWQgaW4gdGhpcyBk cmFmdCBhcHBseSBib3RoIHRvIFNTLVBXIGFuZCBNUy1QVy4NCiAgKiAgIEluIHRoZSBhYnN0cmFj dCBpdCBpcyBzYWlkIHRoYXQgYSBQVyBpcyBsaW5rZWQgdG8gYW4gTFNQIGJ1dCB0aGVuIGluIHRo ZSBpbnRybyBpdCBpcyBzYWlkIHRoYXQgdGhlIFBXIGJpbmRpbmcgaXMgdG8gYSB0dW5uZWwuIENh biB5b3UgY2xhcmlmeSB0aGlzPyBJ4oCZZCBzYXkgdGhhdCBpdCBzaG91bGQgYmUgbGlua2VkIHRv IGEgdHVubmVsLCByaWdodD8NCiAgKiAgIEludHJvOiAgIOKAnFBXLXRvLVBTTiBUdW5uZWwgYmlu ZGluZyBoYXMgYmVjb21lIGluY3JlYXNpbmdseSBjb21tb24gYW5kIGltcG9ydGFudCBpbiBtYW55 IGRlcGxveW1lbnQgc2NlbmFyaW9z4oCdLiBJIGd1ZXNzIHlvdSBtZWFuIGFuIGF1dG9tYXRpYyBi aW5kaW5nIGRvbmUgdmlhIGEgc2lnbmFsaW5nIHByb3RvY29sPw0KICAqICAgV2hhdCBkbyB5b3Ug bWVhbiB3aXRoIOKAnG1heSB0cmF2ZXJzZSB0aHJvdWdoIGRpZmZlcmVudCByb3V0ZXPigJ0/IEkg c3VnZ2VzdCBsZWF2aW5nIOKAnG1heSB0cmF2ZXJzZSBtdWx0aXBsZSBuZXR3b3JrcyBvciBkb21h aW5zLg0KICAqICAgSW50cm8gYW5kIEZpZ3VyZSAxOiBjb3VsZCBiZSBleGFtcGxlIGJlIG1hZGUg YSBiaXQgbW9yZSBnZW5lcmljIHdpdGggYSBuZXR3b3JrIGJldHdlZW4gdGhlIFBFcz8gV2l0aCBk aXJlY3RseSBjb25uZWN0ZWQgUEVzIGl0IGRvZXNu4oCZdCBzZWVtIGEgcmVhbGlzdGljIGFuZCBn ZW5lcmljIGVub3VnaCBleGFtcGxlLg0KICAqICAgSW50cm86IHN1Z2dlc3QgcmVtb3Zpbmcg4oCc QXMgbWVudGlvbmVkIGFib3Zl4oCdLg0KICAqICAgIFRoZSBuYW1lIG9mIHRoZSBkcmFmdCBleHBs aWNpdGx5IG1lbnRpb25zIE1QTFMtVFAgYnV0IGluIHRoZSByZXN0IG9mIHRoZSBkcmFmdCB0aGVy ZSBpcyBubyBtZW50aW9uIG9mIGl0LCBqdXN0IHRoZSBtdWNoIG1vcmUgZ2VuZXJhbCBQYWNrZXQg U3dpdGNoaW5nIE5ldHdvcmsgdGVybSBpcyB1c2VkLg0KICAqICAgU2VjdGlvbiAyOiAgIOKAnFRo aXMgZG9jdW1lbnQgZGVmaW5lcyBhIG5ldyBvcHRpb25hbCBUTFYsIFBTTiBUdW5uZWwgQmluZGlu ZyBUTFYsIHRvIGNvbW11bmljYXRlIHR1bm5lbC9MU1BzIHNlbGVjdGlvbiBhbmQgYmluZGluZyBy ZXF1ZXN0cyBiZXR3ZWVuIFBFcy4g4oCcIFRoZSBiaW5kaW5nIHJlcXVlc3QgaXMgYmV0d2VlbiBQ RXM/IE9yIGJldHdlZW4gYW4gUFcgYW5kIGEgVHVubmVsIChvciBMU1A/KSBiZXR3ZWVuIHR3byBQ RXM/DQogICogICBTZWN0aW9uIDI6IFN0cmljdCBiaW5kaW5nIHZzIENvLXJvdXRlZCBiaW5kaW5n OiBmcm9tIHRoZSBkZXNjcmlwdGlvbiBpdCBzZWVtcyB0aGF0IHRoZSBmaXJzdCBvbmUgaXMgc3Ry aWN0IGFuZCB0aGUgc2Vjb25kIG9uZSBpcyDigJxsb29zZeKAnSAoaW4gdGhlIHNlbnNlIHRoYXQg dGhlIFBFIGNhbiBhY2NlcHQgdGhlIHJlcXVlc3Qgb3Igbm90KS4gRG9u4oCZdCBib3RoIGFwcGx5 IHRvIGNvLXJvdXRlZCBMU1BzPw0KICAqICAgU2VjdGlvbiAyOiDigJ1UaGUgdGVybWlub2xvZ3kg IkxTUCIgaXMgIGlkZW50aWNhbCB0byB0aGUgIkxTUCB0dW5uZWwiIGRlZmluZWQgaW4gU2VjdGlv biAyLjEgb2YgW1JGQzMyMDldLCAgd2hpY2ggaXMgdW5pcXVlbHkgaWRlbnRpZmllZCBieSB0aGUg U0VTU0lPTiBvYmplY3QgdG9nZXRoZXIgd2l0aCAgU0VOREVSX1RFTVBMQVRFIChvciBGSUxURVJf U1BFQykgb2JqZWN0IHRoYXQgY29uc2lzdHMgb2YgTFNQIElEIGFuZCBUdW5uZWwgZW5kcG9pbnQg YWRkcmVzcy7igJ0gV2h5IGlzIHRoZSBkcmFmdCBjb25zaWRlcmluZyBvbmx5IHNpZ25hbGVkIExT UHM/IERvZXNu4oCZdCBpdCBhcHBseSBhbHNvIHRvIGNlbnRyYWxseSBwcm92aXNpb25lZCBvbmVz PyAoZS5nLiBOTVMgb3IgU0ROKS4NCiAgKiAgIFNlY3Rpb24gMi4xOiDigJxMRFAgTGFiZWwgTWFw cGluZyBtZXNzYWdl4oCdIG1pc3NpbmcgcmVmZXJlbmNlLiBBbmQgd2h5IHRoZSBUeXBlIGZpZWxk IHN0YXJ0cyB3aXRoIDEgYW5kIDA/DQpOaXRzOg0KDQogICogICBBYnN0cmFjdCBzLyB0cmF2ZXJz ZSB0aHJvdWdoIG11bHRpcGxlLyB0cmF2ZXJzZSBtdWx0aXBsZQ0KICAqICAgSW50cm9kdWN0aW9u OiDigJxQc2V1ZG93aXJlIChQVykgRW11bGF0aW9uIEVkZ2UtdG8tRWRnZSAoUFdFMynigJ0uIEkg c3VnZ2VzdCByZW1vdmluZyAoUFcpLCBpdOKAmXMgYWxyZWFkeSBpbmNsdWRlZCBpbnRvIFBXRTMu DQogICogICBJbnRybzogcy8gYSBiaWRpcmVjdGlvbmFsIGNpcmN1aXRzLyBhIGJpZGlyZWN0aW9u YWwgY2lyY3VpdA0KICAqICAgSW50cm86IHN1Z2dlc3QgcmVwaHJhc2luZzog4oCcQmlkaXJlY3Rp b25hbCBMU1BzIHNoYXJlIGZhdGUgYW5kIHNpbXBsaWZ5IHRoZSByb3V0aW5nIG9mIGEgcHJvdGVj dGlvbiBwYXRoIGFsc28gY29uc2lzdGluZyBvZiBiaWRpcmVjdGlvbmFsICAgTFNQcyBiZWNhdXNl IHdvcmtpbmcgYW5kIHByb3RlY3Rpb24gcGF0aHMgaGF2ZSB0byBiZSBkaXNqb2ludC7igJ0NCiAg KiAgIEludHJvOiBzLyB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIvIHRoZXJlIGlzIGEgbGFyZ2Ug bnVtYmVyDQogICogICBJbnRybzpzL3RvIGJlIGNhcnJpZWQvYXJlIGNhcnJpZWQNCiAgKiAgIElu dHJvOnMvdGhlcmUgYXJlIGEgbnVtYmVyL3RoZXJlIGlzIGEgbnVtYmVyDQogICogICBJbnRybzog cy8gdHJhZmZpYyBiZWxvbmdzL3RyYWZmaWMgYmVsb25naW5nDQogICogICBJbnRybzogKHN1Z2dl c3Rpb24pIHMvKFBFMS1QMy1QRTIpLyAoUEUyLVAzLVBFMSkgc2luY2Ugd2UgYXJlIHNwZWFraW5n IGFib3V0IGRpcmVjdGlvbmFsaXR5IGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gbGlzdCB0aGUgbm9k ZXMgb2YgdGhlIHBhdGggaW4gdGhlIHJldmVyc2UgZGlyZWN0aW9uLg0KICAqICAgSW50cm86IHMv IFRoZSBzaW1pbGFyIHByb2JsZW1zL0Egc2ltaWxhciBwcm9ibGVtDQogICogICBJbnRybzogcy8g d29uJ3QvZG9lcyBub3QNCiAgKiAgIEludHJvOiBzLyBJbiB0aGlzIGRvY3VtZW50LCBpdCBpbnRy b2R1Y2VzL1RoaXMgZG9jdW1lbnQgaW50cm9kdWNlcw0KQlINCkRhbmllbGUNCg0KDQo= --_000_4A1562797D64E44993C5CBF38CF1BE48162BAB9EESESSMB301erics_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6 V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K CXtmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJcGFub3NlLTE6NSAwIDAgMCAwIDAgMCAwIDAgMDt9 DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIg MiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJcGFub3Nl LTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNv Tm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBjbTsNCgltYXJn aW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2Fs aWJyaSIsInNhbnMtc2VyaWYiO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0 eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGlu ZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXBy aW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30N CnANCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0K CW1hcmdpbi1yaWdodDowY207DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2lu LWxlZnQ6MGNtOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBS b21hbiIsInNlcmlmIjt9DQpzcGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5bGUtdHlwZTpwZXJz b25hbDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOw0KCWNvbG9yOndpbmRv d3RleHQ7fQ0Kc3Bhbi5hcHBsZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxlLW5hbWU6YXBw bGUtY29udmVydGVkLXNwYWNlO30NCnNwYW4uaWNvbg0KCXttc28tc3R5bGUtbmFtZTppY29uO30N CnNwYW4uRW1haWxTdHlsZTIxDQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZv bnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJY29sb3I6IzFGNDk3RDt9DQouTXNv Q2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LXNpemU6MTAu MHB0O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJn aW46NzAuODVwdCA3MC44NXB0IDcwLjg1cHQgNzAuODVwdDt9DQpkaXYuV29yZFNlY3Rpb24xDQoJ e3BhZ2U6V29yZFNlY3Rpb24xO30NCi8qIExpc3QgRGVmaW5pdGlvbnMgKi8NCkBsaXN0IGwwDQoJ e21zby1saXN0LWlkOjIyMzE1MDYwODsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6LTEzMTAzMDQw NjY7fQ0KQGxpc3QgbDA6bGV2ZWwxDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsN Cgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjM2LjBwdDsNCgltc28t bGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28t YW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDps ZXZlbDINCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0 Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOjcyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0 aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAu MHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6 IlRpbWVzIE5ldyBSb21hbiI7fQ0KQGxpc3QgbDA6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXIt Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9w OjEwOC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50 Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5n ZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxl dDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjE0NC4wcHQ7DQoJ bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJ bXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxp c3QgbDA6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2 ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjE4MC4wcHQ7DQoJbXNvLWxldmVsLW51 bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9u dC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw2 DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7 DQoJbXNvLWxldmVsLXRhYi1zdG9wOjIxNi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlv bjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBw dDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw3DQoJe21zby1sZXZl bC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVs LXRhYi1zdG9wOjI1Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl eHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZh bWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9y bWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjI4 OC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0x OC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGlu Z3M7fQ0KQGxpc3QgbDA6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsN Cgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjMyNC4wcHQ7DQoJbXNv LWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNv LWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3Qg bDENCgl7bXNvLWxpc3QtaWQ6NDUzOTEzMTgyOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczo1NTM1 MjI3NDY7fQ0KQGxpc3QgbDE6bGV2ZWwxDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxl dDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjM2LjBwdDsNCglt c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglt c28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBs MTpsZXZlbDINCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10 ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOjcyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBv c2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6 MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7DQoJbXNvLWJpZGktZm9udC1mYW1p bHk6IlRpbWVzIE5ldyBSb21hbiI7fQ0KQGxpc3QgbDE6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1i ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1z dG9wOjEwOC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k ZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpX aW5nZGluZ3M7fQ0KQGxpc3QgbDE6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1 bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjE0NC4wcHQ7 DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7 DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0K QGxpc3QgbDE6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t bGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjE4MC4wcHQ7DQoJbXNvLWxldmVs LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2kt Zm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDE6bGV2 ZWw2DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrv gqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjIxNi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEw LjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDE6bGV2ZWw3DQoJe21zby1s ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxl dmVsLXRhYi1zdG9wOjI1Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0K CXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250 LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDE6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXIt Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9w OjI4OC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50 Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5n ZGluZ3M7fQ0KQGxpc3QgbDE6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxl dDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjMyNC4wcHQ7DQoJ bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJ bXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxp c3QgbDINCgl7bXNvLWxpc3QtaWQ6MTQ4NzM1MzIxMTsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6 LTI2MDIwMjA0O30NCkBsaXN0IGwyOmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpi dWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDozNi4wcHQ7 DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7 DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxp c3QgbDI6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2 ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDo3Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJl ci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1z aXplOjEwLjBwdDsNCglmb250LWZhbWlseToiQ291cmllciBOZXciOw0KCW1zby1iaWRpLWZvbnQt ZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30NCkBsaXN0IGwyOmxldmVsMw0KCXttc28tbGV2ZWwt bnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10 YWItc3RvcDoxMDguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0 LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1p bHk6V2luZ2RpbmdzO30NCkBsaXN0IGwyOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1h dDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoxNDQu MHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTgu MHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2Rpbmdz O30NCkBsaXN0IGwyOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJ bXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoxODAuMHB0Ow0KCW1zby1s ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1h bnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwy OmxldmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRl eHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDoyMTYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXIt cG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6 ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwyOmxldmVsNw0KCXtt c28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1z by1sZXZlbC10YWItc3RvcDoyNTIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVm dDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJ Zm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGwyOmxldmVsOA0KCXttc28tbGV2ZWwtbnVt YmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWIt c3RvcDoyODguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWlu ZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6 V2luZ2RpbmdzO30NCkBsaXN0IGwyOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpi dWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDozMjQuMHB0 Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0 Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzO30N CkBsaXN0IGwzDQoJe21zby1saXN0LWlkOjE3MjcxNDQ4MDU7DQoJbXNvLWxpc3QtdGVtcGxhdGUt aWRzOjYxOTk3ODMzMDt9DQpAbGlzdCBsMzpsZXZlbDENCgl7bXNvLWxldmVsLW51bWJlci1mb3Jt YXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MzYu MHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTgu MHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30N CkBsaXN0IGwzOmxldmVsMg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNv LWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6NzIuMHB0Ow0KCW1zby1sZXZlbC1u dW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZv bnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3IjsNCgltc28tYmlkaS1m b250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9DQpAbGlzdCBsMzpsZXZlbDMNCgl7bXNvLWxl dmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2 ZWwtdGFiLXN0b3A6MTA4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ dGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQt ZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMzpsZXZlbDQNCgl7bXNvLWxldmVsLW51bWJlci1m b3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6 MTQ0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6 LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5Oldpbmdk aW5nczt9DQpAbGlzdCBsMzpsZXZlbDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0 Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MTgwLjBwdDsNCglt c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglt c28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlz dCBsMzpsZXZlbDYNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZl bC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MjE2LjBwdDsNCgltc28tbGV2ZWwtbnVt YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250 LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMzpsZXZlbDcN Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsN Cgltc28tbGV2ZWwtdGFiLXN0b3A6MjUyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0 Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMzpsZXZlbDgNCgl7bXNvLWxldmVs LW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwt dGFiLXN0b3A6Mjg4LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4 dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFt aWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMzpsZXZlbDkNCgl7bXNvLWxldmVsLW51bWJlci1mb3Jt YXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MzI0 LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4 LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5n czt9DQpAbGlzdCBsNA0KCXttc28tbGlzdC1pZDoxODAwNDkwNTM5Ow0KCW1zby1saXN0LXRlbXBs YXRlLWlkczo5ODY0NDkyNzY7fQ0KQGxpc3QgbDQ6bGV2ZWwxDQoJe21zby1sZXZlbC1udW1iZXIt Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9w OjM2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6 LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJv bDt9DQpAbGlzdCBsNDpsZXZlbDINCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0K CW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1zdG9wOjcyLjBwdDsNCgltc28tbGV2 ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5z aS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7DQoJbXNvLWJp ZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQ0KQGxpc3QgbDQ6bGV2ZWwzDQoJe21z by1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNv LWxldmVsLXRhYi1zdG9wOjEwOC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0 Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglm b250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDQ6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1i ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1z dG9wOjE0NC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k ZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpX aW5nZGluZ3M7fQ0KQGxpc3QgbDQ6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1 bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjE4MC4wcHQ7 DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7 DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0K QGxpc3QgbDQ6bGV2ZWw2DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t bGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjIxNi4wcHQ7DQoJbXNvLWxldmVs LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2kt Zm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDQ6bGV2 ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrv gqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjI1Mi4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEw LjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDQ6bGV2ZWw4DQoJe21zby1s ZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxl dmVsLXRhYi1zdG9wOjI4OC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0K CXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250 LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDQ6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXIt Zm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9w OjMyNC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50 Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpXaW5n ZGluZ3M7fQ0Kb2wNCgl7bWFyZ2luLWJvdHRvbTowY207fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTow Y207fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVs dHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0t W2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlk bWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2Vu ZGlmXS0tPg0KPC9oZWFkPg0KPGJvZHkgbGFuZz0iRU4tVVMiIGxpbms9ImJsdWUiIHZsaW5rPSJw dXJwbGUiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxzcGFuIHN0eWxlPSJjb2xvcjojMUY0OTdEIj5SZXNlbmRpbmcgdG8gdGhlIHJpZ2h0IGV4cGxv ZGVyPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5 bGU9ImNvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxkaXYgc3R5 bGU9ImJvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkIGJsdWUgMS41cHQ7cGFkZGluZzowY20g MGNtIDBjbSA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRv cDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAwY20iPg0KPHAgY2xh c3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p bHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkZyb206PC9zcGFu PjwvYj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTomcXVvdDtUYWhv bWEmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+IERhbmllbGUgQ2VjY2FyZWxsaQ0KPGJy Pg0KPGI+U2VudDo8L2I+IGx1bmVkw6wgMjUgYXByaWxlIDIwMTYgMTk6MDQ8YnI+DQo8Yj5Ubzo8 L2I+ICZsdDtydGctYWRzQGlldGYub3JnJmd0OyAocnRnLWFkc0BpZXRmLm9yZyk8YnI+DQo8Yj5D Yzo8L2I+ICdydGctZGlyQGlldGYub3JnJzsgJ2RyYWZ0LWlldGYtcGFscy1tcGxzLXRwLXB3LW92 ZXItYmlkaXItbHNwLmFsbEBpZXRmLm9yZyc8YnI+DQo8Yj5TdWJqZWN0OjwvYj4gUnRnRGlyIHJl dmlldzogZHJhZnQtaWV0Zi1wYWxzLW1wbHMtdHAtcHctb3Zlci1iaWRpci1sc3AtMDY8bzpwPjwv bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86 cD4mbmJzcDs8L286cD48L3A+DQo8cCBzdHlsZT0iYmFja2dyb3VuZDp3aGl0ZSI+PHNwYW4gc3R5 bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6YmxhY2siPkhlbGxvLDxvOnA+PC9vOnA+PC9zcGFu PjwvcD4NCjxwIHN0eWxlPSJiYWNrZ3JvdW5kOndoaXRlO29ycGhhbnM6IGF1dG87dGV4dC1hbGln bjpzdGFydDt3aWRvd3M6IDE7LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4O3dvcmQtc3Bh Y2luZzowcHgiPg0KPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6YmxhY2siPkkg aGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHRoZSBSb3V0aW5nIERpcmVjdG9yYXRlIHJldmlld2VyIGZv ciB0aGlzIGRyYWZ0LiBUaGUgUm91dGluZyBEaXJlY3RvcmF0ZSBzZWVrcyB0byByZXZpZXcgYWxs IHJvdXRpbmcgb3Igcm91dGluZy1yZWxhdGVkIGRyYWZ0cyBhcyB0aGV5IHBhc3MgdGhyb3VnaCBJ RVRGIGxhc3QgY2FsbCBhbmQgSUVTRyByZXZpZXcsIGFuZCBzb21ldGltZXMNCiBvbiBzcGVjaWFs IHJlcXVlc3QuIFRoZSBwdXJwb3NlIG9mIHRoZSByZXZpZXcgaXMgdG8gcHJvdmlkZSBhc3Npc3Rh bmNlIHRvIHRoZSBSb3V0aW5nIEFEcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIFJv dXRpbmcgRGlyZWN0b3JhdGUsIHBsZWFzZSBzZWU8c3BhbiBjbGFzcz0iYXBwbGUtY29udmVydGVk LXNwYWNlIj4mbmJzcDs8L3NwYW4+PGEgaHJlZj0iaHR0cDovL3RyYWMudG9vbHMuaWV0Zi5vcmcv YXJlYS9ydGcvdHJhYy93aWtpL1J0Z0RpciI+PHNwYW4gY2xhc3M9Imljb24iPjxzcGFuIHN0eWxl PSJjb2xvcjojNDQwMDg4Ij7igIs8L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjojNDQw MDg4Ij5odHRwOi8vdHJhYy50b29scy5pZXRmLm9yZy9hcmVhL3J0Zy90cmFjL3dpa2kvUnRnRGly PC9zcGFuPjwvYT48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBzdHlsZT0iYmFja2dyb3VuZDp3 aGl0ZTtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3RhcnQ7d2lkb3dzOiAxOy13ZWJraXQtdGV4 dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6MHB4Ij4NCjxzcGFuIHN0eWxlPSJmb250 LXNpemU6MTEuMHB0O2NvbG9yOmJsYWNrIj5BbHRob3VnaCB0aGVzZSBjb21tZW50cyBhcmUgcHJp bWFyaWx5IGZvciB0aGUgdXNlIG9mIHRoZSBSb3V0aW5nIEFEcywgaXQgd291bGQgYmUgaGVscGZ1 bCBpZiB5b3UgY291bGQgY29uc2lkZXIgdGhlbSBhbG9uZyB3aXRoIGFueSBvdGhlciBJRVRGIExh c3QgQ2FsbCBjb21tZW50cyB0aGF0IHlvdSByZWNlaXZlLCBhbmQgc3RyaXZlIHRvIHJlc29sdmUg dGhlbSB0aHJvdWdoDQogZGlzY3Vzc2lvbiBvciBieSB1cGRhdGluZyB0aGUgZHJhZnQuPG86cD48 L286cD48L3NwYW4+PC9wPg0KPHAgc3R5bGU9ImJhY2tncm91bmQ6d2hpdGU7b3JwaGFuczogYXV0 bzt0ZXh0LWFsaWduOnN0YXJ0O3dpZG93czogMTstd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAw cHg7d29yZC1zcGFjaW5nOjBweCI+DQo8c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtjb2xv cjpibGFjayI+RG9jdW1lbnQ6PHNwYW4gY2xhc3M9ImFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+Jm5i c3A7ZHJhZnQtaWV0Zi1wYWxzLW1wbHMtdHAtcHctb3Zlci1iaWRpci1sc3AtMDY8L3NwYW4+PGJy Pg0KUmV2aWV3ZXI6IERhbmllbGUgQ2VjY2FyZWxsaTxicj4NClJldmlldyBEYXRlOiBBcHJpbCAy NSAyMDE2PGJyPg0KSUVURiBMQyBFbmQgRGF0ZTogLTxicj4NCkludGVuZGVkIFN0YXR1czogU3Rh bmRhcmQgVHJhY2s8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIiBz dHlsZT0ibXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87 YmFja2dyb3VuZDp3aGl0ZTtvcnBoYW5zOiBhdXRvO3RleHQtYWxpZ246c3RhcnQ7d2lkb3dzOiAx Oy13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDt3b3JkLXNwYWNpbmc6MHB4Ij4NCjxiPjxz cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7 c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPlN1bW1hcnk6PC9zcGFuPjwvYj48c3BhbiBzdHlsZT0i Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7 O2NvbG9yOmJsYWNrIj4mbmJzcDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8dWwgdHlwZT0iZGlz YyI+DQo8bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNvbG9yOmJsYWNrO21zby1tYXJnaW4t dG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21zby1saXN0Omw0IGxldmVs MSBsZm8xO2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90 O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+SSBoYXZlIHNvbWUgbWlu b3IgY29uY2VybnMgYWJvdXQgdGhpcyBkb2N1bWVudCB0aGF0IEkgdGhpbmsgc2hvdWxkIGJlIHJl c29sdmVkIGJlZm9yZSBwdWJsaWNhdGlvbi4NCjxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PC91bD4N CjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28t bWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4NCjxiPjxzcGFuIHN0eWxl PSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVv dDs7Y29sb3I6YmxhY2siPkNvbW1lbnRzOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtZmFt aWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90Oztjb2xvcjpi bGFjayI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHVsIHR5cGU9ImRpc2MiPg0KPGxpIGNsYXNz PSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bztt c28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsMiBsZXZlbDEgbGZvMjtiYWNrZ3Jv dW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9t YW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPldoYXQgdGhlIGRyYWZ0cyBpcyBwcm9wb3Npbmcg YXMgcHJvdG9jb2wgbW9kaWZpY2F0aW9uIGlzIGNsZWFyIGFuZCBhbHNvIHRoZSBvcGVyYXRpb24g c2VjdGlvbiBhcmUgcHJldHR5IHN0cmFpZ2hmb3J3YXJkLiBXaGF0IG5lZWRzIHRvIGJlIGltcHJv dmVkIGlzIHRoZSBpbnRyb2R1Y3Rpb24gcGFydCwgd2hpY2ggc2hvdWxkIGJlIHJldmlld2VkIGJ5 IGEgbmF0aXZlDQogRW5nbGlzaCBzcGVha2VyLiBBbHNvIHRoZSBJQU5BIHNlY3Rpb24gc2hvdWxk IGJlIG1hZGUgY2xlYXJlci4gPG86cD48L286cD48L3NwYW4+PC9saT48L3VsPg0KPHAgY2xhc3M9 Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90 dG9tLWFsdDphdXRvO2JhY2tncm91bmQ6d2hpdGUiPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQtZmFt aWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90Oztjb2xvcjpi bGFjayI+TWFqb3IgSXNzdWVzOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZx dW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90Oztjb2xvcjpibGFjayI+ PG86cD48L286cD48L3NwYW4+PC9wPg0KPHVsIHR5cGU9ImRpc2MiPg0KPGxpIGNsYXNzPSJNc29O b3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFy Z2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsMSBsZXZlbDEgbGZvMztiYWNrZ3JvdW5kOndo aXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVv dDssJnF1b3Q7c2VyaWYmcXVvdDsiPk5vIG1ham9yIGlzc3VlcyBmb3VuZDxvOnA+PC9vOnA+PC9z cGFuPjwvbGk+PC91bD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFyZ2luLXRv cC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztiYWNrZ3JvdW5kOndoaXRlIj4N CjxiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDss JnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPk1pbm9yIElzc3Vlczo8L3NwYW4+PC9iPjxz cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7 c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjx1bCB0eXBl PSJkaXNjIj4NCjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1h cmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAg bGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6 JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5BYnN0cmFjdDog 4oCcSW4gYWRkaXRpb24sIHRoZSB1c2VyIHRyYWZmaWMgbWF5IHRyYXZlcnNlIHRocm91Z2ggbXVs dGlwbGUgdHJhbnNwb3J0IG5ldHdvcmtzLuKAnSBNYXliZSBpcyB3b3J0aCBlbGFib3JhdGluZyBh IGJpdCB0aGlzIHNlbnRlbmNlIHNheWluZyB0aGF0IHRoZSBleHRlbnNpb25zIGRlZmluZWQgaW4g dGhpcyBkcmFmdCBhcHBseSBib3RoIHRvIFNTLVBXDQogYW5kIE1TLVBXLjxvOnA+PC9vOnA+PC9z cGFuPjwvbGk+PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjazttc28tbWFy Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsMCBs ZXZlbDEgbGZvNDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTom cXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPkluIHRoZSBhYnN0 cmFjdCBpdCBpcyBzYWlkIHRoYXQgYSBQVyBpcyBsaW5rZWQgdG8gYW4gTFNQIGJ1dCB0aGVuIGlu IHRoZSBpbnRybyBpdCBpcyBzYWlkIHRoYXQgdGhlIFBXIGJpbmRpbmcgaXMgdG8gYSB0dW5uZWwu IENhbiB5b3UgY2xhcmlmeSB0aGlzPyBJ4oCZZCBzYXkgdGhhdCBpdCBzaG91bGQgYmUgbGlua2Vk IHRvIGEgdHVubmVsLCByaWdodD88bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3 aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1 b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzombmJzcDsmbmJzcDsg4oCcUFctdG8tUFNOIFR1 bm5lbCBiaW5kaW5nIGhhcyBiZWNvbWUgaW5jcmVhc2luZ2x5IGNvbW1vbiBhbmQgaW1wb3J0YW50 IGluIG1hbnkgZGVwbG95bWVudCBzY2VuYXJpb3PigJ0uIEkgZ3Vlc3MgeW91IG1lYW4gYW4gYXV0 b21hdGljIGJpbmRpbmcgZG9uZSB2aWEgYSBzaWduYWxpbmcgcHJvdG9jb2w/PG86cD48L286cD48 L3NwYW4+PC9saT48bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNvbG9yOmJsYWNrO21zby1t YXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21zby1saXN0Omww IGxldmVsMSBsZm80O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5 OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+V2hhdCBkbyB5 b3UgbWVhbiB3aXRoIOKAnG1heSB0cmF2ZXJzZSB0aHJvdWdoIGRpZmZlcmVudCByb3V0ZXPigJ0/ IEkgc3VnZ2VzdCBsZWF2aW5nIOKAnG1heSB0cmF2ZXJzZSBtdWx0aXBsZSBuZXR3b3JrcyBvciBk b21haW5zLjxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl PSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h bHQ6YXV0bzttc28tbGlzdDpsMCBsZXZlbDEgbGZvNDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFu IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2Vy aWYmcXVvdDsiPkludHJvIGFuZCBGaWd1cmUgMTogY291bGQgYmUgZXhhbXBsZSBiZSBtYWRlIGEg Yml0IG1vcmUgZ2VuZXJpYyB3aXRoIGEgbmV0d29yayBiZXR3ZWVuIHRoZSBQRXM/IFdpdGggZGly ZWN0bHkgY29ubmVjdGVkIFBFcyBpdCBkb2VzbuKAmXQgc2VlbSBhIHJlYWxpc3RpYyBhbmQgZ2Vu ZXJpYyBlbm91Z2ggZXhhbXBsZS48bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3 aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1 b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzogc3VnZ2VzdCByZW1vdmluZyDigJxBcyBtZW50 aW9uZWQgYWJvdmXigJ0uDQo8bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9y bWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdp bi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3aGl0 ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7 LCZxdW90O3NlcmlmJnF1b3Q7Ij4mbmJzcDtUaGUgbmFtZSBvZiB0aGUgZHJhZnQgZXhwbGljaXRs eSBtZW50aW9ucyBNUExTLVRQIGJ1dCBpbiB0aGUgcmVzdCBvZiB0aGUgZHJhZnQgdGhlcmUgaXMg bm8gbWVudGlvbiBvZiBpdCwganVzdCB0aGUgbXVjaCBtb3JlIGdlbmVyYWwgUGFja2V0IFN3aXRj aGluZyBOZXR3b3JrIHRlcm0gaXMgdXNlZC4NCjxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PGxpIGNs YXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6YXV0 bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28tbGlzdDpsMCBsZXZlbDEgbGZvNDtiYWNr Z3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcg Um9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPlNlY3Rpb24gMjombmJzcDsmbmJzcDsg4oCc VGhpcyBkb2N1bWVudCBkZWZpbmVzIGEgbmV3IG9wdGlvbmFsIFRMViwgUFNOIFR1bm5lbCBCaW5k aW5nIFRMViwgdG8gY29tbXVuaWNhdGUgdHVubmVsL0xTUHMgc2VsZWN0aW9uIGFuZCBiaW5kaW5n IHJlcXVlc3RzIGJldHdlZW4gUEVzLiDigJwgVGhlIGJpbmRpbmcgcmVxdWVzdCBpcyBiZXR3ZWVu IFBFcz8gT3IgYmV0d2VlbiBhbiBQVw0KIGFuZCBhIFR1bm5lbCAob3IgTFNQPykgYmV0d2VlbiB0 d28gUEVzPzxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxl PSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1h bHQ6YXV0bzttc28tbGlzdDpsMCBsZXZlbDEgbGZvNDtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFu IHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2Vy aWYmcXVvdDsiPlNlY3Rpb24gMjogU3RyaWN0IGJpbmRpbmcgdnMgQ28tcm91dGVkIGJpbmRpbmc6 IGZyb20gdGhlIGRlc2NyaXB0aW9uIGl0IHNlZW1zIHRoYXQgdGhlIGZpcnN0IG9uZSBpcyBzdHJp Y3QgYW5kIHRoZSBzZWNvbmQgb25lIGlzIOKAnGxvb3Nl4oCdIChpbiB0aGUgc2Vuc2UgdGhhdCB0 aGUgUEUgY2FuIGFjY2VwdCB0aGUgcmVxdWVzdCBvciBub3QpLiBEb27igJl0IGJvdGgNCiBhcHBs eSB0byBjby1yb3V0ZWQgTFNQcz88bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNv Tm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3 aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1 b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5TZWN0aW9uIDI6IOKAnVRoZSB0ZXJtaW5vbG9neSAmcXVv dDtMU1AmcXVvdDsgaXMmbmJzcDsgaWRlbnRpY2FsIHRvIHRoZSAmcXVvdDtMU1AgdHVubmVsJnF1 b3Q7IGRlZmluZWQgaW4gU2VjdGlvbiAyLjEgb2YgW1JGQzMyMDldLCZuYnNwOyB3aGljaCBpcyB1 bmlxdWVseSBpZGVudGlmaWVkIGJ5IHRoZSBTRVNTSU9OIG9iamVjdCB0b2dldGhlciB3aXRoJm5i c3A7IFNFTkRFUl9URU1QTEFURSAob3IgRklMVEVSX1NQRUMpDQogb2JqZWN0IHRoYXQgY29uc2lz dHMgb2YgTFNQIElEIGFuZCBUdW5uZWwgZW5kcG9pbnQgYWRkcmVzcy7igJ0gV2h5IGlzIHRoZSBk cmFmdCBjb25zaWRlcmluZyBvbmx5IHNpZ25hbGVkIExTUHM/IERvZXNu4oCZdCBpdCBhcHBseSBh bHNvIHRvIGNlbnRyYWxseSBwcm92aXNpb25lZCBvbmVzPyAoZS5nLiBOTVMgb3IgU0ROKS48bzpw PjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6Ymxh Y2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNv LWxpc3Q6bDAgbGV2ZWwxIGxmbzQ7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9u dC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5T ZWN0aW9uIDIuMTog4oCcTERQIExhYmVsIE1hcHBpbmcgbWVzc2FnZeKAnSBtaXNzaW5nIHJlZmVy ZW5jZS4gQW5kIHdoeSB0aGUgVHlwZSBmaWVsZCBzdGFydHMgd2l0aCAxIGFuZCAwPzxvOnA+PC9v OnA+PC9zcGFuPjwvbGk+PC91bD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtc28tbWFy Z2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bztiYWNrZ3JvdW5kOndo aXRlIj4NCjxiPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4m cXVvdDssJnF1b3Q7c2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPk5pdHM6PC9zcGFuPjwvYj48c3Bh biBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3Nl cmlmJnF1b3Q7O2NvbG9yOmJsYWNrIj48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8dWwgdHlwZT0i ZGlzYyI+DQo8bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNvbG9yOmJsYWNrO21zby1tYXJn aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21zby1saXN0OmwzIGxl dmVsMSBsZm81O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZx dW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+QWJzdHJhY3Qgcy88 L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPg0KPC9zcGFuPjxzcGFuIHN0eWxl PSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVv dDsiPnRyYXZlcnNlIHRocm91Z2ggbXVsdGlwbGUvPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjp3 aW5kb3d0ZXh0Ij4NCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMg TmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij50cmF2ZXJzZSBtdWx0aXBsZTxvOnA+ PC9vOnA+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJjb2xvcjpibGFj azttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzttc28t bGlzdDpsMyBsZXZlbDEgbGZvNTtiYWNrZ3JvdW5kOndoaXRlIj4NCjxzcGFuIHN0eWxlPSJmb250 LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPklu dHJvZHVjdGlvbjog4oCcUHNldWRvd2lyZSAoUFcpIEVtdWxhdGlvbiBFZGdlLXRvLUVkZ2UgKFBX RTMp4oCdLiBJIHN1Z2dlc3QgcmVtb3ZpbmcgKFBXKSwgaXTigJlzIGFscmVhZHkgaW5jbHVkZWQg aW50byBQV0UzLjxvOnA+PC9vOnA+PC9zcGFuPjwvbGk+PGxpIGNsYXNzPSJNc29Ob3JtYWwiIHN0 eWxlPSJjb2xvcjpibGFjazttc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzttc28tbWFyZ2luLWJvdHRv bS1hbHQ6YXV0bzttc28tbGlzdDpsMyBsZXZlbDEgbGZvNTtiYWNrZ3JvdW5kOndoaXRlIj4NCjxz cGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7 c2VyaWYmcXVvdDsiPkludHJvOiBzLzwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4 dCI+DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21h biZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+YSBiaWRpcmVjdGlvbmFsIGNpcmN1aXRzLzwvc3Bh bj48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dCI+DQo8L3NwYW4+PHNwYW4gc3R5bGU9ImZv bnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+ YSBiaWRpcmVjdGlvbmFsIGNpcmN1aXQ8bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0i TXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNv LW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDMgbGV2ZWwxIGxmbzU7YmFja2dyb3Vu ZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFu JnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzogc3VnZ2VzdCByZXBocmFzaW5nOiDigJxC aWRpcmVjdGlvbmFsIExTUHMgc2hhcmUgZmF0ZSBhbmQgc2ltcGxpZnkgdGhlIHJvdXRpbmcgb2Yg YSBwcm90ZWN0aW9uIHBhdGggYWxzbyBjb25zaXN0aW5nIG9mIGJpZGlyZWN0aW9uYWwmbmJzcDsm bmJzcDsgTFNQcyBiZWNhdXNlIHdvcmtpbmcgYW5kIHByb3RlY3Rpb24gcGF0aHMgaGF2ZSB0byBi ZSBkaXNqb2ludC7igJ08bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFs IiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1i b3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDMgbGV2ZWwxIGxmbzU7YmFja2dyb3VuZDp3aGl0ZSI+ DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZx dW90O3NlcmlmJnF1b3Q7Ij5JbnRybzogcy88L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRv d3RleHQiPg0KPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcg Um9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVvdDsiPnRoZXJlIGFyZSBhIGxhcmdlIG51bWJlci88 L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPg0KPC9zcGFuPjxzcGFuIHN0eWxl PSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDssJnF1b3Q7c2VyaWYmcXVv dDsiPnRoZXJlIGlzIGEgbGFyZ2UgbnVtYmVyPG86cD48L286cD48L3NwYW4+PC9saT48bGkgY2xh c3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNvbG9yOmJsYWNrO21zby1tYXJnaW4tdG9wLWFsdDphdXRv O21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21zby1saXN0OmwzIGxldmVsMSBsZm81O2JhY2tn cm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBS b21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+SW50cm86cy90byBiZSBjYXJyaWVkL2FyZSBj YXJyaWVkPG86cD48L286cD48L3NwYW4+PC9saT48bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9 ImNvbG9yOmJsYWNrO21zby1tYXJnaW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFs dDphdXRvO21zby1saXN0OmwzIGxldmVsMSBsZm81O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4g c3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJp ZiZxdW90OyI+SW50cm86cy90aGVyZSBhcmUgYSBudW1iZXIvdGhlcmUgaXMgYSBudW1iZXI8bzpw PjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6Ymxh Y2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNv LWxpc3Q6bDMgbGV2ZWwxIGxmbzU7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9u dC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5J bnRybzogcy8gdHJhZmZpYyBiZWxvbmdzL3RyYWZmaWMgYmVsb25naW5nPG86cD48L286cD48L3Nw YW4+PC9saT48bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9ImNvbG9yOmJsYWNrO21zby1tYXJn aW4tdG9wLWFsdDphdXRvO21zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvO21zby1saXN0OmwzIGxl dmVsMSBsZm81O2JhY2tncm91bmQ6d2hpdGUiPg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZx dW90O1RpbWVzIE5ldyBSb21hbiZxdW90OywmcXVvdDtzZXJpZiZxdW90OyI+SW50cm86IChzdWdn ZXN0aW9uKSBzLyhQRTEtUDMtUEUyKS8gKFBFMi1QMy1QRTEpIHNpbmNlIHdlIGFyZSBzcGVha2lu ZyBhYm91dCBkaXJlY3Rpb25hbGl0eSBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGxpc3QgdGhlIG5v ZGVzIG9mIHRoZSBwYXRoIGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbi48bzpwPjwvbzpwPjwvc3Bh bj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdp bi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDMgbGV2 ZWwxIGxmbzU7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1 b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzogcy8gVGhl IHNpbWlsYXIgcHJvYmxlbXMvQSBzaW1pbGFyIHByb2JsZW08bzpwPjwvbzpwPjwvc3Bhbj48L2xp PjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0iY29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3At YWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87bXNvLWxpc3Q6bDMgbGV2ZWwxIGxm bzU7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGlt ZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3NlcmlmJnF1b3Q7Ij5JbnRybzogcy8gd29uJ3QvZG9l cyBub3Q8bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0i Y29sb3I6YmxhY2s7bXNvLW1hcmdpbi10b3AtYWx0OmF1dG87bXNvLW1hcmdpbi1ib3R0b20tYWx0 OmF1dG87bXNvLWxpc3Q6bDMgbGV2ZWwxIGxmbzU7YmFja2dyb3VuZDp3aGl0ZSI+DQo8c3BhbiBz dHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7LCZxdW90O3Nlcmlm JnF1b3Q7Ij5JbnRybzogcy8gSW4gdGhpcyBkb2N1bWVudCwgaXQgaW50cm9kdWNlcy9UaGlzIGRv Y3VtZW50IGludHJvZHVjZXM8bzpwPjwvbzpwPjwvc3Bhbj48L2xpPjwvdWw+DQo8cCBjbGFzcz0i TXNvTm9ybWFsIj5CUjxicj4NCkRhbmllbGU8bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O b3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4m bmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K --_000_4A1562797D64E44993C5CBF38CF1BE48162BAB9EESESSMB301erics_-- From nobody Mon Apr 25 10:13:32 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 03B0612D0BD; Mon, 25 Apr 2016 10:13:31 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -15.517 X-Spam-Level: X-Spam-Status: No, score=-15.517 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id foOFfl3PeGoQ; Mon, 25 Apr 2016 10:13:27 -0700 (PDT) Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4A4FF12B018; Mon, 25 Apr 2016 10:13:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=96950; q=dns/txt; s=iport; t=1461604407; x=1462814007; h=from:to:cc:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=WrdExmu8BbmbeQ/kJLxvFcbZEEZdNfsSEmB9IQ1n5oA=; b=AcyRp4nulik7CqnpSdMMJ9Onw16lo3FrkMeXEMF20eLsDVSsVeyDZ7DJ CWb0tbFXbEHhmzSYc8H89e92RBstqTp0u101pZKnOTOCzsf3mSIGq3Qtv 2E4+oh1C8TUEG6p64jEpZmCBl8Fozp2hrdCnlEHOJnmvENCZ+a5c5S9Qp g=; X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0D3AQDpTx5X/4QNJK1egzhTfQa5cQENg?= =?us-ascii?q?XUigjyDMB6BHDgUAQEBAQEBAWUnhEQEGgEIERMeDwUSARwGAiYCBDAVEgQBDSC?= =?us-ascii?q?IDw6xIoR1jAMBAQEBAQEBAQEBAQEBAQEBAQEBARZ8iG6FCAoJAQ0JJRaCVIJWB?= =?us-ascii?q?YdxhWKBMokKAYV7gnWCbII4gWYXN4N/iF2GI4kLAR4BAUKCBAEbFoE1bAGHQQE?= =?us-ascii?q?BBRkffwEBAQ?= X-IronPort-AV: E=Sophos;i="5.24,533,1454976000"; d="scan'208";a="265846932" Received: from alln-core-10.cisco.com ([173.36.13.132]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 25 Apr 2016 17:13:24 +0000 Received: from XCH-RTP-015.cisco.com (xch-rtp-015.cisco.com [64.101.220.155]) by alln-core-10.cisco.com (8.14.5/8.14.5) with ESMTP id u3PHDO88016265 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 25 Apr 2016 17:13:24 GMT Received: from xch-rtp-015.cisco.com (64.101.220.155) by XCH-RTP-015.cisco.com (64.101.220.155) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Mon, 25 Apr 2016 13:13:23 -0400 Received: from xch-rtp-015.cisco.com ([64.101.220.155]) by XCH-RTP-015.cisco.com ([64.101.220.155]) with mapi id 15.00.1104.009; Mon, 25 Apr 2016 13:13:23 -0400 From: "Acee Lindem (acee)" To: "draft-ietf-rtgwg-bgp-routing-large-dc@ietf.org" , Routing ADs Thread-Topic: Routing Directorate Review for "Use of BGP for routing in large-scale data centers" Thread-Index: AQHRnxXFDdErBGZbuUy7736tqrL5Tw== Date: Mon, 25 Apr 2016 17:13:23 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.116.152.196] Content-Type: text/plain; charset="utf-8" Content-ID: <9221CFD84E9E1E4B9F7B9649043C6BF4@emea.cisco.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Archived-At: Cc: Routing Directorate Subject: [RTG-DIR] Routing Directorate Review for "Use of BGP for routing in large-scale data centers" X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2016 17:13:31 -0000 SGVsbG8sDQoNCkkgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHRoZSBSb3V0aW5nIERpcmVjdG9yYXRl IHJldmlld2VyIGZvciB0aGlzIGRyYWZ0Lg0KVGhlIFJvdXRpbmcgRGlyZWN0b3JhdGUgc2Vla3Mg dG8gcmV2aWV3IGFsbCByb3V0aW5nIG9yIHJvdXRpbmctcmVsYXRlZA0KZHJhZnRzIGFzIHRoZXkg cGFzcyB0aHJvdWdoIElFVEYgbGFzdCBjYWxsIGFuZCBJRVNHIHJldmlldywgYW5kIHNvbWV0aW1l cw0Kb24gc3BlY2lhbCByZXF1ZXN0LiBUaGUgcHVycG9zZSBvZiB0aGUgcmV2aWV3IGlzIHRvIHBy b3ZpZGUgYXNzaXN0YW5jZSB0bw0KdGhlIFJvdXRpbmcgQURzLiBGb3IgbW9yZSBpbmZvcm1hdGlv biBhYm91dCB0aGUgUm91dGluZyBEaXJlY3RvcmF0ZSwNCnBsZWFzZSBzZWUg4oCLaHR0cDovL3Ry YWMudG9vbHMuaWV0Zi5vcmcvYXJlYS9ydGcvdHJhYy93aWtpL1J0Z0Rpcg0KDQpBbHRob3VnaCB0 aGVzZSBjb21tZW50cyBhcmUgcHJpbWFyaWx5IGZvciB0aGUgdXNlIG9mIHRoZSBSb3V0aW5nIEFE cywgaXQNCndvdWxkIGJlIGhlbHBmdWwgaWYgeW91IGNvdWxkIGNvbnNpZGVyIHRoZW0gYWxvbmcg d2l0aCBhbnkgb3RoZXIgSUVURiBMYXN0DQpDYWxsIGNvbW1lbnRzIHRoYXQgeW91IHJlY2VpdmUs IGFuZCBzdHJpdmUgdG8gcmVzb2x2ZSB0aGVtIHRocm91Z2gNCmRpc2N1c3Npb24gb3IgYnkgdXBk YXRpbmcgdGhlIGRyYWZ0Lg0KDQpEb2N1bWVudDogZHJhZnQtaWV0Zi1ydGd3Zy1iZ3Atcm91dGlu Zy1sYXJnZS1kYy0wOS50eHQNClJldmlld2VyOiBBY2VlIExpbmRlbQ0KUmV2aWV3IERhdGU6IDQv MjUvMTYNCklFVEYgTEMgRW5kIERhdGU6IE5vdCBzdGFydGVkDQpJbnRlbmRlZCBTdGF0dXM6IElu Zm9ybWF0aW9uYWwNCg0KU3VtbWFyeToNCiAgICBUaGlzIGRvY3VtZW50IGlzIGJhc2ljYWxseSBy ZWFkeSBmb3IgcHVibGljYXRpb24sIGJ1dCBoYXMgc29tZSBtaW5vcg0KaXNzdWVzIGFuZCBuaXRz IHRoYXQgc2hvdWxkIGJlIHJlc29sdmVkIHByaW9yIHRvIHB1YmxpY2F0aW9uLg0KDQpDb21tZW50 czoNCiAgICBUaGUgZG9jdW1lbnQgc3RhcnRzIHdpdGggdGhlIHJlcXVpcmVtZW50cyBmb3IgYW4g TVNEQyByb3V0aW5nIGFuZCB0aGVuDQpwcm92aWRlcyBhbiBvdmVydmlldyBvZiBDbG9zIGRhdGEg dG9wb2xvZ2llcyBhbmQgZGF0YSBjZW50ZXIgbmV0d29yaw0KZGVzaWduLiBUaGlzIG92ZXJ2aWV3 IGF0dGVtcHRzIHRvIGNvdmVyIGEgbG90IG9mIGEgbWF0ZXJpYWwgaW4gYSB2ZXJ5DQpzbWFsbCBh bW91bnQgb2YgdGV4dC4gV2hpbGUgbm90IGNvbXBsZXRlbHkgc3VjY2Vzc2Z1bCwgdGhlIG92ZXJ2 aWV3DQpwcm92aWRlcyBhIGxvdCBvZiBnb29kIGluZm9ybWF0aW9uIGFuZCByZWZlcmVuY2VzLiBU aGUgYnVsayBvZiB0aGUNCmRvY3VtZW50IGNvdmVycyB0aGUgdXNhZ2Ugb2YgRUJHUCBhcyB0aGUg c29sZSBkYXRhIGNlbnRlciByb3V0aW5nIHByb3RvY29sDQphbmQgb3RoZXIgYXNwZWN0cyBvZiB0 aGUgcm91dGluZyBkZXNpZ24gaW5jbHVkaW5nIEVDTVAsIHN1bW1hcml6YXRpb24NCmlzc3Vlcywg YW5kIGNvbnZlcmdlbmNlLiBUaGVzZSBzZWN0aW9ucyBwcm92aWRlIGEgdmVyeSBnb29kIGd1aWRl IGZvcg0KdXNpbmcgRUJHUCBpbiBhIENsb3MgZGF0YSBjZW50ZXIgYW5kIGFuIGV4Y2VsbGVudCBk aXNjdXNzaW9uIG9mIHRoZQ0KZGVwbG95bWVudCBpc3N1ZXMgKGJhc2VkIG9uIHJlYWwgZGVwbG95 bWVudCBleHBlcmllbmNlKS4NCg0KICAgIFRoZSB0ZWNobmljYWwgY29udGVudCBvZiB0aGUgZG9j dW1lbnQgaXMgZXhjZWxsZW50LiBUaGUgcmVhZGFiaWxpdHkNCmNvdWxkIGJlIGltcHJvdmVkIGJ5 IGJyZWFraW5nIHVwIHNvbWUgb2YgdGhlIHJ1bi1vbiBzZW50ZW5jZXMgYW5kIHdpdGggdGhlDQpz dWdnZXN0ZWQgZWRpdG9yaWFsIGNoYW5nZXMgKHNlZSBOaXRzIGJlbG93KS4NCg0KDQpNYWpvciBJ c3N1ZXM6IA0KDQogICAgSSBoYXZlIG5vIG1ham9yIGlzc3VlcyB3aXRoIHRoZSBkb2N1bWVudC4N Cg0KTWlub3IgSXNzdWVzOg0KDQogICAgU2VjdGlvbiA0LjI6IENhbiBhbiBpbmZvcm1hdGl2ZSBy ZWZlcmVuY2UgYmUgYWRkZWQgZm9yIERpcmVjdCBTZXJ2ZXINClJldHVybiAoRFNSKT8gDQogICAg U2VjdGlvbiA1LjIuNCBhbmQgNy40OiBEZWZpbmUgcHJlY2lzZWx5IHdoYXQgaXMgbWVhbnQgYnkg InNjYWxlLW91dCINCnRvcG9sb2d5IHNvbWV3aGVyZSBpbiB0aGUgZG9jdW1lbnQuDQogICAgU2Vj dGlvbiA1LjIuNTogQ2FuIHlvdSBhZGQgYSBiYWNrd2FyZCByZWZlcmVuY2UgdG8gdGhlIGRpc2N1 c3Npb24gb2YNCiJsYWNrIG9mIHBlZXIgbGlua3MgaW5zaWRlIGV2ZXJ5IHBlZXLigJ0/IEFsc28s IGl0IHdvdWxkIGJlIGdvb2QgdG8gZGVzY3JpYmUNCmhvdyB0aGlzIHdvdWxkIGFsbG93IGZvciBz dW1tYXJpemF0aW9uIGFuZCB1bmRlciB3aGF0IGZhaWx1cmUgY29uZGl0aW9ucy4NCiAgICBTZWN0 aW9uIDcuNDogU2hvdWxkIHlvdSBhZGQgYSByZWZlcmVuY2UgdG8NCmh0dHBzOi8vd3d3LmlldGYu b3JnL2lkL2RyYWZ0LWlldGYtcnRnd2ctYmdwLXBpYy0wMC50eHQgdG8gdGhlIHBlbnVsdGltYXRl DQpwYXJhZ3JhcGggaW4gdGhpcyBzZWN0aW9uPw0KDQpOaXRzOg0KDQoqKioqKioqKioqKioqKioN CioqKiAxNDMsMTQ5ICoqKioNCiAgICAgbmV0d29yayBzdGFiaWxpdHkgc28gdGhhdCBhIHNtYWxs IGdyb3VwIG9mIHBlb3BsZSBjYW4gZWZmZWN0aXZlbHkNCiAgICAgc3VwcG9ydCBhIHNpZ25pZmlj YW50bHkgc2l6ZWQgbmV0d29yay4NCiAgDQohICAgIEV4cGVyaW1lbnRhdGlvbiBhbmQgZXh0ZW5z aXZlIHRlc3RpbmcgaGFzIHNob3duIHRoYXQgRXh0ZXJuYWwgQkdQDQogICAgIChFQkdQKSBbUkZD NDI3MV0gaXMgd2VsbCBzdWl0ZWQgYXMgYSBzdGFuZC1hbG9uZSByb3V0aW5nIHByb3RvY29sIGZv cg0KICAgICB0aGVzZSB0eXBlIG9mIGRhdGEgY2VudGVyIGFwcGxpY2F0aW9ucy4gIFRoaXMgaXMg aW4gY29udHJhc3Qgd2l0aA0KICAgICBtb3JlIHRyYWRpdGlvbmFsIERDIGRlc2lnbnMsIHdoaWNo IG1heSBzZSBzaW1wbGUgdHJlZSB0b3BvbG9naWVzIGFuZA0KLS0tIDE0MywxNDkgLS0tLQ0KICAg ICBuZXR3b3JrIHN0YWJpbGl0eSBzbyB0aGF0IGEgc2FsbCBncm91cCBvZiBwZW9wbGUgY2FuIGVm ZmVjdGl2ZWx5DQogICAgIHN1cHBvcnQgYSBzaWduaWZpY2FudGx5IHNpemVkIG5ldHdvcmsuDQog IA0KISAgICBFeHBlcmltZW50YXRpb24gYW5kIGV4dGVuc2l2ZSB0ZXN0aW5nIGhhdmUgc2hvd24g dGhhdCBFeHRlcm5hbCBCR1ANCiAgICAgKEVCR1ApIFtSRkM0MjcxXSBpcyB3ZWxsIHN1aXRlZCBh cyBhIHN0YW5kLWFsb25lIHJvdXRpbmcgcHJvdG9jb2wgZm9yDQogICAgIHRoZXNlIHR5cGUgb2Yg ZGF0YSBjZW50ZXIgYXBwbGljYXRpb25zLiAgVGhpcyBpcyBpbiBjb250cmFzdCB3aXRoDQogICAg IG1vcmUgdHJhZGl0aW9uYWwgREMgZGVzaWducywgd2hpY2ggbWF5IHVzZSBzaW1wbGUgdHJlZSB0 b3BvbG9naWVzIGFuZA0KKioqKioqKioqKioqKioqDQoqKiogMTc4LDE5MSAqKioqDQogIDIuMS4g IEJhbmR3aWR0aCBhbmQgVHJhZmZpYyBQYXR0ZXJucw0KICANCiAgICAgVGhlIHByaW1hcnkgcmVx dWlyZW1lbnQgd2hlbiBidWlsZGluZyBhbiBpbnRlcmNvbm5lY3Rpb24gbmV0d29yayBmb3INCiEg ICAgbGFyZ2UgbnVtYmVyIG9mIHNlcnZlcnMgaXMgdG8gYWNjb21tb2RhdGUgYXBwbGljYXRpb24g YmFuZHdpZHRoIGFuZA0KICAgICBsYXRlbmN5IHJlcXVpcmVtZW50cy4gIFVudGlsIHJlY2VudGx5 IGl0IHdhcyBxdWl0ZSBjb21tb24gdG8gc2VlIHRoZQ0KICAgICBtYWpvcml0eSBvZiB0cmFmZmlj IGVudGVyaW5nIGFuZCBsZWF2aW5nIHRoZSBkYXRhIGNlbnRlciwgY29tbW9ubHkNCiAgICAgcmVm ZXJyZWQgdG8gYXMgIm5vcnRoLXNvdXRoIiB0cmFmZmljLiAgVHJhZGl0aW9uYWwgInRyZWUiIHRv cG9sb2dpZXMNCiAgICAgd2VyZSBzdWZmaWNpZW50IHRvIGFjY29tbW9kYXRlIHN1Y2ggZmxvd3Ms IGV2ZW4gd2l0aCBoaWdoDQogICAgIG92ZXJzdWJzY3JpcHRpb24gcmF0aW9zIGJldHdlZW4gdGhl IGxheWVycyBvZiB0aGUgbmV0d29yay4gIElmIG1vcmUNCiAgICAgYmFuZHdpZHRoIHdhcyByZXF1 aXJlZCwgaXQgd2FzIGFkZGVkIGJ5ICJzY2FsaW5nIHVwIiB0aGUgbmV0d29yaw0KISAgICBlbGVt ZW50cywgZS5nLiBieSB1cGdyYWRpbmcgdGhlIGRldmljZSdzIGxpbmVjYXJkcyBvciBmYWJyaWNz IG9yDQogICAgIHJlcGxhY2luZyB0aGUgZGV2aWNlIHdpdGggb25lIHdpdGggaGlnaGVyIHBvcnQg ZGVuc2l0eS4NCiAgDQogICAgIFRvZGF5IG1hbnkgbGFyZ2Utc2NhbGUgZGF0YSBjZW50ZXJzIGhv c3QgYXBwbGljYXRpb25zIGdlbmVyYXRpbmcNCi0tLSAxNzgsMTkxIC0tLS0NCiAgMi4xLiAgQmFu ZHdpZHRoIGFuZCBUcmFmZmljIFBhdHRlcm5zDQogIA0KICAgICBUaGUgcHJpbWFyeSByZXF1aXJl bWVudCB3aGVuIGJ1aWxkaW5nIGFuIGludGVyY29ubmVjdGlvbiBuZXR3b3JrIGZvcg0KISAgICBh IGxhcmdlIG51bWJlciBvZiBzZXJ2ZXJzIGlzIHRvIGFjY29tbW9kYXRlIGFwcGxpY2F0aW9uIGJh bmR3aWR0aCBhbmQNCiAgICAgbGF0ZW5jeSByZXF1aXJlbWVudHMuICBVbnRpbCByZWNlbnRseSBp dCB3YXMgcXVpdGUgY29tbW9uIHRvIHNlZSB0aGUNCiAgICAgbWFqb3JpdHkgb2YgdHJhZmZpYyBl bnRlcmluZyBhbmQgbGVhdmluZyB0aGUgZGF0YSBjZW50ZXIsIGNvbW1vbmx5DQogICAgIHJlZmVy cmVkIHRvIGFzICJub3J0aC1zb3V0aCIgdHJhZmZpYy4gIFRyYWRpdGlvbmFsICJ0cmVlIiB0b3Bv bG9naWVzDQogICAgIHdlcmUgc3VmZmljaWVudCB0byBhY2NvbW1vZGF0ZSBzdWNoIGZsb3dzLCBl dmVuIHdpdGggaGlnaA0KICAgICBvdmVyc3Vic2NyaXB0aW9uIHJhdGlvcyBiZXR3ZWVuIHRoZSBs YXllcnMgb2YgdGhlIG5ldHdvcmsuICBJZiBtb3JlDQogICAgIGJhbmR3aWR0aCB3YXMgcmVxdWly ZWQsIGl0IHdhcyBhZGRlZCBieSAic2NhbGluZyB1cCIgdGhlIG5ldHdvcmsNCiEgICAgZWxlbWVu dHMsIGUuZy4sIGJ5IHVwZ3JhZGluZyB0aGUgZGV2aWNlJ3MgbGluZWNhcmRzIG9yIGZhYnJpY3Mg b3INCiAgICAgcmVwbGFjaW5nIHRoZSBkZXZpY2Ugd2l0aCBvbmUgd2l0aCBoaWdoZXIgcG9ydCBk ZW5zaXR5Lg0KICANCiAgICAgVG9kYXkgbWFueSBsYXJnZS1zY2FsZSBkYXRhIGNlbnRlcnMgaG9z dCBhcHBsaWNhdGlvbnMgZ2VuZXJhdGluZw0KKioqKioqKioqKioqKioqDQoqKiogMTk1LDIwMSAq KioqDQogICAgIFtIQURPT1BdLCBtYXNzaXZlIGRhdGEgcmVwbGljYXRpb24gYmV0d2VlbiBjbHVz dGVycyBuZWVkZWQgYnkgY2VydGFpbg0KICAgICBhcHBsaWNhdGlvbnMsIG9yIHZpcnR1YWwgbWFj aGluZSBtaWdyYXRpb25zLiAgU2NhbGluZyB0cmFkaXRpb25hbA0KICAgICB0cmVlIHRvcG9sb2dp ZXMgdG8gbWF0Y2ggdGhlc2UgYmFuZHdpZHRoIGRlbWFuZHMgYmVjb21lcyBlaXRoZXIgdG9vDQoh ICAgIGV4cGVuc2l2ZSBvciBpbXBvc3NpYmxlIGR1ZSB0byBwaHlzaWNhbCBsaW1pdGF0aW9ucywg ZS5nLiBwb3J0DQogICAgIGRlbnNpdHkgaW4gYSBzd2l0Y2guDQogIA0KICAyLjIuICBDQVBFWCBN aW5pbWl6YXRpb24NCi0tLSAxOTUsMjAxIC0tLS0NCiAgICAgW0hBRE9PUF0sIG1hc3NpdmUgZGF0 YSByZXBsaWNhdGlvbiBiZXR3ZWVuIGNsdXN0ZXJzIG5lZWRlZCBieSBjZXJ0YWluDQogICAgIGFw cGxpY2F0aW9ucywgb3IgdmlydHVhbCBtYWNoaW5lIG1pZ3JhdGlvbnMuICBTY2FsaW5nIHRyYWRp dGlvbmFsDQogICAgIHRyZWUgdG9wb2xvZ2llcyB0byBtYXRjaCB0aGVzZSBiYW5kd2lkdGggZGVt YW5kcyBiZWNvbWVzIGVpdGhlciB0b28NCiEgICAgZXhwZW5zaXZlIG9yIGltcG9zc2libGUgZHVl IHRvIHBoeXNpY2FsIGxpbWl0YXRpb25zLCBlLmcuLCBwb3J0DQogICAgIGRlbnNpdHkgaW4gYSBz d2l0Y2guDQogIA0KICAyLjIuICBDQVBFWCBNaW5pbWl6YXRpb24NCioqKioqKioqKioqKioqKg0K KioqIDIwOSwyMTUgKioqKg0KICANCiAgICAgbyAgVW5pZnlpbmcgYWxsIG5ldHdvcmsgZWxlbWVu dHMsIHByZWZlcmFibHkgdXNpbmcgdGhlIHNhbWUgaGFyZHdhcmUNCiAgICAgICAgdHlwZSBvciBl dmVuIHRoZSBzYW1lIGRldmljZS4gIFRoaXMgYWxsb3dzIGZvciB2b2x1bWUgcHJpY2luZyBvbg0K ISAgICAgICBidWxrIHB1cmNoYXNlcyBhbmQgcmVkdWNlZCBtYWludGVuYW5jZSBhbmQgc3Bhcmlu ZyBjb3N0cy4NCiAgDQogICAgIG8gIERyaXZpbmcgY29zdHMgZG93biB1c2luZyBjb21wZXRpdGl2 ZSBwcmVzc3VyZXMsIGJ5IGludHJvZHVjaW5nDQogICAgICAgIG11bHRpcGxlIG5ldHdvcmsgZXF1 aXBtZW50IHZlbmRvcnMuDQotLS0gMjA5LDIxNSAtLS0tDQogIA0KICAgICBvICBVbmlmeWluZyBh bGwgbmV0d29yayBlbGVtZW50cywgcHJlZmVyYWJseSB1c2luZyB0aGUgc2FtZSBoYXJkd2FyZQ0K ICAgICAgICB0eXBlIG9yIGV2ZW4gdGhlIHNhbWUgZGV2aWNlLiAgVGhpcyBhbGxvd3MgZm9yIHZv bHVtZSBwcmljaW5nIG9uDQohICAgICAgIGJ1bGsgcHVyY2hhc2VzIGFuZCByZWR1Y2VkIG1haW50 ZW5hbmNlIGFuZCBpbnZlbnRvcnkgY29zdHMuDQogIA0KICAgICBvICBEcml2aW5nIGNvc3RzIGRv d24gdXNpbmcgY29tcGV0aXRpdmUgcHJlc3N1cmVzLCBieSBpbnRyb2R1Y2luZw0KICAgICAgICBt dWx0aXBsZSBuZXR3b3JrIGVxdWlwbWVudCB2ZW5kb3JzLg0KKioqKioqKioqKioqKioqDQoqKiog MjM0LDI0NCAqKioqDQogICAgIG1pbmltaXplcyBzb2Z0d2FyZSBpc3N1ZS1yZWxhdGVkIGZhaWx1 cmVzLg0KICANCiAgICAgQW4gaW1wb3J0YW50IGFzcGVjdCBvZiBPcGVyYXRpb25hbCBFeHBlbmRp dHVyZSAoT1BFWCkgbWluaW1pemF0aW9uIGlzDQohICAgIHJlZHVjaW5nIHNpemUgb2YgZmFpbHVy ZSBkb21haW5zIGluIHRoZSBuZXR3b3JrLiAgRXRoZXJuZXQgbmV0d29ya3MNCiAgICAgYXJlIGtu b3duIHRvIGJlIHN1c2NlcHRpYmxlIHRvIGJyb2FkY2FzdCBvciB1bmljYXN0IHRyYWZmaWMgc3Rv cm1zDQogICAgIHRoYXQgY2FuIGhhdmUgYSBkcmFtYXRpYyBpbXBhY3Qgb24gbmV0d29yayBwZXJm b3JtYW5jZSBhbmQNCiAgICAgYXZhaWxhYmlsaXR5LiAgVGhlIHVzZSBvZiBhIGZ1bGx5IHJvdXRl ZCBkZXNpZ24gc2lnbmlmaWNhbnRseSByZWR1Y2VzDQohICAgIHRoZSBzaXplIG9mIHRoZSBkYXRh IHBsYW5lIGZhaWx1cmUgZG9tYWlucyAtIGkuZS4gbGltaXRzIHRoZW0gdG8gdGhlDQogICAgIGxv d2VzdCBsZXZlbCBpbiB0aGUgbmV0d29yayBoaWVyYXJjaHkuICBIb3dldmVyLCBzdWNoIGRlc2ln bnMNCiAgICAgaW50cm9kdWNlIHRoZSBwcm9ibGVtIG9mIGRpc3RyaWJ1dGVkIGNvbnRyb2wgcGxh bmUgZmFpbHVyZXMuICBUaGlzDQogICAgIG9ic2VydmF0aW9uIGNhbGxzIGZvciBzaW1wbGVyIGFu ZCBsZXNzIGNvbnRyb2wgcGxhbmUgcHJvdG9jb2xzIHRvDQotLS0gMjM0LDI0NCAtLS0tDQogICAg IG1pbmltaXplcyBzb2Z0d2FyZSBpc3N1ZS1yZWxhdGVkIGZhaWx1cmVzLg0KICANCiAgICAgQW4g aW1wb3J0YW50IGFzcGVjdCBvZiBPcGVyYXRpb25hbCBFeHBlbmRpdHVyZSAoT1BFWCkgbWluaW1p emF0aW9uIGlzDQohICAgIHJlZHVjaW5nIHRoZSBzaXplIG9mIGZhaWx1cmUgZG9tYWlucyBpbiB0 aGUgbmV0d29yay4gIEV0aGVybmV0DQpuZXR3b3Jrcw0KICAgICBhcmUga25vd24gdG8gYmUgc3Vz Y2VwdGlibGUgdG8gYnJvYWRjYXN0IG9yIHVuaWNhc3QgdHJhZmZpYyBzdG9ybXMNCiAgICAgdGhh dCBjYW4gaGF2ZSBhIGRyYW1hdGljIGltcGFjdCBvbiBuZXR3b3JrIHBlcmZvcm1hbmNlIGFuZA0K ICAgICBhdmFpbGFiaWxpdHkuICBUaGUgdXNlIG9mIGEgZnVsbHkgcm91dGVkIGRlc2lnbiBzaWdu aWZpY2FudGx5IHJlZHVjZXMNCiEgICAgdGhlIHNpemUgb2YgdGhlIGRhdGEgcGxhbmUgZmFpbHVy ZSBkb21haW5zLCBpLmUuLCBsaW1pdHMgdGhlbSB0byB0aGUNCiAgICAgbG93ZXN0IGxldmVsIGlu IHRoZSBuZXR3b3JrIGhpZXJhcmNoeS4gIEhvd2V2ZXIsIHN1Y2ggZGVzaWducw0KICAgICBpbnRy b2R1Y2UgdGhlIHByb2JsZW0gb2YgZGlzdHJpYnV0ZWQgY29udHJvbCBwbGFuZSBmYWlsdXJlcy4g IFRoaXMNCiAgICAgb2JzZXJ2YXRpb24gY2FsbHMgZm9yIHNpbXBsZXIgYW5kIGxlc3MgY29udHJv bCBwbGFuZSBwcm90b2NvbHMgdG8NCioqKioqKioqKioqKioqKg0KKioqIDI1MywyNTkgKioqKg0K ICAgICBwZXJmb3JtZWQgYnkgbmV0d29yayBkZXZpY2VzLiAgVHJhZGl0aW9uYWxseSwgbG9hZCBi YWxhbmNlcnMgYXJlDQogICAgIGRlcGxveWVkIGFzIGRlZGljYXRlZCBkZXZpY2VzIGluIHRoZSB0 cmFmZmljIGZvcndhcmRpbmcgcGF0aC4gIFRoZQ0KICAgICBwcm9ibGVtIGFyaXNlcyBpbiBzY2Fs aW5nIGxvYWQgYmFsYW5jZXJzIHVuZGVyIGdyb3dpbmcgdHJhZmZpYw0KISAgICBkZW1hbmQuICBB IHByZWZlcmFibGUgc29sdXRpb24gd291bGQgYmUgYWJsZSB0byBzY2FsZSBsb2FkIGJhbGFuY2lu Zw0KICAgICBsYXllciBob3Jpem9udGFsbHksIGJ5IGFkZGluZyBtb3JlIG9mIHRoZSB1bmlmb3Jt IG5vZGVzIGFuZA0KICAgICBkaXN0cmlidXRpbmcgaW5jb21pbmcgdHJhZmZpYyBhY3Jvc3MgdGhl c2Ugbm9kZXMuICBJbiBzaXR1YXRpb25zIGxpa2UNCiAgICAgdGhpcywgYW4gaWRlYWwgY2hvaWNl IHdvdWxkIGJlIHRvIHVzZSBuZXR3b3JrIGluZnJhc3RydWN0dXJlIGl0c2VsZg0KLS0tIDI1Mywy NTkgLS0tLQ0KICAgICBwZXJmb3JtZWQgYnkgbmV0d29yayBkZXZpY2VzLiAgVHJhZGl0aW9uYWxs eSwgbG9hZCBiYWxhbmNlcnMgYXJlDQogICAgIGRlcGxveWVkIGFzIGRlZGljYXRlZCBkZXZpY2Vz IGluIHRoZSB0cmFmZmljIGZvcndhcmRpbmcgcGF0aC4gIFRoZQ0KICAgICBwcm9ibGVtIGFyaXNl cyBpbiBzY2FsaW5nIGxvYWQgYmFsYW5jZXJzIHVuZGVyIGdyb3dpbmcgdHJhZmZpYw0KISAgICBk ZW1hbmQuICBBIHByZWZlcmFibGUgc29sdXRpb24gd291bGQgYmUgYWJsZSB0byBzY2FsZSB0aGUg bG9hZA0KYmFsYW5jaW5nDQogICAgIGxheWVyIGhvcml6b250YWxseSwgYnkgYWRkaW5nIG1vcmUg b2YgdGhlIHVuaWZvcm0gbm9kZXMgYW5kDQogICAgIGRpc3RyaWJ1dGluZyBpbmNvbWluZyB0cmFm ZmljIGFjcm9zcyB0aGVzZSBub2Rlcy4gIEluIHNpdHVhdGlvbnMgbGlrZQ0KICAgICB0aGlzLCBh biBpZGVhbCBjaG9pY2Ugd291bGQgYmUgdG8gdXNlIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUgaXRz ZWxmDQoqKioqKioqKioqKioqKioNCioqKiAzMDUsMzExICoqKioNCiAgMy4xLiAgVHJhZGl0aW9u YWwgREMgVG9wb2xvZ3kNCiAgDQogICAgIEluIHRoZSBuZXR3b3JraW5nIGluZHVzdHJ5LCBhIGNv bW1vbiBkZXNpZ24gY2hvaWNlIGZvciBkYXRhIGNlbnRlcnMNCiEgICAgdHlwaWNhbGx5IGxvb2sg bGlrZSBhICh1cHNpZGUgZG93bikgdHJlZSB3aXRoIHJlZHVuZGFudCB1cGxpbmtzIGFuZA0KICAg ICB0aHJlZSBsYXllcnMgb2YgaGllcmFyY2h5IG5hbWVseTsgY29yZSwgYWdncmVnYXRpb24vZGlz dHJpYnV0aW9uIGFuZA0KICAgICBhY2Nlc3MgbGF5ZXJzIChzZWUgRmlndXJlIDEpLiAgVG8gYWNj b21tb2RhdGUgYmFuZHdpZHRoIGRlbWFuZHMsIGVhY2gNCiAgICAgaGlnaGVyIGxheWVyLCBmcm9t IHNlcnZlciB0b3dhcmRzIERDIGVncmVzcyBvciBXQU4sIGhhcyBoaWdoZXIgcG9ydA0KLS0tIDMw NSwzMTEgLS0tLQ0KICAzLjEuICBUcmFkaXRpb25hbCBEQyBUb3BvbG9neQ0KICANCiAgICAgSW4g dGhlIG5ldHdvcmtpbmcgaW5kdXN0cnksIGEgY29tbW9uIGRlc2lnbiBjaG9pY2UgZm9yIGRhdGEg Y2VudGVycw0KISAgICB0eXBpY2FsbHkgbG9vayBsaWtlIGFuICh1cHNpZGUgZG93bikgdHJlZSB3 aXRoIHJlZHVuZGFudCB1cGxpbmtzIGFuZA0KICAgICB0aHJlZSBsYXllcnMgb2YgaGllcmFyY2h5 IG5hbWVseTsgY29yZSwgYWdncmVnYXRpb24vZGlzdHJpYnV0aW9uIGFuZA0KICAgICBhY2Nlc3Mg bGF5ZXJzIChzZWUgRmlndXJlIDEpLiAgVG8gYWNjb21tb2RhdGUgYmFuZHdpZHRoIGRlbWFuZHMs IGVhY2gNCiAgICAgaGlnaGVyIGxheWVyLCBmcm9tIHNlcnZlciB0b3dhcmRzIERDIGVncmVzcyBv ciBXQU4sIGhhcyBoaWdoZXIgcG9ydA0KKioqKioqKioqKioqKioqDQoqKiogMzczLDM3OSAqKioq DQogICAgIHRvcG9sb2d5LCBzb21ldGltZXMgY2FsbGVkICJmYXQtdHJlZSIgKHNlZSwgZm9yIGV4 YW1wbGUsIFtJTlRFUkNPTl0NCiAgICAgYW5kIFtBTEZBUkVTMjAwOF0pLiAgVGhpcyB0b3BvbG9n eSBmZWF0dXJlcyBhbiBvZGQgbnVtYmVyIG9mIHN0YWdlcw0KICAgICAoc29tZXRpbWVzIGtub3du IGFzIGRpbWVuc2lvbnMpIGFuZCBpcyBjb21tb25seSBtYWRlIG9mIHVuaWZvcm0NCiEgICAgZWxl bWVudHMsIGUuZy4gbmV0d29yayBzd2l0Y2hlcyB3aXRoIHRoZSBzYW1lIHBvcnQgY291bnQuICBU aGVyZWZvcmUsDQogICAgIHRoZSBjaG9pY2Ugb2YgZm9sZGVkIENsb3MgdG9wb2xvZ3kgc2F0aXNm aWVzIFJFUTEgYW5kIGZhY2lsaXRhdGVzDQogICAgIFJFUTIuICBTZWUgRmlndXJlIDIgYmVsb3cg Zm9yIGFuIGV4YW1wbGUgb2YgYSBmb2xkZWQgMy1zdGFnZSBDbG9zDQogICAgIHRvcG9sb2d5ICgz IHN0YWdlcyBjb3VudGluZyBUaWVyLTIgc3RhZ2UgdHdpY2UsIHdoZW4gdHJhY2luZyBhIHBhY2tl dA0KLS0tIDM3MywzNzkgLS0tLQ0KICAgICB0b3BvbG9neSwgc29tZXRpbWVzIGNhbGxlZCAiZmF0 LXRyZWUiIChzZWUsIGZvciBleGFtcGxlLCBbSU5URVJDT05dDQogICAgIGFuZCBbQUxGQVJFUzIw MDhdKS4gIFRoaXMgdG9wb2xvZ3kgZmVhdHVyZXMgYW4gb2RkIG51bWJlciBvZiBzdGFnZXMNCiAg ICAgKHNvbWV0aW1lcyBrbm93biBhcyBkaW1lbnNpb25zKSBhbmQgaXMgY29tbW9ubHkgbWFkZSBv ZiB1bmlmb3JtDQohICAgIGVsZW1lbnRzLCBlLmcuLCBuZXR3b3JrIHN3aXRjaGVzIHdpdGggdGhl IHNhbWUgcG9ydCBjb3VudC4gIFRoZXJlZm9yZSwNCiAgICAgdGhlIGNob2ljZSBvZiBmb2xkZWQg Q2xvcyB0b3BvbG9neSBzYXRpc2ZpZXMgUkVRMSBhbmQgZmFjaWxpdGF0ZXMNCiAgICAgUkVRMi4g IFNlZSBGaWd1cmUgMiBiZWxvdyBmb3IgYW4gZXhhbXBsZSBvZiBhIGZvbGRlZCAzLXN0YWdlIENs b3MNCiAgICAgdG9wb2xvZ3kgKDMgc3RhZ2VzIGNvdW50aW5nIFRpZXItMiBzdGFnZSB0d2ljZSwg d2hlbiB0cmFjaW5nIGEgcGFja2V0DQoqKioqKioqKioqKioqKioNCioqKiA0NjAsNDY2ICoqKioN CiAgMy4yLjMuICBTY2FsaW5nIHRoZSBDbG9zIHRvcG9sb2d5DQogIA0KICAgICBBIENsb3MgdG9w b2xvZ3kgY2FuIGJlIHNjYWxlZCBlaXRoZXIgYnkgaW5jcmVhc2luZyBuZXR3b3JrIGVsZW1lbnQN CiEgICAgcG9ydCBkZW5zaXR5IG9yIGFkZGluZyBtb3JlIHN0YWdlcywgZS5nLiBtb3ZpbmcgdG8g YSA1LXN0YWdlIENsb3MsIGFzDQogICAgIGlsbHVzdHJhdGVkIGluIEZpZ3VyZSAzIGJlbG93Og0K ICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaWVyLTENCi0tLSA0 NjAsNDY2IC0tLS0NCiAgMy4yLjMuICBTY2FsaW5nIHRoZSBDbG9zIHRvcG9sb2d5DQogIA0KICAg ICBBIENsb3MgdG9wb2xvZ3kgY2FuIGJlIHNjYWxlZCBlaXRoZXIgYnkgaW5jcmVhc2luZyBuZXR3 b3JrIGVsZW1lbnQNCiEgICAgcG9ydCBkZW5zaXR5IG9yIGFkZGluZyBtb3JlIHN0YWdlcywgZS5n LiwgbW92aW5nIHRvIGEgNS1zdGFnZSBDbG9zLCBhcw0KICAgICBpbGx1c3RyYXRlZCBpbiBGaWd1 cmUgMyBiZWxvdzoNCiAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VGllci0xDQoqKioqKioqKioqKioqKioNCioqKiA1MjMsNTI5ICoqKioNCiAgMy4yLjQuICBNYW5h Z2luZyB0aGUgU2l6ZSBvZiBDbG9zIFRvcG9sb2d5IFRpZXJzDQogIA0KICAgICBJZiBhIGRhdGEg Y2VudGVyIG5ldHdvcmsgc2l6ZSBpcyBzbWFsbCwgaXQgaXMgcG9zc2libGUgdG8gcmVkdWNlIHRo ZQ0KISAgICBudW1iZXIgb2Ygc3dpdGNoZXMgaW4gVGllci0xIG9yIFRpZXItMiBvZiBDbG9zIHRv cG9sb2d5IGJ5IGEgZmFjdG9yDQogICAgIG9mIHR3by4gIFRvIHVuZGVyc3RhbmQgaG93IHRoaXMg Y291bGQgYmUgZG9uZSwgdGFrZSBUaWVyLTEgYXMgYW4NCiAgICAgZXhhbXBsZS4gIEV2ZXJ5IFRp ZXItMiBkZXZpY2UgY29ubmVjdHMgdG8gYSBzaW5nbGUgZ3JvdXAgb2YgVGllci0xDQogICAgIGRl dmljZXMuICBJZiBoYWxmIG9mIHRoZSBwb3J0cyBvbiBlYWNoIG9mIHRoZSBUaWVyLTEgZGV2aWNl cyBhcmUgbm90DQotLS0gNTIzLDUyOSAtLS0tDQogIDMuMi40LiAgTWFuYWdpbmcgdGhlIFNpemUg b2YgQ2xvcyBUb3BvbG9neSBUaWVycw0KICANCiAgICAgSWYgYSBkYXRhIGNlbnRlciBuZXR3b3Jr IHNpemUgaXMgc21hbGwsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZHVjZSB0aGUNCiEgICAgbnVtYmVy IG9mIHN3aXRjaGVzIGluIFRpZXItMSBvciBUaWVyLTIgb2YgYSBDbG9zIHRvcG9sb2d5IGJ5IGEg ZmFjdG9yDQogICAgIG9mIHR3by4gIFRvIHVuZGVyc3RhbmQgaG93IHRoaXMgY291bGQgYmUgZG9u ZSwgdGFrZSBUaWVyLTEgYXMgYW4NCiAgICAgZXhhbXBsZS4gIEV2ZXJ5IFRpZXItMiBkZXZpY2Ug Y29ubmVjdHMgdG8gYSBzaW5nbGUgZ3JvdXAgb2YgVGllci0xDQogICAgIGRldmljZXMuICBJZiBo YWxmIG9mIHRoZSBwb3J0cyBvbiBlYWNoIG9mIHRoZSBUaWVyLTEgZGV2aWNlcyBhcmUgbm90DQoq KioqKioqKioqKioqKioNCioqKiA1NzQsNTgwICoqKioNCiAgICAgb3JpZ2luYWxseSBkZWZpbmVk IGluIFtJRUVFODAyMUQtMTk5MF0gZm9yIGxvb3AgZnJlZSB0b3BvbG9neQ0KICAgICBjcmVhdGlv biwgdHlwaWNhbGx5IHV0aWxpemluZyB2YXJpYW50cyBvZiB0aGUgdHJhZGl0aW9uYWwgREMgdG9w b2xvZ3kNCiAgICAgZGVzY3JpYmVkIGluIFNlY3Rpb24gMy4xLiAgQXQgdGhlIHRpbWUsIG1hbnkg REMgc3dpdGNoZXMgZWl0aGVyIGRpZA0KISAgICBub3Qgc3VwcG9ydCBMYXllciAzIHJvdXRlZCBw cm90b2NvbHMgb3Igc3VwcG9ydGVkIGl0IHdpdGggYWRkaXRpb25hbA0KICAgICBsaWNlbnNpbmcg ZmVlcywgd2hpY2ggcGxheWVkIGEgcGFydCBpbiB0aGUgZGVzaWduIGNob2ljZS4gIEFsdGhvdWdo DQogICAgIG1hbnkgZW5oYW5jZW1lbnRzIGhhdmUgYmVlbiBtYWRlIHRocm91Z2ggdGhlIGludHJv ZHVjdGlvbiBvZiBSYXBpZA0KICAgICBTcGFubmluZyBUcmVlIFByb3RvY29sIChSU1RQKSBpbiB0 aGUgbGF0ZXN0IHJldmlzaW9uIG9mDQotLS0gNTc0LDU4MCAtLS0tDQogICAgIG9yaWdpbmFsbHkg ZGVmaW5lZCBpbiBbSUVFRTgwMjFELTE5OTBdIGZvciBsb29wIGZyZWUgdG9wb2xvZ3kNCiAgICAg Y3JlYXRpb24sIHR5cGljYWxseSB1dGlsaXppbmcgdmFyaWFudHMgb2YgdGhlIHRyYWRpdGlvbmFs IERDIHRvcG9sb2d5DQogICAgIGRlc2NyaWJlZCBpbiBTZWN0aW9uIDMuMS4gIEF0IHRoZSB0aW1l LCBtYW55IERDIHN3aXRjaGVzIGVpdGhlciBkaWQNCiEgICAgbm90IHN1cHBvcnQgTGF5ZXIgMyBy b3V0aW5nIHByb3RvY29scyBvciBzdXBwb3J0ZWQgdGhlbSB3aXRoDQphZGRpdGlvbmFsDQogICAg IGxpY2Vuc2luZyBmZWVzLCB3aGljaCBwbGF5ZWQgYSBwYXJ0IGluIHRoZSBkZXNpZ24gY2hvaWNl LiAgQWx0aG91Z2gNCiAgICAgbWFueSBlbmhhbmNlbWVudHMgaGF2ZSBiZWVuIG1hZGUgdGhyb3Vn aCB0aGUgaW50cm9kdWN0aW9uIG9mIFJhcGlkDQogICAgIFNwYW5uaW5nIFRyZWUgUHJvdG9jb2wg KFJTVFApIGluIHRoZSBsYXRlc3QgcmV2aXNpb24gb2YNCioqKioqKioqKioqKioqKg0KKioqIDU5 OSw2MDUgKioqKg0KICAgICBhcyB0aGUgYmFja3VwIGZvciBsb29wIHByZXZlbnRpb24uICBUaGUg bWFqb3IgZG93bnNpZGVzIG9mIHRoaXMNCiAgICAgYXBwcm9hY2ggYXJlIHRoZSBsYWNrIG9mIGFi aWxpdHkgdG8gc2NhbGUgbGluZWFybHkgcGFzdCB0d28gaW4gbW9zdA0KICAgICBpbXBsZW1lbnRh dGlvbnMsIGxhY2sgb2Ygc3RhbmRhcmRzIGJhc2VkIGltcGxlbWVudGF0aW9ucywgYW5kIGFkZGVk DQohICAgIGZhaWx1cmUgZG9tYWluIHJpc2sgb2Yga2VlcGluZyBzdGF0ZSBiZXR3ZWVuIHRoZSBk ZXZpY2VzLg0KICANCiAgICAgSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgYnVpbGRpbmcgbGFyZ2Us IGhvcml6b250YWxseSBzY2FsYWJsZSwgTGF5ZXINCiAgICAgMiBvbmx5IG5ldHdvcmtzIHdpdGhv dXQgU1RQIGlzIHBvc3NpYmxlIHJlY2VudGx5IHRocm91Z2ggdGhlDQotLS0gNTk5LDYwNSAtLS0t DQogICAgIGFzIHRoZSBiYWNrdXAgZm9yIGxvb3AgcHJldmVudGlvbi4gIFRoZSBtYWpvciBkb3du c2lkZXMgb2YgdGhpcw0KICAgICBhcHByb2FjaCBhcmUgdGhlIGxhY2sgb2YgYWJpbGl0eSB0byBz Y2FsZSBsaW5lYXJseSBwYXN0IHR3byBpbiBtb3N0DQogICAgIGltcGxlbWVudGF0aW9ucywgbGFj ayBvZiBzdGFuZGFyZHMgYmFzZWQgaW1wbGVtZW50YXRpb25zLCBhbmQgYWRkZWQNCiEgICAgdGhl IGZhaWx1cmUgZG9tYWluIHJpc2sgb2Ygc3luY2luZyBzdGF0ZSBiZXR3ZWVuIHRoZSBkZXZpY2Vz Lg0KICANCiAgICAgSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgYnVpbGRpbmcgbGFyZ2UsIGhvcml6 b250YWxseSBzY2FsYWJsZSwgTGF5ZXINCiAgICAgMiBvbmx5IG5ldHdvcmtzIHdpdGhvdXQgU1RQ IGlzIHBvc3NpYmxlIHJlY2VudGx5IHRocm91Z2ggdGhlDQoqKioqKioqKioqKioqKioNCioqKiA2 MjEsNjMxICoqKioNCiAgICAgRmluYWxseSwgbmVpdGhlciB0aGUgYmFzZSBUUklMTCBzcGVjaWZp Y2F0aW9uIG5vciB0aGUgTS1MQUcgYXBwcm9hY2gNCiAgICAgdG90YWxseSBlbGltaW5hdGUgdGhl IHByb2JsZW0gb2YgdGhlIHNoYXJlZCBicm9hZGNhc3QgZG9tYWluLCB0aGF0IGlzDQogICAgIHNv IGRldHJpbWVudGFsIHRvIHRoZSBvcGVyYXRpb25zIG9mIGFueSBMYXllciAyLCBFdGhlcm5ldCBi YXNlZA0KISAgICBzb2x1dGlvbnMuICBMYXRlciBUUklMTCBleHRlbnNpb25zIGhhdmUgYmVlbiBw cm9wb3NlZCB0byBzb2x2ZSB0aGUNCiAgICAgdGhpcyBwcm9ibGVtIHN0YXRlbWVudCBwcmltYXJp bHkgYmFzZWQgb24gdGhlIGFwcHJvYWNoZXMgb3V0bGluZWQgaW4NCiAgICAgW1JGQzcwNjddLCBi dXQgdGhpcyBldmVuIGZ1cnRoZXIgbGltaXRzIHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlDQohICAg IGludGVyb3BlcmFibGUgaW1wbGVtZW50YXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gYnVpbGQg YSBmYWJyaWMsDQohICAgIHRoZXJlZm9yZSBUUklMTCBiYXNlZCBkZXNpZ25zIGhhdmUgaXNzdWVz IG1lZXRpbmcgUkVRMiwgUkVRMywgYW5kDQogICAgIFJFUTQuDQogIA0KICA0LjIuICBIeWJyaWQg TDIvTDMgRGVzaWducw0KLS0tIDYyMSw2MzEgLS0tLQ0KICAgICBGaW5hbGx5LCBuZWl0aGVyIHRo ZSBiYXNlIFRSSUxMIHNwZWNpZmljYXRpb24gbm9yIHRoZSBNLUxBRyBhcHByb2FjaA0KICAgICB0 b3RhbGx5IGVsaW1pbmF0ZSB0aGUgcHJvYmxlbSBvZiB0aGUgc2hhcmVkIGJyb2FkY2FzdCBkb21h aW4sIHRoYXQgaXMNCiAgICAgc28gZGV0cmltZW50YWwgdG8gdGhlIG9wZXJhdGlvbnMgb2YgYW55 IExheWVyIDIsIEV0aGVybmV0IGJhc2VkDQohICAgIHNvbHV0aW9uLiAgTGF0ZXIgVFJJTEwgZXh0 ZW5zaW9ucyBoYXZlIGJlZW4gcHJvcG9zZWQgdG8gc29sdmUgdGhlDQogICAgIHRoaXMgcHJvYmxl bSBzdGF0ZW1lbnQgcHJpbWFyaWx5IGJhc2VkIG9uIHRoZSBhcHByb2FjaGVzIG91dGxpbmVkIGlu DQogICAgIFtSRkM3MDY3XSwgYnV0IHRoaXMgZXZlbiBmdXJ0aGVyIGxpbWl0cyB0aGUgbnVtYmVy IG9mIGF2YWlsYWJsZQ0KISAgICBpbnRlcm9wZXJhYmxlIGltcGxlbWVudGF0aW9ucyB0aGF0IGNh biBiZSB1c2VkIHRvIGJ1aWxkIGEgZmFicmljLg0KISAgICBUaGVyZWZvcmUsIFRSSUxMIGJhc2Vk IGRlc2lnbnMgaGF2ZSBpc3N1ZXMgbWVldGluZyBSRVEyLCBSRVEzLCBhbmQNCiAgICAgUkVRNC4N CiAgDQogIDQuMi4gIEh5YnJpZCBMMi9MMyBEZXNpZ25zDQoqKioqKioqKioqKioqKioNCioqKiA2 MzUsNjQxICoqKioNCiAgICAgaW4gZWl0aGVyIHRoZSBUaWVyLTEgb3IgVGllci0yIHBhcnRzIG9m IHRoZSBuZXR3b3JrIGFuZCBkaXZpZGluZyB0aGUNCiAgICAgTGF5ZXIgMiBkb21haW4gaW50byBu dW1lcm91cywgc21hbGxlciBkb21haW5zLiAgVGhpcyBkZXNpZ24gaGFzDQogICAgIGFsbG93ZWQg ZGF0YSBjZW50ZXJzIHRvIHNjYWxlIHVwLCBidXQgYXQgdGhlIGNvc3Qgb2YgY29tcGxleGl0eSBp bg0KISAgICB0aGUgbmV0d29yayBtYW5hZ2luZyBtdWx0aXBsZSBwcm90b2NvbHMuICBGb3IgdGhl IGZvbGxvd2luZyByZWFzb25zLA0KICAgICBvcGVyYXRvcnMgaGF2ZSByZXRhaW5lZCBMYXllciAy IGluIGVpdGhlciB0aGUgYWNjZXNzIChUaWVyLTMpIG9yIGJvdGgNCiAgICAgYWNjZXNzIGFuZCBh Z2dyZWdhdGlvbiAoVGllci0zIGFuZCBUaWVyLTIpIHBhcnRzIG9mIHRoZSBuZXR3b3JrOg0KICAN Ci0tLSA2MzUsNjQxIC0tLS0NCiAgICAgaW4gZWl0aGVyIHRoZSBUaWVyLTEgb3IgVGllci0yIHBh cnRzIG9mIHRoZSBuZXR3b3JrIGFuZCBkaXZpZGluZyB0aGUNCiAgICAgTGF5ZXIgMiBkb21haW4g aW50byBudW1lcm91cywgc21hbGxlciBkb21haW5zLiAgVGhpcyBkZXNpZ24gaGFzDQogICAgIGFs bG93ZWQgZGF0YSBjZW50ZXJzIHRvIHNjYWxlIHVwLCBidXQgYXQgdGhlIGNvc3Qgb2YgY29tcGxl eGl0eSBpbg0KISAgICB0aGUgbWFuYWdpbmcgbXVsdGlwbGUgbmV0d29yayBwcm90b2NvbHMuICBG b3IgdGhlIGZvbGxvd2luZyByZWFzb25zLA0KICAgICBvcGVyYXRvcnMgaGF2ZSByZXRhaW5lZCBM YXllciAyIGluIGVpdGhlciB0aGUgYWNjZXNzIChUaWVyLTMpIG9yIGJvdGgNCiAgICAgYWNjZXNz IGFuZCBhZ2dyZWdhdGlvbiAoVGllci0zIGFuZCBUaWVyLTIpIHBhcnRzIG9mIHRoZSBuZXR3b3Jr Og0KICANCioqKioqKioqKioqKioqKg0KKioqIDY0NCw2NTAgKioqKg0KICANCiAgICAgbyAgU2Vh bWxlc3MgbW9iaWxpdHkgZm9yIHZpcnR1YWwgbWFjaGluZXMgdGhhdCByZXF1aXJlIHRoZQ0KICAg ICAgICBwcmVzZXJ2YXRpb24gb2YgSVAgYWRkcmVzc2VzIHdoZW4gYSB2aXJ0dWFsIG1hY2hpbmUg bW92ZXMgdG8NCiEgICAgICAgZGlmZmVyZW50IFRpZXItMyBzd2l0Y2guDQogIA0KICAgICBvICBT aW1wbGlmaWVkIElQIGFkZHJlc3NpbmcgPSBsZXNzIElQIHN1Ym5ldHMgYXJlIHJlcXVpcmVkIGZv ciB0aGUNCiAgICAgICAgZGF0YSBjZW50ZXIuDQotLS0gNjQ0LDY1MCAtLS0tDQogIA0KICAgICBv ICBTZWFtbGVzcyBtb2JpbGl0eSBmb3IgdmlydHVhbCBtYWNoaW5lcyB0aGF0IHJlcXVpcmUgdGhl DQogICAgICAgIHByZXNlcnZhdGlvbiBvZiBJUCBhZGRyZXNzZXMgd2hlbiBhIHZpcnR1YWwgbWFj aGluZSBtb3ZlcyB0bw0KISAgICAgICBhIGRpZmZlcmVudCBUaWVyLTMgc3dpdGNoLg0KICANCiAg ICAgbyAgU2ltcGxpZmllZCBJUCBhZGRyZXNzaW5nID0gbGVzcyBJUCBzdWJuZXRzIGFyZSByZXF1 aXJlZCBmb3IgdGhlDQogICAgICAgIGRhdGEgY2VudGVyLg0KKioqKioqKioqKioqKioqDQoqKiog Njc5LDY4NiAqKioqDQogICAgIGFkb3B0aW9uIGluIG5ldHdvcmtzIHdoZXJlIGxhcmdlIExheWVy IDIgYWRqYWNlbmN5IGFuZCBsYXJnZXIgc2l6ZQ0KICAgICBMYXllciAzIHN1Ym5ldHMgYXJlIG5v dCBhcyBjcml0aWNhbCBjb21wYXJlZCB0byBuZXR3b3JrIHNjYWxhYmlsaXR5DQogICAgIGFuZCBz dGFiaWxpdHkuICBBcHBsaWNhdGlvbiBwcm92aWRlcnMgYW5kIG5ldHdvcmsgb3BlcmF0b3JzIGNv bnRpbnVlDQohICAgIHRvIGFsc28gZGV2ZWxvcCBuZXcgc29sdXRpb25zIHRvIG1lZXQgc29tZSBv ZiB0aGUgcmVxdWlyZW1lbnRzIHRoYXQNCiEgICAgcHJldmlvdXNseSBoYXZlIGRyaXZlbiBsYXJn ZSBMYXllciAyIGRvbWFpbnMgYnkgdXNpbmcgdmFyaW91cyBvdmVybGF5DQogICAgIG9yIHR1bm5l bGluZyB0ZWNobmlxdWVzLg0KICANCiAgNS4gIFJvdXRpbmcgUHJvdG9jb2wgU2VsZWN0aW9uIGFu ZCBEZXNpZ24NCi0tLSA2NzksNjg2IC0tLS0NCiAgICAgYWRvcHRpb24gaW4gbmV0d29ya3Mgd2hl cmUgbGFyZ2UgTGF5ZXIgMiBhZGphY2VuY3kgYW5kIGxhcmdlciBzaXplDQogICAgIExheWVyIDMg c3VibmV0cyBhcmUgbm90IGFzIGNyaXRpY2FsIGNvbXBhcmVkIHRvIG5ldHdvcmsgc2NhbGFiaWxp dHkNCiAgICAgYW5kIHN0YWJpbGl0eS4gIEFwcGxpY2F0aW9uIHByb3ZpZGVycyBhbmQgbmV0d29y ayBvcGVyYXRvcnMgY29udGludWUNCiEgICAgdG8gZGV2ZWxvcCBuZXcgc29sdXRpb25zIHRvIG1l ZXQgc29tZSBvZiB0aGUgcmVxdWlyZW1lbnRzIHRoYXQNCiEgICAgcHJldmlvdXNseSBoYWQgZHJp dmVuIGxhcmdlIExheWVyIDIgZG9tYWlucyB1c2luZyB2YXJpb3VzIG92ZXJsYXkNCiAgICAgb3Ig dHVubmVsaW5nIHRlY2huaXF1ZXMuDQogIA0KICA1LiAgUm91dGluZyBQcm90b2NvbCBTZWxlY3Rp b24gYW5kIERlc2lnbg0KKioqKioqKioqKioqKioqDQoqKiogNzAwLDcwNiAqKioqDQogICAgIGRl c2lnbi4NCiAgDQogICAgIEFsdGhvdWdoIEVCR1AgaXMgdGhlIHByb3RvY29sIHVzZWQgZm9yIGFs bW9zdCBhbGwgaW50ZXItZG9tYWluDQohICAgIHJvdXRpbmcgb24gdGhlIEludGVybmV0IGFuZCBo YXMgd2lkZSBzdXBwb3J0IGZyb20gYm90aCB2ZW5kb3IgYW5kDQogICAgIHNlcnZpY2UgcHJvdmlk ZXIgY29tbXVuaXRpZXMsIGl0IGlzIG5vdCBnZW5lcmFsbHkgZGVwbG95ZWQgYXMgdGhlDQogICAg IHByaW1hcnkgcm91dGluZyBwcm90b2NvbCB3aXRoaW4gdGhlIGRhdGEgY2VudGVyIGZvciBhIG51 bWJlciBvZg0KICAgICByZWFzb25zIChzb21lIG9mIHdoaWNoIGFyZSBpbnRlcnJlbGF0ZWQpOg0K LS0tIDcwMCw3MDYgLS0tLQ0KICAgICBkZXNpZ24uDQogIA0KICAgICBBbHRob3VnaCBFQkdQIGlz IHRoZSBwcm90b2NvbCB1c2VkIGZvciBhbG1vc3QgYWxsIGludGVyLWRvbWFpbg0KISAgICByb3V0 aW5nIGluIHRoZSBJbnRlcm5ldCBhbmQgaGFzIHdpZGUgc3VwcG9ydCBmcm9tIGJvdGggdmVuZG9y IGFuZA0KICAgICBzZXJ2aWNlIHByb3ZpZGVyIGNvbW11bml0aWVzLCBpdCBpcyBub3QgZ2VuZXJh bGx5IGRlcGxveWVkIGFzIHRoZQ0KICAgICBwcmltYXJ5IHJvdXRpbmcgcHJvdG9jb2wgd2l0aGlu IHRoZSBkYXRhIGNlbnRlciBmb3IgYSBudW1iZXIgb2YNCiAgICAgcmVhc29ucyAoc29tZSBvZiB3 aGljaCBhcmUgaW50ZXJyZWxhdGVkKToNCioqKioqKioqKioqKioqKg0KKioqIDc0MSw3NTQgKioq Kg0KICAgICAgICBzdGF0ZSBJR1BzLiAgU2luY2UgZXZlcnkgQkdQIHJvdXRlciBjYWxjdWxhdGVz IGFuZCBwcm9wYWdhdGVzIG9ubHkNCiAgICAgICAgdGhlIGJlc3QtcGF0aCBzZWxlY3RlZCwgYSBu ZXR3b3JrIGZhaWx1cmUgaXMgbWFza2VkIGFzIHNvb24gYXMgdGhlDQogICAgICAgIEJHUCBzcGVh a2VyIGZpbmRzIGFuIGFsdGVybmF0ZSBwYXRoLCB3aGljaCBleGlzdHMgd2hlbiBoaWdobHkNCiEg ICAgICAgc3ltbWV0cmljIHRvcG9sb2dpZXMsIHN1Y2ggYXMgQ2xvcywgYXJlIGNvdXBsZWQgd2l0 aCBFQkdQIG9ubHkNCiAgICAgICAgZGVzaWduLiAgSW4gY29udHJhc3QsIHRoZSBldmVudCBwcm9w YWdhdGlvbiBzY29wZSBvZiBhIGxpbmstc3RhdGUNCiAgICAgICAgSUdQIGlzIGFuIGVudGlyZSBh cmVhLCByZWdhcmRsZXNzIG9mIHRoZSBmYWlsdXJlIHR5cGUuICBJbiB0aGlzDQogICAgICAgIHdh eSwgQkdQIGJldHRlciBtZWV0cyBSRVEzIGFuZCBSRVE0LiAgSXQgaXMgYWxzbyB3b3J0aCBtZW50 aW9uaW5nDQogICAgICAgIHRoYXQgYWxsIHdpZGVseSBkZXBsb3llZCBsaW5rLXN0YXRlIElHUHMg ZmVhdHVyZSBwZXJpb2RpYw0KISAgICAgICByZWZyZXNoZXMgb2Ygcm91dGluZyBpbmZvcm1hdGlv biwgZXZlbiBpZiB0aGlzIHJhcmVseSBjYXVzZXMNCiEgICAgICAgaW1wYWN0IHRvIG1vZGVybiBy b3V0ZXIgY29udHJvbCBwbGFuZXMsIHdoaWxlIEJHUCBkb2VzIG5vdCBleHBpcmUNCiEgICAgICAg cm91dGluZyBzdGF0ZS4NCiAgDQogICAgIG8gIEJHUCBzdXBwb3J0cyB0aGlyZC1wYXJ0eSAocmVj dXJzaXZlbHkgcmVzb2x2ZWQpIG5leHQtaG9wcy4gIFRoaXMNCiAgICAgICAgYWxsb3dzIGZvciBt YW5pcHVsYXRpbmcgbXVsdGlwYXRoIHRvIGJlIG5vbi1FQ01QIGJhc2VkIG9yDQotLS0gNzQxLDc1 NCAtLS0tDQogICAgICAgIHN0YXRlIElHUHMuICBTaW5jZSBldmVyeSBCR1Agcm91dGVyIGNhbGN1 bGF0ZXMgYW5kIHByb3BhZ2F0ZXMgb25seQ0KICAgICAgICB0aGUgYmVzdC1wYXRoIHNlbGVjdGVk LCBhIG5ldHdvcmsgZmFpbHVyZSBpcyBtYXNrZWQgYXMgc29vbiBhcyB0aGUNCiAgICAgICAgQkdQ IHNwZWFrZXIgZmluZHMgYW4gYWx0ZXJuYXRlIHBhdGgsIHdoaWNoIGV4aXN0cyB3aGVuIGhpZ2hs eQ0KISAgICAgICBzeW1tZXRyaWMgdG9wb2xvZ2llcywgc3VjaCBhcyBDbG9zLCBhcmUgY291cGxl ZCB3aXRoIGFuIEVCR1Agb25seQ0KICAgICAgICBkZXNpZ24uICBJbiBjb250cmFzdCwgdGhlIGV2 ZW50IHByb3BhZ2F0aW9uIHNjb3BlIG9mIGEgbGluay1zdGF0ZQ0KICAgICAgICBJR1AgaXMgYW4g ZW50aXJlIGFyZWEsIHJlZ2FyZGxlc3Mgb2YgdGhlIGZhaWx1cmUgdHlwZS4gIEluIHRoaXMNCiAg ICAgICAgd2F5LCBCR1AgYmV0dGVyIG1lZXRzIFJFUTMgYW5kIFJFUTQuICBJdCBpcyBhbHNvIHdv cnRoIG1lbnRpb25pbmcNCiAgICAgICAgdGhhdCBhbGwgd2lkZWx5IGRlcGxveWVkIGxpbmstc3Rh dGUgSUdQcyBmZWF0dXJlIHBlcmlvZGljDQohICAgICAgIHJlZnJlc2hlcyBvZiByb3V0aW5nIGlu Zm9ybWF0aW9uIHdoaWxlIEJHUCBkb2VzIG5vdCBleHBpcmUNCiEgICAgICAgcm91dGluZyBzdGF0 ZSwgYWx0aG91Z2ggdGhpcyByYXJlbHkgaW1wYWN0cyBtb2Rlcm4gcm91dGVyIGNvbnRyb2wNCiEg ICAgICAgcGxhbmVzLg0KICANCiAgICAgbyAgQkdQIHN1cHBvcnRzIHRoaXJkLXBhcnR5IChyZWN1 cnNpdmVseSByZXNvbHZlZCkgbmV4dC1ob3BzLiAgVGhpcw0KICAgICAgICBhbGxvd3MgZm9yIG1h bmlwdWxhdGluZyBtdWx0aXBhdGggdG8gYmUgbm9uLUVDTVAgYmFzZWQgb3INCioqKioqKioqKioq KioqKg0KKioqIDc2NSw3NzUgKioqKg0KICAgICAgICBjb250cm9sbGVkIGFuZCBjb21wbGV4IHVu d2FudGVkIHBhdGhzIHdpbGwgYmUgaWdub3JlZC4gIFNlZQ0KICAgICAgICBTZWN0aW9uIDUuMiBm b3IgYW4gZXhhbXBsZSBvZiBhIHdvcmtpbmcgQVNOIGFsbG9jYXRpb24gc2NoZW1lLiAgSW4NCiAg ICAgICAgYSBsaW5rLXN0YXRlIElHUCBhY2NvbXBsaXNoaW5nIHRoZSBzYW1lIGdvYWwgd291bGQg cmVxdWlyZSBtdWx0aS0NCiEgICAgICAgKGluc3RhbmNlL3RvcG9sb2d5L3Byb2Nlc3Nlcykgc3Vw cG9ydCwgdHlwaWNhbGx5IG5vdCBhdmFpbGFibGUgaW4NCiAgICAgICAgYWxsIERDIGRldmljZXMg YW5kIHF1aXRlIGNvbXBsZXggdG8gY29uZmlndXJlIGFuZCB0cm91Ymxlc2hvb3QuDQogICAgICAg IFVzaW5nIGEgdHJhZGl0aW9uYWwgc2luZ2xlIGZsb29kaW5nIGRvbWFpbiwgd2hpY2ggbW9zdCBE QyBkZXNpZ25zDQogICAgICAgIHV0aWxpemUsIHVuZGVyIGNlcnRhaW4gZmFpbHVyZSBjb25kaXRp b25zIG1heSBwaWNrIHVwIHVud2FudGVkDQohICAgICAgIGxlbmd0aHkgcGF0aHMsIGUuZy4gdHJh dmVyc2luZyBtdWx0aXBsZSBUaWVyLTIgZGV2aWNlcy4NCiAgDQogICAgIG8gIEVCR1AgY29uZmln dXJhdGlvbiB0aGF0IGlzIGltcGxlbWVudGVkIHdpdGggbWluaW1hbCByb3V0aW5nIHBvbGljeQ0K ICAgICAgICBpcyBlYXNpZXIgdG8gdHJvdWJsZXNob290IGZvciBuZXR3b3JrIHJlYWNoYWJpbGl0 eSBpc3N1ZXMuICBJbg0KLS0tIDc2NSw3NzUgLS0tLQ0KICAgICAgICBjb250cm9sbGVkIGFuZCBj b21wbGV4IHVud2FudGVkIHBhdGhzIHdpbGwgYmUgaWdub3JlZC4gIFNlZQ0KICAgICAgICBTZWN0 aW9uIDUuMiBmb3IgYW4gZXhhbXBsZSBvZiBhIHdvcmtpbmcgQVNOIGFsbG9jYXRpb24gc2NoZW1l LiAgSW4NCiAgICAgICAgYSBsaW5rLXN0YXRlIElHUCBhY2NvbXBsaXNoaW5nIHRoZSBzYW1lIGdv YWwgd291bGQgcmVxdWlyZSBtdWx0aS0NCiEgICAgICAgKGluc3RhbmNlL3RvcG9sb2d5L3Byb2Nl c3MpIHN1cHBvcnQsIHR5cGljYWxseSBub3QgYXZhaWxhYmxlIGluDQogICAgICAgIGFsbCBEQyBk ZXZpY2VzIGFuZCBxdWl0ZSBjb21wbGV4IHRvIGNvbmZpZ3VyZSBhbmQgdHJvdWJsZXNob290Lg0K ICAgICAgICBVc2luZyBhIHRyYWRpdGlvbmFsIHNpbmdsZSBmbG9vZGluZyBkb21haW4sIHdoaWNo IG1vc3QgREMgZGVzaWducw0KICAgICAgICB1dGlsaXplLCB1bmRlciBjZXJ0YWluIGZhaWx1cmUg Y29uZGl0aW9ucyBtYXkgcGljayB1cCB1bndhbnRlZA0KISAgICAgICBsZW5ndGh5IHBhdGhzLCBl LmcuLCB0cmF2ZXJzaW5nIG11bHRpcGxlIFRpZXItMiBkZXZpY2VzLg0KICANCiAgICAgbyAgRUJH UCBjb25maWd1cmF0aW9uIHRoYXQgaXMgaW1wbGVtZW50ZWQgd2l0aCBtaW5pbWFsIHJvdXRpbmcg cG9saWN5DQogICAgICAgIGlzIGVhc2llciB0byB0cm91Ymxlc2hvb3QgZm9yIG5ldHdvcmsgcmVh Y2hhYmlsaXR5IGlzc3Vlcy4gIEluDQoqKioqKioqKioqKioqKioNCioqKiA4MDYsODEyICoqKioN CiAgICAgICAgbG9vcGJhY2sgc2Vzc2lvbnMgYXJlIHVzZWQgZXZlbiBpbiB0aGUgY2FzZSBvZiBt dWx0aXBsZSBsaW5rcw0KICAgICAgICBiZXR3ZWVuIHRoZSBzYW1lIHBhaXIgb2Ygbm9kZXMuDQog IA0KISAgICBvICBQcml2YXRlIFVzZSBBU05zIGZyb20gdGhlIHJhbmdlIDY0NTEyLTY1NTM0IGFy ZSB1c2VkIHNvIGFzIHRvDQogICAgICAgIGF2b2lkIEFTTiBjb25mbGljdHMuDQogIA0KICAgICBv ICBBIHNpbmdsZSBBU04gaXMgYWxsb2NhdGVkIHRvIGFsbCBvZiB0aGUgQ2xvcyB0b3BvbG9neSdz IFRpZXItMQ0KLS0tIDgwNiw4MTIgLS0tLQ0KICAgICAgICBsb29wYmFjayBzZXNzaW9ucyBhcmUg dXNlZCBldmVuIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlIGxpbmtzDQogICAgICAgIGJldHdlZW4g dGhlIHNhbWUgcGFpciBvZiBub2Rlcy4NCiAgDQohICAgIG8gIFByaXZhdGUgVXNlIEFTTnMgZnJv bSB0aGUgcmFuZ2UgNjQ1MTItNjU1MzQgYXJlIHVzZWQgdG8NCiAgICAgICAgYXZvaWQgQVNOIGNv bmZsaWN0cy4NCiAgDQogICAgIG8gIEEgc2luZ2xlIEFTTiBpcyBhbGxvY2F0ZWQgdG8gYWxsIG9m IHRoZSBDbG9zIHRvcG9sb2d5J3MgVGllci0xDQoqKioqKioqKioqKioqKioNCioqKiA4MTUsODIx ICoqKioNCiAgICAgbyAgQSB1bmlxdWUgQVNOIGlzIGFsbG9jYXRlZCB0byBlYWNoIHNldCBvZiBU aWVyLTIgZGV2aWNlcyBpbiB0aGUNCiAgICAgICAgc2FtZSBjbHVzdGVyLg0KICANCiEgICAgbyAg QSB1bmlxdWUgQVNOIGlzIGFsbG9jYXRlZCB0byBldmVyeSBUaWVyLTMgZGV2aWNlIChlLmcuICBU b1IpIGluDQogICAgICAgIHRoaXMgdG9wb2xvZ3kuDQogIA0KICANCi0tLSA4MTUsODIxIC0tLS0N CiAgICAgbyAgQSB1bmlxdWUgQVNOIGlzIGFsbG9jYXRlZCB0byBlYWNoIHNldCBvZiBUaWVyLTIg ZGV2aWNlcyBpbiB0aGUNCiAgICAgICAgc2FtZSBjbHVzdGVyLg0KICANCiEgICAgbyAgQSB1bmlx dWUgQVNOIGlzIGFsbG9jYXRlZCB0byBldmVyeSBUaWVyLTMgZGV2aWNlIChlLmcuLCAgVG9SKSBp bg0KICAgICAgICB0aGlzIHRvcG9sb2d5Lg0KICANCiAgDQoqKioqKioqKioqKioqKioNCioqKiA5 MDMsOTIyICoqKioNCiAgDQogICAgIEFub3RoZXIgc29sdXRpb24gdG8gdGhpcyBwcm9ibGVtIHdv dWxkIGJlIHVzaW5nIEZvdXItT2N0ZXQgQVNOcw0KICAgICAoW1JGQzY3OTNdKSwgd2hlcmUgdGhl cmUgYXJlIGFkZGl0aW9uYWwgUHJpdmF0ZSBVc2UgQVNOcyBhdmFpbGFibGUsDQohICAgIHNlZSBb SUFOQS5BU10uICBVc2Ugb2YgRm91ci1PY3RldCBBU05zIHB1dCBhZGRpdGlvbmFsIHByb3RvY29s DQohICAgIGNvbXBsZXhpdHkgaW4gdGhlIEJHUCBpbXBsZW1lbnRhdGlvbiBzbyBzaG91bGQgYmUg Y29uc2lkZXJlZCBhZ2FpbnN0DQogICAgIHRoZSBjb21wbGV4aXR5IG9mIHJlLXVzZSB3aGVuIGNv bnNpZGVyaW5nIFJFUTMgYW5kIFJFUTQuICBQZXJoYXBzDQogICAgIG1vcmUgaW1wb3J0YW50bHks IHRoZXkgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IGFsbCBCR1ANCiAgICAgaW1wbGVtZW50YXRp b25zLCB3aGljaCBtYXkgbGltaXQgdmVuZG9yIHNlbGVjdGlvbiBvZiBEQyBlcXVpcG1lbnQuDQoh ICAgIFdoZW4gc3VwcG9ydGVkLCBlbnN1cmUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgaW4gdXNlIGFy ZSBhYmxlIHRvIHJlbW92ZQ0KISAgICB0aGUgUHJpdmF0ZSBVc2UgQVNOcyBpZiByZXF1aXJlZCBm b3IgZXh0ZXJuYWwgY29ubmVjdGl2aXR5DQohICAgIChTZWN0aW9uIDUuMi40KS4NCiAgDQogIDUu Mi4zLiAgUHJlZml4IEFkdmVydGlzZW1lbnQNCiAgDQogICAgIEEgQ2xvcyB0b3BvbG9neSBmZWF0 dXJlcyBhIGxhcmdlIG51bWJlciBvZiBwb2ludC10by1wb2ludCBsaW5rcyBhbmQNCiAgICAgYXNz b2NpYXRlZCBwcmVmaXhlcy4gIEFkdmVydGlzaW5nIGFsbCBvZiB0aGVzZSByb3V0ZXMgaW50byBC R1AgbWF5DQohICAgIGNyZWF0ZSBGSUIgb3ZlcmxvYWQgY29uZGl0aW9ucyBpbiB0aGUgbmV0d29y ayBkZXZpY2VzLiAgQWR2ZXJ0aXNpbmcNCiAgICAgdGhlc2UgbGlua3MgYWxzbyBwdXRzIGFkZGl0 aW9uYWwgcGF0aCBjb21wdXRhdGlvbiBzdHJlc3Mgb24gdGhlIEJHUA0KICAgICBjb250cm9sIHBs YW5lIGZvciBsaXR0bGUgYmVuZWZpdC4gIFRoZXJlIGFyZSB0d28gcG9zc2libGUgc29sdXRpb25z Og0KICANCi0tLSA5MDMsOTIyIC0tLS0NCiAgDQogICAgIEFub3RoZXIgc29sdXRpb24gdG8gdGhp cyBwcm9ibGVtIHdvdWxkIGJlIHVzaW5nIEZvdXItT2N0ZXQgQVNOcw0KICAgICAoW1JGQzY3OTNd KSwgd2hlcmUgdGhlcmUgYXJlIGFkZGl0aW9uYWwgUHJpdmF0ZSBVc2UgQVNOcyBhdmFpbGFibGUs DQohICAgIHNlZSBbSUFOQS5BU10uICBVc2Ugb2YgRm91ci1PY3RldCBBU05zIHB1dHMgYWRkaXRp b25hbCBwcm90b2NvbA0KISAgICBjb21wbGV4aXR5IGluIHRoZSBCR1AgaW1wbGVtZW50YXRpb24g YW5kIHNob3VsZCBiZSBiYWxhbmNlZCBhZ2FpbnN0DQogICAgIHRoZSBjb21wbGV4aXR5IG9mIHJl LXVzZSB3aGVuIGNvbnNpZGVyaW5nIFJFUTMgYW5kIFJFUTQuICBQZXJoYXBzDQogICAgIG1vcmUg aW1wb3J0YW50bHksIHRoZXkgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IGFsbCBCR1ANCiAgICAg aW1wbGVtZW50YXRpb25zLCB3aGljaCBtYXkgbGltaXQgdmVuZG9yIHNlbGVjdGlvbiBvZiBEQyBl cXVpcG1lbnQuDQohICAgIFdoZW4gc3VwcG9ydGVkLCBlbnN1cmUgdGhhdCBkZXBsb3llZCBpbXBs ZW1lbnRhdGlvbnMgYXJlIGFibGUgdG8NCnJlbW92ZQ0KISAgICB0aGUgUHJpdmF0ZSBVc2UgQVNO cyB3aGVuIGV4dGVybmFsIGNvbm5lY3Rpdml0eSB0byB0aGVzZSBBU2VzIGlzDQohICAgIHJlcXVp cmVkIChTZWN0aW9uIDUuMi40KS4NCiAgDQogIDUuMi4zLiAgUHJlZml4IEFkdmVydGlzZW1lbnQN CiAgDQogICAgIEEgQ2xvcyB0b3BvbG9neSBmZWF0dXJlcyBhIGxhcmdlIG51bWJlciBvZiBwb2lu dC10by1wb2ludCBsaW5rcyBhbmQNCiAgICAgYXNzb2NpYXRlZCBwcmVmaXhlcy4gIEFkdmVydGlz aW5nIGFsbCBvZiB0aGVzZSByb3V0ZXMgaW50byBCR1AgbWF5DQohICAgIGNyZWF0ZSBGSUIgb3Zl cmxvYWQgaW4gdGhlIG5ldHdvcmsgZGV2aWNlcy4gIEFkdmVydGlzaW5nDQogICAgIHRoZXNlIGxp bmtzIGFsc28gcHV0cyBhZGRpdGlvbmFsIHBhdGggY29tcHV0YXRpb24gc3RyZXNzIG9uIHRoZSBC R1ANCiAgICAgY29udHJvbCBwbGFuZSBmb3IgbGl0dGxlIGJlbmVmaXQuICBUaGVyZSBhcmUgdHdv IHBvc3NpYmxlIHNvbHV0aW9uczoNCiAgDQoqKioqKioqKioqKioqKioNCioqKiA5MjUsOTUxICoq KioNCiAgICAgICAgZGV2aWNlLCBkaXN0YW50IG5ldHdvcmtzIHdpbGwgYXV0b21hdGljYWxseSBi ZSByZWFjaGFibGUgdmlhIHRoZQ0KICAgICAgICBhZHZlcnRpc2luZyBFQkdQIHBlZXIgYW5kIGRv IG5vdCByZXF1aXJlIHJlYWNoYWJpbGl0eSB0byB0aGVzZQ0KICAgICAgICBwcmVmaXhlcy4gIEhv d2V2ZXIsIHRoaXMgbWF5IGNvbXBsaWNhdGUgb3BlcmF0aW9ucyBvciBtb25pdG9yaW5nOg0KISAg ICAgICBlLmcuIHVzaW5nIHRoZSBwb3B1bGFyICJ0cmFjZXJvdXRlIiB0b29sIHdpbGwgZGlzcGxh eSBJUCBhZGRyZXNzZXMNCiAgICAgICAgdGhhdCBhcmUgbm90IHJlYWNoYWJsZS4NCiAgDQogICAg IG8gIEFkdmVydGlzZSBwb2ludC10by1wb2ludCBsaW5rcywgYnV0IHN1bW1hcml6ZSB0aGVtIG9u IGV2ZXJ5DQogICAgICAgIGRldmljZS4gIFRoaXMgcmVxdWlyZXMgYW4gYWRkcmVzcyBhbGxvY2F0 aW9uIHNjaGVtZSBzdWNoIGFzDQogICAgICAgIGFsbG9jYXRpbmcgYSBjb25zZWN1dGl2ZSBibG9j ayBvZiBJUCBhZGRyZXNzZXMgcGVyIFRpZXItMSBhbmQNCiAgICAgICAgVGllci0yIGRldmljZSB0 byBiZSB1c2VkIGZvciBwb2ludC10by1wb2ludCBpbnRlcmZhY2UgYWRkcmVzc2luZw0KISAgICAg ICB0byB0aGUgbG93ZXIgbGF5ZXJzIChUaWVyLTIgdXBsaW5rcyB3aWxsIGJlIG51bWJlcmVkIG91 dCBvZiBUaWVyLTENCiEgICAgICAgYWRkcmVzc2luZyBhbmQgc28gZm9ydGgpLg0KICANCiAgICAg U2VydmVyIHN1Ym5ldHMgb24gVGllci0zIGRldmljZXMgbXVzdCBiZSBhbm5vdW5jZWQgaW50byBC R1Agd2l0aG91dA0KICAgICB1c2luZyByb3V0ZSBzdW1tYXJpemF0aW9uIG9uIFRpZXItMiBhbmQg VGllci0xIGRldmljZXMuICBTdW1tYXJpemluZw0KICAgICBzdWJuZXRzIGluIGEgQ2xvcyB0b3Bv bG9neSByZXN1bHRzIGluIHJvdXRlIGJsYWNrLWhvbGluZyB1bmRlciBhDQohICAgIHNpbmdsZSBs aW5rIGZhaWx1cmUgKGUuZy4gYmV0d2VlbiBUaWVyLTIgYW5kIFRpZXItMyBkZXZpY2VzKSBhbmQN CiAgICAgaGVuY2UgbXVzdCBiZSBhdm9pZGVkLiAgVGhlIHVzZSBvZiBwZWVyIGxpbmtzIHdpdGhp biB0aGUgc2FtZSB0aWVyIHRvDQogICAgIHJlc29sdmUgdGhlIGJsYWNrLWhvbGluZyBwcm9ibGVt IGJ5IHByb3ZpZGluZyAiYnlwYXNzIHBhdGhzIiBpcw0KICAgICB1bmRlc2lyYWJsZSBkdWUgdG8g TyhOXjIpIGNvbXBsZXhpdHkgb2YgdGhlIHBlZXJpbmcgbWVzaCBhbmQgd2FzdGUgb2YNCiAgICAg cG9ydHMgb24gdGhlIGRldmljZXMuICBBbiBhbHRlcm5hdGl2ZSB0byB0aGUgZnVsbC1tZXNoIG9m IHBlZXItbGlua3MNCiEgICAgd291bGQgYmUgdXNpbmcgYSBzaW1wbGVyIGJ5cGFzcyB0b3BvbG9n eSwgZS5nLiBhICJyaW5nIiBhcyBkZXNjcmliZWQNCiAgICAgaW4gW0ZCNFBPU1RdLCBidXQgc3Vj aCBhIHRvcG9sb2d5IGFkZHMgZXh0cmEgaG9wcyBhbmQgaGFzIHZlcnkNCiEgICAgbGltaXRlZCBi aXNlY3Rpb24gYmFuZHdpZHRoLCBpbiBhZGRpdGlvbiByZXF1aXJpbmcgc3BlY2lhbCB0d2Vha3Mg dG8NCiAgDQogIA0KICANCi0tLSA5MjUsOTUxIC0tLS0NCiAgICAgICAgZGV2aWNlLCBkaXN0YW50 IG5ldHdvcmtzIHdpbGwgYXV0b21hdGljYWxseSBiZSByZWFjaGFibGUgdmlhIHRoZQ0KICAgICAg ICBhZHZlcnRpc2luZyBFQkdQIHBlZXIgYW5kIGRvIG5vdCByZXF1aXJlIHJlYWNoYWJpbGl0eSB0 byB0aGVzZQ0KICAgICAgICBwcmVmaXhlcy4gIEhvd2V2ZXIsIHRoaXMgbWF5IGNvbXBsaWNhdGUg b3BlcmF0aW9ucyBvciBtb25pdG9yaW5nOg0KISAgICAgICBlLmcuLCB1c2luZyB0aGUgcG9wdWxh ciAidHJhY2Vyb3V0ZSIgdG9vbCB3aWxsIGRpc3BsYXkgSVAgYWRkcmVzc2VzDQogICAgICAgIHRo YXQgYXJlIG5vdCByZWFjaGFibGUuDQogIA0KICAgICBvICBBZHZlcnRpc2UgcG9pbnQtdG8tcG9p bnQgbGlua3MsIGJ1dCBzdW1tYXJpemUgdGhlbSBvbiBldmVyeQ0KICAgICAgICBkZXZpY2UuICBU aGlzIHJlcXVpcmVzIGFuIGFkZHJlc3MgYWxsb2NhdGlvbiBzY2hlbWUgc3VjaCBhcw0KICAgICAg ICBhbGxvY2F0aW5nIGEgY29uc2VjdXRpdmUgYmxvY2sgb2YgSVAgYWRkcmVzc2VzIHBlciBUaWVy LTEgYW5kDQogICAgICAgIFRpZXItMiBkZXZpY2UgdG8gYmUgdXNlZCBmb3IgcG9pbnQtdG8tcG9p bnQgaW50ZXJmYWNlIGFkZHJlc3NpbmcNCiEgICAgICAgdG8gdGhlIGxvd2VyIGxheWVycyAoVGll ci0yIHVwbGluayBhZGRyZXNzZXMgd2lsbCBiZSBhbGxvY2F0ZWQNCiEgICAgICAgZnJvbSBUaWVy LTEgYWRkcmVzcyBibG9ja3MgYW5kIHNvIGZvcnRoKS4NCiAgDQogICAgIFNlcnZlciBzdWJuZXRz IG9uIFRpZXItMyBkZXZpY2VzIG11c3QgYmUgYW5ub3VuY2VkIGludG8gQkdQIHdpdGhvdXQNCiAg ICAgdXNpbmcgcm91dGUgc3VtbWFyaXphdGlvbiBvbiBUaWVyLTIgYW5kIFRpZXItMSBkZXZpY2Vz LiAgU3VtbWFyaXppbmcNCiAgICAgc3VibmV0cyBpbiBhIENsb3MgdG9wb2xvZ3kgcmVzdWx0cyBp biByb3V0ZSBibGFjay1ob2xpbmcgdW5kZXIgYQ0KISAgICBzaW5nbGUgbGluayBmYWlsdXJlIChl LmcuLCBiZXR3ZWVuIFRpZXItMiBhbmQgVGllci0zIGRldmljZXMpIGFuZA0KICAgICBoZW5jZSBt dXN0IGJlIGF2b2lkZWQuICBUaGUgdXNlIG9mIHBlZXIgbGlua3Mgd2l0aGluIHRoZSBzYW1lIHRp ZXIgdG8NCiAgICAgcmVzb2x2ZSB0aGUgYmxhY2staG9saW5nIHByb2JsZW0gYnkgcHJvdmlkaW5n ICJieXBhc3MgcGF0aHMiIGlzDQogICAgIHVuZGVzaXJhYmxlIGR1ZSB0byBPKE5eMikgY29tcGxl eGl0eSBvZiB0aGUgcGVlcmluZyBtZXNoIGFuZCB3YXN0ZSBvZg0KICAgICBwb3J0cyBvbiB0aGUg ZGV2aWNlcy4gIEFuIGFsdGVybmF0aXZlIHRvIHRoZSBmdWxsLW1lc2ggb2YgcGVlci1saW5rcw0K ISAgICB3b3VsZCBiZSB1c2luZyBhIHNpbXBsZXIgYnlwYXNzIHRvcG9sb2d5LCBlLmcuLCBhICJy aW5nIiBhcyBkZXNjcmliZWQNCiAgICAgaW4gW0ZCNFBPU1RdLCBidXQgc3VjaCBhIHRvcG9sb2d5 IGFkZHMgZXh0cmEgaG9wcyBhbmQgaGFzIHZlcnkNCiEgICAgbGltaXRlZCBiaXNlY3Rpb25hbCBi YW5kd2lkdGguIEFkZGl0aW9uYWxseSByZXF1aXJpbmcgc3BlY2lhbCB0d2Vha3MNCnRvDQogIA0K ICANCiAgDQoqKioqKioqKioqKioqKioNCioqKiA5NTYsOTYzICoqKioNCiAgDQogICAgIG1ha2Ug QkdQIHJvdXRpbmcgd29yayAtIHN1Y2ggYXMgcG9zc2libHkgc3BsaXR0aW5nIGV2ZXJ5IGRldmlj ZSBpbnRvDQogICAgIGFuIEFTTiBvbiBpdHMgb3duLiAgTGF0ZXIgaW4gdGhpcyBkb2N1bWVudCwg U2VjdGlvbiA4LjIgaW50cm9kdWNlcyBhDQohICAgIGxlc3MgaW50cnVzaXZlIG1ldGhvZCBmb3Ig cGVyZm9ybWluZyBhIGxpbWl0ZWQgZm9ybSByb3V0ZQ0KISAgICBzdW1tYXJpemF0aW9uIGluIENs b3MgbmV0d29ya3MgYW5kIGRpc2N1c3NlcyBpdCdzIGFzc29jaWF0ZWQgdHJhZGUtDQogICAgIG9m ZnMuDQogIA0KICA1LjIuNC4gIEV4dGVybmFsIENvbm5lY3Rpdml0eQ0KLS0tIDk1Niw5NjMgLS0t LQ0KICANCiAgICAgbWFrZSBCR1Agcm91dGluZyB3b3JrIC0gc3VjaCBhcyBwb3NzaWJseSBzcGxp dHRpbmcgZXZlcnkgZGV2aWNlIGludG8NCiAgICAgYW4gQVNOIG9uIGl0cyBvd24uICBMYXRlciBp biB0aGlzIGRvY3VtZW50LCBTZWN0aW9uIDguMiBpbnRyb2R1Y2VzIGENCiEgICAgbGVzcyBpbnRy dXNpdmUgbWV0aG9kIGZvciBwZXJmb3JtaW5nIGEgbGltaXRlZCBmb3JtIG9mIHJvdXRlDQohICAg IHN1bW1hcml6YXRpb24gaW4gQ2xvcyBuZXR3b3JrcyBhbmQgZGlzY3Vzc2VzIGl0cyBhc3NvY2lh dGVkIHRyYWRlLQ0KICAgICBvZmZzLg0KICANCiAgNS4yLjQuICBFeHRlcm5hbCBDb25uZWN0aXZp dHkNCioqKioqKioqKioqKioqKg0KKioqIDk3Miw5ODUgKioqKg0KICAgICBkb2N1bWVudC4gIFRo ZXNlIGRldmljZXMgaGF2ZSB0byBwZXJmb3JtIGEgZmV3IHNwZWNpYWwgZnVuY3Rpb25zOg0KICAN CiAgICAgbyAgSGlkZSBuZXR3b3JrIHRvcG9sb2d5IGluZm9ybWF0aW9uIHdoZW4gYWR2ZXJ0aXNp bmcgcGF0aHMgdG8gV0FODQohICAgICAgIHJvdXRlcnMsIGkuZS4gcmVtb3ZlIFByaXZhdGUgVXNl IEFTTnMgW1JGQzY5OTZdIGZyb20gdGhlIEFTX1BBVEgNCiAgICAgICAgYXR0cmlidXRlLiAgVGhp cyBpcyB0eXBpY2FsbHkgZG9uZSB0byBhdm9pZCBBU04gbnVtYmVyIGNvbGxpc2lvbnMNCiAgICAg ICAgYmV0d2VlbiBkaWZmZXJlbnQgZGF0YSBjZW50ZXJzIGFuZCBhbHNvIHRvIHByb3ZpZGUgYSB1 bmlmb3JtDQogICAgICAgIEFTX1BBVEggbGVuZ3RoIHRvIHRoZSBXQU4gZm9yIHB1cnBvc2VzIG9m IFdBTiBFQ01QIHRvIEFueWNhc3QNCiAgICAgICAgcHJlZml4ZXMgb3JpZ2luYXRlZCBpbiB0aGUg dG9wb2xvZ3kuICBBbiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYw0KICAgICAgICBCR1AgZmVhdHVy ZSB0eXBpY2FsbHkgY2FsbGVkICJSZW1vdmUgUHJpdmF0ZSBBUyIgaXMgY29tbW9ubHkgdXNlZA0K ICAgICAgICB0byBhY2NvbXBsaXNoIHRoaXMuICBEZXBlbmRpbmcgb24gaW1wbGVtZW50YXRpb24s IHRoZSBmZWF0dXJlDQohICAgICAgIHNob3VsZCBzdHJpcCBhIGNvbnRpZ3VvdXMgc2VxdWVuY2Ug b2YgUHJpdmF0ZSBVc2UgQVNOcyBmb3VuZCBpbg0KICAgICAgICBBU19QQVRIIGF0dHJpYnV0ZSBw cmlvciB0byBhZHZlcnRpc2luZyB0aGUgcGF0aCB0byBhIG5laWdoYm9yLg0KICAgICAgICBUaGlz IGFzc3VtZXMgdGhhdCBhbGwgQVNOcyB1c2VkIGZvciBpbnRyYSBkYXRhIGNlbnRlciBudW1iZXJp bmcNCiAgICAgICAgYXJlIGZyb20gdGhlIFByaXZhdGUgVXNlIHJhbmdlcy4gIFRoZSBwcm9jZXNz IGZvciBzdHJpcHBpbmcgdGhlDQotLS0gOTcyLDk4NSAtLS0tDQogICAgIGRvY3VtZW50LiAgVGhl c2UgZGV2aWNlcyBoYXZlIHRvIHBlcmZvcm0gYSBmZXcgc3BlY2lhbCBmdW5jdGlvbnM6DQogIA0K ICAgICBvICBIaWRlIG5ldHdvcmsgdG9wb2xvZ3kgaW5mb3JtYXRpb24gd2hlbiBhZHZlcnRpc2lu ZyBwYXRocyB0byBXQU4NCiEgICAgICAgcm91dGVycywgaS5lLiwgcmVtb3ZlIFByaXZhdGUgVXNl IEFTTnMgW1JGQzY5OTZdIGZyb20gdGhlIEFTX1BBVEgNCiAgICAgICAgYXR0cmlidXRlLiAgVGhp cyBpcyB0eXBpY2FsbHkgZG9uZSB0byBhdm9pZCBBU04gbnVtYmVyIGNvbGxpc2lvbnMNCiAgICAg ICAgYmV0d2VlbiBkaWZmZXJlbnQgZGF0YSBjZW50ZXJzIGFuZCBhbHNvIHRvIHByb3ZpZGUgYSB1 bmlmb3JtDQogICAgICAgIEFTX1BBVEggbGVuZ3RoIHRvIHRoZSBXQU4gZm9yIHB1cnBvc2VzIG9m IFdBTiBFQ01QIHRvIEFueWNhc3QNCiAgICAgICAgcHJlZml4ZXMgb3JpZ2luYXRlZCBpbiB0aGUg dG9wb2xvZ3kuICBBbiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYw0KICAgICAgICBCR1AgZmVhdHVy ZSB0eXBpY2FsbHkgY2FsbGVkICJSZW1vdmUgUHJpdmF0ZSBBUyIgaXMgY29tbW9ubHkgdXNlZA0K ICAgICAgICB0byBhY2NvbXBsaXNoIHRoaXMuICBEZXBlbmRpbmcgb24gaW1wbGVtZW50YXRpb24s IHRoZSBmZWF0dXJlDQohICAgICAgIHNob3VsZCBzdHJpcCBhIGNvbnRpZ3VvdXMgc2VxdWVuY2Ug b2YgUHJpdmF0ZSBVc2UgQVNOcyBmb3VuZCBpbiBhbg0KICAgICAgICBBU19QQVRIIGF0dHJpYnV0 ZSBwcmlvciB0byBhZHZlcnRpc2luZyB0aGUgcGF0aCB0byBhIG5laWdoYm9yLg0KICAgICAgICBU aGlzIGFzc3VtZXMgdGhhdCBhbGwgQVNOcyB1c2VkIGZvciBpbnRyYSBkYXRhIGNlbnRlciBudW1i ZXJpbmcNCiAgICAgICAgYXJlIGZyb20gdGhlIFByaXZhdGUgVXNlIHJhbmdlcy4gIFRoZSBwcm9j ZXNzIGZvciBzdHJpcHBpbmcgdGhlDQoqKioqKioqKioqKioqKioNCioqKiA5OTgsMTAwNSAqKioq DQogICAgICAgIHRvIHRoZSBXQU4gUm91dGVycyB1cHN0cmVhbSwgdG8gcHJvdmlkZSByZXNpc3Rh bmNlIHRvIGEgc2luZ2xlLQ0KICAgICAgICBsaW5rIGZhaWx1cmUgY2F1c2luZyB0aGUgYmxhY2st aG9saW5nIG9mIHRyYWZmaWMuICBUbyBwcmV2ZW50DQogICAgICAgIGJsYWNrLWhvbGluZyBpbiB0 aGUgc2l0dWF0aW9uIHdoZW4gYWxsIG9mIHRoZSBFQkdQIHNlc3Npb25zIHRvIHRoZQ0KISAgICAg ICBXQU4gcm91dGVycyBmYWlsIHNpbXVsdGFuZW91c2x5IG9uIGEgZ2l2ZW4gZGV2aWNlIGl0IGlz IG1vcmUNCiEgICAgICAgZGVzaXJhYmxlIHRvIHRha2UgdGhlICJyZWxheWluZyIgYXBwcm9hY2gg cmF0aGVyIHRoYW4gaW50cm9kdWNpbmcNCiAgICAgICAgdGhlIGRlZmF1bHQgcm91dGUgdmlhIGNv bXBsaWNhdGVkIGNvbmRpdGlvbmFsIHJvdXRlIG9yaWdpbmF0aW9uDQogICAgICAgIHNjaGVtZXMg cHJvdmlkZWQgYnkgc29tZSBpbXBsZW1lbnRhdGlvbnMgW0NPTkRJVElPTkFMUk9VVEVdLg0KICAN Ci0tLSA5OTgsMTAwNSAtLS0tDQogICAgICAgIHRvIHRoZSBXQU4gUm91dGVycyB1cHN0cmVhbSwg dG8gcHJvdmlkZSByZXNpc3RhbmNlIHRvIGEgc2luZ2xlLQ0KICAgICAgICBsaW5rIGZhaWx1cmUg Y2F1c2luZyB0aGUgYmxhY2staG9saW5nIG9mIHRyYWZmaWMuICBUbyBwcmV2ZW50DQogICAgICAg IGJsYWNrLWhvbGluZyBpbiB0aGUgc2l0dWF0aW9uIHdoZW4gYWxsIG9mIHRoZSBFQkdQIHNlc3Np b25zIHRvIHRoZQ0KISAgICAgICBXQU4gcm91dGVycyBmYWlsIHNpbXVsdGFuZW91c2x5IG9uIGEg Z2l2ZW4gZGV2aWNlLCBpdCBpcyBtb3JlDQohICAgICAgIGRlc2lyYWJsZSB0byByZWFkdmVydGlz ZSB0aGUgZGVmYXVsdCByb3V0ZSByYXRoZXIgdGhhbiBvcmlnaW5hdGluZw0KICAgICAgICB0aGUg ZGVmYXVsdCByb3V0ZSB2aWEgY29tcGxpY2F0ZWQgY29uZGl0aW9uYWwgcm91dGUgb3JpZ2luYXRp b24NCiAgICAgICAgc2NoZW1lcyBwcm92aWRlZCBieSBzb21lIGltcGxlbWVudGF0aW9ucyBbQ09O RElUSU9OQUxST1VURV0uDQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTAxNywxMDIzICoqKioN CiAgICAgcHJlZml4ZXMgb3JpZ2luYXRlZCBmcm9tIHdpdGhpbiB0aGUgZGF0YSBjZW50ZXIgaW4g YSBmdWxseSByb3V0ZWQNCiAgICAgbmV0d29yayBkZXNpZ24uICBGb3IgZXhhbXBsZSwgYSBuZXR3 b3JrIHdpdGggMjAwMCBUaWVyLTMgZGV2aWNlcyB3aWxsDQogICAgIGhhdmUgYXQgbGVhc3QgMjAw MCBzZXJ2ZXJzIHN1Ym5ldHMgYWR2ZXJ0aXNlZCBpbnRvIEJHUCwgYWxvbmcgd2l0aA0KISAgICB0 aGUgaW5mcmFzdHJ1Y3R1cmUgb3Igb3RoZXIgcHJlZml4ZXMuICBIb3dldmVyLCBhcyBkaXNjdXNz ZWQgYmVmb3JlLA0KICAgICB0aGUgcHJvcG9zZWQgbmV0d29yayBkZXNpZ24gZG9lcyBub3QgYWxs b3cgZm9yIHJvdXRlIHN1bW1hcml6YXRpb24NCiAgICAgZHVlIHRvIHRoZSBsYWNrIG9mIHBlZXIg bGlua3MgaW5zaWRlIGV2ZXJ5IHRpZXIuDQogIA0KLS0tIDEwMTcsMTAyMyAtLS0tDQogICAgIHBy ZWZpeGVzIG9yaWdpbmF0ZWQgZnJvbSB3aXRoaW4gdGhlIGRhdGEgY2VudGVyIGluIGEgZnVsbHkg cm91dGVkDQogICAgIG5ldHdvcmsgZGVzaWduLiAgRm9yIGV4YW1wbGUsIGEgbmV0d29yayB3aXRo IDIwMDAgVGllci0zIGRldmljZXMgd2lsbA0KICAgICBoYXZlIGF0IGxlYXN0IDIwMDAgc2VydmVy cyBzdWJuZXRzIGFkdmVydGlzZWQgaW50byBCR1AsIGFsb25nIHdpdGgNCiEgICAgdGhlIGluZnJh c3RydWN0dXJlIGFuZCBsaW5rIHByZWZpeGVzLiAgSG93ZXZlciwgYXMgZGlzY3Vzc2VkIGJlZm9y ZSwNCiAgICAgdGhlIHByb3Bvc2VkIG5ldHdvcmsgZGVzaWduIGRvZXMgbm90IGFsbG93IGZvciBy b3V0ZSBzdW1tYXJpemF0aW9uDQogICAgIGR1ZSB0byB0aGUgbGFjayBvZiBwZWVyIGxpbmtzIGlu c2lkZSBldmVyeSB0aWVyLg0KICANCioqKioqKioqKioqKioqKg0KKioqIDEwMjgsMTAzNyAqKioq DQogICAgIG8gIEludGVyY29ubmVjdCB0aGUgQm9yZGVyIFJvdXRlcnMgdXNpbmcgYSBmdWxsLW1l c2ggb2YgcGh5c2ljYWwNCiAgICAgICAgbGlua3Mgb3IgdXNpbmcgYW55IG90aGVyICJwZWVyLW1l c2giIHRvcG9sb2d5LCBzdWNoIGFzIHJpbmcgb3INCiAgICAgICAgaHViLWFuZC1zcG9rZS4gIENv bmZpZ3VyZSBCR1AgYWNjb3JkaW5nbHkgb24gYWxsIEJvcmRlciBMZWFmcyB0bw0KISAgICAgICBl eGNoYW5nZSBuZXR3b3JrIHJlYWNoYWJpbGl0eSBpbmZvcm1hdGlvbiAtIGUuZy4gYnkgYWRkaW5n IGEgbWVzaA0KICAgICAgICBvZiBJQkdQIHNlc3Npb25zLiAgVGhlIGludGVyY29ubmVjdGluZyBw ZWVyIGxpbmtzIG5lZWQgdG8gYmUNCiAgICAgICAgYXBwcm9wcmlhdGVseSBzaXplZCBmb3IgdHJh ZmZpYyB0aGF0IHdpbGwgYmUgcHJlc2VudCBpbiB0aGUgY2FzZQ0KISAgICAgICBvZiBhIGRldmlj ZSBvciBsaW5rIGZhaWx1cmUgdW5kZXJuZWF0aCB0aGUgQm9yZGVyIFJvdXRlcnMuDQogIA0KICAg ICBvICBUaWVyLTEgZGV2aWNlcyBtYXkgaGF2ZSBhZGRpdGlvbmFsIHBoeXNpY2FsIGxpbmtzIHBy b3Zpc2lvbmVkDQogICAgICAgIHRvd2FyZCB0aGUgQm9yZGVyIFJvdXRlcnMgKHdoaWNoIGFyZSBU aWVyLTIgZGV2aWNlcyBmcm9tIHRoZQ0KLS0tIDEwMjgsMTAzNyAtLS0tDQogICAgIG8gIEludGVy Y29ubmVjdCB0aGUgQm9yZGVyIFJvdXRlcnMgdXNpbmcgYSBmdWxsLW1lc2ggb2YgcGh5c2ljYWwN CiAgICAgICAgbGlua3Mgb3IgdXNpbmcgYW55IG90aGVyICJwZWVyLW1lc2giIHRvcG9sb2d5LCBz dWNoIGFzIHJpbmcgb3INCiAgICAgICAgaHViLWFuZC1zcG9rZS4gIENvbmZpZ3VyZSBCR1AgYWNj b3JkaW5nbHkgb24gYWxsIEJvcmRlciBMZWFmcyB0bw0KISAgICAgICBleGNoYW5nZSBuZXR3b3Jr IHJlYWNoYWJpbGl0eSBpbmZvcm1hdGlvbiwgZS5nLiwgYnkgYWRkaW5nIGEgbWVzaA0KICAgICAg ICBvZiBJQkdQIHNlc3Npb25zLiAgVGhlIGludGVyY29ubmVjdGluZyBwZWVyIGxpbmtzIG5lZWQg dG8gYmUNCiAgICAgICAgYXBwcm9wcmlhdGVseSBzaXplZCBmb3IgdHJhZmZpYyB0aGF0IHdpbGwg YmUgcHJlc2VudCBpbiB0aGUgY2FzZQ0KISAgICAgICBvZiBhIGRldmljZSBvciBsaW5rIGZhaWx1 cmUgaW4gdGhlIG1lc2ggY29ubmVjdGluZyB0aGUgQm9yZGVyIA0KUm91dGVycy4NCiAgDQogICAg IG8gIFRpZXItMSBkZXZpY2VzIG1heSBoYXZlIGFkZGl0aW9uYWwgcGh5c2ljYWwgbGlua3MgcHJv dmlzaW9uZWQNCiAgICAgICAgdG93YXJkIHRoZSBCb3JkZXIgUm91dGVycyAod2hpY2ggYXJlIFRp ZXItMiBkZXZpY2VzIGZyb20gdGhlDQoqKioqKioqKioqKioqKioNCioqKiAxMDQzLDEwNDkgKioq Kg0KICAgICAgICBkZXZpY2UgY29tcGFyZWQgd2l0aCB0aGUgb3RoZXIgZGV2aWNlcyBpbiB0aGUg Q2xvcy4gIFRoaXMgYWxzbw0KICAgICAgICByZWR1Y2VzIHRoZSBudW1iZXIgb2YgcG9ydHMgYXZh aWxhYmxlIHRvICJyZWd1bGFyIiBUaWVyLTIgc3dpdGNoZXMNCiAgICAgICAgYW5kIGhlbmNlIHRo ZSBudW1iZXIgb2YgY2x1c3RlcnMgdGhhdCBjb3VsZCBiZSBpbnRlcmNvbm5lY3RlZCB2aWENCiEg ICAgICAgVGllci0xIGxheWVyLg0KICANCiAgICAgSWYgYW55IG9mIHRoZSBhYm92ZSBvcHRpb25z IGFyZSBpbXBsZW1lbnRlZCwgaXQgaXMgcG9zc2libGUgdG8NCiAgICAgcGVyZm9ybSByb3V0ZSBz dW1tYXJpemF0aW9uIGF0IHRoZSBCb3JkZXIgUm91dGVycyB0b3dhcmQgdGhlIFdBTg0KLS0tIDEw NDMsMTA0OSAtLS0tDQogICAgICAgIGRldmljZSBjb21wYXJlZCB3aXRoIHRoZSBvdGhlciBkZXZp Y2VzIGluIHRoZSBDbG9zLiAgVGhpcyBhbHNvDQogICAgICAgIHJlZHVjZXMgdGhlIG51bWJlciBv ZiBwb3J0cyBhdmFpbGFibGUgdG8gInJlZ3VsYXIiIFRpZXItMiBzd2l0Y2hlcw0KICAgICAgICBh bmQgaGVuY2UgdGhlIG51bWJlciBvZiBjbHVzdGVycyB0aGF0IGNvdWxkIGJlIGludGVyY29ubmVj dGVkIHZpYQ0KISAgICAgICB0aGUgVGllci0xIGxheWVyLg0KICANCiAgICAgSWYgYW55IG9mIHRo ZSBhYm92ZSBvcHRpb25zIGFyZSBpbXBsZW1lbnRlZCwgaXQgaXMgcG9zc2libGUgdG8NCiAgICAg cGVyZm9ybSByb3V0ZSBzdW1tYXJpemF0aW9uIGF0IHRoZSBCb3JkZXIgUm91dGVycyB0b3dhcmQg dGhlIFdBTg0KKioqKioqKioqKioqKioqDQoqKiogMTA3MSwxMDc5ICoqKioNCiAgICAgRUNNUCBp cyB0aGUgZnVuZGFtZW50YWwgbG9hZCBzaGFyaW5nIG1lY2hhbmlzbSB1c2VkIGJ5IGEgQ2xvcw0K ICAgICB0b3BvbG9neS4gIEVmZmVjdGl2ZWx5LCBldmVyeSBsb3dlci10aWVyIGRldmljZSB3aWxs IHVzZSBhbGwgb2YgaXRzDQogICAgIGRpcmVjdGx5IGF0dGFjaGVkIHVwcGVyLXRpZXIgZGV2aWNl cyB0byBsb2FkIHNoYXJlIHRyYWZmaWMgZGVzdGluZWQNCiEgICAgdG8gdGhlIHNhbWUgSVAgcHJl Zml4LiAgTnVtYmVyIG9mIEVDTVAgcGF0aHMgYmV0d2VlbiBhbnkgdHdvIFRpZXItMw0KICAgICBk ZXZpY2VzIGluIENsb3MgdG9wb2xvZ3kgZXF1YWxzIHRvIHRoZSBudW1iZXIgb2YgdGhlIGRldmlj ZXMgaW4gdGhlDQohICAgIG1pZGRsZSBzdGFnZSAoVGllci0xKS4gIEZvciBleGFtcGxlLCBGaWd1 cmUgNSBpbGx1c3RyYXRlcyB0aGUNCiAgICAgdG9wb2xvZ3kgd2hlcmUgVGllci0zIGRldmljZSBB IGhhcyBmb3VyIHBhdGhzIHRvIHJlYWNoIHNlcnZlcnMgWCBhbmQNCiAgICAgWSwgdmlhIFRpZXIt MiBkZXZpY2VzIEIgYW5kIEMgYW5kIHRoZW4gVGllci0xIGRldmljZXMgMSwgMiwgMywgYW5kIDQN CiAgICAgcmVzcGVjdGl2ZWx5Lg0KLS0tIDEwNzEsMTA3OSAtLS0tDQogICAgIEVDTVAgaXMgdGhl IGZ1bmRhbWVudGFsIGxvYWQgc2hhcmluZyBtZWNoYW5pc20gdXNlZCBieSBhIENsb3MNCiAgICAg dG9wb2xvZ3kuICBFZmZlY3RpdmVseSwgZXZlcnkgbG93ZXItdGllciBkZXZpY2Ugd2lsbCB1c2Ug YWxsIG9mIGl0cw0KICAgICBkaXJlY3RseSBhdHRhY2hlZCB1cHBlci10aWVyIGRldmljZXMgdG8g bG9hZCBzaGFyZSB0cmFmZmljIGRlc3RpbmVkDQohICAgIHRvIHRoZSBzYW1lIElQIHByZWZpeC4g IFRoZSBudW1iZXIgb2YgRUNNUCBwYXRocyBiZXR3ZWVuIGFueSB0d28gDQpUaWVyLTMNCiAgICAg ZGV2aWNlcyBpbiBDbG9zIHRvcG9sb2d5IGVxdWFscyB0byB0aGUgbnVtYmVyIG9mIHRoZSBkZXZp Y2VzIGluIHRoZQ0KISAgICBtaWRkbGUgc3RhZ2UgKFRpZXItMSkuICBGb3IgZXhhbXBsZSwgRmln dXJlIDUgaWxsdXN0cmF0ZXMgYQ0KICAgICB0b3BvbG9neSB3aGVyZSBUaWVyLTMgZGV2aWNlIEEg aGFzIGZvdXIgcGF0aHMgdG8gcmVhY2ggc2VydmVycyBYIGFuZA0KICAgICBZLCB2aWEgVGllci0y IGRldmljZXMgQiBhbmQgQyBhbmQgdGhlbiBUaWVyLTEgZGV2aWNlcyAxLCAyLCAzLCBhbmQgNA0K ICAgICByZXNwZWN0aXZlbHkuDQoqKioqKioqKioqKioqKioNCioqKiAxMTA1LDExMTYgKioqKg0K ICANCiAgICAgVGhlIEVDTVAgcmVxdWlyZW1lbnQgaW1wbGllcyB0aGF0IHRoZSBCR1AgaW1wbGVt ZW50YXRpb24gbXVzdCBzdXBwb3J0DQogICAgIG11bHRpcGF0aCBmYW4tb3V0IGZvciB1cCB0byB0 aGUgbWF4aW11bSBudW1iZXIgb2YgZGV2aWNlcyBkaXJlY3RseQ0KISAgICBhdHRhY2hlZCBhdCBh bnkgcG9pbnQgaW4gdGhlIHRvcG9sb2d5IGluIHVwc3RyZWFtIG9yIGRvd25zdHJlYW0NCiAgICAg ZGlyZWN0aW9uLiAgTm9ybWFsbHksIHRoaXMgbnVtYmVyIGRvZXMgbm90IGV4Y2VlZCBoYWxmIG9m IHRoZSBwb3J0cw0KICAgICBmb3VuZCBvbiBhIGRldmljZSBpbiB0aGUgdG9wb2xvZ3kuICBGb3Ig ZXhhbXBsZSwgYW4gRUNNUCBmYW4tb3V0IG9mDQogICAgIDMyIHdvdWxkIGJlIHJlcXVpcmVkIHdo ZW4gYnVpbGRpbmcgYSBDbG9zIG5ldHdvcmsgdXNpbmcgNjQtcG9ydA0KICAgICBkZXZpY2VzLiAg VGhlIEJvcmRlciBSb3V0ZXJzIG1heSBuZWVkIHRvIGhhdmUgd2lkZXIgZmFuLW91dCB0byBiZQ0K ISAgICBhYmxlIHRvIGNvbm5lY3QgdG8gbXVsdGl0dWRlIG9mIFRpZXItMSBkZXZpY2VzIGlmIHJv dXRlIHN1bW1hcml6YXRpb24NCiAgICAgYXQgQm9yZGVyIFJvdXRlciBsZXZlbCBpcyBpbXBsZW1l bnRlZCBhcyBkZXNjcmliZWQgaW4gU2VjdGlvbiA1LjIuNS4NCiAgICAgSWYgYSBkZXZpY2UncyBo YXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0IHdpZGVyIEVDTVAsIGxvZ2ljYWwgbGluay0NCiAgICAg Z3JvdXBpbmcgKGxpbmstYWdncmVnYXRpb24gYXQgbGF5ZXIgMikgY291bGQgYmUgdXNlZCB0byBw cm92aWRlDQotLS0gMTEwNSwxMTE2IC0tLS0NCiAgDQogICAgIFRoZSBFQ01QIHJlcXVpcmVtZW50 IGltcGxpZXMgdGhhdCB0aGUgQkdQIGltcGxlbWVudGF0aW9uIG11c3Qgc3VwcG9ydA0KICAgICBt dWx0aXBhdGggZmFuLW91dCBmb3IgdXAgdG8gdGhlIG1heGltdW0gbnVtYmVyIG9mIGRldmljZXMg ZGlyZWN0bHkNCiEgICAgYXR0YWNoZWQgYXQgYW55IHBvaW50IGluIHRoZSB0b3BvbG9neSBpbiB0 aGUgdXBzdHJlYW0gb3IgZG93bnN0cmVhbQ0KICAgICBkaXJlY3Rpb24uICBOb3JtYWxseSwgdGhp cyBudW1iZXIgZG9lcyBub3QgZXhjZWVkIGhhbGYgb2YgdGhlIHBvcnRzDQogICAgIGZvdW5kIG9u IGEgZGV2aWNlIGluIHRoZSB0b3BvbG9neS4gIEZvciBleGFtcGxlLCBhbiBFQ01QIGZhbi1vdXQg b2YNCiAgICAgMzIgd291bGQgYmUgcmVxdWlyZWQgd2hlbiBidWlsZGluZyBhIENsb3MgbmV0d29y ayB1c2luZyA2NC1wb3J0DQogICAgIGRldmljZXMuICBUaGUgQm9yZGVyIFJvdXRlcnMgbWF5IG5l ZWQgdG8gaGF2ZSB3aWRlciBmYW4tb3V0IHRvIGJlDQohICAgIGFibGUgdG8gY29ubmVjdCB0byBh IG11bHRpdHVkZSBvZiBUaWVyLTEgZGV2aWNlcyBpZiByb3V0ZSANCnN1bW1hcml6YXRpb24NCiAg ICAgYXQgQm9yZGVyIFJvdXRlciBsZXZlbCBpcyBpbXBsZW1lbnRlZCBhcyBkZXNjcmliZWQgaW4g U2VjdGlvbiA1LjIuNS4NCiAgICAgSWYgYSBkZXZpY2UncyBoYXJkd2FyZSBkb2VzIG5vdCBzdXBw b3J0IHdpZGVyIEVDTVAsIGxvZ2ljYWwgbGluay0NCiAgICAgZ3JvdXBpbmcgKGxpbmstYWdncmVn YXRpb24gYXQgbGF5ZXIgMikgY291bGQgYmUgdXNlZCB0byBwcm92aWRlDQoqKioqKioqKioqKioq KioNCioqKiAxMTIyLDExMzEgKioqKg0KICBJbnRlcm5ldC1EcmFmdCAgICBkcmFmdC1pZXRmLXJ0 Z3dnLWJncC1yb3V0aW5nLWxhcmdlLWRjICAgICAgIE1hcmNoIDIwMTYNCiAgDQogIA0KISAgICAi aGllcmFyY2hpY2FsIiBFQ01QIChMYXllciAzIEVDTVAgZm9sbG93ZWQgYnkgTGF5ZXIgMiBFQ01Q KSB0bw0KICAgICBjb21wZW5zYXRlIGZvciBmYW4tb3V0IGxpbWl0YXRpb25zLiAgU3VjaCBhcHBy b2FjaCwgaG93ZXZlciwNCiAgICAgaW5jcmVhc2VzIHRoZSByaXNrIG9mIGZsb3cgcG9sYXJpemF0 aW9uLCBhcyBsZXNzIGVudHJvcHkgd2lsbCBiZQ0KISAgICBhdmFpbGFibGUgdG8gdGhlIHNlY29u ZCBzdGFnZSBvZiBFQ01QLg0KICANCiAgICAgTW9zdCBCR1AgaW1wbGVtZW50YXRpb25zIGRlY2xh cmUgcGF0aHMgdG8gYmUgZXF1YWwgZnJvbSBhbiBFQ01QDQogICAgIHBlcnNwZWN0aXZlIGlmIHRo ZXkgbWF0Y2ggdXAgdG8gYW5kIGluY2x1ZGluZyBzdGVwIChlKSBpbg0KLS0tIDExMjIsMTEzMSAt LS0tDQogIEludGVybmV0LURyYWZ0ICAgIGRyYWZ0LWlldGYtcnRnd2ctYmdwLXJvdXRpbmctbGFy Z2UtZGMgICAgICAgTWFyY2ggMjAxNg0KICANCiAgDQohICAgICJoaWVyYXJjaGljYWwiIEVDTVAg KExheWVyIDMgRUNNUCBjb3VwbGVkIHdpdGggTGF5ZXIgMiBFQ01QKSB0bw0KICAgICBjb21wZW5z YXRlIGZvciBmYW4tb3V0IGxpbWl0YXRpb25zLiAgU3VjaCBhcHByb2FjaCwgaG93ZXZlciwNCiAg ICAgaW5jcmVhc2VzIHRoZSByaXNrIG9mIGZsb3cgcG9sYXJpemF0aW9uLCBhcyBsZXNzIGVudHJv cHkgd2lsbCBiZQ0KISAgICBhdmFpbGFibGUgYXQgdGhlIHNlY29uZCBzdGFnZSBvZiBFQ01QLg0K ICANCiAgICAgTW9zdCBCR1AgaW1wbGVtZW50YXRpb25zIGRlY2xhcmUgcGF0aHMgdG8gYmUgZXF1 YWwgZnJvbSBhbiBFQ01QDQogICAgIHBlcnNwZWN0aXZlIGlmIHRoZXkgbWF0Y2ggdXAgdG8gYW5k IGluY2x1ZGluZyBzdGVwIChlKSBpbg0KKioqKioqKioqKioqKioqDQoqKiogMTE0OCwxMTU0ICoq KioNCiAgICAgcGVyc3BlY3RpdmUgb2Ygb3RoZXIgZGV2aWNlcywgc3VjaCBhIHByZWZpeCB3b3Vs ZCBoYXZlIEJHUCBwYXRocyB3aXRoDQogICAgIGRpZmZlcmVudCBBU19QQVRIIGF0dHJpYnV0ZSB2 YWx1ZXMsIHdoaWxlIGhhdmluZyB0aGUgc2FtZSBBU19QQVRIDQogICAgIGF0dHJpYnV0ZSBsZW5n dGhzLiAgVGhlcmVmb3JlLCBCR1AgaW1wbGVtZW50YXRpb25zIG11c3Qgc3VwcG9ydCBsb2FkDQoh ICAgIHNoYXJpbmcgb3ZlciBhYm92ZS1tZW50aW9uZWQgcGF0aHMuICBUaGlzIGZlYXR1cmUgaXMg c29tZXRpbWVzIGtub3duDQogICAgIGFzICJtdWx0aXBhdGggcmVsYXgiIG9yICJtdWx0aXBhdGgg bXVsdGlwbGUtYXMiIGFuZCBlZmZlY3RpdmVseQ0KICAgICBhbGxvd3MgZm9yIEVDTVAgdG8gYmUg ZG9uZSBhY3Jvc3MgZGlmZmVyZW50IG5laWdoYm9yaW5nIEFTTnMgaWYgYWxsDQogICAgIG90aGVy IGF0dHJpYnV0ZXMgYXJlIGVxdWFsIGFzIGFscmVhZHkgZGVzY3JpYmVkIGluIHRoZSBwcmV2aW91 cw0KLS0tIDExNDgsMTE1NCAtLS0tDQogICAgIHBlcnNwZWN0aXZlIG9mIG90aGVyIGRldmljZXMs IHN1Y2ggYSBwcmVmaXggd291bGQgaGF2ZSBCR1AgcGF0aHMgd2l0aA0KICAgICBkaWZmZXJlbnQg QVNfUEFUSCBhdHRyaWJ1dGUgdmFsdWVzLCB3aGlsZSBoYXZpbmcgdGhlIHNhbWUgQVNfUEFUSA0K ICAgICBhdHRyaWJ1dGUgbGVuZ3Rocy4gIFRoZXJlZm9yZSwgQkdQIGltcGxlbWVudGF0aW9ucyBt dXN0IHN1cHBvcnQgbG9hZA0KISAgICBzaGFyaW5nIG92ZXIgdGhlIGFib3ZlLW1lbnRpb25lZCBw YXRocy4gIFRoaXMgZmVhdHVyZSBpcyBzb21ldGltZXMgDQprbm93bg0KICAgICBhcyAibXVsdGlw YXRoIHJlbGF4IiBvciAibXVsdGlwYXRoIG11bHRpcGxlLWFzIiBhbmQgZWZmZWN0aXZlbHkNCiAg ICAgYWxsb3dzIGZvciBFQ01QIHRvIGJlIGRvbmUgYWNyb3NzIGRpZmZlcmVudCBuZWlnaGJvcmlu ZyBBU05zIGlmIGFsbA0KICAgICBvdGhlciBhdHRyaWJ1dGVzIGFyZSBlcXVhbCBhcyBhbHJlYWR5 IGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMNCioqKioqKioqKioqKioqKg0KKioqIDExODIsMTE5 OSAqKioqDQogIA0KICAgICBJdCBpcyBvZnRlbiBkZXNpcmFibGUgdG8gaGF2ZSB0aGUgaGFzaGlu ZyBmdW5jdGlvbiB1c2VkIGZvciBFQ01QIHRvDQogICAgIGJlIGNvbnNpc3RlbnQgKHNlZSBbQ09O Uy1IQVNIXSksIHRvIG1pbmltaXplIHRoZSBpbXBhY3Qgb24gZmxvdyB0bw0KISAgICBuZXh0LWhv cCBhZmZpbml0eSBjaGFuZ2VzIHdoZW4gYSBuZXh0LWhvcCBpcyBhZGRlZCBvciByZW1vdmVkIHRv IEVDTVANCiAgICAgZ3JvdXAuICBUaGlzIGNvdWxkIGJlIHVzZWQgaWYgdGhlIG5ldHdvcmsgZGV2 aWNlIGlzIHVzZWQgYXMgYSBsb2FkDQogICAgIGJhbGFuY2VyLCBtYXBwaW5nIGZsb3dzIHRvd2Fy ZCBtdWx0aXBsZSBkZXN0aW5hdGlvbnMgLSBpbiB0aGlzIGNhc2UsDQohICAgIGxvc2luZyBvciBh ZGRpbmcgYSBkZXN0aW5hdGlvbiB3aWxsIG5vdCBoYXZlIGRldHJpbWVudGFsIGVmZmVjdCBvZg0K ICAgICBjdXJyZW50bHkgZXN0YWJsaXNoZWQgZmxvd3MuICBPbmUgcGFydGljdWxhciByZWNvbW1l bmRhdGlvbiBvbg0KICAgICBpbXBsZW1lbnRpbmcgY29uc2lzdGVudCBoYXNoaW5nIGlzIHByb3Zp ZGVkIGluIFtSRkMyOTkyXSwgdGhvdWdoDQogICAgIG90aGVyIGltcGxlbWVudGF0aW9ucyBhcmUg cG9zc2libGUuICBUaGlzIGZ1bmN0aW9uYWxpdHkgY291bGQgYmUNCiAgICAgbmF0dXJhbGx5IGNv bWJpbmVkIHdpdGggd2VpZ2h0ZWQgRUNNUCwgd2l0aCB0aGUgaW1wYWN0IG9mIHRoZSBuZXh0LQ0K ICAgICBob3AgY2hhbmdlcyBiZWluZyBwcm9wb3J0aW9uYWwgdG8gdGhlIHdlaWdodCBvZiB0aGUg Z2l2ZW4gbmV4dC1ob3AuDQogICAgIFRoZSBkb3duc2lkZSBvZiBjb25zaXN0ZW50IGhhc2hpbmcg aXMgaW5jcmVhc2VkIGxvYWQgb24gaGFyZHdhcmUNCiEgICAgcmVzb3VyY2UgdXRpbGl6YXRpb24s IGFzIHR5cGljYWxseSBtb3JlIHNwYWNlIGlzIHJlcXVpcmVkIHRvDQohICAgIGltcGxlbWVudCBh IGNvbnNpc3RlbnQtaGFzaGluZyByZWdpb24uDQogIA0KICA3LiAgUm91dGluZyBDb252ZXJnZW5j ZSBQcm9wZXJ0aWVzDQogIA0KLS0tIDExODIsMTE5OSAtLS0tDQogIA0KICAgICBJdCBpcyBvZnRl biBkZXNpcmFibGUgdG8gaGF2ZSB0aGUgaGFzaGluZyBmdW5jdGlvbiB1c2VkIGZvciBFQ01QIHRv DQogICAgIGJlIGNvbnNpc3RlbnQgKHNlZSBbQ09OUy1IQVNIXSksIHRvIG1pbmltaXplIHRoZSBp bXBhY3Qgb24gZmxvdyB0bw0KISAgICBuZXh0LWhvcCBhZmZpbml0eSBjaGFuZ2VzIHdoZW4gYSBu ZXh0LWhvcCBpcyBhZGRlZCBvciByZW1vdmVkIHRvIGFuIA0KRUNNUA0KICAgICBncm91cC4gIFRo aXMgY291bGQgYmUgdXNlZCBpZiB0aGUgbmV0d29yayBkZXZpY2UgaXMgdXNlZCBhcyBhIGxvYWQN CiAgICAgYmFsYW5jZXIsIG1hcHBpbmcgZmxvd3MgdG93YXJkIG11bHRpcGxlIGRlc3RpbmF0aW9u cyAtIGluIHRoaXMgY2FzZSwNCiEgICAgbG9zaW5nIG9yIGFkZGluZyBhIGRlc3RpbmF0aW9uIHdp bGwgbm90IGhhdmUgYSBkZXRyaW1lbnRhbCBlZmZlY3Qgb24NCiAgICAgY3VycmVudGx5IGVzdGFi bGlzaGVkIGZsb3dzLiAgT25lIHBhcnRpY3VsYXIgcmVjb21tZW5kYXRpb24gb24NCiAgICAgaW1w bGVtZW50aW5nIGNvbnNpc3RlbnQgaGFzaGluZyBpcyBwcm92aWRlZCBpbiBbUkZDMjk5Ml0sIHRo b3VnaA0KICAgICBvdGhlciBpbXBsZW1lbnRhdGlvbnMgYXJlIHBvc3NpYmxlLiAgVGhpcyBmdW5j dGlvbmFsaXR5IGNvdWxkIGJlDQogICAgIG5hdHVyYWxseSBjb21iaW5lZCB3aXRoIHdlaWdodGVk IEVDTVAsIHdpdGggdGhlIGltcGFjdCBvZiB0aGUgbmV4dC0NCiAgICAgaG9wIGNoYW5nZXMgYmVp bmcgcHJvcG9ydGlvbmFsIHRvIHRoZSB3ZWlnaHQgb2YgdGhlIGdpdmVuIG5leHQtaG9wLg0KICAg ICBUaGUgZG93bnNpZGUgb2YgY29uc2lzdGVudCBoYXNoaW5nIGlzIGluY3JlYXNlZCBsb2FkIG9u IGhhcmR3YXJlDQohICAgIHJlc291cmNlIHV0aWxpemF0aW9uLCBhcyB0eXBpY2FsbHkgbW9yZSBy ZXNvdXJjZXMgKGUuZy4sIFRDQU0gc3BhY2UpDQohICAgIGFyZSByZXF1aXJlZCB0byBpbXBsZW1l bnQgYSBjb25zaXN0ZW50LWhhc2hpbmcgZnVuY3Rpb24uDQogIA0KICA3LiAgUm91dGluZyBDb252 ZXJnZW5jZSBQcm9wZXJ0aWVzDQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTIwOSwxMjI0ICoq KioNCiAgICAgZHJpdmVuIG1lY2hhbmlzbSB0byBvYnRhaW4gdXBkYXRlcyBvbiBJR1Agc3RhdGUg Y2hhbmdlcy4gIFRoZQ0KICAgICBwcm9wb3NlZCByb3V0aW5nIGRlc2lnbiBkb2VzIG5vdCB1c2Ug YW4gSUdQLCBzbyB0aGUgcmVtYWluaW5nDQogICAgIG1lY2hhbmlzbXMgdGhhdCBjb3VsZCBiZSB1 c2VkIGZvciBmYXVsdCBkZXRlY3Rpb24gYXJlIEJHUCBrZWVwLWFsaXZlDQohICAgIHByb2Nlc3Mg KG9yIGFueSBvdGhlciB0eXBlIG9mIGtlZXAtYWxpdmUgbWVjaGFuaXNtKSBhbmQgbGluay1mYWls dXJlDQogICAgIHRyaWdnZXJzLg0KICANCiAgICAgUmVseWluZyBzb2xlbHkgb24gQkdQIGtlZXAt YWxpdmUgcGFja2V0cyBtYXkgcmVzdWx0IGluIGhpZ2gNCiEgICAgY29udmVyZ2VuY2UgZGVsYXlz LCBpbiB0aGUgb3JkZXIgb2YgbXVsdGlwbGUgc2Vjb25kcyAob24gbWFueSBCR1ANCiAgICAgaW1w bGVtZW50YXRpb25zIHRoZSBtaW5pbXVtIGNvbmZpZ3VyYWJsZSBCR1AgaG9sZCB0aW1lciB2YWx1 ZSBpcw0KICAgICB0aHJlZSBzZWNvbmRzKS4gIEhvd2V2ZXIsIG1hbnkgQkdQIGltcGxlbWVudGF0 aW9ucyBjYW4gc2h1dCBkb3duDQogICAgIGxvY2FsIEVCR1AgcGVlcmluZyBzZXNzaW9ucyBpbiBy ZXNwb25zZSB0byB0aGUgImxpbmsgZG93biIgZXZlbnQgZm9yDQogICAgIHRoZSBvdXRnb2luZyBp bnRlcmZhY2UgdXNlZCBmb3IgQkdQIHBlZXJpbmcuICBUaGlzIGZlYXR1cmUgaXMNCiEgICAgc29t ZXRpbWVzIGNhbGxlZCBhcyAiZmFzdCBmYWxsb3ZlciIuICBTaW5jZSBsaW5rcyBpbiBtb2Rlcm4g ZGF0YQ0KICAgICBjZW50ZXJzIGFyZSBwcmVkb21pbmFudGx5IHBvaW50LXRvLXBvaW50IGZpYmVy IGNvbm5lY3Rpb25zLCBhDQogICAgIHBoeXNpY2FsIGludGVyZmFjZSBmYWlsdXJlIGlzIG9mdGVu IGRldGVjdGVkIGluIG1pbGxpc2Vjb25kcyBhbmQNCiAgICAgc3Vic2VxdWVudGx5IHRyaWdnZXJz IGEgQkdQIHJlLWNvbnZlcmdlbmNlLg0KLS0tIDEyMDksMTIyNCAtLS0tDQogICAgIGRyaXZlbiBt ZWNoYW5pc20gdG8gb2J0YWluIHVwZGF0ZXMgb24gSUdQIHN0YXRlIGNoYW5nZXMuICBUaGUNCiAg ICAgcHJvcG9zZWQgcm91dGluZyBkZXNpZ24gZG9lcyBub3QgdXNlIGFuIElHUCwgc28gdGhlIHJl bWFpbmluZw0KICAgICBtZWNoYW5pc21zIHRoYXQgY291bGQgYmUgdXNlZCBmb3IgZmF1bHQgZGV0 ZWN0aW9uIGFyZSBCR1Aga2VlcC1hbGl2ZQ0KISAgICB0aW1lLW91dCAob3IgYW55IG90aGVyIHR5 cGUgb2Yga2VlcC1hbGl2ZSBtZWNoYW5pc20pIGFuZCBsaW5rLWZhaWx1cmUNCiAgICAgdHJpZ2dl cnMuDQogIA0KICAgICBSZWx5aW5nIHNvbGVseSBvbiBCR1Aga2VlcC1hbGl2ZSBwYWNrZXRzIG1h eSByZXN1bHQgaW4gaGlnaA0KISAgICBjb252ZXJnZW5jZSBkZWxheXMsIG9uIHRoZSBvcmRlciBv ZiBtdWx0aXBsZSBzZWNvbmRzIChvbiBtYW55IEJHUA0KICAgICBpbXBsZW1lbnRhdGlvbnMgdGhl IG1pbmltdW0gY29uZmlndXJhYmxlIEJHUCBob2xkIHRpbWVyIHZhbHVlIGlzDQogICAgIHRocmVl IHNlY29uZHMpLiAgSG93ZXZlciwgbWFueSBCR1AgaW1wbGVtZW50YXRpb25zIGNhbiBzaHV0IGRv d24NCiAgICAgbG9jYWwgRUJHUCBwZWVyaW5nIHNlc3Npb25zIGluIHJlc3BvbnNlIHRvIHRoZSAi bGluayBkb3duIiBldmVudCBmb3INCiAgICAgdGhlIG91dGdvaW5nIGludGVyZmFjZSB1c2VkIGZv ciBCR1AgcGVlcmluZy4gIFRoaXMgZmVhdHVyZSBpcw0KISAgICBzb21ldGltZXMgY2FsbGVkICJm YXN0IGZhbGxvdmVyIi4gIFNpbmNlIGxpbmtzIGluIG1vZGVybiBkYXRhDQogICAgIGNlbnRlcnMg YXJlIHByZWRvbWluYW50bHkgcG9pbnQtdG8tcG9pbnQgZmliZXIgY29ubmVjdGlvbnMsIGENCiAg ICAgcGh5c2ljYWwgaW50ZXJmYWNlIGZhaWx1cmUgaXMgb2Z0ZW4gZGV0ZWN0ZWQgaW4gbWlsbGlz ZWNvbmRzIGFuZA0KICAgICBzdWJzZXF1ZW50bHkgdHJpZ2dlcnMgYSBCR1AgcmUtY29udmVyZ2Vu Y2UuDQoqKioqKioqKioqKioqKioNCioqKiAxMjM2LDEyNDIgKioqKg0KICANCiAgICAgQWx0ZXJu YXRpdmVseSwgc29tZSBwbGF0Zm9ybXMgbWF5IHN1cHBvcnQgQmlkaXJlY3Rpb25hbCBGb3J3YXJk aW5nDQogICAgIERldGVjdGlvbiAoQkZEKSBbUkZDNTg4MF0gdG8gYWxsb3cgZm9yIHN1Yi1zZWNv bmQgZmFpbHVyZSBkZXRlY3Rpb24NCiEgICAgYW5kIGZhdWx0IHNpZ25hbGluZyB0byB0aGUgQkdQ IHByb2Nlc3MuICBIb3dldmVyLCB1c2Ugb2YgZWl0aGVyIG9mDQogICAgIHRoZXNlIHByZXNlbnRz IGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzIHRvIHZlbmRvciBzb2Z0d2FyZSBhbmQNCiAgICAgcG9z c2libHkgaGFyZHdhcmUsIGFuZCBtYXkgY29udHJhZGljdCBSRVExLiAgVW50aWwgcmVjZW50bHkg d2l0aA0KICAgICBbUkZDNzEzMF0sIEJGRCBhbHNvIGRpZCBub3QgYWxsb3cgZGV0ZWN0aW9uIG9m IGEgc2luZ2xlIG1lbWJlciBsaW5rDQotLS0gMTIzNiwxMjQyIC0tLS0NCiAgDQogICAgIEFsdGVy bmF0aXZlbHksIHNvbWUgcGxhdGZvcm1zIG1heSBzdXBwb3J0IEJpZGlyZWN0aW9uYWwgRm9yd2Fy ZGluZw0KICAgICBEZXRlY3Rpb24gKEJGRCkgW1JGQzU4ODBdIHRvIGFsbG93IGZvciBzdWItc2Vj b25kIGZhaWx1cmUgZGV0ZWN0aW9uDQohICAgIGFuZCBmYXVsdCBzaWduYWxpbmcgdG8gdGhlIEJH UCBwcm9jZXNzLiAgSG93ZXZlciwgdGhlIHVzZSBvZiBlaXRoZXIgb2YNCiAgICAgdGhlc2UgcHJl c2VudHMgYWRkaXRpb25hbCByZXF1aXJlbWVudHMgdG8gdmVuZG9yIHNvZnR3YXJlIGFuZA0KICAg ICBwb3NzaWJseSBoYXJkd2FyZSwgYW5kIG1heSBjb250cmFkaWN0IFJFUTEuICBVbnRpbCByZWNl bnRseSB3aXRoDQogICAgIFtSRkM3MTMwXSwgQkZEIGFsc28gZGlkIG5vdCBhbGxvdyBkZXRlY3Rp b24gb2YgYSBzaW5nbGUgbWVtYmVyIGxpbmsNCioqKioqKioqKioqKioqKg0KKioqIDEyNDUsMTI1 MSAqKioqDQogIA0KICA3LjIuICBFdmVudCBQcm9wYWdhdGlvbiBUaW1pbmcNCiAgDQohICAgIElu IHRoZSBwcm9wb3NlZCBkZXNpZ24gdGhlIGltcGFjdCBvZiBCR1AgTWluaW11bSBSb3V0ZSBBZHZl cnRpc2VtZW50DQogICAgIEludGVydmFsIChNUkFJKSB0aW1lciAoU2VlIHNlY3Rpb24gOS4yLjEu MSBvZiBbUkZDNDI3MV0pIHNob3VsZCBiZQ0KICAgICBjb25zaWRlcmVkLiAgUGVyIHRoZSBzdGFu ZGFyZCBpdCBpcyByZXF1aXJlZCBmb3IgQkdQIGltcGxlbWVudGF0aW9ucw0KICAgICB0byBzcGFj ZSBvdXQgY29uc2VjdXRpdmUgQkdQIFVQREFURSBtZXNzYWdlcyBieSBhdCBsZWFzdCBNUkFJDQot LS0gMTI0NSwxMjUxIC0tLS0NCiAgDQogIDcuMi4gIEV2ZW50IFByb3BhZ2F0aW9uIFRpbWluZw0K ICANCiEgICAgSW4gdGhlIHByb3Bvc2VkIGRlc2lnbiB0aGUgaW1wYWN0IG9mIHRoZSBCR1AgTWlu aW11bSBSb3V0ZSANCkFkdmVydGlzZW1lbnQNCiAgICAgSW50ZXJ2YWwgKE1SQUkpIHRpbWVyIChT ZWUgc2VjdGlvbiA5LjIuMS4xIG9mIFtSRkM0MjcxXSkgc2hvdWxkIGJlDQogICAgIGNvbnNpZGVy ZWQuICBQZXIgdGhlIHN0YW5kYXJkIGl0IGlzIHJlcXVpcmVkIGZvciBCR1AgaW1wbGVtZW50YXRp b25zDQogICAgIHRvIHNwYWNlIG91dCBjb25zZWN1dGl2ZSBCR1AgVVBEQVRFIG1lc3NhZ2VzIGJ5 IGF0IGxlYXN0IE1SQUkNCioqKioqKioqKioqKioqKg0KKioqIDEyNTgsMTI3MCAqKioqDQogICAg IEluIGEgQ2xvcyB0b3BvbG9neSBlYWNoIEVCR1Agc3BlYWtlciB0eXBpY2FsbHkgaGFzIGVpdGhl ciBvbmUgcGF0aA0KICAgICAoVGllci0yIGRldmljZXMgZG9uJ3QgYWNjZXB0IHBhdGhzIGZyb20g b3RoZXIgVGllci0yIGluIHRoZSBzYW1lDQogICAgIGNsdXN0ZXIgZHVlIHRvIHNhbWUgQVNOKSBv ciBOIHBhdGhzIGZvciB0aGUgc2FtZSBwcmVmaXgsIHdoZXJlIE4gaXMgYQ0KISAgICBzaWduaWZp Y2FudGx5IGxhcmdlIG51bWJlciwgZS5nLiAgTj0zMiAodGhlIEVDTVAgZmFuLW91dCB0byB0aGUg bmV4dA0KICAgICBUaWVyKS4gIFRoZXJlZm9yZSwgaWYgYSBsaW5rIGZhaWxzIHRvIGFub3RoZXIg ZGV2aWNlIGZyb20gd2hpY2ggYQ0KISAgICBwYXRoIGlzIHJlY2VpdmVkIHRoZXJlIGlzIGVpdGhl ciBubyBiYWNrdXAgcGF0aCBhdCBhbGwgKGUuZy4gZnJvbQ0KICAgICBwZXJzcGVjdGl2ZSBvZiBh IFRpZXItMiBzd2l0Y2ggbG9zaW5nIGxpbmsgdG8gYSBUaWVyLTMgZGV2aWNlKSwgb3INCiEgICAg dGhlIGJhY2t1cCBpcyByZWFkaWx5IGF2YWlsYWJsZSBpbiBCR1AgTG9jLVJJQiAoZS5nLiBmcm9t IHBlcnNwZWN0aXZlDQogICAgIG9mIGEgVGllci0yIGRldmljZSBsb3NpbmcgbGluayB0byBhIFRp ZXItMSBzd2l0Y2gpLiAgSW4gdGhlIGZvcm1lcg0KISAgICBjYXNlLCB0aGUgQkdQIHdpdGhkcmF3 YWwgYW5ub3VuY2VtZW50IHdpbGwgcHJvcGFnYXRlIHVuLWRlbGF5ZWQgYW5kDQogICAgIHRyaWdn ZXIgcmUtY29udmVyZ2VuY2Ugb24gYWZmZWN0ZWQgZGV2aWNlcy4gIEluIHRoZSBsYXR0ZXIgY2Fz ZSwgdGhlDQogICAgIGJlc3QtcGF0aCB3aWxsIGJlIHJlLWV2YWx1YXRlZCBhbmQgdGhlIGxvY2Fs IEVDTVAgZ3JvdXAgY29ycmVzcG9uZGluZw0KICAgICB0byB0aGUgbmV3IG5leHQtaG9wIHNldCBj aGFuZ2VkLiAgSWYgdGhlIEJHUCBwYXRoIHdhcyB0aGUgYmVzdC1wYXRoDQotLS0gMTI1OCwxMjcw IC0tLS0NCiAgICAgSW4gYSBDbG9zIHRvcG9sb2d5IGVhY2ggRUJHUCBzcGVha2VyIHR5cGljYWxs eSBoYXMgZWl0aGVyIG9uZSBwYXRoDQogICAgIChUaWVyLTIgZGV2aWNlcyBkb24ndCBhY2NlcHQg cGF0aHMgZnJvbSBvdGhlciBUaWVyLTIgaW4gdGhlIHNhbWUNCiAgICAgY2x1c3RlciBkdWUgdG8g c2FtZSBBU04pIG9yIE4gcGF0aHMgZm9yIHRoZSBzYW1lIHByZWZpeCwgd2hlcmUgTiBpcyBhDQoh ICAgIHNpZ25pZmljYW50bHkgbGFyZ2UgbnVtYmVyLCBlLmcuLCAgTj0zMiAodGhlIEVDTVAgZmFu LW91dCB0byB0aGUgbmV4dA0KICAgICBUaWVyKS4gIFRoZXJlZm9yZSwgaWYgYSBsaW5rIGZhaWxz IHRvIGFub3RoZXIgZGV2aWNlIGZyb20gd2hpY2ggYQ0KISAgICBwYXRoIGlzIHJlY2VpdmVkIHRo ZXJlIGlzIGVpdGhlciBubyBiYWNrdXAgcGF0aCBhdCBhbGwgKGUuZy4sIGZyb20gdGhlDQogICAg IHBlcnNwZWN0aXZlIG9mIGEgVGllci0yIHN3aXRjaCBsb3NpbmcgbGluayB0byBhIFRpZXItMyBk ZXZpY2UpLCBvcg0KISAgICB0aGUgYmFja3VwIGlzIHJlYWRpbHkgYXZhaWxhYmxlIGluIEJHUCBM b2MtUklCIChlLmcuLCBmcm9tIHBlcnNwZWN0aXZlDQogICAgIG9mIGEgVGllci0yIGRldmljZSBs b3NpbmcgbGluayB0byBhIFRpZXItMSBzd2l0Y2gpLiAgSW4gdGhlIGZvcm1lcg0KISAgICBjYXNl LCB0aGUgQkdQIHdpdGhkcmF3YWwgYW5ub3VuY2VtZW50IHdpbGwgcHJvcGFnYXRlIHdpdGhvdXQg ZGVsYXkgYW5kDQogICAgIHRyaWdnZXIgcmUtY29udmVyZ2VuY2Ugb24gYWZmZWN0ZWQgZGV2aWNl cy4gIEluIHRoZSBsYXR0ZXIgY2FzZSwgdGhlDQogICAgIGJlc3QtcGF0aCB3aWxsIGJlIHJlLWV2 YWx1YXRlZCBhbmQgdGhlIGxvY2FsIEVDTVAgZ3JvdXAgY29ycmVzcG9uZGluZw0KICAgICB0byB0 aGUgbmV3IG5leHQtaG9wIHNldCBjaGFuZ2VkLiAgSWYgdGhlIEJHUCBwYXRoIHdhcyB0aGUgYmVz dC1wYXRoDQoqKioqKioqKioqKioqKioNCioqKiAxMjc5LDEyODUgKioqKg0KICAgICBzaXR1YXRp b24gd2hlbiBhIGxpbmsgYmV0d2VlbiBUaWVyLTMgYW5kIFRpZXItMiBkZXZpY2UgZmFpbHMsIHRo ZQ0KICAgICBUaWVyLTIgZGV2aWNlIHdpbGwgc2VuZCBCR1AgVVBEQVRFIG1lc3NhZ2VzIHRvIGFs bCB1cHN0cmVhbSBUaWVyLTENCiAgICAgZGV2aWNlcywgd2l0aGRyYXdpbmcgdGhlIGFmZmVjdGVk IHByZWZpeGVzLiAgVGhlIFRpZXItMSBkZXZpY2VzLCBpbg0KISAgICB0dXJuLCB3aWxsIHJlbGF5 IHRob3NlIG1lc3NhZ2VzIHRvIGFsbCBkb3duc3RyZWFtIFRpZXItMiBkZXZpY2VzDQogICAgIChl eGNlcHQgZm9yIHRoZSBvcmlnaW5hdG9yKS4gIFRpZXItMiBkZXZpY2VzIG90aGVyIHRoYW4gdGhl IG9uZQ0KICAgICBvcmlnaW5hdGluZyB0aGUgVVBEQVRFIHNob3VsZCB0aGVuIHdhaXQgZm9yIEFM TCB1cHN0cmVhbSBUaWVyLTENCiAgDQotLS0gMTI3OSwxMjg1IC0tLS0NCiAgICAgc2l0dWF0aW9u IHdoZW4gYSBsaW5rIGJldHdlZW4gVGllci0zIGFuZCBUaWVyLTIgZGV2aWNlIGZhaWxzLCB0aGUN CiAgICAgVGllci0yIGRldmljZSB3aWxsIHNlbmQgQkdQIFVQREFURSBtZXNzYWdlcyB0byBhbGwg dXBzdHJlYW0gVGllci0xDQogICAgIGRldmljZXMsIHdpdGhkcmF3aW5nIHRoZSBhZmZlY3RlZCBw cmVmaXhlcy4gIFRoZSBUaWVyLTEgZGV2aWNlcywgaW4NCiEgICAgdHVybiwgd2lsbCByZWxheSB0 aGVzZSBtZXNzYWdlcyB0byBhbGwgZG93bnN0cmVhbSBUaWVyLTIgZGV2aWNlcw0KICAgICAoZXhj ZXB0IGZvciB0aGUgb3JpZ2luYXRvcikuICBUaWVyLTIgZGV2aWNlcyBvdGhlciB0aGFuIHRoZSBv bmUNCiAgICAgb3JpZ2luYXRpbmcgdGhlIFVQREFURSBzaG91bGQgdGhlbiB3YWl0IGZvciBBTEwg dXBzdHJlYW0gVGllci0xDQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTMwNywxMzEzICoqKioN CiAgICAgZmVhdHVyZXMgdGhhdCB2ZW5kb3JzIGluY2x1ZGUgdG8gcmVkdWNlIHRoZSBjb250cm9s IHBsYW5lIGltcGFjdCBvZg0KICAgICByYXBpZGx5IGZsYXBwaW5nIHByZWZpeGVzLiAgSG93ZXZl ciwgZHVlIHRvIGlzc3VlcyBkZXNjcmliZWQgd2l0aA0KICAgICBmYWxzZSBwb3NpdGl2ZXMgaW4g dGhlc2UgaW1wbGVtZW50YXRpb25zIGVzcGVjaWFsbHkgdW5kZXIgc3VjaA0KISAgICAiZGlzcGVy c2lvbiIgZXZlbnRzLCBpdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gdHVybiB0aGlzIGZlYXR1cmUg b24gaW4NCiAgICAgdGhpcyBkZXNpZ24uICBNb3JlIGJhY2tncm91bmQgYW5kIGlzc3VlcyB3aXRo ICJyb3V0ZSBmbGFwIGRhbXBlbmluZyINCiAgICAgYW5kIHBvc3NpYmxlIGltcGxlbWVudGF0aW9u IGNoYW5nZXMgdGhhdCBjb3VsZCBhZmZlY3QgdGhpcyBhcmUgd2VsbA0KICAgICBkZXNjcmliZWQg aW4gW1JGQzcxOTZdLg0KLS0tIDEzMDcsMTMxMyAtLS0tDQogICAgIGZlYXR1cmVzIHRoYXQgdmVu ZG9ycyBpbmNsdWRlIHRvIHJlZHVjZSB0aGUgY29udHJvbCBwbGFuZSBpbXBhY3Qgb2YNCiAgICAg cmFwaWRseSBmbGFwcGluZyBwcmVmaXhlcy4gIEhvd2V2ZXIsIGR1ZSB0byBpc3N1ZXMgZGVzY3Jp YmVkIHdpdGgNCiAgICAgZmFsc2UgcG9zaXRpdmVzIGluIHRoZXNlIGltcGxlbWVudGF0aW9ucyBl c3BlY2lhbGx5IHVuZGVyIHN1Y2gNCiEgICAgImRpc3BlcnNpb24iIGV2ZW50cywgaXQgaXMgbm90 IHJlY29tbWVuZGVkIHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUgaW4NCiAgICAgdGhpcyBkZXNpZ24u ICBNb3JlIGJhY2tncm91bmQgYW5kIGlzc3VlcyB3aXRoICJyb3V0ZSBmbGFwIGRhbXBlbmluZyIN CiAgICAgYW5kIHBvc3NpYmxlIGltcGxlbWVudGF0aW9uIGNoYW5nZXMgdGhhdCBjb3VsZCBhZmZl Y3QgdGhpcyBhcmUgd2VsbA0KICAgICBkZXNjcmliZWQgaW4gW1JGQzcxOTZdLg0KKioqKioqKioq KioqKioqDQoqKiogMTMxNiwxMzI0ICoqKioNCiAgDQogICAgIEEgbmV0d29yayBpcyBkZWNsYXJl ZCB0byBjb252ZXJnZSBpbiByZXNwb25zZSB0byBhIGZhaWx1cmUgb25jZSBhbGwNCiAgICAgZGV2 aWNlcyB3aXRoaW4gdGhlIGZhaWx1cmUgaW1wYWN0IHNjb3BlIGFyZSBub3RpZmllZCBvZiB0aGUg ZXZlbnQgYW5kDQohICAgIGhhdmUgcmUtY2FsY3VsYXRlZCB0aGVpciBSSUIncyBhbmQgY29uc2Vx dWVudGx5IHVwZGF0ZWQgdGhlaXIgRklCJ3MuDQogICAgIExhcmdlciBmYWlsdXJlIGltcGFjdCBz Y29wZSB0eXBpY2FsbHkgbWVhbnMgc2xvd2VyIGNvbnZlcmdlbmNlIHNpbmNlDQohICAgIG1vcmUg ZGV2aWNlcyBoYXZlIHRvIGJlIG5vdGlmaWVkLCBhbmQgYWRkaXRpb25hbGx5IHJlc3VsdHMgaW4g YSBsZXNzDQogICAgIHN0YWJsZSBuZXR3b3JrLiAgSW4gdGhpcyBzZWN0aW9uIHdlIGRlc2NyaWJl IEJHUCdzIGFkdmFudGFnZXMgb3Zlcg0KICAgICBsaW5rLXN0YXRlIHJvdXRpbmcgcHJvdG9jb2xz IGluIHJlZHVjaW5nIGZhaWx1cmUgaW1wYWN0IHNjb3BlIGZvciBhDQogICAgIENsb3MgdG9wb2xv Z3kuDQotLS0gMTMxNiwxMzI0IC0tLS0NCiAgDQogICAgIEEgbmV0d29yayBpcyBkZWNsYXJlZCB0 byBjb252ZXJnZSBpbiByZXNwb25zZSB0byBhIGZhaWx1cmUgb25jZSBhbGwNCiAgICAgZGV2aWNl cyB3aXRoaW4gdGhlIGZhaWx1cmUgaW1wYWN0IHNjb3BlIGFyZSBub3RpZmllZCBvZiB0aGUgZXZl bnQgYW5kDQohICAgIGhhdmUgcmUtY2FsY3VsYXRlZCB0aGVpciBSSUJzIGFuZCBjb25zZXF1ZW50 bHkgdXBkYXRlZCB0aGVpciBGSUJzLg0KICAgICBMYXJnZXIgZmFpbHVyZSBpbXBhY3Qgc2NvcGUg dHlwaWNhbGx5IG1lYW5zIHNsb3dlciBjb252ZXJnZW5jZSBzaW5jZQ0KISAgICBtb3JlIGRldmlj ZXMgaGF2ZSB0byBiZSBub3RpZmllZCwgYW5kIHJlc3VsdHMgaW4gYSBsZXNzDQogICAgIHN0YWJs ZSBuZXR3b3JrLiAgSW4gdGhpcyBzZWN0aW9uIHdlIGRlc2NyaWJlIEJHUCdzIGFkdmFudGFnZXMg b3Zlcg0KICAgICBsaW5rLXN0YXRlIHJvdXRpbmcgcHJvdG9jb2xzIGluIHJlZHVjaW5nIGZhaWx1 cmUgaW1wYWN0IHNjb3BlIGZvciBhDQogICAgIENsb3MgdG9wb2xvZ3kuDQoqKioqKioqKioqKioq KioNCioqKiAxMzI3LDEzMzUgKioqKg0KICAgICB0aGUgYmVzdCBwYXRoIGZyb20gdGhlIHBvaW50 IG9mIHZpZXcgb2YgdGhlIGxvY2FsIHJvdXRlciBpcyBzZW50IHRvDQogICAgIG5laWdoYm9ycy4g IEFzIHN1Y2gsIHNvbWUgZmFpbHVyZXMgYXJlIG1hc2tlZCBpZiB0aGUgbG9jYWwgbm9kZSBjYW4N CiAgICAgaW1tZWRpYXRlbHkgZmluZCBhIGJhY2t1cCBwYXRoIGFuZCBkb2VzIG5vdCBoYXZlIHRv IHNlbmQgYW55IHVwZGF0ZXMNCiEgICAgZnVydGhlci4gIE5vdGljZSB0aGF0IGluIHRoZSB3b3Jz dCBjYXNlIEFMTCBkZXZpY2VzIGluIGEgZGF0YSBjZW50ZXINCiAgICAgdG9wb2xvZ3kgaGF2ZSB0 byBlaXRoZXIgd2l0aGRyYXcgYSBwcmVmaXggY29tcGxldGVseSBvciB1cGRhdGUgdGhlDQohICAg IEVDTVAgZ3JvdXBzIGluIHRoZSBGSUIuICBIb3dldmVyLCBtYW55IGZhaWx1cmVzIHdpbGwgbm90 IHJlc3VsdCBpbg0KICAgICBzdWNoIGEgd2lkZSBpbXBhY3QuICBUaGVyZSBhcmUgdHdvIG1haW4g ZmFpbHVyZSB0eXBlcyB3aGVyZSBpbXBhY3QNCiAgICAgc2NvcGUgaXMgcmVkdWNlZDoNCiAgDQot LS0gMTMyNywxMzM1IC0tLS0NCiAgICAgdGhlIGJlc3QgcGF0aCBmcm9tIHRoZSBwb2ludCBvZiB2 aWV3IG9mIHRoZSBsb2NhbCByb3V0ZXIgaXMgc2VudCB0bw0KICAgICBuZWlnaGJvcnMuICBBcyBz dWNoLCBzb21lIGZhaWx1cmVzIGFyZSBtYXNrZWQgaWYgdGhlIGxvY2FsIG5vZGUgY2FuDQogICAg IGltbWVkaWF0ZWx5IGZpbmQgYSBiYWNrdXAgcGF0aCBhbmQgZG9lcyBub3QgaGF2ZSB0byBzZW5k IGFueSB1cGRhdGVzDQohICAgIGZ1cnRoZXIuICBOb3RpY2UgdGhhdCBpbiB0aGUgd29yc3QgY2Fz ZSwgYWxsIGRldmljZXMgaW4gYSBkYXRhIGNlbnRlcg0KICAgICB0b3BvbG9neSBoYXZlIHRvIGVp dGhlciB3aXRoZHJhdyBhIHByZWZpeCBjb21wbGV0ZWx5IG9yIHVwZGF0ZSB0aGUNCiEgICAgRUNN UCBncm91cHMgaW4gdGhlaXIgRklCcy4gIEhvd2V2ZXIsIG1hbnkgZmFpbHVyZXMgd2lsbCBub3Qg cmVzdWx0IGluDQogICAgIHN1Y2ggYSB3aWRlIGltcGFjdC4gIFRoZXJlIGFyZSB0d28gbWFpbiBm YWlsdXJlIHR5cGVzIHdoZXJlIGltcGFjdA0KICAgICBzY29wZSBpcyByZWR1Y2VkOg0KICANCioq KioqKioqKioqKioqKg0KKioqIDEzNTcsMTM2NyAqKioqDQogIA0KICAgICBvICBGYWlsdXJlIG9m IGEgVGllci0xIGRldmljZTogSW4gdGhpcyBjYXNlLCBhbGwgVGllci0yIGRldmljZXMNCiAgICAg ICAgZGlyZWN0bHkgYXR0YWNoZWQgdG8gdGhlIGZhaWxlZCBub2RlIHdpbGwgaGF2ZSB0byB1cGRh dGUgdGhlaXINCiEgICAgICAgRUNNUCBncm91cHMgZm9yIGFsbCBJUCBwcmVmaXhlcyBmcm9tIG5v bi1sb2NhbCBjbHVzdGVyLiAgVGhlDQogICAgICAgIFRpZXItMyBkZXZpY2VzIGFyZSBvbmNlIGFn YWluIG5vdCBpbnZvbHZlZCBpbiB0aGUgcmUtY29udmVyZ2VuY2UNCiAgICAgICAgcHJvY2Vzcywg YnV0IG1heSByZWNlaXZlICJpbXBsaWNpdCB3aXRoZHJhd3MiIGFzIGRlc2NyaWJlZCBhYm92ZS4N CiAgDQohICAgIEV2ZW4gdGhvdWdoIGluIGNhc2Ugb2Ygc3VjaCBmYWlsdXJlcyBtdWx0aXBsZSBJ UCBwcmVmaXhlcyB3aWxsIGhhdmUNCiAgICAgdG8gYmUgcmVwcm9ncmFtbWVkIGluIHRoZSBGSUIs IGl0IGlzIHdvcnRoIG5vdGluZyB0aGF0IEFMTCBvZiB0aGVzZQ0KICAgICBwcmVmaXhlcyBzaGFy ZSBhIHNpbmdsZSBFQ01QIGdyb3VwIG9uIFRpZXItMiBkZXZpY2UuICBUaGVyZWZvcmUsIGluDQog ICAgIHRoZSBjYXNlIG9mIGltcGxlbWVudGF0aW9ucyB3aXRoIGEgaGllcmFyY2hpY2FsIEZJQiwg b25seSBhIHNpbmdsZQ0KLS0tIDEzNTcsMTM2NyAtLS0tDQogIA0KICAgICBvICBGYWlsdXJlIG9m IGEgVGllci0xIGRldmljZTogSW4gdGhpcyBjYXNlLCBhbGwgVGllci0yIGRldmljZXMNCiAgICAg ICAgZGlyZWN0bHkgYXR0YWNoZWQgdG8gdGhlIGZhaWxlZCBub2RlIHdpbGwgaGF2ZSB0byB1cGRh dGUgdGhlaXINCiEgICAgICAgRUNNUCBncm91cHMgZm9yIGFsbCBJUCBwcmVmaXhlcyBmcm9tIGEg bm9uLWxvY2FsIGNsdXN0ZXIuICBUaGUNCiAgICAgICAgVGllci0zIGRldmljZXMgYXJlIG9uY2Ug YWdhaW4gbm90IGludm9sdmVkIGluIHRoZSByZS1jb252ZXJnZW5jZQ0KICAgICAgICBwcm9jZXNz LCBidXQgbWF5IHJlY2VpdmUgImltcGxpY2l0IHdpdGhkcmF3cyIgYXMgZGVzY3JpYmVkIGFib3Zl Lg0KICANCiEgICAgRXZlbiBpbiB0aGUgY2FzZSBvZiBzdWNoIGZhaWx1cmVzLCBtdWx0aXBsZSBJ UCBwcmVmaXhlcyB3aWxsIGhhdmUNCiAgICAgdG8gYmUgcmVwcm9ncmFtbWVkIGluIHRoZSBGSUIs IGl0IGlzIHdvcnRoIG5vdGluZyB0aGF0IEFMTCBvZiB0aGVzZQ0KICAgICBwcmVmaXhlcyBzaGFy ZSBhIHNpbmdsZSBFQ01QIGdyb3VwIG9uIFRpZXItMiBkZXZpY2UuICBUaGVyZWZvcmUsIGluDQog ICAgIHRoZSBjYXNlIG9mIGltcGxlbWVudGF0aW9ucyB3aXRoIGEgaGllcmFyY2hpY2FsIEZJQiwg b25seSBhIHNpbmdsZQ0KKioqKioqKioqKioqKioqDQoqKiogMTM3NSwxMzgxICoqKioNCiAgICAg cG9zc2libGUgd2l0aCB0aGUgcHJvcG9zZWQgZGVzaWduLCBzaW5jZSB1c2luZyB0aGlzIHRlY2hu aXF1ZSBtYXkNCiAgICAgY3JlYXRlIHJvdXRpbmcgYmxhY2staG9sZXMgYXMgbWVudGlvbmVkIHBy ZXZpb3VzbHkuICBUaGVyZWZvcmUsIHRoZQ0KICAgICB3b3JzdCBjb250cm9sIHBsYW5lIGZhaWx1 cmUgaW1wYWN0IHNjb3BlIGlzIHRoZSBuZXR3b3JrIGFzIGEgd2hvbGUsDQohICAgIGZvciBpbnN0 YW5jZSBpbiBhIGNhc2Ugb2YgYSBsaW5rIGZhaWx1cmUgYmV0d2VlbiBUaWVyLTIgYW5kIFRpZXIt Mw0KICAgICBkZXZpY2VzLiAgVGhlIGFtb3VudCBvZiBpbXBhY3RlZCBwcmVmaXhlcyBpbiB0aGlz IGNhc2Ugd291bGQgYmUgbXVjaA0KICAgICBsZXNzIHRoYW4gaW4gdGhlIGNhc2Ugb2YgYSBmYWls dXJlIGluIHRoZSB1cHBlciBsYXllcnMgb2YgYSBDbG9zDQogICAgIG5ldHdvcmsgdG9wb2xvZ3ku ICBUaGUgcHJvcGVydHkgb2YgaGF2aW5nIHN1Y2ggbGFyZ2UgZmFpbHVyZSBzY29wZSBpcw0KLS0t IDEzNzUsMTM4MSAtLS0tDQogICAgIHBvc3NpYmxlIHdpdGggdGhlIHByb3Bvc2VkIGRlc2lnbiwg c2luY2UgdXNpbmcgdGhpcyB0ZWNobmlxdWUgbWF5DQogICAgIGNyZWF0ZSByb3V0aW5nIGJsYWNr LWhvbGVzIGFzIG1lbnRpb25lZCBwcmV2aW91c2x5LiAgVGhlcmVmb3JlLCB0aGUNCiAgICAgd29y c3QgY29udHJvbCBwbGFuZSBmYWlsdXJlIGltcGFjdCBzY29wZSBpcyB0aGUgbmV0d29yayBhcyBh IHdob2xlLA0KISAgICBmb3IgaW5zdGFuY2UgaW4gdGhlY2FzZSBvZiBhIGxpbmsgZmFpbHVyZSBi ZXR3ZWVuIFRpZXItMiBhbmQgVGllci0zDQogICAgIGRldmljZXMuICBUaGUgYW1vdW50IG9mIGlt cGFjdGVkIHByZWZpeGVzIGluIHRoaXMgY2FzZSB3b3VsZCBiZSBtdWNoDQogICAgIGxlc3MgdGhh biBpbiB0aGUgY2FzZSBvZiBhIGZhaWx1cmUgaW4gdGhlIHVwcGVyIGxheWVycyBvZiBhIENsb3MN CiAgICAgbmV0d29yayB0b3BvbG9neS4gIFRoZSBwcm9wZXJ0eSBvZiBoYXZpbmcgc3VjaCBsYXJn ZSBmYWlsdXJlIHNjb3BlIGlzDQoqKioqKioqKioqKioqKioNCioqKiAxMzg0LDEzOTcgKioqKg0K ICANCiAgNy41LiAgUm91dGluZyBNaWNyby1Mb29wcw0KICANCiEgICAgV2hlbiBhIGRvd25zdHJl YW0gZGV2aWNlLCBlLmcuICBUaWVyLTIgZGV2aWNlLCBsb3NlcyBhbGwgcGF0aHMgZm9yIGENCiAg ICAgcHJlZml4LCBpdCBub3JtYWxseSBoYXMgdGhlIGRlZmF1bHQgcm91dGUgcG9pbnRpbmcgdG93 YXJkIHRoZQ0KICAgICB1cHN0cmVhbSBkZXZpY2UsIGluIHRoaXMgY2FzZSB0aGUgVGllci0xIGRl dmljZS4gIEFzIGEgcmVzdWx0LCBpdCBpcw0KISAgICBwb3NzaWJsZSB0byBnZXQgaW4gdGhlIHNp dHVhdGlvbiB3aGVuIFRpZXItMiBzd2l0Y2ggbG9zZXMgYSBwcmVmaXgsDQohICAgIGJ1dCBUaWVy LTEgc3dpdGNoIHN0aWxsIGhhcyB0aGUgcGF0aCBwb2ludGluZyB0byB0aGUgVGllci0yIGRldmlj ZSwNCiEgICAgd2hpY2ggcmVzdWx0cyBpbiB0cmFuc2llbnQgbWljcm8tbG9vcCwgc2luY2UgVGll ci0xIHN3aXRjaCB3aWxsIGtlZXANCiAgICAgcGFzc2luZyBwYWNrZXRzIHRvIHRoZSBhZmZlY3Rl ZCBwcmVmaXggYmFjayB0byBUaWVyLTIgZGV2aWNlLCBhbmQNCiEgICAgVGllci0yIHdpbGwgYm91 bmNlIGl0IGJhY2sgYWdhaW4gdXNpbmcgdGhlIGRlZmF1bHQgcm91dGUuICBUaGlzDQogICAgIG1p Y3JvLWxvb3Agd2lsbCBsYXN0IGZvciB0aGUgZHVyYXRpb24gb2YgdGltZSBpdCB0YWtlcyB0aGUg dXBzdHJlYW0NCiAgICAgZGV2aWNlIHRvIGZ1bGx5IHVwZGF0ZSBpdHMgZm9yd2FyZGluZyB0YWJs ZXMuDQogIA0KLS0tIDEzODQsMTM5NyAtLS0tDQogIA0KICA3LjUuICBSb3V0aW5nIE1pY3JvLUxv b3BzDQogIA0KISAgICBXaGVuIGEgZG93bnN0cmVhbSBkZXZpY2UsIGUuZy4sICBUaWVyLTIgZGV2 aWNlLCBsb3NlcyBhbGwgcGF0aHMgZm9yIGENCiAgICAgcHJlZml4LCBpdCBub3JtYWxseSBoYXMg dGhlIGRlZmF1bHQgcm91dGUgcG9pbnRpbmcgdG93YXJkIHRoZQ0KICAgICB1cHN0cmVhbSBkZXZp Y2UsIGluIHRoaXMgY2FzZSB0aGUgVGllci0xIGRldmljZS4gIEFzIGEgcmVzdWx0LCBpdCBpcw0K ISAgICBwb3NzaWJsZSB0byBnZXQgaW4gdGhlIHNpdHVhdGlvbiB3aGVyZSBhIFRpZXItMiBzd2l0 Y2ggbG9zZXMgYSBwcmVmaXgsDQohICAgIGJ1dCBhIFRpZXItMSBzd2l0Y2ggc3RpbGwgaGFzIHRo ZSBwYXRoIHBvaW50aW5nIHRvIHRoZSBUaWVyLTIgZGV2aWNlLA0KISAgICB3aGljaCByZXN1bHRz IGluIHRyYW5zaWVudCBtaWNyby1sb29wLCBzaW5jZSB0aGUgVGllci0xIHN3aXRjaCB3aWxsIA0K a2VlcA0KICAgICBwYXNzaW5nIHBhY2tldHMgdG8gdGhlIGFmZmVjdGVkIHByZWZpeCBiYWNrIHRv IFRpZXItMiBkZXZpY2UsIGFuZA0KISAgICB0aGUgVGllci0yIHdpbGwgYm91bmNlIGl0IGJhY2sg YWdhaW4gdXNpbmcgdGhlIGRlZmF1bHQgcm91dGUuICBUaGlzDQogICAgIG1pY3JvLWxvb3Agd2ls bCBsYXN0IGZvciB0aGUgZHVyYXRpb24gb2YgdGltZSBpdCB0YWtlcyB0aGUgdXBzdHJlYW0NCiAg ICAgZGV2aWNlIHRvIGZ1bGx5IHVwZGF0ZSBpdHMgZm9yd2FyZGluZyB0YWJsZXMuDQogIA0KKioq KioqKioqKioqKioqDQoqKiogMTQwMiwxNDA4ICoqKioNCiAgSW50ZXJuZXQtRHJhZnQgICAgZHJh ZnQtaWV0Zi1ydGd3Zy1iZ3Atcm91dGluZy1sYXJnZS1kYyAgICAgICBNYXJjaCAyMDE2DQogIA0K ICANCiEgICAgVG8gbWluaW1pemUgaW1wYWN0IG9mIHRoZSBtaWNyby1sb29wcywgVGllci0yIGFu ZCBUaWVyLTEgc3dpdGNoZXMgY2FuDQogICAgIGJlIGNvbmZpZ3VyZWQgd2l0aCBzdGF0aWMgImRp c2NhcmQiIG9yICJudWxsIiByb3V0ZXMgdGhhdCB3aWxsIGJlDQogICAgIG1vcmUgc3BlY2lmaWMg dGhhbiB0aGUgZGVmYXVsdCByb3V0ZSBmb3IgcHJlZml4ZXMgbWlzc2luZyBkdXJpbmcNCiAgICAg bmV0d29yayBjb252ZXJnZW5jZS4gIEZvciBUaWVyLTIgc3dpdGNoZXMsIHRoZSBkaXNjYXJkIHJv dXRlIHNob3VsZA0KLS0tIDE0MDIsMTQwOCAtLS0tDQogIEludGVybmV0LURyYWZ0ICAgIGRyYWZ0 LWlldGYtcnRnd2ctYmdwLXJvdXRpbmctbGFyZ2UtZGMgICAgICAgTWFyY2ggMjAxNg0KICANCiAg DQohICAgIFRvIG1pbmltaXplIHRoZSBpbXBhY3Qgb2Ygc3VjaCBtaWNyby1sb29wcywgVGllci0y IGFuZCBUaWVyLTEgDQpzd2l0Y2hlcyBjYW4NCiAgICAgYmUgY29uZmlndXJlZCB3aXRoIHN0YXRp YyAiZGlzY2FyZCIgb3IgIm51bGwiIHJvdXRlcyB0aGF0IHdpbGwgYmUNCiAgICAgbW9yZSBzcGVj aWZpYyB0aGFuIHRoZSBkZWZhdWx0IHJvdXRlIGZvciBwcmVmaXhlcyBtaXNzaW5nIGR1cmluZw0K ICAgICBuZXR3b3JrIGNvbnZlcmdlbmNlLiAgRm9yIFRpZXItMiBzd2l0Y2hlcywgdGhlIGRpc2Nh cmQgcm91dGUgc2hvdWxkDQoqKioqKioqKioqKioqKioNCioqKiAxNDE3LDE0MjMgKioqKg0KICAN CiAgOC4xLiAgVGhpcmQtcGFydHkgUm91dGUgSW5qZWN0aW9uDQogIA0KISAgICBCR1AgYWxsb3dz IGZvciBhICJ0aGlyZC1wYXJ0eSIsIGkuZS4gZGlyZWN0bHkgYXR0YWNoZWQsIEJHUCBzcGVha2Vy DQogICAgIHRvIGluamVjdCByb3V0ZXMgYW55d2hlcmUgaW4gdGhlIG5ldHdvcmsgdG9wb2xvZ3ks IG1lZXRpbmcgUkVRNS4NCiAgICAgVGhpcyBjYW4gYmUgYWNoaWV2ZWQgYnkgcGVlcmluZyB2aWEg YSBtdWx0aWhvcCBCR1Agc2Vzc2lvbiB3aXRoIHNvbWUNCiAgICAgb3IgZXZlbiBhbGwgZGV2aWNl cyBpbiB0aGUgdG9wb2xvZ3kuICBGdXJ0aGVybW9yZSwgQkdQIGRpdmVyc2UgcGF0aA0KLS0tIDE0 MTcsMTQyMyAtLS0tDQogIA0KICA4LjEuICBUaGlyZC1wYXJ0eSBSb3V0ZSBJbmplY3Rpb24NCiAg DQohICAgIEJHUCBhbGxvd3MgZm9yIGEgInRoaXJkLXBhcnR5IiwgaS5lLiwgZGlyZWN0bHkgYXR0 YWNoZWQsIEJHUCBzcGVha2VyDQogICAgIHRvIGluamVjdCByb3V0ZXMgYW55d2hlcmUgaW4gdGhl IG5ldHdvcmsgdG9wb2xvZ3ksIG1lZXRpbmcgUkVRNS4NCiAgICAgVGhpcyBjYW4gYmUgYWNoaWV2 ZWQgYnkgcGVlcmluZyB2aWEgYSBtdWx0aWhvcCBCR1Agc2Vzc2lvbiB3aXRoIHNvbWUNCiAgICAg b3IgZXZlbiBhbGwgZGV2aWNlcyBpbiB0aGUgdG9wb2xvZ3kuICBGdXJ0aGVybW9yZSwgQkdQIGRp dmVyc2UgcGF0aA0KKioqKioqKioqKioqKioqDQoqKiogMTQyNywxNDMzICoqKioNCiAgICAgaW1w bGVtZW50YXRpb24uICBVbmZvcnR1bmF0ZWx5LCBpbiBtYW55IGltcGxlbWVudGF0aW9ucyBBREQt UEFUSCBoYXMNCiAgICAgYmVlbiBmb3VuZCB0byBvbmx5IHN1cHBvcnQgSUJHUCBwcm9wZXJseSBk dWUgdG8gdGhlIHVzZSBjYXNlcyBpdCB3YXMNCiAgICAgb3JpZ2luYWxseSBvcHRpbWl6ZWQgZm9y LCB3aGljaCBsaW1pdHMgdGhlICJ0aGlyZC1wYXJ0eSIgcGVlcmluZyB0bw0KISAgICBJQkdQIG9u bHksIGlmIHRoZSBmZWF0dXJlIGlzIHVzZWQuDQogIA0KICAgICBUbyBpbXBsZW1lbnQgcm91dGUg aW5qZWN0aW9uIGluIHRoZSBwcm9wb3NlZCBkZXNpZ24sIGEgdGhpcmQtcGFydHkNCiAgICAgQkdQ IHNwZWFrZXIgbWF5IHBlZXIgd2l0aCBUaWVyLTMgYW5kIFRpZXItMSBzd2l0Y2hlcywgaW5qZWN0 aW5nIHRoZQ0KLS0tIDE0MjcsMTQzMyAtLS0tDQogICAgIGltcGxlbWVudGF0aW9uLiAgVW5mb3J0 dW5hdGVseSwgaW4gbWFueSBpbXBsZW1lbnRhdGlvbnMgQURELVBBVEggaGFzDQogICAgIGJlZW4g Zm91bmQgdG8gb25seSBzdXBwb3J0IElCR1AgcHJvcGVybHkgZHVlIHRvIHRoZSB1c2UgY2FzZXMg aXQgd2FzDQogICAgIG9yaWdpbmFsbHkgb3B0aW1pemVkIGZvciwgd2hpY2ggbGltaXRzIHRoZSAi dGhpcmQtcGFydHkiIHBlZXJpbmcgdG8NCiEgICAgSUJHUCBvbmx5Lg0KICANCiAgICAgVG8gaW1w bGVtZW50IHJvdXRlIGluamVjdGlvbiBpbiB0aGUgcHJvcG9zZWQgZGVzaWduLCBhIHRoaXJkLXBh cnR5DQogICAgIEJHUCBzcGVha2VyIG1heSBwZWVyIHdpdGggVGllci0zIGFuZCBUaWVyLTEgc3dp dGNoZXMsIGluamVjdGluZyB0aGUNCioqKioqKioqKioqKioqKg0KKioqIDE0NDIsMTQ1MyAqKioq DQogICAgIEFzIG1lbnRpb25lZCBwcmV2aW91c2x5LCByb3V0ZSBzdW1tYXJpemF0aW9uIGlzIG5v dCBwb3NzaWJsZSB3aXRoaW4NCiAgICAgdGhlIHByb3Bvc2VkIENsb3MgdG9wb2xvZ3kgc2luY2Ug aXQgbWFrZXMgdGhlIG5ldHdvcmsgc3VzY2VwdGlibGUgdG8NCiAgICAgcm91dGUgYmxhY2staG9s aW5nIHVuZGVyIHNpbmdsZSBsaW5rIGZhaWx1cmVzLiAgVGhlIG1haW4gcHJvYmxlbSBpcw0KISAg ICB0aGUgbGltaXRlZCBudW1iZXIgb2YgcmVkdW5kYW50IHBhdGhzIGJldHdlZW4gbmV0d29yayBl bGVtZW50cywgZS5nLg0KICAgICB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhdGggYmV0d2VlbiBh bnkgcGFpciBvZiBUaWVyLTEgYW5kIFRpZXItMw0KICAgICBkZXZpY2VzLiAgSG93ZXZlciwgc29t ZSBvcGVyYXRvcnMgbWF5IGZpbmQgcm91dGUgYWdncmVnYXRpb24NCiAgICAgZGVzaXJhYmxlIHRv IGltcHJvdmUgY29udHJvbCBwbGFuZSBzdGFiaWxpdHkuDQogIA0KISAgICBJZiBwbGFubmluZyBv biB1c2luZyBhbnkgdGVjaG5pcXVlIHRvIHN1bW1hcml6ZSB3aXRoaW4gdGhlIHRvcG9sb2d5DQog ICAgIG1vZGVsaW5nIG9mIHRoZSByb3V0aW5nIGJlaGF2aW9yIGFuZCBwb3RlbnRpYWwgZm9yIGJs YWNrLWhvbGluZw0KICAgICBzaG91bGQgYmUgZG9uZSBub3Qgb25seSBmb3Igc2luZ2xlIG9yIG11 bHRpcGxlIGxpbmsgZmFpbHVyZXMsIGJ1dA0KICANCi0tLSAxNDQyLDE0NTMgLS0tLQ0KICAgICBB cyBtZW50aW9uZWQgcHJldmlvdXNseSwgcm91dGUgc3VtbWFyaXphdGlvbiBpcyBub3QgcG9zc2li bGUgd2l0aGluDQogICAgIHRoZSBwcm9wb3NlZCBDbG9zIHRvcG9sb2d5IHNpbmNlIGl0IG1ha2Vz IHRoZSBuZXR3b3JrIHN1c2NlcHRpYmxlIHRvDQogICAgIHJvdXRlIGJsYWNrLWhvbGluZyB1bmRl ciBzaW5nbGUgbGluayBmYWlsdXJlcy4gIFRoZSBtYWluIHByb2JsZW0gaXMNCiEgICAgdGhlIGxp bWl0ZWQgbnVtYmVyIG9mIHJlZHVuZGFudCBwYXRocyBiZXR3ZWVuIG5ldHdvcmsgZWxlbWVudHMs IGUuZy4sDQogICAgIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgcGF0aCBiZXR3ZWVuIGFueSBwYWly IG9mIFRpZXItMSBhbmQgVGllci0zDQogICAgIGRldmljZXMuICBIb3dldmVyLCBzb21lIG9wZXJh dG9ycyBtYXkgZmluZCByb3V0ZSBhZ2dyZWdhdGlvbg0KICAgICBkZXNpcmFibGUgdG8gaW1wcm92 ZSBjb250cm9sIHBsYW5lIHN0YWJpbGl0eS4NCiAgDQohICAgIElmIGFueSB0ZWNobmlxdWUgdG8g c3VtbWFyaXplIHdpdGhpbiB0aGUgdG9wb2xvZ3kgaXMgcGxhbm5lZCwNCiAgICAgbW9kZWxpbmcg b2YgdGhlIHJvdXRpbmcgYmVoYXZpb3IgYW5kIHBvdGVudGlhbCBmb3IgYmxhY2staG9saW5nDQog ICAgIHNob3VsZCBiZSBkb25lIG5vdCBvbmx5IGZvciBzaW5nbGUgb3IgbXVsdGlwbGUgbGluayBm YWlsdXJlcywgYnV0DQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTQ1OCwxNDY4ICoqKioNCiAg SW50ZXJuZXQtRHJhZnQgICAgZHJhZnQtaWV0Zi1ydGd3Zy1iZ3Atcm91dGluZy1sYXJnZS1kYyAg ICAgICBNYXJjaCAyMDE2DQogIA0KICANCiEgICAgYWxzbyBmaWJlciBwYXRod2F5IGZhaWx1cmVz IG9yIG9wdGljYWwgZG9tYWluIGZhaWx1cmVzIGlmIHRoZQ0KICAgICB0b3BvbG9neSBleHRlbmRz IGJleW9uZCBhIHBoeXNpY2FsIGxvY2F0aW9uLiAgU2ltcGxlIG1vZGVsaW5nIGNhbiBiZQ0KICAg ICBkb25lIGJ5IGNoZWNraW5nIHRoZSByZWFjaGFiaWxpdHkgb24gZGV2aWNlcyBkb2luZyBzdW1t YXJpemF0aW9uDQogICAgIHVuZGVyIHRoZSBjb25kaXRpb24gb2YgYSBsaW5rIG9yIHBhdGh3YXkg ZmFpbHVyZSBiZXR3ZWVuIGEgc2V0IG9mDQohICAgIGRldmljZXMgaW4gZXZlcnkgdGllciBhcyB3 ZWxsIGFzIHRvIHRoZSBXQU4gcm91dGVycyBpZiBleHRlcm5hbA0KICAgICBjb25uZWN0aXZpdHkg aXMgcHJlc2VudC4NCiAgDQogICAgIFJvdXRlIHN1bW1hcml6YXRpb24gd291bGQgYmUgcG9zc2li bGUgd2l0aCBhIHNtYWxsIG1vZGlmaWNhdGlvbiB0bw0KLS0tIDE0NTgsMTQ2OCAtLS0tDQogIElu dGVybmV0LURyYWZ0ICAgIGRyYWZ0LWlldGYtcnRnd2ctYmdwLXJvdXRpbmctbGFyZ2UtZGMgICAg ICAgTWFyY2ggMjAxNg0KICANCiAgDQohICAgIGFsc28gZmliZXIgcGF0aHdheSBmYWlsdXJlcyBv ciBvcHRpY2FsIGRvbWFpbiBmYWlsdXJlcyB3aGVuIHRoZQ0KICAgICB0b3BvbG9neSBleHRlbmRz IGJleW9uZCBhIHBoeXNpY2FsIGxvY2F0aW9uLiAgU2ltcGxlIG1vZGVsaW5nIGNhbiBiZQ0KICAg ICBkb25lIGJ5IGNoZWNraW5nIHRoZSByZWFjaGFiaWxpdHkgb24gZGV2aWNlcyBkb2luZyBzdW1t YXJpemF0aW9uDQogICAgIHVuZGVyIHRoZSBjb25kaXRpb24gb2YgYSBsaW5rIG9yIHBhdGh3YXkg ZmFpbHVyZSBiZXR3ZWVuIGEgc2V0IG9mDQohICAgIGRldmljZXMgaW4gZXZlcnkgdGllciBhcyB3 ZWxsIGFzIHRvIHRoZSBXQU4gcm91dGVycyB3aGVuIGV4dGVybmFsDQogICAgIGNvbm5lY3Rpdml0 eSBpcyBwcmVzZW50Lg0KICANCiAgICAgUm91dGUgc3VtbWFyaXphdGlvbiB3b3VsZCBiZSBwb3Nz aWJsZSB3aXRoIGEgc21hbGwgbW9kaWZpY2F0aW9uIHRvDQoqKioqKioqKioqKioqKioNCioqKiAx NTE5LDE1NDQgKioqKg0KICAgICBjbHVzdGVyIGZyb20gVGllci0yIGRldmljZXMgc2luY2UgZWFj aCBvZiB0aGVtIGhhcyBvbmx5IGEgc2luZ2xlIHBhdGgNCiAgICAgZG93biB0byB0aGlzIHByZWZp eC4gIEl0IHdvdWxkIHJlcXVpcmUgZHVhbC1ob21lZCBzZXJ2ZXJzIHRvDQogICAgIGFjY29tcGxp c2ggdGhhdC4gIEFsc28gbm90ZSB0aGF0IHRoaXMgZGVzaWduIGlzIG9ubHkgcmVzaWxpZW50IHRv DQohICAgIHNpbmdsZSBsaW5rIGZhaWx1cmUuICBJdCBpcyBwb3NzaWJsZSBmb3IgYSBkb3VibGUg bGluayBmYWlsdXJlIHRvDQogICAgIGlzb2xhdGUgYSBUaWVyLTIgZGV2aWNlIGZyb20gYWxsIHBh dGhzIHRvd2FyZCBhIHNwZWNpZmljIFRpZXItMw0KICAgICBkZXZpY2UsIHRodXMgY2F1c2luZyBh IHJvdXRpbmcgYmxhY2staG9sZS4NCiAgDQohICAgIEEgcmVzdWx0IG9mIHRoZSBwcm9wb3NlZCB0 b3BvbG9neSBtb2RpZmljYXRpb24gd291bGQgYmUgcmVkdWN0aW9uIG9mDQogICAgIFRpZXItMSBk ZXZpY2VzIHBvcnQgY2FwYWNpdHkuICBUaGlzIGxpbWl0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YN CiAgICAgYXR0YWNoZWQgVGllci0yIGRldmljZXMgYW5kIHRoZXJlZm9yZSB3aWxsIGxpbWl0IHRo ZSBtYXhpbXVtIERDDQogICAgIG5ldHdvcmsgc2l6ZS4gIEEgbGFyZ2VyIG5ldHdvcmsgd291bGQg cmVxdWlyZSBkaWZmZXJlbnQgVGllci0xDQogICAgIGRldmljZXMgdGhhdCBoYXZlIGhpZ2hlciBw b3J0IGRlbnNpdHkgdG8gaW1wbGVtZW50IHRoaXMgY2hhbmdlLg0KICANCiAgICAgQW5vdGhlciBw cm9ibGVtIGlzIHRyYWZmaWMgcmUtYmFsYW5jaW5nIHVuZGVyIGxpbmsgZmFpbHVyZXMuICBTaW5j ZQ0KISAgICB0aHJlZSBhcmUgdHdvIHBhdGhzIGZyb20gVGllci0xIHRvIFRpZXItMywgYSBmYWls dXJlIG9mIHRoZSBsaW5rDQogICAgIGJldHdlZW4gVGllci0xIGFuZCBUaWVyLTIgc3dpdGNoIHdv dWxkIHJlc3VsdCBpbiBhbGwgdHJhZmZpYyB0aGF0IHdhcw0KICAgICB0YWtpbmcgdGhlIGZhaWxl ZCBsaW5rIHRvIHN3aXRjaCB0byB0aGUgcmVtYWluaW5nIHBhdGguICBUaGlzIHdpbGwNCiEgICAg cmVzdWx0IGluIGRvdWJsaW5nIG9mIGxpbmsgdXRpbGl6YXRpb24gb24gdGhlIHJlbWFpbmluZyBs aW5rLg0KICANCiAgOC4yLjIuICBTaW1wbGUgVmlydHVhbCBBZ2dyZWdhdGlvbg0KICANCiAgICAg QSBjb21wbGV0ZWx5IGRpZmZlcmVudCBhcHByb2FjaCB0byByb3V0ZSBzdW1tYXJpemF0aW9uIGlz IHBvc3NpYmxlLA0KISAgICBwcm92aWRlZCB0aGF0IHRoZSBtYWluIGdvYWwgaXMgdG8gcmVkdWNl IHRoZSBGSUIgcHJlc3N1cmUsIHdoaWxlDQogICAgIGFsbG93aW5nIHRoZSBjb250cm9sIHBsYW5l IHRvIGRpc3NlbWluYXRlIGZ1bGwgcm91dGluZyBpbmZvcm1hdGlvbi4NCiAgICAgRmlyc3RseSwg aXQgY291bGQgYmUgZWFzaWx5IG5vdGVkIHRoYXQgaW4gbWFueSBjYXNlcyBtdWx0aXBsZQ0KICAg ICBwcmVmaXhlcywgc29tZSBvZiB3aGljaCBhcmUgbGVzcyBzcGVjaWZpYywgc2hhcmUgdGhlIHNh bWUgc2V0IG9mIHRoZQ0KLS0tIDE1MTksMTU0NCAtLS0tDQogICAgIGNsdXN0ZXIgZnJvbSBUaWVy LTIgZGV2aWNlcyBzaW5jZSBlYWNoIG9mIHRoZW0gaGFzIG9ubHkgYSBzaW5nbGUgcGF0aA0KICAg ICBkb3duIHRvIHRoaXMgcHJlZml4LiAgSXQgd291bGQgcmVxdWlyZSBkdWFsLWhvbWVkIHNlcnZl cnMgdG8NCiAgICAgYWNjb21wbGlzaCB0aGF0LiAgQWxzbyBub3RlIHRoYXQgdGhpcyBkZXNpZ24g aXMgb25seSByZXNpbGllbnQgdG8NCiEgICAgc2luZ2xlIGxpbmsgZmFpbHVyZXMuICBJdCBpcyBw b3NzaWJsZSBmb3IgYSBkb3VibGUgbGluayBmYWlsdXJlIHRvDQogICAgIGlzb2xhdGUgYSBUaWVy LTIgZGV2aWNlIGZyb20gYWxsIHBhdGhzIHRvd2FyZCBhIHNwZWNpZmljIFRpZXItMw0KICAgICBk ZXZpY2UsIHRodXMgY2F1c2luZyBhIHJvdXRpbmcgYmxhY2staG9sZS4NCiAgDQohICAgIEEgcmVz dWx0IG9mIHRoZSBwcm9wb3NlZCB0b3BvbG9neSBtb2RpZmljYXRpb24gd291bGQgYmUgYSByZWR1 Y3Rpb24gb2YNCiAgICAgVGllci0xIGRldmljZXMgcG9ydCBjYXBhY2l0eS4gIFRoaXMgbGltaXRz IHRoZSBtYXhpbXVtIG51bWJlciBvZg0KICAgICBhdHRhY2hlZCBUaWVyLTIgZGV2aWNlcyBhbmQg dGhlcmVmb3JlIHdpbGwgbGltaXQgdGhlIG1heGltdW0gREMNCiAgICAgbmV0d29yayBzaXplLiAg QSBsYXJnZXIgbmV0d29yayB3b3VsZCByZXF1aXJlIGRpZmZlcmVudCBUaWVyLTENCiAgICAgZGV2 aWNlcyB0aGF0IGhhdmUgaGlnaGVyIHBvcnQgZGVuc2l0eSB0byBpbXBsZW1lbnQgdGhpcyBjaGFu Z2UuDQogIA0KICAgICBBbm90aGVyIHByb2JsZW0gaXMgdHJhZmZpYyByZS1iYWxhbmNpbmcgdW5k ZXIgbGluayBmYWlsdXJlcy4gIFNpbmNlDQohICAgIHRoZXJlIGFyZSB0d28gcGF0aHMgZnJvbSBU aWVyLTEgdG8gVGllci0zLCBhIGZhaWx1cmUgb2YgdGhlIGxpbmsNCiAgICAgYmV0d2VlbiBUaWVy LTEgYW5kIFRpZXItMiBzd2l0Y2ggd291bGQgcmVzdWx0IGluIGFsbCB0cmFmZmljIHRoYXQgd2Fz DQogICAgIHRha2luZyB0aGUgZmFpbGVkIGxpbmsgdG8gc3dpdGNoIHRvIHRoZSByZW1haW5pbmcg cGF0aC4gIFRoaXMgd2lsbA0KISAgICByZXN1bHQgaW4gZG91YmxpbmcgdGhlIGxpbmsgdXRpbGl6 YXRpb24gb2YgdGhlIHJlbWFpbmluZyBsaW5rLg0KICANCiAgOC4yLjIuICBTaW1wbGUgVmlydHVh bCBBZ2dyZWdhdGlvbg0KICANCiAgICAgQSBjb21wbGV0ZWx5IGRpZmZlcmVudCBhcHByb2FjaCB0 byByb3V0ZSBzdW1tYXJpemF0aW9uIGlzIHBvc3NpYmxlLA0KISAgICBwcm92aWRlZCB0aGF0IHRo ZSBtYWluIGdvYWwgaXMgdG8gcmVkdWNlIHRoZSBGSUIgc2l6ZSwgd2hpbGUNCiAgICAgYWxsb3dp bmcgdGhlIGNvbnRyb2wgcGxhbmUgdG8gZGlzc2VtaW5hdGUgZnVsbCByb3V0aW5nIGluZm9ybWF0 aW9uLg0KICAgICBGaXJzdGx5LCBpdCBjb3VsZCBiZSBlYXNpbHkgbm90ZWQgdGhhdCBpbiBtYW55 IGNhc2VzIG11bHRpcGxlDQogICAgIHByZWZpeGVzLCBzb21lIG9mIHdoaWNoIGFyZSBsZXNzIHNw ZWNpZmljLCBzaGFyZSB0aGUgc2FtZSBzZXQgb2YgdGhlDQoqKioqKioqKioqKioqKioNCioqKiAx NTUwLDE1NjMgKioqKg0KICAgICBbUkZDNjc2OV0gYW5kIG9ubHkgaW5zdGFsbCB0aGUgbGVhc3Qg c3BlY2lmaWMgcm91dGUgaW4gdGhlIEZJQiwNCiAgICAgaWdub3JpbmcgbW9yZSBzcGVjaWZpYyBy b3V0ZXMgaWYgdGhleSBzaGFyZSB0aGUgc2FtZSBuZXh0LWhvcCBzZXQuDQogICAgIEZvciBleGFt cGxlLCB1bmRlciBub3JtYWwgbmV0d29yayBjb25kaXRpb25zLCBvbmx5IHRoZSBkZWZhdWx0IHJv dXRlDQohICAgIG5lZWQgdG8gYmUgcHJvZ3JhbW1lZCBpbnRvIEZJQi4NCiAgDQogICAgIEZ1cnRo ZXJtb3JlLCBpZiB0aGUgVGllci0yIGRldmljZXMgYXJlIGNvbmZpZ3VyZWQgd2l0aCBzdW1tYXJ5 DQohICAgIHByZWZpeGVzIGNvdmVyaW5nIGFsbCBvZiB0aGVpciBhdHRhY2hlZCBUaWVyLTMgZGV2 aWNlJ3MgcHJlZml4ZXMgdGhlDQogICAgIHNhbWUgbG9naWMgY291bGQgYmUgYXBwbGllZCBpbiBU aWVyLTEgZGV2aWNlcyBhcyB3ZWxsLCBhbmQsIGJ5DQogICAgIGluZHVjdGlvbiB0byBUaWVyLTIv VGllci0zIHN3aXRjaGVzIGluIGRpZmZlcmVudCBjbHVzdGVycy4gIFRoZXNlDQogICAgIHN1bW1h cnkgcm91dGVzIHNob3VsZCBzdGlsbCBhbGxvdyBmb3IgbW9yZSBzcGVjaWZpYyBwcmVmaXhlcyB0 byBsZWFrDQohICAgIHRvIFRpZXItMSBkZXZpY2VzLCB0byBlbmFibGUgZm9yIGRldGVjdGlvbiBv ZiBtaXNtYXRjaGVzIGluIHRoZSBuZXh0LQ0KICAgICBob3Agc2V0cyBpZiBhIHBhcnRpY3VsYXIg bGluayBmYWlscywgY2hhbmdpbmcgdGhlIG5leHQtaG9wIHNldCBmb3IgYQ0KICAgICBzcGVjaWZp YyBwcmVmaXguDQogIA0KLS0tIDE1NTAsMTU2MyAtLS0tDQogICAgIFtSRkM2NzY5XSBhbmQgb25s eSBpbnN0YWxsIHRoZSBsZWFzdCBzcGVjaWZpYyByb3V0ZSBpbiB0aGUgRklCLA0KICAgICBpZ25v cmluZyBtb3JlIHNwZWNpZmljIHJvdXRlcyBpZiB0aGV5IHNoYXJlIHRoZSBzYW1lIG5leHQtaG9w IHNldC4NCiAgICAgRm9yIGV4YW1wbGUsIHVuZGVyIG5vcm1hbCBuZXR3b3JrIGNvbmRpdGlvbnMs IG9ubHkgdGhlIGRlZmF1bHQgcm91dGUNCiEgICAgbmVlZHMgdG8gYmUgcHJvZ3JhbW1lZCBpbnRv IEZJQi4NCiAgDQogICAgIEZ1cnRoZXJtb3JlLCBpZiB0aGUgVGllci0yIGRldmljZXMgYXJlIGNv bmZpZ3VyZWQgd2l0aCBzdW1tYXJ5DQohICAgIHByZWZpeGVzIGNvdmVyaW5nIGFsbCBvZiB0aGVp ciBhdHRhY2hlZCBUaWVyLTMgZGV2aWNlJ3MgcHJlZml4ZXMsIHRoZQ0KICAgICBzYW1lIGxvZ2lj IGNvdWxkIGJlIGFwcGxpZWQgaW4gVGllci0xIGRldmljZXMgYXMgd2VsbCwgYW5kLCBieQ0KICAg ICBpbmR1Y3Rpb24gdG8gVGllci0yL1RpZXItMyBzd2l0Y2hlcyBpbiBkaWZmZXJlbnQgY2x1c3Rl cnMuICBUaGVzZQ0KICAgICBzdW1tYXJ5IHJvdXRlcyBzaG91bGQgc3RpbGwgYWxsb3cgZm9yIG1v cmUgc3BlY2lmaWMgcHJlZml4ZXMgdG8gbGVhaw0KISAgICB0byBUaWVyLTEgZGV2aWNlcywgdG8g ZW5hYmxlIGRldGVjdGlvbiBvZiBtaXNtYXRjaGVzIGluIHRoZSBuZXh0LQ0KICAgICBob3Agc2V0 cyBpZiBhIHBhcnRpY3VsYXIgbGluayBmYWlscywgY2hhbmdpbmcgdGhlIG5leHQtaG9wIHNldCBm b3IgYQ0KICAgICBzcGVjaWZpYyBwcmVmaXguDQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTU3 MSwxNTg0ICoqKioNCiAgDQogIA0KICAgICBSZS1zdGF0aW5nIG9uY2UgYWdhaW4sIHRoaXMgdGVj aG5pcXVlIGRvZXMgbm90IHJlZHVjZSB0aGUgYW1vdW50IG9mDQohICAgIGNvbnRyb2wgcGxhbmUg c3RhdGUgKGkuZS4gIEJHUCBVUERBVEVzL0JHUCBMb2NSSUIgc2l6aW5nKSwgYnV0IG9ubHkNCiEg ICAgYWxsb3dzIGZvciBtb3JlIGVmZmljaWVudCBGSUIgdXRpbGl6YXRpb24sIGJ5IHNwb3R0aW5n IG1vcmUgc3BlY2lmaWMNCiEgICAgcHJlZml4ZXMgdGhhdCBzaGFyZSB0aGVpciBuZXh0LWhvcHMg d2l0aCBsZXNzIHNwZWNpZmljcy4NCiAgDQogIDguMy4gIElDTVAgVW5yZWFjaGFibGUgTWVzc2Fn ZSBNYXNxdWVyYWRpbmcNCiAgDQogICAgIFRoaXMgc2VjdGlvbiBkaXNjdXNzZXMgc29tZSBvcGVy YXRpb25hbCBhc3BlY3RzIG9mIG5vdCBhZHZlcnRpc2luZw0KISAgICBwb2ludC10by1wb2ludCBs aW5rIHN1Ym5ldHMgaW50byBCR1AsIGFzIHByZXZpb3VzbHkgb3V0bGluZWQgYXMgYW4NCiAgICAg b3B0aW9uIGluIFNlY3Rpb24gNS4yLjMuICBUaGUgb3BlcmF0aW9uYWwgaW1wYWN0IG9mIHRoaXMg ZGVjaXNpb24NCiAgICAgY291bGQgYmUgc2VlbiB3aGVuIHVzaW5nIHRoZSB3ZWxsLWtub3duICJ0 cmFjZXJvdXRlIiB0b29sLg0KICAgICBTcGVjaWZpY2FsbHksIElQIGFkZHJlc3NlcyBkaXNwbGF5 ZWQgYnkgdGhlIHRvb2wgd2lsbCBiZSB0aGUgbGluaydzDQotLS0gMTU3MSwxNTg1IC0tLS0NCiAg DQogIA0KICAgICBSZS1zdGF0aW5nIG9uY2UgYWdhaW4sIHRoaXMgdGVjaG5pcXVlIGRvZXMgbm90 IHJlZHVjZSB0aGUgYW1vdW50IG9mDQohICAgIGNvbnRyb2wgcGxhbmUgc3RhdGUgKGkuZS4sICBC R1AgVVBEQVRFcy9CR1AgTG9jLVJJQiBzaXplKSwgYnV0IG9ubHkNCiEgICAgYWxsb3dzIGZvciBt b3JlIGVmZmljaWVudCBGSUIgdXRpbGl6YXRpb24sIGJ5IGRldGVjdGluZyBtb3JlIHNwZWNpZmlj DQohICAgIHByZWZpeGVzIHRoYXQgc2hhcmUgdGhlaXIgbmV4dC1ob3Agc2V0IHdpdGggYSBzdWJz dW1pbmcgbGVzcyBzcGVjaWZpYw0KISAgICBwcmVmaXguDQogIA0KICA4LjMuICBJQ01QIFVucmVh Y2hhYmxlIE1lc3NhZ2UgTWFzcXVlcmFkaW5nDQogIA0KICAgICBUaGlzIHNlY3Rpb24gZGlzY3Vz c2VzIHNvbWUgb3BlcmF0aW9uYWwgYXNwZWN0cyBvZiBub3QgYWR2ZXJ0aXNpbmcNCiEgICAgcG9p bnQtdG8tcG9pbnQgbGluayBzdWJuZXRzIGludG8gQkdQLCBhcyBwcmV2aW91c2x5IGlkZW50aWZp ZWQgYXMgYW4NCiAgICAgb3B0aW9uIGluIFNlY3Rpb24gNS4yLjMuICBUaGUgb3BlcmF0aW9uYWwg aW1wYWN0IG9mIHRoaXMgZGVjaXNpb24NCiAgICAgY291bGQgYmUgc2VlbiB3aGVuIHVzaW5nIHRo ZSB3ZWxsLWtub3duICJ0cmFjZXJvdXRlIiB0b29sLg0KICAgICBTcGVjaWZpY2FsbHksIElQIGFk ZHJlc3NlcyBkaXNwbGF5ZWQgYnkgdGhlIHRvb2wgd2lsbCBiZSB0aGUgbGluaydzDQoqKioqKioq KioqKioqKioNCioqKiAxNTg3LDE2MDUgKioqKg0KICAgICBjb21wbGljYXRlZC4NCiAgDQogICAg IE9uZSB3YXkgdG8gb3ZlcmNvbWUgdGhpcyBsaW1pdGF0aW9uIGlzIGJ5IHVzaW5nIHRoZSBETlMg c3Vic3lzdGVtIHRvDQohICAgIGNyZWF0ZSB0aGUgInJldmVyc2UiIGVudHJpZXMgZm9yIHRoZSBJ UCBhZGRyZXNzZXMgb2YgdGhlIHNhbWUgZGV2aWNlDQohICAgIHBvaW50aW5nIHRvIHRoZSBzYW1l IG5hbWUuICBUaGUgY29ubmVjdGl2aXR5IHRoZW4gY2FuIGJlIG1hZGUgYnkNCiEgICAgcmVzb2x2 aW5nIHRoaXMgbmFtZSB0byB0aGUgInByaW1hcnkiIElQIGFkZHJlc3Mgb2YgdGhlIGRldmljZXMs IGUuZy4NCiAgICAgaXRzIExvb3BiYWNrIGludGVyZmFjZSwgd2hpY2ggaXMgYWx3YXlzIGFkdmVy dGlzZWQgaW50byBCR1AuDQogICAgIEhvd2V2ZXIsIHRoaXMgY3JlYXRlcyBhIGRlcGVuZGVuY3kg b24gdGhlIEROUyBzdWJzeXN0ZW0sIHdoaWNoIG1heSBiZQ0KICAgICB1bmF2YWlsYWJsZSBkdXJp bmcgYW4gb3V0YWdlLg0KICANCiAgICAgQW5vdGhlciBvcHRpb24gaXMgdG8gbWFrZSB0aGUgbmV0 d29yayBkZXZpY2UgcGVyZm9ybSBJUCBhZGRyZXNzDQogICAgIG1hc3F1ZXJhZGluZywgdGhhdCBp cyByZXdyaXRpbmcgdGhlIHNvdXJjZSBJUCBhZGRyZXNzZXMgb2YgdGhlDQohICAgIGFwcHJvcHJp YXRlIElDTVAgbWVzc2FnZXMgc2VudCBvZmYgb2YgdGhlIGRldmljZSB3aXRoIHRoZSAicHJpbWFy eSINCiAgICAgSVAgYWRkcmVzcyBvZiB0aGUgZGV2aWNlLiAgU3BlY2lmaWNhbGx5LCB0aGUgSUNN UCBEZXN0aW5hdGlvbg0KICAgICBVbnJlYWNoYWJsZSBNZXNzYWdlICh0eXBlIDMpIGNvZGVzIDMg KHBvcnQgdW5yZWFjaGFibGUpIGFuZCBJQ01QIFRpbWUNCiEgICAgRXhjZWVkZWQgKHR5cGUgMTEp IGNvZGUgMCwgd2hpY2ggYXJlIGludm9sdmVkIGluIHByb3BlciB3b3JraW5nIG9mDQogICAgIHRo ZSAidHJhY2Vyb3V0ZSIgdG9vbC4gIFdpdGggdGhpcyBtb2RpZmljYXRpb24sIHRoZSAidHJhY2Vy b3V0ZSINCiAgICAgcHJvYmVzIHNlbnQgdG8gdGhlIGRldmljZXMgd2lsbCBhbHdheXMgYmUgc2Vu dCBiYWNrIHdpdGggdGhlDQogICAgICJwcmltYXJ5IiBJUCBhZGRyZXNzIGFzIHRoZSBzb3VyY2Us IGFsbG93aW5nIHRoZSBvcGVyYXRvciB0byBkaXNjb3Zlcg0KLS0tIDE1ODgsMTYwNiAtLS0tDQog ICAgIGNvbXBsaWNhdGVkLg0KICANCiAgICAgT25lIHdheSB0byBvdmVyY29tZSB0aGlzIGxpbWl0 YXRpb24gaXMgYnkgdXNpbmcgdGhlIEROUyBzdWJzeXN0ZW0gdG8NCiEgICAgY3JlYXRlIHRoZSAi cmV2ZXJzZSIgZW50cmllcyBmb3IgdGhlc2UgcG9pbnQtdG8tcG9pbnQgSVAgYWRkcmVzc2VzIA0K cG9pbnRpbmcNCiEgICAgdG8gYSB0aGUgc2FtZSBuYW1lIGFzIHRoZSBsb29wYmFjayBhZGRyZXNz LiAgVGhlIGNvbm5lY3Rpdml0eSB0aGVuIA0KY2FuIGJlIG1hZGUgYnkNCiEgICAgcmVzb2x2aW5n IHRoaXMgbmFtZSB0byB0aGUgInByaW1hcnkiIElQIGFkZHJlc3Mgb2YgdGhlIGRldmljZXMsIGUu Zy4sDQogICAgIGl0cyBMb29wYmFjayBpbnRlcmZhY2UsIHdoaWNoIGlzIGFsd2F5cyBhZHZlcnRp c2VkIGludG8gQkdQLg0KICAgICBIb3dldmVyLCB0aGlzIGNyZWF0ZXMgYSBkZXBlbmRlbmN5IG9u IHRoZSBETlMgc3Vic3lzdGVtLCB3aGljaCBtYXkgYmUNCiAgICAgdW5hdmFpbGFibGUgZHVyaW5n IGFuIG91dGFnZS4NCiAgDQogICAgIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1ha2UgdGhlIG5ldHdv cmsgZGV2aWNlIHBlcmZvcm0gSVAgYWRkcmVzcw0KICAgICBtYXNxdWVyYWRpbmcsIHRoYXQgaXMg cmV3cml0aW5nIHRoZSBzb3VyY2UgSVAgYWRkcmVzc2VzIG9mIHRoZQ0KISAgICBhcHByb3ByaWF0 ZSBJQ01QIG1lc3NhZ2VzIHNlbnQgYnkgdGhlIGRldmljZSB3aXRoIHRoZSAicHJpbWFyeSINCiAg ICAgSVAgYWRkcmVzcyBvZiB0aGUgZGV2aWNlLiAgU3BlY2lmaWNhbGx5LCB0aGUgSUNNUCBEZXN0 aW5hdGlvbg0KICAgICBVbnJlYWNoYWJsZSBNZXNzYWdlICh0eXBlIDMpIGNvZGVzIDMgKHBvcnQg dW5yZWFjaGFibGUpIGFuZCBJQ01QIFRpbWUNCiEgICAgRXhjZWVkZWQgKHR5cGUgMTEpIGNvZGUg MCwgd2hpY2ggYXJlIHJlcXVpcmVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBvZg0KICAgICB0aGUg InRyYWNlcm91dGUiIHRvb2wuICBXaXRoIHRoaXMgbW9kaWZpY2F0aW9uLCB0aGUgInRyYWNlcm91 dGUiDQogICAgIHByb2JlcyBzZW50IHRvIHRoZSBkZXZpY2VzIHdpbGwgYWx3YXlzIGJlIHNlbnQg YmFjayB3aXRoIHRoZQ0KICAgICAicHJpbWFyeSIgSVAgYWRkcmVzcyBhcyB0aGUgc291cmNlLCBh bGxvd2luZyB0aGUgb3BlcmF0b3IgdG8gZGlzY292ZXINCg0KVGhhbmtzLA0KQWNlZSANCg0K From nobody Mon Apr 25 10:16:15 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A093612D631; Mon, 25 Apr 2016 10:16:11 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -15.517 X-Spam-Level: X-Spam-Status: No, score=-15.517 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.996, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W-GidkaONcDS; Mon, 25 Apr 2016 10:16:08 -0700 (PDT) Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0A79E12B018; Mon, 25 Apr 2016 10:16:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=96934; q=dns/txt; s=iport; t=1461604568; x=1462814168; h=from:to:cc:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=V7DaN+UsLqt5p89Itvn3FQ0t55fGtiycldx4EmlJLhQ=; b=X6woDr2P/6AyfcoYy976r6Lt0piUrh0XYSE1Y5ZhoWXMeZ/wt2YX89WW WPJzg6hdhdrnxCWTKl7Y1/oLmMNcYi2i2933KwNRtyb6gRVe3qYqw+dmU PmTy4MdzYY8t+e+hN8HinfJOEZDmRa/W1GoXePJC81c7AYANYIMMqzPCM U=; X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0D3AQDpTx5X/40NJK1egzhTfQa5cQENg?= =?us-ascii?q?XUigjyDMB6BHDgUAQEBAQEBAWUnhEQEGgEIERMeDwUSARwGAh8HAgQwFRIEAQ0?= =?us-ascii?q?giA8OsSKEdYwDAQEBAQEBAQEBAQEBAQEBAQEBARd8iG6FCAoJAQ0JJRaCVIJWB?= =?us-ascii?q?YdxhWKBMokKAYV7gnWCbII4gWYXN4N/iF2GI4kLAR4BAUKCBAEbFoE1bAGHQQE?= =?us-ascii?q?BBRkffwEBAQ?= X-IronPort-AV: E=Sophos;i="5.24,533,1454976000"; d="scan'208";a="97699160" Received: from alln-core-8.cisco.com ([173.36.13.141]) by rcdn-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 25 Apr 2016 17:16:05 +0000 Received: from XCH-RTP-015.cisco.com (xch-rtp-015.cisco.com [64.101.220.155]) by alln-core-8.cisco.com (8.14.5/8.14.5) with ESMTP id u3PHG4ND026494 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 25 Apr 2016 17:16:05 GMT Received: from xch-rtp-015.cisco.com (64.101.220.155) by XCH-RTP-015.cisco.com (64.101.220.155) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Mon, 25 Apr 2016 13:16:03 -0400 Received: from xch-rtp-015.cisco.com ([64.101.220.155]) by XCH-RTP-015.cisco.com ([64.101.220.155]) with mapi id 15.00.1104.009; Mon, 25 Apr 2016 13:16:03 -0400 From: "Acee Lindem (acee)" To: "draft-ietf-rtgwg-bgp-routing-large-dc@ietf.org" , Routing ADs Thread-Topic: Routing Directorate Review for "Use of BGP for routing in large-scale data centers" (adding RTG WG) Thread-Index: AQHRnxYlQYfeCPyXgkGAG4vr+m6GrQ== Date: Mon, 25 Apr 2016 17:16:03 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.116.152.196] Content-Type: text/plain; charset="utf-8" Content-ID: <288AD52B6E1EA641803DF791969AD991@emea.cisco.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Archived-At: Cc: Routing Directorate , Routing WG Subject: [RTG-DIR] Routing Directorate Review for "Use of BGP for routing in large-scale data centers" (adding RTG WG) X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2016 17:16:11 -0000 SGVsbG8sDQoNCkkgaGF2ZSBiZWVuIHNlbGVjdGVkIGFzIHRoZSBSb3V0aW5nIERpcmVjdG9yYXRl IHJldmlld2VyIGZvciB0aGlzIGRyYWZ0Lg0KVGhlIFJvdXRpbmcgRGlyZWN0b3JhdGUgc2Vla3Mg dG8gcmV2aWV3IGFsbCByb3V0aW5nIG9yIHJvdXRpbmctcmVsYXRlZA0KZHJhZnRzIGFzIHRoZXkg cGFzcyB0aHJvdWdoIElFVEYgbGFzdCBjYWxsIGFuZCBJRVNHIHJldmlldywgYW5kIHNvbWV0aW1l cw0Kb24gc3BlY2lhbCByZXF1ZXN0LiBUaGUgcHVycG9zZSBvZiB0aGUgcmV2aWV3IGlzIHRvIHBy b3ZpZGUgYXNzaXN0YW5jZSB0bw0KdGhlIFJvdXRpbmcgQURzLiBGb3IgbW9yZSBpbmZvcm1hdGlv biBhYm91dCB0aGUgUm91dGluZyBEaXJlY3RvcmF0ZSwNCnBsZWFzZSBzZWUg4oCLaHR0cDovL3Ry YWMudG9vbHMuaWV0Zi5vcmcvYXJlYS9ydGcvdHJhYy93aWtpL1J0Z0Rpcg0KDQpBbHRob3VnaCB0 aGVzZSBjb21tZW50cyBhcmUgcHJpbWFyaWx5IGZvciB0aGUgdXNlIG9mIHRoZSBSb3V0aW5nIEFE cywgaXQNCndvdWxkIGJlIGhlbHBmdWwgaWYgeW91IGNvdWxkIGNvbnNpZGVyIHRoZW0gYWxvbmcg d2l0aCBhbnkgb3RoZXIgSUVURiBMYXN0DQpDYWxsIGNvbW1lbnRzIHRoYXQgeW91IHJlY2VpdmUs IGFuZCBzdHJpdmUgdG8gcmVzb2x2ZSB0aGVtIHRocm91Z2gNCmRpc2N1c3Npb24gb3IgYnkgdXBk YXRpbmcgdGhlIGRyYWZ0Lg0KDQpEb2N1bWVudDogZHJhZnQtaWV0Zi1ydGd3Zy1iZ3Atcm91dGlu Zy1sYXJnZS1kYy0wOS50eHQNClJldmlld2VyOiBBY2VlIExpbmRlbQ0KUmV2aWV3IERhdGU6IDQv MjUvMTYNCklFVEYgTEMgRW5kIERhdGU6IE5vdCBzdGFydGVkDQpJbnRlbmRlZCBTdGF0dXM6IElu Zm9ybWF0aW9uYWwNCg0KU3VtbWFyeToNCiAgICBUaGlzIGRvY3VtZW50IGlzIGJhc2ljYWxseSBy ZWFkeSBmb3IgcHVibGljYXRpb24sIGJ1dCBoYXMgc29tZSBtaW5vcg0KaXNzdWVzIGFuZCBuaXRz IHRoYXQgc2hvdWxkIGJlIHJlc29sdmVkIHByaW9yIHRvIHB1YmxpY2F0aW9uLg0KDQpDb21tZW50 czoNCiAgICBUaGUgZG9jdW1lbnQgc3RhcnRzIHdpdGggdGhlIHJlcXVpcmVtZW50cyBmb3IgYW4g TVNEQyByb3V0aW5nIGFuZCB0aGVuDQpwcm92aWRlcyBhbiBvdmVydmlldyBvZiBDbG9zIGRhdGEg dG9wb2xvZ2llcyBhbmQgZGF0YSBjZW50ZXIgbmV0d29yaw0KZGVzaWduLiBUaGlzIG92ZXJ2aWV3 IGF0dGVtcHRzIHRvIGNvdmVyIGEgbG90IG9mIGEgbWF0ZXJpYWwgaW4gYSB2ZXJ5DQpzbWFsbCBh bW91bnQgb2YgdGV4dC4gV2hpbGUgbm90IGNvbXBsZXRlbHkgc3VjY2Vzc2Z1bCwgdGhlIG92ZXJ2 aWV3DQpwcm92aWRlcyBhIGxvdCBvZiBnb29kIGluZm9ybWF0aW9uIGFuZCByZWZlcmVuY2VzLiBU aGUgYnVsayBvZiB0aGUNCmRvY3VtZW50IGNvdmVycyB0aGUgdXNhZ2Ugb2YgRUJHUCBhcyB0aGUg c29sZSBkYXRhIGNlbnRlciByb3V0aW5nIHByb3RvY29sDQphbmQgb3RoZXIgYXNwZWN0cyBvZiB0 aGUgcm91dGluZyBkZXNpZ24gaW5jbHVkaW5nIEVDTVAsIHN1bW1hcml6YXRpb24NCmlzc3Vlcywg YW5kIGNvbnZlcmdlbmNlLiBUaGVzZSBzZWN0aW9ucyBwcm92aWRlIGEgdmVyeSBnb29kIGd1aWRl IGZvcg0KdXNpbmcgRUJHUCBpbiBhIENsb3MgZGF0YSBjZW50ZXIgYW5kIGFuIGV4Y2VsbGVudCBk aXNjdXNzaW9uIG9mIHRoZQ0KZGVwbG95bWVudCBpc3N1ZXMgKGJhc2VkIG9uIHJlYWwgZGVwbG95 bWVudCBleHBlcmllbmNlKS4NCg0KICAgIFRoZSB0ZWNobmljYWwgY29udGVudCBvZiB0aGUgZG9j dW1lbnQgaXMgZXhjZWxsZW50LiBUaGUgcmVhZGFiaWxpdHkNCmNvdWxkIGJlIGltcHJvdmVkIGJ5 IGJyZWFraW5nIHVwIHNvbWUgb2YgdGhlIHJ1bi1vbiBzZW50ZW5jZXMgYW5kIHdpdGggdGhlDQpz dWdnZXN0ZWQgZWRpdG9yaWFsIGNoYW5nZXMgKHNlZSBOaXRzIGJlbG93KS4NCg0KDQpNYWpvciBJ c3N1ZXM6DQoNCiAgICBJIGhhdmUgbm8gbWFqb3IgaXNzdWVzIHdpdGggdGhlIGRvY3VtZW50Lg0K DQpNaW5vciBJc3N1ZXM6DQoNCiAgICBTZWN0aW9uIDQuMjogQ2FuIGFuIGluZm9ybWF0aXZlIHJl ZmVyZW5jZSBiZSBhZGRlZCBmb3IgRGlyZWN0IFNlcnZlcg0KUmV0dXJuIChEU1IpPw0KICAgIFNl Y3Rpb24gNS4yLjQgYW5kIDcuNDogRGVmaW5lIHByZWNpc2VseSB3aGF0IGlzIG1lYW50IGJ5ICJz Y2FsZS1vdXQiDQp0b3BvbG9neSBzb21ld2hlcmUgaW4gdGhlIGRvY3VtZW50Lg0KICAgIFNlY3Rp b24gNS4yLjU6IENhbiB5b3UgYWRkIGEgYmFja3dhcmQgcmVmZXJlbmNlIHRvIHRoZSBkaXNjdXNz aW9uIG9mDQoibGFjayBvZiBwZWVyIGxpbmtzIGluc2lkZSBldmVyeSBwZWVy4oCdPyBBbHNvLCBp dCB3b3VsZCBiZSBnb29kIHRvIGRlc2NyaWJlDQpob3cgdGhpcyB3b3VsZCBhbGxvdyBmb3Igc3Vt bWFyaXphdGlvbiBhbmQgdW5kZXIgd2hhdCBmYWlsdXJlIGNvbmRpdGlvbnMuDQogICAgU2VjdGlv biA3LjQ6IFNob3VsZCB5b3UgYWRkIGEgcmVmZXJlbmNlIHRvDQpodHRwczovL3d3dy5pZXRmLm9y Zy9pZC9kcmFmdC1pZXRmLXJ0Z3dnLWJncC1waWMtMDAudHh0IHRvIHRoZSBwZW51bHRpbWF0ZQ0K cGFyYWdyYXBoIGluIHRoaXMgc2VjdGlvbj8NCg0KTml0czoNCg0KKioqKioqKioqKioqKioqDQoq KiogMTQzLDE0OSAqKioqDQogICAgIG5ldHdvcmsgc3RhYmlsaXR5IHNvIHRoYXQgYSBzbWFsbCBn cm91cCBvZiBwZW9wbGUgY2FuIGVmZmVjdGl2ZWx5DQogICAgIHN1cHBvcnQgYSBzaWduaWZpY2Fu dGx5IHNpemVkIG5ldHdvcmsuDQogIA0KISAgICBFeHBlcmltZW50YXRpb24gYW5kIGV4dGVuc2l2 ZSB0ZXN0aW5nIGhhcyBzaG93biB0aGF0IEV4dGVybmFsIEJHUA0KICAgICAoRUJHUCkgW1JGQzQy NzFdIGlzIHdlbGwgc3VpdGVkIGFzIGEgc3RhbmQtYWxvbmUgcm91dGluZyBwcm90b2NvbCBmb3IN CiAgICAgdGhlc2UgdHlwZSBvZiBkYXRhIGNlbnRlciBhcHBsaWNhdGlvbnMuICBUaGlzIGlzIGlu IGNvbnRyYXN0IHdpdGgNCiAgICAgbW9yZSB0cmFkaXRpb25hbCBEQyBkZXNpZ25zLCB3aGljaCBt YXkgc2Ugc2ltcGxlIHRyZWUgdG9wb2xvZ2llcyBhbmQNCi0tLSAxNDMsMTQ5IC0tLS0NCiAgICAg bmV0d29yayBzdGFiaWxpdHkgc28gdGhhdCBhIHNhbGwgZ3JvdXAgb2YgcGVvcGxlIGNhbiBlZmZl Y3RpdmVseQ0KICAgICBzdXBwb3J0IGEgc2lnbmlmaWNhbnRseSBzaXplZCBuZXR3b3JrLg0KICAN CiEgICAgRXhwZXJpbWVudGF0aW9uIGFuZCBleHRlbnNpdmUgdGVzdGluZyBoYXZlIHNob3duIHRo YXQgRXh0ZXJuYWwgQkdQDQogICAgIChFQkdQKSBbUkZDNDI3MV0gaXMgd2VsbCBzdWl0ZWQgYXMg YSBzdGFuZC1hbG9uZSByb3V0aW5nIHByb3RvY29sIGZvcg0KICAgICB0aGVzZSB0eXBlIG9mIGRh dGEgY2VudGVyIGFwcGxpY2F0aW9ucy4gIFRoaXMgaXMgaW4gY29udHJhc3Qgd2l0aA0KICAgICBt b3JlIHRyYWRpdGlvbmFsIERDIGRlc2lnbnMsIHdoaWNoIG1heSB1c2Ugc2ltcGxlIHRyZWUgdG9w b2xvZ2llcyBhbmQNCioqKioqKioqKioqKioqKg0KKioqIDE3OCwxOTEgKioqKg0KICAyLjEuICBC YW5kd2lkdGggYW5kIFRyYWZmaWMgUGF0dGVybnMNCiAgDQogICAgIFRoZSBwcmltYXJ5IHJlcXVp cmVtZW50IHdoZW4gYnVpbGRpbmcgYW4gaW50ZXJjb25uZWN0aW9uIG5ldHdvcmsgZm9yDQohICAg IGxhcmdlIG51bWJlciBvZiBzZXJ2ZXJzIGlzIHRvIGFjY29tbW9kYXRlIGFwcGxpY2F0aW9uIGJh bmR3aWR0aCBhbmQNCiAgICAgbGF0ZW5jeSByZXF1aXJlbWVudHMuICBVbnRpbCByZWNlbnRseSBp dCB3YXMgcXVpdGUgY29tbW9uIHRvIHNlZSB0aGUNCiAgICAgbWFqb3JpdHkgb2YgdHJhZmZpYyBl bnRlcmluZyBhbmQgbGVhdmluZyB0aGUgZGF0YSBjZW50ZXIsIGNvbW1vbmx5DQogICAgIHJlZmVy cmVkIHRvIGFzICJub3J0aC1zb3V0aCIgdHJhZmZpYy4gIFRyYWRpdGlvbmFsICJ0cmVlIiB0b3Bv bG9naWVzDQogICAgIHdlcmUgc3VmZmljaWVudCB0byBhY2NvbW1vZGF0ZSBzdWNoIGZsb3dzLCBl dmVuIHdpdGggaGlnaA0KICAgICBvdmVyc3Vic2NyaXB0aW9uIHJhdGlvcyBiZXR3ZWVuIHRoZSBs YXllcnMgb2YgdGhlIG5ldHdvcmsuICBJZiBtb3JlDQogICAgIGJhbmR3aWR0aCB3YXMgcmVxdWly ZWQsIGl0IHdhcyBhZGRlZCBieSAic2NhbGluZyB1cCIgdGhlIG5ldHdvcmsNCiEgICAgZWxlbWVu dHMsIGUuZy4gYnkgdXBncmFkaW5nIHRoZSBkZXZpY2UncyBsaW5lY2FyZHMgb3IgZmFicmljcyBv cg0KICAgICByZXBsYWNpbmcgdGhlIGRldmljZSB3aXRoIG9uZSB3aXRoIGhpZ2hlciBwb3J0IGRl bnNpdHkuDQogIA0KICAgICBUb2RheSBtYW55IGxhcmdlLXNjYWxlIGRhdGEgY2VudGVycyBob3N0 IGFwcGxpY2F0aW9ucyBnZW5lcmF0aW5nDQotLS0gMTc4LDE5MSAtLS0tDQogIDIuMS4gIEJhbmR3 aWR0aCBhbmQgVHJhZmZpYyBQYXR0ZXJucw0KICANCiAgICAgVGhlIHByaW1hcnkgcmVxdWlyZW1l bnQgd2hlbiBidWlsZGluZyBhbiBpbnRlcmNvbm5lY3Rpb24gbmV0d29yayBmb3INCiEgICAgYSBs YXJnZSBudW1iZXIgb2Ygc2VydmVycyBpcyB0byBhY2NvbW1vZGF0ZSBhcHBsaWNhdGlvbiBiYW5k d2lkdGggYW5kDQogICAgIGxhdGVuY3kgcmVxdWlyZW1lbnRzLiAgVW50aWwgcmVjZW50bHkgaXQg d2FzIHF1aXRlIGNvbW1vbiB0byBzZWUgdGhlDQogICAgIG1ham9yaXR5IG9mIHRyYWZmaWMgZW50 ZXJpbmcgYW5kIGxlYXZpbmcgdGhlIGRhdGEgY2VudGVyLCBjb21tb25seQ0KICAgICByZWZlcnJl ZCB0byBhcyAibm9ydGgtc291dGgiIHRyYWZmaWMuICBUcmFkaXRpb25hbCAidHJlZSIgdG9wb2xv Z2llcw0KICAgICB3ZXJlIHN1ZmZpY2llbnQgdG8gYWNjb21tb2RhdGUgc3VjaCBmbG93cywgZXZl biB3aXRoIGhpZ2gNCiAgICAgb3ZlcnN1YnNjcmlwdGlvbiByYXRpb3MgYmV0d2VlbiB0aGUgbGF5 ZXJzIG9mIHRoZSBuZXR3b3JrLiAgSWYgbW9yZQ0KICAgICBiYW5kd2lkdGggd2FzIHJlcXVpcmVk LCBpdCB3YXMgYWRkZWQgYnkgInNjYWxpbmcgdXAiIHRoZSBuZXR3b3JrDQohICAgIGVsZW1lbnRz LCBlLmcuLCBieSB1cGdyYWRpbmcgdGhlIGRldmljZSdzIGxpbmVjYXJkcyBvciBmYWJyaWNzIG9y DQogICAgIHJlcGxhY2luZyB0aGUgZGV2aWNlIHdpdGggb25lIHdpdGggaGlnaGVyIHBvcnQgZGVu c2l0eS4NCiAgDQogICAgIFRvZGF5IG1hbnkgbGFyZ2Utc2NhbGUgZGF0YSBjZW50ZXJzIGhvc3Qg YXBwbGljYXRpb25zIGdlbmVyYXRpbmcNCioqKioqKioqKioqKioqKg0KKioqIDE5NSwyMDEgKioq Kg0KICAgICBbSEFET09QXSwgbWFzc2l2ZSBkYXRhIHJlcGxpY2F0aW9uIGJldHdlZW4gY2x1c3Rl cnMgbmVlZGVkIGJ5IGNlcnRhaW4NCiAgICAgYXBwbGljYXRpb25zLCBvciB2aXJ0dWFsIG1hY2hp bmUgbWlncmF0aW9ucy4gIFNjYWxpbmcgdHJhZGl0aW9uYWwNCiAgICAgdHJlZSB0b3BvbG9naWVz IHRvIG1hdGNoIHRoZXNlIGJhbmR3aWR0aCBkZW1hbmRzIGJlY29tZXMgZWl0aGVyIHRvbw0KISAg ICBleHBlbnNpdmUgb3IgaW1wb3NzaWJsZSBkdWUgdG8gcGh5c2ljYWwgbGltaXRhdGlvbnMsIGUu Zy4gcG9ydA0KICAgICBkZW5zaXR5IGluIGEgc3dpdGNoLg0KICANCiAgMi4yLiAgQ0FQRVggTWlu aW1pemF0aW9uDQotLS0gMTk1LDIwMSAtLS0tDQogICAgIFtIQURPT1BdLCBtYXNzaXZlIGRhdGEg cmVwbGljYXRpb24gYmV0d2VlbiBjbHVzdGVycyBuZWVkZWQgYnkgY2VydGFpbg0KICAgICBhcHBs aWNhdGlvbnMsIG9yIHZpcnR1YWwgbWFjaGluZSBtaWdyYXRpb25zLiAgU2NhbGluZyB0cmFkaXRp b25hbA0KICAgICB0cmVlIHRvcG9sb2dpZXMgdG8gbWF0Y2ggdGhlc2UgYmFuZHdpZHRoIGRlbWFu ZHMgYmVjb21lcyBlaXRoZXIgdG9vDQohICAgIGV4cGVuc2l2ZSBvciBpbXBvc3NpYmxlIGR1ZSB0 byBwaHlzaWNhbCBsaW1pdGF0aW9ucywgZS5nLiwgcG9ydA0KICAgICBkZW5zaXR5IGluIGEgc3dp dGNoLg0KICANCiAgMi4yLiAgQ0FQRVggTWluaW1pemF0aW9uDQoqKioqKioqKioqKioqKioNCioq KiAyMDksMjE1ICoqKioNCiAgDQogICAgIG8gIFVuaWZ5aW5nIGFsbCBuZXR3b3JrIGVsZW1lbnRz LCBwcmVmZXJhYmx5IHVzaW5nIHRoZSBzYW1lIGhhcmR3YXJlDQogICAgICAgIHR5cGUgb3IgZXZl biB0aGUgc2FtZSBkZXZpY2UuICBUaGlzIGFsbG93cyBmb3Igdm9sdW1lIHByaWNpbmcgb24NCiEg ICAgICAgYnVsayBwdXJjaGFzZXMgYW5kIHJlZHVjZWQgbWFpbnRlbmFuY2UgYW5kIHNwYXJpbmcg Y29zdHMuDQogIA0KICAgICBvICBEcml2aW5nIGNvc3RzIGRvd24gdXNpbmcgY29tcGV0aXRpdmUg cHJlc3N1cmVzLCBieSBpbnRyb2R1Y2luZw0KICAgICAgICBtdWx0aXBsZSBuZXR3b3JrIGVxdWlw bWVudCB2ZW5kb3JzLg0KLS0tIDIwOSwyMTUgLS0tLQ0KICANCiAgICAgbyAgVW5pZnlpbmcgYWxs IG5ldHdvcmsgZWxlbWVudHMsIHByZWZlcmFibHkgdXNpbmcgdGhlIHNhbWUgaGFyZHdhcmUNCiAg ICAgICAgdHlwZSBvciBldmVuIHRoZSBzYW1lIGRldmljZS4gIFRoaXMgYWxsb3dzIGZvciB2b2x1 bWUgcHJpY2luZyBvbg0KISAgICAgICBidWxrIHB1cmNoYXNlcyBhbmQgcmVkdWNlZCBtYWludGVu YW5jZSBhbmQgaW52ZW50b3J5IGNvc3RzLg0KICANCiAgICAgbyAgRHJpdmluZyBjb3N0cyBkb3du IHVzaW5nIGNvbXBldGl0aXZlIHByZXNzdXJlcywgYnkgaW50cm9kdWNpbmcNCiAgICAgICAgbXVs dGlwbGUgbmV0d29yayBlcXVpcG1lbnQgdmVuZG9ycy4NCioqKioqKioqKioqKioqKg0KKioqIDIz NCwyNDQgKioqKg0KICAgICBtaW5pbWl6ZXMgc29mdHdhcmUgaXNzdWUtcmVsYXRlZCBmYWlsdXJl cy4NCiAgDQogICAgIEFuIGltcG9ydGFudCBhc3BlY3Qgb2YgT3BlcmF0aW9uYWwgRXhwZW5kaXR1 cmUgKE9QRVgpIG1pbmltaXphdGlvbiBpcw0KISAgICByZWR1Y2luZyBzaXplIG9mIGZhaWx1cmUg ZG9tYWlucyBpbiB0aGUgbmV0d29yay4gIEV0aGVybmV0IG5ldHdvcmtzDQogICAgIGFyZSBrbm93 biB0byBiZSBzdXNjZXB0aWJsZSB0byBicm9hZGNhc3Qgb3IgdW5pY2FzdCB0cmFmZmljIHN0b3Jt cw0KICAgICB0aGF0IGNhbiBoYXZlIGEgZHJhbWF0aWMgaW1wYWN0IG9uIG5ldHdvcmsgcGVyZm9y bWFuY2UgYW5kDQogICAgIGF2YWlsYWJpbGl0eS4gIFRoZSB1c2Ugb2YgYSBmdWxseSByb3V0ZWQg ZGVzaWduIHNpZ25pZmljYW50bHkgcmVkdWNlcw0KISAgICB0aGUgc2l6ZSBvZiB0aGUgZGF0YSBw bGFuZSBmYWlsdXJlIGRvbWFpbnMgLSBpLmUuIGxpbWl0cyB0aGVtIHRvIHRoZQ0KICAgICBsb3dl c3QgbGV2ZWwgaW4gdGhlIG5ldHdvcmsgaGllcmFyY2h5LiAgSG93ZXZlciwgc3VjaCBkZXNpZ25z DQogICAgIGludHJvZHVjZSB0aGUgcHJvYmxlbSBvZiBkaXN0cmlidXRlZCBjb250cm9sIHBsYW5l IGZhaWx1cmVzLiAgVGhpcw0KICAgICBvYnNlcnZhdGlvbiBjYWxscyBmb3Igc2ltcGxlciBhbmQg bGVzcyBjb250cm9sIHBsYW5lIHByb3RvY29scyB0bw0KLS0tIDIzNCwyNDQgLS0tLQ0KICAgICBt aW5pbWl6ZXMgc29mdHdhcmUgaXNzdWUtcmVsYXRlZCBmYWlsdXJlcy4NCiAgDQogICAgIEFuIGlt cG9ydGFudCBhc3BlY3Qgb2YgT3BlcmF0aW9uYWwgRXhwZW5kaXR1cmUgKE9QRVgpIG1pbmltaXph dGlvbiBpcw0KISAgICByZWR1Y2luZyB0aGUgc2l6ZSBvZiBmYWlsdXJlIGRvbWFpbnMgaW4gdGhl IG5ldHdvcmsuICBFdGhlcm5ldA0KbmV0d29ya3MNCiAgICAgYXJlIGtub3duIHRvIGJlIHN1c2Nl cHRpYmxlIHRvIGJyb2FkY2FzdCBvciB1bmljYXN0IHRyYWZmaWMgc3Rvcm1zDQogICAgIHRoYXQg Y2FuIGhhdmUgYSBkcmFtYXRpYyBpbXBhY3Qgb24gbmV0d29yayBwZXJmb3JtYW5jZSBhbmQNCiAg ICAgYXZhaWxhYmlsaXR5LiAgVGhlIHVzZSBvZiBhIGZ1bGx5IHJvdXRlZCBkZXNpZ24gc2lnbmlm aWNhbnRseSByZWR1Y2VzDQohICAgIHRoZSBzaXplIG9mIHRoZSBkYXRhIHBsYW5lIGZhaWx1cmUg ZG9tYWlucywgaS5lLiwgbGltaXRzIHRoZW0gdG8gdGhlDQogICAgIGxvd2VzdCBsZXZlbCBpbiB0 aGUgbmV0d29yayBoaWVyYXJjaHkuICBIb3dldmVyLCBzdWNoIGRlc2lnbnMNCiAgICAgaW50cm9k dWNlIHRoZSBwcm9ibGVtIG9mIGRpc3RyaWJ1dGVkIGNvbnRyb2wgcGxhbmUgZmFpbHVyZXMuICBU aGlzDQogICAgIG9ic2VydmF0aW9uIGNhbGxzIGZvciBzaW1wbGVyIGFuZCBsZXNzIGNvbnRyb2wg cGxhbmUgcHJvdG9jb2xzIHRvDQoqKioqKioqKioqKioqKioNCioqKiAyNTMsMjU5ICoqKioNCiAg ICAgcGVyZm9ybWVkIGJ5IG5ldHdvcmsgZGV2aWNlcy4gIFRyYWRpdGlvbmFsbHksIGxvYWQgYmFs YW5jZXJzIGFyZQ0KICAgICBkZXBsb3llZCBhcyBkZWRpY2F0ZWQgZGV2aWNlcyBpbiB0aGUgdHJh ZmZpYyBmb3J3YXJkaW5nIHBhdGguICBUaGUNCiAgICAgcHJvYmxlbSBhcmlzZXMgaW4gc2NhbGlu ZyBsb2FkIGJhbGFuY2VycyB1bmRlciBncm93aW5nIHRyYWZmaWMNCiEgICAgZGVtYW5kLiAgQSBw cmVmZXJhYmxlIHNvbHV0aW9uIHdvdWxkIGJlIGFibGUgdG8gc2NhbGUgbG9hZCBiYWxhbmNpbmcN CiAgICAgbGF5ZXIgaG9yaXpvbnRhbGx5LCBieSBhZGRpbmcgbW9yZSBvZiB0aGUgdW5pZm9ybSBu b2RlcyBhbmQNCiAgICAgZGlzdHJpYnV0aW5nIGluY29taW5nIHRyYWZmaWMgYWNyb3NzIHRoZXNl IG5vZGVzLiAgSW4gc2l0dWF0aW9ucyBsaWtlDQogICAgIHRoaXMsIGFuIGlkZWFsIGNob2ljZSB3 b3VsZCBiZSB0byB1c2UgbmV0d29yayBpbmZyYXN0cnVjdHVyZSBpdHNlbGYNCi0tLSAyNTMsMjU5 IC0tLS0NCiAgICAgcGVyZm9ybWVkIGJ5IG5ldHdvcmsgZGV2aWNlcy4gIFRyYWRpdGlvbmFsbHks IGxvYWQgYmFsYW5jZXJzIGFyZQ0KICAgICBkZXBsb3llZCBhcyBkZWRpY2F0ZWQgZGV2aWNlcyBp biB0aGUgdHJhZmZpYyBmb3J3YXJkaW5nIHBhdGguICBUaGUNCiAgICAgcHJvYmxlbSBhcmlzZXMg aW4gc2NhbGluZyBsb2FkIGJhbGFuY2VycyB1bmRlciBncm93aW5nIHRyYWZmaWMNCiEgICAgZGVt YW5kLiAgQSBwcmVmZXJhYmxlIHNvbHV0aW9uIHdvdWxkIGJlIGFibGUgdG8gc2NhbGUgdGhlIGxv YWQNCmJhbGFuY2luZw0KICAgICBsYXllciBob3Jpem9udGFsbHksIGJ5IGFkZGluZyBtb3JlIG9m IHRoZSB1bmlmb3JtIG5vZGVzIGFuZA0KICAgICBkaXN0cmlidXRpbmcgaW5jb21pbmcgdHJhZmZp YyBhY3Jvc3MgdGhlc2Ugbm9kZXMuICBJbiBzaXR1YXRpb25zIGxpa2UNCiAgICAgdGhpcywgYW4g aWRlYWwgY2hvaWNlIHdvdWxkIGJlIHRvIHVzZSBuZXR3b3JrIGluZnJhc3RydWN0dXJlIGl0c2Vs Zg0KKioqKioqKioqKioqKioqDQoqKiogMzA1LDMxMSAqKioqDQogIDMuMS4gIFRyYWRpdGlvbmFs IERDIFRvcG9sb2d5DQogIA0KICAgICBJbiB0aGUgbmV0d29ya2luZyBpbmR1c3RyeSwgYSBjb21t b24gZGVzaWduIGNob2ljZSBmb3IgZGF0YSBjZW50ZXJzDQohICAgIHR5cGljYWxseSBsb29rIGxp a2UgYSAodXBzaWRlIGRvd24pIHRyZWUgd2l0aCByZWR1bmRhbnQgdXBsaW5rcyBhbmQNCiAgICAg dGhyZWUgbGF5ZXJzIG9mIGhpZXJhcmNoeSBuYW1lbHk7IGNvcmUsIGFnZ3JlZ2F0aW9uL2Rpc3Ry aWJ1dGlvbiBhbmQNCiAgICAgYWNjZXNzIGxheWVycyAoc2VlIEZpZ3VyZSAxKS4gIFRvIGFjY29t bW9kYXRlIGJhbmR3aWR0aCBkZW1hbmRzLCBlYWNoDQogICAgIGhpZ2hlciBsYXllciwgZnJvbSBz ZXJ2ZXIgdG93YXJkcyBEQyBlZ3Jlc3Mgb3IgV0FOLCBoYXMgaGlnaGVyIHBvcnQNCi0tLSAzMDUs MzExIC0tLS0NCiAgMy4xLiAgVHJhZGl0aW9uYWwgREMgVG9wb2xvZ3kNCiAgDQogICAgIEluIHRo ZSBuZXR3b3JraW5nIGluZHVzdHJ5LCBhIGNvbW1vbiBkZXNpZ24gY2hvaWNlIGZvciBkYXRhIGNl bnRlcnMNCiEgICAgdHlwaWNhbGx5IGxvb2sgbGlrZSBhbiAodXBzaWRlIGRvd24pIHRyZWUgd2l0 aCByZWR1bmRhbnQgdXBsaW5rcyBhbmQNCiAgICAgdGhyZWUgbGF5ZXJzIG9mIGhpZXJhcmNoeSBu YW1lbHk7IGNvcmUsIGFnZ3JlZ2F0aW9uL2Rpc3RyaWJ1dGlvbiBhbmQNCiAgICAgYWNjZXNzIGxh eWVycyAoc2VlIEZpZ3VyZSAxKS4gIFRvIGFjY29tbW9kYXRlIGJhbmR3aWR0aCBkZW1hbmRzLCBl YWNoDQogICAgIGhpZ2hlciBsYXllciwgZnJvbSBzZXJ2ZXIgdG93YXJkcyBEQyBlZ3Jlc3Mgb3Ig V0FOLCBoYXMgaGlnaGVyIHBvcnQNCioqKioqKioqKioqKioqKg0KKioqIDM3MywzNzkgKioqKg0K ICAgICB0b3BvbG9neSwgc29tZXRpbWVzIGNhbGxlZCAiZmF0LXRyZWUiIChzZWUsIGZvciBleGFt cGxlLCBbSU5URVJDT05dDQogICAgIGFuZCBbQUxGQVJFUzIwMDhdKS4gIFRoaXMgdG9wb2xvZ3kg ZmVhdHVyZXMgYW4gb2RkIG51bWJlciBvZiBzdGFnZXMNCiAgICAgKHNvbWV0aW1lcyBrbm93biBh cyBkaW1lbnNpb25zKSBhbmQgaXMgY29tbW9ubHkgbWFkZSBvZiB1bmlmb3JtDQohICAgIGVsZW1l bnRzLCBlLmcuIG5ldHdvcmsgc3dpdGNoZXMgd2l0aCB0aGUgc2FtZSBwb3J0IGNvdW50LiAgVGhl cmVmb3JlLA0KICAgICB0aGUgY2hvaWNlIG9mIGZvbGRlZCBDbG9zIHRvcG9sb2d5IHNhdGlzZmll cyBSRVExIGFuZCBmYWNpbGl0YXRlcw0KICAgICBSRVEyLiAgU2VlIEZpZ3VyZSAyIGJlbG93IGZv ciBhbiBleGFtcGxlIG9mIGEgZm9sZGVkIDMtc3RhZ2UgQ2xvcw0KICAgICB0b3BvbG9neSAoMyBz dGFnZXMgY291bnRpbmcgVGllci0yIHN0YWdlIHR3aWNlLCB3aGVuIHRyYWNpbmcgYSBwYWNrZXQN Ci0tLSAzNzMsMzc5IC0tLS0NCiAgICAgdG9wb2xvZ3ksIHNvbWV0aW1lcyBjYWxsZWQgImZhdC10 cmVlIiAoc2VlLCBmb3IgZXhhbXBsZSwgW0lOVEVSQ09OXQ0KICAgICBhbmQgW0FMRkFSRVMyMDA4 XSkuICBUaGlzIHRvcG9sb2d5IGZlYXR1cmVzIGFuIG9kZCBudW1iZXIgb2Ygc3RhZ2VzDQogICAg IChzb21ldGltZXMga25vd24gYXMgZGltZW5zaW9ucykgYW5kIGlzIGNvbW1vbmx5IG1hZGUgb2Yg dW5pZm9ybQ0KISAgICBlbGVtZW50cywgZS5nLiwgbmV0d29yayBzd2l0Y2hlcyB3aXRoIHRoZSBz YW1lIHBvcnQgY291bnQuICBUaGVyZWZvcmUsDQogICAgIHRoZSBjaG9pY2Ugb2YgZm9sZGVkIENs b3MgdG9wb2xvZ3kgc2F0aXNmaWVzIFJFUTEgYW5kIGZhY2lsaXRhdGVzDQogICAgIFJFUTIuICBT ZWUgRmlndXJlIDIgYmVsb3cgZm9yIGFuIGV4YW1wbGUgb2YgYSBmb2xkZWQgMy1zdGFnZSBDbG9z DQogICAgIHRvcG9sb2d5ICgzIHN0YWdlcyBjb3VudGluZyBUaWVyLTIgc3RhZ2UgdHdpY2UsIHdo ZW4gdHJhY2luZyBhIHBhY2tldA0KKioqKioqKioqKioqKioqDQoqKiogNDYwLDQ2NiAqKioqDQog IDMuMi4zLiAgU2NhbGluZyB0aGUgQ2xvcyB0b3BvbG9neQ0KICANCiAgICAgQSBDbG9zIHRvcG9s b2d5IGNhbiBiZSBzY2FsZWQgZWl0aGVyIGJ5IGluY3JlYXNpbmcgbmV0d29yayBlbGVtZW50DQoh ICAgIHBvcnQgZGVuc2l0eSBvciBhZGRpbmcgbW9yZSBzdGFnZXMsIGUuZy4gbW92aW5nIHRvIGEg NS1zdGFnZSBDbG9zLCBhcw0KICAgICBpbGx1c3RyYXRlZCBpbiBGaWd1cmUgMyBiZWxvdzoNCiAg DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGllci0xDQotLS0gNDYw LDQ2NiAtLS0tDQogIDMuMi4zLiAgU2NhbGluZyB0aGUgQ2xvcyB0b3BvbG9neQ0KICANCiAgICAg QSBDbG9zIHRvcG9sb2d5IGNhbiBiZSBzY2FsZWQgZWl0aGVyIGJ5IGluY3JlYXNpbmcgbmV0d29y ayBlbGVtZW50DQohICAgIHBvcnQgZGVuc2l0eSBvciBhZGRpbmcgbW9yZSBzdGFnZXMsIGUuZy4s IG1vdmluZyB0byBhIDUtc3RhZ2UgQ2xvcywgYXMNCiAgICAgaWxsdXN0cmF0ZWQgaW4gRmlndXJl IDMgYmVsb3c6DQogIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRp ZXItMQ0KKioqKioqKioqKioqKioqDQoqKiogNTIzLDUyOSAqKioqDQogIDMuMi40LiAgTWFuYWdp bmcgdGhlIFNpemUgb2YgQ2xvcyBUb3BvbG9neSBUaWVycw0KICANCiAgICAgSWYgYSBkYXRhIGNl bnRlciBuZXR3b3JrIHNpemUgaXMgc21hbGwsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZHVjZSB0aGUN CiEgICAgbnVtYmVyIG9mIHN3aXRjaGVzIGluIFRpZXItMSBvciBUaWVyLTIgb2YgQ2xvcyB0b3Bv bG9neSBieSBhIGZhY3Rvcg0KICAgICBvZiB0d28uICBUbyB1bmRlcnN0YW5kIGhvdyB0aGlzIGNv dWxkIGJlIGRvbmUsIHRha2UgVGllci0xIGFzIGFuDQogICAgIGV4YW1wbGUuICBFdmVyeSBUaWVy LTIgZGV2aWNlIGNvbm5lY3RzIHRvIGEgc2luZ2xlIGdyb3VwIG9mIFRpZXItMQ0KICAgICBkZXZp Y2VzLiAgSWYgaGFsZiBvZiB0aGUgcG9ydHMgb24gZWFjaCBvZiB0aGUgVGllci0xIGRldmljZXMg YXJlIG5vdA0KLS0tIDUyMyw1MjkgLS0tLQ0KICAzLjIuNC4gIE1hbmFnaW5nIHRoZSBTaXplIG9m IENsb3MgVG9wb2xvZ3kgVGllcnMNCiAgDQogICAgIElmIGEgZGF0YSBjZW50ZXIgbmV0d29yayBz aXplIGlzIHNtYWxsLCBpdCBpcyBwb3NzaWJsZSB0byByZWR1Y2UgdGhlDQohICAgIG51bWJlciBv ZiBzd2l0Y2hlcyBpbiBUaWVyLTEgb3IgVGllci0yIG9mIGEgQ2xvcyB0b3BvbG9neSBieSBhIGZh Y3Rvcg0KICAgICBvZiB0d28uICBUbyB1bmRlcnN0YW5kIGhvdyB0aGlzIGNvdWxkIGJlIGRvbmUs IHRha2UgVGllci0xIGFzIGFuDQogICAgIGV4YW1wbGUuICBFdmVyeSBUaWVyLTIgZGV2aWNlIGNv bm5lY3RzIHRvIGEgc2luZ2xlIGdyb3VwIG9mIFRpZXItMQ0KICAgICBkZXZpY2VzLiAgSWYgaGFs ZiBvZiB0aGUgcG9ydHMgb24gZWFjaCBvZiB0aGUgVGllci0xIGRldmljZXMgYXJlIG5vdA0KKioq KioqKioqKioqKioqDQoqKiogNTc0LDU4MCAqKioqDQogICAgIG9yaWdpbmFsbHkgZGVmaW5lZCBp biBbSUVFRTgwMjFELTE5OTBdIGZvciBsb29wIGZyZWUgdG9wb2xvZ3kNCiAgICAgY3JlYXRpb24s IHR5cGljYWxseSB1dGlsaXppbmcgdmFyaWFudHMgb2YgdGhlIHRyYWRpdGlvbmFsIERDIHRvcG9s b2d5DQogICAgIGRlc2NyaWJlZCBpbiBTZWN0aW9uIDMuMS4gIEF0IHRoZSB0aW1lLCBtYW55IERD IHN3aXRjaGVzIGVpdGhlciBkaWQNCiEgICAgbm90IHN1cHBvcnQgTGF5ZXIgMyByb3V0ZWQgcHJv dG9jb2xzIG9yIHN1cHBvcnRlZCBpdCB3aXRoIGFkZGl0aW9uYWwNCiAgICAgbGljZW5zaW5nIGZl ZXMsIHdoaWNoIHBsYXllZCBhIHBhcnQgaW4gdGhlIGRlc2lnbiBjaG9pY2UuICBBbHRob3VnaA0K ICAgICBtYW55IGVuaGFuY2VtZW50cyBoYXZlIGJlZW4gbWFkZSB0aHJvdWdoIHRoZSBpbnRyb2R1 Y3Rpb24gb2YgUmFwaWQNCiAgICAgU3Bhbm5pbmcgVHJlZSBQcm90b2NvbCAoUlNUUCkgaW4gdGhl IGxhdGVzdCByZXZpc2lvbiBvZg0KLS0tIDU3NCw1ODAgLS0tLQ0KICAgICBvcmlnaW5hbGx5IGRl ZmluZWQgaW4gW0lFRUU4MDIxRC0xOTkwXSBmb3IgbG9vcCBmcmVlIHRvcG9sb2d5DQogICAgIGNy ZWF0aW9uLCB0eXBpY2FsbHkgdXRpbGl6aW5nIHZhcmlhbnRzIG9mIHRoZSB0cmFkaXRpb25hbCBE QyB0b3BvbG9neQ0KICAgICBkZXNjcmliZWQgaW4gU2VjdGlvbiAzLjEuICBBdCB0aGUgdGltZSwg bWFueSBEQyBzd2l0Y2hlcyBlaXRoZXIgZGlkDQohICAgIG5vdCBzdXBwb3J0IExheWVyIDMgcm91 dGluZyBwcm90b2NvbHMgb3Igc3VwcG9ydGVkIHRoZW0gd2l0aA0KYWRkaXRpb25hbA0KICAgICBs aWNlbnNpbmcgZmVlcywgd2hpY2ggcGxheWVkIGEgcGFydCBpbiB0aGUgZGVzaWduIGNob2ljZS4g IEFsdGhvdWdoDQogICAgIG1hbnkgZW5oYW5jZW1lbnRzIGhhdmUgYmVlbiBtYWRlIHRocm91Z2gg dGhlIGludHJvZHVjdGlvbiBvZiBSYXBpZA0KICAgICBTcGFubmluZyBUcmVlIFByb3RvY29sIChS U1RQKSBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mDQoqKioqKioqKioqKioqKioNCioqKiA1OTks NjA1ICoqKioNCiAgICAgYXMgdGhlIGJhY2t1cCBmb3IgbG9vcCBwcmV2ZW50aW9uLiAgVGhlIG1h am9yIGRvd25zaWRlcyBvZiB0aGlzDQogICAgIGFwcHJvYWNoIGFyZSB0aGUgbGFjayBvZiBhYmls aXR5IHRvIHNjYWxlIGxpbmVhcmx5IHBhc3QgdHdvIGluIG1vc3QNCiAgICAgaW1wbGVtZW50YXRp b25zLCBsYWNrIG9mIHN0YW5kYXJkcyBiYXNlZCBpbXBsZW1lbnRhdGlvbnMsIGFuZCBhZGRlZA0K ISAgICBmYWlsdXJlIGRvbWFpbiByaXNrIG9mIGtlZXBpbmcgc3RhdGUgYmV0d2VlbiB0aGUgZGV2 aWNlcy4NCiAgDQogICAgIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IGJ1aWxkaW5nIGxhcmdlLCBo b3Jpem9udGFsbHkgc2NhbGFibGUsIExheWVyDQogICAgIDIgb25seSBuZXR3b3JrcyB3aXRob3V0 IFNUUCBpcyBwb3NzaWJsZSByZWNlbnRseSB0aHJvdWdoIHRoZQ0KLS0tIDU5OSw2MDUgLS0tLQ0K ICAgICBhcyB0aGUgYmFja3VwIGZvciBsb29wIHByZXZlbnRpb24uICBUaGUgbWFqb3IgZG93bnNp ZGVzIG9mIHRoaXMNCiAgICAgYXBwcm9hY2ggYXJlIHRoZSBsYWNrIG9mIGFiaWxpdHkgdG8gc2Nh bGUgbGluZWFybHkgcGFzdCB0d28gaW4gbW9zdA0KICAgICBpbXBsZW1lbnRhdGlvbnMsIGxhY2sg b2Ygc3RhbmRhcmRzIGJhc2VkIGltcGxlbWVudGF0aW9ucywgYW5kIGFkZGVkDQohICAgIHRoZSBm YWlsdXJlIGRvbWFpbiByaXNrIG9mIHN5bmNpbmcgc3RhdGUgYmV0d2VlbiB0aGUgZGV2aWNlcy4N CiAgDQogICAgIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IGJ1aWxkaW5nIGxhcmdlLCBob3Jpem9u dGFsbHkgc2NhbGFibGUsIExheWVyDQogICAgIDIgb25seSBuZXR3b3JrcyB3aXRob3V0IFNUUCBp cyBwb3NzaWJsZSByZWNlbnRseSB0aHJvdWdoIHRoZQ0KKioqKioqKioqKioqKioqDQoqKiogNjIx LDYzMSAqKioqDQogICAgIEZpbmFsbHksIG5laXRoZXIgdGhlIGJhc2UgVFJJTEwgc3BlY2lmaWNh dGlvbiBub3IgdGhlIE0tTEFHIGFwcHJvYWNoDQogICAgIHRvdGFsbHkgZWxpbWluYXRlIHRoZSBw cm9ibGVtIG9mIHRoZSBzaGFyZWQgYnJvYWRjYXN0IGRvbWFpbiwgdGhhdCBpcw0KICAgICBzbyBk ZXRyaW1lbnRhbCB0byB0aGUgb3BlcmF0aW9ucyBvZiBhbnkgTGF5ZXIgMiwgRXRoZXJuZXQgYmFz ZWQNCiEgICAgc29sdXRpb25zLiAgTGF0ZXIgVFJJTEwgZXh0ZW5zaW9ucyBoYXZlIGJlZW4gcHJv cG9zZWQgdG8gc29sdmUgdGhlDQogICAgIHRoaXMgcHJvYmxlbSBzdGF0ZW1lbnQgcHJpbWFyaWx5 IGJhc2VkIG9uIHRoZSBhcHByb2FjaGVzIG91dGxpbmVkIGluDQogICAgIFtSRkM3MDY3XSwgYnV0 IHRoaXMgZXZlbiBmdXJ0aGVyIGxpbWl0cyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZQ0KISAgICBp bnRlcm9wZXJhYmxlIGltcGxlbWVudGF0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHRvIGJ1aWxkIGEg ZmFicmljLA0KISAgICB0aGVyZWZvcmUgVFJJTEwgYmFzZWQgZGVzaWducyBoYXZlIGlzc3VlcyBt ZWV0aW5nIFJFUTIsIFJFUTMsIGFuZA0KICAgICBSRVE0Lg0KICANCiAgNC4yLiAgSHlicmlkIEwy L0wzIERlc2lnbnMNCi0tLSA2MjEsNjMxIC0tLS0NCiAgICAgRmluYWxseSwgbmVpdGhlciB0aGUg YmFzZSBUUklMTCBzcGVjaWZpY2F0aW9uIG5vciB0aGUgTS1MQUcgYXBwcm9hY2gNCiAgICAgdG90 YWxseSBlbGltaW5hdGUgdGhlIHByb2JsZW0gb2YgdGhlIHNoYXJlZCBicm9hZGNhc3QgZG9tYWlu LCB0aGF0IGlzDQogICAgIHNvIGRldHJpbWVudGFsIHRvIHRoZSBvcGVyYXRpb25zIG9mIGFueSBM YXllciAyLCBFdGhlcm5ldCBiYXNlZA0KISAgICBzb2x1dGlvbi4gIExhdGVyIFRSSUxMIGV4dGVu c2lvbnMgaGF2ZSBiZWVuIHByb3Bvc2VkIHRvIHNvbHZlIHRoZQ0KICAgICB0aGlzIHByb2JsZW0g c3RhdGVtZW50IHByaW1hcmlseSBiYXNlZCBvbiB0aGUgYXBwcm9hY2hlcyBvdXRsaW5lZCBpbg0K ICAgICBbUkZDNzA2N10sIGJ1dCB0aGlzIGV2ZW4gZnVydGhlciBsaW1pdHMgdGhlIG51bWJlciBv ZiBhdmFpbGFibGUNCiEgICAgaW50ZXJvcGVyYWJsZSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBjYW4g YmUgdXNlZCB0byBidWlsZCBhIGZhYnJpYy4NCiEgICAgVGhlcmVmb3JlLCBUUklMTCBiYXNlZCBk ZXNpZ25zIGhhdmUgaXNzdWVzIG1lZXRpbmcgUkVRMiwgUkVRMywgYW5kDQogICAgIFJFUTQuDQog IA0KICA0LjIuICBIeWJyaWQgTDIvTDMgRGVzaWducw0KKioqKioqKioqKioqKioqDQoqKiogNjM1 LDY0MSAqKioqDQogICAgIGluIGVpdGhlciB0aGUgVGllci0xIG9yIFRpZXItMiBwYXJ0cyBvZiB0 aGUgbmV0d29yayBhbmQgZGl2aWRpbmcgdGhlDQogICAgIExheWVyIDIgZG9tYWluIGludG8gbnVt ZXJvdXMsIHNtYWxsZXIgZG9tYWlucy4gIFRoaXMgZGVzaWduIGhhcw0KICAgICBhbGxvd2VkIGRh dGEgY2VudGVycyB0byBzY2FsZSB1cCwgYnV0IGF0IHRoZSBjb3N0IG9mIGNvbXBsZXhpdHkgaW4N CiEgICAgdGhlIG5ldHdvcmsgbWFuYWdpbmcgbXVsdGlwbGUgcHJvdG9jb2xzLiAgRm9yIHRoZSBm b2xsb3dpbmcgcmVhc29ucywNCiAgICAgb3BlcmF0b3JzIGhhdmUgcmV0YWluZWQgTGF5ZXIgMiBp biBlaXRoZXIgdGhlIGFjY2VzcyAoVGllci0zKSBvciBib3RoDQogICAgIGFjY2VzcyBhbmQgYWdn cmVnYXRpb24gKFRpZXItMyBhbmQgVGllci0yKSBwYXJ0cyBvZiB0aGUgbmV0d29yazoNCiAgDQot LS0gNjM1LDY0MSAtLS0tDQogICAgIGluIGVpdGhlciB0aGUgVGllci0xIG9yIFRpZXItMiBwYXJ0 cyBvZiB0aGUgbmV0d29yayBhbmQgZGl2aWRpbmcgdGhlDQogICAgIExheWVyIDIgZG9tYWluIGlu dG8gbnVtZXJvdXMsIHNtYWxsZXIgZG9tYWlucy4gIFRoaXMgZGVzaWduIGhhcw0KICAgICBhbGxv d2VkIGRhdGEgY2VudGVycyB0byBzY2FsZSB1cCwgYnV0IGF0IHRoZSBjb3N0IG9mIGNvbXBsZXhp dHkgaW4NCiEgICAgdGhlIG1hbmFnaW5nIG11bHRpcGxlIG5ldHdvcmsgcHJvdG9jb2xzLiAgRm9y IHRoZSBmb2xsb3dpbmcgcmVhc29ucywNCiAgICAgb3BlcmF0b3JzIGhhdmUgcmV0YWluZWQgTGF5 ZXIgMiBpbiBlaXRoZXIgdGhlIGFjY2VzcyAoVGllci0zKSBvciBib3RoDQogICAgIGFjY2VzcyBh bmQgYWdncmVnYXRpb24gKFRpZXItMyBhbmQgVGllci0yKSBwYXJ0cyBvZiB0aGUgbmV0d29yazoN CiAgDQoqKioqKioqKioqKioqKioNCioqKiA2NDQsNjUwICoqKioNCiAgDQogICAgIG8gIFNlYW1s ZXNzIG1vYmlsaXR5IGZvciB2aXJ0dWFsIG1hY2hpbmVzIHRoYXQgcmVxdWlyZSB0aGUNCiAgICAg ICAgcHJlc2VydmF0aW9uIG9mIElQIGFkZHJlc3NlcyB3aGVuIGEgdmlydHVhbCBtYWNoaW5lIG1v dmVzIHRvDQohICAgICAgIGRpZmZlcmVudCBUaWVyLTMgc3dpdGNoLg0KICANCiAgICAgbyAgU2lt cGxpZmllZCBJUCBhZGRyZXNzaW5nID0gbGVzcyBJUCBzdWJuZXRzIGFyZSByZXF1aXJlZCBmb3Ig dGhlDQogICAgICAgIGRhdGEgY2VudGVyLg0KLS0tIDY0NCw2NTAgLS0tLQ0KICANCiAgICAgbyAg U2VhbWxlc3MgbW9iaWxpdHkgZm9yIHZpcnR1YWwgbWFjaGluZXMgdGhhdCByZXF1aXJlIHRoZQ0K ICAgICAgICBwcmVzZXJ2YXRpb24gb2YgSVAgYWRkcmVzc2VzIHdoZW4gYSB2aXJ0dWFsIG1hY2hp bmUgbW92ZXMgdG8NCiEgICAgICAgYSBkaWZmZXJlbnQgVGllci0zIHN3aXRjaC4NCiAgDQogICAg IG8gIFNpbXBsaWZpZWQgSVAgYWRkcmVzc2luZyA9IGxlc3MgSVAgc3VibmV0cyBhcmUgcmVxdWly ZWQgZm9yIHRoZQ0KICAgICAgICBkYXRhIGNlbnRlci4NCioqKioqKioqKioqKioqKg0KKioqIDY3 OSw2ODYgKioqKg0KICAgICBhZG9wdGlvbiBpbiBuZXR3b3JrcyB3aGVyZSBsYXJnZSBMYXllciAy IGFkamFjZW5jeSBhbmQgbGFyZ2VyIHNpemUNCiAgICAgTGF5ZXIgMyBzdWJuZXRzIGFyZSBub3Qg YXMgY3JpdGljYWwgY29tcGFyZWQgdG8gbmV0d29yayBzY2FsYWJpbGl0eQ0KICAgICBhbmQgc3Rh YmlsaXR5LiAgQXBwbGljYXRpb24gcHJvdmlkZXJzIGFuZCBuZXR3b3JrIG9wZXJhdG9ycyBjb250 aW51ZQ0KISAgICB0byBhbHNvIGRldmVsb3AgbmV3IHNvbHV0aW9ucyB0byBtZWV0IHNvbWUgb2Yg dGhlIHJlcXVpcmVtZW50cyB0aGF0DQohICAgIHByZXZpb3VzbHkgaGF2ZSBkcml2ZW4gbGFyZ2Ug TGF5ZXIgMiBkb21haW5zIGJ5IHVzaW5nIHZhcmlvdXMgb3ZlcmxheQ0KICAgICBvciB0dW5uZWxp bmcgdGVjaG5pcXVlcy4NCiAgDQogIDUuICBSb3V0aW5nIFByb3RvY29sIFNlbGVjdGlvbiBhbmQg RGVzaWduDQotLS0gNjc5LDY4NiAtLS0tDQogICAgIGFkb3B0aW9uIGluIG5ldHdvcmtzIHdoZXJl IGxhcmdlIExheWVyIDIgYWRqYWNlbmN5IGFuZCBsYXJnZXIgc2l6ZQ0KICAgICBMYXllciAzIHN1 Ym5ldHMgYXJlIG5vdCBhcyBjcml0aWNhbCBjb21wYXJlZCB0byBuZXR3b3JrIHNjYWxhYmlsaXR5 DQogICAgIGFuZCBzdGFiaWxpdHkuICBBcHBsaWNhdGlvbiBwcm92aWRlcnMgYW5kIG5ldHdvcmsg b3BlcmF0b3JzIGNvbnRpbnVlDQohICAgIHRvIGRldmVsb3AgbmV3IHNvbHV0aW9ucyB0byBtZWV0 IHNvbWUgb2YgdGhlIHJlcXVpcmVtZW50cyB0aGF0DQohICAgIHByZXZpb3VzbHkgaGFkIGRyaXZl biBsYXJnZSBMYXllciAyIGRvbWFpbnMgdXNpbmcgdmFyaW91cyBvdmVybGF5DQogICAgIG9yIHR1 bm5lbGluZyB0ZWNobmlxdWVzLg0KICANCiAgNS4gIFJvdXRpbmcgUHJvdG9jb2wgU2VsZWN0aW9u IGFuZCBEZXNpZ24NCioqKioqKioqKioqKioqKg0KKioqIDcwMCw3MDYgKioqKg0KICAgICBkZXNp Z24uDQogIA0KICAgICBBbHRob3VnaCBFQkdQIGlzIHRoZSBwcm90b2NvbCB1c2VkIGZvciBhbG1v c3QgYWxsIGludGVyLWRvbWFpbg0KISAgICByb3V0aW5nIG9uIHRoZSBJbnRlcm5ldCBhbmQgaGFz IHdpZGUgc3VwcG9ydCBmcm9tIGJvdGggdmVuZG9yIGFuZA0KICAgICBzZXJ2aWNlIHByb3ZpZGVy IGNvbW11bml0aWVzLCBpdCBpcyBub3QgZ2VuZXJhbGx5IGRlcGxveWVkIGFzIHRoZQ0KICAgICBw cmltYXJ5IHJvdXRpbmcgcHJvdG9jb2wgd2l0aGluIHRoZSBkYXRhIGNlbnRlciBmb3IgYSBudW1i ZXIgb2YNCiAgICAgcmVhc29ucyAoc29tZSBvZiB3aGljaCBhcmUgaW50ZXJyZWxhdGVkKToNCi0t LSA3MDAsNzA2IC0tLS0NCiAgICAgZGVzaWduLg0KICANCiAgICAgQWx0aG91Z2ggRUJHUCBpcyB0 aGUgcHJvdG9jb2wgdXNlZCBmb3IgYWxtb3N0IGFsbCBpbnRlci1kb21haW4NCiEgICAgcm91dGlu ZyBpbiB0aGUgSW50ZXJuZXQgYW5kIGhhcyB3aWRlIHN1cHBvcnQgZnJvbSBib3RoIHZlbmRvciBh bmQNCiAgICAgc2VydmljZSBwcm92aWRlciBjb21tdW5pdGllcywgaXQgaXMgbm90IGdlbmVyYWxs eSBkZXBsb3llZCBhcyB0aGUNCiAgICAgcHJpbWFyeSByb3V0aW5nIHByb3RvY29sIHdpdGhpbiB0 aGUgZGF0YSBjZW50ZXIgZm9yIGEgbnVtYmVyIG9mDQogICAgIHJlYXNvbnMgKHNvbWUgb2Ygd2hp Y2ggYXJlIGludGVycmVsYXRlZCk6DQoqKioqKioqKioqKioqKioNCioqKiA3NDEsNzU0ICoqKioN CiAgICAgICAgc3RhdGUgSUdQcy4gIFNpbmNlIGV2ZXJ5IEJHUCByb3V0ZXIgY2FsY3VsYXRlcyBh bmQgcHJvcGFnYXRlcyBvbmx5DQogICAgICAgIHRoZSBiZXN0LXBhdGggc2VsZWN0ZWQsIGEgbmV0 d29yayBmYWlsdXJlIGlzIG1hc2tlZCBhcyBzb29uIGFzIHRoZQ0KICAgICAgICBCR1Agc3BlYWtl ciBmaW5kcyBhbiBhbHRlcm5hdGUgcGF0aCwgd2hpY2ggZXhpc3RzIHdoZW4gaGlnaGx5DQohICAg ICAgIHN5bW1ldHJpYyB0b3BvbG9naWVzLCBzdWNoIGFzIENsb3MsIGFyZSBjb3VwbGVkIHdpdGgg RUJHUCBvbmx5DQogICAgICAgIGRlc2lnbi4gIEluIGNvbnRyYXN0LCB0aGUgZXZlbnQgcHJvcGFn YXRpb24gc2NvcGUgb2YgYSBsaW5rLXN0YXRlDQogICAgICAgIElHUCBpcyBhbiBlbnRpcmUgYXJl YSwgcmVnYXJkbGVzcyBvZiB0aGUgZmFpbHVyZSB0eXBlLiAgSW4gdGhpcw0KICAgICAgICB3YXks IEJHUCBiZXR0ZXIgbWVldHMgUkVRMyBhbmQgUkVRNC4gIEl0IGlzIGFsc28gd29ydGggbWVudGlv bmluZw0KICAgICAgICB0aGF0IGFsbCB3aWRlbHkgZGVwbG95ZWQgbGluay1zdGF0ZSBJR1BzIGZl YXR1cmUgcGVyaW9kaWMNCiEgICAgICAgcmVmcmVzaGVzIG9mIHJvdXRpbmcgaW5mb3JtYXRpb24s IGV2ZW4gaWYgdGhpcyByYXJlbHkgY2F1c2VzDQohICAgICAgIGltcGFjdCB0byBtb2Rlcm4gcm91 dGVyIGNvbnRyb2wgcGxhbmVzLCB3aGlsZSBCR1AgZG9lcyBub3QgZXhwaXJlDQohICAgICAgIHJv dXRpbmcgc3RhdGUuDQogIA0KICAgICBvICBCR1Agc3VwcG9ydHMgdGhpcmQtcGFydHkgKHJlY3Vy c2l2ZWx5IHJlc29sdmVkKSBuZXh0LWhvcHMuICBUaGlzDQogICAgICAgIGFsbG93cyBmb3IgbWFu aXB1bGF0aW5nIG11bHRpcGF0aCB0byBiZSBub24tRUNNUCBiYXNlZCBvcg0KLS0tIDc0MSw3NTQg LS0tLQ0KICAgICAgICBzdGF0ZSBJR1BzLiAgU2luY2UgZXZlcnkgQkdQIHJvdXRlciBjYWxjdWxh dGVzIGFuZCBwcm9wYWdhdGVzIG9ubHkNCiAgICAgICAgdGhlIGJlc3QtcGF0aCBzZWxlY3RlZCwg YSBuZXR3b3JrIGZhaWx1cmUgaXMgbWFza2VkIGFzIHNvb24gYXMgdGhlDQogICAgICAgIEJHUCBz cGVha2VyIGZpbmRzIGFuIGFsdGVybmF0ZSBwYXRoLCB3aGljaCBleGlzdHMgd2hlbiBoaWdobHkN CiEgICAgICAgc3ltbWV0cmljIHRvcG9sb2dpZXMsIHN1Y2ggYXMgQ2xvcywgYXJlIGNvdXBsZWQg d2l0aCBhbiBFQkdQIG9ubHkNCiAgICAgICAgZGVzaWduLiAgSW4gY29udHJhc3QsIHRoZSBldmVu dCBwcm9wYWdhdGlvbiBzY29wZSBvZiBhIGxpbmstc3RhdGUNCiAgICAgICAgSUdQIGlzIGFuIGVu dGlyZSBhcmVhLCByZWdhcmRsZXNzIG9mIHRoZSBmYWlsdXJlIHR5cGUuICBJbiB0aGlzDQogICAg ICAgIHdheSwgQkdQIGJldHRlciBtZWV0cyBSRVEzIGFuZCBSRVE0LiAgSXQgaXMgYWxzbyB3b3J0 aCBtZW50aW9uaW5nDQogICAgICAgIHRoYXQgYWxsIHdpZGVseSBkZXBsb3llZCBsaW5rLXN0YXRl IElHUHMgZmVhdHVyZSBwZXJpb2RpYw0KISAgICAgICByZWZyZXNoZXMgb2Ygcm91dGluZyBpbmZv cm1hdGlvbiB3aGlsZSBCR1AgZG9lcyBub3QgZXhwaXJlDQohICAgICAgIHJvdXRpbmcgc3RhdGUs IGFsdGhvdWdoIHRoaXMgcmFyZWx5IGltcGFjdHMgbW9kZXJuIHJvdXRlciBjb250cm9sDQohICAg ICAgIHBsYW5lcy4NCiAgDQogICAgIG8gIEJHUCBzdXBwb3J0cyB0aGlyZC1wYXJ0eSAocmVjdXJz aXZlbHkgcmVzb2x2ZWQpIG5leHQtaG9wcy4gIFRoaXMNCiAgICAgICAgYWxsb3dzIGZvciBtYW5p cHVsYXRpbmcgbXVsdGlwYXRoIHRvIGJlIG5vbi1FQ01QIGJhc2VkIG9yDQoqKioqKioqKioqKioq KioNCioqKiA3NjUsNzc1ICoqKioNCiAgICAgICAgY29udHJvbGxlZCBhbmQgY29tcGxleCB1bndh bnRlZCBwYXRocyB3aWxsIGJlIGlnbm9yZWQuICBTZWUNCiAgICAgICAgU2VjdGlvbiA1LjIgZm9y IGFuIGV4YW1wbGUgb2YgYSB3b3JraW5nIEFTTiBhbGxvY2F0aW9uIHNjaGVtZS4gIEluDQogICAg ICAgIGEgbGluay1zdGF0ZSBJR1AgYWNjb21wbGlzaGluZyB0aGUgc2FtZSBnb2FsIHdvdWxkIHJl cXVpcmUgbXVsdGktDQohICAgICAgIChpbnN0YW5jZS90b3BvbG9neS9wcm9jZXNzZXMpIHN1cHBv cnQsIHR5cGljYWxseSBub3QgYXZhaWxhYmxlIGluDQogICAgICAgIGFsbCBEQyBkZXZpY2VzIGFu ZCBxdWl0ZSBjb21wbGV4IHRvIGNvbmZpZ3VyZSBhbmQgdHJvdWJsZXNob290Lg0KICAgICAgICBV c2luZyBhIHRyYWRpdGlvbmFsIHNpbmdsZSBmbG9vZGluZyBkb21haW4sIHdoaWNoIG1vc3QgREMg ZGVzaWducw0KICAgICAgICB1dGlsaXplLCB1bmRlciBjZXJ0YWluIGZhaWx1cmUgY29uZGl0aW9u cyBtYXkgcGljayB1cCB1bndhbnRlZA0KISAgICAgICBsZW5ndGh5IHBhdGhzLCBlLmcuIHRyYXZl cnNpbmcgbXVsdGlwbGUgVGllci0yIGRldmljZXMuDQogIA0KICAgICBvICBFQkdQIGNvbmZpZ3Vy YXRpb24gdGhhdCBpcyBpbXBsZW1lbnRlZCB3aXRoIG1pbmltYWwgcm91dGluZyBwb2xpY3kNCiAg ICAgICAgaXMgZWFzaWVyIHRvIHRyb3VibGVzaG9vdCBmb3IgbmV0d29yayByZWFjaGFiaWxpdHkg aXNzdWVzLiAgSW4NCi0tLSA3NjUsNzc1IC0tLS0NCiAgICAgICAgY29udHJvbGxlZCBhbmQgY29t cGxleCB1bndhbnRlZCBwYXRocyB3aWxsIGJlIGlnbm9yZWQuICBTZWUNCiAgICAgICAgU2VjdGlv biA1LjIgZm9yIGFuIGV4YW1wbGUgb2YgYSB3b3JraW5nIEFTTiBhbGxvY2F0aW9uIHNjaGVtZS4g IEluDQogICAgICAgIGEgbGluay1zdGF0ZSBJR1AgYWNjb21wbGlzaGluZyB0aGUgc2FtZSBnb2Fs IHdvdWxkIHJlcXVpcmUgbXVsdGktDQohICAgICAgIChpbnN0YW5jZS90b3BvbG9neS9wcm9jZXNz KSBzdXBwb3J0LCB0eXBpY2FsbHkgbm90IGF2YWlsYWJsZSBpbg0KICAgICAgICBhbGwgREMgZGV2 aWNlcyBhbmQgcXVpdGUgY29tcGxleCB0byBjb25maWd1cmUgYW5kIHRyb3VibGVzaG9vdC4NCiAg ICAgICAgVXNpbmcgYSB0cmFkaXRpb25hbCBzaW5nbGUgZmxvb2RpbmcgZG9tYWluLCB3aGljaCBt b3N0IERDIGRlc2lnbnMNCiAgICAgICAgdXRpbGl6ZSwgdW5kZXIgY2VydGFpbiBmYWlsdXJlIGNv bmRpdGlvbnMgbWF5IHBpY2sgdXAgdW53YW50ZWQNCiEgICAgICAgbGVuZ3RoeSBwYXRocywgZS5n LiwgdHJhdmVyc2luZyBtdWx0aXBsZSBUaWVyLTIgZGV2aWNlcy4NCiAgDQogICAgIG8gIEVCR1Ag Y29uZmlndXJhdGlvbiB0aGF0IGlzIGltcGxlbWVudGVkIHdpdGggbWluaW1hbCByb3V0aW5nIHBv bGljeQ0KICAgICAgICBpcyBlYXNpZXIgdG8gdHJvdWJsZXNob290IGZvciBuZXR3b3JrIHJlYWNo YWJpbGl0eSBpc3N1ZXMuICBJbg0KKioqKioqKioqKioqKioqDQoqKiogODA2LDgxMiAqKioqDQog ICAgICAgIGxvb3BiYWNrIHNlc3Npb25zIGFyZSB1c2VkIGV2ZW4gaW4gdGhlIGNhc2Ugb2YgbXVs dGlwbGUgbGlua3MNCiAgICAgICAgYmV0d2VlbiB0aGUgc2FtZSBwYWlyIG9mIG5vZGVzLg0KICAN CiEgICAgbyAgUHJpdmF0ZSBVc2UgQVNOcyBmcm9tIHRoZSByYW5nZSA2NDUxMi02NTUzNCBhcmUg dXNlZCBzbyBhcyB0bw0KICAgICAgICBhdm9pZCBBU04gY29uZmxpY3RzLg0KICANCiAgICAgbyAg QSBzaW5nbGUgQVNOIGlzIGFsbG9jYXRlZCB0byBhbGwgb2YgdGhlIENsb3MgdG9wb2xvZ3kncyBU aWVyLTENCi0tLSA4MDYsODEyIC0tLS0NCiAgICAgICAgbG9vcGJhY2sgc2Vzc2lvbnMgYXJlIHVz ZWQgZXZlbiBpbiB0aGUgY2FzZSBvZiBtdWx0aXBsZSBsaW5rcw0KICAgICAgICBiZXR3ZWVuIHRo ZSBzYW1lIHBhaXIgb2Ygbm9kZXMuDQogIA0KISAgICBvICBQcml2YXRlIFVzZSBBU05zIGZyb20g dGhlIHJhbmdlIDY0NTEyLTY1NTM0IGFyZSB1c2VkIHRvDQogICAgICAgIGF2b2lkIEFTTiBjb25m bGljdHMuDQogIA0KICAgICBvICBBIHNpbmdsZSBBU04gaXMgYWxsb2NhdGVkIHRvIGFsbCBvZiB0 aGUgQ2xvcyB0b3BvbG9neSdzIFRpZXItMQ0KKioqKioqKioqKioqKioqDQoqKiogODE1LDgyMSAq KioqDQogICAgIG8gIEEgdW5pcXVlIEFTTiBpcyBhbGxvY2F0ZWQgdG8gZWFjaCBzZXQgb2YgVGll ci0yIGRldmljZXMgaW4gdGhlDQogICAgICAgIHNhbWUgY2x1c3Rlci4NCiAgDQohICAgIG8gIEEg dW5pcXVlIEFTTiBpcyBhbGxvY2F0ZWQgdG8gZXZlcnkgVGllci0zIGRldmljZSAoZS5nLiAgVG9S KSBpbg0KICAgICAgICB0aGlzIHRvcG9sb2d5Lg0KICANCiAgDQotLS0gODE1LDgyMSAtLS0tDQog ICAgIG8gIEEgdW5pcXVlIEFTTiBpcyBhbGxvY2F0ZWQgdG8gZWFjaCBzZXQgb2YgVGllci0yIGRl dmljZXMgaW4gdGhlDQogICAgICAgIHNhbWUgY2x1c3Rlci4NCiAgDQohICAgIG8gIEEgdW5pcXVl IEFTTiBpcyBhbGxvY2F0ZWQgdG8gZXZlcnkgVGllci0zIGRldmljZSAoZS5nLiwgIFRvUikgaW4N CiAgICAgICAgdGhpcyB0b3BvbG9neS4NCiAgDQogIA0KKioqKioqKioqKioqKioqDQoqKiogOTAz LDkyMiAqKioqDQogIA0KICAgICBBbm90aGVyIHNvbHV0aW9uIHRvIHRoaXMgcHJvYmxlbSB3b3Vs ZCBiZSB1c2luZyBGb3VyLU9jdGV0IEFTTnMNCiAgICAgKFtSRkM2NzkzXSksIHdoZXJlIHRoZXJl IGFyZSBhZGRpdGlvbmFsIFByaXZhdGUgVXNlIEFTTnMgYXZhaWxhYmxlLA0KISAgICBzZWUgW0lB TkEuQVNdLiAgVXNlIG9mIEZvdXItT2N0ZXQgQVNOcyBwdXQgYWRkaXRpb25hbCBwcm90b2NvbA0K ISAgICBjb21wbGV4aXR5IGluIHRoZSBCR1AgaW1wbGVtZW50YXRpb24gc28gc2hvdWxkIGJlIGNv bnNpZGVyZWQgYWdhaW5zdA0KICAgICB0aGUgY29tcGxleGl0eSBvZiByZS11c2Ugd2hlbiBjb25z aWRlcmluZyBSRVEzIGFuZCBSRVE0LiAgUGVyaGFwcw0KICAgICBtb3JlIGltcG9ydGFudGx5LCB0 aGV5IGFyZSBub3QgeWV0IHN1cHBvcnRlZCBieSBhbGwgQkdQDQogICAgIGltcGxlbWVudGF0aW9u cywgd2hpY2ggbWF5IGxpbWl0IHZlbmRvciBzZWxlY3Rpb24gb2YgREMgZXF1aXBtZW50Lg0KISAg ICBXaGVuIHN1cHBvcnRlZCwgZW5zdXJlIHRoYXQgaW1wbGVtZW50YXRpb25zIGluIHVzZSBhcmUg YWJsZSB0byByZW1vdmUNCiEgICAgdGhlIFByaXZhdGUgVXNlIEFTTnMgaWYgcmVxdWlyZWQgZm9y IGV4dGVybmFsIGNvbm5lY3Rpdml0eQ0KISAgICAoU2VjdGlvbiA1LjIuNCkuDQogIA0KICA1LjIu My4gIFByZWZpeCBBZHZlcnRpc2VtZW50DQogIA0KICAgICBBIENsb3MgdG9wb2xvZ3kgZmVhdHVy ZXMgYSBsYXJnZSBudW1iZXIgb2YgcG9pbnQtdG8tcG9pbnQgbGlua3MgYW5kDQogICAgIGFzc29j aWF0ZWQgcHJlZml4ZXMuICBBZHZlcnRpc2luZyBhbGwgb2YgdGhlc2Ugcm91dGVzIGludG8gQkdQ IG1heQ0KISAgICBjcmVhdGUgRklCIG92ZXJsb2FkIGNvbmRpdGlvbnMgaW4gdGhlIG5ldHdvcmsg ZGV2aWNlcy4gIEFkdmVydGlzaW5nDQogICAgIHRoZXNlIGxpbmtzIGFsc28gcHV0cyBhZGRpdGlv bmFsIHBhdGggY29tcHV0YXRpb24gc3RyZXNzIG9uIHRoZSBCR1ANCiAgICAgY29udHJvbCBwbGFu ZSBmb3IgbGl0dGxlIGJlbmVmaXQuICBUaGVyZSBhcmUgdHdvIHBvc3NpYmxlIHNvbHV0aW9uczoN CiAgDQotLS0gOTAzLDkyMiAtLS0tDQogIA0KICAgICBBbm90aGVyIHNvbHV0aW9uIHRvIHRoaXMg cHJvYmxlbSB3b3VsZCBiZSB1c2luZyBGb3VyLU9jdGV0IEFTTnMNCiAgICAgKFtSRkM2NzkzXSks IHdoZXJlIHRoZXJlIGFyZSBhZGRpdGlvbmFsIFByaXZhdGUgVXNlIEFTTnMgYXZhaWxhYmxlLA0K ISAgICBzZWUgW0lBTkEuQVNdLiAgVXNlIG9mIEZvdXItT2N0ZXQgQVNOcyBwdXRzIGFkZGl0aW9u YWwgcHJvdG9jb2wNCiEgICAgY29tcGxleGl0eSBpbiB0aGUgQkdQIGltcGxlbWVudGF0aW9uIGFu ZCBzaG91bGQgYmUgYmFsYW5jZWQgYWdhaW5zdA0KICAgICB0aGUgY29tcGxleGl0eSBvZiByZS11 c2Ugd2hlbiBjb25zaWRlcmluZyBSRVEzIGFuZCBSRVE0LiAgUGVyaGFwcw0KICAgICBtb3JlIGlt cG9ydGFudGx5LCB0aGV5IGFyZSBub3QgeWV0IHN1cHBvcnRlZCBieSBhbGwgQkdQDQogICAgIGlt cGxlbWVudGF0aW9ucywgd2hpY2ggbWF5IGxpbWl0IHZlbmRvciBzZWxlY3Rpb24gb2YgREMgZXF1 aXBtZW50Lg0KISAgICBXaGVuIHN1cHBvcnRlZCwgZW5zdXJlIHRoYXQgZGVwbG95ZWQgaW1wbGVt ZW50YXRpb25zIGFyZSBhYmxlIHRvDQpyZW1vdmUNCiEgICAgdGhlIFByaXZhdGUgVXNlIEFTTnMg d2hlbiBleHRlcm5hbCBjb25uZWN0aXZpdHkgdG8gdGhlc2UgQVNlcyBpcw0KISAgICByZXF1aXJl ZCAoU2VjdGlvbiA1LjIuNCkuDQogIA0KICA1LjIuMy4gIFByZWZpeCBBZHZlcnRpc2VtZW50DQog IA0KICAgICBBIENsb3MgdG9wb2xvZ3kgZmVhdHVyZXMgYSBsYXJnZSBudW1iZXIgb2YgcG9pbnQt dG8tcG9pbnQgbGlua3MgYW5kDQogICAgIGFzc29jaWF0ZWQgcHJlZml4ZXMuICBBZHZlcnRpc2lu ZyBhbGwgb2YgdGhlc2Ugcm91dGVzIGludG8gQkdQIG1heQ0KISAgICBjcmVhdGUgRklCIG92ZXJs b2FkIGluIHRoZSBuZXR3b3JrIGRldmljZXMuICBBZHZlcnRpc2luZw0KICAgICB0aGVzZSBsaW5r cyBhbHNvIHB1dHMgYWRkaXRpb25hbCBwYXRoIGNvbXB1dGF0aW9uIHN0cmVzcyBvbiB0aGUgQkdQ DQogICAgIGNvbnRyb2wgcGxhbmUgZm9yIGxpdHRsZSBiZW5lZml0LiAgVGhlcmUgYXJlIHR3byBw b3NzaWJsZSBzb2x1dGlvbnM6DQogIA0KKioqKioqKioqKioqKioqDQoqKiogOTI1LDk1MSAqKioq DQogICAgICAgIGRldmljZSwgZGlzdGFudCBuZXR3b3JrcyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUg cmVhY2hhYmxlIHZpYSB0aGUNCiAgICAgICAgYWR2ZXJ0aXNpbmcgRUJHUCBwZWVyIGFuZCBkbyBu b3QgcmVxdWlyZSByZWFjaGFiaWxpdHkgdG8gdGhlc2UNCiAgICAgICAgcHJlZml4ZXMuICBIb3dl dmVyLCB0aGlzIG1heSBjb21wbGljYXRlIG9wZXJhdGlvbnMgb3IgbW9uaXRvcmluZzoNCiEgICAg ICAgZS5nLiB1c2luZyB0aGUgcG9wdWxhciAidHJhY2Vyb3V0ZSIgdG9vbCB3aWxsIGRpc3BsYXkg SVAgYWRkcmVzc2VzDQogICAgICAgIHRoYXQgYXJlIG5vdCByZWFjaGFibGUuDQogIA0KICAgICBv ICBBZHZlcnRpc2UgcG9pbnQtdG8tcG9pbnQgbGlua3MsIGJ1dCBzdW1tYXJpemUgdGhlbSBvbiBl dmVyeQ0KICAgICAgICBkZXZpY2UuICBUaGlzIHJlcXVpcmVzIGFuIGFkZHJlc3MgYWxsb2NhdGlv biBzY2hlbWUgc3VjaCBhcw0KICAgICAgICBhbGxvY2F0aW5nIGEgY29uc2VjdXRpdmUgYmxvY2sg b2YgSVAgYWRkcmVzc2VzIHBlciBUaWVyLTEgYW5kDQogICAgICAgIFRpZXItMiBkZXZpY2UgdG8g YmUgdXNlZCBmb3IgcG9pbnQtdG8tcG9pbnQgaW50ZXJmYWNlIGFkZHJlc3NpbmcNCiEgICAgICAg dG8gdGhlIGxvd2VyIGxheWVycyAoVGllci0yIHVwbGlua3Mgd2lsbCBiZSBudW1iZXJlZCBvdXQg b2YgVGllci0xDQohICAgICAgIGFkZHJlc3NpbmcgYW5kIHNvIGZvcnRoKS4NCiAgDQogICAgIFNl cnZlciBzdWJuZXRzIG9uIFRpZXItMyBkZXZpY2VzIG11c3QgYmUgYW5ub3VuY2VkIGludG8gQkdQ IHdpdGhvdXQNCiAgICAgdXNpbmcgcm91dGUgc3VtbWFyaXphdGlvbiBvbiBUaWVyLTIgYW5kIFRp ZXItMSBkZXZpY2VzLiAgU3VtbWFyaXppbmcNCiAgICAgc3VibmV0cyBpbiBhIENsb3MgdG9wb2xv Z3kgcmVzdWx0cyBpbiByb3V0ZSBibGFjay1ob2xpbmcgdW5kZXIgYQ0KISAgICBzaW5nbGUgbGlu ayBmYWlsdXJlIChlLmcuIGJldHdlZW4gVGllci0yIGFuZCBUaWVyLTMgZGV2aWNlcykgYW5kDQog ICAgIGhlbmNlIG11c3QgYmUgYXZvaWRlZC4gIFRoZSB1c2Ugb2YgcGVlciBsaW5rcyB3aXRoaW4g dGhlIHNhbWUgdGllciB0bw0KICAgICByZXNvbHZlIHRoZSBibGFjay1ob2xpbmcgcHJvYmxlbSBi eSBwcm92aWRpbmcgImJ5cGFzcyBwYXRocyIgaXMNCiAgICAgdW5kZXNpcmFibGUgZHVlIHRvIE8o Tl4yKSBjb21wbGV4aXR5IG9mIHRoZSBwZWVyaW5nIG1lc2ggYW5kIHdhc3RlIG9mDQogICAgIHBv cnRzIG9uIHRoZSBkZXZpY2VzLiAgQW4gYWx0ZXJuYXRpdmUgdG8gdGhlIGZ1bGwtbWVzaCBvZiBw ZWVyLWxpbmtzDQohICAgIHdvdWxkIGJlIHVzaW5nIGEgc2ltcGxlciBieXBhc3MgdG9wb2xvZ3ks IGUuZy4gYSAicmluZyIgYXMgZGVzY3JpYmVkDQogICAgIGluIFtGQjRQT1NUXSwgYnV0IHN1Y2gg YSB0b3BvbG9neSBhZGRzIGV4dHJhIGhvcHMgYW5kIGhhcyB2ZXJ5DQohICAgIGxpbWl0ZWQgYmlz ZWN0aW9uIGJhbmR3aWR0aCwgaW4gYWRkaXRpb24gcmVxdWlyaW5nIHNwZWNpYWwgdHdlYWtzIHRv DQogIA0KICANCiAgDQotLS0gOTI1LDk1MSAtLS0tDQogICAgICAgIGRldmljZSwgZGlzdGFudCBu ZXR3b3JrcyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgcmVhY2hhYmxlIHZpYSB0aGUNCiAgICAgICAg YWR2ZXJ0aXNpbmcgRUJHUCBwZWVyIGFuZCBkbyBub3QgcmVxdWlyZSByZWFjaGFiaWxpdHkgdG8g dGhlc2UNCiAgICAgICAgcHJlZml4ZXMuICBIb3dldmVyLCB0aGlzIG1heSBjb21wbGljYXRlIG9w ZXJhdGlvbnMgb3IgbW9uaXRvcmluZzoNCiEgICAgICAgZS5nLiwgdXNpbmcgdGhlIHBvcHVsYXIg InRyYWNlcm91dGUiIHRvb2wgd2lsbCBkaXNwbGF5IElQIGFkZHJlc3Nlcw0KICAgICAgICB0aGF0 IGFyZSBub3QgcmVhY2hhYmxlLg0KICANCiAgICAgbyAgQWR2ZXJ0aXNlIHBvaW50LXRvLXBvaW50 IGxpbmtzLCBidXQgc3VtbWFyaXplIHRoZW0gb24gZXZlcnkNCiAgICAgICAgZGV2aWNlLiAgVGhp cyByZXF1aXJlcyBhbiBhZGRyZXNzIGFsbG9jYXRpb24gc2NoZW1lIHN1Y2ggYXMNCiAgICAgICAg YWxsb2NhdGluZyBhIGNvbnNlY3V0aXZlIGJsb2NrIG9mIElQIGFkZHJlc3NlcyBwZXIgVGllci0x IGFuZA0KICAgICAgICBUaWVyLTIgZGV2aWNlIHRvIGJlIHVzZWQgZm9yIHBvaW50LXRvLXBvaW50 IGludGVyZmFjZSBhZGRyZXNzaW5nDQohICAgICAgIHRvIHRoZSBsb3dlciBsYXllcnMgKFRpZXIt MiB1cGxpbmsgYWRkcmVzc2VzIHdpbGwgYmUgYWxsb2NhdGVkDQohICAgICAgIGZyb20gVGllci0x IGFkZHJlc3MgYmxvY2tzIGFuZCBzbyBmb3J0aCkuDQogIA0KICAgICBTZXJ2ZXIgc3VibmV0cyBv biBUaWVyLTMgZGV2aWNlcyBtdXN0IGJlIGFubm91bmNlZCBpbnRvIEJHUCB3aXRob3V0DQogICAg IHVzaW5nIHJvdXRlIHN1bW1hcml6YXRpb24gb24gVGllci0yIGFuZCBUaWVyLTEgZGV2aWNlcy4g IFN1bW1hcml6aW5nDQogICAgIHN1Ym5ldHMgaW4gYSBDbG9zIHRvcG9sb2d5IHJlc3VsdHMgaW4g cm91dGUgYmxhY2staG9saW5nIHVuZGVyIGENCiEgICAgc2luZ2xlIGxpbmsgZmFpbHVyZSAoZS5n LiwgYmV0d2VlbiBUaWVyLTIgYW5kIFRpZXItMyBkZXZpY2VzKSBhbmQNCiAgICAgaGVuY2UgbXVz dCBiZSBhdm9pZGVkLiAgVGhlIHVzZSBvZiBwZWVyIGxpbmtzIHdpdGhpbiB0aGUgc2FtZSB0aWVy IHRvDQogICAgIHJlc29sdmUgdGhlIGJsYWNrLWhvbGluZyBwcm9ibGVtIGJ5IHByb3ZpZGluZyAi YnlwYXNzIHBhdGhzIiBpcw0KICAgICB1bmRlc2lyYWJsZSBkdWUgdG8gTyhOXjIpIGNvbXBsZXhp dHkgb2YgdGhlIHBlZXJpbmcgbWVzaCBhbmQgd2FzdGUgb2YNCiAgICAgcG9ydHMgb24gdGhlIGRl dmljZXMuICBBbiBhbHRlcm5hdGl2ZSB0byB0aGUgZnVsbC1tZXNoIG9mIHBlZXItbGlua3MNCiEg ICAgd291bGQgYmUgdXNpbmcgYSBzaW1wbGVyIGJ5cGFzcyB0b3BvbG9neSwgZS5nLiwgYSAicmlu ZyIgYXMgZGVzY3JpYmVkDQogICAgIGluIFtGQjRQT1NUXSwgYnV0IHN1Y2ggYSB0b3BvbG9neSBh ZGRzIGV4dHJhIGhvcHMgYW5kIGhhcyB2ZXJ5DQohICAgIGxpbWl0ZWQgYmlzZWN0aW9uYWwgYmFu ZHdpZHRoLiBBZGRpdGlvbmFsbHkgcmVxdWlyaW5nIHNwZWNpYWwgdHdlYWtzDQp0bw0KICANCiAg DQogIA0KKioqKioqKioqKioqKioqDQoqKiogOTU2LDk2MyAqKioqDQogIA0KICAgICBtYWtlIEJH UCByb3V0aW5nIHdvcmsgLSBzdWNoIGFzIHBvc3NpYmx5IHNwbGl0dGluZyBldmVyeSBkZXZpY2Ug aW50bw0KICAgICBhbiBBU04gb24gaXRzIG93bi4gIExhdGVyIGluIHRoaXMgZG9jdW1lbnQsIFNl Y3Rpb24gOC4yIGludHJvZHVjZXMgYQ0KISAgICBsZXNzIGludHJ1c2l2ZSBtZXRob2QgZm9yIHBl cmZvcm1pbmcgYSBsaW1pdGVkIGZvcm0gcm91dGUNCiEgICAgc3VtbWFyaXphdGlvbiBpbiBDbG9z IG5ldHdvcmtzIGFuZCBkaXNjdXNzZXMgaXQncyBhc3NvY2lhdGVkIHRyYWRlLQ0KICAgICBvZmZz Lg0KICANCiAgNS4yLjQuICBFeHRlcm5hbCBDb25uZWN0aXZpdHkNCi0tLSA5NTYsOTYzIC0tLS0N CiAgDQogICAgIG1ha2UgQkdQIHJvdXRpbmcgd29yayAtIHN1Y2ggYXMgcG9zc2libHkgc3BsaXR0 aW5nIGV2ZXJ5IGRldmljZSBpbnRvDQogICAgIGFuIEFTTiBvbiBpdHMgb3duLiAgTGF0ZXIgaW4g dGhpcyBkb2N1bWVudCwgU2VjdGlvbiA4LjIgaW50cm9kdWNlcyBhDQohICAgIGxlc3MgaW50cnVz aXZlIG1ldGhvZCBmb3IgcGVyZm9ybWluZyBhIGxpbWl0ZWQgZm9ybSBvZiByb3V0ZQ0KISAgICBz dW1tYXJpemF0aW9uIGluIENsb3MgbmV0d29ya3MgYW5kIGRpc2N1c3NlcyBpdHMgYXNzb2NpYXRl ZCB0cmFkZS0NCiAgICAgb2Zmcy4NCiAgDQogIDUuMi40LiAgRXh0ZXJuYWwgQ29ubmVjdGl2aXR5 DQoqKioqKioqKioqKioqKioNCioqKiA5NzIsOTg1ICoqKioNCiAgICAgZG9jdW1lbnQuICBUaGVz ZSBkZXZpY2VzIGhhdmUgdG8gcGVyZm9ybSBhIGZldyBzcGVjaWFsIGZ1bmN0aW9uczoNCiAgDQog ICAgIG8gIEhpZGUgbmV0d29yayB0b3BvbG9neSBpbmZvcm1hdGlvbiB3aGVuIGFkdmVydGlzaW5n IHBhdGhzIHRvIFdBTg0KISAgICAgICByb3V0ZXJzLCBpLmUuIHJlbW92ZSBQcml2YXRlIFVzZSBB U05zIFtSRkM2OTk2XSBmcm9tIHRoZSBBU19QQVRIDQogICAgICAgIGF0dHJpYnV0ZS4gIFRoaXMg aXMgdHlwaWNhbGx5IGRvbmUgdG8gYXZvaWQgQVNOIG51bWJlciBjb2xsaXNpb25zDQogICAgICAg IGJldHdlZW4gZGlmZmVyZW50IGRhdGEgY2VudGVycyBhbmQgYWxzbyB0byBwcm92aWRlIGEgdW5p Zm9ybQ0KICAgICAgICBBU19QQVRIIGxlbmd0aCB0byB0aGUgV0FOIGZvciBwdXJwb3NlcyBvZiBX QU4gRUNNUCB0byBBbnljYXN0DQogICAgICAgIHByZWZpeGVzIG9yaWdpbmF0ZWQgaW4gdGhlIHRv cG9sb2d5LiAgQW4gaW1wbGVtZW50YXRpb24gc3BlY2lmaWMNCiAgICAgICAgQkdQIGZlYXR1cmUg dHlwaWNhbGx5IGNhbGxlZCAiUmVtb3ZlIFByaXZhdGUgQVMiIGlzIGNvbW1vbmx5IHVzZWQNCiAg ICAgICAgdG8gYWNjb21wbGlzaCB0aGlzLiAgRGVwZW5kaW5nIG9uIGltcGxlbWVudGF0aW9uLCB0 aGUgZmVhdHVyZQ0KISAgICAgICBzaG91bGQgc3RyaXAgYSBjb250aWd1b3VzIHNlcXVlbmNlIG9m IFByaXZhdGUgVXNlIEFTTnMgZm91bmQgaW4NCiAgICAgICAgQVNfUEFUSCBhdHRyaWJ1dGUgcHJp b3IgdG8gYWR2ZXJ0aXNpbmcgdGhlIHBhdGggdG8gYSBuZWlnaGJvci4NCiAgICAgICAgVGhpcyBh c3N1bWVzIHRoYXQgYWxsIEFTTnMgdXNlZCBmb3IgaW50cmEgZGF0YSBjZW50ZXIgbnVtYmVyaW5n DQogICAgICAgIGFyZSBmcm9tIHRoZSBQcml2YXRlIFVzZSByYW5nZXMuICBUaGUgcHJvY2VzcyBm b3Igc3RyaXBwaW5nIHRoZQ0KLS0tIDk3Miw5ODUgLS0tLQ0KICAgICBkb2N1bWVudC4gIFRoZXNl IGRldmljZXMgaGF2ZSB0byBwZXJmb3JtIGEgZmV3IHNwZWNpYWwgZnVuY3Rpb25zOg0KICANCiAg ICAgbyAgSGlkZSBuZXR3b3JrIHRvcG9sb2d5IGluZm9ybWF0aW9uIHdoZW4gYWR2ZXJ0aXNpbmcg cGF0aHMgdG8gV0FODQohICAgICAgIHJvdXRlcnMsIGkuZS4sIHJlbW92ZSBQcml2YXRlIFVzZSBB U05zIFtSRkM2OTk2XSBmcm9tIHRoZSBBU19QQVRIDQogICAgICAgIGF0dHJpYnV0ZS4gIFRoaXMg aXMgdHlwaWNhbGx5IGRvbmUgdG8gYXZvaWQgQVNOIG51bWJlciBjb2xsaXNpb25zDQogICAgICAg IGJldHdlZW4gZGlmZmVyZW50IGRhdGEgY2VudGVycyBhbmQgYWxzbyB0byBwcm92aWRlIGEgdW5p Zm9ybQ0KICAgICAgICBBU19QQVRIIGxlbmd0aCB0byB0aGUgV0FOIGZvciBwdXJwb3NlcyBvZiBX QU4gRUNNUCB0byBBbnljYXN0DQogICAgICAgIHByZWZpeGVzIG9yaWdpbmF0ZWQgaW4gdGhlIHRv cG9sb2d5LiAgQW4gaW1wbGVtZW50YXRpb24gc3BlY2lmaWMNCiAgICAgICAgQkdQIGZlYXR1cmUg dHlwaWNhbGx5IGNhbGxlZCAiUmVtb3ZlIFByaXZhdGUgQVMiIGlzIGNvbW1vbmx5IHVzZWQNCiAg ICAgICAgdG8gYWNjb21wbGlzaCB0aGlzLiAgRGVwZW5kaW5nIG9uIGltcGxlbWVudGF0aW9uLCB0 aGUgZmVhdHVyZQ0KISAgICAgICBzaG91bGQgc3RyaXAgYSBjb250aWd1b3VzIHNlcXVlbmNlIG9m IFByaXZhdGUgVXNlIEFTTnMgZm91bmQgaW4gYW4NCiAgICAgICAgQVNfUEFUSCBhdHRyaWJ1dGUg cHJpb3IgdG8gYWR2ZXJ0aXNpbmcgdGhlIHBhdGggdG8gYSBuZWlnaGJvci4NCiAgICAgICAgVGhp cyBhc3N1bWVzIHRoYXQgYWxsIEFTTnMgdXNlZCBmb3IgaW50cmEgZGF0YSBjZW50ZXIgbnVtYmVy aW5nDQogICAgICAgIGFyZSBmcm9tIHRoZSBQcml2YXRlIFVzZSByYW5nZXMuICBUaGUgcHJvY2Vz cyBmb3Igc3RyaXBwaW5nIHRoZQ0KKioqKioqKioqKioqKioqDQoqKiogOTk4LDEwMDUgKioqKg0K ICAgICAgICB0byB0aGUgV0FOIFJvdXRlcnMgdXBzdHJlYW0sIHRvIHByb3ZpZGUgcmVzaXN0YW5j ZSB0byBhIHNpbmdsZS0NCiAgICAgICAgbGluayBmYWlsdXJlIGNhdXNpbmcgdGhlIGJsYWNrLWhv bGluZyBvZiB0cmFmZmljLiAgVG8gcHJldmVudA0KICAgICAgICBibGFjay1ob2xpbmcgaW4gdGhl IHNpdHVhdGlvbiB3aGVuIGFsbCBvZiB0aGUgRUJHUCBzZXNzaW9ucyB0byB0aGUNCiEgICAgICAg V0FOIHJvdXRlcnMgZmFpbCBzaW11bHRhbmVvdXNseSBvbiBhIGdpdmVuIGRldmljZSBpdCBpcyBt b3JlDQohICAgICAgIGRlc2lyYWJsZSB0byB0YWtlIHRoZSAicmVsYXlpbmciIGFwcHJvYWNoIHJh dGhlciB0aGFuIGludHJvZHVjaW5nDQogICAgICAgIHRoZSBkZWZhdWx0IHJvdXRlIHZpYSBjb21w bGljYXRlZCBjb25kaXRpb25hbCByb3V0ZSBvcmlnaW5hdGlvbg0KICAgICAgICBzY2hlbWVzIHBy b3ZpZGVkIGJ5IHNvbWUgaW1wbGVtZW50YXRpb25zIFtDT05ESVRJT05BTFJPVVRFXS4NCiAgDQot LS0gOTk4LDEwMDUgLS0tLQ0KICAgICAgICB0byB0aGUgV0FOIFJvdXRlcnMgdXBzdHJlYW0sIHRv IHByb3ZpZGUgcmVzaXN0YW5jZSB0byBhIHNpbmdsZS0NCiAgICAgICAgbGluayBmYWlsdXJlIGNh dXNpbmcgdGhlIGJsYWNrLWhvbGluZyBvZiB0cmFmZmljLiAgVG8gcHJldmVudA0KICAgICAgICBi bGFjay1ob2xpbmcgaW4gdGhlIHNpdHVhdGlvbiB3aGVuIGFsbCBvZiB0aGUgRUJHUCBzZXNzaW9u cyB0byB0aGUNCiEgICAgICAgV0FOIHJvdXRlcnMgZmFpbCBzaW11bHRhbmVvdXNseSBvbiBhIGdp dmVuIGRldmljZSwgaXQgaXMgbW9yZQ0KISAgICAgICBkZXNpcmFibGUgdG8gcmVhZHZlcnRpc2Ug dGhlIGRlZmF1bHQgcm91dGUgcmF0aGVyIHRoYW4gb3JpZ2luYXRpbmcNCiAgICAgICAgdGhlIGRl ZmF1bHQgcm91dGUgdmlhIGNvbXBsaWNhdGVkIGNvbmRpdGlvbmFsIHJvdXRlIG9yaWdpbmF0aW9u DQogICAgICAgIHNjaGVtZXMgcHJvdmlkZWQgYnkgc29tZSBpbXBsZW1lbnRhdGlvbnMgW0NPTkRJ VElPTkFMUk9VVEVdLg0KICANCioqKioqKioqKioqKioqKg0KKioqIDEwMTcsMTAyMyAqKioqDQog ICAgIHByZWZpeGVzIG9yaWdpbmF0ZWQgZnJvbSB3aXRoaW4gdGhlIGRhdGEgY2VudGVyIGluIGEg ZnVsbHkgcm91dGVkDQogICAgIG5ldHdvcmsgZGVzaWduLiAgRm9yIGV4YW1wbGUsIGEgbmV0d29y ayB3aXRoIDIwMDAgVGllci0zIGRldmljZXMgd2lsbA0KICAgICBoYXZlIGF0IGxlYXN0IDIwMDAg c2VydmVycyBzdWJuZXRzIGFkdmVydGlzZWQgaW50byBCR1AsIGFsb25nIHdpdGgNCiEgICAgdGhl IGluZnJhc3RydWN0dXJlIG9yIG90aGVyIHByZWZpeGVzLiAgSG93ZXZlciwgYXMgZGlzY3Vzc2Vk IGJlZm9yZSwNCiAgICAgdGhlIHByb3Bvc2VkIG5ldHdvcmsgZGVzaWduIGRvZXMgbm90IGFsbG93 IGZvciByb3V0ZSBzdW1tYXJpemF0aW9uDQogICAgIGR1ZSB0byB0aGUgbGFjayBvZiBwZWVyIGxp bmtzIGluc2lkZSBldmVyeSB0aWVyLg0KICANCi0tLSAxMDE3LDEwMjMgLS0tLQ0KICAgICBwcmVm aXhlcyBvcmlnaW5hdGVkIGZyb20gd2l0aGluIHRoZSBkYXRhIGNlbnRlciBpbiBhIGZ1bGx5IHJv dXRlZA0KICAgICBuZXR3b3JrIGRlc2lnbi4gIEZvciBleGFtcGxlLCBhIG5ldHdvcmsgd2l0aCAy MDAwIFRpZXItMyBkZXZpY2VzIHdpbGwNCiAgICAgaGF2ZSBhdCBsZWFzdCAyMDAwIHNlcnZlcnMg c3VibmV0cyBhZHZlcnRpc2VkIGludG8gQkdQLCBhbG9uZyB3aXRoDQohICAgIHRoZSBpbmZyYXN0 cnVjdHVyZSBhbmQgbGluayBwcmVmaXhlcy4gIEhvd2V2ZXIsIGFzIGRpc2N1c3NlZCBiZWZvcmUs DQogICAgIHRoZSBwcm9wb3NlZCBuZXR3b3JrIGRlc2lnbiBkb2VzIG5vdCBhbGxvdyBmb3Igcm91 dGUgc3VtbWFyaXphdGlvbg0KICAgICBkdWUgdG8gdGhlIGxhY2sgb2YgcGVlciBsaW5rcyBpbnNp ZGUgZXZlcnkgdGllci4NCiAgDQoqKioqKioqKioqKioqKioNCioqKiAxMDI4LDEwMzcgKioqKg0K ICAgICBvICBJbnRlcmNvbm5lY3QgdGhlIEJvcmRlciBSb3V0ZXJzIHVzaW5nIGEgZnVsbC1tZXNo IG9mIHBoeXNpY2FsDQogICAgICAgIGxpbmtzIG9yIHVzaW5nIGFueSBvdGhlciAicGVlci1tZXNo IiB0b3BvbG9neSwgc3VjaCBhcyByaW5nIG9yDQogICAgICAgIGh1Yi1hbmQtc3Bva2UuICBDb25m aWd1cmUgQkdQIGFjY29yZGluZ2x5IG9uIGFsbCBCb3JkZXIgTGVhZnMgdG8NCiEgICAgICAgZXhj aGFuZ2UgbmV0d29yayByZWFjaGFiaWxpdHkgaW5mb3JtYXRpb24gLSBlLmcuIGJ5IGFkZGluZyBh IG1lc2gNCiAgICAgICAgb2YgSUJHUCBzZXNzaW9ucy4gIFRoZSBpbnRlcmNvbm5lY3RpbmcgcGVl ciBsaW5rcyBuZWVkIHRvIGJlDQogICAgICAgIGFwcHJvcHJpYXRlbHkgc2l6ZWQgZm9yIHRyYWZm aWMgdGhhdCB3aWxsIGJlIHByZXNlbnQgaW4gdGhlIGNhc2UNCiEgICAgICAgb2YgYSBkZXZpY2Ug b3IgbGluayBmYWlsdXJlIHVuZGVybmVhdGggdGhlIEJvcmRlciBSb3V0ZXJzLg0KICANCiAgICAg byAgVGllci0xIGRldmljZXMgbWF5IGhhdmUgYWRkaXRpb25hbCBwaHlzaWNhbCBsaW5rcyBwcm92 aXNpb25lZA0KICAgICAgICB0b3dhcmQgdGhlIEJvcmRlciBSb3V0ZXJzICh3aGljaCBhcmUgVGll ci0yIGRldmljZXMgZnJvbSB0aGUNCi0tLSAxMDI4LDEwMzcgLS0tLQ0KICAgICBvICBJbnRlcmNv bm5lY3QgdGhlIEJvcmRlciBSb3V0ZXJzIHVzaW5nIGEgZnVsbC1tZXNoIG9mIHBoeXNpY2FsDQog ICAgICAgIGxpbmtzIG9yIHVzaW5nIGFueSBvdGhlciAicGVlci1tZXNoIiB0b3BvbG9neSwgc3Vj aCBhcyByaW5nIG9yDQogICAgICAgIGh1Yi1hbmQtc3Bva2UuICBDb25maWd1cmUgQkdQIGFjY29y ZGluZ2x5IG9uIGFsbCBCb3JkZXIgTGVhZnMgdG8NCiEgICAgICAgZXhjaGFuZ2UgbmV0d29yayBy ZWFjaGFiaWxpdHkgaW5mb3JtYXRpb24sIGUuZy4sIGJ5IGFkZGluZyBhIG1lc2gNCiAgICAgICAg b2YgSUJHUCBzZXNzaW9ucy4gIFRoZSBpbnRlcmNvbm5lY3RpbmcgcGVlciBsaW5rcyBuZWVkIHRv IGJlDQogICAgICAgIGFwcHJvcHJpYXRlbHkgc2l6ZWQgZm9yIHRyYWZmaWMgdGhhdCB3aWxsIGJl IHByZXNlbnQgaW4gdGhlIGNhc2UNCiEgICAgICAgb2YgYSBkZXZpY2Ugb3IgbGluayBmYWlsdXJl IGluIHRoZSBtZXNoIGNvbm5lY3RpbmcgdGhlIEJvcmRlcg0KUm91dGVycy4NCiAgDQogICAgIG8g IFRpZXItMSBkZXZpY2VzIG1heSBoYXZlIGFkZGl0aW9uYWwgcGh5c2ljYWwgbGlua3MgcHJvdmlz aW9uZWQNCiAgICAgICAgdG93YXJkIHRoZSBCb3JkZXIgUm91dGVycyAod2hpY2ggYXJlIFRpZXIt MiBkZXZpY2VzIGZyb20gdGhlDQoqKioqKioqKioqKioqKioNCioqKiAxMDQzLDEwNDkgKioqKg0K ICAgICAgICBkZXZpY2UgY29tcGFyZWQgd2l0aCB0aGUgb3RoZXIgZGV2aWNlcyBpbiB0aGUgQ2xv cy4gIFRoaXMgYWxzbw0KICAgICAgICByZWR1Y2VzIHRoZSBudW1iZXIgb2YgcG9ydHMgYXZhaWxh YmxlIHRvICJyZWd1bGFyIiBUaWVyLTIgc3dpdGNoZXMNCiAgICAgICAgYW5kIGhlbmNlIHRoZSBu dW1iZXIgb2YgY2x1c3RlcnMgdGhhdCBjb3VsZCBiZSBpbnRlcmNvbm5lY3RlZCB2aWENCiEgICAg ICAgVGllci0xIGxheWVyLg0KICANCiAgICAgSWYgYW55IG9mIHRoZSBhYm92ZSBvcHRpb25zIGFy ZSBpbXBsZW1lbnRlZCwgaXQgaXMgcG9zc2libGUgdG8NCiAgICAgcGVyZm9ybSByb3V0ZSBzdW1t YXJpemF0aW9uIGF0IHRoZSBCb3JkZXIgUm91dGVycyB0b3dhcmQgdGhlIFdBTg0KLS0tIDEwNDMs MTA0OSAtLS0tDQogICAgICAgIGRldmljZSBjb21wYXJlZCB3aXRoIHRoZSBvdGhlciBkZXZpY2Vz IGluIHRoZSBDbG9zLiAgVGhpcyBhbHNvDQogICAgICAgIHJlZHVjZXMgdGhlIG51bWJlciBvZiBw b3J0cyBhdmFpbGFibGUgdG8gInJlZ3VsYXIiIFRpZXItMiBzd2l0Y2hlcw0KICAgICAgICBhbmQg aGVuY2UgdGhlIG51bWJlciBvZiBjbHVzdGVycyB0aGF0IGNvdWxkIGJlIGludGVyY29ubmVjdGVk IHZpYQ0KISAgICAgICB0aGUgVGllci0xIGxheWVyLg0KICANCiAgICAgSWYgYW55IG9mIHRoZSBh Ym92ZSBvcHRpb25zIGFyZSBpbXBsZW1lbnRlZCwgaXQgaXMgcG9zc2libGUgdG8NCiAgICAgcGVy Zm9ybSByb3V0ZSBzdW1tYXJpemF0aW9uIGF0IHRoZSBCb3JkZXIgUm91dGVycyB0b3dhcmQgdGhl IFdBTg0KKioqKioqKioqKioqKioqDQoqKiogMTA3MSwxMDc5ICoqKioNCiAgICAgRUNNUCBpcyB0 aGUgZnVuZGFtZW50YWwgbG9hZCBzaGFyaW5nIG1lY2hhbmlzbSB1c2VkIGJ5IGEgQ2xvcw0KICAg ICB0b3BvbG9neS4gIEVmZmVjdGl2ZWx5LCBldmVyeSBsb3dlci10aWVyIGRldmljZSB3aWxsIHVz ZSBhbGwgb2YgaXRzDQogICAgIGRpcmVjdGx5IGF0dGFjaGVkIHVwcGVyLXRpZXIgZGV2aWNlcyB0 byBsb2FkIHNoYXJlIHRyYWZmaWMgZGVzdGluZWQNCiEgICAgdG8gdGhlIHNhbWUgSVAgcHJlZml4 LiAgTnVtYmVyIG9mIEVDTVAgcGF0aHMgYmV0d2VlbiBhbnkgdHdvIFRpZXItMw0KICAgICBkZXZp Y2VzIGluIENsb3MgdG9wb2xvZ3kgZXF1YWxzIHRvIHRoZSBudW1iZXIgb2YgdGhlIGRldmljZXMg aW4gdGhlDQohICAgIG1pZGRsZSBzdGFnZSAoVGllci0xKS4gIEZvciBleGFtcGxlLCBGaWd1cmUg NSBpbGx1c3RyYXRlcyB0aGUNCiAgICAgdG9wb2xvZ3kgd2hlcmUgVGllci0zIGRldmljZSBBIGhh cyBmb3VyIHBhdGhzIHRvIHJlYWNoIHNlcnZlcnMgWCBhbmQNCiAgICAgWSwgdmlhIFRpZXItMiBk ZXZpY2VzIEIgYW5kIEMgYW5kIHRoZW4gVGllci0xIGRldmljZXMgMSwgMiwgMywgYW5kIDQNCiAg ICAgcmVzcGVjdGl2ZWx5Lg0KLS0tIDEwNzEsMTA3OSAtLS0tDQogICAgIEVDTVAgaXMgdGhlIGZ1 bmRhbWVudGFsIGxvYWQgc2hhcmluZyBtZWNoYW5pc20gdXNlZCBieSBhIENsb3MNCiAgICAgdG9w b2xvZ3kuICBFZmZlY3RpdmVseSwgZXZlcnkgbG93ZXItdGllciBkZXZpY2Ugd2lsbCB1c2UgYWxs IG9mIGl0cw0KICAgICBkaXJlY3RseSBhdHRhY2hlZCB1cHBlci10aWVyIGRldmljZXMgdG8gbG9h ZCBzaGFyZSB0cmFmZmljIGRlc3RpbmVkDQohICAgIHRvIHRoZSBzYW1lIElQIHByZWZpeC4gIFRo ZSBudW1iZXIgb2YgRUNNUCBwYXRocyBiZXR3ZWVuIGFueSB0d28NClRpZXItMw0KICAgICBkZXZp Y2VzIGluIENsb3MgdG9wb2xvZ3kgZXF1YWxzIHRvIHRoZSBudW1iZXIgb2YgdGhlIGRldmljZXMg aW4gdGhlDQohICAgIG1pZGRsZSBzdGFnZSAoVGllci0xKS4gIEZvciBleGFtcGxlLCBGaWd1cmUg NSBpbGx1c3RyYXRlcyBhDQogICAgIHRvcG9sb2d5IHdoZXJlIFRpZXItMyBkZXZpY2UgQSBoYXMg Zm91ciBwYXRocyB0byByZWFjaCBzZXJ2ZXJzIFggYW5kDQogICAgIFksIHZpYSBUaWVyLTIgZGV2 aWNlcyBCIGFuZCBDIGFuZCB0aGVuIFRpZXItMSBkZXZpY2VzIDEsIDIsIDMsIGFuZCA0DQogICAg IHJlc3BlY3RpdmVseS4NCioqKioqKioqKioqKioqKg0KKioqIDExMDUsMTExNiAqKioqDQogIA0K ICAgICBUaGUgRUNNUCByZXF1aXJlbWVudCBpbXBsaWVzIHRoYXQgdGhlIEJHUCBpbXBsZW1lbnRh dGlvbiBtdXN0IHN1cHBvcnQNCiAgICAgbXVsdGlwYXRoIGZhbi1vdXQgZm9yIHVwIHRvIHRoZSBt YXhpbXVtIG51bWJlciBvZiBkZXZpY2VzIGRpcmVjdGx5DQohICAgIGF0dGFjaGVkIGF0IGFueSBw b2ludCBpbiB0aGUgdG9wb2xvZ3kgaW4gdXBzdHJlYW0gb3IgZG93bnN0cmVhbQ0KICAgICBkaXJl Y3Rpb24uICBOb3JtYWxseSwgdGhpcyBudW1iZXIgZG9lcyBub3QgZXhjZWVkIGhhbGYgb2YgdGhl IHBvcnRzDQogICAgIGZvdW5kIG9uIGEgZGV2aWNlIGluIHRoZSB0b3BvbG9neS4gIEZvciBleGFt cGxlLCBhbiBFQ01QIGZhbi1vdXQgb2YNCiAgICAgMzIgd291bGQgYmUgcmVxdWlyZWQgd2hlbiBi dWlsZGluZyBhIENsb3MgbmV0d29yayB1c2luZyA2NC1wb3J0DQogICAgIGRldmljZXMuICBUaGUg Qm9yZGVyIFJvdXRlcnMgbWF5IG5lZWQgdG8gaGF2ZSB3aWRlciBmYW4tb3V0IHRvIGJlDQohICAg IGFibGUgdG8gY29ubmVjdCB0byBtdWx0aXR1ZGUgb2YgVGllci0xIGRldmljZXMgaWYgcm91dGUg c3VtbWFyaXphdGlvbg0KICAgICBhdCBCb3JkZXIgUm91dGVyIGxldmVsIGlzIGltcGxlbWVudGVk IGFzIGRlc2NyaWJlZCBpbiBTZWN0aW9uIDUuMi41Lg0KICAgICBJZiBhIGRldmljZSdzIGhhcmR3 YXJlIGRvZXMgbm90IHN1cHBvcnQgd2lkZXIgRUNNUCwgbG9naWNhbCBsaW5rLQ0KICAgICBncm91 cGluZyAobGluay1hZ2dyZWdhdGlvbiBhdCBsYXllciAyKSBjb3VsZCBiZSB1c2VkIHRvIHByb3Zp ZGUNCi0tLSAxMTA1LDExMTYgLS0tLQ0KICANCiAgICAgVGhlIEVDTVAgcmVxdWlyZW1lbnQgaW1w bGllcyB0aGF0IHRoZSBCR1AgaW1wbGVtZW50YXRpb24gbXVzdCBzdXBwb3J0DQogICAgIG11bHRp cGF0aCBmYW4tb3V0IGZvciB1cCB0byB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGV2aWNlcyBkaXJl Y3RseQ0KISAgICBhdHRhY2hlZCBhdCBhbnkgcG9pbnQgaW4gdGhlIHRvcG9sb2d5IGluIHRoZSB1 cHN0cmVhbSBvciBkb3duc3RyZWFtDQogICAgIGRpcmVjdGlvbi4gIE5vcm1hbGx5LCB0aGlzIG51 bWJlciBkb2VzIG5vdCBleGNlZWQgaGFsZiBvZiB0aGUgcG9ydHMNCiAgICAgZm91bmQgb24gYSBk ZXZpY2UgaW4gdGhlIHRvcG9sb2d5LiAgRm9yIGV4YW1wbGUsIGFuIEVDTVAgZmFuLW91dCBvZg0K ICAgICAzMiB3b3VsZCBiZSByZXF1aXJlZCB3aGVuIGJ1aWxkaW5nIGEgQ2xvcyBuZXR3b3JrIHVz aW5nIDY0LXBvcnQNCiAgICAgZGV2aWNlcy4gIFRoZSBCb3JkZXIgUm91dGVycyBtYXkgbmVlZCB0 byBoYXZlIHdpZGVyIGZhbi1vdXQgdG8gYmUNCiEgICAgYWJsZSB0byBjb25uZWN0IHRvIGEgbXVs dGl0dWRlIG9mIFRpZXItMSBkZXZpY2VzIGlmIHJvdXRlDQpzdW1tYXJpemF0aW9uDQogICAgIGF0 IEJvcmRlciBSb3V0ZXIgbGV2ZWwgaXMgaW1wbGVtZW50ZWQgYXMgZGVzY3JpYmVkIGluIFNlY3Rp b24gNS4yLjUuDQogICAgIElmIGEgZGV2aWNlJ3MgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCB3 aWRlciBFQ01QLCBsb2dpY2FsIGxpbmstDQogICAgIGdyb3VwaW5nIChsaW5rLWFnZ3JlZ2F0aW9u IGF0IGxheWVyIDIpIGNvdWxkIGJlIHVzZWQgdG8gcHJvdmlkZQ0KKioqKioqKioqKioqKioqDQoq KiogMTEyMiwxMTMxICoqKioNCiAgSW50ZXJuZXQtRHJhZnQgICAgZHJhZnQtaWV0Zi1ydGd3Zy1i Z3Atcm91dGluZy1sYXJnZS1kYyAgICAgICBNYXJjaCAyMDE2DQogIA0KICANCiEgICAgImhpZXJh cmNoaWNhbCIgRUNNUCAoTGF5ZXIgMyBFQ01QIGZvbGxvd2VkIGJ5IExheWVyIDIgRUNNUCkgdG8N CiAgICAgY29tcGVuc2F0ZSBmb3IgZmFuLW91dCBsaW1pdGF0aW9ucy4gIFN1Y2ggYXBwcm9hY2gs IGhvd2V2ZXIsDQogICAgIGluY3JlYXNlcyB0aGUgcmlzayBvZiBmbG93IHBvbGFyaXphdGlvbiwg YXMgbGVzcyBlbnRyb3B5IHdpbGwgYmUNCiEgICAgYXZhaWxhYmxlIHRvIHRoZSBzZWNvbmQgc3Rh Z2Ugb2YgRUNNUC4NCiAgDQogICAgIE1vc3QgQkdQIGltcGxlbWVudGF0aW9ucyBkZWNsYXJlIHBh dGhzIHRvIGJlIGVxdWFsIGZyb20gYW4gRUNNUA0KICAgICBwZXJzcGVjdGl2ZSBpZiB0aGV5IG1h dGNoIHVwIHRvIGFuZCBpbmNsdWRpbmcgc3RlcCAoZSkgaW4NCi0tLSAxMTIyLDExMzEgLS0tLQ0K ICBJbnRlcm5ldC1EcmFmdCAgICBkcmFmdC1pZXRmLXJ0Z3dnLWJncC1yb3V0aW5nLWxhcmdlLWRj ICAgICAgIE1hcmNoIDIwMTYNCiAgDQogIA0KISAgICAiaGllcmFyY2hpY2FsIiBFQ01QIChMYXll ciAzIEVDTVAgY291cGxlZCB3aXRoIExheWVyIDIgRUNNUCkgdG8NCiAgICAgY29tcGVuc2F0ZSBm b3IgZmFuLW91dCBsaW1pdGF0aW9ucy4gIFN1Y2ggYXBwcm9hY2gsIGhvd2V2ZXIsDQogICAgIGlu Y3JlYXNlcyB0aGUgcmlzayBvZiBmbG93IHBvbGFyaXphdGlvbiwgYXMgbGVzcyBlbnRyb3B5IHdp bGwgYmUNCiEgICAgYXZhaWxhYmxlIGF0IHRoZSBzZWNvbmQgc3RhZ2Ugb2YgRUNNUC4NCiAgDQog ICAgIE1vc3QgQkdQIGltcGxlbWVudGF0aW9ucyBkZWNsYXJlIHBhdGhzIHRvIGJlIGVxdWFsIGZy b20gYW4gRUNNUA0KICAgICBwZXJzcGVjdGl2ZSBpZiB0aGV5IG1hdGNoIHVwIHRvIGFuZCBpbmNs dWRpbmcgc3RlcCAoZSkgaW4NCioqKioqKioqKioqKioqKg0KKioqIDExNDgsMTE1NCAqKioqDQog ICAgIHBlcnNwZWN0aXZlIG9mIG90aGVyIGRldmljZXMsIHN1Y2ggYSBwcmVmaXggd291bGQgaGF2 ZSBCR1AgcGF0aHMgd2l0aA0KICAgICBkaWZmZXJlbnQgQVNfUEFUSCBhdHRyaWJ1dGUgdmFsdWVz LCB3aGlsZSBoYXZpbmcgdGhlIHNhbWUgQVNfUEFUSA0KICAgICBhdHRyaWJ1dGUgbGVuZ3Rocy4g IFRoZXJlZm9yZSwgQkdQIGltcGxlbWVudGF0aW9ucyBtdXN0IHN1cHBvcnQgbG9hZA0KISAgICBz aGFyaW5nIG92ZXIgYWJvdmUtbWVudGlvbmVkIHBhdGhzLiAgVGhpcyBmZWF0dXJlIGlzIHNvbWV0 aW1lcyBrbm93bg0KICAgICBhcyAibXVsdGlwYXRoIHJlbGF4IiBvciAibXVsdGlwYXRoIG11bHRp cGxlLWFzIiBhbmQgZWZmZWN0aXZlbHkNCiAgICAgYWxsb3dzIGZvciBFQ01QIHRvIGJlIGRvbmUg YWNyb3NzIGRpZmZlcmVudCBuZWlnaGJvcmluZyBBU05zIGlmIGFsbA0KICAgICBvdGhlciBhdHRy aWJ1dGVzIGFyZSBlcXVhbCBhcyBhbHJlYWR5IGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMNCi0t LSAxMTQ4LDExNTQgLS0tLQ0KICAgICBwZXJzcGVjdGl2ZSBvZiBvdGhlciBkZXZpY2VzLCBzdWNo IGEgcHJlZml4IHdvdWxkIGhhdmUgQkdQIHBhdGhzIHdpdGgNCiAgICAgZGlmZmVyZW50IEFTX1BB VEggYXR0cmlidXRlIHZhbHVlcywgd2hpbGUgaGF2aW5nIHRoZSBzYW1lIEFTX1BBVEgNCiAgICAg YXR0cmlidXRlIGxlbmd0aHMuICBUaGVyZWZvcmUsIEJHUCBpbXBsZW1lbnRhdGlvbnMgbXVzdCBz dXBwb3J0IGxvYWQNCiEgICAgc2hhcmluZyBvdmVyIHRoZSBhYm92ZS1tZW50aW9uZWQgcGF0aHMu ICBUaGlzIGZlYXR1cmUgaXMgc29tZXRpbWVzDQprbm93bg0KICAgICBhcyAibXVsdGlwYXRoIHJl bGF4IiBvciAibXVsdGlwYXRoIG11bHRpcGxlLWFzIiBhbmQgZWZmZWN0aXZlbHkNCiAgICAgYWxs b3dzIGZvciBFQ01QIHRvIGJlIGRvbmUgYWNyb3NzIGRpZmZlcmVudCBuZWlnaGJvcmluZyBBU05z IGlmIGFsbA0KICAgICBvdGhlciBhdHRyaWJ1dGVzIGFyZSBlcXVhbCBhcyBhbHJlYWR5IGRlc2Ny aWJlZCBpbiB0aGUgcHJldmlvdXMNCioqKioqKioqKioqKioqKg0KKioqIDExODIsMTE5OSAqKioq DQogIA0KICAgICBJdCBpcyBvZnRlbiBkZXNpcmFibGUgdG8gaGF2ZSB0aGUgaGFzaGluZyBmdW5j dGlvbiB1c2VkIGZvciBFQ01QIHRvDQogICAgIGJlIGNvbnNpc3RlbnQgKHNlZSBbQ09OUy1IQVNI XSksIHRvIG1pbmltaXplIHRoZSBpbXBhY3Qgb24gZmxvdyB0bw0KISAgICBuZXh0LWhvcCBhZmZp bml0eSBjaGFuZ2VzIHdoZW4gYSBuZXh0LWhvcCBpcyBhZGRlZCBvciByZW1vdmVkIHRvIEVDTVAN CiAgICAgZ3JvdXAuICBUaGlzIGNvdWxkIGJlIHVzZWQgaWYgdGhlIG5ldHdvcmsgZGV2aWNlIGlz IHVzZWQgYXMgYSBsb2FkDQogICAgIGJhbGFuY2VyLCBtYXBwaW5nIGZsb3dzIHRvd2FyZCBtdWx0 aXBsZSBkZXN0aW5hdGlvbnMgLSBpbiB0aGlzIGNhc2UsDQohICAgIGxvc2luZyBvciBhZGRpbmcg YSBkZXN0aW5hdGlvbiB3aWxsIG5vdCBoYXZlIGRldHJpbWVudGFsIGVmZmVjdCBvZg0KICAgICBj dXJyZW50bHkgZXN0YWJsaXNoZWQgZmxvd3MuICBPbmUgcGFydGljdWxhciByZWNvbW1lbmRhdGlv biBvbg0KICAgICBpbXBsZW1lbnRpbmcgY29uc2lzdGVudCBoYXNoaW5nIGlzIHByb3ZpZGVkIGlu IFtSRkMyOTkyXSwgdGhvdWdoDQogICAgIG90aGVyIGltcGxlbWVudGF0aW9ucyBhcmUgcG9zc2li bGUuICBUaGlzIGZ1bmN0aW9uYWxpdHkgY291bGQgYmUNCiAgICAgbmF0dXJhbGx5IGNvbWJpbmVk IHdpdGggd2VpZ2h0ZWQgRUNNUCwgd2l0aCB0aGUgaW1wYWN0IG9mIHRoZSBuZXh0LQ0KICAgICBo b3AgY2hhbmdlcyBiZWluZyBwcm9wb3J0aW9uYWwgdG8gdGhlIHdlaWdodCBvZiB0aGUgZ2l2ZW4g bmV4dC1ob3AuDQogICAgIFRoZSBkb3duc2lkZSBvZiBjb25zaXN0ZW50IGhhc2hpbmcgaXMgaW5j cmVhc2VkIGxvYWQgb24gaGFyZHdhcmUNCiEgICAgcmVzb3VyY2UgdXRpbGl6YXRpb24sIGFzIHR5 cGljYWxseSBtb3JlIHNwYWNlIGlzIHJlcXVpcmVkIHRvDQohICAgIGltcGxlbWVudCBhIGNvbnNp c3RlbnQtaGFzaGluZyByZWdpb24uDQogIA0KICA3LiAgUm91dGluZyBDb252ZXJnZW5jZSBQcm9w ZXJ0aWVzDQogIA0KLS0tIDExODIsMTE5OSAtLS0tDQogIA0KICAgICBJdCBpcyBvZnRlbiBkZXNp cmFibGUgdG8gaGF2ZSB0aGUgaGFzaGluZyBmdW5jdGlvbiB1c2VkIGZvciBFQ01QIHRvDQogICAg IGJlIGNvbnNpc3RlbnQgKHNlZSBbQ09OUy1IQVNIXSksIHRvIG1pbmltaXplIHRoZSBpbXBhY3Qg b24gZmxvdyB0bw0KISAgICBuZXh0LWhvcCBhZmZpbml0eSBjaGFuZ2VzIHdoZW4gYSBuZXh0LWhv cCBpcyBhZGRlZCBvciByZW1vdmVkIHRvIGFuDQpFQ01QDQogICAgIGdyb3VwLiAgVGhpcyBjb3Vs ZCBiZSB1c2VkIGlmIHRoZSBuZXR3b3JrIGRldmljZSBpcyB1c2VkIGFzIGEgbG9hZA0KICAgICBi YWxhbmNlciwgbWFwcGluZyBmbG93cyB0b3dhcmQgbXVsdGlwbGUgZGVzdGluYXRpb25zIC0gaW4g dGhpcyBjYXNlLA0KISAgICBsb3Npbmcgb3IgYWRkaW5nIGEgZGVzdGluYXRpb24gd2lsbCBub3Qg aGF2ZSBhIGRldHJpbWVudGFsIGVmZmVjdCBvbg0KICAgICBjdXJyZW50bHkgZXN0YWJsaXNoZWQg Zmxvd3MuICBPbmUgcGFydGljdWxhciByZWNvbW1lbmRhdGlvbiBvbg0KICAgICBpbXBsZW1lbnRp bmcgY29uc2lzdGVudCBoYXNoaW5nIGlzIHByb3ZpZGVkIGluIFtSRkMyOTkyXSwgdGhvdWdoDQog ICAgIG90aGVyIGltcGxlbWVudGF0aW9ucyBhcmUgcG9zc2libGUuICBUaGlzIGZ1bmN0aW9uYWxp dHkgY291bGQgYmUNCiAgICAgbmF0dXJhbGx5IGNvbWJpbmVkIHdpdGggd2VpZ2h0ZWQgRUNNUCwg d2l0aCB0aGUgaW1wYWN0IG9mIHRoZSBuZXh0LQ0KICAgICBob3AgY2hhbmdlcyBiZWluZyBwcm9w b3J0aW9uYWwgdG8gdGhlIHdlaWdodCBvZiB0aGUgZ2l2ZW4gbmV4dC1ob3AuDQogICAgIFRoZSBk b3duc2lkZSBvZiBjb25zaXN0ZW50IGhhc2hpbmcgaXMgaW5jcmVhc2VkIGxvYWQgb24gaGFyZHdh cmUNCiEgICAgcmVzb3VyY2UgdXRpbGl6YXRpb24sIGFzIHR5cGljYWxseSBtb3JlIHJlc291cmNl cyAoZS5nLiwgVENBTSBzcGFjZSkNCiEgICAgYXJlIHJlcXVpcmVkIHRvIGltcGxlbWVudCBhIGNv bnNpc3RlbnQtaGFzaGluZyBmdW5jdGlvbi4NCiAgDQogIDcuICBSb3V0aW5nIENvbnZlcmdlbmNl IFByb3BlcnRpZXMNCiAgDQoqKioqKioqKioqKioqKioNCioqKiAxMjA5LDEyMjQgKioqKg0KICAg ICBkcml2ZW4gbWVjaGFuaXNtIHRvIG9idGFpbiB1cGRhdGVzIG9uIElHUCBzdGF0ZSBjaGFuZ2Vz LiAgVGhlDQogICAgIHByb3Bvc2VkIHJvdXRpbmcgZGVzaWduIGRvZXMgbm90IHVzZSBhbiBJR1As IHNvIHRoZSByZW1haW5pbmcNCiAgICAgbWVjaGFuaXNtcyB0aGF0IGNvdWxkIGJlIHVzZWQgZm9y IGZhdWx0IGRldGVjdGlvbiBhcmUgQkdQIGtlZXAtYWxpdmUNCiEgICAgcHJvY2VzcyAob3IgYW55 IG90aGVyIHR5cGUgb2Yga2VlcC1hbGl2ZSBtZWNoYW5pc20pIGFuZCBsaW5rLWZhaWx1cmUNCiAg ICAgdHJpZ2dlcnMuDQogIA0KICAgICBSZWx5aW5nIHNvbGVseSBvbiBCR1Aga2VlcC1hbGl2ZSBw YWNrZXRzIG1heSByZXN1bHQgaW4gaGlnaA0KISAgICBjb252ZXJnZW5jZSBkZWxheXMsIGluIHRo ZSBvcmRlciBvZiBtdWx0aXBsZSBzZWNvbmRzIChvbiBtYW55IEJHUA0KICAgICBpbXBsZW1lbnRh dGlvbnMgdGhlIG1pbmltdW0gY29uZmlndXJhYmxlIEJHUCBob2xkIHRpbWVyIHZhbHVlIGlzDQog ICAgIHRocmVlIHNlY29uZHMpLiAgSG93ZXZlciwgbWFueSBCR1AgaW1wbGVtZW50YXRpb25zIGNh biBzaHV0IGRvd24NCiAgICAgbG9jYWwgRUJHUCBwZWVyaW5nIHNlc3Npb25zIGluIHJlc3BvbnNl IHRvIHRoZSAibGluayBkb3duIiBldmVudCBmb3INCiAgICAgdGhlIG91dGdvaW5nIGludGVyZmFj ZSB1c2VkIGZvciBCR1AgcGVlcmluZy4gIFRoaXMgZmVhdHVyZSBpcw0KISAgICBzb21ldGltZXMg Y2FsbGVkIGFzICJmYXN0IGZhbGxvdmVyIi4gIFNpbmNlIGxpbmtzIGluIG1vZGVybiBkYXRhDQog ICAgIGNlbnRlcnMgYXJlIHByZWRvbWluYW50bHkgcG9pbnQtdG8tcG9pbnQgZmliZXIgY29ubmVj dGlvbnMsIGENCiAgICAgcGh5c2ljYWwgaW50ZXJmYWNlIGZhaWx1cmUgaXMgb2Z0ZW4gZGV0ZWN0 ZWQgaW4gbWlsbGlzZWNvbmRzIGFuZA0KICAgICBzdWJzZXF1ZW50bHkgdHJpZ2dlcnMgYSBCR1Ag cmUtY29udmVyZ2VuY2UuDQotLS0gMTIwOSwxMjI0IC0tLS0NCiAgICAgZHJpdmVuIG1lY2hhbmlz bSB0byBvYnRhaW4gdXBkYXRlcyBvbiBJR1Agc3RhdGUgY2hhbmdlcy4gIFRoZQ0KICAgICBwcm9w b3NlZCByb3V0aW5nIGRlc2lnbiBkb2VzIG5vdCB1c2UgYW4gSUdQLCBzbyB0aGUgcmVtYWluaW5n DQogICAgIG1lY2hhbmlzbXMgdGhhdCBjb3VsZCBiZSB1c2VkIGZvciBmYXVsdCBkZXRlY3Rpb24g YXJlIEJHUCBrZWVwLWFsaXZlDQohICAgIHRpbWUtb3V0IChvciBhbnkgb3RoZXIgdHlwZSBvZiBr ZWVwLWFsaXZlIG1lY2hhbmlzbSkgYW5kIGxpbmstZmFpbHVyZQ0KICAgICB0cmlnZ2Vycy4NCiAg DQogICAgIFJlbHlpbmcgc29sZWx5IG9uIEJHUCBrZWVwLWFsaXZlIHBhY2tldHMgbWF5IHJlc3Vs dCBpbiBoaWdoDQohICAgIGNvbnZlcmdlbmNlIGRlbGF5cywgb24gdGhlIG9yZGVyIG9mIG11bHRp cGxlIHNlY29uZHMgKG9uIG1hbnkgQkdQDQogICAgIGltcGxlbWVudGF0aW9ucyB0aGUgbWluaW11 bSBjb25maWd1cmFibGUgQkdQIGhvbGQgdGltZXIgdmFsdWUgaXMNCiAgICAgdGhyZWUgc2Vjb25k cykuICBIb3dldmVyLCBtYW55IEJHUCBpbXBsZW1lbnRhdGlvbnMgY2FuIHNodXQgZG93bg0KICAg ICBsb2NhbCBFQkdQIHBlZXJpbmcgc2Vzc2lvbnMgaW4gcmVzcG9uc2UgdG8gdGhlICJsaW5rIGRv d24iIGV2ZW50IGZvcg0KICAgICB0aGUgb3V0Z29pbmcgaW50ZXJmYWNlIHVzZWQgZm9yIEJHUCBw ZWVyaW5nLiAgVGhpcyBmZWF0dXJlIGlzDQohICAgIHNvbWV0aW1lcyBjYWxsZWQgImZhc3QgZmFs bG92ZXIiLiAgU2luY2UgbGlua3MgaW4gbW9kZXJuIGRhdGENCiAgICAgY2VudGVycyBhcmUgcHJl ZG9taW5hbnRseSBwb2ludC10by1wb2ludCBmaWJlciBjb25uZWN0aW9ucywgYQ0KICAgICBwaHlz aWNhbCBpbnRlcmZhY2UgZmFpbHVyZSBpcyBvZnRlbiBkZXRlY3RlZCBpbiBtaWxsaXNlY29uZHMg YW5kDQogICAgIHN1YnNlcXVlbnRseSB0cmlnZ2VycyBhIEJHUCByZS1jb252ZXJnZW5jZS4NCioq KioqKioqKioqKioqKg0KKioqIDEyMzYsMTI0MiAqKioqDQogIA0KICAgICBBbHRlcm5hdGl2ZWx5 LCBzb21lIHBsYXRmb3JtcyBtYXkgc3VwcG9ydCBCaWRpcmVjdGlvbmFsIEZvcndhcmRpbmcNCiAg ICAgRGV0ZWN0aW9uIChCRkQpIFtSRkM1ODgwXSB0byBhbGxvdyBmb3Igc3ViLXNlY29uZCBmYWls dXJlIGRldGVjdGlvbg0KISAgICBhbmQgZmF1bHQgc2lnbmFsaW5nIHRvIHRoZSBCR1AgcHJvY2Vz cy4gIEhvd2V2ZXIsIHVzZSBvZiBlaXRoZXIgb2YNCiAgICAgdGhlc2UgcHJlc2VudHMgYWRkaXRp b25hbCByZXF1aXJlbWVudHMgdG8gdmVuZG9yIHNvZnR3YXJlIGFuZA0KICAgICBwb3NzaWJseSBo YXJkd2FyZSwgYW5kIG1heSBjb250cmFkaWN0IFJFUTEuICBVbnRpbCByZWNlbnRseSB3aXRoDQog ICAgIFtSRkM3MTMwXSwgQkZEIGFsc28gZGlkIG5vdCBhbGxvdyBkZXRlY3Rpb24gb2YgYSBzaW5n bGUgbWVtYmVyIGxpbmsNCi0tLSAxMjM2LDEyNDIgLS0tLQ0KICANCiAgICAgQWx0ZXJuYXRpdmVs eSwgc29tZSBwbGF0Zm9ybXMgbWF5IHN1cHBvcnQgQmlkaXJlY3Rpb25hbCBGb3J3YXJkaW5nDQog ICAgIERldGVjdGlvbiAoQkZEKSBbUkZDNTg4MF0gdG8gYWxsb3cgZm9yIHN1Yi1zZWNvbmQgZmFp bHVyZSBkZXRlY3Rpb24NCiEgICAgYW5kIGZhdWx0IHNpZ25hbGluZyB0byB0aGUgQkdQIHByb2Nl c3MuICBIb3dldmVyLCB0aGUgdXNlIG9mIGVpdGhlciBvZg0KICAgICB0aGVzZSBwcmVzZW50cyBh ZGRpdGlvbmFsIHJlcXVpcmVtZW50cyB0byB2ZW5kb3Igc29mdHdhcmUgYW5kDQogICAgIHBvc3Np Ymx5IGhhcmR3YXJlLCBhbmQgbWF5IGNvbnRyYWRpY3QgUkVRMS4gIFVudGlsIHJlY2VudGx5IHdp dGgNCiAgICAgW1JGQzcxMzBdLCBCRkQgYWxzbyBkaWQgbm90IGFsbG93IGRldGVjdGlvbiBvZiBh IHNpbmdsZSBtZW1iZXIgbGluaw0KKioqKioqKioqKioqKioqDQoqKiogMTI0NSwxMjUxICoqKioN CiAgDQogIDcuMi4gIEV2ZW50IFByb3BhZ2F0aW9uIFRpbWluZw0KICANCiEgICAgSW4gdGhlIHBy b3Bvc2VkIGRlc2lnbiB0aGUgaW1wYWN0IG9mIEJHUCBNaW5pbXVtIFJvdXRlIEFkdmVydGlzZW1l bnQNCiAgICAgSW50ZXJ2YWwgKE1SQUkpIHRpbWVyIChTZWUgc2VjdGlvbiA5LjIuMS4xIG9mIFtS RkM0MjcxXSkgc2hvdWxkIGJlDQogICAgIGNvbnNpZGVyZWQuICBQZXIgdGhlIHN0YW5kYXJkIGl0 IGlzIHJlcXVpcmVkIGZvciBCR1AgaW1wbGVtZW50YXRpb25zDQogICAgIHRvIHNwYWNlIG91dCBj b25zZWN1dGl2ZSBCR1AgVVBEQVRFIG1lc3NhZ2VzIGJ5IGF0IGxlYXN0IE1SQUkNCi0tLSAxMjQ1 LDEyNTEgLS0tLQ0KICANCiAgNy4yLiAgRXZlbnQgUHJvcGFnYXRpb24gVGltaW5nDQogIA0KISAg ICBJbiB0aGUgcHJvcG9zZWQgZGVzaWduIHRoZSBpbXBhY3Qgb2YgdGhlIEJHUCBNaW5pbXVtIFJv dXRlDQpBZHZlcnRpc2VtZW50DQogICAgIEludGVydmFsIChNUkFJKSB0aW1lciAoU2VlIHNlY3Rp b24gOS4yLjEuMSBvZiBbUkZDNDI3MV0pIHNob3VsZCBiZQ0KICAgICBjb25zaWRlcmVkLiAgUGVy IHRoZSBzdGFuZGFyZCBpdCBpcyByZXF1aXJlZCBmb3IgQkdQIGltcGxlbWVudGF0aW9ucw0KICAg ICB0byBzcGFjZSBvdXQgY29uc2VjdXRpdmUgQkdQIFVQREFURSBtZXNzYWdlcyBieSBhdCBsZWFz dCBNUkFJDQoqKioqKioqKioqKioqKioNCioqKiAxMjU4LDEyNzAgKioqKg0KICAgICBJbiBhIENs b3MgdG9wb2xvZ3kgZWFjaCBFQkdQIHNwZWFrZXIgdHlwaWNhbGx5IGhhcyBlaXRoZXIgb25lIHBh dGgNCiAgICAgKFRpZXItMiBkZXZpY2VzIGRvbid0IGFjY2VwdCBwYXRocyBmcm9tIG90aGVyIFRp ZXItMiBpbiB0aGUgc2FtZQ0KICAgICBjbHVzdGVyIGR1ZSB0byBzYW1lIEFTTikgb3IgTiBwYXRo cyBmb3IgdGhlIHNhbWUgcHJlZml4LCB3aGVyZSBOIGlzIGENCiEgICAgc2lnbmlmaWNhbnRseSBs YXJnZSBudW1iZXIsIGUuZy4gIE49MzIgKHRoZSBFQ01QIGZhbi1vdXQgdG8gdGhlIG5leHQNCiAg ICAgVGllcikuICBUaGVyZWZvcmUsIGlmIGEgbGluayBmYWlscyB0byBhbm90aGVyIGRldmljZSBm cm9tIHdoaWNoIGENCiEgICAgcGF0aCBpcyByZWNlaXZlZCB0aGVyZSBpcyBlaXRoZXIgbm8gYmFj a3VwIHBhdGggYXQgYWxsIChlLmcuIGZyb20NCiAgICAgcGVyc3BlY3RpdmUgb2YgYSBUaWVyLTIg c3dpdGNoIGxvc2luZyBsaW5rIHRvIGEgVGllci0zIGRldmljZSksIG9yDQohICAgIHRoZSBiYWNr dXAgaXMgcmVhZGlseSBhdmFpbGFibGUgaW4gQkdQIExvYy1SSUIgKGUuZy4gZnJvbSBwZXJzcGVj dGl2ZQ0KICAgICBvZiBhIFRpZXItMiBkZXZpY2UgbG9zaW5nIGxpbmsgdG8gYSBUaWVyLTEgc3dp dGNoKS4gIEluIHRoZSBmb3JtZXINCiEgICAgY2FzZSwgdGhlIEJHUCB3aXRoZHJhd2FsIGFubm91 bmNlbWVudCB3aWxsIHByb3BhZ2F0ZSB1bi1kZWxheWVkIGFuZA0KICAgICB0cmlnZ2VyIHJlLWNv bnZlcmdlbmNlIG9uIGFmZmVjdGVkIGRldmljZXMuICBJbiB0aGUgbGF0dGVyIGNhc2UsIHRoZQ0K ICAgICBiZXN0LXBhdGggd2lsbCBiZSByZS1ldmFsdWF0ZWQgYW5kIHRoZSBsb2NhbCBFQ01QIGdy b3VwIGNvcnJlc3BvbmRpbmcNCiAgICAgdG8gdGhlIG5ldyBuZXh0LWhvcCBzZXQgY2hhbmdlZC4g IElmIHRoZSBCR1AgcGF0aCB3YXMgdGhlIGJlc3QtcGF0aA0KLS0tIDEyNTgsMTI3MCAtLS0tDQog ICAgIEluIGEgQ2xvcyB0b3BvbG9neSBlYWNoIEVCR1Agc3BlYWtlciB0eXBpY2FsbHkgaGFzIGVp dGhlciBvbmUgcGF0aA0KICAgICAoVGllci0yIGRldmljZXMgZG9uJ3QgYWNjZXB0IHBhdGhzIGZy b20gb3RoZXIgVGllci0yIGluIHRoZSBzYW1lDQogICAgIGNsdXN0ZXIgZHVlIHRvIHNhbWUgQVNO KSBvciBOIHBhdGhzIGZvciB0aGUgc2FtZSBwcmVmaXgsIHdoZXJlIE4gaXMgYQ0KISAgICBzaWdu aWZpY2FudGx5IGxhcmdlIG51bWJlciwgZS5nLiwgIE49MzIgKHRoZSBFQ01QIGZhbi1vdXQgdG8g dGhlIG5leHQNCiAgICAgVGllcikuICBUaGVyZWZvcmUsIGlmIGEgbGluayBmYWlscyB0byBhbm90 aGVyIGRldmljZSBmcm9tIHdoaWNoIGENCiEgICAgcGF0aCBpcyByZWNlaXZlZCB0aGVyZSBpcyBl aXRoZXIgbm8gYmFja3VwIHBhdGggYXQgYWxsIChlLmcuLCBmcm9tIHRoZQ0KICAgICBwZXJzcGVj dGl2ZSBvZiBhIFRpZXItMiBzd2l0Y2ggbG9zaW5nIGxpbmsgdG8gYSBUaWVyLTMgZGV2aWNlKSwg b3INCiEgICAgdGhlIGJhY2t1cCBpcyByZWFkaWx5IGF2YWlsYWJsZSBpbiBCR1AgTG9jLVJJQiAo ZS5nLiwgZnJvbSBwZXJzcGVjdGl2ZQ0KICAgICBvZiBhIFRpZXItMiBkZXZpY2UgbG9zaW5nIGxp bmsgdG8gYSBUaWVyLTEgc3dpdGNoKS4gIEluIHRoZSBmb3JtZXINCiEgICAgY2FzZSwgdGhlIEJH UCB3aXRoZHJhd2FsIGFubm91bmNlbWVudCB3aWxsIHByb3BhZ2F0ZSB3aXRob3V0IGRlbGF5IGFu ZA0KICAgICB0cmlnZ2VyIHJlLWNvbnZlcmdlbmNlIG9uIGFmZmVjdGVkIGRldmljZXMuICBJbiB0 aGUgbGF0dGVyIGNhc2UsIHRoZQ0KICAgICBiZXN0LXBhdGggd2lsbCBiZSByZS1ldmFsdWF0ZWQg YW5kIHRoZSBsb2NhbCBFQ01QIGdyb3VwIGNvcnJlc3BvbmRpbmcNCiAgICAgdG8gdGhlIG5ldyBu ZXh0LWhvcCBzZXQgY2hhbmdlZC4gIElmIHRoZSBCR1AgcGF0aCB3YXMgdGhlIGJlc3QtcGF0aA0K KioqKioqKioqKioqKioqDQoqKiogMTI3OSwxMjg1ICoqKioNCiAgICAgc2l0dWF0aW9uIHdoZW4g YSBsaW5rIGJldHdlZW4gVGllci0zIGFuZCBUaWVyLTIgZGV2aWNlIGZhaWxzLCB0aGUNCiAgICAg VGllci0yIGRldmljZSB3aWxsIHNlbmQgQkdQIFVQREFURSBtZXNzYWdlcyB0byBhbGwgdXBzdHJl YW0gVGllci0xDQogICAgIGRldmljZXMsIHdpdGhkcmF3aW5nIHRoZSBhZmZlY3RlZCBwcmVmaXhl cy4gIFRoZSBUaWVyLTEgZGV2aWNlcywgaW4NCiEgICAgdHVybiwgd2lsbCByZWxheSB0aG9zZSBt ZXNzYWdlcyB0byBhbGwgZG93bnN0cmVhbSBUaWVyLTIgZGV2aWNlcw0KICAgICAoZXhjZXB0IGZv ciB0aGUgb3JpZ2luYXRvcikuICBUaWVyLTIgZGV2aWNlcyBvdGhlciB0aGFuIHRoZSBvbmUNCiAg ICAgb3JpZ2luYXRpbmcgdGhlIFVQREFURSBzaG91bGQgdGhlbiB3YWl0IGZvciBBTEwgdXBzdHJl YW0gVGllci0xDQogIA0KLS0tIDEyNzksMTI4NSAtLS0tDQogICAgIHNpdHVhdGlvbiB3aGVuIGEg bGluayBiZXR3ZWVuIFRpZXItMyBhbmQgVGllci0yIGRldmljZSBmYWlscywgdGhlDQogICAgIFRp ZXItMiBkZXZpY2Ugd2lsbCBzZW5kIEJHUCBVUERBVEUgbWVzc2FnZXMgdG8gYWxsIHVwc3RyZWFt IFRpZXItMQ0KICAgICBkZXZpY2VzLCB3aXRoZHJhd2luZyB0aGUgYWZmZWN0ZWQgcHJlZml4ZXMu ICBUaGUgVGllci0xIGRldmljZXMsIGluDQohICAgIHR1cm4sIHdpbGwgcmVsYXkgdGhlc2UgbWVz c2FnZXMgdG8gYWxsIGRvd25zdHJlYW0gVGllci0yIGRldmljZXMNCiAgICAgKGV4Y2VwdCBmb3Ig dGhlIG9yaWdpbmF0b3IpLiAgVGllci0yIGRldmljZXMgb3RoZXIgdGhhbiB0aGUgb25lDQogICAg IG9yaWdpbmF0aW5nIHRoZSBVUERBVEUgc2hvdWxkIHRoZW4gd2FpdCBmb3IgQUxMIHVwc3RyZWFt IFRpZXItMQ0KICANCioqKioqKioqKioqKioqKg0KKioqIDEzMDcsMTMxMyAqKioqDQogICAgIGZl YXR1cmVzIHRoYXQgdmVuZG9ycyBpbmNsdWRlIHRvIHJlZHVjZSB0aGUgY29udHJvbCBwbGFuZSBp bXBhY3Qgb2YNCiAgICAgcmFwaWRseSBmbGFwcGluZyBwcmVmaXhlcy4gIEhvd2V2ZXIsIGR1ZSB0 byBpc3N1ZXMgZGVzY3JpYmVkIHdpdGgNCiAgICAgZmFsc2UgcG9zaXRpdmVzIGluIHRoZXNlIGlt cGxlbWVudGF0aW9ucyBlc3BlY2lhbGx5IHVuZGVyIHN1Y2gNCiEgICAgImRpc3BlcnNpb24iIGV2 ZW50cywgaXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHR1cm4gdGhpcyBmZWF0dXJlIG9uIGluDQog ICAgIHRoaXMgZGVzaWduLiAgTW9yZSBiYWNrZ3JvdW5kIGFuZCBpc3N1ZXMgd2l0aCAicm91dGUg ZmxhcCBkYW1wZW5pbmciDQogICAgIGFuZCBwb3NzaWJsZSBpbXBsZW1lbnRhdGlvbiBjaGFuZ2Vz IHRoYXQgY291bGQgYWZmZWN0IHRoaXMgYXJlIHdlbGwNCiAgICAgZGVzY3JpYmVkIGluIFtSRkM3 MTk2XS4NCi0tLSAxMzA3LDEzMTMgLS0tLQ0KICAgICBmZWF0dXJlcyB0aGF0IHZlbmRvcnMgaW5j bHVkZSB0byByZWR1Y2UgdGhlIGNvbnRyb2wgcGxhbmUgaW1wYWN0IG9mDQogICAgIHJhcGlkbHkg ZmxhcHBpbmcgcHJlZml4ZXMuICBIb3dldmVyLCBkdWUgdG8gaXNzdWVzIGRlc2NyaWJlZCB3aXRo DQogICAgIGZhbHNlIHBvc2l0aXZlcyBpbiB0aGVzZSBpbXBsZW1lbnRhdGlvbnMgZXNwZWNpYWxs eSB1bmRlciBzdWNoDQohICAgICJkaXNwZXJzaW9uIiBldmVudHMsIGl0IGlzIG5vdCByZWNvbW1l bmRlZCB0byBlbmFibGUgdGhpcyBmZWF0dXJlIGluDQogICAgIHRoaXMgZGVzaWduLiAgTW9yZSBi YWNrZ3JvdW5kIGFuZCBpc3N1ZXMgd2l0aCAicm91dGUgZmxhcCBkYW1wZW5pbmciDQogICAgIGFu ZCBwb3NzaWJsZSBpbXBsZW1lbnRhdGlvbiBjaGFuZ2VzIHRoYXQgY291bGQgYWZmZWN0IHRoaXMg YXJlIHdlbGwNCiAgICAgZGVzY3JpYmVkIGluIFtSRkM3MTk2XS4NCioqKioqKioqKioqKioqKg0K KioqIDEzMTYsMTMyNCAqKioqDQogIA0KICAgICBBIG5ldHdvcmsgaXMgZGVjbGFyZWQgdG8gY29u dmVyZ2UgaW4gcmVzcG9uc2UgdG8gYSBmYWlsdXJlIG9uY2UgYWxsDQogICAgIGRldmljZXMgd2l0 aGluIHRoZSBmYWlsdXJlIGltcGFjdCBzY29wZSBhcmUgbm90aWZpZWQgb2YgdGhlIGV2ZW50IGFu ZA0KISAgICBoYXZlIHJlLWNhbGN1bGF0ZWQgdGhlaXIgUklCJ3MgYW5kIGNvbnNlcXVlbnRseSB1 cGRhdGVkIHRoZWlyIEZJQidzLg0KICAgICBMYXJnZXIgZmFpbHVyZSBpbXBhY3Qgc2NvcGUgdHlw aWNhbGx5IG1lYW5zIHNsb3dlciBjb252ZXJnZW5jZSBzaW5jZQ0KISAgICBtb3JlIGRldmljZXMg aGF2ZSB0byBiZSBub3RpZmllZCwgYW5kIGFkZGl0aW9uYWxseSByZXN1bHRzIGluIGEgbGVzcw0K ICAgICBzdGFibGUgbmV0d29yay4gIEluIHRoaXMgc2VjdGlvbiB3ZSBkZXNjcmliZSBCR1AncyBh ZHZhbnRhZ2VzIG92ZXINCiAgICAgbGluay1zdGF0ZSByb3V0aW5nIHByb3RvY29scyBpbiByZWR1 Y2luZyBmYWlsdXJlIGltcGFjdCBzY29wZSBmb3IgYQ0KICAgICBDbG9zIHRvcG9sb2d5Lg0KLS0t IDEzMTYsMTMyNCAtLS0tDQogIA0KICAgICBBIG5ldHdvcmsgaXMgZGVjbGFyZWQgdG8gY29udmVy Z2UgaW4gcmVzcG9uc2UgdG8gYSBmYWlsdXJlIG9uY2UgYWxsDQogICAgIGRldmljZXMgd2l0aGlu IHRoZSBmYWlsdXJlIGltcGFjdCBzY29wZSBhcmUgbm90aWZpZWQgb2YgdGhlIGV2ZW50IGFuZA0K ISAgICBoYXZlIHJlLWNhbGN1bGF0ZWQgdGhlaXIgUklCcyBhbmQgY29uc2VxdWVudGx5IHVwZGF0 ZWQgdGhlaXIgRklCcy4NCiAgICAgTGFyZ2VyIGZhaWx1cmUgaW1wYWN0IHNjb3BlIHR5cGljYWxs eSBtZWFucyBzbG93ZXIgY29udmVyZ2VuY2Ugc2luY2UNCiEgICAgbW9yZSBkZXZpY2VzIGhhdmUg dG8gYmUgbm90aWZpZWQsIGFuZCByZXN1bHRzIGluIGEgbGVzcw0KICAgICBzdGFibGUgbmV0d29y ay4gIEluIHRoaXMgc2VjdGlvbiB3ZSBkZXNjcmliZSBCR1AncyBhZHZhbnRhZ2VzIG92ZXINCiAg ICAgbGluay1zdGF0ZSByb3V0aW5nIHByb3RvY29scyBpbiByZWR1Y2luZyBmYWlsdXJlIGltcGFj dCBzY29wZSBmb3IgYQ0KICAgICBDbG9zIHRvcG9sb2d5Lg0KKioqKioqKioqKioqKioqDQoqKiog MTMyNywxMzM1ICoqKioNCiAgICAgdGhlIGJlc3QgcGF0aCBmcm9tIHRoZSBwb2ludCBvZiB2aWV3 IG9mIHRoZSBsb2NhbCByb3V0ZXIgaXMgc2VudCB0bw0KICAgICBuZWlnaGJvcnMuICBBcyBzdWNo LCBzb21lIGZhaWx1cmVzIGFyZSBtYXNrZWQgaWYgdGhlIGxvY2FsIG5vZGUgY2FuDQogICAgIGlt bWVkaWF0ZWx5IGZpbmQgYSBiYWNrdXAgcGF0aCBhbmQgZG9lcyBub3QgaGF2ZSB0byBzZW5kIGFu eSB1cGRhdGVzDQohICAgIGZ1cnRoZXIuICBOb3RpY2UgdGhhdCBpbiB0aGUgd29yc3QgY2FzZSBB TEwgZGV2aWNlcyBpbiBhIGRhdGEgY2VudGVyDQogICAgIHRvcG9sb2d5IGhhdmUgdG8gZWl0aGVy IHdpdGhkcmF3IGEgcHJlZml4IGNvbXBsZXRlbHkgb3IgdXBkYXRlIHRoZQ0KISAgICBFQ01QIGdy b3VwcyBpbiB0aGUgRklCLiAgSG93ZXZlciwgbWFueSBmYWlsdXJlcyB3aWxsIG5vdCByZXN1bHQg aW4NCiAgICAgc3VjaCBhIHdpZGUgaW1wYWN0LiAgVGhlcmUgYXJlIHR3byBtYWluIGZhaWx1cmUg dHlwZXMgd2hlcmUgaW1wYWN0DQogICAgIHNjb3BlIGlzIHJlZHVjZWQ6DQogIA0KLS0tIDEzMjcs MTMzNSAtLS0tDQogICAgIHRoZSBiZXN0IHBhdGggZnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZiB0 aGUgbG9jYWwgcm91dGVyIGlzIHNlbnQgdG8NCiAgICAgbmVpZ2hib3JzLiAgQXMgc3VjaCwgc29t ZSBmYWlsdXJlcyBhcmUgbWFza2VkIGlmIHRoZSBsb2NhbCBub2RlIGNhbg0KICAgICBpbW1lZGlh dGVseSBmaW5kIGEgYmFja3VwIHBhdGggYW5kIGRvZXMgbm90IGhhdmUgdG8gc2VuZCBhbnkgdXBk YXRlcw0KISAgICBmdXJ0aGVyLiAgTm90aWNlIHRoYXQgaW4gdGhlIHdvcnN0IGNhc2UsIGFsbCBk ZXZpY2VzIGluIGEgZGF0YSBjZW50ZXINCiAgICAgdG9wb2xvZ3kgaGF2ZSB0byBlaXRoZXIgd2l0 aGRyYXcgYSBwcmVmaXggY29tcGxldGVseSBvciB1cGRhdGUgdGhlDQohICAgIEVDTVAgZ3JvdXBz IGluIHRoZWlyIEZJQnMuICBIb3dldmVyLCBtYW55IGZhaWx1cmVzIHdpbGwgbm90IHJlc3VsdCBp bg0KICAgICBzdWNoIGEgd2lkZSBpbXBhY3QuICBUaGVyZSBhcmUgdHdvIG1haW4gZmFpbHVyZSB0 eXBlcyB3aGVyZSBpbXBhY3QNCiAgICAgc2NvcGUgaXMgcmVkdWNlZDoNCiAgDQoqKioqKioqKioq KioqKioNCioqKiAxMzU3LDEzNjcgKioqKg0KICANCiAgICAgbyAgRmFpbHVyZSBvZiBhIFRpZXIt MSBkZXZpY2U6IEluIHRoaXMgY2FzZSwgYWxsIFRpZXItMiBkZXZpY2VzDQogICAgICAgIGRpcmVj dGx5IGF0dGFjaGVkIHRvIHRoZSBmYWlsZWQgbm9kZSB3aWxsIGhhdmUgdG8gdXBkYXRlIHRoZWly DQohICAgICAgIEVDTVAgZ3JvdXBzIGZvciBhbGwgSVAgcHJlZml4ZXMgZnJvbSBub24tbG9jYWwg Y2x1c3Rlci4gIFRoZQ0KICAgICAgICBUaWVyLTMgZGV2aWNlcyBhcmUgb25jZSBhZ2FpbiBub3Qg aW52b2x2ZWQgaW4gdGhlIHJlLWNvbnZlcmdlbmNlDQogICAgICAgIHByb2Nlc3MsIGJ1dCBtYXkg cmVjZWl2ZSAiaW1wbGljaXQgd2l0aGRyYXdzIiBhcyBkZXNjcmliZWQgYWJvdmUuDQogIA0KISAg ICBFdmVuIHRob3VnaCBpbiBjYXNlIG9mIHN1Y2ggZmFpbHVyZXMgbXVsdGlwbGUgSVAgcHJlZml4 ZXMgd2lsbCBoYXZlDQogICAgIHRvIGJlIHJlcHJvZ3JhbW1lZCBpbiB0aGUgRklCLCBpdCBpcyB3 b3J0aCBub3RpbmcgdGhhdCBBTEwgb2YgdGhlc2UNCiAgICAgcHJlZml4ZXMgc2hhcmUgYSBzaW5n bGUgRUNNUCBncm91cCBvbiBUaWVyLTIgZGV2aWNlLiAgVGhlcmVmb3JlLCBpbg0KICAgICB0aGUg Y2FzZSBvZiBpbXBsZW1lbnRhdGlvbnMgd2l0aCBhIGhpZXJhcmNoaWNhbCBGSUIsIG9ubHkgYSBz aW5nbGUNCi0tLSAxMzU3LDEzNjcgLS0tLQ0KICANCiAgICAgbyAgRmFpbHVyZSBvZiBhIFRpZXIt MSBkZXZpY2U6IEluIHRoaXMgY2FzZSwgYWxsIFRpZXItMiBkZXZpY2VzDQogICAgICAgIGRpcmVj dGx5IGF0dGFjaGVkIHRvIHRoZSBmYWlsZWQgbm9kZSB3aWxsIGhhdmUgdG8gdXBkYXRlIHRoZWly DQohICAgICAgIEVDTVAgZ3JvdXBzIGZvciBhbGwgSVAgcHJlZml4ZXMgZnJvbSBhIG5vbi1sb2Nh bCBjbHVzdGVyLiAgVGhlDQogICAgICAgIFRpZXItMyBkZXZpY2VzIGFyZSBvbmNlIGFnYWluIG5v dCBpbnZvbHZlZCBpbiB0aGUgcmUtY29udmVyZ2VuY2UNCiAgICAgICAgcHJvY2VzcywgYnV0IG1h eSByZWNlaXZlICJpbXBsaWNpdCB3aXRoZHJhd3MiIGFzIGRlc2NyaWJlZCBhYm92ZS4NCiAgDQoh ICAgIEV2ZW4gaW4gdGhlIGNhc2Ugb2Ygc3VjaCBmYWlsdXJlcywgbXVsdGlwbGUgSVAgcHJlZml4 ZXMgd2lsbCBoYXZlDQogICAgIHRvIGJlIHJlcHJvZ3JhbW1lZCBpbiB0aGUgRklCLCBpdCBpcyB3 b3J0aCBub3RpbmcgdGhhdCBBTEwgb2YgdGhlc2UNCiAgICAgcHJlZml4ZXMgc2hhcmUgYSBzaW5n bGUgRUNNUCBncm91cCBvbiBUaWVyLTIgZGV2aWNlLiAgVGhlcmVmb3JlLCBpbg0KICAgICB0aGUg Y2FzZSBvZiBpbXBsZW1lbnRhdGlvbnMgd2l0aCBhIGhpZXJhcmNoaWNhbCBGSUIsIG9ubHkgYSBz aW5nbGUNCioqKioqKioqKioqKioqKg0KKioqIDEzNzUsMTM4MSAqKioqDQogICAgIHBvc3NpYmxl IHdpdGggdGhlIHByb3Bvc2VkIGRlc2lnbiwgc2luY2UgdXNpbmcgdGhpcyB0ZWNobmlxdWUgbWF5 DQogICAgIGNyZWF0ZSByb3V0aW5nIGJsYWNrLWhvbGVzIGFzIG1lbnRpb25lZCBwcmV2aW91c2x5 LiAgVGhlcmVmb3JlLCB0aGUNCiAgICAgd29yc3QgY29udHJvbCBwbGFuZSBmYWlsdXJlIGltcGFj dCBzY29wZSBpcyB0aGUgbmV0d29yayBhcyBhIHdob2xlLA0KISAgICBmb3IgaW5zdGFuY2UgaW4g YSBjYXNlIG9mIGEgbGluayBmYWlsdXJlIGJldHdlZW4gVGllci0yIGFuZCBUaWVyLTMNCiAgICAg ZGV2aWNlcy4gIFRoZSBhbW91bnQgb2YgaW1wYWN0ZWQgcHJlZml4ZXMgaW4gdGhpcyBjYXNlIHdv dWxkIGJlIG11Y2gNCiAgICAgbGVzcyB0aGFuIGluIHRoZSBjYXNlIG9mIGEgZmFpbHVyZSBpbiB0 aGUgdXBwZXIgbGF5ZXJzIG9mIGEgQ2xvcw0KICAgICBuZXR3b3JrIHRvcG9sb2d5LiAgVGhlIHBy b3BlcnR5IG9mIGhhdmluZyBzdWNoIGxhcmdlIGZhaWx1cmUgc2NvcGUgaXMNCi0tLSAxMzc1LDEz ODEgLS0tLQ0KICAgICBwb3NzaWJsZSB3aXRoIHRoZSBwcm9wb3NlZCBkZXNpZ24sIHNpbmNlIHVz aW5nIHRoaXMgdGVjaG5pcXVlIG1heQ0KICAgICBjcmVhdGUgcm91dGluZyBibGFjay1ob2xlcyBh cyBtZW50aW9uZWQgcHJldmlvdXNseS4gIFRoZXJlZm9yZSwgdGhlDQogICAgIHdvcnN0IGNvbnRy b2wgcGxhbmUgZmFpbHVyZSBpbXBhY3Qgc2NvcGUgaXMgdGhlIG5ldHdvcmsgYXMgYSB3aG9sZSwN CiEgICAgZm9yIGluc3RhbmNlIGluIHRoZWNhc2Ugb2YgYSBsaW5rIGZhaWx1cmUgYmV0d2VlbiBU aWVyLTIgYW5kIFRpZXItMw0KICAgICBkZXZpY2VzLiAgVGhlIGFtb3VudCBvZiBpbXBhY3RlZCBw cmVmaXhlcyBpbiB0aGlzIGNhc2Ugd291bGQgYmUgbXVjaA0KICAgICBsZXNzIHRoYW4gaW4gdGhl IGNhc2Ugb2YgYSBmYWlsdXJlIGluIHRoZSB1cHBlciBsYXllcnMgb2YgYSBDbG9zDQogICAgIG5l dHdvcmsgdG9wb2xvZ3kuICBUaGUgcHJvcGVydHkgb2YgaGF2aW5nIHN1Y2ggbGFyZ2UgZmFpbHVy ZSBzY29wZSBpcw0KKioqKioqKioqKioqKioqDQoqKiogMTM4NCwxMzk3ICoqKioNCiAgDQogIDcu NS4gIFJvdXRpbmcgTWljcm8tTG9vcHMNCiAgDQohICAgIFdoZW4gYSBkb3duc3RyZWFtIGRldmlj ZSwgZS5nLiAgVGllci0yIGRldmljZSwgbG9zZXMgYWxsIHBhdGhzIGZvciBhDQogICAgIHByZWZp eCwgaXQgbm9ybWFsbHkgaGFzIHRoZSBkZWZhdWx0IHJvdXRlIHBvaW50aW5nIHRvd2FyZCB0aGUN CiAgICAgdXBzdHJlYW0gZGV2aWNlLCBpbiB0aGlzIGNhc2UgdGhlIFRpZXItMSBkZXZpY2UuICBB cyBhIHJlc3VsdCwgaXQgaXMNCiEgICAgcG9zc2libGUgdG8gZ2V0IGluIHRoZSBzaXR1YXRpb24g d2hlbiBUaWVyLTIgc3dpdGNoIGxvc2VzIGEgcHJlZml4LA0KISAgICBidXQgVGllci0xIHN3aXRj aCBzdGlsbCBoYXMgdGhlIHBhdGggcG9pbnRpbmcgdG8gdGhlIFRpZXItMiBkZXZpY2UsDQohICAg IHdoaWNoIHJlc3VsdHMgaW4gdHJhbnNpZW50IG1pY3JvLWxvb3AsIHNpbmNlIFRpZXItMSBzd2l0 Y2ggd2lsbCBrZWVwDQogICAgIHBhc3NpbmcgcGFja2V0cyB0byB0aGUgYWZmZWN0ZWQgcHJlZml4 IGJhY2sgdG8gVGllci0yIGRldmljZSwgYW5kDQohICAgIFRpZXItMiB3aWxsIGJvdW5jZSBpdCBi YWNrIGFnYWluIHVzaW5nIHRoZSBkZWZhdWx0IHJvdXRlLiAgVGhpcw0KICAgICBtaWNyby1sb29w IHdpbGwgbGFzdCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRpbWUgaXQgdGFrZXMgdGhlIHVwc3RyZWFt DQogICAgIGRldmljZSB0byBmdWxseSB1cGRhdGUgaXRzIGZvcndhcmRpbmcgdGFibGVzLg0KICAN Ci0tLSAxMzg0LDEzOTcgLS0tLQ0KICANCiAgNy41LiAgUm91dGluZyBNaWNyby1Mb29wcw0KICAN CiEgICAgV2hlbiBhIGRvd25zdHJlYW0gZGV2aWNlLCBlLmcuLCAgVGllci0yIGRldmljZSwgbG9z ZXMgYWxsIHBhdGhzIGZvciBhDQogICAgIHByZWZpeCwgaXQgbm9ybWFsbHkgaGFzIHRoZSBkZWZh dWx0IHJvdXRlIHBvaW50aW5nIHRvd2FyZCB0aGUNCiAgICAgdXBzdHJlYW0gZGV2aWNlLCBpbiB0 aGlzIGNhc2UgdGhlIFRpZXItMSBkZXZpY2UuICBBcyBhIHJlc3VsdCwgaXQgaXMNCiEgICAgcG9z c2libGUgdG8gZ2V0IGluIHRoZSBzaXR1YXRpb24gd2hlcmUgYSBUaWVyLTIgc3dpdGNoIGxvc2Vz IGEgcHJlZml4LA0KISAgICBidXQgYSBUaWVyLTEgc3dpdGNoIHN0aWxsIGhhcyB0aGUgcGF0aCBw b2ludGluZyB0byB0aGUgVGllci0yIGRldmljZSwNCiEgICAgd2hpY2ggcmVzdWx0cyBpbiB0cmFu c2llbnQgbWljcm8tbG9vcCwgc2luY2UgdGhlIFRpZXItMSBzd2l0Y2ggd2lsbA0Ka2VlcA0KICAg ICBwYXNzaW5nIHBhY2tldHMgdG8gdGhlIGFmZmVjdGVkIHByZWZpeCBiYWNrIHRvIFRpZXItMiBk ZXZpY2UsIGFuZA0KISAgICB0aGUgVGllci0yIHdpbGwgYm91bmNlIGl0IGJhY2sgYWdhaW4gdXNp bmcgdGhlIGRlZmF1bHQgcm91dGUuICBUaGlzDQogICAgIG1pY3JvLWxvb3Agd2lsbCBsYXN0IGZv ciB0aGUgZHVyYXRpb24gb2YgdGltZSBpdCB0YWtlcyB0aGUgdXBzdHJlYW0NCiAgICAgZGV2aWNl IHRvIGZ1bGx5IHVwZGF0ZSBpdHMgZm9yd2FyZGluZyB0YWJsZXMuDQogIA0KKioqKioqKioqKioq KioqDQoqKiogMTQwMiwxNDA4ICoqKioNCiAgSW50ZXJuZXQtRHJhZnQgICAgZHJhZnQtaWV0Zi1y dGd3Zy1iZ3Atcm91dGluZy1sYXJnZS1kYyAgICAgICBNYXJjaCAyMDE2DQogIA0KICANCiEgICAg VG8gbWluaW1pemUgaW1wYWN0IG9mIHRoZSBtaWNyby1sb29wcywgVGllci0yIGFuZCBUaWVyLTEg c3dpdGNoZXMgY2FuDQogICAgIGJlIGNvbmZpZ3VyZWQgd2l0aCBzdGF0aWMgImRpc2NhcmQiIG9y ICJudWxsIiByb3V0ZXMgdGhhdCB3aWxsIGJlDQogICAgIG1vcmUgc3BlY2lmaWMgdGhhbiB0aGUg ZGVmYXVsdCByb3V0ZSBmb3IgcHJlZml4ZXMgbWlzc2luZyBkdXJpbmcNCiAgICAgbmV0d29yayBj b252ZXJnZW5jZS4gIEZvciBUaWVyLTIgc3dpdGNoZXMsIHRoZSBkaXNjYXJkIHJvdXRlIHNob3Vs ZA0KLS0tIDE0MDIsMTQwOCAtLS0tDQogIEludGVybmV0LURyYWZ0ICAgIGRyYWZ0LWlldGYtcnRn d2ctYmdwLXJvdXRpbmctbGFyZ2UtZGMgICAgICAgTWFyY2ggMjAxNg0KICANCiAgDQohICAgIFRv IG1pbmltaXplIHRoZSBpbXBhY3Qgb2Ygc3VjaCBtaWNyby1sb29wcywgVGllci0yIGFuZCBUaWVy LTENCnN3aXRjaGVzIGNhbg0KICAgICBiZSBjb25maWd1cmVkIHdpdGggc3RhdGljICJkaXNjYXJk IiBvciAibnVsbCIgcm91dGVzIHRoYXQgd2lsbCBiZQ0KICAgICBtb3JlIHNwZWNpZmljIHRoYW4g dGhlIGRlZmF1bHQgcm91dGUgZm9yIHByZWZpeGVzIG1pc3NpbmcgZHVyaW5nDQogICAgIG5ldHdv cmsgY29udmVyZ2VuY2UuICBGb3IgVGllci0yIHN3aXRjaGVzLCB0aGUgZGlzY2FyZCByb3V0ZSBz aG91bGQNCioqKioqKioqKioqKioqKg0KKioqIDE0MTcsMTQyMyAqKioqDQogIA0KICA4LjEuICBU aGlyZC1wYXJ0eSBSb3V0ZSBJbmplY3Rpb24NCiAgDQohICAgIEJHUCBhbGxvd3MgZm9yIGEgInRo aXJkLXBhcnR5IiwgaS5lLiBkaXJlY3RseSBhdHRhY2hlZCwgQkdQIHNwZWFrZXINCiAgICAgdG8g aW5qZWN0IHJvdXRlcyBhbnl3aGVyZSBpbiB0aGUgbmV0d29yayB0b3BvbG9neSwgbWVldGluZyBS RVE1Lg0KICAgICBUaGlzIGNhbiBiZSBhY2hpZXZlZCBieSBwZWVyaW5nIHZpYSBhIG11bHRpaG9w IEJHUCBzZXNzaW9uIHdpdGggc29tZQ0KICAgICBvciBldmVuIGFsbCBkZXZpY2VzIGluIHRoZSB0 b3BvbG9neS4gIEZ1cnRoZXJtb3JlLCBCR1AgZGl2ZXJzZSBwYXRoDQotLS0gMTQxNywxNDIzIC0t LS0NCiAgDQogIDguMS4gIFRoaXJkLXBhcnR5IFJvdXRlIEluamVjdGlvbg0KICANCiEgICAgQkdQ IGFsbG93cyBmb3IgYSAidGhpcmQtcGFydHkiLCBpLmUuLCBkaXJlY3RseSBhdHRhY2hlZCwgQkdQ IHNwZWFrZXINCiAgICAgdG8gaW5qZWN0IHJvdXRlcyBhbnl3aGVyZSBpbiB0aGUgbmV0d29yayB0 b3BvbG9neSwgbWVldGluZyBSRVE1Lg0KICAgICBUaGlzIGNhbiBiZSBhY2hpZXZlZCBieSBwZWVy aW5nIHZpYSBhIG11bHRpaG9wIEJHUCBzZXNzaW9uIHdpdGggc29tZQ0KICAgICBvciBldmVuIGFs bCBkZXZpY2VzIGluIHRoZSB0b3BvbG9neS4gIEZ1cnRoZXJtb3JlLCBCR1AgZGl2ZXJzZSBwYXRo DQoqKioqKioqKioqKioqKioNCioqKiAxNDI3LDE0MzMgKioqKg0KICAgICBpbXBsZW1lbnRhdGlv bi4gIFVuZm9ydHVuYXRlbHksIGluIG1hbnkgaW1wbGVtZW50YXRpb25zIEFERC1QQVRIIGhhcw0K ICAgICBiZWVuIGZvdW5kIHRvIG9ubHkgc3VwcG9ydCBJQkdQIHByb3Blcmx5IGR1ZSB0byB0aGUg dXNlIGNhc2VzIGl0IHdhcw0KICAgICBvcmlnaW5hbGx5IG9wdGltaXplZCBmb3IsIHdoaWNoIGxp bWl0cyB0aGUgInRoaXJkLXBhcnR5IiBwZWVyaW5nIHRvDQohICAgIElCR1Agb25seSwgaWYgdGhl IGZlYXR1cmUgaXMgdXNlZC4NCiAgDQogICAgIFRvIGltcGxlbWVudCByb3V0ZSBpbmplY3Rpb24g aW4gdGhlIHByb3Bvc2VkIGRlc2lnbiwgYSB0aGlyZC1wYXJ0eQ0KICAgICBCR1Agc3BlYWtlciBt YXkgcGVlciB3aXRoIFRpZXItMyBhbmQgVGllci0xIHN3aXRjaGVzLCBpbmplY3RpbmcgdGhlDQot LS0gMTQyNywxNDMzIC0tLS0NCiAgICAgaW1wbGVtZW50YXRpb24uICBVbmZvcnR1bmF0ZWx5LCBp biBtYW55IGltcGxlbWVudGF0aW9ucyBBREQtUEFUSCBoYXMNCiAgICAgYmVlbiBmb3VuZCB0byBv bmx5IHN1cHBvcnQgSUJHUCBwcm9wZXJseSBkdWUgdG8gdGhlIHVzZSBjYXNlcyBpdCB3YXMNCiAg ICAgb3JpZ2luYWxseSBvcHRpbWl6ZWQgZm9yLCB3aGljaCBsaW1pdHMgdGhlICJ0aGlyZC1wYXJ0 eSIgcGVlcmluZyB0bw0KISAgICBJQkdQIG9ubHkuDQogIA0KICAgICBUbyBpbXBsZW1lbnQgcm91 dGUgaW5qZWN0aW9uIGluIHRoZSBwcm9wb3NlZCBkZXNpZ24sIGEgdGhpcmQtcGFydHkNCiAgICAg QkdQIHNwZWFrZXIgbWF5IHBlZXIgd2l0aCBUaWVyLTMgYW5kIFRpZXItMSBzd2l0Y2hlcywgaW5q ZWN0aW5nIHRoZQ0KKioqKioqKioqKioqKioqDQoqKiogMTQ0MiwxNDUzICoqKioNCiAgICAgQXMg bWVudGlvbmVkIHByZXZpb3VzbHksIHJvdXRlIHN1bW1hcml6YXRpb24gaXMgbm90IHBvc3NpYmxl IHdpdGhpbg0KICAgICB0aGUgcHJvcG9zZWQgQ2xvcyB0b3BvbG9neSBzaW5jZSBpdCBtYWtlcyB0 aGUgbmV0d29yayBzdXNjZXB0aWJsZSB0bw0KICAgICByb3V0ZSBibGFjay1ob2xpbmcgdW5kZXIg c2luZ2xlIGxpbmsgZmFpbHVyZXMuICBUaGUgbWFpbiBwcm9ibGVtIGlzDQohICAgIHRoZSBsaW1p dGVkIG51bWJlciBvZiByZWR1bmRhbnQgcGF0aHMgYmV0d2VlbiBuZXR3b3JrIGVsZW1lbnRzLCBl LmcuDQogICAgIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgcGF0aCBiZXR3ZWVuIGFueSBwYWlyIG9m IFRpZXItMSBhbmQgVGllci0zDQogICAgIGRldmljZXMuICBIb3dldmVyLCBzb21lIG9wZXJhdG9y cyBtYXkgZmluZCByb3V0ZSBhZ2dyZWdhdGlvbg0KICAgICBkZXNpcmFibGUgdG8gaW1wcm92ZSBj b250cm9sIHBsYW5lIHN0YWJpbGl0eS4NCiAgDQohICAgIElmIHBsYW5uaW5nIG9uIHVzaW5nIGFu eSB0ZWNobmlxdWUgdG8gc3VtbWFyaXplIHdpdGhpbiB0aGUgdG9wb2xvZ3kNCiAgICAgbW9kZWxp bmcgb2YgdGhlIHJvdXRpbmcgYmVoYXZpb3IgYW5kIHBvdGVudGlhbCBmb3IgYmxhY2staG9saW5n DQogICAgIHNob3VsZCBiZSBkb25lIG5vdCBvbmx5IGZvciBzaW5nbGUgb3IgbXVsdGlwbGUgbGlu ayBmYWlsdXJlcywgYnV0DQogIA0KLS0tIDE0NDIsMTQ1MyAtLS0tDQogICAgIEFzIG1lbnRpb25l ZCBwcmV2aW91c2x5LCByb3V0ZSBzdW1tYXJpemF0aW9uIGlzIG5vdCBwb3NzaWJsZSB3aXRoaW4N CiAgICAgdGhlIHByb3Bvc2VkIENsb3MgdG9wb2xvZ3kgc2luY2UgaXQgbWFrZXMgdGhlIG5ldHdv cmsgc3VzY2VwdGlibGUgdG8NCiAgICAgcm91dGUgYmxhY2staG9saW5nIHVuZGVyIHNpbmdsZSBs aW5rIGZhaWx1cmVzLiAgVGhlIG1haW4gcHJvYmxlbSBpcw0KISAgICB0aGUgbGltaXRlZCBudW1i ZXIgb2YgcmVkdW5kYW50IHBhdGhzIGJldHdlZW4gbmV0d29yayBlbGVtZW50cywgZS5nLiwNCiAg ICAgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBwYXRoIGJldHdlZW4gYW55IHBhaXIgb2YgVGllci0x IGFuZCBUaWVyLTMNCiAgICAgZGV2aWNlcy4gIEhvd2V2ZXIsIHNvbWUgb3BlcmF0b3JzIG1heSBm aW5kIHJvdXRlIGFnZ3JlZ2F0aW9uDQogICAgIGRlc2lyYWJsZSB0byBpbXByb3ZlIGNvbnRyb2wg cGxhbmUgc3RhYmlsaXR5Lg0KICANCiEgICAgSWYgYW55IHRlY2huaXF1ZSB0byBzdW1tYXJpemUg d2l0aGluIHRoZSB0b3BvbG9neSBpcyBwbGFubmVkLA0KICAgICBtb2RlbGluZyBvZiB0aGUgcm91 dGluZyBiZWhhdmlvciBhbmQgcG90ZW50aWFsIGZvciBibGFjay1ob2xpbmcNCiAgICAgc2hvdWxk IGJlIGRvbmUgbm90IG9ubHkgZm9yIHNpbmdsZSBvciBtdWx0aXBsZSBsaW5rIGZhaWx1cmVzLCBi dXQNCiAgDQoqKioqKioqKioqKioqKioNCioqKiAxNDU4LDE0NjggKioqKg0KICBJbnRlcm5ldC1E cmFmdCAgICBkcmFmdC1pZXRmLXJ0Z3dnLWJncC1yb3V0aW5nLWxhcmdlLWRjICAgICAgIE1hcmNo IDIwMTYNCiAgDQogIA0KISAgICBhbHNvIGZpYmVyIHBhdGh3YXkgZmFpbHVyZXMgb3Igb3B0aWNh bCBkb21haW4gZmFpbHVyZXMgaWYgdGhlDQogICAgIHRvcG9sb2d5IGV4dGVuZHMgYmV5b25kIGEg cGh5c2ljYWwgbG9jYXRpb24uICBTaW1wbGUgbW9kZWxpbmcgY2FuIGJlDQogICAgIGRvbmUgYnkg Y2hlY2tpbmcgdGhlIHJlYWNoYWJpbGl0eSBvbiBkZXZpY2VzIGRvaW5nIHN1bW1hcml6YXRpb24N CiAgICAgdW5kZXIgdGhlIGNvbmRpdGlvbiBvZiBhIGxpbmsgb3IgcGF0aHdheSBmYWlsdXJlIGJl dHdlZW4gYSBzZXQgb2YNCiEgICAgZGV2aWNlcyBpbiBldmVyeSB0aWVyIGFzIHdlbGwgYXMgdG8g dGhlIFdBTiByb3V0ZXJzIGlmIGV4dGVybmFsDQogICAgIGNvbm5lY3Rpdml0eSBpcyBwcmVzZW50 Lg0KICANCiAgICAgUm91dGUgc3VtbWFyaXphdGlvbiB3b3VsZCBiZSBwb3NzaWJsZSB3aXRoIGEg c21hbGwgbW9kaWZpY2F0aW9uIHRvDQotLS0gMTQ1OCwxNDY4IC0tLS0NCiAgSW50ZXJuZXQtRHJh ZnQgICAgZHJhZnQtaWV0Zi1ydGd3Zy1iZ3Atcm91dGluZy1sYXJnZS1kYyAgICAgICBNYXJjaCAy MDE2DQogIA0KICANCiEgICAgYWxzbyBmaWJlciBwYXRod2F5IGZhaWx1cmVzIG9yIG9wdGljYWwg ZG9tYWluIGZhaWx1cmVzIHdoZW4gdGhlDQogICAgIHRvcG9sb2d5IGV4dGVuZHMgYmV5b25kIGEg cGh5c2ljYWwgbG9jYXRpb24uICBTaW1wbGUgbW9kZWxpbmcgY2FuIGJlDQogICAgIGRvbmUgYnkg Y2hlY2tpbmcgdGhlIHJlYWNoYWJpbGl0eSBvbiBkZXZpY2VzIGRvaW5nIHN1bW1hcml6YXRpb24N CiAgICAgdW5kZXIgdGhlIGNvbmRpdGlvbiBvZiBhIGxpbmsgb3IgcGF0aHdheSBmYWlsdXJlIGJl dHdlZW4gYSBzZXQgb2YNCiEgICAgZGV2aWNlcyBpbiBldmVyeSB0aWVyIGFzIHdlbGwgYXMgdG8g dGhlIFdBTiByb3V0ZXJzIHdoZW4gZXh0ZXJuYWwNCiAgICAgY29ubmVjdGl2aXR5IGlzIHByZXNl bnQuDQogIA0KICAgICBSb3V0ZSBzdW1tYXJpemF0aW9uIHdvdWxkIGJlIHBvc3NpYmxlIHdpdGgg YSBzbWFsbCBtb2RpZmljYXRpb24gdG8NCioqKioqKioqKioqKioqKg0KKioqIDE1MTksMTU0NCAq KioqDQogICAgIGNsdXN0ZXIgZnJvbSBUaWVyLTIgZGV2aWNlcyBzaW5jZSBlYWNoIG9mIHRoZW0g aGFzIG9ubHkgYSBzaW5nbGUgcGF0aA0KICAgICBkb3duIHRvIHRoaXMgcHJlZml4LiAgSXQgd291 bGQgcmVxdWlyZSBkdWFsLWhvbWVkIHNlcnZlcnMgdG8NCiAgICAgYWNjb21wbGlzaCB0aGF0LiAg QWxzbyBub3RlIHRoYXQgdGhpcyBkZXNpZ24gaXMgb25seSByZXNpbGllbnQgdG8NCiEgICAgc2lu Z2xlIGxpbmsgZmFpbHVyZS4gIEl0IGlzIHBvc3NpYmxlIGZvciBhIGRvdWJsZSBsaW5rIGZhaWx1 cmUgdG8NCiAgICAgaXNvbGF0ZSBhIFRpZXItMiBkZXZpY2UgZnJvbSBhbGwgcGF0aHMgdG93YXJk IGEgc3BlY2lmaWMgVGllci0zDQogICAgIGRldmljZSwgdGh1cyBjYXVzaW5nIGEgcm91dGluZyBi bGFjay1ob2xlLg0KICANCiEgICAgQSByZXN1bHQgb2YgdGhlIHByb3Bvc2VkIHRvcG9sb2d5IG1v ZGlmaWNhdGlvbiB3b3VsZCBiZSByZWR1Y3Rpb24gb2YNCiAgICAgVGllci0xIGRldmljZXMgcG9y dCBjYXBhY2l0eS4gIFRoaXMgbGltaXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZg0KICAgICBhdHRh Y2hlZCBUaWVyLTIgZGV2aWNlcyBhbmQgdGhlcmVmb3JlIHdpbGwgbGltaXQgdGhlIG1heGltdW0g REMNCiAgICAgbmV0d29yayBzaXplLiAgQSBsYXJnZXIgbmV0d29yayB3b3VsZCByZXF1aXJlIGRp ZmZlcmVudCBUaWVyLTENCiAgICAgZGV2aWNlcyB0aGF0IGhhdmUgaGlnaGVyIHBvcnQgZGVuc2l0 eSB0byBpbXBsZW1lbnQgdGhpcyBjaGFuZ2UuDQogIA0KICAgICBBbm90aGVyIHByb2JsZW0gaXMg dHJhZmZpYyByZS1iYWxhbmNpbmcgdW5kZXIgbGluayBmYWlsdXJlcy4gIFNpbmNlDQohICAgIHRo cmVlIGFyZSB0d28gcGF0aHMgZnJvbSBUaWVyLTEgdG8gVGllci0zLCBhIGZhaWx1cmUgb2YgdGhl IGxpbmsNCiAgICAgYmV0d2VlbiBUaWVyLTEgYW5kIFRpZXItMiBzd2l0Y2ggd291bGQgcmVzdWx0 IGluIGFsbCB0cmFmZmljIHRoYXQgd2FzDQogICAgIHRha2luZyB0aGUgZmFpbGVkIGxpbmsgdG8g c3dpdGNoIHRvIHRoZSByZW1haW5pbmcgcGF0aC4gIFRoaXMgd2lsbA0KISAgICByZXN1bHQgaW4g ZG91Ymxpbmcgb2YgbGluayB1dGlsaXphdGlvbiBvbiB0aGUgcmVtYWluaW5nIGxpbmsuDQogIA0K ICA4LjIuMi4gIFNpbXBsZSBWaXJ0dWFsIEFnZ3JlZ2F0aW9uDQogIA0KICAgICBBIGNvbXBsZXRl bHkgZGlmZmVyZW50IGFwcHJvYWNoIHRvIHJvdXRlIHN1bW1hcml6YXRpb24gaXMgcG9zc2libGUs DQohICAgIHByb3ZpZGVkIHRoYXQgdGhlIG1haW4gZ29hbCBpcyB0byByZWR1Y2UgdGhlIEZJQiBw cmVzc3VyZSwgd2hpbGUNCiAgICAgYWxsb3dpbmcgdGhlIGNvbnRyb2wgcGxhbmUgdG8gZGlzc2Vt aW5hdGUgZnVsbCByb3V0aW5nIGluZm9ybWF0aW9uLg0KICAgICBGaXJzdGx5LCBpdCBjb3VsZCBi ZSBlYXNpbHkgbm90ZWQgdGhhdCBpbiBtYW55IGNhc2VzIG11bHRpcGxlDQogICAgIHByZWZpeGVz LCBzb21lIG9mIHdoaWNoIGFyZSBsZXNzIHNwZWNpZmljLCBzaGFyZSB0aGUgc2FtZSBzZXQgb2Yg dGhlDQotLS0gMTUxOSwxNTQ0IC0tLS0NCiAgICAgY2x1c3RlciBmcm9tIFRpZXItMiBkZXZpY2Vz IHNpbmNlIGVhY2ggb2YgdGhlbSBoYXMgb25seSBhIHNpbmdsZSBwYXRoDQogICAgIGRvd24gdG8g dGhpcyBwcmVmaXguICBJdCB3b3VsZCByZXF1aXJlIGR1YWwtaG9tZWQgc2VydmVycyB0bw0KICAg ICBhY2NvbXBsaXNoIHRoYXQuICBBbHNvIG5vdGUgdGhhdCB0aGlzIGRlc2lnbiBpcyBvbmx5IHJl c2lsaWVudCB0bw0KISAgICBzaW5nbGUgbGluayBmYWlsdXJlcy4gIEl0IGlzIHBvc3NpYmxlIGZv ciBhIGRvdWJsZSBsaW5rIGZhaWx1cmUgdG8NCiAgICAgaXNvbGF0ZSBhIFRpZXItMiBkZXZpY2Ug ZnJvbSBhbGwgcGF0aHMgdG93YXJkIGEgc3BlY2lmaWMgVGllci0zDQogICAgIGRldmljZSwgdGh1 cyBjYXVzaW5nIGEgcm91dGluZyBibGFjay1ob2xlLg0KICANCiEgICAgQSByZXN1bHQgb2YgdGhl IHByb3Bvc2VkIHRvcG9sb2d5IG1vZGlmaWNhdGlvbiB3b3VsZCBiZSBhIHJlZHVjdGlvbiBvZg0K ICAgICBUaWVyLTEgZGV2aWNlcyBwb3J0IGNhcGFjaXR5LiAgVGhpcyBsaW1pdHMgdGhlIG1heGlt dW0gbnVtYmVyIG9mDQogICAgIGF0dGFjaGVkIFRpZXItMiBkZXZpY2VzIGFuZCB0aGVyZWZvcmUg d2lsbCBsaW1pdCB0aGUgbWF4aW11bSBEQw0KICAgICBuZXR3b3JrIHNpemUuICBBIGxhcmdlciBu ZXR3b3JrIHdvdWxkIHJlcXVpcmUgZGlmZmVyZW50IFRpZXItMQ0KICAgICBkZXZpY2VzIHRoYXQg aGF2ZSBoaWdoZXIgcG9ydCBkZW5zaXR5IHRvIGltcGxlbWVudCB0aGlzIGNoYW5nZS4NCiAgDQog ICAgIEFub3RoZXIgcHJvYmxlbSBpcyB0cmFmZmljIHJlLWJhbGFuY2luZyB1bmRlciBsaW5rIGZh aWx1cmVzLiAgU2luY2UNCiEgICAgdGhlcmUgYXJlIHR3byBwYXRocyBmcm9tIFRpZXItMSB0byBU aWVyLTMsIGEgZmFpbHVyZSBvZiB0aGUgbGluaw0KICAgICBiZXR3ZWVuIFRpZXItMSBhbmQgVGll ci0yIHN3aXRjaCB3b3VsZCByZXN1bHQgaW4gYWxsIHRyYWZmaWMgdGhhdCB3YXMNCiAgICAgdGFr aW5nIHRoZSBmYWlsZWQgbGluayB0byBzd2l0Y2ggdG8gdGhlIHJlbWFpbmluZyBwYXRoLiAgVGhp cyB3aWxsDQohICAgIHJlc3VsdCBpbiBkb3VibGluZyB0aGUgbGluayB1dGlsaXphdGlvbiBvZiB0 aGUgcmVtYWluaW5nIGxpbmsuDQogIA0KICA4LjIuMi4gIFNpbXBsZSBWaXJ0dWFsIEFnZ3JlZ2F0 aW9uDQogIA0KICAgICBBIGNvbXBsZXRlbHkgZGlmZmVyZW50IGFwcHJvYWNoIHRvIHJvdXRlIHN1 bW1hcml6YXRpb24gaXMgcG9zc2libGUsDQohICAgIHByb3ZpZGVkIHRoYXQgdGhlIG1haW4gZ29h bCBpcyB0byByZWR1Y2UgdGhlIEZJQiBzaXplLCB3aGlsZQ0KICAgICBhbGxvd2luZyB0aGUgY29u dHJvbCBwbGFuZSB0byBkaXNzZW1pbmF0ZSBmdWxsIHJvdXRpbmcgaW5mb3JtYXRpb24uDQogICAg IEZpcnN0bHksIGl0IGNvdWxkIGJlIGVhc2lseSBub3RlZCB0aGF0IGluIG1hbnkgY2FzZXMgbXVs dGlwbGUNCiAgICAgcHJlZml4ZXMsIHNvbWUgb2Ygd2hpY2ggYXJlIGxlc3Mgc3BlY2lmaWMsIHNo YXJlIHRoZSBzYW1lIHNldCBvZiB0aGUNCioqKioqKioqKioqKioqKg0KKioqIDE1NTAsMTU2MyAq KioqDQogICAgIFtSRkM2NzY5XSBhbmQgb25seSBpbnN0YWxsIHRoZSBsZWFzdCBzcGVjaWZpYyBy b3V0ZSBpbiB0aGUgRklCLA0KICAgICBpZ25vcmluZyBtb3JlIHNwZWNpZmljIHJvdXRlcyBpZiB0 aGV5IHNoYXJlIHRoZSBzYW1lIG5leHQtaG9wIHNldC4NCiAgICAgRm9yIGV4YW1wbGUsIHVuZGVy IG5vcm1hbCBuZXR3b3JrIGNvbmRpdGlvbnMsIG9ubHkgdGhlIGRlZmF1bHQgcm91dGUNCiEgICAg bmVlZCB0byBiZSBwcm9ncmFtbWVkIGludG8gRklCLg0KICANCiAgICAgRnVydGhlcm1vcmUsIGlm IHRoZSBUaWVyLTIgZGV2aWNlcyBhcmUgY29uZmlndXJlZCB3aXRoIHN1bW1hcnkNCiEgICAgcHJl Zml4ZXMgY292ZXJpbmcgYWxsIG9mIHRoZWlyIGF0dGFjaGVkIFRpZXItMyBkZXZpY2UncyBwcmVm aXhlcyB0aGUNCiAgICAgc2FtZSBsb2dpYyBjb3VsZCBiZSBhcHBsaWVkIGluIFRpZXItMSBkZXZp Y2VzIGFzIHdlbGwsIGFuZCwgYnkNCiAgICAgaW5kdWN0aW9uIHRvIFRpZXItMi9UaWVyLTMgc3dp dGNoZXMgaW4gZGlmZmVyZW50IGNsdXN0ZXJzLiAgVGhlc2UNCiAgICAgc3VtbWFyeSByb3V0ZXMg c2hvdWxkIHN0aWxsIGFsbG93IGZvciBtb3JlIHNwZWNpZmljIHByZWZpeGVzIHRvIGxlYWsNCiEg ICAgdG8gVGllci0xIGRldmljZXMsIHRvIGVuYWJsZSBmb3IgZGV0ZWN0aW9uIG9mIG1pc21hdGNo ZXMgaW4gdGhlIG5leHQtDQogICAgIGhvcCBzZXRzIGlmIGEgcGFydGljdWxhciBsaW5rIGZhaWxz LCBjaGFuZ2luZyB0aGUgbmV4dC1ob3Agc2V0IGZvciBhDQogICAgIHNwZWNpZmljIHByZWZpeC4N CiAgDQotLS0gMTU1MCwxNTYzIC0tLS0NCiAgICAgW1JGQzY3NjldIGFuZCBvbmx5IGluc3RhbGwg dGhlIGxlYXN0IHNwZWNpZmljIHJvdXRlIGluIHRoZSBGSUIsDQogICAgIGlnbm9yaW5nIG1vcmUg c3BlY2lmaWMgcm91dGVzIGlmIHRoZXkgc2hhcmUgdGhlIHNhbWUgbmV4dC1ob3Agc2V0Lg0KICAg ICBGb3IgZXhhbXBsZSwgdW5kZXIgbm9ybWFsIG5ldHdvcmsgY29uZGl0aW9ucywgb25seSB0aGUg ZGVmYXVsdCByb3V0ZQ0KISAgICBuZWVkcyB0byBiZSBwcm9ncmFtbWVkIGludG8gRklCLg0KICAN CiAgICAgRnVydGhlcm1vcmUsIGlmIHRoZSBUaWVyLTIgZGV2aWNlcyBhcmUgY29uZmlndXJlZCB3 aXRoIHN1bW1hcnkNCiEgICAgcHJlZml4ZXMgY292ZXJpbmcgYWxsIG9mIHRoZWlyIGF0dGFjaGVk IFRpZXItMyBkZXZpY2UncyBwcmVmaXhlcywgdGhlDQogICAgIHNhbWUgbG9naWMgY291bGQgYmUg YXBwbGllZCBpbiBUaWVyLTEgZGV2aWNlcyBhcyB3ZWxsLCBhbmQsIGJ5DQogICAgIGluZHVjdGlv biB0byBUaWVyLTIvVGllci0zIHN3aXRjaGVzIGluIGRpZmZlcmVudCBjbHVzdGVycy4gIFRoZXNl DQogICAgIHN1bW1hcnkgcm91dGVzIHNob3VsZCBzdGlsbCBhbGxvdyBmb3IgbW9yZSBzcGVjaWZp YyBwcmVmaXhlcyB0byBsZWFrDQohICAgIHRvIFRpZXItMSBkZXZpY2VzLCB0byBlbmFibGUgZGV0 ZWN0aW9uIG9mIG1pc21hdGNoZXMgaW4gdGhlIG5leHQtDQogICAgIGhvcCBzZXRzIGlmIGEgcGFy dGljdWxhciBsaW5rIGZhaWxzLCBjaGFuZ2luZyB0aGUgbmV4dC1ob3Agc2V0IGZvciBhDQogICAg IHNwZWNpZmljIHByZWZpeC4NCiAgDQoqKioqKioqKioqKioqKioNCioqKiAxNTcxLDE1ODQgKioq Kg0KICANCiAgDQogICAgIFJlLXN0YXRpbmcgb25jZSBhZ2FpbiwgdGhpcyB0ZWNobmlxdWUgZG9l cyBub3QgcmVkdWNlIHRoZSBhbW91bnQgb2YNCiEgICAgY29udHJvbCBwbGFuZSBzdGF0ZSAoaS5l LiAgQkdQIFVQREFURXMvQkdQIExvY1JJQiBzaXppbmcpLCBidXQgb25seQ0KISAgICBhbGxvd3Mg Zm9yIG1vcmUgZWZmaWNpZW50IEZJQiB1dGlsaXphdGlvbiwgYnkgc3BvdHRpbmcgbW9yZSBzcGVj aWZpYw0KISAgICBwcmVmaXhlcyB0aGF0IHNoYXJlIHRoZWlyIG5leHQtaG9wcyB3aXRoIGxlc3Mg c3BlY2lmaWNzLg0KICANCiAgOC4zLiAgSUNNUCBVbnJlYWNoYWJsZSBNZXNzYWdlIE1hc3F1ZXJh ZGluZw0KICANCiAgICAgVGhpcyBzZWN0aW9uIGRpc2N1c3NlcyBzb21lIG9wZXJhdGlvbmFsIGFz cGVjdHMgb2Ygbm90IGFkdmVydGlzaW5nDQohICAgIHBvaW50LXRvLXBvaW50IGxpbmsgc3VibmV0 cyBpbnRvIEJHUCwgYXMgcHJldmlvdXNseSBvdXRsaW5lZCBhcyBhbg0KICAgICBvcHRpb24gaW4g U2VjdGlvbiA1LjIuMy4gIFRoZSBvcGVyYXRpb25hbCBpbXBhY3Qgb2YgdGhpcyBkZWNpc2lvbg0K ICAgICBjb3VsZCBiZSBzZWVuIHdoZW4gdXNpbmcgdGhlIHdlbGwta25vd24gInRyYWNlcm91dGUi IHRvb2wuDQogICAgIFNwZWNpZmljYWxseSwgSVAgYWRkcmVzc2VzIGRpc3BsYXllZCBieSB0aGUg dG9vbCB3aWxsIGJlIHRoZSBsaW5rJ3MNCi0tLSAxNTcxLDE1ODUgLS0tLQ0KICANCiAgDQogICAg IFJlLXN0YXRpbmcgb25jZSBhZ2FpbiwgdGhpcyB0ZWNobmlxdWUgZG9lcyBub3QgcmVkdWNlIHRo ZSBhbW91bnQgb2YNCiEgICAgY29udHJvbCBwbGFuZSBzdGF0ZSAoaS5lLiwgIEJHUCBVUERBVEVz L0JHUCBMb2MtUklCIHNpemUpLCBidXQgb25seQ0KISAgICBhbGxvd3MgZm9yIG1vcmUgZWZmaWNp ZW50IEZJQiB1dGlsaXphdGlvbiwgYnkgZGV0ZWN0aW5nIG1vcmUgc3BlY2lmaWMNCiEgICAgcHJl Zml4ZXMgdGhhdCBzaGFyZSB0aGVpciBuZXh0LWhvcCBzZXQgd2l0aCBhIHN1YnN1bWluZyBsZXNz IHNwZWNpZmljDQohICAgIHByZWZpeC4NCiAgDQogIDguMy4gIElDTVAgVW5yZWFjaGFibGUgTWVz c2FnZSBNYXNxdWVyYWRpbmcNCiAgDQogICAgIFRoaXMgc2VjdGlvbiBkaXNjdXNzZXMgc29tZSBv cGVyYXRpb25hbCBhc3BlY3RzIG9mIG5vdCBhZHZlcnRpc2luZw0KISAgICBwb2ludC10by1wb2lu dCBsaW5rIHN1Ym5ldHMgaW50byBCR1AsIGFzIHByZXZpb3VzbHkgaWRlbnRpZmllZCBhcyBhbg0K ICAgICBvcHRpb24gaW4gU2VjdGlvbiA1LjIuMy4gIFRoZSBvcGVyYXRpb25hbCBpbXBhY3Qgb2Yg dGhpcyBkZWNpc2lvbg0KICAgICBjb3VsZCBiZSBzZWVuIHdoZW4gdXNpbmcgdGhlIHdlbGwta25v d24gInRyYWNlcm91dGUiIHRvb2wuDQogICAgIFNwZWNpZmljYWxseSwgSVAgYWRkcmVzc2VzIGRp c3BsYXllZCBieSB0aGUgdG9vbCB3aWxsIGJlIHRoZSBsaW5rJ3MNCioqKioqKioqKioqKioqKg0K KioqIDE1ODcsMTYwNSAqKioqDQogICAgIGNvbXBsaWNhdGVkLg0KICANCiAgICAgT25lIHdheSB0 byBvdmVyY29tZSB0aGlzIGxpbWl0YXRpb24gaXMgYnkgdXNpbmcgdGhlIEROUyBzdWJzeXN0ZW0g dG8NCiEgICAgY3JlYXRlIHRoZSAicmV2ZXJzZSIgZW50cmllcyBmb3IgdGhlIElQIGFkZHJlc3Nl cyBvZiB0aGUgc2FtZSBkZXZpY2UNCiEgICAgcG9pbnRpbmcgdG8gdGhlIHNhbWUgbmFtZS4gIFRo ZSBjb25uZWN0aXZpdHkgdGhlbiBjYW4gYmUgbWFkZSBieQ0KISAgICByZXNvbHZpbmcgdGhpcyBu YW1lIHRvIHRoZSAicHJpbWFyeSIgSVAgYWRkcmVzcyBvZiB0aGUgZGV2aWNlcywgZS5nLg0KICAg ICBpdHMgTG9vcGJhY2sgaW50ZXJmYWNlLCB3aGljaCBpcyBhbHdheXMgYWR2ZXJ0aXNlZCBpbnRv IEJHUC4NCiAgICAgSG93ZXZlciwgdGhpcyBjcmVhdGVzIGEgZGVwZW5kZW5jeSBvbiB0aGUgRE5T IHN1YnN5c3RlbSwgd2hpY2ggbWF5IGJlDQogICAgIHVuYXZhaWxhYmxlIGR1cmluZyBhbiBvdXRh Z2UuDQogIA0KICAgICBBbm90aGVyIG9wdGlvbiBpcyB0byBtYWtlIHRoZSBuZXR3b3JrIGRldmlj ZSBwZXJmb3JtIElQIGFkZHJlc3MNCiAgICAgbWFzcXVlcmFkaW5nLCB0aGF0IGlzIHJld3JpdGlu ZyB0aGUgc291cmNlIElQIGFkZHJlc3NlcyBvZiB0aGUNCiEgICAgYXBwcm9wcmlhdGUgSUNNUCBt ZXNzYWdlcyBzZW50IG9mZiBvZiB0aGUgZGV2aWNlIHdpdGggdGhlICJwcmltYXJ5Ig0KICAgICBJ UCBhZGRyZXNzIG9mIHRoZSBkZXZpY2UuICBTcGVjaWZpY2FsbHksIHRoZSBJQ01QIERlc3RpbmF0 aW9uDQogICAgIFVucmVhY2hhYmxlIE1lc3NhZ2UgKHR5cGUgMykgY29kZXMgMyAocG9ydCB1bnJl YWNoYWJsZSkgYW5kIElDTVAgVGltZQ0KISAgICBFeGNlZWRlZCAodHlwZSAxMSkgY29kZSAwLCB3 aGljaCBhcmUgaW52b2x2ZWQgaW4gcHJvcGVyIHdvcmtpbmcgb2YNCiAgICAgdGhlICJ0cmFjZXJv dXRlIiB0b29sLiAgV2l0aCB0aGlzIG1vZGlmaWNhdGlvbiwgdGhlICJ0cmFjZXJvdXRlIg0KICAg ICBwcm9iZXMgc2VudCB0byB0aGUgZGV2aWNlcyB3aWxsIGFsd2F5cyBiZSBzZW50IGJhY2sgd2l0 aCB0aGUNCiAgICAgInByaW1hcnkiIElQIGFkZHJlc3MgYXMgdGhlIHNvdXJjZSwgYWxsb3dpbmcg dGhlIG9wZXJhdG9yIHRvIGRpc2NvdmVyDQotLS0gMTU4OCwxNjA2IC0tLS0NCiAgICAgY29tcGxp Y2F0ZWQuDQogIA0KICAgICBPbmUgd2F5IHRvIG92ZXJjb21lIHRoaXMgbGltaXRhdGlvbiBpcyBi eSB1c2luZyB0aGUgRE5TIHN1YnN5c3RlbSB0bw0KISAgICBjcmVhdGUgdGhlICJyZXZlcnNlIiBl bnRyaWVzIGZvciB0aGVzZSBwb2ludC10by1wb2ludCBJUCBhZGRyZXNzZXMNCnBvaW50aW5nDQoh ICAgIHRvIGEgdGhlIHNhbWUgbmFtZSBhcyB0aGUgbG9vcGJhY2sgYWRkcmVzcy4gIFRoZSBjb25u ZWN0aXZpdHkgdGhlbg0KY2FuIGJlIG1hZGUgYnkNCiEgICAgcmVzb2x2aW5nIHRoaXMgbmFtZSB0 byB0aGUgInByaW1hcnkiIElQIGFkZHJlc3Mgb2YgdGhlIGRldmljZXMsIGUuZy4sDQogICAgIGl0 cyBMb29wYmFjayBpbnRlcmZhY2UsIHdoaWNoIGlzIGFsd2F5cyBhZHZlcnRpc2VkIGludG8gQkdQ Lg0KICAgICBIb3dldmVyLCB0aGlzIGNyZWF0ZXMgYSBkZXBlbmRlbmN5IG9uIHRoZSBETlMgc3Vi c3lzdGVtLCB3aGljaCBtYXkgYmUNCiAgICAgdW5hdmFpbGFibGUgZHVyaW5nIGFuIG91dGFnZS4N CiAgDQogICAgIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1ha2UgdGhlIG5ldHdvcmsgZGV2aWNlIHBl cmZvcm0gSVAgYWRkcmVzcw0KICAgICBtYXNxdWVyYWRpbmcsIHRoYXQgaXMgcmV3cml0aW5nIHRo ZSBzb3VyY2UgSVAgYWRkcmVzc2VzIG9mIHRoZQ0KISAgICBhcHByb3ByaWF0ZSBJQ01QIG1lc3Nh Z2VzIHNlbnQgYnkgdGhlIGRldmljZSB3aXRoIHRoZSAicHJpbWFyeSINCiAgICAgSVAgYWRkcmVz cyBvZiB0aGUgZGV2aWNlLiAgU3BlY2lmaWNhbGx5LCB0aGUgSUNNUCBEZXN0aW5hdGlvbg0KICAg ICBVbnJlYWNoYWJsZSBNZXNzYWdlICh0eXBlIDMpIGNvZGVzIDMgKHBvcnQgdW5yZWFjaGFibGUp IGFuZCBJQ01QIFRpbWUNCiEgICAgRXhjZWVkZWQgKHR5cGUgMTEpIGNvZGUgMCwgd2hpY2ggYXJl IHJlcXVpcmVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbiBvZg0KICAgICB0aGUgInRyYWNlcm91dGUi IHRvb2wuICBXaXRoIHRoaXMgbW9kaWZpY2F0aW9uLCB0aGUgInRyYWNlcm91dGUiDQogICAgIHBy b2JlcyBzZW50IHRvIHRoZSBkZXZpY2VzIHdpbGwgYWx3YXlzIGJlIHNlbnQgYmFjayB3aXRoIHRo ZQ0KICAgICAicHJpbWFyeSIgSVAgYWRkcmVzcyBhcyB0aGUgc291cmNlLCBhbGxvd2luZyB0aGUg b3BlcmF0b3IgdG8gZGlzY292ZXINCg0KVGhhbmtzLA0KQWNlZQ0KDQo= From nobody Mon Apr 25 11:40:53 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CB93612D663; Mon, 25 Apr 2016 11:40:51 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.699 X-Spam-Level: X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id owQnPuhS2Y31; Mon, 25 Apr 2016 11:40:49 -0700 (PDT) Received: from mail-oi0-x235.google.com (mail-oi0-x235.google.com [IPv6:2607:f8b0:4003:c06::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AB5BF12D6A8; Mon, 25 Apr 2016 11:40:07 -0700 (PDT) Received: by mail-oi0-x235.google.com with SMTP id k142so185991139oib.1; Mon, 25 Apr 2016 11:40:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=r9lXYgxKuaVv6rm11IiXRvTbomFVXCPHiO0pYDfwBi0=; b=etFKWQldo9/Bg0RRnSOH5asn+Y62NsWSx4T5vq1u5jgw/GByrZhjNdu8KbscVavSCl pOcFylAWu5L1zrledMhEtFwRhsaCQRPWara6tZkOk+AXoNWywHwEBXcH6bh8ZitIduc2 /2k48b6PkVx5p0xG5lr8n+QuUKzqhdJ4ZsGyqpOflxQ9HKZhG7+gHxTm0SY4MgCtGLow nLCMys2zOHWTSSDdSqHXq5W0C1qNSj9Sob/ofCgtO3J8o9f+y+gT2zyxeqPKK84NvSAY IILHWIWXIYFjc1QIxDu4h84qBxRpmkh8+8FL64Anpb9DYVP5knfCGKbH16lyNt9UF3Ov HCHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=r9lXYgxKuaVv6rm11IiXRvTbomFVXCPHiO0pYDfwBi0=; b=VfYIqvcQ4+iHf0xUfunvKLWlD5pHAPimha+cFNI2zOdfPDjVIetftOK/tAknwixQCk mFEKalhlKcwebIbvkACc3JVJNKEqzkCCA9fWPxo6aa8MV3bEdgMVRHoBVukI3wY9AYbg dzh9FD3Ym5kfBXZ+j4hzkr/KzO8YbggKWE35ZpX6WRjah7EP6l1X4j4a7GGT4xDxnlSs 5ZjRScPkCuhXKBNoFji6eDyxirx1/VgDTgeO9buT3QImuLkVNWiGstvWah0FrhVSNDRX mADL2B+qJFV0kLZ97shQ7E584sbbXQYVYOtMacTfdOCwgA74ttVadQW3xT0H0UXQtjYq PXoA== X-Gm-Message-State: AOPr4FVJJRnDAP3iVpAji10CcntFlFXtZjgefYfB9FUVSGWIdc72fa/9I/SiZvK40aeUhm76DSnwhyvduP7/Yw== X-Received: by 10.202.184.6 with SMTP id i6mr15063550oif.76.1461609606896; Mon, 25 Apr 2016 11:40:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.231.106 with HTTP; Mon, 25 Apr 2016 11:39:47 -0700 (PDT) In-Reply-To: <4A1562797D64E44993C5CBF38CF1BE48162BAB9E@ESESSMB301.ericsson.se> References: <4A1562797D64E44993C5CBF38CF1BE48162BAB9E@ESESSMB301.ericsson.se> From: "Andrew G. Malis" Date: Mon, 25 Apr 2016 14:39:47 -0400 Message-ID: To: Daniele Ceccarelli Content-Type: multipart/alternative; boundary=001a113cd1906b691f0531538136 Archived-At: Cc: " \(rtg-ads@ietf.org\)" , "rtg-dir@ietf.org" , "draft-ietf-pals-mpls-tp-pw-over-bidir-lsp.all@tools.ietf.org" , "pals@ietf.org" Subject: Re: [RTG-DIR] [Pals] RtgDir review: draft-ietf-pals-mpls-tp-pw-over-bidir-lsp-06 X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2016 18:40:52 -0000 --001a113cd1906b691f0531538136 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Daniele, On behalf of the PALS WG, thanks for your review! Cheers, Andy On Mon, Apr 25, 2016 at 1:09 PM, Daniele Ceccarelli < daniele.ceccarelli@ericsson.com> wrote: > Resending to the right exploder > > > > *From:* Daniele Ceccarelli > *Sent:* luned=C3=AC 25 aprile 2016 19:04 > *To:* (rtg-ads@ietf.org) > *Cc:* 'rtg-dir@ietf.org'; ' > draft-ietf-pals-mpls-tp-pw-over-bidir-lsp.all@ietf.org' > *Subject:* RtgDir review: draft-ietf-pals-mpls-tp-pw-over-bidir-lsp-06 > > > > Hello, > > I have been selected as the Routing Directorate reviewer for this draft. > The Routing Directorate seeks to review all routing or routing-related > drafts as they pass through IETF last call and IESG review, and sometimes > on special request. The purpose of the review is to provide assistance to > the Routing ADs. For more information about the Routing Directorate, plea= se > see =E2=80=8Bhttp://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir > > Although these comments are primarily for the use of the Routing ADs, it > would be helpful if you could consider them along with any other IETF Las= t > Call comments that you receive, and strive to resolve them through > discussion or by updating the draft. > > Document: draft-ietf-pals-mpls-tp-pw-over-bidir-lsp-06 > Reviewer: Daniele Ceccarelli > Review Date: April 25 2016 > IETF LC End Date: - > Intended Status: Standard Track > > *Summary:* > > - I have some minor concerns about this document that I think should > be resolved before publication. > > *Comments:* > > - What the drafts is proposing as protocol modification is clear and > also the operation section are pretty straighforward. What needs to be > improved is the introduction part, which should be reviewed by a nativ= e > English speaker. Also the IANA section should be made clearer. > > *Major Issues:* > > - No major issues found > > *Minor Issues:* > > - Abstract: =E2=80=9CIn addition, the user traffic may traverse throug= h > multiple transport networks.=E2=80=9D Maybe is worth elaborating a bit= this > sentence saying that the extensions defined in this draft apply both t= o > SS-PW and MS-PW. > - In the abstract it is said that a PW is linked to an LSP but then in > the intro it is said that the PW binding is to a tunnel. Can you clari= fy > this? I=E2=80=99d say that it should be linked to a tunnel, right? > - Intro: =E2=80=9CPW-to-PSN Tunnel binding has become increasingly c= ommon > and important in many deployment scenarios=E2=80=9D. I guess you mean = an automatic > binding done via a signaling protocol? > - What do you mean with =E2=80=9Cmay traverse through different routes= =E2=80=9D? I > suggest leaving =E2=80=9Cmay traverse multiple networks or domains. > - Intro and Figure 1: could be example be made a bit more generic with > a network between the PEs? With directly connected PEs it doesn=E2=80= =99t seem a > realistic and generic enough example. > - Intro: suggest removing =E2=80=9CAs mentioned above=E2=80=9D. > - The name of the draft explicitly mentions MPLS-TP but in the rest > of the draft there is no mention of it, just the much more general Pac= ket > Switching Network term is used. > - Section 2: =E2=80=9CThis document defines a new optional TLV, PSN = Tunnel > Binding TLV, to communicate tunnel/LSPs selection and binding requests > between PEs. =E2=80=9C The binding request is between PEs? Or between = an PW and a > Tunnel (or LSP?) between two PEs? > - Section 2: Strict binding vs Co-routed binding: from the description > it seems that the first one is strict and the second one is =E2=80=9Cl= oose=E2=80=9D (in the > sense that the PE can accept the request or not). Don=E2=80=99t both a= pply to > co-routed LSPs? > - Section 2: =E2=80=9DThe terminology "LSP" is identical to the "LSP = tunnel" > defined in Section 2.1 of [RFC3209], which is uniquely identified by = the > SESSION object together with SENDER_TEMPLATE (or FILTER_SPEC) object = that > consists of LSP ID and Tunnel endpoint address.=E2=80=9D Why is the dr= aft > considering only signaled LSPs? Doesn=E2=80=99t it apply also to centr= ally > provisioned ones? (e.g. NMS or SDN). > - Section 2.1: =E2=80=9CLDP Label Mapping message=E2=80=9D missing ref= erence. And why > the Type field starts with 1 and 0? > > *Nits:* > > - Abstract s/ traverse through multiple/ traverse multiple > - Introduction: =E2=80=9CPseudowire (PW) Emulation Edge-to-Edge (PWE3)= =E2=80=9D. I > suggest removing (PW), it=E2=80=99s already included into PWE3. > - Intro: s/ a bidirectional circuits/ a bidirectional circuit > - Intro: suggest rephrasing: =E2=80=9CBidirectional LSPs share fate an= d > simplify the routing of a protection path also consisting of > bidirectional LSPs because working and protection paths have to be > disjoint.=E2=80=9D > - Intro: s/ there are a large number/ there is a large number > - Intro:s/to be carried/are carried > - Intro:s/there are a number/there is a number > - Intro: s/ traffic belongs/traffic belonging > - Intro: (suggestion) s/(PE1-P3-PE2)/ (PE2-P3-PE1) since we are > speaking about directionality it makes more sense to list the nodes of= the > path in the reverse direction. > - Intro: s/ The similar problems/A similar problem > - Intro: s/ won't/does not > - Intro: s/ In this document, it introduces/This document introduces > > BR > Daniele > > > > > > _______________________________________________ > Pals mailing list > Pals@ietf.org > https://www.ietf.org/mailman/listinfo/pals > > --001a113cd1906b691f0531538136 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Daniele,

On behalf of the PALS WG, thanks for your review!
<= br>
Cheers,
=
Andy

On Mon, Apr 25, 2016 at 1:09 P= M, Daniele Ceccarelli <daniele.ceccarelli@ericsson.com&g= t; wrote:

Resending to the right= exploder

=C2=A0

From: Daniele = Ceccarelli
Sent: luned=C3=AC 25 aprile 2016 19:04
To: <rtg-ad= s@ietf.org> (r= tg-ads@ietf.org)
Cc: 'rtg-d= ir@ietf.org'; 'draft-ietf-pals-mpls-tp-pw-over= -bidir-lsp.all@ietf.org'
Subject: RtgDir review: draft-ietf-pals-mpls-tp-pw-over-bidir-lsp-06=

=C2=A0

= Hello,

I have been selected as the Ro= uting Directorate reviewer for this draft. The Routing Directorate seeks to= review all routing or routing-related drafts as they pass through IETF las= t call and IESG review, and sometimes on special request. The purpose of the review is to provide assistance to = the Routing ADs. For more information about the Routing Directorate, please= see=C2=A0=E2=80= =8Bhttp://trac.tools.ietf.org/a= rea/rtg/trac/wiki/RtgDir

Although these comments are pr= imarily for the use of the Routing ADs, it would be helpful if you could co= nsider them along with any other IETF Last Call comments that you receive, = and strive to resolve them through discussion or by updating the draft.

Document:=C2=A0draft-iet= f-pals-mpls-tp-pw-over-bidir-lsp-06
Reviewer: Daniele Ceccarelli
Review Date: April 25 2016
IETF LC End Date: -
Intended Status: Standard Track

Summary:=C2=A0

  • I= have some minor concerns about this document that I think should be resolv= ed before publication.

Comments:

  • W= hat the drafts is proposing as protocol modification is clear and also the = operation section are pretty straighforward. What needs to be improved is t= he introduction part, which should be reviewed by a native English speaker. Also the IANA section should be made clearer. <= /u>

Major Issues:

  • N= o major issues found

Minor Issues:

  • A= bstract: =E2=80=9CIn addition, the user traffic may traverse through multip= le transport networks.=E2=80=9D Maybe is worth elaborating a bit this sente= nce saying that the extensions defined in this draft apply both to SS-PW and MS-PW.
  • I= n the abstract it is said that a PW is linked to an LSP but then in the int= ro it is said that the PW binding is to a tunnel. Can you clarify this? I= =E2=80=99d say that it should be linked to a tunnel, right?
  • I= ntro:=C2=A0=C2=A0 =E2=80=9CPW-to-PSN Tunnel binding has become increasingly= common and important in many deployment scenarios=E2=80=9D. I guess you me= an an automatic binding done via a signaling protocol?=
  • W= hat do you mean with =E2=80=9Cmay traverse through different routes=E2=80= =9D? I suggest leaving =E2=80=9Cmay traverse multiple networks or domains.<= u>
  • I= ntro and Figure 1: could be example be made a bit more generic with a netwo= rk between the PEs? With directly connected PEs it doesn=E2=80=99t seem a r= ealistic and generic enough example.
  • I= ntro: suggest removing =E2=80=9CAs mentioned above=E2=80=9D.
  • = =C2=A0The name of the draft explicitly mentions MPLS-TP but in the rest of = the draft there is no mention of it, just the much more general Packet Swit= ching Network term is used.
  • S= ection 2:=C2=A0=C2=A0 =E2=80=9CThis document defines a new optional TLV, PS= N Tunnel Binding TLV, to communicate tunnel/LSPs selection and binding requ= ests between PEs. =E2=80=9C The binding request is between PEs? Or between = an PW and a Tunnel (or LSP?) between two PEs?
  • S= ection 2: Strict binding vs Co-routed binding: from the description it seem= s that the first one is strict and the second one is =E2=80=9Cloose=E2=80= =9D (in the sense that the PE can accept the request or not). Don=E2=80=99t= both apply to co-routed LSPs?
  • S= ection 2: =E2=80=9DThe terminology "LSP" is=C2=A0 identical to th= e "LSP tunnel" defined in Section 2.1 of [RFC3209],=C2=A0 which i= s uniquely identified by the SESSION object together with=C2=A0 SENDER_TEMP= LATE (or FILTER_SPEC) object that consists of LSP ID and Tunnel endpoint address.=E2=80=9D Why i= s the draft considering only signaled LSPs? Doesn=E2=80=99t it apply also t= o centrally provisioned ones? (e.g. NMS or SDN).
  • <= li class=3D"MsoNormal" style=3D"color:black;background:white"> S= ection 2.1: =E2=80=9CLDP Label Mapping message=E2=80=9D missing reference. = And why the Type field starts with 1 and 0?

Nits:

  • A= bstract s/ traverse through multiple/ traverse multiple
  • I= ntroduction: =E2=80=9CPseudowire (PW) Emulation Edge-to-Edge (PWE3)=E2=80= =9D. I suggest removing (PW), it=E2=80=99s already included into PWE3.
  • I= ntro: s/ a bidirectional circuits/ a bidirectional circuit
  • I= ntro: suggest rephrasing: =E2=80=9CBidirectional LSPs share fate and simpli= fy the routing of a protection path also consisting of bidirectional=C2=A0= =C2=A0 LSPs because working and protection paths have to be disjoint.=E2=80= =9D
  • I= ntro: s/ there are a large number/ there is a large number
  • I= ntro:s/to be carried/are carried
  • I= ntro:s/there are a number/there is a number
  • I= ntro: s/ traffic belongs/traffic belonging
  • I= ntro: (suggestion) s/(PE1-P3-PE2)/ (PE2-P3-PE1) since we are speaking about= directionality it makes more sense to list the nodes of the path in the re= verse direction.
  • I= ntro: s/ The similar problems/A similar problem
  • I= ntro: s/ won't/does not
  • I= ntro: s/ In this document, it introduces/This document introduces=

BR
Daniele

=C2=A0

=C2=A0


_______________________________________________
Pals mailing list
Pals@ietf.org
https://www.ietf.org/mailman/listinfo/pals


--001a113cd1906b691f0531538136-- From nobody Mon Apr 25 12:02:19 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 58FAC12D693; Mon, 25 Apr 2016 12:02:17 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -102.699 X-Spam-Level: X-Spam-Status: No, score=-102.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0YsJjbkJEnsA; Mon, 25 Apr 2016 12:02:03 -0700 (PDT) Received: from mail-oi0-x22e.google.com (mail-oi0-x22e.google.com [IPv6:2607:f8b0:4003:c06::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8E28E12D679; Mon, 25 Apr 2016 12:01:59 -0700 (PDT) Received: by mail-oi0-x22e.google.com with SMTP id r78so186888014oie.0; Mon, 25 Apr 2016 12:01:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=nnGXI76UDtWXMX9QP6pHtLyScutMauY7zUyoc3YbVOc=; b=UMhN/bgEfJIcqcthK66VnaZMqttFbz/V+wC8ogw8JITIY565m/z20sl4YAoObBAnk2 EaxxUt5Lh++YwEHCV2MqdezEeFy/+aZdcTmclw82c/NIvOn01j1ClLLOtvvZNoIpa1iA 3GBcdBI+8TBtzf3HznJqRMEjnzJ8n3RW567LXa/fh438kikmmerL5W/x3HHy9QRgtTqS PsNgfHjrArf40EOaL7ox57YO8j6rLW+qYVB1ExITK1k7HDEvD5Xt/KBkOvfP4wQXBX94 P3qT7NQMGeF5myfYEo4ACIArYvCclLK4aSO5bRXJwcE4l5H5wAWWHmMpy/7ce1GxeSnz 9ySQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=nnGXI76UDtWXMX9QP6pHtLyScutMauY7zUyoc3YbVOc=; b=gZG9AzViBwrltxBRhOuAm6RbgPflFYOE0O6RfyjT4lrrsLPATqcUh/Nq0dMIWTSbJ8 mscYLktEiJKPW7OifPCiP/2QG9y7lA/sbdHxbQTL/ny0hw0BOBzRXI5o/JLE5x/0wQ5b 48pfBWuw12Bshmd/NUTkVECIvgPC/iozHuhzaa36soanY2xQrKKhCeICoHwkeoiQ/gd3 ZZs6ImdS+tbwYMhiEDyOjwAr5wED+AUX1OZCabTZKHB7JFGt3xZK5HWOPIRQluiQWEJq PIR3seTzq79Ur6tcmcQ60YXwapstAAPpqZu6pN4ulsfN1Sp1hCDtIugh+EWl8s0opDBS tqJA== X-Gm-Message-State: AOPr4FWQ1Jb1+F8o2yXqcJqM9mzuRpdI77tjW/qomGc9DicR4NfBjVXLJVYQMopyGYFGYmoZyqK71D/T/w9SxA== MIME-Version: 1.0 X-Received: by 10.202.105.198 with SMTP id e189mr509359oic.195.1461610918346; Mon, 25 Apr 2016 12:01:58 -0700 (PDT) Received: by 10.60.115.168 with HTTP; Mon, 25 Apr 2016 12:01:58 -0700 (PDT) In-Reply-To: References: Date: Mon, 25 Apr 2016 15:01:58 -0400 Message-ID: From: Alia Atlas To: "Acee Lindem (acee)" Content-Type: multipart/alternative; boundary=001a1141b26696bc01053153cfed Archived-At: Cc: "draft-ietf-rtgwg-bgp-routing-large-dc@ietf.org" , Routing WG , Routing Directorate , Routing ADs Subject: Re: [RTG-DIR] Routing Directorate Review for "Use of BGP for routing in large-scale data centers" (adding RTG WG) X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2016 19:02:17 -0000 --001a1141b26696bc01053153cfed Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Acee, Thank you very much for your review. Authors, could you please respond soon? I am hoping to get this out to IETF Last Call by Thursday - and on the telechat for May 19. That depends on timely updates from the authors and shepherd. Thanks, Alia On Mon, Apr 25, 2016 at 1:16 PM, Acee Lindem (acee) wrote: > Hello, > > I have been selected as the Routing Directorate reviewer for this draft. > The Routing Directorate seeks to review all routing or routing-related > drafts as they pass through IETF last call and IESG review, and sometimes > on special request. The purpose of the review is to provide assistance to > the Routing ADs. For more information about the Routing Directorate, > please see =E2=80=8Bhttp://trac.tools.ietf.org/area/rtg/trac/wiki/RtgDir > > Although these comments are primarily for the use of the Routing ADs, it > would be helpful if you could consider them along with any other IETF Las= t > Call comments that you receive, and strive to resolve them through > discussion or by updating the draft. > > Document: draft-ietf-rtgwg-bgp-routing-large-dc-09.txt > Reviewer: Acee Lindem > Review Date: 4/25/16 > IETF LC End Date: Not started > Intended Status: Informational > > Summary: > This document is basically ready for publication, but has some minor > issues and nits that should be resolved prior to publication. > > Comments: > The document starts with the requirements for an MSDC routing and the= n > provides an overview of Clos data topologies and data center network > design. This overview attempts to cover a lot of a material in a very > small amount of text. While not completely successful, the overview > provides a lot of good information and references. The bulk of the > document covers the usage of EBGP as the sole data center routing protoco= l > and other aspects of the routing design including ECMP, summarization > issues, and convergence. These sections provide a very good guide for > using EBGP in a Clos data center and an excellent discussion of the > deployment issues (based on real deployment experience). > > The technical content of the document is excellent. The readability > could be improved by breaking up some of the run-on sentences and with th= e > suggested editorial changes (see Nits below). > > > Major Issues: > > I have no major issues with the document. > > Minor Issues: > > Section 4.2: Can an informative reference be added for Direct Server > Return (DSR)? > Section 5.2.4 and 7.4: Define precisely what is meant by "scale-out" > topology somewhere in the document. > Section 5.2.5: Can you add a backward reference to the discussion of > "lack of peer links inside every peer=E2=80=9D? Also, it would be good to= describe > how this would allow for summarization and under what failure conditions. > Section 7.4: Should you add a reference to > https://www.ietf.org/id/draft-ietf-rtgwg-bgp-pic-00.txt to the penultimat= e > paragraph in this section? > > Nits: > > *************** > *** 143,149 **** > network stability so that a small group of people can effectively > support a significantly sized network. > > ! Experimentation and extensive testing has shown that External BGP > (EBGP) [RFC4271] is well suited as a stand-alone routing protocol fo= r > these type of data center applications. This is in contrast with > more traditional DC designs, which may se simple tree topologies and > --- 143,149 ---- > network stability so that a sall group of people can effectively > support a significantly sized network. > > ! Experimentation and extensive testing have shown that External BGP > (EBGP) [RFC4271] is well suited as a stand-alone routing protocol fo= r > these type of data center applications. This is in contrast with > more traditional DC designs, which may use simple tree topologies an= d > *************** > *** 178,191 **** > 2.1. Bandwidth and Traffic Patterns > > The primary requirement when building an interconnection network for > ! large number of servers is to accommodate application bandwidth and > latency requirements. Until recently it was quite common to see the > majority of traffic entering and leaving the data center, commonly > referred to as "north-south" traffic. Traditional "tree" topologies > were sufficient to accommodate such flows, even with high > oversubscription ratios between the layers of the network. If more > bandwidth was required, it was added by "scaling up" the network > ! elements, e.g. by upgrading the device's linecards or fabrics or > replacing the device with one with higher port density. > > Today many large-scale data centers host applications generating > --- 178,191 ---- > 2.1. Bandwidth and Traffic Patterns > > The primary requirement when building an interconnection network for > ! a large number of servers is to accommodate application bandwidth an= d > latency requirements. Until recently it was quite common to see the > majority of traffic entering and leaving the data center, commonly > referred to as "north-south" traffic. Traditional "tree" topologies > were sufficient to accommodate such flows, even with high > oversubscription ratios between the layers of the network. If more > bandwidth was required, it was added by "scaling up" the network > ! elements, e.g., by upgrading the device's linecards or fabrics or > replacing the device with one with higher port density. > > Today many large-scale data centers host applications generating > *************** > *** 195,201 **** > [HADOOP], massive data replication between clusters needed by certai= n > applications, or virtual machine migrations. Scaling traditional > tree topologies to match these bandwidth demands becomes either too > ! expensive or impossible due to physical limitations, e.g. port > density in a switch. > > 2.2. CAPEX Minimization > --- 195,201 ---- > [HADOOP], massive data replication between clusters needed by certai= n > applications, or virtual machine migrations. Scaling traditional > tree topologies to match these bandwidth demands becomes either too > ! expensive or impossible due to physical limitations, e.g., port > density in a switch. > > 2.2. CAPEX Minimization > *************** > *** 209,215 **** > > o Unifying all network elements, preferably using the same hardware > type or even the same device. This allows for volume pricing on > ! bulk purchases and reduced maintenance and sparing costs. > > o Driving costs down using competitive pressures, by introducing > multiple network equipment vendors. > --- 209,215 ---- > > o Unifying all network elements, preferably using the same hardware > type or even the same device. This allows for volume pricing on > ! bulk purchases and reduced maintenance and inventory costs. > > o Driving costs down using competitive pressures, by introducing > multiple network equipment vendors. > *************** > *** 234,244 **** > minimizes software issue-related failures. > > An important aspect of Operational Expenditure (OPEX) minimization i= s > ! reducing size of failure domains in the network. Ethernet networks > are known to be susceptible to broadcast or unicast traffic storms > that can have a dramatic impact on network performance and > availability. The use of a fully routed design significantly reduce= s > ! the size of the data plane failure domains - i.e. limits them to the > lowest level in the network hierarchy. However, such designs > introduce the problem of distributed control plane failures. This > observation calls for simpler and less control plane protocols to > --- 234,244 ---- > minimizes software issue-related failures. > > An important aspect of Operational Expenditure (OPEX) minimization i= s > ! reducing the size of failure domains in the network. Ethernet > networks > are known to be susceptible to broadcast or unicast traffic storms > that can have a dramatic impact on network performance and > availability. The use of a fully routed design significantly reduce= s > ! the size of the data plane failure domains, i.e., limits them to the > lowest level in the network hierarchy. However, such designs > introduce the problem of distributed control plane failures. This > observation calls for simpler and less control plane protocols to > *************** > *** 253,259 **** > performed by network devices. Traditionally, load balancers are > deployed as dedicated devices in the traffic forwarding path. The > problem arises in scaling load balancers under growing traffic > ! demand. A preferable solution would be able to scale load balancing > layer horizontally, by adding more of the uniform nodes and > distributing incoming traffic across these nodes. In situations lik= e > this, an ideal choice would be to use network infrastructure itself > --- 253,259 ---- > performed by network devices. Traditionally, load balancers are > deployed as dedicated devices in the traffic forwarding path. The > problem arises in scaling load balancers under growing traffic > ! demand. A preferable solution would be able to scale the load > balancing > layer horizontally, by adding more of the uniform nodes and > distributing incoming traffic across these nodes. In situations lik= e > this, an ideal choice would be to use network infrastructure itself > *************** > *** 305,311 **** > 3.1. Traditional DC Topology > > In the networking industry, a common design choice for data centers > ! typically look like a (upside down) tree with redundant uplinks and > three layers of hierarchy namely; core, aggregation/distribution and > access layers (see Figure 1). To accommodate bandwidth demands, eac= h > higher layer, from server towards DC egress or WAN, has higher port > --- 305,311 ---- > 3.1. Traditional DC Topology > > In the networking industry, a common design choice for data centers > ! typically look like an (upside down) tree with redundant uplinks and > three layers of hierarchy namely; core, aggregation/distribution and > access layers (see Figure 1). To accommodate bandwidth demands, eac= h > higher layer, from server towards DC egress or WAN, has higher port > *************** > *** 373,379 **** > topology, sometimes called "fat-tree" (see, for example, [INTERCON] > and [ALFARES2008]). This topology features an odd number of stages > (sometimes known as dimensions) and is commonly made of uniform > ! elements, e.g. network switches with the same port count. Therefore= , > the choice of folded Clos topology satisfies REQ1 and facilitates > REQ2. See Figure 2 below for an example of a folded 3-stage Clos > topology (3 stages counting Tier-2 stage twice, when tracing a packe= t > --- 373,379 ---- > topology, sometimes called "fat-tree" (see, for example, [INTERCON] > and [ALFARES2008]). This topology features an odd number of stages > (sometimes known as dimensions) and is commonly made of uniform > ! elements, e.g., network switches with the same port count. Therefor= e, > the choice of folded Clos topology satisfies REQ1 and facilitates > REQ2. See Figure 2 below for an example of a folded 3-stage Clos > topology (3 stages counting Tier-2 stage twice, when tracing a packe= t > *************** > *** 460,466 **** > 3.2.3. Scaling the Clos topology > > A Clos topology can be scaled either by increasing network element > ! port density or adding more stages, e.g. moving to a 5-stage Clos, a= s > illustrated in Figure 3 below: > > Tier-1 > --- 460,466 ---- > 3.2.3. Scaling the Clos topology > > A Clos topology can be scaled either by increasing network element > ! port density or adding more stages, e.g., moving to a 5-stage Clos, = as > illustrated in Figure 3 below: > > Tier-1 > *************** > *** 523,529 **** > 3.2.4. Managing the Size of Clos Topology Tiers > > If a data center network size is small, it is possible to reduce the > ! number of switches in Tier-1 or Tier-2 of Clos topology by a factor > of two. To understand how this could be done, take Tier-1 as an > example. Every Tier-2 device connects to a single group of Tier-1 > devices. If half of the ports on each of the Tier-1 devices are not > --- 523,529 ---- > 3.2.4. Managing the Size of Clos Topology Tiers > > If a data center network size is small, it is possible to reduce the > ! number of switches in Tier-1 or Tier-2 of a Clos topology by a facto= r > of two. To understand how this could be done, take Tier-1 as an > example. Every Tier-2 device connects to a single group of Tier-1 > devices. If half of the ports on each of the Tier-1 devices are not > *************** > *** 574,580 **** > originally defined in [IEEE8021D-1990] for loop free topology > creation, typically utilizing variants of the traditional DC topolog= y > described in Section 3.1. At the time, many DC switches either did > ! not support Layer 3 routed protocols or supported it with additional > licensing fees, which played a part in the design choice. Although > many enhancements have been made through the introduction of Rapid > Spanning Tree Protocol (RSTP) in the latest revision of > --- 574,580 ---- > originally defined in [IEEE8021D-1990] for loop free topology > creation, typically utilizing variants of the traditional DC topolog= y > described in Section 3.1. At the time, many DC switches either did > ! not support Layer 3 routing protocols or supported them with > additional > licensing fees, which played a part in the design choice. Although > many enhancements have been made through the introduction of Rapid > Spanning Tree Protocol (RSTP) in the latest revision of > *************** > *** 599,605 **** > as the backup for loop prevention. The major downsides of this > approach are the lack of ability to scale linearly past two in most > implementations, lack of standards based implementations, and added > ! failure domain risk of keeping state between the devices. > > It should be noted that building large, horizontally scalable, Layer > 2 only networks without STP is possible recently through the > --- 599,605 ---- > as the backup for loop prevention. The major downsides of this > approach are the lack of ability to scale linearly past two in most > implementations, lack of standards based implementations, and added > ! the failure domain risk of syncing state between the devices. > > It should be noted that building large, horizontally scalable, Layer > 2 only networks without STP is possible recently through the > *************** > *** 621,631 **** > Finally, neither the base TRILL specification nor the M-LAG approach > totally eliminate the problem of the shared broadcast domain, that i= s > so detrimental to the operations of any Layer 2, Ethernet based > ! solutions. Later TRILL extensions have been proposed to solve the > this problem statement primarily based on the approaches outlined in > [RFC7067], but this even further limits the number of available > ! interoperable implementations that can be used to build a fabric, > ! therefore TRILL based designs have issues meeting REQ2, REQ3, and > REQ4. > > 4.2. Hybrid L2/L3 Designs > --- 621,631 ---- > Finally, neither the base TRILL specification nor the M-LAG approach > totally eliminate the problem of the shared broadcast domain, that i= s > so detrimental to the operations of any Layer 2, Ethernet based > ! solution. Later TRILL extensions have been proposed to solve the > this problem statement primarily based on the approaches outlined in > [RFC7067], but this even further limits the number of available > ! interoperable implementations that can be used to build a fabric. > ! Therefore, TRILL based designs have issues meeting REQ2, REQ3, and > REQ4. > > 4.2. Hybrid L2/L3 Designs > *************** > *** 635,641 **** > in either the Tier-1 or Tier-2 parts of the network and dividing the > Layer 2 domain into numerous, smaller domains. This design has > allowed data centers to scale up, but at the cost of complexity in > ! the network managing multiple protocols. For the following reasons, > operators have retained Layer 2 in either the access (Tier-3) or bot= h > access and aggregation (Tier-3 and Tier-2) parts of the network: > > --- 635,641 ---- > in either the Tier-1 or Tier-2 parts of the network and dividing the > Layer 2 domain into numerous, smaller domains. This design has > allowed data centers to scale up, but at the cost of complexity in > ! the managing multiple network protocols. For the following reasons, > operators have retained Layer 2 in either the access (Tier-3) or bot= h > access and aggregation (Tier-3 and Tier-2) parts of the network: > > *************** > *** 644,650 **** > > o Seamless mobility for virtual machines that require the > preservation of IP addresses when a virtual machine moves to > ! different Tier-3 switch. > > o Simplified IP addressing =3D less IP subnets are required for the > data center. > --- 644,650 ---- > > o Seamless mobility for virtual machines that require the > preservation of IP addresses when a virtual machine moves to > ! a different Tier-3 switch. > > o Simplified IP addressing =3D less IP subnets are required for the > data center. > *************** > *** 679,686 **** > adoption in networks where large Layer 2 adjacency and larger size > Layer 3 subnets are not as critical compared to network scalability > and stability. Application providers and network operators continue > ! to also develop new solutions to meet some of the requirements that > ! previously have driven large Layer 2 domains by using various overla= y > or tunneling techniques. > > 5. Routing Protocol Selection and Design > --- 679,686 ---- > adoption in networks where large Layer 2 adjacency and larger size > Layer 3 subnets are not as critical compared to network scalability > and stability. Application providers and network operators continue > ! to develop new solutions to meet some of the requirements that > ! previously had driven large Layer 2 domains using various overlay > or tunneling techniques. > > 5. Routing Protocol Selection and Design > *************** > *** 700,706 **** > design. > > Although EBGP is the protocol used for almost all inter-domain > ! routing on the Internet and has wide support from both vendor and > service provider communities, it is not generally deployed as the > primary routing protocol within the data center for a number of > reasons (some of which are interrelated): > --- 700,706 ---- > design. > > Although EBGP is the protocol used for almost all inter-domain > ! routing in the Internet and has wide support from both vendor and > service provider communities, it is not generally deployed as the > primary routing protocol within the data center for a number of > reasons (some of which are interrelated): > *************** > *** 741,754 **** > state IGPs. Since every BGP router calculates and propagates onl= y > the best-path selected, a network failure is masked as soon as th= e > BGP speaker finds an alternate path, which exists when highly > ! symmetric topologies, such as Clos, are coupled with EBGP only > design. In contrast, the event propagation scope of a link-state > IGP is an entire area, regardless of the failure type. In this > way, BGP better meets REQ3 and REQ4. It is also worth mentioning > that all widely deployed link-state IGPs feature periodic > ! refreshes of routing information, even if this rarely causes > ! impact to modern router control planes, while BGP does not expire > ! routing state. > > o BGP supports third-party (recursively resolved) next-hops. This > allows for manipulating multipath to be non-ECMP based or > --- 741,754 ---- > state IGPs. Since every BGP router calculates and propagates onl= y > the best-path selected, a network failure is masked as soon as th= e > BGP speaker finds an alternate path, which exists when highly > ! symmetric topologies, such as Clos, are coupled with an EBGP only > design. In contrast, the event propagation scope of a link-state > IGP is an entire area, regardless of the failure type. In this > way, BGP better meets REQ3 and REQ4. It is also worth mentioning > that all widely deployed link-state IGPs feature periodic > ! refreshes of routing information while BGP does not expire > ! routing state, although this rarely impacts modern router control > ! planes. > > o BGP supports third-party (recursively resolved) next-hops. This > allows for manipulating multipath to be non-ECMP based or > *************** > *** 765,775 **** > controlled and complex unwanted paths will be ignored. See > Section 5.2 for an example of a working ASN allocation scheme. I= n > a link-state IGP accomplishing the same goal would require multi- > ! (instance/topology/processes) support, typically not available in > all DC devices and quite complex to configure and troubleshoot. > Using a traditional single flooding domain, which most DC designs > utilize, under certain failure conditions may pick up unwanted > ! lengthy paths, e.g. traversing multiple Tier-2 devices. > > o EBGP configuration that is implemented with minimal routing polic= y > is easier to troubleshoot for network reachability issues. In > --- 765,775 ---- > controlled and complex unwanted paths will be ignored. See > Section 5.2 for an example of a working ASN allocation scheme. I= n > a link-state IGP accomplishing the same goal would require multi- > ! (instance/topology/process) support, typically not available in > all DC devices and quite complex to configure and troubleshoot. > Using a traditional single flooding domain, which most DC designs > utilize, under certain failure conditions may pick up unwanted > ! lengthy paths, e.g., traversing multiple Tier-2 devices. > > o EBGP configuration that is implemented with minimal routing polic= y > is easier to troubleshoot for network reachability issues. In > *************** > *** 806,812 **** > loopback sessions are used even in the case of multiple links > between the same pair of nodes. > > ! o Private Use ASNs from the range 64512-65534 are used so as to > avoid ASN conflicts. > > o A single ASN is allocated to all of the Clos topology's Tier-1 > --- 806,812 ---- > loopback sessions are used even in the case of multiple links > between the same pair of nodes. > > ! o Private Use ASNs from the range 64512-65534 are used to > avoid ASN conflicts. > > o A single ASN is allocated to all of the Clos topology's Tier-1 > *************** > *** 815,821 **** > o A unique ASN is allocated to each set of Tier-2 devices in the > same cluster. > > ! o A unique ASN is allocated to every Tier-3 device (e.g. ToR) in > this topology. > > > --- 815,821 ---- > o A unique ASN is allocated to each set of Tier-2 devices in the > same cluster. > > ! o A unique ASN is allocated to every Tier-3 device (e.g., ToR) in > this topology. > > > *************** > *** 903,922 **** > > Another solution to this problem would be using Four-Octet ASNs > ([RFC6793]), where there are additional Private Use ASNs available, > ! see [IANA.AS]. Use of Four-Octet ASNs put additional protocol > ! complexity in the BGP implementation so should be considered against > the complexity of re-use when considering REQ3 and REQ4. Perhaps > more importantly, they are not yet supported by all BGP > implementations, which may limit vendor selection of DC equipment. > ! When supported, ensure that implementations in use are able to remov= e > ! the Private Use ASNs if required for external connectivity > ! (Section 5.2.4). > > 5.2.3. Prefix Advertisement > > A Clos topology features a large number of point-to-point links and > associated prefixes. Advertising all of these routes into BGP may > ! create FIB overload conditions in the network devices. Advertising > these links also puts additional path computation stress on the BGP > control plane for little benefit. There are two possible solutions: > > --- 903,922 ---- > > Another solution to this problem would be using Four-Octet ASNs > ([RFC6793]), where there are additional Private Use ASNs available, > ! see [IANA.AS]. Use of Four-Octet ASNs puts additional protocol > ! complexity in the BGP implementation and should be balanced against > the complexity of re-use when considering REQ3 and REQ4. Perhaps > more importantly, they are not yet supported by all BGP > implementations, which may limit vendor selection of DC equipment. > ! When supported, ensure that deployed implementations are able to > remove > ! the Private Use ASNs when external connectivity to these ASes is > ! required (Section 5.2.4). > > 5.2.3. Prefix Advertisement > > A Clos topology features a large number of point-to-point links and > associated prefixes. Advertising all of these routes into BGP may > ! create FIB overload in the network devices. Advertising > these links also puts additional path computation stress on the BGP > control plane for little benefit. There are two possible solutions: > > *************** > *** 925,951 **** > device, distant networks will automatically be reachable via the > advertising EBGP peer and do not require reachability to these > prefixes. However, this may complicate operations or monitoring: > ! e.g. using the popular "traceroute" tool will display IP addresse= s > that are not reachable. > > o Advertise point-to-point links, but summarize them on every > device. This requires an address allocation scheme such as > allocating a consecutive block of IP addresses per Tier-1 and > Tier-2 device to be used for point-to-point interface addressing > ! to the lower layers (Tier-2 uplinks will be numbered out of Tier-= 1 > ! addressing and so forth). > > Server subnets on Tier-3 devices must be announced into BGP without > using route summarization on Tier-2 and Tier-1 devices. Summarizing > subnets in a Clos topology results in route black-holing under a > ! single link failure (e.g. between Tier-2 and Tier-3 devices) and > hence must be avoided. The use of peer links within the same tier t= o > resolve the black-holing problem by providing "bypass paths" is > undesirable due to O(N^2) complexity of the peering mesh and waste o= f > ports on the devices. An alternative to the full-mesh of peer-links > ! would be using a simpler bypass topology, e.g. a "ring" as described > in [FB4POST], but such a topology adds extra hops and has very > ! limited bisection bandwidth, in addition requiring special tweaks to > > > > --- 925,951 ---- > device, distant networks will automatically be reachable via the > advertising EBGP peer and do not require reachability to these > prefixes. However, this may complicate operations or monitoring: > ! e.g., using the popular "traceroute" tool will display IP address= es > that are not reachable. > > o Advertise point-to-point links, but summarize them on every > device. This requires an address allocation scheme such as > allocating a consecutive block of IP addresses per Tier-1 and > Tier-2 device to be used for point-to-point interface addressing > ! to the lower layers (Tier-2 uplink addresses will be allocated > ! from Tier-1 address blocks and so forth). > > Server subnets on Tier-3 devices must be announced into BGP without > using route summarization on Tier-2 and Tier-1 devices. Summarizing > subnets in a Clos topology results in route black-holing under a > ! single link failure (e.g., between Tier-2 and Tier-3 devices) and > hence must be avoided. The use of peer links within the same tier t= o > resolve the black-holing problem by providing "bypass paths" is > undesirable due to O(N^2) complexity of the peering mesh and waste o= f > ports on the devices. An alternative to the full-mesh of peer-links > ! would be using a simpler bypass topology, e.g., a "ring" as describe= d > in [FB4POST], but such a topology adds extra hops and has very > ! limited bisectional bandwidth. Additionally requiring special tweaks > to > > > > *************** > *** 956,963 **** > > make BGP routing work - such as possibly splitting every device into > an ASN on its own. Later in this document, Section 8.2 introduces a > ! less intrusive method for performing a limited form route > ! summarization in Clos networks and discusses it's associated trade- > offs. > > 5.2.4. External Connectivity > --- 956,963 ---- > > make BGP routing work - such as possibly splitting every device into > an ASN on its own. Later in this document, Section 8.2 introduces a > ! less intrusive method for performing a limited form of route > ! summarization in Clos networks and discusses its associated trade- > offs. > > 5.2.4. External Connectivity > *************** > *** 972,985 **** > document. These devices have to perform a few special functions: > > o Hide network topology information when advertising paths to WAN > ! routers, i.e. remove Private Use ASNs [RFC6996] from the AS_PATH > attribute. This is typically done to avoid ASN number collisions > between different data centers and also to provide a uniform > AS_PATH length to the WAN for purposes of WAN ECMP to Anycast > prefixes originated in the topology. An implementation specific > BGP feature typically called "Remove Private AS" is commonly used > to accomplish this. Depending on implementation, the feature > ! should strip a contiguous sequence of Private Use ASNs found in > AS_PATH attribute prior to advertising the path to a neighbor. > This assumes that all ASNs used for intra data center numbering > are from the Private Use ranges. The process for stripping the > --- 972,985 ---- > document. These devices have to perform a few special functions: > > o Hide network topology information when advertising paths to WAN > ! routers, i.e., remove Private Use ASNs [RFC6996] from the AS_PATH > attribute. This is typically done to avoid ASN number collisions > between different data centers and also to provide a uniform > AS_PATH length to the WAN for purposes of WAN ECMP to Anycast > prefixes originated in the topology. An implementation specific > BGP feature typically called "Remove Private AS" is commonly used > to accomplish this. Depending on implementation, the feature > ! should strip a contiguous sequence of Private Use ASNs found in a= n > AS_PATH attribute prior to advertising the path to a neighbor. > This assumes that all ASNs used for intra data center numbering > are from the Private Use ranges. The process for stripping the > *************** > *** 998,1005 **** > to the WAN Routers upstream, to provide resistance to a single- > link failure causing the black-holing of traffic. To prevent > black-holing in the situation when all of the EBGP sessions to th= e > ! WAN routers fail simultaneously on a given device it is more > ! desirable to take the "relaying" approach rather than introducing > the default route via complicated conditional route origination > schemes provided by some implementations [CONDITIONALROUTE]. > > --- 998,1005 ---- > to the WAN Routers upstream, to provide resistance to a single- > link failure causing the black-holing of traffic. To prevent > black-holing in the situation when all of the EBGP sessions to th= e > ! WAN routers fail simultaneously on a given device, it is more > ! desirable to readvertise the default route rather than originatin= g > the default route via complicated conditional route origination > schemes provided by some implementations [CONDITIONALROUTE]. > > *************** > *** 1017,1023 **** > prefixes originated from within the data center in a fully routed > network design. For example, a network with 2000 Tier-3 devices wil= l > have at least 2000 servers subnets advertised into BGP, along with > ! the infrastructure or other prefixes. However, as discussed before, > the proposed network design does not allow for route summarization > due to the lack of peer links inside every tier. > > --- 1017,1023 ---- > prefixes originated from within the data center in a fully routed > network design. For example, a network with 2000 Tier-3 devices wil= l > have at least 2000 servers subnets advertised into BGP, along with > ! the infrastructure and link prefixes. However, as discussed before, > the proposed network design does not allow for route summarization > due to the lack of peer links inside every tier. > > *************** > *** 1028,1037 **** > o Interconnect the Border Routers using a full-mesh of physical > links or using any other "peer-mesh" topology, such as ring or > hub-and-spoke. Configure BGP accordingly on all Border Leafs to > ! exchange network reachability information - e.g. by adding a mesh > of IBGP sessions. The interconnecting peer links need to be > appropriately sized for traffic that will be present in the case > ! of a device or link failure underneath the Border Routers. > > o Tier-1 devices may have additional physical links provisioned > toward the Border Routers (which are Tier-2 devices from the > --- 1028,1037 ---- > o Interconnect the Border Routers using a full-mesh of physical > links or using any other "peer-mesh" topology, such as ring or > hub-and-spoke. Configure BGP accordingly on all Border Leafs to > ! exchange network reachability information, e.g., by adding a mesh > of IBGP sessions. The interconnecting peer links need to be > appropriately sized for traffic that will be present in the case > ! of a device or link failure in the mesh connecting the Border > Routers. > > o Tier-1 devices may have additional physical links provisioned > toward the Border Routers (which are Tier-2 devices from the > *************** > *** 1043,1049 **** > device compared with the other devices in the Clos. This also > reduces the number of ports available to "regular" Tier-2 switche= s > and hence the number of clusters that could be interconnected via > ! Tier-1 layer. > > If any of the above options are implemented, it is possible to > perform route summarization at the Border Routers toward the WAN > --- 1043,1049 ---- > device compared with the other devices in the Clos. This also > reduces the number of ports available to "regular" Tier-2 switche= s > and hence the number of clusters that could be interconnected via > ! the Tier-1 layer. > > If any of the above options are implemented, it is possible to > perform route summarization at the Border Routers toward the WAN > *************** > *** 1071,1079 **** > ECMP is the fundamental load sharing mechanism used by a Clos > topology. Effectively, every lower-tier device will use all of its > directly attached upper-tier devices to load share traffic destined > ! to the same IP prefix. Number of ECMP paths between any two Tier-3 > devices in Clos topology equals to the number of the devices in the > ! middle stage (Tier-1). For example, Figure 5 illustrates the > topology where Tier-3 device A has four paths to reach servers X and > Y, via Tier-2 devices B and C and then Tier-1 devices 1, 2, 3, and 4 > respectively. > --- 1071,1079 ---- > ECMP is the fundamental load sharing mechanism used by a Clos > topology. Effectively, every lower-tier device will use all of its > directly attached upper-tier devices to load share traffic destined > ! to the same IP prefix. The number of ECMP paths between any two > Tier-3 > devices in Clos topology equals to the number of the devices in the > ! middle stage (Tier-1). For example, Figure 5 illustrates a > topology where Tier-3 device A has four paths to reach servers X and > Y, via Tier-2 devices B and C and then Tier-1 devices 1, 2, 3, and 4 > respectively. > *************** > *** 1105,1116 **** > > The ECMP requirement implies that the BGP implementation must suppor= t > multipath fan-out for up to the maximum number of devices directly > ! attached at any point in the topology in upstream or downstream > direction. Normally, this number does not exceed half of the ports > found on a device in the topology. For example, an ECMP fan-out of > 32 would be required when building a Clos network using 64-port > devices. The Border Routers may need to have wider fan-out to be > ! able to connect to multitude of Tier-1 devices if route summarizatio= n > at Border Router level is implemented as described in Section 5.2.5. > If a device's hardware does not support wider ECMP, logical link- > grouping (link-aggregation at layer 2) could be used to provide > --- 1105,1116 ---- > > The ECMP requirement implies that the BGP implementation must suppor= t > multipath fan-out for up to the maximum number of devices directly > ! attached at any point in the topology in the upstream or downstream > direction. Normally, this number does not exceed half of the ports > found on a device in the topology. For example, an ECMP fan-out of > 32 would be required when building a Clos network using 64-port > devices. The Border Routers may need to have wider fan-out to be > ! able to connect to a multitude of Tier-1 devices if route > summarization > at Border Router level is implemented as described in Section 5.2.5. > If a device's hardware does not support wider ECMP, logical link- > grouping (link-aggregation at layer 2) could be used to provide > *************** > *** 1122,1131 **** > Internet-Draft draft-ietf-rtgwg-bgp-routing-large-dc March 201= 6 > > > ! "hierarchical" ECMP (Layer 3 ECMP followed by Layer 2 ECMP) to > compensate for fan-out limitations. Such approach, however, > increases the risk of flow polarization, as less entropy will be > ! available to the second stage of ECMP. > > Most BGP implementations declare paths to be equal from an ECMP > perspective if they match up to and including step (e) in > --- 1122,1131 ---- > Internet-Draft draft-ietf-rtgwg-bgp-routing-large-dc March 201= 6 > > > ! "hierarchical" ECMP (Layer 3 ECMP coupled with Layer 2 ECMP) to > compensate for fan-out limitations. Such approach, however, > increases the risk of flow polarization, as less entropy will be > ! available at the second stage of ECMP. > > Most BGP implementations declare paths to be equal from an ECMP > perspective if they match up to and including step (e) in > *************** > *** 1148,1154 **** > perspective of other devices, such a prefix would have BGP paths wit= h > different AS_PATH attribute values, while having the same AS_PATH > attribute lengths. Therefore, BGP implementations must support load > ! sharing over above-mentioned paths. This feature is sometimes known > as "multipath relax" or "multipath multiple-as" and effectively > allows for ECMP to be done across different neighboring ASNs if all > other attributes are equal as already described in the previous > --- 1148,1154 ---- > perspective of other devices, such a prefix would have BGP paths wit= h > different AS_PATH attribute values, while having the same AS_PATH > attribute lengths. Therefore, BGP implementations must support load > ! sharing over the above-mentioned paths. This feature is sometimes > known > as "multipath relax" or "multipath multiple-as" and effectively > allows for ECMP to be done across different neighboring ASNs if all > other attributes are equal as already described in the previous > *************** > *** 1182,1199 **** > > It is often desirable to have the hashing function used for ECMP to > be consistent (see [CONS-HASH]), to minimize the impact on flow to > ! next-hop affinity changes when a next-hop is added or removed to ECM= P > group. This could be used if the network device is used as a load > balancer, mapping flows toward multiple destinations - in this case, > ! losing or adding a destination will not have detrimental effect of > currently established flows. One particular recommendation on > implementing consistent hashing is provided in [RFC2992], though > other implementations are possible. This functionality could be > naturally combined with weighted ECMP, with the impact of the next- > hop changes being proportional to the weight of the given next-hop. > The downside of consistent hashing is increased load on hardware > ! resource utilization, as typically more space is required to > ! implement a consistent-hashing region. > > 7. Routing Convergence Properties > > --- 1182,1199 ---- > > It is often desirable to have the hashing function used for ECMP to > be consistent (see [CONS-HASH]), to minimize the impact on flow to > ! next-hop affinity changes when a next-hop is added or removed to an > ECMP > group. This could be used if the network device is used as a load > balancer, mapping flows toward multiple destinations - in this case, > ! losing or adding a destination will not have a detrimental effect on > currently established flows. One particular recommendation on > implementing consistent hashing is provided in [RFC2992], though > other implementations are possible. This functionality could be > naturally combined with weighted ECMP, with the impact of the next- > hop changes being proportional to the weight of the given next-hop. > The downside of consistent hashing is increased load on hardware > ! resource utilization, as typically more resources (e.g., TCAM space) > ! are required to implement a consistent-hashing function. > > 7. Routing Convergence Properties > > *************** > *** 1209,1224 **** > driven mechanism to obtain updates on IGP state changes. The > proposed routing design does not use an IGP, so the remaining > mechanisms that could be used for fault detection are BGP keep-alive > ! process (or any other type of keep-alive mechanism) and link-failure > triggers. > > Relying solely on BGP keep-alive packets may result in high > ! convergence delays, in the order of multiple seconds (on many BGP > implementations the minimum configurable BGP hold timer value is > three seconds). However, many BGP implementations can shut down > local EBGP peering sessions in response to the "link down" event for > the outgoing interface used for BGP peering. This feature is > ! sometimes called as "fast fallover". Since links in modern data > centers are predominantly point-to-point fiber connections, a > physical interface failure is often detected in milliseconds and > subsequently triggers a BGP re-convergence. > --- 1209,1224 ---- > driven mechanism to obtain updates on IGP state changes. The > proposed routing design does not use an IGP, so the remaining > mechanisms that could be used for fault detection are BGP keep-alive > ! time-out (or any other type of keep-alive mechanism) and link-failur= e > triggers. > > Relying solely on BGP keep-alive packets may result in high > ! convergence delays, on the order of multiple seconds (on many BGP > implementations the minimum configurable BGP hold timer value is > three seconds). However, many BGP implementations can shut down > local EBGP peering sessions in response to the "link down" event for > the outgoing interface used for BGP peering. This feature is > ! sometimes called "fast fallover". Since links in modern data > centers are predominantly point-to-point fiber connections, a > physical interface failure is often detected in milliseconds and > subsequently triggers a BGP re-convergence. > *************** > *** 1236,1242 **** > > Alternatively, some platforms may support Bidirectional Forwarding > Detection (BFD) [RFC5880] to allow for sub-second failure detection > ! and fault signaling to the BGP process. However, use of either of > these presents additional requirements to vendor software and > possibly hardware, and may contradict REQ1. Until recently with > [RFC7130], BFD also did not allow detection of a single member link > --- 1236,1242 ---- > > Alternatively, some platforms may support Bidirectional Forwarding > Detection (BFD) [RFC5880] to allow for sub-second failure detection > ! and fault signaling to the BGP process. However, the use of either = of > these presents additional requirements to vendor software and > possibly hardware, and may contradict REQ1. Until recently with > [RFC7130], BFD also did not allow detection of a single member link > *************** > *** 1245,1251 **** > > 7.2. Event Propagation Timing > > ! In the proposed design the impact of BGP Minimum Route Advertisement > Interval (MRAI) timer (See section 9.2.1.1 of [RFC4271]) should be > considered. Per the standard it is required for BGP implementations > to space out consecutive BGP UPDATE messages by at least MRAI > --- 1245,1251 ---- > > 7.2. Event Propagation Timing > > ! In the proposed design the impact of the BGP Minimum Route > Advertisement > Interval (MRAI) timer (See section 9.2.1.1 of [RFC4271]) should be > considered. Per the standard it is required for BGP implementations > to space out consecutive BGP UPDATE messages by at least MRAI > *************** > *** 1258,1270 **** > In a Clos topology each EBGP speaker typically has either one path > (Tier-2 devices don't accept paths from other Tier-2 in the same > cluster due to same ASN) or N paths for the same prefix, where N is = a > ! significantly large number, e.g. N=3D32 (the ECMP fan-out to the ne= xt > Tier). Therefore, if a link fails to another device from which a > ! path is received there is either no backup path at all (e.g. from > perspective of a Tier-2 switch losing link to a Tier-3 device), or > ! the backup is readily available in BGP Loc-RIB (e.g. from perspectiv= e > of a Tier-2 device losing link to a Tier-1 switch). In the former > ! case, the BGP withdrawal announcement will propagate un-delayed and > trigger re-convergence on affected devices. In the latter case, the > best-path will be re-evaluated and the local ECMP group correspondin= g > to the new next-hop set changed. If the BGP path was the best-path > --- 1258,1270 ---- > In a Clos topology each EBGP speaker typically has either one path > (Tier-2 devices don't accept paths from other Tier-2 in the same > cluster due to same ASN) or N paths for the same prefix, where N is = a > ! significantly large number, e.g., N=3D32 (the ECMP fan-out to the n= ext > Tier). Therefore, if a link fails to another device from which a > ! path is received there is either no backup path at all (e.g., from t= he > perspective of a Tier-2 switch losing link to a Tier-3 device), or > ! the backup is readily available in BGP Loc-RIB (e.g., from perspecti= ve > of a Tier-2 device losing link to a Tier-1 switch). In the former > ! case, the BGP withdrawal announcement will propagate without delay a= nd > trigger re-convergence on affected devices. In the latter case, the > best-path will be re-evaluated and the local ECMP group correspondin= g > to the new next-hop set changed. If the BGP path was the best-path > *************** > *** 1279,1285 **** > situation when a link between Tier-3 and Tier-2 device fails, the > Tier-2 device will send BGP UPDATE messages to all upstream Tier-1 > devices, withdrawing the affected prefixes. The Tier-1 devices, in > ! turn, will relay those messages to all downstream Tier-2 devices > (except for the originator). Tier-2 devices other than the one > originating the UPDATE should then wait for ALL upstream Tier-1 > > --- 1279,1285 ---- > situation when a link between Tier-3 and Tier-2 device fails, the > Tier-2 device will send BGP UPDATE messages to all upstream Tier-1 > devices, withdrawing the affected prefixes. The Tier-1 devices, in > ! turn, will relay these messages to all downstream Tier-2 devices > (except for the originator). Tier-2 devices other than the one > originating the UPDATE should then wait for ALL upstream Tier-1 > > *************** > *** 1307,1313 **** > features that vendors include to reduce the control plane impact of > rapidly flapping prefixes. However, due to issues described with > false positives in these implementations especially under such > ! "dispersion" events, it is not recommended to turn this feature on i= n > this design. More background and issues with "route flap dampening" > and possible implementation changes that could affect this are well > described in [RFC7196]. > --- 1307,1313 ---- > features that vendors include to reduce the control plane impact of > rapidly flapping prefixes. However, due to issues described with > false positives in these implementations especially under such > ! "dispersion" events, it is not recommended to enable this feature in > this design. More background and issues with "route flap dampening" > and possible implementation changes that could affect this are well > described in [RFC7196]. > *************** > *** 1316,1324 **** > > A network is declared to converge in response to a failure once all > devices within the failure impact scope are notified of the event an= d > ! have re-calculated their RIB's and consequently updated their FIB's. > Larger failure impact scope typically means slower convergence since > ! more devices have to be notified, and additionally results in a less > stable network. In this section we describe BGP's advantages over > link-state routing protocols in reducing failure impact scope for a > Clos topology. > --- 1316,1324 ---- > > A network is declared to converge in response to a failure once all > devices within the failure impact scope are notified of the event an= d > ! have re-calculated their RIBs and consequently updated their FIBs. > Larger failure impact scope typically means slower convergence since > ! more devices have to be notified, and results in a less > stable network. In this section we describe BGP's advantages over > link-state routing protocols in reducing failure impact scope for a > Clos topology. > *************** > *** 1327,1335 **** > the best path from the point of view of the local router is sent to > neighbors. As such, some failures are masked if the local node can > immediately find a backup path and does not have to send any updates > ! further. Notice that in the worst case ALL devices in a data center > topology have to either withdraw a prefix completely or update the > ! ECMP groups in the FIB. However, many failures will not result in > such a wide impact. There are two main failure types where impact > scope is reduced: > > --- 1327,1335 ---- > the best path from the point of view of the local router is sent to > neighbors. As such, some failures are masked if the local node can > immediately find a backup path and does not have to send any updates > ! further. Notice that in the worst case, all devices in a data cente= r > topology have to either withdraw a prefix completely or update the > ! ECMP groups in their FIBs. However, many failures will not result i= n > such a wide impact. There are two main failure types where impact > scope is reduced: > > *************** > *** 1357,1367 **** > > o Failure of a Tier-1 device: In this case, all Tier-2 devices > directly attached to the failed node will have to update their > ! ECMP groups for all IP prefixes from non-local cluster. The > Tier-3 devices are once again not involved in the re-convergence > process, but may receive "implicit withdraws" as described above. > > ! Even though in case of such failures multiple IP prefixes will have > to be reprogrammed in the FIB, it is worth noting that ALL of these > prefixes share a single ECMP group on Tier-2 device. Therefore, in > the case of implementations with a hierarchical FIB, only a single > --- 1357,1367 ---- > > o Failure of a Tier-1 device: In this case, all Tier-2 devices > directly attached to the failed node will have to update their > ! ECMP groups for all IP prefixes from a non-local cluster. The > Tier-3 devices are once again not involved in the re-convergence > process, but may receive "implicit withdraws" as described above. > > ! Even in the case of such failures, multiple IP prefixes will have > to be reprogrammed in the FIB, it is worth noting that ALL of these > prefixes share a single ECMP group on Tier-2 device. Therefore, in > the case of implementations with a hierarchical FIB, only a single > *************** > *** 1375,1381 **** > possible with the proposed design, since using this technique may > create routing black-holes as mentioned previously. Therefore, the > worst control plane failure impact scope is the network as a whole, > ! for instance in a case of a link failure between Tier-2 and Tier-3 > devices. The amount of impacted prefixes in this case would be much > less than in the case of a failure in the upper layers of a Clos > network topology. The property of having such large failure scope i= s > --- 1375,1381 ---- > possible with the proposed design, since using this technique may > create routing black-holes as mentioned previously. Therefore, the > worst control plane failure impact scope is the network as a whole, > ! for instance in thecase of a link failure between Tier-2 and Tier-3 > devices. The amount of impacted prefixes in this case would be much > less than in the case of a failure in the upper layers of a Clos > network topology. The property of having such large failure scope i= s > *************** > *** 1384,1397 **** > > 7.5. Routing Micro-Loops > > ! When a downstream device, e.g. Tier-2 device, loses all paths for a > prefix, it normally has the default route pointing toward the > upstream device, in this case the Tier-1 device. As a result, it is > ! possible to get in the situation when Tier-2 switch loses a prefix, > ! but Tier-1 switch still has the path pointing to the Tier-2 device, > ! which results in transient micro-loop, since Tier-1 switch will keep > passing packets to the affected prefix back to Tier-2 device, and > ! Tier-2 will bounce it back again using the default route. This > micro-loop will last for the duration of time it takes the upstream > device to fully update its forwarding tables. > > --- 1384,1397 ---- > > 7.5. Routing Micro-Loops > > ! When a downstream device, e.g., Tier-2 device, loses all paths for = a > prefix, it normally has the default route pointing toward the > upstream device, in this case the Tier-1 device. As a result, it is > ! possible to get in the situation where a Tier-2 switch loses a prefi= x, > ! but a Tier-1 switch still has the path pointing to the Tier-2 device= , > ! which results in transient micro-loop, since the Tier-1 switch will > keep > passing packets to the affected prefix back to Tier-2 device, and > ! the Tier-2 will bounce it back again using the default route. This > micro-loop will last for the duration of time it takes the upstream > device to fully update its forwarding tables. > > *************** > *** 1402,1408 **** > Internet-Draft draft-ietf-rtgwg-bgp-routing-large-dc March 201= 6 > > > ! To minimize impact of the micro-loops, Tier-2 and Tier-1 switches ca= n > be configured with static "discard" or "null" routes that will be > more specific than the default route for prefixes missing during > network convergence. For Tier-2 switches, the discard route should > --- 1402,1408 ---- > Internet-Draft draft-ietf-rtgwg-bgp-routing-large-dc March 201= 6 > > > ! To minimize the impact of such micro-loops, Tier-2 and Tier-1 > switches can > be configured with static "discard" or "null" routes that will be > more specific than the default route for prefixes missing during > network convergence. For Tier-2 switches, the discard route should > *************** > *** 1417,1423 **** > > 8.1. Third-party Route Injection > > ! BGP allows for a "third-party", i.e. directly attached, BGP speaker > to inject routes anywhere in the network topology, meeting REQ5. > This can be achieved by peering via a multihop BGP session with some > or even all devices in the topology. Furthermore, BGP diverse path > --- 1417,1423 ---- > > 8.1. Third-party Route Injection > > ! BGP allows for a "third-party", i.e., directly attached, BGP speaker > to inject routes anywhere in the network topology, meeting REQ5. > This can be achieved by peering via a multihop BGP session with some > or even all devices in the topology. Furthermore, BGP diverse path > *************** > *** 1427,1433 **** > implementation. Unfortunately, in many implementations ADD-PATH has > been found to only support IBGP properly due to the use cases it was > originally optimized for, which limits the "third-party" peering to > ! IBGP only, if the feature is used. > > To implement route injection in the proposed design, a third-party > BGP speaker may peer with Tier-3 and Tier-1 switches, injecting the > --- 1427,1433 ---- > implementation. Unfortunately, in many implementations ADD-PATH has > been found to only support IBGP properly due to the use cases it was > originally optimized for, which limits the "third-party" peering to > ! IBGP only. > > To implement route injection in the proposed design, a third-party > BGP speaker may peer with Tier-3 and Tier-1 switches, injecting the > *************** > *** 1442,1453 **** > As mentioned previously, route summarization is not possible within > the proposed Clos topology since it makes the network susceptible to > route black-holing under single link failures. The main problem is > ! the limited number of redundant paths between network elements, e.g. > there is only a single path between any pair of Tier-1 and Tier-3 > devices. However, some operators may find route aggregation > desirable to improve control plane stability. > > ! If planning on using any technique to summarize within the topology > modeling of the routing behavior and potential for black-holing > should be done not only for single or multiple link failures, but > > --- 1442,1453 ---- > As mentioned previously, route summarization is not possible within > the proposed Clos topology since it makes the network susceptible to > route black-holing under single link failures. The main problem is > ! the limited number of redundant paths between network elements, e.g.= , > there is only a single path between any pair of Tier-1 and Tier-3 > devices. However, some operators may find route aggregation > desirable to improve control plane stability. > > ! If any technique to summarize within the topology is planned, > modeling of the routing behavior and potential for black-holing > should be done not only for single or multiple link failures, but > > *************** > *** 1458,1468 **** > Internet-Draft draft-ietf-rtgwg-bgp-routing-large-dc March 201= 6 > > > ! also fiber pathway failures or optical domain failures if the > topology extends beyond a physical location. Simple modeling can be > done by checking the reachability on devices doing summarization > under the condition of a link or pathway failure between a set of > ! devices in every tier as well as to the WAN routers if external > connectivity is present. > > Route summarization would be possible with a small modification to > --- 1458,1468 ---- > Internet-Draft draft-ietf-rtgwg-bgp-routing-large-dc March 201= 6 > > > ! also fiber pathway failures or optical domain failures when the > topology extends beyond a physical location. Simple modeling can be > done by checking the reachability on devices doing summarization > under the condition of a link or pathway failure between a set of > ! devices in every tier as well as to the WAN routers when external > connectivity is present. > > Route summarization would be possible with a small modification to > *************** > *** 1519,1544 **** > cluster from Tier-2 devices since each of them has only a single pat= h > down to this prefix. It would require dual-homed servers to > accomplish that. Also note that this design is only resilient to > ! single link failure. It is possible for a double link failure to > isolate a Tier-2 device from all paths toward a specific Tier-3 > device, thus causing a routing black-hole. > > ! A result of the proposed topology modification would be reduction of > Tier-1 devices port capacity. This limits the maximum number of > attached Tier-2 devices and therefore will limit the maximum DC > network size. A larger network would require different Tier-1 > devices that have higher port density to implement this change. > > Another problem is traffic re-balancing under link failures. Since > ! three are two paths from Tier-1 to Tier-3, a failure of the link > between Tier-1 and Tier-2 switch would result in all traffic that wa= s > taking the failed link to switch to the remaining path. This will > ! result in doubling of link utilization on the remaining link. > > 8.2.2. Simple Virtual Aggregation > > A completely different approach to route summarization is possible, > ! provided that the main goal is to reduce the FIB pressure, while > allowing the control plane to disseminate full routing information. > Firstly, it could be easily noted that in many cases multiple > prefixes, some of which are less specific, share the same set of the > --- 1519,1544 ---- > cluster from Tier-2 devices since each of them has only a single pat= h > down to this prefix. It would require dual-homed servers to > accomplish that. Also note that this design is only resilient to > ! single link failures. It is possible for a double link failure to > isolate a Tier-2 device from all paths toward a specific Tier-3 > device, thus causing a routing black-hole. > > ! A result of the proposed topology modification would be a reduction = of > Tier-1 devices port capacity. This limits the maximum number of > attached Tier-2 devices and therefore will limit the maximum DC > network size. A larger network would require different Tier-1 > devices that have higher port density to implement this change. > > Another problem is traffic re-balancing under link failures. Since > ! there are two paths from Tier-1 to Tier-3, a failure of the link > between Tier-1 and Tier-2 switch would result in all traffic that wa= s > taking the failed link to switch to the remaining path. This will > ! result in doubling the link utilization of the remaining link. > > 8.2.2. Simple Virtual Aggregation > > A completely different approach to route summarization is possible, > ! provided that the main goal is to reduce the FIB size, while > allowing the control plane to disseminate full routing information. > Firstly, it could be easily noted that in many cases multiple > prefixes, some of which are less specific, share the same set of the > *************** > *** 1550,1563 **** > [RFC6769] and only install the least specific route in the FIB, > ignoring more specific routes if they share the same next-hop set. > For example, under normal network conditions, only the default route > ! need to be programmed into FIB. > > Furthermore, if the Tier-2 devices are configured with summary > ! prefixes covering all of their attached Tier-3 device's prefixes the > same logic could be applied in Tier-1 devices as well, and, by > induction to Tier-2/Tier-3 switches in different clusters. These > summary routes should still allow for more specific prefixes to leak > ! to Tier-1 devices, to enable for detection of mismatches in the next= - > hop sets if a particular link fails, changing the next-hop set for a > specific prefix. > > --- 1550,1563 ---- > [RFC6769] and only install the least specific route in the FIB, > ignoring more specific routes if they share the same next-hop set. > For example, under normal network conditions, only the default route > ! needs to be programmed into FIB. > > Furthermore, if the Tier-2 devices are configured with summary > ! prefixes covering all of their attached Tier-3 device's prefixes, th= e > same logic could be applied in Tier-1 devices as well, and, by > induction to Tier-2/Tier-3 switches in different clusters. These > summary routes should still allow for more specific prefixes to leak > ! to Tier-1 devices, to enable detection of mismatches in the next- > hop sets if a particular link fails, changing the next-hop set for a > specific prefix. > > *************** > *** 1571,1584 **** > > > Re-stating once again, this technique does not reduce the amount of > ! control plane state (i.e. BGP UPDATEs/BGP LocRIB sizing), but only > ! allows for more efficient FIB utilization, by spotting more specific > ! prefixes that share their next-hops with less specifics. > > 8.3. ICMP Unreachable Message Masquerading > > This section discusses some operational aspects of not advertising > ! point-to-point link subnets into BGP, as previously outlined as an > option in Section 5.2.3. The operational impact of this decision > could be seen when using the well-known "traceroute" tool. > Specifically, IP addresses displayed by the tool will be the link's > --- 1571,1585 ---- > > > Re-stating once again, this technique does not reduce the amount of > ! control plane state (i.e., BGP UPDATEs/BGP Loc-RIB size), but only > ! allows for more efficient FIB utilization, by detecting more specifi= c > ! prefixes that share their next-hop set with a subsuming less specifi= c > ! prefix. > > 8.3. ICMP Unreachable Message Masquerading > > This section discusses some operational aspects of not advertising > ! point-to-point link subnets into BGP, as previously identified as an > option in Section 5.2.3. The operational impact of this decision > could be seen when using the well-known "traceroute" tool. > Specifically, IP addresses displayed by the tool will be the link's > *************** > *** 1587,1605 **** > complicated. > > One way to overcome this limitation is by using the DNS subsystem to > ! create the "reverse" entries for the IP addresses of the same device > ! pointing to the same name. The connectivity then can be made by > ! resolving this name to the "primary" IP address of the devices, e.g. > its Loopback interface, which is always advertised into BGP. > However, this creates a dependency on the DNS subsystem, which may b= e > unavailable during an outage. > > Another option is to make the network device perform IP address > masquerading, that is rewriting the source IP addresses of the > ! appropriate ICMP messages sent off of the device with the "primary" > IP address of the device. Specifically, the ICMP Destination > Unreachable Message (type 3) codes 3 (port unreachable) and ICMP Tim= e > ! Exceeded (type 11) code 0, which are involved in proper working of > the "traceroute" tool. With this modification, the "traceroute" > probes sent to the devices will always be sent back with the > "primary" IP address as the source, allowing the operator to discove= r > --- 1588,1606 ---- > complicated. > > One way to overcome this limitation is by using the DNS subsystem to > ! create the "reverse" entries for these point-to-point IP addresses > pointing > ! to a the same name as the loopback address. The connectivity then > can be made by > ! resolving this name to the "primary" IP address of the devices, e.g.= , > its Loopback interface, which is always advertised into BGP. > However, this creates a dependency on the DNS subsystem, which may b= e > unavailable during an outage. > > Another option is to make the network device perform IP address > masquerading, that is rewriting the source IP addresses of the > ! appropriate ICMP messages sent by the device with the "primary" > IP address of the device. Specifically, the ICMP Destination > Unreachable Message (type 3) codes 3 (port unreachable) and ICMP Tim= e > ! Exceeded (type 11) code 0, which are required for correct operation = of > the "traceroute" tool. With this modification, the "traceroute" > probes sent to the devices will always be sent back with the > "primary" IP address as the source, allowing the operator to discove= r > > Thanks, > Acee > > _______________________________________________ > rtgwg mailing list > rtgwg@ietf.org > https://www.ietf.org/mailman/listinfo/rtgwg > --001a1141b26696bc01053153cfed Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Acee,

Thank you very much for your r= eview.

Authors, could you please respond soon?=C2= =A0 I am hoping to get this out to IETF Last Call
by Thursday - a= nd on the telechat for May 19. =C2=A0 =C2=A0That depends on timely updates = from
the authors and shepherd.

Thanks,
Alia
=C2=A0


On Mon, Apr 25, 2016 at 1:16 PM, Ac= ee Lindem (acee) <acee@cisco.com> wrote:
Hello,

I have been selected as the Routing Directorate reviewer for this draft. The Routing Directorate seeks to review all routing or routing-related
drafts as they pass through IETF last call and IESG review, and sometimes on special request. The purpose of the review is to provide assistance to the Routing ADs. For more information about the Routing Directorate,
please see =E2=80=8Bhttp://trac.tools.ietf.org/a= rea/rtg/trac/wiki/RtgDir

Although these comments are primarily for the use of the Routing ADs, it would be helpful if you could consider them along with any other IETF Last<= br> Call comments that you receive, and strive to resolve them through
discussion or by updating the draft.

Document: draft-ietf-rtgwg-bgp-routing-large-dc-09.txt
Reviewer: Acee Lindem
Review Date: 4/25/16
IETF LC End Date: Not started
Intended Status: Informational

Summary:
=C2=A0 =C2=A0 This document is basically ready for publication, but has som= e minor
issues and nits that should be resolved prior to publication.

Comments:
=C2=A0 =C2=A0 The document starts with the requirements for an MSDC routing= and then
provides an overview of Clos data topologies and data center network
design. This overview attempts to cover a lot of a material in a very
small amount of text. While not completely successful, the overview
provides a lot of good information and references. The bulk of the
document covers the usage of EBGP as the sole data center routing protocol<= br> and other aspects of the routing design including ECMP, summarization
issues, and convergence. These sections provide a very good guide for
using EBGP in a Clos data center and an excellent discussion of the
deployment issues (based on real deployment experience).

=C2=A0 =C2=A0 The technical content of the document is excellent. The reada= bility
could be improved by breaking up some of the run-on sentences and with the<= br> suggested editorial changes (see Nits below).


Major Issues:

=C2=A0 =C2=A0 I have no major issues with the document.

Minor Issues:

=C2=A0 =C2=A0 Section 4.2: Can an informative reference be added for Direct= Server
Return (DSR)?
=C2=A0 =C2=A0 Section 5.2.4 and 7.4: Define precisely what is meant by &quo= t;scale-out"
topology somewhere in the document.
=C2=A0 =C2=A0 Section 5.2.5: Can you add a backward reference to the discus= sion of
"lack of peer links inside every peer=E2=80=9D? Also, it would be good= to describe
how this would allow for summarization and under what failure conditions. =C2=A0 =C2=A0 Section 7.4: Should you add a reference to
https://www.ietf.org/id/draft-ietf-rtgwg-bgp-= pic-00.txt to the penultimate
paragraph in this section?

Nits:

***************
*** 143,149 ****
=C2=A0 =C2=A0 =C2=A0network stability so that a small group of people can e= ffectively
=C2=A0 =C2=A0 =C2=A0support a significantly sized network.

!=C2=A0 =C2=A0 Experimentation and extensive testing has shown that Externa= l BGP
=C2=A0 =C2=A0 =C2=A0(EBGP) [RFC4271] is well suited as a stand-alone routin= g protocol for
=C2=A0 =C2=A0 =C2=A0these type of data center applications.=C2=A0 This is i= n contrast with
=C2=A0 =C2=A0 =C2=A0more traditional DC designs, which may se simple tree t= opologies and
--- 143,149 ----
=C2=A0 =C2=A0 =C2=A0network stability so that a sall group of people can ef= fectively
=C2=A0 =C2=A0 =C2=A0support a significantly sized network.

!=C2=A0 =C2=A0 Experimentation and extensive testing have shown that Extern= al BGP
=C2=A0 =C2=A0 =C2=A0(EBGP) [RFC4271] is well suited as a stand-alone routin= g protocol for
=C2=A0 =C2=A0 =C2=A0these type of data center applications.=C2=A0 This is i= n contrast with
=C2=A0 =C2=A0 =C2=A0more traditional DC designs, which may use simple tree = topologies and
***************
*** 178,191 ****
=C2=A0 2.1.=C2=A0 Bandwidth and Traffic Patterns

=C2=A0 =C2=A0 =C2=A0The primary requirement when building an interconnectio= n network for
!=C2=A0 =C2=A0 large number of servers is to accommodate application bandwi= dth and
=C2=A0 =C2=A0 =C2=A0latency requirements.=C2=A0 Until recently it was quite= common to see the
=C2=A0 =C2=A0 =C2=A0majority of traffic entering and leaving the data cente= r, commonly
=C2=A0 =C2=A0 =C2=A0referred to as "north-south" traffic.=C2=A0 T= raditional "tree" topologies
=C2=A0 =C2=A0 =C2=A0were sufficient to accommodate such flows, even with hi= gh
=C2=A0 =C2=A0 =C2=A0oversubscription ratios between the layers of the netwo= rk.=C2=A0 If more
=C2=A0 =C2=A0 =C2=A0bandwidth was required, it was added by "scaling u= p" the network
!=C2=A0 =C2=A0 elements, e.g. by upgrading the device's linecards or fa= brics or
=C2=A0 =C2=A0 =C2=A0replacing the device with one with higher port density.=

=C2=A0 =C2=A0 =C2=A0Today many large-scale data centers host applications g= enerating
--- 178,191 ----
=C2=A0 2.1.=C2=A0 Bandwidth and Traffic Patterns

=C2=A0 =C2=A0 =C2=A0The primary requirement when building an interconnectio= n network for
!=C2=A0 =C2=A0 a large number of servers is to accommodate application band= width and
=C2=A0 =C2=A0 =C2=A0latency requirements.=C2=A0 Until recently it was quite= common to see the
=C2=A0 =C2=A0 =C2=A0majority of traffic entering and leaving the data cente= r, commonly
=C2=A0 =C2=A0 =C2=A0referred to as "north-south" traffic.=C2=A0 T= raditional "tree" topologies
=C2=A0 =C2=A0 =C2=A0were sufficient to accommodate such flows, even with hi= gh
=C2=A0 =C2=A0 =C2=A0oversubscription ratios between the layers of the netwo= rk.=C2=A0 If more
=C2=A0 =C2=A0 =C2=A0bandwidth was required, it was added by "scaling u= p" the network
!=C2=A0 =C2=A0 elements, e.g., by upgrading the device's linecards or f= abrics or
=C2=A0 =C2=A0 =C2=A0replacing the device with one with higher port density.=

=C2=A0 =C2=A0 =C2=A0Today many large-scale data centers host applications g= enerating
***************
*** 195,201 ****
=C2=A0 =C2=A0 =C2=A0[HADOOP], massive data replication between clusters nee= ded by certain
=C2=A0 =C2=A0 =C2=A0applications, or virtual machine migrations.=C2=A0 Scal= ing traditional
=C2=A0 =C2=A0 =C2=A0tree topologies to match these bandwidth demands become= s either too
!=C2=A0 =C2=A0 expensive or impossible due to physical limitations, e.g. po= rt
=C2=A0 =C2=A0 =C2=A0density in a switch.

=C2=A0 2.2.=C2=A0 CAPEX Minimization
--- 195,201 ----
=C2=A0 =C2=A0 =C2=A0[HADOOP], massive data replication between clusters nee= ded by certain
=C2=A0 =C2=A0 =C2=A0applications, or virtual machine migrations.=C2=A0 Scal= ing traditional
=C2=A0 =C2=A0 =C2=A0tree topologies to match these bandwidth demands become= s either too
!=C2=A0 =C2=A0 expensive or impossible due to physical limitations, e.g., p= ort
=C2=A0 =C2=A0 =C2=A0density in a switch.

=C2=A0 2.2.=C2=A0 CAPEX Minimization
***************
*** 209,215 ****

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Unifying all network elements, preferably using= the same hardware
=C2=A0 =C2=A0 =C2=A0 =C2=A0 type or even the same device.=C2=A0 This allows= for volume pricing on
!=C2=A0 =C2=A0 =C2=A0 =C2=A0bulk purchases and reduced maintenance and spar= ing costs.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Driving costs down using competitive pressures,= by introducing
=C2=A0 =C2=A0 =C2=A0 =C2=A0 multiple network equipment vendors.
--- 209,215 ----

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Unifying all network elements, preferably using= the same hardware
=C2=A0 =C2=A0 =C2=A0 =C2=A0 type or even the same device.=C2=A0 This allows= for volume pricing on
!=C2=A0 =C2=A0 =C2=A0 =C2=A0bulk purchases and reduced maintenance and inve= ntory costs.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Driving costs down using competitive pressures,= by introducing
=C2=A0 =C2=A0 =C2=A0 =C2=A0 multiple network equipment vendors.
***************
*** 234,244 ****
=C2=A0 =C2=A0 =C2=A0minimizes software issue-related failures.

=C2=A0 =C2=A0 =C2=A0An important aspect of Operational Expenditure (OPEX) m= inimization is
!=C2=A0 =C2=A0 reducing size of failure domains in the network.=C2=A0 Ether= net networks
=C2=A0 =C2=A0 =C2=A0are known to be susceptible to broadcast or unicast tra= ffic storms
=C2=A0 =C2=A0 =C2=A0that can have a dramatic impact on network performance = and
=C2=A0 =C2=A0 =C2=A0availability.=C2=A0 The use of a fully routed design si= gnificantly reduces
!=C2=A0 =C2=A0 the size of the data plane failure domains - i.e. limits the= m to the
=C2=A0 =C2=A0 =C2=A0lowest level in the network hierarchy.=C2=A0 However, s= uch designs
=C2=A0 =C2=A0 =C2=A0introduce the problem of distributed control plane fail= ures.=C2=A0 This
=C2=A0 =C2=A0 =C2=A0observation calls for simpler and less control plane pr= otocols to
--- 234,244 ----
=C2=A0 =C2=A0 =C2=A0minimizes software issue-related failures.

=C2=A0 =C2=A0 =C2=A0An important aspect of Operational Expenditure (OPEX) m= inimization is
!=C2=A0 =C2=A0 reducing the size of failure domains in the network.=C2=A0 E= thernet
networks
=C2=A0 =C2=A0 =C2=A0are known to be susceptible to broadcast or unicast tra= ffic storms
=C2=A0 =C2=A0 =C2=A0that can have a dramatic impact on network performance = and
=C2=A0 =C2=A0 =C2=A0availability.=C2=A0 The use of a fully routed design si= gnificantly reduces
!=C2=A0 =C2=A0 the size of the data plane failure domains, i.e., limits the= m to the
=C2=A0 =C2=A0 =C2=A0lowest level in the network hierarchy.=C2=A0 However, s= uch designs
=C2=A0 =C2=A0 =C2=A0introduce the problem of distributed control plane fail= ures.=C2=A0 This
=C2=A0 =C2=A0 =C2=A0observation calls for simpler and less control plane pr= otocols to
***************
*** 253,259 ****
=C2=A0 =C2=A0 =C2=A0performed by network devices.=C2=A0 Traditionally, load= balancers are
=C2=A0 =C2=A0 =C2=A0deployed as dedicated devices in the traffic forwarding= path.=C2=A0 The
=C2=A0 =C2=A0 =C2=A0problem arises in scaling load balancers under growing = traffic
!=C2=A0 =C2=A0 demand.=C2=A0 A preferable solution would be able to scale l= oad balancing
=C2=A0 =C2=A0 =C2=A0layer horizontally, by adding more of the uniform nodes= and
=C2=A0 =C2=A0 =C2=A0distributing incoming traffic across these nodes.=C2=A0= In situations like
=C2=A0 =C2=A0 =C2=A0this, an ideal choice would be to use network infrastru= cture itself
--- 253,259 ----
=C2=A0 =C2=A0 =C2=A0performed by network devices.=C2=A0 Traditionally, load= balancers are
=C2=A0 =C2=A0 =C2=A0deployed as dedicated devices in the traffic forwarding= path.=C2=A0 The
=C2=A0 =C2=A0 =C2=A0problem arises in scaling load balancers under growing = traffic
!=C2=A0 =C2=A0 demand.=C2=A0 A preferable solution would be able to scale t= he load
balancing
=C2=A0 =C2=A0 =C2=A0layer horizontally, by adding more of the uniform nodes= and
=C2=A0 =C2=A0 =C2=A0distributing incoming traffic across these nodes.=C2=A0= In situations like
=C2=A0 =C2=A0 =C2=A0this, an ideal choice would be to use network infrastru= cture itself
***************
*** 305,311 ****
=C2=A0 3.1.=C2=A0 Traditional DC Topology

=C2=A0 =C2=A0 =C2=A0In the networking industry, a common design choice for = data centers
!=C2=A0 =C2=A0 typically look like a (upside down) tree with redundant upli= nks and
=C2=A0 =C2=A0 =C2=A0three layers of hierarchy namely; core, aggregation/dis= tribution and
=C2=A0 =C2=A0 =C2=A0access layers (see Figure 1).=C2=A0 To accommodate band= width demands, each
=C2=A0 =C2=A0 =C2=A0higher layer, from server towards DC egress or WAN, has= higher port
--- 305,311 ----
=C2=A0 3.1.=C2=A0 Traditional DC Topology

=C2=A0 =C2=A0 =C2=A0In the networking industry, a common design choice for = data centers
!=C2=A0 =C2=A0 typically look like an (upside down) tree with redundant upl= inks and
=C2=A0 =C2=A0 =C2=A0three layers of hierarchy namely; core, aggregation/dis= tribution and
=C2=A0 =C2=A0 =C2=A0access layers (see Figure 1).=C2=A0 To accommodate band= width demands, each
=C2=A0 =C2=A0 =C2=A0higher layer, from server towards DC egress or WAN, has= higher port
***************
*** 373,379 ****
=C2=A0 =C2=A0 =C2=A0topology, sometimes called "fat-tree" (see, f= or example, [INTERCON]
=C2=A0 =C2=A0 =C2=A0and [ALFARES2008]).=C2=A0 This topology features an odd= number of stages
=C2=A0 =C2=A0 =C2=A0(sometimes known as dimensions) and is commonly made of= uniform
!=C2=A0 =C2=A0 elements, e.g. network switches with the same port count.=C2= =A0 Therefore,
=C2=A0 =C2=A0 =C2=A0the choice of folded Clos topology satisfies REQ1 and f= acilitates
=C2=A0 =C2=A0 =C2=A0REQ2.=C2=A0 See Figure 2 below for an example of a fold= ed 3-stage Clos
=C2=A0 =C2=A0 =C2=A0topology (3 stages counting Tier-2 stage twice, when tr= acing a packet
--- 373,379 ----
=C2=A0 =C2=A0 =C2=A0topology, sometimes called "fat-tree" (see, f= or example, [INTERCON]
=C2=A0 =C2=A0 =C2=A0and [ALFARES2008]).=C2=A0 This topology features an odd= number of stages
=C2=A0 =C2=A0 =C2=A0(sometimes known as dimensions) and is commonly made of= uniform
!=C2=A0 =C2=A0 elements, e.g., network switches with the same port count.= =C2=A0 Therefore,
=C2=A0 =C2=A0 =C2=A0the choice of folded Clos topology satisfies REQ1 and f= acilitates
=C2=A0 =C2=A0 =C2=A0REQ2.=C2=A0 See Figure 2 below for an example of a fold= ed 3-stage Clos
=C2=A0 =C2=A0 =C2=A0topology (3 stages counting Tier-2 stage twice, when tr= acing a packet
***************
*** 460,466 ****
=C2=A0 3.2.3.=C2=A0 Scaling the Clos topology

=C2=A0 =C2=A0 =C2=A0A Clos topology can be scaled either by increasing netw= ork element
!=C2=A0 =C2=A0 port density or adding more stages, e.g. moving to a 5-stage= Clos, as
=C2=A0 =C2=A0 =C2=A0illustrated in Figure 3 below:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Tier-1 --- 460,466 ----
=C2=A0 3.2.3.=C2=A0 Scaling the Clos topology

=C2=A0 =C2=A0 =C2=A0A Clos topology can be scaled either by increasing netw= ork element
!=C2=A0 =C2=A0 port density or adding more stages, e.g., moving to a 5-stag= e Clos, as
=C2=A0 =C2=A0 =C2=A0illustrated in Figure 3 below:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Tier-1 ***************
*** 523,529 ****
=C2=A0 3.2.4.=C2=A0 Managing the Size of Clos Topology Tiers

=C2=A0 =C2=A0 =C2=A0If a data center network size is small, it is possible = to reduce the
!=C2=A0 =C2=A0 number of switches in Tier-1 or Tier-2 of Clos topology by a= factor
=C2=A0 =C2=A0 =C2=A0of two.=C2=A0 To understand how this could be done, tak= e Tier-1 as an
=C2=A0 =C2=A0 =C2=A0example.=C2=A0 Every Tier-2 device connects to a single= group of Tier-1
=C2=A0 =C2=A0 =C2=A0devices.=C2=A0 If half of the ports on each of the Tier= -1 devices are not
--- 523,529 ----
=C2=A0 3.2.4.=C2=A0 Managing the Size of Clos Topology Tiers

=C2=A0 =C2=A0 =C2=A0If a data center network size is small, it is possible = to reduce the
!=C2=A0 =C2=A0 number of switches in Tier-1 or Tier-2 of a Clos topology by= a factor
=C2=A0 =C2=A0 =C2=A0of two.=C2=A0 To understand how this could be done, tak= e Tier-1 as an
=C2=A0 =C2=A0 =C2=A0example.=C2=A0 Every Tier-2 device connects to a single= group of Tier-1
=C2=A0 =C2=A0 =C2=A0devices.=C2=A0 If half of the ports on each of the Tier= -1 devices are not
***************
*** 574,580 ****
=C2=A0 =C2=A0 =C2=A0originally defined in [IEEE8021D-1990] for loop free to= pology
=C2=A0 =C2=A0 =C2=A0creation, typically utilizing variants of the tradition= al DC topology
=C2=A0 =C2=A0 =C2=A0described in Section 3.1.=C2=A0 At the time, many DC sw= itches either did
!=C2=A0 =C2=A0 not support Layer 3 routed protocols or supported it with ad= ditional
=C2=A0 =C2=A0 =C2=A0licensing fees, which played a part in the design choic= e.=C2=A0 Although
=C2=A0 =C2=A0 =C2=A0many enhancements have been made through the introducti= on of Rapid
=C2=A0 =C2=A0 =C2=A0Spanning Tree Protocol (RSTP) in the latest revision of=
--- 574,580 ----
=C2=A0 =C2=A0 =C2=A0originally defined in [IEEE8021D-1990] for loop free to= pology
=C2=A0 =C2=A0 =C2=A0creation, typically utilizing variants of the tradition= al DC topology
=C2=A0 =C2=A0 =C2=A0described in Section 3.1.=C2=A0 At the time, many DC sw= itches either did
!=C2=A0 =C2=A0 not support Layer 3 routing protocols or supported them with=
additional
=C2=A0 =C2=A0 =C2=A0licensing fees, which played a part in the design choic= e.=C2=A0 Although
=C2=A0 =C2=A0 =C2=A0many enhancements have been made through the introducti= on of Rapid
=C2=A0 =C2=A0 =C2=A0Spanning Tree Protocol (RSTP) in the latest revision of=
***************
*** 599,605 ****
=C2=A0 =C2=A0 =C2=A0as the backup for loop prevention.=C2=A0 The major down= sides of this
=C2=A0 =C2=A0 =C2=A0approach are the lack of ability to scale linearly past= two in most
=C2=A0 =C2=A0 =C2=A0implementations, lack of standards based implementation= s, and added
!=C2=A0 =C2=A0 failure domain risk of keeping state between the devices.
=C2=A0 =C2=A0 =C2=A0It should be noted that building large, horizontally sc= alable, Layer
=C2=A0 =C2=A0 =C2=A02 only networks without STP is possible recently throug= h the
--- 599,605 ----
=C2=A0 =C2=A0 =C2=A0as the backup for loop prevention.=C2=A0 The major down= sides of this
=C2=A0 =C2=A0 =C2=A0approach are the lack of ability to scale linearly past= two in most
=C2=A0 =C2=A0 =C2=A0implementations, lack of standards based implementation= s, and added
!=C2=A0 =C2=A0 the failure domain risk of syncing state between the devices= .

=C2=A0 =C2=A0 =C2=A0It should be noted that building large, horizontally sc= alable, Layer
=C2=A0 =C2=A0 =C2=A02 only networks without STP is possible recently throug= h the
***************
*** 621,631 ****
=C2=A0 =C2=A0 =C2=A0Finally, neither the base TRILL specification nor the M= -LAG approach
=C2=A0 =C2=A0 =C2=A0totally eliminate the problem of the shared broadcast d= omain, that is
=C2=A0 =C2=A0 =C2=A0so detrimental to the operations of any Layer 2, Ethern= et based
!=C2=A0 =C2=A0 solutions.=C2=A0 Later TRILL extensions have been proposed t= o solve the
=C2=A0 =C2=A0 =C2=A0this problem statement primarily based on the approache= s outlined in
=C2=A0 =C2=A0 =C2=A0[RFC7067], but this even further limits the number of a= vailable
!=C2=A0 =C2=A0 interoperable implementations that can be used to build a fa= bric,
!=C2=A0 =C2=A0 therefore TRILL based designs have issues meeting REQ2, REQ3= , and
=C2=A0 =C2=A0 =C2=A0REQ4.

=C2=A0 4.2.=C2=A0 Hybrid L2/L3 Designs
--- 621,631 ----
=C2=A0 =C2=A0 =C2=A0Finally, neither the base TRILL specification nor the M= -LAG approach
=C2=A0 =C2=A0 =C2=A0totally eliminate the problem of the shared broadcast d= omain, that is
=C2=A0 =C2=A0 =C2=A0so detrimental to the operations of any Layer 2, Ethern= et based
!=C2=A0 =C2=A0 solution.=C2=A0 Later TRILL extensions have been proposed to= solve the
=C2=A0 =C2=A0 =C2=A0this problem statement primarily based on the approache= s outlined in
=C2=A0 =C2=A0 =C2=A0[RFC7067], but this even further limits the number of a= vailable
!=C2=A0 =C2=A0 interoperable implementations that can be used to build a fa= bric.
!=C2=A0 =C2=A0 Therefore, TRILL based designs have issues meeting REQ2, REQ= 3, and
=C2=A0 =C2=A0 =C2=A0REQ4.

=C2=A0 4.2.=C2=A0 Hybrid L2/L3 Designs
***************
*** 635,641 ****
=C2=A0 =C2=A0 =C2=A0in either the Tier-1 or Tier-2 parts of the network and= dividing the
=C2=A0 =C2=A0 =C2=A0Layer 2 domain into numerous, smaller domains.=C2=A0 Th= is design has
=C2=A0 =C2=A0 =C2=A0allowed data centers to scale up, but at the cost of co= mplexity in
!=C2=A0 =C2=A0 the network managing multiple protocols.=C2=A0 For the follo= wing reasons,
=C2=A0 =C2=A0 =C2=A0operators have retained Layer 2 in either the access (T= ier-3) or both
=C2=A0 =C2=A0 =C2=A0access and aggregation (Tier-3 and Tier-2) parts of the= network:

--- 635,641 ----
=C2=A0 =C2=A0 =C2=A0in either the Tier-1 or Tier-2 parts of the network and= dividing the
=C2=A0 =C2=A0 =C2=A0Layer 2 domain into numerous, smaller domains.=C2=A0 Th= is design has
=C2=A0 =C2=A0 =C2=A0allowed data centers to scale up, but at the cost of co= mplexity in
!=C2=A0 =C2=A0 the managing multiple network protocols.=C2=A0 For the follo= wing reasons,
=C2=A0 =C2=A0 =C2=A0operators have retained Layer 2 in either the access (T= ier-3) or both
=C2=A0 =C2=A0 =C2=A0access and aggregation (Tier-3 and Tier-2) parts of the= network:

***************
*** 644,650 ****

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Seamless mobility for virtual machines that req= uire the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 preservation of IP addresses when a virtual mac= hine moves to
!=C2=A0 =C2=A0 =C2=A0 =C2=A0different Tier-3 switch.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Simplified IP addressing =3D less IP subnets ar= e required for the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 data center.
--- 644,650 ----

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Seamless mobility for virtual machines that req= uire the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 preservation of IP addresses when a virtual mac= hine moves to
!=C2=A0 =C2=A0 =C2=A0 =C2=A0a different Tier-3 switch.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Simplified IP addressing =3D less IP subnets ar= e required for the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 data center.
***************
*** 679,686 ****
=C2=A0 =C2=A0 =C2=A0adoption in networks where large Layer 2 adjacency and = larger size
=C2=A0 =C2=A0 =C2=A0Layer 3 subnets are not as critical compared to network= scalability
=C2=A0 =C2=A0 =C2=A0and stability.=C2=A0 Application providers and network = operators continue
!=C2=A0 =C2=A0 to also develop new solutions to meet some of the requiremen= ts that
!=C2=A0 =C2=A0 previously have driven large Layer 2 domains by using variou= s overlay
=C2=A0 =C2=A0 =C2=A0or tunneling techniques.

=C2=A0 5.=C2=A0 Routing Protocol Selection and Design
--- 679,686 ----
=C2=A0 =C2=A0 =C2=A0adoption in networks where large Layer 2 adjacency and = larger size
=C2=A0 =C2=A0 =C2=A0Layer 3 subnets are not as critical compared to network= scalability
=C2=A0 =C2=A0 =C2=A0and stability.=C2=A0 Application providers and network = operators continue
!=C2=A0 =C2=A0 to develop new solutions to meet some of the requirements th= at
!=C2=A0 =C2=A0 previously had driven large Layer 2 domains using various ov= erlay
=C2=A0 =C2=A0 =C2=A0or tunneling techniques.

=C2=A0 5.=C2=A0 Routing Protocol Selection and Design
***************
*** 700,706 ****
=C2=A0 =C2=A0 =C2=A0design.

=C2=A0 =C2=A0 =C2=A0Although EBGP is the protocol used for almost all inter= -domain
!=C2=A0 =C2=A0 routing on the Internet and has wide support from both vendo= r and
=C2=A0 =C2=A0 =C2=A0service provider communities, it is not generally deplo= yed as the
=C2=A0 =C2=A0 =C2=A0primary routing protocol within the data center for a n= umber of
=C2=A0 =C2=A0 =C2=A0reasons (some of which are interrelated):
--- 700,706 ----
=C2=A0 =C2=A0 =C2=A0design.

=C2=A0 =C2=A0 =C2=A0Although EBGP is the protocol used for almost all inter= -domain
!=C2=A0 =C2=A0 routing in the Internet and has wide support from both vendo= r and
=C2=A0 =C2=A0 =C2=A0service provider communities, it is not generally deplo= yed as the
=C2=A0 =C2=A0 =C2=A0primary routing protocol within the data center for a n= umber of
=C2=A0 =C2=A0 =C2=A0reasons (some of which are interrelated):
***************
*** 741,754 ****
=C2=A0 =C2=A0 =C2=A0 =C2=A0 state IGPs.=C2=A0 Since every BGP router calcul= ates and propagates only
=C2=A0 =C2=A0 =C2=A0 =C2=A0 the best-path selected, a network failure is ma= sked as soon as the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 BGP speaker finds an alternate path, which exis= ts when highly
!=C2=A0 =C2=A0 =C2=A0 =C2=A0symmetric topologies, such as Clos, are coupled= with EBGP only
=C2=A0 =C2=A0 =C2=A0 =C2=A0 design.=C2=A0 In contrast, the event propagatio= n scope of a link-state
=C2=A0 =C2=A0 =C2=A0 =C2=A0 IGP is an entire area, regardless of the failur= e type.=C2=A0 In this
=C2=A0 =C2=A0 =C2=A0 =C2=A0 way, BGP better meets REQ3 and REQ4.=C2=A0 It i= s also worth mentioning
=C2=A0 =C2=A0 =C2=A0 =C2=A0 that all widely deployed link-state IGPs featur= e periodic
!=C2=A0 =C2=A0 =C2=A0 =C2=A0refreshes of routing information, even if this = rarely causes
!=C2=A0 =C2=A0 =C2=A0 =C2=A0impact to modern router control planes, while B= GP does not expire
!=C2=A0 =C2=A0 =C2=A0 =C2=A0routing state.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 BGP supports third-party (recursively resolved)= next-hops.=C2=A0 This
=C2=A0 =C2=A0 =C2=A0 =C2=A0 allows for manipulating multipath to be non-ECM= P based or
--- 741,754 ----
=C2=A0 =C2=A0 =C2=A0 =C2=A0 state IGPs.=C2=A0 Since every BGP router calcul= ates and propagates only
=C2=A0 =C2=A0 =C2=A0 =C2=A0 the best-path selected, a network failure is ma= sked as soon as the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 BGP speaker finds an alternate path, which exis= ts when highly
!=C2=A0 =C2=A0 =C2=A0 =C2=A0symmetric topologies, such as Clos, are coupled= with an EBGP only
=C2=A0 =C2=A0 =C2=A0 =C2=A0 design.=C2=A0 In contrast, the event propagatio= n scope of a link-state
=C2=A0 =C2=A0 =C2=A0 =C2=A0 IGP is an entire area, regardless of the failur= e type.=C2=A0 In this
=C2=A0 =C2=A0 =C2=A0 =C2=A0 way, BGP better meets REQ3 and REQ4.=C2=A0 It i= s also worth mentioning
=C2=A0 =C2=A0 =C2=A0 =C2=A0 that all widely deployed link-state IGPs featur= e periodic
!=C2=A0 =C2=A0 =C2=A0 =C2=A0refreshes of routing information while BGP does= not expire
!=C2=A0 =C2=A0 =C2=A0 =C2=A0routing state, although this rarely impacts mod= ern router control
!=C2=A0 =C2=A0 =C2=A0 =C2=A0planes.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 BGP supports third-party (recursively resolved)= next-hops.=C2=A0 This
=C2=A0 =C2=A0 =C2=A0 =C2=A0 allows for manipulating multipath to be non-ECM= P based or
***************
*** 765,775 ****
=C2=A0 =C2=A0 =C2=A0 =C2=A0 controlled and complex unwanted paths will be i= gnored.=C2=A0 See
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Section 5.2 for an example of a working ASN all= ocation scheme.=C2=A0 In
=C2=A0 =C2=A0 =C2=A0 =C2=A0 a link-state IGP accomplishing the same goal wo= uld require multi-
!=C2=A0 =C2=A0 =C2=A0 =C2=A0(instance/topology/processes) support, typicall= y not available in
=C2=A0 =C2=A0 =C2=A0 =C2=A0 all DC devices and quite complex to configure a= nd troubleshoot.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Using a traditional single flooding domain, whi= ch most DC designs
=C2=A0 =C2=A0 =C2=A0 =C2=A0 utilize, under certain failure conditions may p= ick up unwanted
!=C2=A0 =C2=A0 =C2=A0 =C2=A0lengthy paths, e.g. traversing multiple Tier-2 = devices.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 EBGP configuration that is implemented with min= imal routing policy
=C2=A0 =C2=A0 =C2=A0 =C2=A0 is easier to troubleshoot for network reachabil= ity issues.=C2=A0 In
--- 765,775 ----
=C2=A0 =C2=A0 =C2=A0 =C2=A0 controlled and complex unwanted paths will be i= gnored.=C2=A0 See
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Section 5.2 for an example of a working ASN all= ocation scheme.=C2=A0 In
=C2=A0 =C2=A0 =C2=A0 =C2=A0 a link-state IGP accomplishing the same goal wo= uld require multi-
!=C2=A0 =C2=A0 =C2=A0 =C2=A0(instance/topology/process) support, typically = not available in
=C2=A0 =C2=A0 =C2=A0 =C2=A0 all DC devices and quite complex to configure a= nd troubleshoot.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Using a traditional single flooding domain, whi= ch most DC designs
=C2=A0 =C2=A0 =C2=A0 =C2=A0 utilize, under certain failure conditions may p= ick up unwanted
!=C2=A0 =C2=A0 =C2=A0 =C2=A0lengthy paths, e.g., traversing multiple Tier-2= devices.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 EBGP configuration that is implemented with min= imal routing policy
=C2=A0 =C2=A0 =C2=A0 =C2=A0 is easier to troubleshoot for network reachabil= ity issues.=C2=A0 In
***************
*** 806,812 ****
=C2=A0 =C2=A0 =C2=A0 =C2=A0 loopback sessions are used even in the case of = multiple links
=C2=A0 =C2=A0 =C2=A0 =C2=A0 between the same pair of nodes.

!=C2=A0 =C2=A0 o=C2=A0 Private Use ASNs from the range 64512-65534 are used= so as to
=C2=A0 =C2=A0 =C2=A0 =C2=A0 avoid ASN conflicts.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 A single ASN is allocated to all of the Clos to= pology's Tier-1
--- 806,812 ----
=C2=A0 =C2=A0 =C2=A0 =C2=A0 loopback sessions are used even in the case of = multiple links
=C2=A0 =C2=A0 =C2=A0 =C2=A0 between the same pair of nodes.

!=C2=A0 =C2=A0 o=C2=A0 Private Use ASNs from the range 64512-65534 are used= to
=C2=A0 =C2=A0 =C2=A0 =C2=A0 avoid ASN conflicts.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 A single ASN is allocated to all of the Clos to= pology's Tier-1
***************
*** 815,821 ****
=C2=A0 =C2=A0 =C2=A0o=C2=A0 A unique ASN is allocated to each set of Tier-2= devices in the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 same cluster.

!=C2=A0 =C2=A0 o=C2=A0 A unique ASN is allocated to every Tier-3 device (e.= g.=C2=A0 ToR) in
=C2=A0 =C2=A0 =C2=A0 =C2=A0 this topology.


--- 815,821 ----
=C2=A0 =C2=A0 =C2=A0o=C2=A0 A unique ASN is allocated to each set of Tier-2= devices in the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 same cluster.

!=C2=A0 =C2=A0 o=C2=A0 A unique ASN is allocated to every Tier-3 device (e.= g.,=C2=A0 ToR) in
=C2=A0 =C2=A0 =C2=A0 =C2=A0 this topology.


***************
*** 903,922 ****

=C2=A0 =C2=A0 =C2=A0Another solution to this problem would be using Four-Oc= tet ASNs
=C2=A0 =C2=A0 =C2=A0([RFC6793]), where there are additional Private Use ASN= s available,
!=C2=A0 =C2=A0 see [IANA.AS].=C2=A0 Use of Four-Octet ASNs put additional protocol=
!=C2=A0 =C2=A0 complexity in the BGP implementation so should be considered= against
=C2=A0 =C2=A0 =C2=A0the complexity of re-use when considering REQ3 and REQ4= .=C2=A0 Perhaps
=C2=A0 =C2=A0 =C2=A0more importantly, they are not yet supported by all BGP=
=C2=A0 =C2=A0 =C2=A0implementations, which may limit vendor selection of DC= equipment.
!=C2=A0 =C2=A0 When supported, ensure that implementations in use are able = to remove
!=C2=A0 =C2=A0 the Private Use ASNs if required for external connectivity !=C2=A0 =C2=A0 (Section 5.2.4).

=C2=A0 5.2.3.=C2=A0 Prefix Advertisement

=C2=A0 =C2=A0 =C2=A0A Clos topology features a large number of point-to-poi= nt links and
=C2=A0 =C2=A0 =C2=A0associated prefixes.=C2=A0 Advertising all of these rou= tes into BGP may
!=C2=A0 =C2=A0 create FIB overload conditions in the network devices.=C2=A0= Advertising
=C2=A0 =C2=A0 =C2=A0these links also puts additional path computation stres= s on the BGP
=C2=A0 =C2=A0 =C2=A0control plane for little benefit.=C2=A0 There are two p= ossible solutions:

--- 903,922 ----

=C2=A0 =C2=A0 =C2=A0Another solution to this problem would be using Four-Oc= tet ASNs
=C2=A0 =C2=A0 =C2=A0([RFC6793]), where there are additional Private Use ASN= s available,
!=C2=A0 =C2=A0 see [IANA.AS].=C2=A0 Use of Four-Octet ASNs puts additional protoco= l
!=C2=A0 =C2=A0 complexity in the BGP implementation and should be balanced = against
=C2=A0 =C2=A0 =C2=A0the complexity of re-use when considering REQ3 and REQ4= .=C2=A0 Perhaps
=C2=A0 =C2=A0 =C2=A0more importantly, they are not yet supported by all BGP=
=C2=A0 =C2=A0 =C2=A0implementations, which may limit vendor selection of DC= equipment.
!=C2=A0 =C2=A0 When supported, ensure that deployed implementations are abl= e to
remove
!=C2=A0 =C2=A0 the Private Use ASNs when external connectivity to these ASe= s is
!=C2=A0 =C2=A0 required (Section 5.2.4).

=C2=A0 5.2.3.=C2=A0 Prefix Advertisement

=C2=A0 =C2=A0 =C2=A0A Clos topology features a large number of point-to-poi= nt links and
=C2=A0 =C2=A0 =C2=A0associated prefixes.=C2=A0 Advertising all of these rou= tes into BGP may
!=C2=A0 =C2=A0 create FIB overload in the network devices.=C2=A0 Advertisin= g
=C2=A0 =C2=A0 =C2=A0these links also puts additional path computation stres= s on the BGP
=C2=A0 =C2=A0 =C2=A0control plane for little benefit.=C2=A0 There are two p= ossible solutions:

***************
*** 925,951 ****
=C2=A0 =C2=A0 =C2=A0 =C2=A0 device, distant networks will automatically be = reachable via the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 advertising EBGP peer and do not require reacha= bility to these
=C2=A0 =C2=A0 =C2=A0 =C2=A0 prefixes.=C2=A0 However, this may complicate op= erations or monitoring:
!=C2=A0 =C2=A0 =C2=A0 =C2=A0e.g. using the popular "traceroute" t= ool will display IP addresses
=C2=A0 =C2=A0 =C2=A0 =C2=A0 that are not reachable.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Advertise point-to-point links, but summarize t= hem on every
=C2=A0 =C2=A0 =C2=A0 =C2=A0 device.=C2=A0 This requires an address allocati= on scheme such as
=C2=A0 =C2=A0 =C2=A0 =C2=A0 allocating a consecutive block of IP addresses = per Tier-1 and
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Tier-2 device to be used for point-to-point int= erface addressing
!=C2=A0 =C2=A0 =C2=A0 =C2=A0to the lower layers (Tier-2 uplinks will be num= bered out of Tier-1
!=C2=A0 =C2=A0 =C2=A0 =C2=A0addressing and so forth).

=C2=A0 =C2=A0 =C2=A0Server subnets on Tier-3 devices must be announced into= BGP without
=C2=A0 =C2=A0 =C2=A0using route summarization on Tier-2 and Tier-1 devices.= =C2=A0 Summarizing
=C2=A0 =C2=A0 =C2=A0subnets in a Clos topology results in route black-holin= g under a
!=C2=A0 =C2=A0 single link failure (e.g. between Tier-2 and Tier-3 devices)= and
=C2=A0 =C2=A0 =C2=A0hence must be avoided.=C2=A0 The use of peer links with= in the same tier to
=C2=A0 =C2=A0 =C2=A0resolve the black-holing problem by providing "byp= ass paths" is
=C2=A0 =C2=A0 =C2=A0undesirable due to O(N^2) complexity of the peering mes= h and waste of
=C2=A0 =C2=A0 =C2=A0ports on the devices.=C2=A0 An alternative to the full-= mesh of peer-links
!=C2=A0 =C2=A0 would be using a simpler bypass topology, e.g. a "ring&= quot; as described
=C2=A0 =C2=A0 =C2=A0in [FB4POST], but such a topology adds extra hops and h= as very
!=C2=A0 =C2=A0 limited bisection bandwidth, in addition requiring special t= weaks to



--- 925,951 ----
=C2=A0 =C2=A0 =C2=A0 =C2=A0 device, distant networks will automatically be = reachable via the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 advertising EBGP peer and do not require reacha= bility to these
=C2=A0 =C2=A0 =C2=A0 =C2=A0 prefixes.=C2=A0 However, this may complicate op= erations or monitoring:
!=C2=A0 =C2=A0 =C2=A0 =C2=A0e.g., using the popular "traceroute" = tool will display IP addresses
=C2=A0 =C2=A0 =C2=A0 =C2=A0 that are not reachable.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Advertise point-to-point links, but summarize t= hem on every
=C2=A0 =C2=A0 =C2=A0 =C2=A0 device.=C2=A0 This requires an address allocati= on scheme such as
=C2=A0 =C2=A0 =C2=A0 =C2=A0 allocating a consecutive block of IP addresses = per Tier-1 and
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Tier-2 device to be used for point-to-point int= erface addressing
!=C2=A0 =C2=A0 =C2=A0 =C2=A0to the lower layers (Tier-2 uplink addresses wi= ll be allocated
!=C2=A0 =C2=A0 =C2=A0 =C2=A0from Tier-1 address blocks and so forth).

=C2=A0 =C2=A0 =C2=A0Server subnets on Tier-3 devices must be announced into= BGP without
=C2=A0 =C2=A0 =C2=A0using route summarization on Tier-2 and Tier-1 devices.= =C2=A0 Summarizing
=C2=A0 =C2=A0 =C2=A0subnets in a Clos topology results in route black-holin= g under a
!=C2=A0 =C2=A0 single link failure (e.g., between Tier-2 and Tier-3 devices= ) and
=C2=A0 =C2=A0 =C2=A0hence must be avoided.=C2=A0 The use of peer links with= in the same tier to
=C2=A0 =C2=A0 =C2=A0resolve the black-holing problem by providing "byp= ass paths" is
=C2=A0 =C2=A0 =C2=A0undesirable due to O(N^2) complexity of the peering mes= h and waste of
=C2=A0 =C2=A0 =C2=A0ports on the devices.=C2=A0 An alternative to the full-= mesh of peer-links
!=C2=A0 =C2=A0 would be using a simpler bypass topology, e.g., a "ring= " as described
=C2=A0 =C2=A0 =C2=A0in [FB4POST], but such a topology adds extra hops and h= as very
!=C2=A0 =C2=A0 limited bisectional bandwidth. Additionally requiring specia= l tweaks
to



***************
*** 956,963 ****

=C2=A0 =C2=A0 =C2=A0make BGP routing work - such as possibly splitting ever= y device into
=C2=A0 =C2=A0 =C2=A0an ASN on its own.=C2=A0 Later in this document, Sectio= n 8.2 introduces a
!=C2=A0 =C2=A0 less intrusive method for performing a limited form route !=C2=A0 =C2=A0 summarization in Clos networks and discusses it's associ= ated trade-
=C2=A0 =C2=A0 =C2=A0offs.

=C2=A0 5.2.4.=C2=A0 External Connectivity
--- 956,963 ----

=C2=A0 =C2=A0 =C2=A0make BGP routing work - such as possibly splitting ever= y device into
=C2=A0 =C2=A0 =C2=A0an ASN on its own.=C2=A0 Later in this document, Sectio= n 8.2 introduces a
!=C2=A0 =C2=A0 less intrusive method for performing a limited form of route=
!=C2=A0 =C2=A0 summarization in Clos networks and discusses its associated = trade-
=C2=A0 =C2=A0 =C2=A0offs.

=C2=A0 5.2.4.=C2=A0 External Connectivity
***************
*** 972,985 ****
=C2=A0 =C2=A0 =C2=A0document.=C2=A0 These devices have to perform a few spe= cial functions:

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Hide network topology information when advertis= ing paths to WAN
!=C2=A0 =C2=A0 =C2=A0 =C2=A0routers, i.e. remove Private Use ASNs [RFC6996]= from the AS_PATH
=C2=A0 =C2=A0 =C2=A0 =C2=A0 attribute.=C2=A0 This is typically done to avoi= d ASN number collisions
=C2=A0 =C2=A0 =C2=A0 =C2=A0 between different data centers and also to prov= ide a uniform
=C2=A0 =C2=A0 =C2=A0 =C2=A0 AS_PATH length to the WAN for purposes of WAN E= CMP to Anycast
=C2=A0 =C2=A0 =C2=A0 =C2=A0 prefixes originated in the topology.=C2=A0 An i= mplementation specific
=C2=A0 =C2=A0 =C2=A0 =C2=A0 BGP feature typically called "Remove Priva= te AS" is commonly used
=C2=A0 =C2=A0 =C2=A0 =C2=A0 to accomplish this.=C2=A0 Depending on implemen= tation, the feature
!=C2=A0 =C2=A0 =C2=A0 =C2=A0should strip a contiguous sequence of Private U= se ASNs found in
=C2=A0 =C2=A0 =C2=A0 =C2=A0 AS_PATH attribute prior to advertising the path= to a neighbor.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 This assumes that all ASNs used for intra data = center numbering
=C2=A0 =C2=A0 =C2=A0 =C2=A0 are from the Private Use ranges.=C2=A0 The proc= ess for stripping the
--- 972,985 ----
=C2=A0 =C2=A0 =C2=A0document.=C2=A0 These devices have to perform a few spe= cial functions:

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Hide network topology information when advertis= ing paths to WAN
!=C2=A0 =C2=A0 =C2=A0 =C2=A0routers, i.e., remove Private Use ASNs [RFC6996= ] from the AS_PATH
=C2=A0 =C2=A0 =C2=A0 =C2=A0 attribute.=C2=A0 This is typically done to avoi= d ASN number collisions
=C2=A0 =C2=A0 =C2=A0 =C2=A0 between different data centers and also to prov= ide a uniform
=C2=A0 =C2=A0 =C2=A0 =C2=A0 AS_PATH length to the WAN for purposes of WAN E= CMP to Anycast
=C2=A0 =C2=A0 =C2=A0 =C2=A0 prefixes originated in the topology.=C2=A0 An i= mplementation specific
=C2=A0 =C2=A0 =C2=A0 =C2=A0 BGP feature typically called "Remove Priva= te AS" is commonly used
=C2=A0 =C2=A0 =C2=A0 =C2=A0 to accomplish this.=C2=A0 Depending on implemen= tation, the feature
!=C2=A0 =C2=A0 =C2=A0 =C2=A0should strip a contiguous sequence of Private U= se ASNs found in an
=C2=A0 =C2=A0 =C2=A0 =C2=A0 AS_PATH attribute prior to advertising the path= to a neighbor.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 This assumes that all ASNs used for intra data = center numbering
=C2=A0 =C2=A0 =C2=A0 =C2=A0 are from the Private Use ranges.=C2=A0 The proc= ess for stripping the
***************
*** 998,1005 ****
=C2=A0 =C2=A0 =C2=A0 =C2=A0 to the WAN Routers upstream, to provide resista= nce to a single-
=C2=A0 =C2=A0 =C2=A0 =C2=A0 link failure causing the black-holing of traffi= c.=C2=A0 To prevent
=C2=A0 =C2=A0 =C2=A0 =C2=A0 black-holing in the situation when all of the E= BGP sessions to the
!=C2=A0 =C2=A0 =C2=A0 =C2=A0WAN routers fail simultaneously on a given devi= ce it is more
!=C2=A0 =C2=A0 =C2=A0 =C2=A0desirable to take the "relaying" appr= oach rather than introducing
=C2=A0 =C2=A0 =C2=A0 =C2=A0 the default route via complicated conditional r= oute origination
=C2=A0 =C2=A0 =C2=A0 =C2=A0 schemes provided by some implementations [CONDI= TIONALROUTE].

--- 998,1005 ----
=C2=A0 =C2=A0 =C2=A0 =C2=A0 to the WAN Routers upstream, to provide resista= nce to a single-
=C2=A0 =C2=A0 =C2=A0 =C2=A0 link failure causing the black-holing of traffi= c.=C2=A0 To prevent
=C2=A0 =C2=A0 =C2=A0 =C2=A0 black-holing in the situation when all of the E= BGP sessions to the
!=C2=A0 =C2=A0 =C2=A0 =C2=A0WAN routers fail simultaneously on a given devi= ce, it is more
!=C2=A0 =C2=A0 =C2=A0 =C2=A0desirable to readvertise the default route rath= er than originating
=C2=A0 =C2=A0 =C2=A0 =C2=A0 the default route via complicated conditional r= oute origination
=C2=A0 =C2=A0 =C2=A0 =C2=A0 schemes provided by some implementations [CONDI= TIONALROUTE].

***************
*** 1017,1023 ****
=C2=A0 =C2=A0 =C2=A0prefixes originated from within the data center in a fu= lly routed
=C2=A0 =C2=A0 =C2=A0network design.=C2=A0 For example, a network with 2000 = Tier-3 devices will
=C2=A0 =C2=A0 =C2=A0have at least 2000 servers subnets advertised into BGP,= along with
!=C2=A0 =C2=A0 the infrastructure or other prefixes.=C2=A0 However, as disc= ussed before,
=C2=A0 =C2=A0 =C2=A0the proposed network design does not allow for route su= mmarization
=C2=A0 =C2=A0 =C2=A0due to the lack of peer links inside every tier.

--- 1017,1023 ----
=C2=A0 =C2=A0 =C2=A0prefixes originated from within the data center in a fu= lly routed
=C2=A0 =C2=A0 =C2=A0network design.=C2=A0 For example, a network with 2000 = Tier-3 devices will
=C2=A0 =C2=A0 =C2=A0have at least 2000 servers subnets advertised into BGP,= along with
!=C2=A0 =C2=A0 the infrastructure and link prefixes.=C2=A0 However, as disc= ussed before,
=C2=A0 =C2=A0 =C2=A0the proposed network design does not allow for route su= mmarization
=C2=A0 =C2=A0 =C2=A0due to the lack of peer links inside every tier.

***************
*** 1028,1037 ****
=C2=A0 =C2=A0 =C2=A0o=C2=A0 Interconnect the Border Routers using a full-me= sh of physical
=C2=A0 =C2=A0 =C2=A0 =C2=A0 links or using any other "peer-mesh" = topology, such as ring or
=C2=A0 =C2=A0 =C2=A0 =C2=A0 hub-and-spoke.=C2=A0 Configure BGP accordingly = on all Border Leafs to
!=C2=A0 =C2=A0 =C2=A0 =C2=A0exchange network reachability information - e.g= . by adding a mesh
=C2=A0 =C2=A0 =C2=A0 =C2=A0 of IBGP sessions.=C2=A0 The interconnecting pee= r links need to be
=C2=A0 =C2=A0 =C2=A0 =C2=A0 appropriately sized for traffic that will be pr= esent in the case
!=C2=A0 =C2=A0 =C2=A0 =C2=A0of a device or link failure underneath the Bord= er Routers.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Tier-1 devices may have additional physical lin= ks provisioned
=C2=A0 =C2=A0 =C2=A0 =C2=A0 toward the Border Routers (which are Tier-2 dev= ices from the
--- 1028,1037 ----
=C2=A0 =C2=A0 =C2=A0o=C2=A0 Interconnect the Border Routers using a full-me= sh of physical
=C2=A0 =C2=A0 =C2=A0 =C2=A0 links or using any other "peer-mesh" = topology, such as ring or
=C2=A0 =C2=A0 =C2=A0 =C2=A0 hub-and-spoke.=C2=A0 Configure BGP accordingly = on all Border Leafs to
!=C2=A0 =C2=A0 =C2=A0 =C2=A0exchange network reachability information, e.g.= , by adding a mesh
=C2=A0 =C2=A0 =C2=A0 =C2=A0 of IBGP sessions.=C2=A0 The interconnecting pee= r links need to be
=C2=A0 =C2=A0 =C2=A0 =C2=A0 appropriately sized for traffic that will be pr= esent in the case
!=C2=A0 =C2=A0 =C2=A0 =C2=A0of a device or link failure in the mesh connect= ing the Border
Routers.

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Tier-1 devices may have additional physical lin= ks provisioned
=C2=A0 =C2=A0 =C2=A0 =C2=A0 toward the Border Routers (which are Tier-2 dev= ices from the
***************
*** 1043,1049 ****
=C2=A0 =C2=A0 =C2=A0 =C2=A0 device compared with the other devices in the C= los.=C2=A0 This also
=C2=A0 =C2=A0 =C2=A0 =C2=A0 reduces the number of ports available to "= regular" Tier-2 switches
=C2=A0 =C2=A0 =C2=A0 =C2=A0 and hence the number of clusters that could be = interconnected via
!=C2=A0 =C2=A0 =C2=A0 =C2=A0Tier-1 layer.

=C2=A0 =C2=A0 =C2=A0If any of the above options are implemented, it is poss= ible to
=C2=A0 =C2=A0 =C2=A0perform route summarization at the Border Routers towar= d the WAN
--- 1043,1049 ----
=C2=A0 =C2=A0 =C2=A0 =C2=A0 device compared with the other devices in the C= los.=C2=A0 This also
=C2=A0 =C2=A0 =C2=A0 =C2=A0 reduces the number of ports available to "= regular" Tier-2 switches
=C2=A0 =C2=A0 =C2=A0 =C2=A0 and hence the number of clusters that could be = interconnected via
!=C2=A0 =C2=A0 =C2=A0 =C2=A0the Tier-1 layer.

=C2=A0 =C2=A0 =C2=A0If any of the above options are implemented, it is poss= ible to
=C2=A0 =C2=A0 =C2=A0perform route summarization at the Border Routers towar= d the WAN
***************
*** 1071,1079 ****
=C2=A0 =C2=A0 =C2=A0ECMP is the fundamental load sharing mechanism used by = a Clos
=C2=A0 =C2=A0 =C2=A0topology.=C2=A0 Effectively, every lower-tier device wi= ll use all of its
=C2=A0 =C2=A0 =C2=A0directly attached upper-tier devices to load share traf= fic destined
!=C2=A0 =C2=A0 to the same IP prefix.=C2=A0 Number of ECMP paths between an= y two Tier-3
=C2=A0 =C2=A0 =C2=A0devices in Clos topology equals to the number of the de= vices in the
!=C2=A0 =C2=A0 middle stage (Tier-1).=C2=A0 For example, Figure 5 illustrat= es the
=C2=A0 =C2=A0 =C2=A0topology where Tier-3 device A has four paths to reach = servers X and
=C2=A0 =C2=A0 =C2=A0Y, via Tier-2 devices B and C and then Tier-1 devices 1= , 2, 3, and 4
=C2=A0 =C2=A0 =C2=A0respectively.
--- 1071,1079 ----
=C2=A0 =C2=A0 =C2=A0ECMP is the fundamental load sharing mechanism used by = a Clos
=C2=A0 =C2=A0 =C2=A0topology.=C2=A0 Effectively, every lower-tier device wi= ll use all of its
=C2=A0 =C2=A0 =C2=A0directly attached upper-tier devices to load share traf= fic destined
!=C2=A0 =C2=A0 to the same IP prefix.=C2=A0 The number of ECMP paths betwee= n any two
Tier-3
=C2=A0 =C2=A0 =C2=A0devices in Clos topology equals to the number of the de= vices in the
!=C2=A0 =C2=A0 middle stage (Tier-1).=C2=A0 For example, Figure 5 illustrat= es a
=C2=A0 =C2=A0 =C2=A0topology where Tier-3 device A has four paths to reach = servers X and
=C2=A0 =C2=A0 =C2=A0Y, via Tier-2 devices B and C and then Tier-1 devices 1= , 2, 3, and 4
=C2=A0 =C2=A0 =C2=A0respectively.
***************
*** 1105,1116 ****

=C2=A0 =C2=A0 =C2=A0The ECMP requirement implies that the BGP implementatio= n must support
=C2=A0 =C2=A0 =C2=A0multipath fan-out for up to the maximum number of devic= es directly
!=C2=A0 =C2=A0 attached at any point in the topology in upstream or downstr= eam
=C2=A0 =C2=A0 =C2=A0direction.=C2=A0 Normally, this number does not exceed = half of the ports
=C2=A0 =C2=A0 =C2=A0found on a device in the topology.=C2=A0 For example, a= n ECMP fan-out of
=C2=A0 =C2=A0 =C2=A032 would be required when building a Clos network using= 64-port
=C2=A0 =C2=A0 =C2=A0devices.=C2=A0 The Border Routers may need to have wide= r fan-out to be
!=C2=A0 =C2=A0 able to connect to multitude of Tier-1 devices if route summ= arization
=C2=A0 =C2=A0 =C2=A0at Border Router level is implemented as described in S= ection 5.2.5.
=C2=A0 =C2=A0 =C2=A0If a device's hardware does not support wider ECMP,= logical link-
=C2=A0 =C2=A0 =C2=A0grouping (link-aggregation at layer 2) could be used to= provide
--- 1105,1116 ----

=C2=A0 =C2=A0 =C2=A0The ECMP requirement implies that the BGP implementatio= n must support
=C2=A0 =C2=A0 =C2=A0multipath fan-out for up to the maximum number of devic= es directly
!=C2=A0 =C2=A0 attached at any point in the topology in the upstream or dow= nstream
=C2=A0 =C2=A0 =C2=A0direction.=C2=A0 Normally, this number does not exceed = half of the ports
=C2=A0 =C2=A0 =C2=A0found on a device in the topology.=C2=A0 For example, a= n ECMP fan-out of
=C2=A0 =C2=A0 =C2=A032 would be required when building a Clos network using= 64-port
=C2=A0 =C2=A0 =C2=A0devices.=C2=A0 The Border Routers may need to have wide= r fan-out to be
!=C2=A0 =C2=A0 able to connect to a multitude of Tier-1 devices if route summarization
=C2=A0 =C2=A0 =C2=A0at Border Router level is implemented as described in S= ection 5.2.5.
=C2=A0 =C2=A0 =C2=A0If a device's hardware does not support wider ECMP,= logical link-
=C2=A0 =C2=A0 =C2=A0grouping (link-aggregation at layer 2) could be used to= provide
***************
*** 1122,1131 ****
=C2=A0 Internet-Draft=C2=A0 =C2=A0 draft-ietf-rtgwg-bgp-routing-large-dc=C2= =A0 =C2=A0 =C2=A0 =C2=A0March 2016


!=C2=A0 =C2=A0 "hierarchical" ECMP (Layer 3 ECMP followed by Laye= r 2 ECMP) to
=C2=A0 =C2=A0 =C2=A0compensate for fan-out limitations.=C2=A0 Such approach= , however,
=C2=A0 =C2=A0 =C2=A0increases the risk of flow polarization, as less entrop= y will be
!=C2=A0 =C2=A0 available to the second stage of ECMP.

=C2=A0 =C2=A0 =C2=A0Most BGP implementations declare paths to be equal from= an ECMP
=C2=A0 =C2=A0 =C2=A0perspective if they match up to and including step (e) = in
--- 1122,1131 ----
=C2=A0 Internet-Draft=C2=A0 =C2=A0 draft-ietf-rtgwg-bgp-routing-large-dc=C2= =A0 =C2=A0 =C2=A0 =C2=A0March 2016


!=C2=A0 =C2=A0 "hierarchical" ECMP (Layer 3 ECMP coupled with Lay= er 2 ECMP) to
=C2=A0 =C2=A0 =C2=A0compensate for fan-out limitations.=C2=A0 Such approach= , however,
=C2=A0 =C2=A0 =C2=A0increases the risk of flow polarization, as less entrop= y will be
!=C2=A0 =C2=A0 available at the second stage of ECMP.

=C2=A0 =C2=A0 =C2=A0Most BGP implementations declare paths to be equal from= an ECMP
=C2=A0 =C2=A0 =C2=A0perspective if they match up to and including step (e) = in
***************
*** 1148,1154 ****
=C2=A0 =C2=A0 =C2=A0perspective of other devices, such a prefix would have = BGP paths with
=C2=A0 =C2=A0 =C2=A0different AS_PATH attribute values, while having the sa= me AS_PATH
=C2=A0 =C2=A0 =C2=A0attribute lengths.=C2=A0 Therefore, BGP implementations= must support load
!=C2=A0 =C2=A0 sharing over above-mentioned paths.=C2=A0 This feature is so= metimes known
=C2=A0 =C2=A0 =C2=A0as "multipath relax" or "multipath multi= ple-as" and effectively
=C2=A0 =C2=A0 =C2=A0allows for ECMP to be done across different neighboring= ASNs if all
=C2=A0 =C2=A0 =C2=A0other attributes are equal as already described in the = previous
--- 1148,1154 ----
=C2=A0 =C2=A0 =C2=A0perspective of other devices, such a prefix would have = BGP paths with
=C2=A0 =C2=A0 =C2=A0different AS_PATH attribute values, while having the sa= me AS_PATH
=C2=A0 =C2=A0 =C2=A0attribute lengths.=C2=A0 Therefore, BGP implementations= must support load
!=C2=A0 =C2=A0 sharing over the above-mentioned paths.=C2=A0 This feature i= s sometimes
known
=C2=A0 =C2=A0 =C2=A0as "multipath relax" or "multipath multi= ple-as" and effectively
=C2=A0 =C2=A0 =C2=A0allows for ECMP to be done across different neighboring= ASNs if all
=C2=A0 =C2=A0 =C2=A0other attributes are equal as already described in the = previous
***************
*** 1182,1199 ****

=C2=A0 =C2=A0 =C2=A0It is often desirable to have the hashing function used= for ECMP to
=C2=A0 =C2=A0 =C2=A0be consistent (see [CONS-HASH]), to minimize the impact= on flow to
!=C2=A0 =C2=A0 next-hop affinity changes when a next-hop is added or remove= d to ECMP
=C2=A0 =C2=A0 =C2=A0group.=C2=A0 This could be used if the network device i= s used as a load
=C2=A0 =C2=A0 =C2=A0balancer, mapping flows toward multiple destinations - = in this case,
!=C2=A0 =C2=A0 losing or adding a destination will not have detrimental eff= ect of
=C2=A0 =C2=A0 =C2=A0currently established flows.=C2=A0 One particular recom= mendation on
=C2=A0 =C2=A0 =C2=A0implementing consistent hashing is provided in [RFC2992= ], though
=C2=A0 =C2=A0 =C2=A0other implementations are possible.=C2=A0 This function= ality could be
=C2=A0 =C2=A0 =C2=A0naturally combined with weighted ECMP, with the impact = of the next-
=C2=A0 =C2=A0 =C2=A0hop changes being proportional to the weight of the giv= en next-hop.
=C2=A0 =C2=A0 =C2=A0The downside of consistent hashing is increased load on= hardware
!=C2=A0 =C2=A0 resource utilization, as typically more space is required to=
!=C2=A0 =C2=A0 implement a consistent-hashing region.

=C2=A0 7.=C2=A0 Routing Convergence Properties

--- 1182,1199 ----

=C2=A0 =C2=A0 =C2=A0It is often desirable to have the hashing function used= for ECMP to
=C2=A0 =C2=A0 =C2=A0be consistent (see [CONS-HASH]), to minimize the impact= on flow to
!=C2=A0 =C2=A0 next-hop affinity changes when a next-hop is added or remove= d to an
ECMP
=C2=A0 =C2=A0 =C2=A0group.=C2=A0 This could be used if the network device i= s used as a load
=C2=A0 =C2=A0 =C2=A0balancer, mapping flows toward multiple destinations - = in this case,
!=C2=A0 =C2=A0 losing or adding a destination will not have a detrimental e= ffect on
=C2=A0 =C2=A0 =C2=A0currently established flows.=C2=A0 One particular recom= mendation on
=C2=A0 =C2=A0 =C2=A0implementing consistent hashing is provided in [RFC2992= ], though
=C2=A0 =C2=A0 =C2=A0other implementations are possible.=C2=A0 This function= ality could be
=C2=A0 =C2=A0 =C2=A0naturally combined with weighted ECMP, with the impact = of the next-
=C2=A0 =C2=A0 =C2=A0hop changes being proportional to the weight of the giv= en next-hop.
=C2=A0 =C2=A0 =C2=A0The downside of consistent hashing is increased load on= hardware
!=C2=A0 =C2=A0 resource utilization, as typically more resources (e.g., TCA= M space)
!=C2=A0 =C2=A0 are required to implement a consistent-hashing function.

=C2=A0 7.=C2=A0 Routing Convergence Properties

***************
*** 1209,1224 ****
=C2=A0 =C2=A0 =C2=A0driven mechanism to obtain updates on IGP state changes= .=C2=A0 The
=C2=A0 =C2=A0 =C2=A0proposed routing design does not use an IGP, so the rem= aining
=C2=A0 =C2=A0 =C2=A0mechanisms that could be used for fault detection are B= GP keep-alive
!=C2=A0 =C2=A0 process (or any other type of keep-alive mechanism) and link= -failure
=C2=A0 =C2=A0 =C2=A0triggers.

=C2=A0 =C2=A0 =C2=A0Relying solely on BGP keep-alive packets may result in = high
!=C2=A0 =C2=A0 convergence delays, in the order of multiple seconds (on man= y BGP
=C2=A0 =C2=A0 =C2=A0implementations the minimum configurable BGP hold timer= value is
=C2=A0 =C2=A0 =C2=A0three seconds).=C2=A0 However, many BGP implementations= can shut down
=C2=A0 =C2=A0 =C2=A0local EBGP peering sessions in response to the "li= nk down" event for
=C2=A0 =C2=A0 =C2=A0the outgoing interface used for BGP peering.=C2=A0 This= feature is
!=C2=A0 =C2=A0 sometimes called as "fast fallover".=C2=A0 Since l= inks in modern data
=C2=A0 =C2=A0 =C2=A0centers are predominantly point-to-point fiber connecti= ons, a
=C2=A0 =C2=A0 =C2=A0physical interface failure is often detected in millise= conds and
=C2=A0 =C2=A0 =C2=A0subsequently triggers a BGP re-convergence.
--- 1209,1224 ----
=C2=A0 =C2=A0 =C2=A0driven mechanism to obtain updates on IGP state changes= .=C2=A0 The
=C2=A0 =C2=A0 =C2=A0proposed routing design does not use an IGP, so the rem= aining
=C2=A0 =C2=A0 =C2=A0mechanisms that could be used for fault detection are B= GP keep-alive
!=C2=A0 =C2=A0 time-out (or any other type of keep-alive mechanism) and lin= k-failure
=C2=A0 =C2=A0 =C2=A0triggers.

=C2=A0 =C2=A0 =C2=A0Relying solely on BGP keep-alive packets may result in = high
!=C2=A0 =C2=A0 convergence delays, on the order of multiple seconds (on man= y BGP
=C2=A0 =C2=A0 =C2=A0implementations the minimum configurable BGP hold timer= value is
=C2=A0 =C2=A0 =C2=A0three seconds).=C2=A0 However, many BGP implementations= can shut down
=C2=A0 =C2=A0 =C2=A0local EBGP peering sessions in response to the "li= nk down" event for
=C2=A0 =C2=A0 =C2=A0the outgoing interface used for BGP peering.=C2=A0 This= feature is
!=C2=A0 =C2=A0 sometimes called "fast fallover".=C2=A0 Since link= s in modern data
=C2=A0 =C2=A0 =C2=A0centers are predominantly point-to-point fiber connecti= ons, a
=C2=A0 =C2=A0 =C2=A0physical interface failure is often detected in millise= conds and
=C2=A0 =C2=A0 =C2=A0subsequently triggers a BGP re-convergence.
***************
*** 1236,1242 ****

=C2=A0 =C2=A0 =C2=A0Alternatively, some platforms may support Bidirectional= Forwarding
=C2=A0 =C2=A0 =C2=A0Detection (BFD) [RFC5880] to allow for sub-second failu= re detection
!=C2=A0 =C2=A0 and fault signaling to the BGP process.=C2=A0 However, use o= f either of
=C2=A0 =C2=A0 =C2=A0these presents additional requirements to vendor softwa= re and
=C2=A0 =C2=A0 =C2=A0possibly hardware, and may contradict REQ1.=C2=A0 Until= recently with
=C2=A0 =C2=A0 =C2=A0[RFC7130], BFD also did not allow detection of a single= member link
--- 1236,1242 ----

=C2=A0 =C2=A0 =C2=A0Alternatively, some platforms may support Bidirectional= Forwarding
=C2=A0 =C2=A0 =C2=A0Detection (BFD) [RFC5880] to allow for sub-second failu= re detection
!=C2=A0 =C2=A0 and fault signaling to the BGP process.=C2=A0 However, the u= se of either of
=C2=A0 =C2=A0 =C2=A0these presents additional requirements to vendor softwa= re and
=C2=A0 =C2=A0 =C2=A0possibly hardware, and may contradict REQ1.=C2=A0 Until= recently with
=C2=A0 =C2=A0 =C2=A0[RFC7130], BFD also did not allow detection of a single= member link
***************
*** 1245,1251 ****

=C2=A0 7.2.=C2=A0 Event Propagation Timing

!=C2=A0 =C2=A0 In the proposed design the impact of BGP Minimum Route Adver= tisement
=C2=A0 =C2=A0 =C2=A0Interval (MRAI) timer (See section 9.2.1.1 of [RFC4271]= ) should be
=C2=A0 =C2=A0 =C2=A0considered.=C2=A0 Per the standard it is required for B= GP implementations
=C2=A0 =C2=A0 =C2=A0to space out consecutive BGP UPDATE messages by at leas= t MRAI
--- 1245,1251 ----

=C2=A0 7.2.=C2=A0 Event Propagation Timing

!=C2=A0 =C2=A0 In the proposed design the impact of the BGP Minimum Route Advertisement
=C2=A0 =C2=A0 =C2=A0Interval (MRAI) timer (See section 9.2.1.1 of [RFC4271]= ) should be
=C2=A0 =C2=A0 =C2=A0considered.=C2=A0 Per the standard it is required for B= GP implementations
=C2=A0 =C2=A0 =C2=A0to space out consecutive BGP UPDATE messages by at leas= t MRAI
***************
*** 1258,1270 ****
=C2=A0 =C2=A0 =C2=A0In a Clos topology each EBGP speaker typically has eith= er one path
=C2=A0 =C2=A0 =C2=A0(Tier-2 devices don't accept paths from other Tier-= 2 in the same
=C2=A0 =C2=A0 =C2=A0cluster due to same ASN) or N paths for the same prefix= , where N is a
!=C2=A0 =C2=A0 significantly large number, e.g.=C2=A0 N=3D32 (the ECMP fan-= out to the next
=C2=A0 =C2=A0 =C2=A0Tier).=C2=A0 Therefore, if a link fails to another devi= ce from which a
!=C2=A0 =C2=A0 path is received there is either no backup path at all (e.g.= from
=C2=A0 =C2=A0 =C2=A0perspective of a Tier-2 switch losing link to a Tier-3 = device), or
!=C2=A0 =C2=A0 the backup is readily available in BGP Loc-RIB (e.g. from pe= rspective
=C2=A0 =C2=A0 =C2=A0of a Tier-2 device losing link to a Tier-1 switch).=C2= =A0 In the former
!=C2=A0 =C2=A0 case, the BGP withdrawal announcement will propagate un-dela= yed and
=C2=A0 =C2=A0 =C2=A0trigger re-convergence on affected devices.=C2=A0 In th= e latter case, the
=C2=A0 =C2=A0 =C2=A0best-path will be re-evaluated and the local ECMP group= corresponding
=C2=A0 =C2=A0 =C2=A0to the new next-hop set changed.=C2=A0 If the BGP path = was the best-path
--- 1258,1270 ----
=C2=A0 =C2=A0 =C2=A0In a Clos topology each EBGP speaker typically has eith= er one path
=C2=A0 =C2=A0 =C2=A0(Tier-2 devices don't accept paths from other Tier-= 2 in the same
=C2=A0 =C2=A0 =C2=A0cluster due to same ASN) or N paths for the same prefix= , where N is a
!=C2=A0 =C2=A0 significantly large number, e.g.,=C2=A0 N=3D32 (the ECMP fan= -out to the next
=C2=A0 =C2=A0 =C2=A0Tier).=C2=A0 Therefore, if a link fails to another devi= ce from which a
!=C2=A0 =C2=A0 path is received there is either no backup path at all (e.g.= , from the
=C2=A0 =C2=A0 =C2=A0perspective of a Tier-2 switch losing link to a Tier-3 = device), or
!=C2=A0 =C2=A0 the backup is readily available in BGP Loc-RIB (e.g., from p= erspective
=C2=A0 =C2=A0 =C2=A0of a Tier-2 device losing link to a Tier-1 switch).=C2= =A0 In the former
!=C2=A0 =C2=A0 case, the BGP withdrawal announcement will propagate without= delay and
=C2=A0 =C2=A0 =C2=A0trigger re-convergence on affected devices.=C2=A0 In th= e latter case, the
=C2=A0 =C2=A0 =C2=A0best-path will be re-evaluated and the local ECMP group= corresponding
=C2=A0 =C2=A0 =C2=A0to the new next-hop set changed.=C2=A0 If the BGP path = was the best-path
***************
*** 1279,1285 ****
=C2=A0 =C2=A0 =C2=A0situation when a link between Tier-3 and Tier-2 device = fails, the
=C2=A0 =C2=A0 =C2=A0Tier-2 device will send BGP UPDATE messages to all upst= ream Tier-1
=C2=A0 =C2=A0 =C2=A0devices, withdrawing the affected prefixes.=C2=A0 The T= ier-1 devices, in
!=C2=A0 =C2=A0 turn, will relay those messages to all downstream Tier-2 dev= ices
=C2=A0 =C2=A0 =C2=A0(except for the originator).=C2=A0 Tier-2 devices other= than the one
=C2=A0 =C2=A0 =C2=A0originating the UPDATE should then wait for ALL upstrea= m Tier-1

--- 1279,1285 ----
=C2=A0 =C2=A0 =C2=A0situation when a link between Tier-3 and Tier-2 device = fails, the
=C2=A0 =C2=A0 =C2=A0Tier-2 device will send BGP UPDATE messages to all upst= ream Tier-1
=C2=A0 =C2=A0 =C2=A0devices, withdrawing the affected prefixes.=C2=A0 The T= ier-1 devices, in
!=C2=A0 =C2=A0 turn, will relay these messages to all downstream Tier-2 dev= ices
=C2=A0 =C2=A0 =C2=A0(except for the originator).=C2=A0 Tier-2 devices other= than the one
=C2=A0 =C2=A0 =C2=A0originating the UPDATE should then wait for ALL upstrea= m Tier-1

***************
*** 1307,1313 ****
=C2=A0 =C2=A0 =C2=A0features that vendors include to reduce the control pla= ne impact of
=C2=A0 =C2=A0 =C2=A0rapidly flapping prefixes.=C2=A0 However, due to issues= described with
=C2=A0 =C2=A0 =C2=A0false positives in these implementations especially und= er such
!=C2=A0 =C2=A0 "dispersion" events, it is not recommended to turn= this feature on in
=C2=A0 =C2=A0 =C2=A0this design.=C2=A0 More background and issues with &quo= t;route flap dampening"
=C2=A0 =C2=A0 =C2=A0and possible implementation changes that could affect t= his are well
=C2=A0 =C2=A0 =C2=A0described in [RFC7196].
--- 1307,1313 ----
=C2=A0 =C2=A0 =C2=A0features that vendors include to reduce the control pla= ne impact of
=C2=A0 =C2=A0 =C2=A0rapidly flapping prefixes.=C2=A0 However, due to issues= described with
=C2=A0 =C2=A0 =C2=A0false positives in these implementations especially und= er such
!=C2=A0 =C2=A0 "dispersion" events, it is not recommended to enab= le this feature in
=C2=A0 =C2=A0 =C2=A0this design.=C2=A0 More background and issues with &quo= t;route flap dampening"
=C2=A0 =C2=A0 =C2=A0and possible implementation changes that could affect t= his are well
=C2=A0 =C2=A0 =C2=A0described in [RFC7196].
***************
*** 1316,1324 ****

=C2=A0 =C2=A0 =C2=A0A network is declared to converge in response to a fail= ure once all
=C2=A0 =C2=A0 =C2=A0devices within the failure impact scope are notified of= the event and
!=C2=A0 =C2=A0 have re-calculated their RIB's and consequently updated = their FIB's.
=C2=A0 =C2=A0 =C2=A0Larger failure impact scope typically means slower conv= ergence since
!=C2=A0 =C2=A0 more devices have to be notified, and additionally results i= n a less
=C2=A0 =C2=A0 =C2=A0stable network.=C2=A0 In this section we describe BGP&#= 39;s advantages over
=C2=A0 =C2=A0 =C2=A0link-state routing protocols in reducing failure impact= scope for a
=C2=A0 =C2=A0 =C2=A0Clos topology.
--- 1316,1324 ----

=C2=A0 =C2=A0 =C2=A0A network is declared to converge in response to a fail= ure once all
=C2=A0 =C2=A0 =C2=A0devices within the failure impact scope are notified of= the event and
!=C2=A0 =C2=A0 have re-calculated their RIBs and consequently updated their= FIBs.
=C2=A0 =C2=A0 =C2=A0Larger failure impact scope typically means slower conv= ergence since
!=C2=A0 =C2=A0 more devices have to be notified, and results in a less
=C2=A0 =C2=A0 =C2=A0stable network.=C2=A0 In this section we describe BGP&#= 39;s advantages over
=C2=A0 =C2=A0 =C2=A0link-state routing protocols in reducing failure impact= scope for a
=C2=A0 =C2=A0 =C2=A0Clos topology.
***************
*** 1327,1335 ****
=C2=A0 =C2=A0 =C2=A0the best path from the point of view of the local route= r is sent to
=C2=A0 =C2=A0 =C2=A0neighbors.=C2=A0 As such, some failures are masked if t= he local node can
=C2=A0 =C2=A0 =C2=A0immediately find a backup path and does not have to sen= d any updates
!=C2=A0 =C2=A0 further.=C2=A0 Notice that in the worst case ALL devices in = a data center
=C2=A0 =C2=A0 =C2=A0topology have to either withdraw a prefix completely or= update the
!=C2=A0 =C2=A0 ECMP groups in the FIB.=C2=A0 However, many failures will no= t result in
=C2=A0 =C2=A0 =C2=A0such a wide impact.=C2=A0 There are two main failure ty= pes where impact
=C2=A0 =C2=A0 =C2=A0scope is reduced:

--- 1327,1335 ----
=C2=A0 =C2=A0 =C2=A0the best path from the point of view of the local route= r is sent to
=C2=A0 =C2=A0 =C2=A0neighbors.=C2=A0 As such, some failures are masked if t= he local node can
=C2=A0 =C2=A0 =C2=A0immediately find a backup path and does not have to sen= d any updates
!=C2=A0 =C2=A0 further.=C2=A0 Notice that in the worst case, all devices in= a data center
=C2=A0 =C2=A0 =C2=A0topology have to either withdraw a prefix completely or= update the
!=C2=A0 =C2=A0 ECMP groups in their FIBs.=C2=A0 However, many failures will= not result in
=C2=A0 =C2=A0 =C2=A0such a wide impact.=C2=A0 There are two main failure ty= pes where impact
=C2=A0 =C2=A0 =C2=A0scope is reduced:

***************
*** 1357,1367 ****

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Failure of a Tier-1 device: In this case, all T= ier-2 devices
=C2=A0 =C2=A0 =C2=A0 =C2=A0 directly attached to the failed node will have = to update their
!=C2=A0 =C2=A0 =C2=A0 =C2=A0ECMP groups for all IP prefixes from non-local = cluster.=C2=A0 The
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Tier-3 devices are once again not involved in t= he re-convergence
=C2=A0 =C2=A0 =C2=A0 =C2=A0 process, but may receive "implicit withdra= ws" as described above.

!=C2=A0 =C2=A0 Even though in case of such failures multiple IP prefixes wi= ll have
=C2=A0 =C2=A0 =C2=A0to be reprogrammed in the FIB, it is worth noting that = ALL of these
=C2=A0 =C2=A0 =C2=A0prefixes share a single ECMP group on Tier-2 device.=C2= =A0 Therefore, in
=C2=A0 =C2=A0 =C2=A0the case of implementations with a hierarchical FIB, on= ly a single
--- 1357,1367 ----

=C2=A0 =C2=A0 =C2=A0o=C2=A0 Failure of a Tier-1 device: In this case, all T= ier-2 devices
=C2=A0 =C2=A0 =C2=A0 =C2=A0 directly attached to the failed node will have = to update their
!=C2=A0 =C2=A0 =C2=A0 =C2=A0ECMP groups for all IP prefixes from a non-loca= l cluster.=C2=A0 The
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Tier-3 devices are once again not involved in t= he re-convergence
=C2=A0 =C2=A0 =C2=A0 =C2=A0 process, but may receive "implicit withdra= ws" as described above.

!=C2=A0 =C2=A0 Even in the case of such failures, multiple IP prefixes will= have
=C2=A0 =C2=A0 =C2=A0to be reprogrammed in the FIB, it is worth noting that = ALL of these
=C2=A0 =C2=A0 =C2=A0prefixes share a single ECMP group on Tier-2 device.=C2= =A0 Therefore, in
=C2=A0 =C2=A0 =C2=A0the case of implementations with a hierarchical FIB, on= ly a single
***************
*** 1375,1381 ****
=C2=A0 =C2=A0 =C2=A0possible with the proposed design, since using this tec= hnique may
=C2=A0 =C2=A0 =C2=A0create routing black-holes as mentioned previously.=C2= =A0 Therefore, the
=C2=A0 =C2=A0 =C2=A0worst control plane failure impact scope is the network= as a whole,
!=C2=A0 =C2=A0 for instance in a case of a link failure between Tier-2 and = Tier-3
=C2=A0 =C2=A0 =C2=A0devices.=C2=A0 The amount of impacted prefixes in this = case would be much
=C2=A0 =C2=A0 =C2=A0less than in the case of a failure in the upper layers = of a Clos
=C2=A0 =C2=A0 =C2=A0network topology.=C2=A0 The property of having such lar= ge failure scope is
--- 1375,1381 ----
=C2=A0 =C2=A0 =C2=A0possible with the proposed design, since using this tec= hnique may
=C2=A0 =C2=A0 =C2=A0create routing black-holes as mentioned previously.=C2= =A0 Therefore, the
=C2=A0 =C2=A0 =C2=A0worst control plane failure impact scope is the network= as a whole,
!=C2=A0 =C2=A0 for instance in thecase of a link failure between Tier-2 and= Tier-3
=C2=A0 =C2=A0 =C2=A0devices.=C2=A0 The amount of impacted prefixes in this = case would be much
=C2=A0 =C2=A0 =C2=A0less than in the case of a failure in the upper layers = of a Clos
=C2=A0 =C2=A0 =C2=A0network topology.=C2=A0 The property of having such lar= ge failure scope is
***************
*** 1384,1397 ****

=C2=A0 7.5.=C2=A0 Routing Micro-Loops

!=C2=A0 =C2=A0 When a downstream device, e.g.=C2=A0 Tier-2 device, loses al= l paths for a
=C2=A0 =C2=A0 =C2=A0prefix, it normally has the default route pointing towa= rd the
=C2=A0 =C2=A0 =C2=A0upstream device, in this case the Tier-1 device.=C2=A0 = As a result, it is
!=C2=A0 =C2=A0 possible to get in the situation when Tier-2 switch loses a = prefix,
!=C2=A0 =C2=A0 but Tier-1 switch still has the path pointing to the Tier-2 = device,
!=C2=A0 =C2=A0 which results in transient micro-loop, since Tier-1 switch w= ill keep
=C2=A0 =C2=A0 =C2=A0passing packets to the affected prefix back to Tier-2 d= evice, and
!=C2=A0 =C2=A0 Tier-2 will bounce it back again using the default route.=C2= =A0 This
=C2=A0 =C2=A0 =C2=A0micro-loop will last for the duration of time it takes = the upstream
=C2=A0 =C2=A0 =C2=A0device to fully update its forwarding tables.

--- 1384,1397 ----

=C2=A0 7.5.=C2=A0 Routing Micro-Loops

!=C2=A0 =C2=A0 When a downstream device, e.g.,=C2=A0 Tier-2 device, loses a= ll paths for a
=C2=A0 =C2=A0 =C2=A0prefix, it normally has the default route pointing towa= rd the
=C2=A0 =C2=A0 =C2=A0upstream device, in this case the Tier-1 device.=C2=A0 = As a result, it is
!=C2=A0 =C2=A0 possible to get in the situation where a Tier-2 switch loses= a prefix,
!=C2=A0 =C2=A0 but a Tier-1 switch still has the path pointing to the Tier-= 2 device,
!=C2=A0 =C2=A0 which results in transient micro-loop, since the Tier-1 swit= ch will
keep
=C2=A0 =C2=A0 =C2=A0passing packets to the affected prefix back to Tier-2 d= evice, and
!=C2=A0 =C2=A0 the Tier-2 will bounce it back again using the default route= .=C2=A0 This
=C2=A0 =C2=A0 =C2=A0micro-loop will last for the duration of time it takes = the upstream
=C2=A0 =C2=A0 =C2=A0device to fully update its forwarding tables.

***************
*** 1402,1408 ****
=C2=A0 Internet-Draft=C2=A0 =C2=A0 draft-ietf-rtgwg-bgp-routing-large-dc=C2= =A0 =C2=A0 =C2=A0 =C2=A0March 2016


!=C2=A0 =C2=A0 To minimize impact of the micro-loops, Tier-2 and Tier-1 swi= tches can
=C2=A0 =C2=A0 =C2=A0be configured with static "discard" or "= null" routes that will be
=C2=A0 =C2=A0 =C2=A0more specific than the default route for prefixes missi= ng during
=C2=A0 =C2=A0 =C2=A0network convergence.=C2=A0 For Tier-2 switches, the dis= card route should
--- 1402,1408 ----
=C2=A0 Internet-Draft=C2=A0 =C2=A0 draft-ietf-rtgwg-bgp-routing-large-dc=C2= =A0 =C2=A0 =C2=A0 =C2=A0March 2016


!=C2=A0 =C2=A0 To minimize the impact of such micro-loops, Tier-2 and Tier-= 1
switches can
=C2=A0 =C2=A0 =C2=A0be configured with static "discard" or "= null" routes that will be
=C2=A0 =C2=A0 =C2=A0more specific than the default route for prefixes missi= ng during
=C2=A0 =C2=A0 =C2=A0network convergence.=C2=A0 For Tier-2 switches, the dis= card route should
***************
*** 1417,1423 ****

=C2=A0 8.1.=C2=A0 Third-party Route Injection

!=C2=A0 =C2=A0 BGP allows for a "third-party", i.e. directly atta= ched, BGP speaker
=C2=A0 =C2=A0 =C2=A0to inject routes anywhere in the network topology, meet= ing REQ5.
=C2=A0 =C2=A0 =C2=A0This can be achieved by peering via a multihop BGP sess= ion with some
=C2=A0 =C2=A0 =C2=A0or even all devices in the topology.=C2=A0 Furthermore,= BGP diverse path
--- 1417,1423 ----

=C2=A0 8.1.=C2=A0 Third-party Route Injection

!=C2=A0 =C2=A0 BGP allows for a "third-party", i.e., directly att= ached, BGP speaker
=C2=A0 =C2=A0 =C2=A0to inject routes anywhere in the network topology, meet= ing REQ5.
=C2=A0 =C2=A0 =C2=A0This can be achieved by peering via a multihop BGP sess= ion with some
=C2=A0 =C2=A0 =C2=A0or even all devices in the topology.=C2=A0 Furthermore,= BGP diverse path
***************
*** 1427,1433 ****
=C2=A0 =C2=A0 =C2=A0implementation.=C2=A0 Unfortunately, in many implementa= tions ADD-PATH has
=C2=A0 =C2=A0 =C2=A0been found to only support IBGP properly due to the use= cases it was
=C2=A0 =C2=A0 =C2=A0originally optimized for, which limits the "third-= party" peering to
!=C2=A0 =C2=A0 IBGP only, if the feature is used.

=C2=A0 =C2=A0 =C2=A0To implement route injection in the proposed design, a = third-party
=C2=A0 =C2=A0 =C2=A0BGP speaker may peer with Tier-3 and Tier-1 switches, i= njecting the
--- 1427,1433 ----
=C2=A0 =C2=A0 =C2=A0implementation.=C2=A0 Unfortunately, in many implementa= tions ADD-PATH has
=C2=A0 =C2=A0 =C2=A0been found to only support IBGP properly due to the use= cases it was
=C2=A0 =C2=A0 =C2=A0originally optimized for, which limits the "third-= party" peering to
!=C2=A0 =C2=A0 IBGP only.

=C2=A0 =C2=A0 =C2=A0To implement route injection in the proposed design, a = third-party
=C2=A0 =C2=A0 =C2=A0BGP speaker may peer with Tier-3 and Tier-1 switches, i= njecting the
***************
*** 1442,1453 ****
=C2=A0 =C2=A0 =C2=A0As mentioned previously, route summarization is not pos= sible within
=C2=A0 =C2=A0 =C2=A0the proposed Clos topology since it makes the network s= usceptible to
=C2=A0 =C2=A0 =C2=A0route black-holing under single link failures.=C2=A0 Th= e main problem is
!=C2=A0 =C2=A0 the limited number of redundant paths between network elemen= ts, e.g.
=C2=A0 =C2=A0 =C2=A0there is only a single path between any pair of Tier-1 = and Tier-3
=C2=A0 =C2=A0 =C2=A0devices.=C2=A0 However, some operators may find route a= ggregation
=C2=A0 =C2=A0 =C2=A0desirable to improve control plane stability.

!=C2=A0 =C2=A0 If planning on using any technique to summarize within the t= opology
=C2=A0 =C2=A0 =C2=A0modeling of the routing behavior and potential for blac= k-holing
=C2=A0 =C2=A0 =C2=A0should be done not only for single or multiple link fai= lures, but

--- 1442,1453 ----
=C2=A0 =C2=A0 =C2=A0As mentioned previously, route summarization is not pos= sible within
=C2=A0 =C2=A0 =C2=A0the proposed Clos topology since it makes the network s= usceptible to
=C2=A0 =C2=A0 =C2=A0route black-holing under single link failures.=C2=A0 Th= e main problem is
!=C2=A0 =C2=A0 the limited number of redundant paths between network elemen= ts, e.g.,
=C2=A0 =C2=A0 =C2=A0there is only a single path between any pair of Tier-1 = and Tier-3
=C2=A0 =C2=A0 =C2=A0devices.=C2=A0 However, some operators may find route a= ggregation
=C2=A0 =C2=A0 =C2=A0desirable to improve control plane stability.

!=C2=A0 =C2=A0 If any technique to summarize within the topology is planned= ,
=C2=A0 =C2=A0 =C2=A0modeling of the routing behavior and potential for blac= k-holing
=C2=A0 =C2=A0 =C2=A0should be done not only for single or multiple link fai= lures, but

***************
*** 1458,1468 ****
=C2=A0 Internet-Draft=C2=A0 =C2=A0 draft-ietf-rtgwg-bgp-routing-large-dc=C2= =A0 =C2=A0 =C2=A0 =C2=A0March 2016


!=C2=A0 =C2=A0 also fiber pathway failures or optical domain failures if th= e
=C2=A0 =C2=A0 =C2=A0topology extends beyond a physical location.=C2=A0 Simp= le modeling can be
=C2=A0 =C2=A0 =C2=A0done by checking the reachability on devices doing summ= arization
=C2=A0 =C2=A0 =C2=A0under the condition of a link or pathway failure betwee= n a set of
!=C2=A0 =C2=A0 devices in every tier as well as to the WAN routers if exter= nal
=C2=A0 =C2=A0 =C2=A0connectivity is present.

=C2=A0 =C2=A0 =C2=A0Route summarization would be possible with a small modi= fication to
--- 1458,1468 ----
=C2=A0 Internet-Draft=C2=A0 =C2=A0 draft-ietf-rtgwg-bgp-routing-large-dc=C2= =A0 =C2=A0 =C2=A0 =C2=A0March 2016


!=C2=A0 =C2=A0 also fiber pathway failures or optical domain failures when = the
=C2=A0 =C2=A0 =C2=A0topology extends beyond a physical location.=C2=A0 Simp= le modeling can be
=C2=A0 =C2=A0 =C2=A0done by checking the reachability on devices doing summ= arization
=C2=A0 =C2=A0 =C2=A0under the condition of a link or pathway failure betwee= n a set of
!=C2=A0 =C2=A0 devices in every tier as well as to the WAN routers when ext= ernal
=C2=A0 =C2=A0 =C2=A0connectivity is present.

=C2=A0 =C2=A0 =C2=A0Route summarization would be possible with a small modi= fication to
***************
*** 1519,1544 ****
=C2=A0 =C2=A0 =C2=A0cluster from Tier-2 devices since each of them has only= a single path
=C2=A0 =C2=A0 =C2=A0down to this prefix.=C2=A0 It would require dual-homed = servers to
=C2=A0 =C2=A0 =C2=A0accomplish that.=C2=A0 Also note that this design is on= ly resilient to
!=C2=A0 =C2=A0 single link failure.=C2=A0 It is possible for a double link = failure to
=C2=A0 =C2=A0 =C2=A0isolate a Tier-2 device from all paths toward a specifi= c Tier-3
=C2=A0 =C2=A0 =C2=A0device, thus causing a routing black-hole.

!=C2=A0 =C2=A0 A result of the proposed topology modification would be redu= ction of
=C2=A0 =C2=A0 =C2=A0Tier-1 devices port capacity.=C2=A0 This limits the max= imum number of
=C2=A0 =C2=A0 =C2=A0attached Tier-2 devices and therefore will limit the ma= ximum DC
=C2=A0 =C2=A0 =C2=A0network size.=C2=A0 A larger network would require diff= erent Tier-1
=C2=A0 =C2=A0 =C2=A0devices that have higher port density to implement this= change.

=C2=A0 =C2=A0 =C2=A0Another problem is traffic re-balancing under link fail= ures.=C2=A0 Since
!=C2=A0 =C2=A0 three are two paths from Tier-1 to Tier-3, a failure of the = link
=C2=A0 =C2=A0 =C2=A0between Tier-1 and Tier-2 switch would result in all tr= affic that was
=C2=A0 =C2=A0 =C2=A0taking the failed link to switch to the remaining path.= =C2=A0 This will
!=C2=A0 =C2=A0 result in doubling of link utilization on the remaining link= .

=C2=A0 8.2.2.=C2=A0 Simple Virtual Aggregation

=C2=A0 =C2=A0 =C2=A0A completely different approach to route summarization = is possible,
!=C2=A0 =C2=A0 provided that the main goal is to reduce the FIB pressure, w= hile
=C2=A0 =C2=A0 =C2=A0allowing the control plane to disseminate full routing = information.
=C2=A0 =C2=A0 =C2=A0Firstly, it could be easily noted that in many cases mu= ltiple
=C2=A0 =C2=A0 =C2=A0prefixes, some of which are less specific, share the sa= me set of the
--- 1519,1544 ----
=C2=A0 =C2=A0 =C2=A0cluster from Tier-2 devices since each of them has only= a single path
=C2=A0 =C2=A0 =C2=A0down to this prefix.=C2=A0 It would require dual-homed = servers to
=C2=A0 =C2=A0 =C2=A0accomplish that.=C2=A0 Also note that this design is on= ly resilient to
!=C2=A0 =C2=A0 single link failures.=C2=A0 It is possible for a double link= failure to
=C2=A0 =C2=A0 =C2=A0isolate a Tier-2 device from all paths toward a specifi= c Tier-3
=C2=A0 =C2=A0 =C2=A0device, thus causing a routing black-hole.

!=C2=A0 =C2=A0 A result of the proposed topology modification would be a re= duction of
=C2=A0 =C2=A0 =C2=A0Tier-1 devices port capacity.=C2=A0 This limits the max= imum number of
=C2=A0 =C2=A0 =C2=A0attached Tier-2 devices and therefore will limit the ma= ximum DC
=C2=A0 =C2=A0 =C2=A0network size.=C2=A0 A larger network would require diff= erent Tier-1
=C2=A0 =C2=A0 =C2=A0devices that have higher port density to implement this= change.

=C2=A0 =C2=A0 =C2=A0Another problem is traffic re-balancing under link fail= ures.=C2=A0 Since
!=C2=A0 =C2=A0 there are two paths from Tier-1 to Tier-3, a failure of the = link
=C2=A0 =C2=A0 =C2=A0between Tier-1 and Tier-2 switch would result in all tr= affic that was
=C2=A0 =C2=A0 =C2=A0taking the failed link to switch to the remaining path.= =C2=A0 This will
!=C2=A0 =C2=A0 result in doubling the link utilization of the remaining lin= k.

=C2=A0 8.2.2.=C2=A0 Simple Virtual Aggregation

=C2=A0 =C2=A0 =C2=A0A completely different approach to route summarization = is possible,
!=C2=A0 =C2=A0 provided that the main goal is to reduce the FIB size, while=
=C2=A0 =C2=A0 =C2=A0allowing the control plane to disseminate full routing = information.
=C2=A0 =C2=A0 =C2=A0Firstly, it could be easily noted that in many cases mu= ltiple
=C2=A0 =C2=A0 =C2=A0prefixes, some of which are less specific, share the sa= me set of the
***************
*** 1550,1563 ****
=C2=A0 =C2=A0 =C2=A0[RFC6769] and only install the least specific route in = the FIB,
=C2=A0 =C2=A0 =C2=A0ignoring more specific routes if they share the same ne= xt-hop set.
=C2=A0 =C2=A0 =C2=A0For example, under normal network conditions, only the = default route
!=C2=A0 =C2=A0 need to be programmed into FIB.

=C2=A0 =C2=A0 =C2=A0Furthermore, if the Tier-2 devices are configured with = summary
!=C2=A0 =C2=A0 prefixes covering all of their attached Tier-3 device's = prefixes the
=C2=A0 =C2=A0 =C2=A0same logic could be applied in Tier-1 devices as well, = and, by
=C2=A0 =C2=A0 =C2=A0induction to Tier-2/Tier-3 switches in different cluste= rs.=C2=A0 These
=C2=A0 =C2=A0 =C2=A0summary routes should still allow for more specific pre= fixes to leak
!=C2=A0 =C2=A0 to Tier-1 devices, to enable for detection of mismatches in = the next-
=C2=A0 =C2=A0 =C2=A0hop sets if a particular link fails, changing the next-= hop set for a
=C2=A0 =C2=A0 =C2=A0specific prefix.

--- 1550,1563 ----
=C2=A0 =C2=A0 =C2=A0[RFC6769] and only install the least specific route in = the FIB,
=C2=A0 =C2=A0 =C2=A0ignoring more specific routes if they share the same ne= xt-hop set.
=C2=A0 =C2=A0 =C2=A0For example, under normal network conditions, only the = default route
!=C2=A0 =C2=A0 needs to be programmed into FIB.

=C2=A0 =C2=A0 =C2=A0Furthermore, if the Tier-2 devices are configured with = summary
!=C2=A0 =C2=A0 prefixes covering all of their attached Tier-3 device's = prefixes, the
=C2=A0 =C2=A0 =C2=A0same logic could be applied in Tier-1 devices as well, = and, by
=C2=A0 =C2=A0 =C2=A0induction to Tier-2/Tier-3 switches in different cluste= rs.=C2=A0 These
=C2=A0 =C2=A0 =C2=A0summary routes should still allow for more specific pre= fixes to leak
!=C2=A0 =C2=A0 to Tier-1 devices, to enable detection of mismatches in the = next-
=C2=A0 =C2=A0 =C2=A0hop sets if a particular link fails, changing the next-= hop set for a
=C2=A0 =C2=A0 =C2=A0specific prefix.

***************
*** 1571,1584 ****


=C2=A0 =C2=A0 =C2=A0Re-stating once again, this technique does not reduce t= he amount of
!=C2=A0 =C2=A0 control plane state (i.e.=C2=A0 BGP UPDATEs/BGP LocRIB sizin= g), but only
!=C2=A0 =C2=A0 allows for more efficient FIB utilization, by spotting more = specific
!=C2=A0 =C2=A0 prefixes that share their next-hops with less specifics.

=C2=A0 8.3.=C2=A0 ICMP Unreachable Message Masquerading

=C2=A0 =C2=A0 =C2=A0This section discusses some operational aspects of not = advertising
!=C2=A0 =C2=A0 point-to-point link subnets into BGP, as previously outlined= as an
=C2=A0 =C2=A0 =C2=A0option in Section 5.2.3.=C2=A0 The operational impact o= f this decision
=C2=A0 =C2=A0 =C2=A0could be seen when using the well-known "tracerout= e" tool.
=C2=A0 =C2=A0 =C2=A0Specifically, IP addresses displayed by the tool will b= e the link's
--- 1571,1585 ----


=C2=A0 =C2=A0 =C2=A0Re-stating once again, this technique does not reduce t= he amount of
!=C2=A0 =C2=A0 control plane state (i.e.,=C2=A0 BGP UPDATEs/BGP Loc-RIB siz= e), but only
!=C2=A0 =C2=A0 allows for more efficient FIB utilization, by detecting more= specific
!=C2=A0 =C2=A0 prefixes that share their next-hop set with a subsuming less= specific
!=C2=A0 =C2=A0 prefix.

=C2=A0 8.3.=C2=A0 ICMP Unreachable Message Masquerading

=C2=A0 =C2=A0 =C2=A0This section discusses some operational aspects of not = advertising
!=C2=A0 =C2=A0 point-to-point link subnets into BGP, as previously identifi= ed as an
=C2=A0 =C2=A0 =C2=A0option in Section 5.2.3.=C2=A0 The operational impact o= f this decision
=C2=A0 =C2=A0 =C2=A0could be seen when using the well-known "tracerout= e" tool.
=C2=A0 =C2=A0 =C2=A0Specifically, IP addresses displayed by the tool will b= e the link's
***************
*** 1587,1605 ****
=C2=A0 =C2=A0 =C2=A0complicated.

=C2=A0 =C2=A0 =C2=A0One way to overcome this limitation is by using the DNS= subsystem to
!=C2=A0 =C2=A0 create the "reverse" entries for the IP addresses = of the same device
!=C2=A0 =C2=A0 pointing to the same name.=C2=A0 The connectivity then can b= e made by
!=C2=A0 =C2=A0 resolving this name to the "primary" IP address of= the devices, e.g.
=C2=A0 =C2=A0 =C2=A0its Loopback interface, which is always advertised into= BGP.
=C2=A0 =C2=A0 =C2=A0However, this creates a dependency on the DNS subsystem= , which may be
=C2=A0 =C2=A0 =C2=A0unavailable during an outage.

=C2=A0 =C2=A0 =C2=A0Another option is to make the network device perform IP= address
=C2=A0 =C2=A0 =C2=A0masquerading, that is rewriting the source IP addresses= of the
!=C2=A0 =C2=A0 appropriate ICMP messages sent off of the device with the &q= uot;primary"
=C2=A0 =C2=A0 =C2=A0IP address of the device.=C2=A0 Specifically, the ICMP = Destination
=C2=A0 =C2=A0 =C2=A0Unreachable Message (type 3) codes 3 (port unreachable)= and ICMP Time
!=C2=A0 =C2=A0 Exceeded (type 11) code 0, which are involved in proper work= ing of
=C2=A0 =C2=A0 =C2=A0the "traceroute" tool.=C2=A0 With this modifi= cation, the "traceroute"
=C2=A0 =C2=A0 =C2=A0probes sent to the devices will always be sent back wit= h the
=C2=A0 =C2=A0 =C2=A0"primary" IP address as the source, allowing = the operator to discover
--- 1588,1606 ----
=C2=A0 =C2=A0 =C2=A0complicated.

=C2=A0 =C2=A0 =C2=A0One way to overcome this limitation is by using the DNS= subsystem to
!=C2=A0 =C2=A0 create the "reverse" entries for these point-to-po= int IP addresses
pointing
!=C2=A0 =C2=A0 to a the same name as the loopback address.=C2=A0 The connec= tivity then
can be made by
!=C2=A0 =C2=A0 resolving this name to the "primary" IP address of= the devices, e.g.,
=C2=A0 =C2=A0 =C2=A0its Loopback interface, which is always advertised into= BGP.
=C2=A0 =C2=A0 =C2=A0However, this creates a dependency on the DNS subsystem= , which may be
=C2=A0 =C2=A0 =C2=A0unavailable during an outage.

=C2=A0 =C2=A0 =C2=A0Another option is to make the network device perform IP= address
=C2=A0 =C2=A0 =C2=A0masquerading, that is rewriting the source IP addresses= of the
!=C2=A0 =C2=A0 appropriate ICMP messages sent by the device with the "= primary"
=C2=A0 =C2=A0 =C2=A0IP address of the device.=C2=A0 Specifically, the ICMP = Destination
=C2=A0 =C2=A0 =C2=A0Unreachable Message (type 3) codes 3 (port unreachable)= and ICMP Time
!=C2=A0 =C2=A0 Exceeded (type 11) code 0, which are required for correct op= eration of
=C2=A0 =C2=A0 =C2=A0the "traceroute" tool.=C2=A0 With this modifi= cation, the "traceroute"
=C2=A0 =C2=A0 =C2=A0probes sent to the devices will always be sent back wit= h the
=C2=A0 =C2=A0 =C2=A0"primary" IP address as the source, allowing = the operator to discover

Thanks,
Acee

_______________________________________________
rtgwg mailing list
rtgwg@ietf.org
https://www.ietf.org/mailman/listinfo/rtgwg

--001a1141b26696bc01053153cfed-- From nobody Mon Apr 25 12:14:34 2016 Return-Path: X-Original-To: rtg-dir@ietfa.amsl.com Delivered-To: rtg-dir@ietfa.amsl.com Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7F8F912D670; Mon, 25 Apr 2016 12:14:30 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -0.731 X-Spam-Level: X-Spam-Status: No, score=-0.731 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fb.com Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ys3XSymorVre; Mon, 25 Apr 2016 12:14:23 -0700 (PDT) Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 342AF12D6AD; Mon, 25 Apr 2016 12:14:23 -0700 (PDT) Received: from pps.filterd (m0044008.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u3PJAUqc029913; Mon, 25 Apr 2016 12:14:21 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=facebook; bh=/SsuOCag4xOtH2fdJLRjS/Jl8O9eeTBuopl/LPrnoHs=; b=iG0ab6VzhlSjcbE4SLQWqDDLoAwdG/YARXxvA8hSFNFXg2lijy+xkVr7c2T/RBS3DWnp z5DCJXvdMKuiJjA91TGd4G+aTN8gYtovHDmLMuqrtF/4Om0aHvG8VXZYp3hoxDrwJAfv w0m4AHINwsQQMepyNEjI65ucWTluKNjADik= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 22hqj88ut0-1 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NOT); Mon, 25 Apr 2016 12:14:20 -0700 Received: from PRN-CHUB17.TheFacebook.com (192.168.16.71) by PRN-CHUB15.TheFacebook.com (192.168.16.65) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 25 Apr 2016 12:14:20 -0700 Received: from PRN-MBX01-2.TheFacebook.com ([169.254.3.168]) by PRN-CHUB17.TheFacebook.com ([fe80::5055:beda:4388:976f%13]) with mapi id 14.03.0248.002; Mon, 25 Apr 2016 12:14:19 -0700 From: Petr Lapukhov To: Alia Atlas , "Acee Lindem (acee)" Thread-Topic: Routing Directorate Review for "Use of BGP for routing in large-scale data centers" (adding RTG WG) Thread-Index: AQHRnxYlQYfeCPyXgkGAG4vr+m6GrZ+bgQ4A//+Nx4c= Date: Mon, 25 Apr 2016 19:14:18 +0000 Message-ID: <3F437107848A5140A6A19222EFFB34812015BB92@PRN-MBX01-2.TheFacebook.com> References: , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [192.168.52.123] Content-Type: multipart/alternative; boundary="_000_3F437107848A5140A6A19222EFFB34812015BB92PRNMBX012TheFac_" MIME-Version: 1.0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-04-25_09:, , signatures=0 Archived-At: Cc: "draft-ietf-rtgwg-bgp-routing-large-dc@ietf.org" , Routing ADs , Routing Directorate , Routing WG Subject: Re: [RTG-DIR] Routing Directorate Review for "Use of BGP for routing in large-scale data centers" (adding RTG WG) X-BeenThere: rtg-dir@ietf.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Routing Area Directorate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Apr 2016 19:14:30 -0000 --_000_3F437107848A5140A6A19222EFFB34812015BB92PRNMBX012TheFac_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWNlc3MsIHRoYW5rIHlvdSBzbyBtdWNoIGZvciBmaW5pc2hpbmcgdGhlIHJldmlldyENCg0KQWxp YSwgd2UnbGwgd29yayBvbiBhZGRyZXNzaW5nIHRoZSBmZWVkYmFjayBBU0FQLg0KDQpSZWdhcmRz LA0KDQpQZXRyDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpGcm9tOiBydGd3 ZyBbcnRnd2ctYm91bmNlc0BpZXRmLm9yZ10gb24gYmVoYWxmIG9mIEFsaWEgQXRsYXMgW2FrYXRs YXNAZ21haWwuY29tXQ0KU2VudDogTW9uZGF5LCBBcHJpbCAyNSwgMjAxNiAxMjowMSBQTQ0KVG86 IEFjZWUgTGluZGVtIChhY2VlKQ0KQ2M6IGRyYWZ0LWlldGYtcnRnd2ctYmdwLXJvdXRpbmctbGFy Z2UtZGNAaWV0Zi5vcmc7IFJvdXRpbmcgV0c7IFJvdXRpbmcgRGlyZWN0b3JhdGU7IFJvdXRpbmcg QURzDQpTdWJqZWN0OiBSZTogUm91dGluZyBEaXJlY3RvcmF0ZSBSZXZpZXcgZm9yICJVc2Ugb2Yg QkdQIGZvciByb3V0aW5nIGluIGxhcmdlLXNjYWxlIGRhdGEgY2VudGVycyIgKGFkZGluZyBSVEcg V0cpDQoNCkhpIEFjZWUsDQoNClRoYW5rIHlvdSB2ZXJ5IG11Y2ggZm9yIHlvdXIgcmV2aWV3Lg0K DQpBdXRob3JzLCBjb3VsZCB5b3UgcGxlYXNlIHJlc3BvbmQgc29vbj8gIEkgYW0gaG9waW5nIHRv IGdldCB0aGlzIG91dCB0byBJRVRGIExhc3QgQ2FsbA0KYnkgVGh1cnNkYXkgLSBhbmQgb24gdGhl IHRlbGVjaGF0IGZvciBNYXkgMTkuICAgIFRoYXQgZGVwZW5kcyBvbiB0aW1lbHkgdXBkYXRlcyBm cm9tDQp0aGUgYXV0aG9ycyBhbmQgc2hlcGhlcmQuDQoNClRoYW5rcywNCkFsaWENCg0KDQoNCk9u IE1vbiwgQXByIDI1LCAyMDE2IGF0IDE6MTYgUE0sIEFjZWUgTGluZGVtIChhY2VlKSA8YWNlZUBj aXNjby5jb208bWFpbHRvOmFjZWVAY2lzY28uY29tPj4gd3JvdGU6DQpIZWxsbywNCg0KSSBoYXZl IGJlZW4gc2VsZWN0ZWQgYXMgdGhlIFJvdXRpbmcgRGlyZWN0b3JhdGUgcmV2aWV3ZXIgZm9yIHRo aXMgZHJhZnQuDQpUaGUgUm91dGluZyBEaXJlY3RvcmF0ZSBzZWVrcyB0byByZXZpZXcgYWxsIHJv dXRpbmcgb3Igcm91dGluZy1yZWxhdGVkDQpkcmFmdHMgYXMgdGhleSBwYXNzIHRocm91Z2ggSUVU RiBsYXN0IGNhbGwgYW5kIElFU0cgcmV2aWV3LCBhbmQgc29tZXRpbWVzDQpvbiBzcGVjaWFsIHJl cXVlc3QuIFRoZSBwdXJwb3NlIG9mIHRoZSByZXZpZXcgaXMgdG8gcHJvdmlkZSBhc3Npc3RhbmNl IHRvDQp0aGUgUm91dGluZyBBRHMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBSb3V0 aW5nIERpcmVjdG9yYXRlLA0KcGxlYXNlIHNlZSDigItodHRwOi8vdHJhYy50b29scy5pZXRmLm9y Zy9hcmVhL3J0Zy90cmFjL3dpa2kvUnRnRGlyPGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50 LmNvbS92Mi91cmw/dT1odHRwLTNBX190cmFjLnRvb2xzLmlldGYub3JnX2FyZWFfcnRnX3RyYWNf d2lraV9SdGdEaXImZD1Dd01GYVEmYz01VkQwUlR0TmxUaDN5Y2Q0MWIzTVV3JnI9TFVfdkphTV9F UXUxU3NtMzVqMnhsQSZtPWpsd21xUk1TQmJ6V0lSb3JJX3NEQU0xaTBMdXVPZExGbUpEVk5McHRJ WWMmcz1iR01SX3RFcE54Q1VuRWVONkJCUFJ2Zk1vRDBUZVN2ZG8zekpBRVJndF9zJmU9Pg0KDQpB bHRob3VnaCB0aGVzZSBjb21tZW50cyBhcmUgcHJpbWFyaWx5IGZvciB0aGUgdXNlIG9mIHRoZSBS b3V0aW5nIEFEcywgaXQNCndvdWxkIGJlIGhlbHBmdWwgaWYgeW91IGNvdWxkIGNvbnNpZGVyIHRo ZW0gYWxvbmcgd2l0aCBhbnkgb3RoZXIgSUVURiBMYXN0DQpDYWxsIGNvbW1lbnRzIHRoYXQgeW91 IHJlY2VpdmUsIGFuZCBzdHJpdmUgdG8gcmVzb2x2ZSB0aGVtIHRocm91Z2gNCmRpc2N1c3Npb24g b3IgYnkgdXBkYXRpbmcgdGhlIGRyYWZ0Lg0KDQpEb2N1bWVudDogZHJhZnQtaWV0Zi1ydGd3Zy1i Z3Atcm91dGluZy1sYXJnZS1kYy0wOS50eHQNClJldmlld2VyOiBBY2VlIExpbmRlbQ0KUmV2aWV3 IERhdGU6IDQvMjUvMTYNCklFVEYgTEMgRW5kIERhdGU6IE5vdCBzdGFydGVkDQpJbnRlbmRlZCBT dGF0dXM6IEluZm9ybWF0aW9uYWwNCg0KU3VtbWFyeToNCiAgICBUaGlzIGRvY3VtZW50IGlzIGJh c2ljYWxseSByZWFkeSBmb3IgcHVibGljYXRpb24sIGJ1dCBoYXMgc29tZSBtaW5vcg0KaXNzdWVz IGFuZCBuaXRzIHRoYXQgc2hvdWxkIGJlIHJlc29sdmVkIHByaW9yIHRvIHB1YmxpY2F0aW9uLg0K DQpDb21tZW50czoNCiAgICBUaGUgZG9jdW1lbnQgc3RhcnRzIHdpdGggdGhlIHJlcXVpcmVtZW50 cyBmb3IgYW4gTVNEQyByb3V0aW5nIGFuZCB0aGVuDQpwcm92aWRlcyBhbiBvdmVydmlldyBvZiBD bG9zIGRhdGEgdG9wb2xvZ2llcyBhbmQgZGF0YSBjZW50ZXIgbmV0d29yaw0KZGVzaWduLiBUaGlz IG92ZXJ2aWV3IGF0dGVtcHRzIHRvIGNvdmVyIGEgbG90IG9mIGEgbWF0ZXJpYWwgaW4gYSB2ZXJ5 DQpzbWFsbCBhbW91bnQgb2YgdGV4dC4gV2hpbGUgbm90IGNvbXBsZXRlbHkgc3VjY2Vzc2Z1bCwg dGhlIG92ZXJ2aWV3DQpwcm92aWRlcyBhIGxvdCBvZiBnb29kIGluZm9ybWF0aW9uIGFuZCByZWZl cmVuY2VzLiBUaGUgYnVsayBvZiB0aGUNCmRvY3VtZW50IGNvdmVycyB0aGUgdXNhZ2Ugb2YgRUJH UCBhcyB0aGUgc29sZSBkYXRhIGNlbnRlciByb3V0aW5nIHByb3RvY29sDQphbmQgb3RoZXIgYXNw ZWN0cyBvZiB0aGUgcm91dGluZyBkZXNpZ24gaW5jbHVkaW5nIEVDTVAsIHN1bW1hcml6YXRpb24N Cmlzc3VlcywgYW5kIGNvbnZlcmdlbmNlLiBUaGVzZSBzZWN0aW9ucyBwcm92aWRlIGEgdmVyeSBn b29kIGd1aWRlIGZvcg0KdXNpbmcgRUJHUCBpbiBhIENsb3MgZGF0YSBjZW50ZXIgYW5kIGFuIGV4 Y2VsbGVudCBkaXNjdXNzaW9uIG9mIHRoZQ0KZGVwbG95bWVudCBpc3N1ZXMgKGJhc2VkIG9uIHJl YWwgZGVwbG95bWVudCBleHBlcmllbmNlKS4NCg0KICAgIFRoZSB0ZWNobmljYWwgY29udGVudCBv ZiB0aGUgZG9jdW1lbnQgaXMgZXhjZWxsZW50LiBUaGUgcmVhZGFiaWxpdHkNCmNvdWxkIGJlIGlt cHJvdmVkIGJ5IGJyZWFraW5nIHVwIHNvbWUgb2YgdGhlIHJ1bi1vbiBzZW50ZW5jZXMgYW5kIHdp dGggdGhlDQpzdWdnZXN0ZWQgZWRpdG9yaWFsIGNoYW5nZXMgKHNlZSBOaXRzIGJlbG93KS4NCg0K DQpNYWpvciBJc3N1ZXM6DQoNCiAgICBJIGhhdmUgbm8gbWFqb3IgaXNzdWVzIHdpdGggdGhlIGRv Y3VtZW50Lg0KDQpNaW5vciBJc3N1ZXM6DQoNCiAgICBTZWN0aW9uIDQuMjogQ2FuIGFuIGluZm9y bWF0aXZlIHJlZmVyZW5jZSBiZSBhZGRlZCBmb3IgRGlyZWN0IFNlcnZlcg0KUmV0dXJuIChEU1Ip Pw0KICAgIFNlY3Rpb24gNS4yLjQgYW5kIDcuNDogRGVmaW5lIHByZWNpc2VseSB3aGF0IGlzIG1l YW50IGJ5ICJzY2FsZS1vdXQiDQp0b3BvbG9neSBzb21ld2hlcmUgaW4gdGhlIGRvY3VtZW50Lg0K ICAgIFNlY3Rpb24gNS4yLjU6IENhbiB5b3UgYWRkIGEgYmFja3dhcmQgcmVmZXJlbmNlIHRvIHRo ZSBkaXNjdXNzaW9uIG9mDQoibGFjayBvZiBwZWVyIGxpbmtzIGluc2lkZSBldmVyeSBwZWVy4oCd PyBBbHNvLCBpdCB3b3VsZCBiZSBnb29kIHRvIGRlc2NyaWJlDQpob3cgdGhpcyB3b3VsZCBhbGxv dyBmb3Igc3VtbWFyaXphdGlvbiBhbmQgdW5kZXIgd2hhdCBmYWlsdXJlIGNvbmRpdGlvbnMuDQog ICAgU2VjdGlvbiA3LjQ6IFNob3VsZCB5b3UgYWRkIGEgcmVmZXJlbmNlIHRvDQpodHRwczovL3d3 dy5pZXRmLm9yZy9pZC9kcmFmdC1pZXRmLXJ0Z3dnLWJncC1waWMtMDAudHh0PGh0dHBzOi8vdXJs ZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0zQV9fd3d3LmlldGYub3JnX2lk X2RyYWZ0LTJEaWV0Zi0yRHJ0Z3dnLTJEYmdwLTJEcGljLTJEMDAudHh0JmQ9Q3dNRmFRJmM9NVZE MFJUdE5sVGgzeWNkNDFiM01VdyZyPUxVX3ZKYU1fRVF1MVNzbTM1ajJ4bEEmbT1qbHdtcVJNU0Ji eldJUm9ySV9zREFNMWkwTHV1T2RMRm1KRFZOTHB0SVljJnM9U0RfQVBtNl8ybmwwU045MHNlVGJa Y1VXdmRmcEEyejJKTExyRFV3VkRzQSZlPT4gdG8gdGhlIHBlbnVsdGltYXRlDQpwYXJhZ3JhcGgg aW4gdGhpcyBzZWN0aW9uPw0KDQpOaXRzOg0KDQoqKioqKioqKioqKioqKioNCioqKiAxNDMsMTQ5 ICoqKioNCiAgICAgbmV0d29yayBzdGFiaWxpdHkgc28gdGhhdCBhIHNtYWxsIGdyb3VwIG9mIHBl b3BsZSBjYW4gZWZmZWN0aXZlbHkNCiAgICAgc3VwcG9ydCBhIHNpZ25pZmljYW50bHkgc2l6ZWQg bmV0d29yay4NCg0KISAgICBFeHBlcmltZW50YXRpb24gYW5kIGV4dGVuc2l2ZSB0ZXN0aW5nIGhh cyBzaG93biB0aGF0IEV4dGVybmFsIEJHUA0KICAgICAoRUJHUCkgW1JGQzQyNzFdIGlzIHdlbGwg c3VpdGVkIGFzIGEgc3RhbmQtYWxvbmUgcm91dGluZyBwcm90b2NvbCBmb3INCiAgICAgdGhlc2Ug dHlwZSBvZiBkYXRhIGNlbnRlciBhcHBsaWNhdGlvbnMuICBUaGlzIGlzIGluIGNvbnRyYXN0IHdp dGgNCiAgICAgbW9yZSB0cmFkaXRpb25hbCBEQyBkZXNpZ25zLCB3aGljaCBtYXkgc2Ugc2ltcGxl IHRyZWUgdG9wb2xvZ2llcyBhbmQNCi0tLSAxNDMsMTQ5IC0tLS0NCiAgICAgbmV0d29yayBzdGFi aWxpdHkgc28gdGhhdCBhIHNhbGwgZ3JvdXAgb2YgcGVvcGxlIGNhbiBlZmZlY3RpdmVseQ0KICAg ICBzdXBwb3J0IGEgc2lnbmlmaWNhbnRseSBzaXplZCBuZXR3b3JrLg0KDQohICAgIEV4cGVyaW1l bnRhdGlvbiBhbmQgZXh0ZW5zaXZlIHRlc3RpbmcgaGF2ZSBzaG93biB0aGF0IEV4dGVybmFsIEJH UA0KICAgICAoRUJHUCkgW1JGQzQyNzFdIGlzIHdlbGwgc3VpdGVkIGFzIGEgc3RhbmQtYWxvbmUg cm91dGluZyBwcm90b2NvbCBmb3INCiAgICAgdGhlc2UgdHlwZSBvZiBkYXRhIGNlbnRlciBhcHBs aWNhdGlvbnMuICBUaGlzIGlzIGluIGNvbnRyYXN0IHdpdGgNCiAgICAgbW9yZSB0cmFkaXRpb25h bCBEQyBkZXNpZ25zLCB3aGljaCBtYXkgdXNlIHNpbXBsZSB0cmVlIHRvcG9sb2dpZXMgYW5kDQoq KioqKioqKioqKioqKioNCioqKiAxNzgsMTkxICoqKioNCiAgMi4xLiAgQmFuZHdpZHRoIGFuZCBU cmFmZmljIFBhdHRlcm5zDQoNCiAgICAgVGhlIHByaW1hcnkgcmVxdWlyZW1lbnQgd2hlbiBidWls ZGluZyBhbiBpbnRlcmNvbm5lY3Rpb24gbmV0d29yayBmb3INCiEgICAgbGFyZ2UgbnVtYmVyIG9m IHNlcnZlcnMgaXMgdG8gYWNjb21tb2RhdGUgYXBwbGljYXRpb24gYmFuZHdpZHRoIGFuZA0KICAg ICBsYXRlbmN5IHJlcXVpcmVtZW50cy4gIFVudGlsIHJlY2VudGx5IGl0IHdhcyBxdWl0ZSBjb21t b24gdG8gc2VlIHRoZQ0KICAgICBtYWpvcml0eSBvZiB0cmFmZmljIGVudGVyaW5nIGFuZCBsZWF2 aW5nIHRoZSBkYXRhIGNlbnRlciwgY29tbW9ubHkNCiAgICAgcmVmZXJyZWQgdG8gYXMgIm5vcnRo LXNvdXRoIiB0cmFmZmljLiAgVHJhZGl0aW9uYWwgInRyZWUiIHRvcG9sb2dpZXMNCiAgICAgd2Vy ZSBzdWZmaWNpZW50IHRvIGFjY29tbW9kYXRlIHN1Y2ggZmxvd3MsIGV2ZW4gd2l0aCBoaWdoDQog ICAgIG92ZXJzdWJzY3JpcHRpb24gcmF0aW9zIGJldHdlZW4gdGhlIGxheWVycyBvZiB0aGUgbmV0 d29yay4gIElmIG1vcmUNCiAgICAgYmFuZHdpZHRoIHdhcyByZXF1aXJlZCwgaXQgd2FzIGFkZGVk IGJ5ICJzY2FsaW5nIHVwIiB0aGUgbmV0d29yaw0KISAgICBlbGVtZW50cywgZS5nLiBieSB1cGdy YWRpbmcgdGhlIGRldmljZSdzIGxpbmVjYXJkcyBvciBmYWJyaWNzIG9yDQogICAgIHJlcGxhY2lu ZyB0aGUgZGV2aWNlIHdpdGggb25lIHdpdGggaGlnaGVyIHBvcnQgZGVuc2l0eS4NCg0KICAgICBU b2RheSBtYW55IGxhcmdlLXNjYWxlIGRhdGEgY2VudGVycyBob3N0IGFwcGxpY2F0aW9ucyBnZW5l cmF0aW5nDQotLS0gMTc4LDE5MSAtLS0tDQogIDIuMS4gIEJhbmR3aWR0aCBhbmQgVHJhZmZpYyBQ YXR0ZXJucw0KDQogICAgIFRoZSBwcmltYXJ5IHJlcXVpcmVtZW50IHdoZW4gYnVpbGRpbmcgYW4g aW50ZXJjb25uZWN0aW9uIG5ldHdvcmsgZm9yDQohICAgIGEgbGFyZ2UgbnVtYmVyIG9mIHNlcnZl cnMgaXMgdG8gYWNjb21tb2RhdGUgYXBwbGljYXRpb24gYmFuZHdpZHRoIGFuZA0KICAgICBsYXRl bmN5IHJlcXVpcmVtZW50cy4gIFVudGlsIHJlY2VudGx5IGl0IHdhcyBxdWl0ZSBjb21tb24gdG8g c2VlIHRoZQ0KICAgICBtYWpvcml0eSBvZiB0cmFmZmljIGVudGVyaW5nIGFuZCBsZWF2aW5nIHRo ZSBkYXRhIGNlbnRlciwgY29tbW9ubHkNCiAgICAgcmVmZXJyZWQgdG8gYXMgIm5vcnRoLXNvdXRo IiB0cmFmZmljLiAgVHJhZGl0aW9uYWwgInRyZWUiIHRvcG9sb2dpZXMNCiAgICAgd2VyZSBzdWZm aWNpZW50IHRvIGFjY29tbW9kYXRlIHN1Y2ggZmxvd3MsIGV2ZW4gd2l0aCBoaWdoDQogICAgIG92 ZXJzdWJzY3JpcHRpb24gcmF0aW9zIGJldHdlZW4gdGhlIGxheWVycyBvZiB0aGUgbmV0d29yay4g IElmIG1vcmUNCiAgICAgYmFuZHdpZHRoIHdhcyByZXF1aXJlZCwgaXQgd2FzIGFkZGVkIGJ5ICJz Y2FsaW5nIHVwIiB0aGUgbmV0d29yaw0KISAgICBlbGVtZW50cywgZS5nLiwgYnkgdXBncmFkaW5n IHRoZSBkZXZpY2UncyBsaW5lY2FyZHMgb3IgZmFicmljcyBvcg0KICAgICByZXBsYWNpbmcgdGhl IGRldmljZSB3aXRoIG9uZSB3aXRoIGhpZ2hlciBwb3J0IGRlbnNpdHkuDQoNCiAgICAgVG9kYXkg bWFueSBsYXJnZS1zY2FsZSBkYXRhIGNlbnRlcnMgaG9zdCBhcHBsaWNhdGlvbnMgZ2VuZXJhdGlu Zw0KKioqKioqKioqKioqKioqDQoqKiogMTk1LDIwMSAqKioqDQogICAgIFtIQURPT1BdLCBtYXNz aXZlIGRhdGEgcmVwbGljYXRpb24gYmV0d2VlbiBjbHVzdGVycyBuZWVkZWQgYnkgY2VydGFpbg0K ICAgICBhcHBsaWNhdGlvbnMsIG9yIHZpcnR1YWwgbWFjaGluZSBtaWdyYXRpb25zLiAgU2NhbGlu ZyB0cmFkaXRpb25hbA0KICAgICB0cmVlIHRvcG9sb2dpZXMgdG8gbWF0Y2ggdGhlc2UgYmFuZHdp ZHRoIGRlbWFuZHMgYmVjb21lcyBlaXRoZXIgdG9vDQohICAgIGV4cGVuc2l2ZSBvciBpbXBvc3Np YmxlIGR1ZSB0byBwaHlzaWNhbCBsaW1pdGF0aW9ucywgZS5nLiBwb3J0DQogICAgIGRlbnNpdHkg aW4gYSBzd2l0Y2guDQoNCiAgMi4yLiAgQ0FQRVggTWluaW1pemF0aW9uDQotLS0gMTk1LDIwMSAt LS0tDQogICAgIFtIQURPT1BdLCBtYXNzaXZlIGRhdGEgcmVwbGljYXRpb24gYmV0d2VlbiBjbHVz dGVycyBuZWVkZWQgYnkgY2VydGFpbg0KICAgICBhcHBsaWNhdGlvbnMsIG9yIHZpcnR1YWwgbWFj aGluZSBtaWdyYXRpb25zLiAgU2NhbGluZyB0cmFkaXRpb25hbA0KICAgICB0cmVlIHRvcG9sb2dp ZXMgdG8gbWF0Y2ggdGhlc2UgYmFuZHdpZHRoIGRlbWFuZHMgYmVjb21lcyBlaXRoZXIgdG9vDQoh ICAgIGV4cGVuc2l2ZSBvciBpbXBvc3NpYmxlIGR1ZSB0byBwaHlzaWNhbCBsaW1pdGF0aW9ucywg ZS5nLiwgcG9ydA0KICAgICBkZW5zaXR5IGluIGEgc3dpdGNoLg0KDQogIDIuMi4gIENBUEVYIE1p bmltaXphdGlvbg0KKioqKioqKioqKioqKioqDQoqKiogMjA5LDIxNSAqKioqDQoNCiAgICAgbyAg VW5pZnlpbmcgYWxsIG5ldHdvcmsgZWxlbWVudHMsIHByZWZlcmFibHkgdXNpbmcgdGhlIHNhbWUg aGFyZHdhcmUNCiAgICAgICAgdHlwZSBvciBldmVuIHRoZSBzYW1lIGRldmljZS4gIFRoaXMgYWxs b3dzIGZvciB2b2x1bWUgcHJpY2luZyBvbg0KISAgICAgICBidWxrIHB1cmNoYXNlcyBhbmQgcmVk dWNlZCBtYWludGVuYW5jZSBhbmQgc3BhcmluZyBjb3N0cy4NCg0KICAgICBvICBEcml2aW5nIGNv c3RzIGRvd24gdXNpbmcgY29tcGV0aXRpdmUgcHJlc3N1cmVzLCBieSBpbnRyb2R1Y2luZw0KICAg ICAgICBtdWx0aXBsZSBuZXR3b3JrIGVxdWlwbWVudCB2ZW5kb3JzLg0KLS0tIDIwOSwyMTUgLS0t LQ0KDQogICAgIG8gIFVuaWZ5aW5nIGFsbCBuZXR3b3JrIGVsZW1lbnRzLCBwcmVmZXJhYmx5IHVz aW5nIHRoZSBzYW1lIGhhcmR3YXJlDQogICAgICAgIHR5cGUgb3IgZXZlbiB0aGUgc2FtZSBkZXZp Y2UuICBUaGlzIGFsbG93cyBmb3Igdm9sdW1lIHByaWNpbmcgb24NCiEgICAgICAgYnVsayBwdXJj aGFzZXMgYW5kIHJlZHVjZWQgbWFpbnRlbmFuY2UgYW5kIGludmVudG9yeSBjb3N0cy4NCg0KICAg ICBvICBEcml2aW5nIGNvc3RzIGRvd24gdXNpbmcgY29tcGV0aXRpdmUgcHJlc3N1cmVzLCBieSBp bnRyb2R1Y2luZw0KICAgICAgICBtdWx0aXBsZSBuZXR3b3JrIGVxdWlwbWVudCB2ZW5kb3JzLg0K KioqKioqKioqKioqKioqDQoqKiogMjM0LDI0NCAqKioqDQogICAgIG1pbmltaXplcyBzb2Z0d2Fy ZSBpc3N1ZS1yZWxhdGVkIGZhaWx1cmVzLg0KDQogICAgIEFuIGltcG9ydGFudCBhc3BlY3Qgb2Yg T3BlcmF0aW9uYWwgRXhwZW5kaXR1cmUgKE9QRVgpIG1pbmltaXphdGlvbiBpcw0KISAgICByZWR1 Y2luZyBzaXplIG9mIGZhaWx1cmUgZG9tYWlucyBpbiB0aGUgbmV0d29yay4gIEV0aGVybmV0IG5l dHdvcmtzDQogICAgIGFyZSBrbm93biB0byBiZSBzdXNjZXB0aWJsZSB0byBicm9hZGNhc3Qgb3Ig dW5pY2FzdCB0cmFmZmljIHN0b3Jtcw0KICAgICB0aGF0IGNhbiBoYXZlIGEgZHJhbWF0aWMgaW1w YWN0IG9uIG5ldHdvcmsgcGVyZm9ybWFuY2UgYW5kDQogICAgIGF2YWlsYWJpbGl0eS4gIFRoZSB1 c2Ugb2YgYSBmdWxseSByb3V0ZWQgZGVzaWduIHNpZ25pZmljYW50bHkgcmVkdWNlcw0KISAgICB0 aGUgc2l6ZSBvZiB0aGUgZGF0YSBwbGFuZSBmYWlsdXJlIGRvbWFpbnMgLSBpLmUuIGxpbWl0cyB0 aGVtIHRvIHRoZQ0KICAgICBsb3dlc3QgbGV2ZWwgaW4gdGhlIG5ldHdvcmsgaGllcmFyY2h5LiAg SG93ZXZlciwgc3VjaCBkZXNpZ25zDQogICAgIGludHJvZHVjZSB0aGUgcHJvYmxlbSBvZiBkaXN0 cmlidXRlZCBjb250cm9sIHBsYW5lIGZhaWx1cmVzLiAgVGhpcw0KICAgICBvYnNlcnZhdGlvbiBj YWxscyBmb3Igc2ltcGxlciBhbmQgbGVzcyBjb250cm9sIHBsYW5lIHByb3RvY29scyB0bw0KLS0t IDIzNCwyNDQgLS0tLQ0KICAgICBtaW5pbWl6ZXMgc29mdHdhcmUgaXNzdWUtcmVsYXRlZCBmYWls dXJlcy4NCg0KICAgICBBbiBpbXBvcnRhbnQgYXNwZWN0IG9mIE9wZXJhdGlvbmFsIEV4cGVuZGl0 dXJlIChPUEVYKSBtaW5pbWl6YXRpb24gaXMNCiEgICAgcmVkdWNpbmcgdGhlIHNpemUgb2YgZmFp bHVyZSBkb21haW5zIGluIHRoZSBuZXR3b3JrLiAgRXRoZXJuZXQNCm5ldHdvcmtzDQogICAgIGFy ZSBrbm93biB0byBiZSBzdXNjZXB0aWJsZSB0byBicm9hZGNhc3Qgb3IgdW5pY2FzdCB0cmFmZmlj IHN0b3Jtcw0KICAgICB0aGF0IGNhbiBoYXZlIGEgZHJhbWF0aWMgaW1wYWN0IG9uIG5ldHdvcmsg cGVyZm9ybWFuY2UgYW5kDQogICAgIGF2YWlsYWJpbGl0eS4gIFRoZSB1c2Ugb2YgYSBmdWxseSBy b3V0ZWQgZGVzaWduIHNpZ25pZmljYW50bHkgcmVkdWNlcw0KISAgICB0aGUgc2l6ZSBvZiB0aGUg ZGF0YSBwbGFuZSBmYWlsdXJlIGRvbWFpbnMsIGkuZS4sIGxpbWl0cyB0aGVtIHRvIHRoZQ0KICAg ICBsb3dlc3QgbGV2ZWwgaW4gdGhlIG5ldHdvcmsgaGllcmFyY2h5LiAgSG93ZXZlciwgc3VjaCBk ZXNpZ25zDQogICAgIGludHJvZHVjZSB0aGUgcHJvYmxlbSBvZiBkaXN0cmlidXRlZCBjb250cm9s IHBsYW5lIGZhaWx1cmVzLiAgVGhpcw0KICAgICBvYnNlcnZhdGlvbiBjYWxscyBmb3Igc2ltcGxl ciBhbmQgbGVzcyBjb250cm9sIHBsYW5lIHByb3RvY29scyB0bw0KKioqKioqKioqKioqKioqDQoq KiogMjUzLDI1OSAqKioqDQogICAgIHBlcmZvcm1lZCBieSBuZXR3b3JrIGRldmljZXMuICBUcmFk aXRpb25hbGx5LCBsb2FkIGJhbGFuY2VycyBhcmUNCiAgICAgZGVwbG95ZWQgYXMgZGVkaWNhdGVk IGRldmljZXMgaW4gdGhlIHRyYWZmaWMgZm9yd2FyZGluZyBwYXRoLiAgVGhlDQogICAgIHByb2Js ZW0gYXJpc2VzIGluIHNjYWxpbmcgbG9hZCBiYWxhbmNlcnMgdW5kZXIgZ3Jvd2luZyB0cmFmZmlj DQohICAgIGRlbWFuZC4gIEEgcHJlZmVyYWJsZSBzb2x1dGlvbiB3b3VsZCBiZSBhYmxlIHRvIHNj YWxlIGxvYWQgYmFsYW5jaW5nDQogICAgIGxheWVyIGhvcml6b250YWxseSwgYnkgYWRkaW5nIG1v cmUgb2YgdGhlIHVuaWZvcm0gbm9kZXMgYW5kDQogICAgIGRpc3RyaWJ1dGluZyBpbmNvbWluZyB0 cmFmZmljIGFjcm9zcyB0aGVzZSBub2Rlcy4gIEluIHNpdHVhdGlvbnMgbGlrZQ0KICAgICB0aGlz LCBhbiBpZGVhbCBjaG9pY2Ugd291bGQgYmUgdG8gdXNlIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUg aXRzZWxmDQotLS0gMjUzLDI1OSAtLS0tDQogICAgIHBlcmZvcm1lZCBieSBuZXR3b3JrIGRldmlj ZXMuICBUcmFkaXRpb25hbGx5LCBsb2FkIGJhbGFuY2VycyBhcmUNCiAgICAgZGVwbG95ZWQgYXMg ZGVkaWNhdGVkIGRldmljZXMgaW4gdGhlIHRyYWZmaWMgZm9yd2FyZGluZyBwYXRoLiAgVGhlDQog ICAgIHByb2JsZW0gYXJpc2VzIGluIHNjYWxpbmcgbG9hZCBiYWxhbmNlcnMgdW5kZXIgZ3Jvd2lu ZyB0cmFmZmljDQohICAgIGRlbWFuZC4gIEEgcHJlZmVyYWJsZSBzb2x1dGlvbiB3b3VsZCBiZSBh YmxlIHRvIHNjYWxlIHRoZSBsb2FkDQpiYWxhbmNpbmcNCiAgICAgbGF5ZXIgaG9yaXpvbnRhbGx5 LCBieSBhZGRpbmcgbW9yZSBvZiB0aGUgdW5pZm9ybSBub2RlcyBhbmQNCiAgICAgZGlzdHJpYnV0 aW5nIGluY29taW5nIHRyYWZmaWMgYWNyb3NzIHRoZXNlIG5vZGVzLiAgSW4gc2l0dWF0aW9ucyBs aWtlDQogICAgIHRoaXMsIGFuIGlkZWFsIGNob2ljZSB3b3VsZCBiZSB0byB1c2UgbmV0d29yayBp bmZyYXN0cnVjdHVyZSBpdHNlbGYNCioqKioqKioqKioqKioqKg0KKioqIDMwNSwzMTEgKioqKg0K ICAzLjEuICBUcmFkaXRpb25hbCBEQyBUb3BvbG9neQ0KDQogICAgIEluIHRoZSBuZXR3b3JraW5n IGluZHVzdHJ5LCBhIGNvbW1vbiBkZXNpZ24gY2hvaWNlIGZvciBkYXRhIGNlbnRlcnMNCiEgICAg dHlwaWNhbGx5IGxvb2sgbGlrZSBhICh1cHNpZGUgZG93bikgdHJlZSB3aXRoIHJlZHVuZGFudCB1 cGxpbmtzIGFuZA0KICAgICB0aHJlZSBsYXllcnMgb2YgaGllcmFyY2h5IG5hbWVseTsgY29yZSwg YWdncmVnYXRpb24vZGlzdHJpYnV0aW9uIGFuZA0KICAgICBhY2Nlc3MgbGF5ZXJzIChzZWUgRmln dXJlIDEpLiAgVG8gYWNjb21tb2RhdGUgYmFuZHdpZHRoIGRlbWFuZHMsIGVhY2gNCiAgICAgaGln aGVyIGxheWVyLCBmcm9tIHNlcnZlciB0b3dhcmRzIERDIGVncmVzcyBvciBXQU4sIGhhcyBoaWdo ZXIgcG9ydA0KLS0tIDMwNSwzMTEgLS0tLQ0KICAzLjEuICBUcmFkaXRpb25hbCBEQyBUb3BvbG9n eQ0KDQogICAgIEluIHRoZSBuZXR3b3JraW5nIGluZHVzdHJ5LCBhIGNvbW1vbiBkZXNpZ24gY2hv aWNlIGZvciBkYXRhIGNlbnRlcnMNCiEgICAgdHlwaWNhbGx5IGxvb2sgbGlrZSBhbiAodXBzaWRl IGRvd24pIHRyZWUgd2l0aCByZWR1bmRhbnQgdXBsaW5rcyBhbmQNCiAgICAgdGhyZWUgbGF5ZXJz IG9mIGhpZXJhcmNoeSBuYW1lbHk7IGNvcmUsIGFnZ3JlZ2F0aW9uL2Rpc3RyaWJ1dGlvbiBhbmQN CiAgICAgYWNjZXNzIGxheWVycyAoc2VlIEZpZ3VyZSAxKS4gIFRvIGFjY29tbW9kYXRlIGJhbmR3 aWR0aCBkZW1hbmRzLCBlYWNoDQogICAgIGhpZ2hlciBsYXllciwgZnJvbSBzZXJ2ZXIgdG93YXJk cyBEQyBlZ3Jlc3Mgb3IgV0FOLCBoYXMgaGlnaGVyIHBvcnQNCioqKioqKioqKioqKioqKg0KKioq IDM3MywzNzkgKioqKg0KICAgICB0b3BvbG9neSwgc29tZXRpbWVzIGNhbGxlZCAiZmF0LXRyZWUi IChzZWUsIGZvciBleGFtcGxlLCBbSU5URVJDT05dDQogICAgIGFuZCBbQUxGQVJFUzIwMDhdKS4g IFRoaXMgdG9wb2xvZ3kgZmVhdHVyZXMgYW4gb2RkIG51bWJlciBvZiBzdGFnZXMNCiAgICAgKHNv bWV0aW1lcyBrbm93biBhcyBkaW1lbnNpb25zKSBhbmQgaXMgY29tbW9ubHkgbWFkZSBvZiB1bmlm b3JtDQohICAgIGVsZW1lbnRzLCBlLmcuIG5ldHdvcmsgc3dpdGNoZXMgd2l0aCB0aGUgc2FtZSBw b3J0IGNvdW50LiAgVGhlcmVmb3JlLA0KICAgICB0aGUgY2hvaWNlIG9mIGZvbGRlZCBDbG9zIHRv cG9sb2d5IHNhdGlzZmllcyBSRVExIGFuZCBmYWNpbGl0YXRlcw0KICAgICBSRVEyLiAgU2VlIEZp Z3VyZSAyIGJlbG93IGZvciBhbiBleGFtcGxlIG9mIGEgZm9sZGVkIDMtc3RhZ2UgQ2xvcw0KICAg ICB0b3BvbG9neSAoMyBzdGFnZXMgY291bnRpbmcgVGllci0yIHN0YWdlIHR3aWNlLCB3aGVuIHRy YWNpbmcgYSBwYWNrZXQNCi0tLSAzNzMsMzc5IC0tLS0NCiAgICAgdG9wb2xvZ3ksIHNvbWV0aW1l cyBjYWxsZWQgImZhdC10cmVlIiAoc2VlLCBmb3IgZXhhbXBsZSwgW0lOVEVSQ09OXQ0KICAgICBh bmQgW0FMRkFSRVMyMDA4XSkuICBUaGlzIHRvcG9sb2d5IGZlYXR1cmVzIGFuIG9kZCBudW1iZXIg b2Ygc3RhZ2VzDQogICAgIChzb21ldGltZXMga25vd24gYXMgZGltZW5zaW9ucykgYW5kIGlzIGNv bW1vbmx5IG1hZGUgb2YgdW5pZm9ybQ0KISAgICBlbGVtZW50cywgZS5nLiwgbmV0d29yayBzd2l0 Y2hlcyB3aXRoIHRoZSBzYW1lIHBvcnQgY291bnQuICBUaGVyZWZvcmUsDQogICAgIHRoZSBjaG9p Y2Ugb2YgZm9sZGVkIENsb3MgdG9wb2xvZ3kgc2F0aXNmaWVzIFJFUTEgYW5kIGZhY2lsaXRhdGVz DQogICAgIFJFUTIuICBTZWUgRmlndXJlIDIgYmVsb3cgZm9yIGFuIGV4YW1wbGUgb2YgYSBmb2xk ZWQgMy1zdGFnZSBDbG9zDQogICAgIHRvcG9sb2d5ICgzIHN0YWdlcyBjb3VudGluZyBUaWVyLTIg c3RhZ2UgdHdpY2UsIHdoZW4gdHJhY2luZyBhIHBhY2tldA0KKioqKioqKioqKioqKioqDQoqKiog NDYwLDQ2NiAqKioqDQogIDMuMi4zLiAgU2NhbGluZyB0aGUgQ2xvcyB0b3BvbG9neQ0KDQogICAg IEEgQ2xvcyB0b3BvbG9neSBjYW4gYmUgc2NhbGVkIGVpdGhlciBieSBpbmNyZWFzaW5nIG5ldHdv cmsgZWxlbWVudA0KISAgICBwb3J0IGRlbnNpdHkgb3IgYWRkaW5nIG1vcmUgc3RhZ2VzLCBlLmcu IG1vdmluZyB0byBhIDUtc3RhZ2UgQ2xvcywgYXMNCiAgICAgaWxsdXN0cmF0ZWQgaW4gRmlndXJl IDMgYmVsb3c6DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaWVy LTENCi0tLSA0NjAsNDY2IC0tLS0NCiAgMy4yLjMuICBTY2FsaW5nIHRoZSBDbG9zIHRvcG9sb2d5 DQoNCiAgICAgQSBDbG9zIHRvcG9sb2d5IGNhbiBiZSBzY2FsZWQgZWl0aGVyIGJ5IGluY3JlYXNp bmcgbmV0d29yayBlbGVtZW50DQohICAgIHBvcnQgZGVuc2l0eSBvciBhZGRpbmcgbW9yZSBzdGFn ZXMsIGUuZy4sIG1vdmluZyB0byBhIDUtc3RhZ2UgQ2xvcywgYXMNCiAgICAgaWxsdXN0cmF0ZWQg aW4gRmlndXJlIDMgYmVsb3c6DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUaWVyLTENCioqKioqKioqKioqKioqKg0KKioqIDUyMyw1MjkgKioqKg0KICAzLjIuNC4g IE1hbmFnaW5nIHRoZSBTaXplIG9mIENsb3MgVG9wb2xvZ3kgVGllcnMNCg0KICAgICBJZiBhIGRh dGEgY2VudGVyIG5ldHdvcmsgc2l6ZSBpcyBzbWFsbCwgaXQgaXMgcG9zc2libGUgdG8gcmVkdWNl IHRoZQ0KISAgICBudW1iZXIgb2Ygc3dpdGNoZXMgaW4gVGllci0xIG9yIFRpZXItMiBvZiBDbG9z IHRvcG9sb2d5IGJ5IGEgZmFjdG9yDQogICAgIG9mIHR3by4gIFRvIHVuZGVyc3RhbmQgaG93IHRo aXMgY291bGQgYmUgZG9uZSwgdGFrZSBUaWVyLTEgYXMgYW4NCiAgICAgZXhhbXBsZS4gIEV2ZXJ5 IFRpZXItMiBkZXZpY2UgY29ubmVjdHMgdG8gYSBzaW5nbGUgZ3JvdXAgb2YgVGllci0xDQogICAg IGRldmljZXMuICBJZiBoYWxmIG9mIHRoZSBwb3J0cyBvbiBlYWNoIG9mIHRoZSBUaWVyLTEgZGV2 aWNlcyBhcmUgbm90DQotLS0gNTIzLDUyOSAtLS0tDQogIDMuMi40LiAgTWFuYWdpbmcgdGhlIFNp emUgb2YgQ2xvcyBUb3BvbG9neSBUaWVycw0KDQogICAgIElmIGEgZGF0YSBjZW50ZXIgbmV0d29y ayBzaXplIGlzIHNtYWxsLCBpdCBpcyBwb3NzaWJsZSB0byByZWR1Y2UgdGhlDQohICAgIG51bWJl ciBvZiBzd2l0Y2hlcyBpbiBUaWVyLTEgb3IgVGllci0yIG9mIGEgQ2xvcyB0b3BvbG9neSBieSBh IGZhY3Rvcg0KICAgICBvZiB0d28uICBUbyB1bmRlcnN0YW5kIGhvdyB0aGlzIGNvdWxkIGJlIGRv bmUsIHRha2UgVGllci0xIGFzIGFuDQogICAgIGV4YW1wbGUuICBFdmVyeSBUaWVyLTIgZGV2aWNl IGNvbm5lY3RzIHRvIGEgc2luZ2xlIGdyb3VwIG9mIFRpZXItMQ0KICAgICBkZXZpY2VzLiAgSWYg aGFsZiBvZiB0aGUgcG9ydHMgb24gZWFjaCBvZiB0aGUgVGllci0xIGRldmljZXMgYXJlIG5vdA0K KioqKioqKioqKioqKioqDQoqKiogNTc0LDU4MCAqKioqDQogICAgIG9yaWdpbmFsbHkgZGVmaW5l ZCBpbiBbSUVFRTgwMjFELTE5OTBdIGZvciBsb29wIGZyZWUgdG9wb2xvZ3kNCiAgICAgY3JlYXRp b24sIHR5cGljYWxseSB1dGlsaXppbmcgdmFyaWFudHMgb2YgdGhlIHRyYWRpdGlvbmFsIERDIHRv cG9sb2d5DQogICAgIGRlc2NyaWJlZCBpbiBTZWN0aW9uIDMuMS4gIEF0IHRoZSB0aW1lLCBtYW55 IERDIHN3aXRjaGVzIGVpdGhlciBkaWQNCiEgICAgbm90IHN1cHBvcnQgTGF5ZXIgMyByb3V0ZWQg cHJvdG9jb2xzIG9yIHN1cHBvcnRlZCBpdCB3aXRoIGFkZGl0aW9uYWwNCiAgICAgbGljZW5zaW5n IGZlZXMsIHdoaWNoIHBsYXllZCBhIHBhcnQgaW4gdGhlIGRlc2lnbiBjaG9pY2UuICBBbHRob3Vn aA0KICAgICBtYW55IGVuaGFuY2VtZW50cyBoYXZlIGJlZW4gbWFkZSB0aHJvdWdoIHRoZSBpbnRy b2R1Y3Rpb24gb2YgUmFwaWQNCiAgICAgU3Bhbm5pbmcgVHJlZSBQcm90b2NvbCAoUlNUUCkgaW4g dGhlIGxhdGVzdCByZXZpc2lvbiBvZg0KLS0tIDU3NCw1ODAgLS0tLQ0KICAgICBvcmlnaW5hbGx5 IGRlZmluZWQgaW4gW0lFRUU4MDIxRC0xOTkwXSBmb3IgbG9vcCBmcmVlIHRvcG9sb2d5DQogICAg IGNyZWF0aW9uLCB0eXBpY2FsbHkgdXRpbGl6aW5nIHZhcmlhbnRzIG9mIHRoZSB0cmFkaXRpb25h bCBEQyB0b3BvbG9neQ0KICAgICBkZXNjcmliZWQgaW4gU2VjdGlvbiAzLjEuICBBdCB0aGUgdGlt ZSwgbWFueSBEQyBzd2l0Y2hlcyBlaXRoZXIgZGlkDQohICAgIG5vdCBzdXBwb3J0IExheWVyIDMg cm91dGluZyBwcm90b2NvbHMgb3Igc3VwcG9ydGVkIHRoZW0gd2l0aA0KYWRkaXRpb25hbA0KICAg ICBsaWNlbnNpbmcgZmVlcywgd2hpY2ggcGxheWVkIGEgcGFydCBpbiB0aGUgZGVzaWduIGNob2lj ZS4gIEFsdGhvdWdoDQogICAgIG1hbnkgZW5oYW5jZW1lbnRzIGhhdmUgYmVlbiBtYWRlIHRocm91 Z2ggdGhlIGludHJvZHVjdGlvbiBvZiBSYXBpZA0KICAgICBTcGFubmluZyBUcmVlIFByb3RvY29s IChSU1RQKSBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mDQoqKioqKioqKioqKioqKioNCioqKiA1 OTksNjA1ICoqKioNCiAgICAgYXMgdGhlIGJhY2t1cCBmb3IgbG9vcCBwcmV2ZW50aW9uLiAgVGhl IG1ham9yIGRvd25zaWRlcyBvZiB0aGlzDQogICAgIGFwcHJvYWNoIGFyZSB0aGUgbGFjayBvZiBh YmlsaXR5IHRvIHNjYWxlIGxpbmVhcmx5IHBhc3QgdHdvIGluIG1vc3QNCiAgICAgaW1wbGVtZW50 YXRpb25zLCBsYWNrIG9mIHN0YW5kYXJkcyBiYXNlZCBpbXBsZW1lbnRhdGlvbnMsIGFuZCBhZGRl ZA0KISAgICBmYWlsdXJlIGRvbWFpbiByaXNrIG9mIGtlZXBpbmcgc3RhdGUgYmV0d2VlbiB0aGUg ZGV2aWNlcy4NCg0KICAgICBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBidWlsZGluZyBsYXJnZSwg aG9yaXpvbnRhbGx5IHNjYWxhYmxlLCBMYXllcg0KICAgICAyIG9ubHkgbmV0d29ya3Mgd2l0aG91 dCBTVFAgaXMgcG9zc2libGUgcmVjZW50bHkgdGhyb3VnaCB0aGUNCi0tLSA1OTksNjA1IC0tLS0N CiAgICAgYXMgdGhlIGJhY2t1cCBmb3IgbG9vcCBwcmV2ZW50aW9uLiAgVGhlIG1ham9yIGRvd25z aWRlcyBvZiB0aGlzDQogICAgIGFwcHJvYWNoIGFyZSB0aGUgbGFjayBvZiBhYmlsaXR5IHRvIHNj YWxlIGxpbmVhcmx5IHBhc3QgdHdvIGluIG1vc3QNCiAgICAgaW1wbGVtZW50YXRpb25zLCBsYWNr IG9mIHN0YW5kYXJkcyBiYXNlZCBpbXBsZW1lbnRhdGlvbnMsIGFuZCBhZGRlZA0KISAgICB0aGUg ZmFpbHVyZSBkb21haW4gcmlzayBvZiBzeW5jaW5nIHN0YXRlIGJldHdlZW4gdGhlIGRldmljZXMu DQoNCiAgICAgSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgYnVpbGRpbmcgbGFyZ2UsIGhvcml6b250 YWxseSBzY2FsYWJsZSwgTGF5ZXINCiAgICAgMiBvbmx5IG5ldHdvcmtzIHdpdGhvdXQgU1RQIGlz IHBvc3NpYmxlIHJlY2VudGx5IHRocm91Z2ggdGhlDQoqKioqKioqKioqKioqKioNCioqKiA2MjEs NjMxICoqKioNCiAgICAgRmluYWxseSwgbmVpdGhlciB0aGUgYmFzZSBUUklMTCBzcGVjaWZpY2F0 aW9uIG5vciB0aGUgTS1MQUcgYXBwcm9hY2gNCiAgICAgdG90YWxseSBlbGltaW5hdGUgdGhlIHBy b2JsZW0gb2YgdGhlIHNoYXJlZCBicm9hZGNhc3QgZG9tYWluLCB0aGF0IGlzDQogICAgIHNvIGRl dHJpbWVudGFsIHRvIHRoZSBvcGVyYXRpb25zIG9mIGFueSBMYXllciAyLCBFdGhlcm5ldCBiYXNl ZA0KISAgICBzb2x1dGlvbnMuICBMYXRlciBUUklMTCBleHRlbnNpb25zIGhhdmUgYmVlbiBwcm9w b3NlZCB0byBzb2x2ZSB0aGUNCiAgICAgdGhpcyBwcm9ibGVtIHN0YXRlbWVudCBwcmltYXJpbHkg YmFzZWQgb24gdGhlIGFwcHJvYWNoZXMgb3V0bGluZWQgaW4NCiAgICAgW1JGQzcwNjddLCBidXQg dGhpcyBldmVuIGZ1cnRoZXIgbGltaXRzIHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlDQohICAgIGlu dGVyb3BlcmFibGUgaW1wbGVtZW50YXRpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gYnVpbGQgYSBm YWJyaWMsDQohICAgIHRoZXJlZm9yZSBUUklMTCBiYXNlZCBkZXNpZ25zIGhhdmUgaXNzdWVzIG1l ZXRpbmcgUkVRMiwgUkVRMywgYW5kDQogICAgIFJFUTQuDQoNCiAgNC4yLiAgSHlicmlkIEwyL0wz IERlc2lnbnMNCi0tLSA2MjEsNjMxIC0tLS0NCiAgICAgRmluYWxseSwgbmVpdGhlciB0aGUgYmFz ZSBUUklMTCBzcGVjaWZpY2F0aW9uIG5vciB0aGUgTS1MQUcgYXBwcm9hY2gNCiAgICAgdG90YWxs eSBlbGltaW5hdGUgdGhlIHByb2JsZW0gb2YgdGhlIHNoYXJlZCBicm9hZGNhc3QgZG9tYWluLCB0 aGF0IGlzDQogICAgIHNvIGRldHJpbWVudGFsIHRvIHRoZSBvcGVyYXRpb25zIG9mIGFueSBMYXll ciAyLCBFdGhlcm5ldCBiYXNlZA0KISAgICBzb2x1dGlvbi4gIExhdGVyIFRSSUxMIGV4dGVuc2lv bnMgaGF2ZSBiZWVuIHByb3Bvc2VkIHRvIHNvbHZlIHRoZQ0KICAgICB0aGlzIHByb2JsZW0gc3Rh dGVtZW50IHByaW1hcmlseSBiYXNlZCBvbiB0aGUgYXBwcm9hY2hlcyBvdXRsaW5lZCBpbg0KICAg ICBbUkZDNzA2N10sIGJ1dCB0aGlzIGV2ZW4gZnVydGhlciBsaW1pdHMgdGhlIG51bWJlciBvZiBh dmFpbGFibGUNCiEgICAgaW50ZXJvcGVyYWJsZSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBjYW4gYmUg dXNlZCB0byBidWlsZCBhIGZhYnJpYy4NCiEgICAgVGhlcmVmb3JlLCBUUklMTCBiYXNlZCBkZXNp Z25zIGhhdmUgaXNzdWVzIG1lZXRpbmcgUkVRMiwgUkVRMywgYW5kDQogICAgIFJFUTQuDQoNCiAg NC4yLiAgSHlicmlkIEwyL0wzIERlc2lnbnMNCioqKioqKioqKioqKioqKg0KKioqIDYzNSw2NDEg KioqKg0KICAgICBpbiBlaXRoZXIgdGhlIFRpZXItMSBvciBUaWVyLTIgcGFydHMgb2YgdGhlIG5l dHdvcmsgYW5kIGRpdmlkaW5nIHRoZQ0KICAgICBMYXllciAyIGRvbWFpbiBpbnRvIG51bWVyb3Vz LCBzbWFsbGVyIGRvbWFpbnMuICBUaGlzIGRlc2lnbiBoYXMNCiAgICAgYWxsb3dlZCBkYXRhIGNl bnRlcnMgdG8gc2NhbGUgdXAsIGJ1dCBhdCB0aGUgY29zdCBvZiBjb21wbGV4aXR5IGluDQohICAg IHRoZSBuZXR3b3JrIG1hbmFnaW5nIG11bHRpcGxlIHByb3RvY29scy4gIEZvciB0aGUgZm9sbG93 aW5nIHJlYXNvbnMsDQogICAgIG9wZXJhdG9ycyBoYXZlIHJldGFpbmVkIExheWVyIDIgaW4gZWl0 aGVyIHRoZSBhY2Nlc3MgKFRpZXItMykgb3IgYm90aA0KICAgICBhY2Nlc3MgYW5kIGFnZ3JlZ2F0 aW9uIChUaWVyLTMgYW5kIFRpZXItMikgcGFydHMgb2YgdGhlIG5ldHdvcms6DQoNCi0tLSA2MzUs NjQxIC0tLS0NCiAgICAgaW4gZWl0aGVyIHRoZSBUaWVyLTEgb3IgVGllci0yIHBhcnRzIG9mIHRo ZSBuZXR3b3JrIGFuZCBkaXZpZGluZyB0aGUNCiAgICAgTGF5ZXIgMiBkb21haW4gaW50byBudW1l cm91cywgc21hbGxlciBkb21haW5zLiAgVGhpcyBkZXNpZ24gaGFzDQogICAgIGFsbG93ZWQgZGF0 YSBjZW50ZXJzIHRvIHNjYWxlIHVwLCBidXQgYXQgdGhlIGNvc3Qgb2YgY29tcGxleGl0eSBpbg0K ISAgICB0aGUgbWFuYWdpbmcgbXVsdGlwbGUgbmV0d29yayBwcm90b2NvbHMuICBGb3IgdGhlIGZv bGxvd2luZyByZWFzb25zLA0KICAgICBvcGVyYXRvcnMgaGF2ZSByZXRhaW5lZCBMYXllciAyIGlu IGVpdGhlciB0aGUgYWNjZXNzIChUaWVyLTMpIG9yIGJvdGgNCiAgICAgYWNjZXNzIGFuZCBhZ2dy ZWdhdGlvbiAoVGllci0zIGFuZCBUaWVyLTIpIHBhcnRzIG9mIHRoZSBuZXR3b3JrOg0KDQoqKioq KioqKioqKioqKioNCioqKiA2NDQsNjUwICoqKioNCg0KICAgICBvICBTZWFtbGVzcyBtb2JpbGl0 eSBmb3IgdmlydHVhbCBtYWNoaW5lcyB0aGF0IHJlcXVpcmUgdGhlDQogICAgICAgIHByZXNlcnZh dGlvbiBvZiBJUCBhZGRyZXNzZXMgd2hlbiBhIHZpcnR1YWwgbWFjaGluZSBtb3ZlcyB0bw0KISAg ICAgICBkaWZmZXJlbnQgVGllci0zIHN3aXRjaC4NCg0KICAgICBvICBTaW1wbGlmaWVkIElQIGFk ZHJlc3NpbmcgPSBsZXNzIElQIHN1Ym5ldHMgYXJlIHJlcXVpcmVkIGZvciB0aGUNCiAgICAgICAg ZGF0YSBjZW50ZXIuDQotLS0gNjQ0LDY1MCAtLS0tDQoNCiAgICAgbyAgU2VhbWxlc3MgbW9iaWxp dHkgZm9yIHZpcnR1YWwgbWFjaGluZXMgdGhhdCByZXF1aXJlIHRoZQ0KICAgICAgICBwcmVzZXJ2 YXRpb24gb2YgSVAgYWRkcmVzc2VzIHdoZW4gYSB2aXJ0dWFsIG1hY2hpbmUgbW92ZXMgdG8NCiEg ICAgICAgYSBkaWZmZXJlbnQgVGllci0zIHN3aXRjaC4NCg0KICAgICBvICBTaW1wbGlmaWVkIElQ IGFkZHJlc3NpbmcgPSBsZXNzIElQIHN1Ym5ldHMgYXJlIHJlcXVpcmVkIGZvciB0aGUNCiAgICAg ICAgZGF0YSBjZW50ZXIuDQoqKioqKioqKioqKioqKioNCioqKiA2NzksNjg2ICoqKioNCiAgICAg YWRvcHRpb24gaW4gbmV0d29ya3Mgd2hlcmUgbGFyZ2UgTGF5ZXIgMiBhZGphY2VuY3kgYW5kIGxh cmdlciBzaXplDQogICAgIExheWVyIDMgc3VibmV0cyBhcmUgbm90IGFzIGNyaXRpY2FsIGNvbXBh cmVkIHRvIG5ldHdvcmsgc2NhbGFiaWxpdHkNCiAgICAgYW5kIHN0YWJpbGl0eS4gIEFwcGxpY2F0 aW9uIHByb3ZpZGVycyBhbmQgbmV0d29yayBvcGVyYXRvcnMgY29udGludWUNCiEgICAgdG8gYWxz byBkZXZlbG9wIG5ldyBzb2x1dGlvbnMgdG8gbWVldCBzb21lIG9mIHRoZSByZXF1aXJlbWVudHMg dGhhdA0KISAgICBwcmV2aW91c2x5IGhhdmUgZHJpdmVuIGxhcmdlIExheWVyIDIgZG9tYWlucyBi eSB1c2luZyB2YXJpb3VzIG92ZXJsYXkNCiAgICAgb3IgdHVubmVsaW5nIHRlY2huaXF1ZXMuDQoN CiAgNS4gIFJvdXRpbmcgUHJvdG9jb2wgU2VsZWN0aW9uIGFuZCBEZXNpZ24NCi0tLSA2NzksNjg2 IC0tLS0NCiAgICAgYWRvcHRpb24gaW4gbmV0d29ya3Mgd2hlcmUgbGFyZ2UgTGF5ZXIgMiBhZGph Y2VuY3kgYW5kIGxhcmdlciBzaXplDQogICAgIExheWVyIDMgc3VibmV0cyBhcmUgbm90IGFzIGNy aXRpY2FsIGNvbXBhcmVkIHRvIG5ldHdvcmsgc2NhbGFiaWxpdHkNCiAgICAgYW5kIHN0YWJpbGl0 eS4gIEFwcGxpY2F0aW9uIHByb3ZpZGVycyBhbmQgbmV0d29yayBvcGVyYXRvcnMgY29udGludWUN CiEgICAgdG8gZGV2ZWxvcCBuZXcgc29sdXRpb25zIHRvIG1lZXQgc29tZSBvZiB0aGUgcmVxdWly ZW1lbnRzIHRoYXQNCiEgICAgcHJldmlvdXNseSBoYWQgZHJpdmVuIGxhcmdlIExheWVyIDIgZG9t YWlucyB1c2luZyB2YXJpb3VzIG92ZXJsYXkNCiAgICAgb3IgdHVubmVsaW5nIHRlY2huaXF1ZXMu DQoNCiAgNS4gIFJvdXRpbmcgUHJvdG9jb2wgU2VsZWN0aW9uIGFuZCBEZXNpZ24NCioqKioqKioq KioqKioqKg0KKioqIDcwMCw3MDYgKioqKg0KICAgICBkZXNpZ24uDQoNCiAgICAgQWx0aG91Z2gg RUJHUCBpcyB0aGUgcHJvdG9jb2wgdXNlZCBmb3IgYWxtb3N0IGFsbCBpbnRlci1kb21haW4NCiEg ICAgcm91dGluZyBvbiB0aGUgSW50ZXJuZXQgYW5kIGhhcyB3aWRlIHN1cHBvcnQgZnJvbSBib3Ro IHZlbmRvciBhbmQNCiAgICAgc2VydmljZSBwcm92aWRlciBjb21tdW5pdGllcywgaXQgaXMgbm90 IGdlbmVyYWxseSBkZXBsb3llZCBhcyB0aGUNCiAgICAgcHJpbWFyeSByb3V0aW5nIHByb3RvY29s IHdpdGhpbiB0aGUgZGF0YSBjZW50ZXIgZm9yIGEgbnVtYmVyIG9mDQogICAgIHJlYXNvbnMgKHNv bWUgb2Ygd2hpY2ggYXJlIGludGVycmVsYXRlZCk6DQotLS0gNzAwLDcwNiAtLS0tDQogICAgIGRl c2lnbi4NCg0KICAgICBBbHRob3VnaCBFQkdQIGlzIHRoZSBwcm90b2NvbCB1c2VkIGZvciBhbG1v c3QgYWxsIGludGVyLWRvbWFpbg0KISAgICByb3V0aW5nIGluIHRoZSBJbnRlcm5ldCBhbmQgaGFz IHdpZGUgc3VwcG9ydCBmcm9tIGJvdGggdmVuZG9yIGFuZA0KICAgICBzZXJ2aWNlIHByb3ZpZGVy IGNvbW11bml0aWVzLCBpdCBpcyBub3QgZ2VuZXJhbGx5IGRlcGxveWVkIGFzIHRoZQ0KICAgICBw cmltYXJ5IHJvdXRpbmcgcHJvdG9jb2wgd2l0aGluIHRoZSBkYXRhIGNlbnRlciBmb3IgYSBudW1i ZXIgb2YNCiAgICAgcmVhc29ucyAoc29tZSBvZiB3aGljaCBhcmUgaW50ZXJyZWxhdGVkKToNCioq KioqKioqKioqKioqKg0KKioqIDc0MSw3NTQgKioqKg0KICAgICAgICBzdGF0ZSBJR1BzLiAgU2lu Y2UgZXZlcnkgQkdQIHJvdXRlciBjYWxjdWxhdGVzIGFuZCBwcm9wYWdhdGVzIG9ubHkNCiAgICAg ICAgdGhlIGJlc3QtcGF0aCBzZWxlY3RlZCwgYSBuZXR3b3JrIGZhaWx1cmUgaXMgbWFza2VkIGFz IHNvb24gYXMgdGhlDQogICAgICAgIEJHUCBzcGVha2VyIGZpbmRzIGFuIGFsdGVybmF0ZSBwYXRo LCB3aGljaCBleGlzdHMgd2hlbiBoaWdobHkNCiEgICAgICAgc3ltbWV0cmljIHRvcG9sb2dpZXMs IHN1Y2ggYXMgQ2xvcywgYXJlIGNvdXBsZWQgd2l0aCBFQkdQIG9ubHkNCiAgICAgICAgZGVzaWdu LiAgSW4gY29udHJhc3QsIHRoZSBldmVudCBwcm9wYWdhdGlvbiBzY29wZSBvZiBhIGxpbmstc3Rh dGUNCiAgICAgICAgSUdQIGlzIGFuIGVudGlyZSBhcmVhLCByZWdhcmRsZXNzIG9mIHRoZSBmYWls dXJlIHR5cGUuICBJbiB0aGlzDQogICAgICAgIHdheSwgQkdQIGJldHRlciBtZWV0cyBSRVEzIGFu ZCBSRVE0LiAgSXQgaXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nDQogICAgICAgIHRoYXQgYWxsIHdp ZGVseSBkZXBsb3llZCBsaW5rLXN0YXRlIElHUHMgZmVhdHVyZSBwZXJpb2RpYw0KISAgICAgICBy ZWZyZXNoZXMgb2Ygcm91dGluZyBpbmZvcm1hdGlvbiwgZXZlbiBpZiB0aGlzIHJhcmVseSBjYXVz ZXMNCiEgICAgICAgaW1wYWN0IHRvIG1vZGVybiByb3V0ZXIgY29udHJvbCBwbGFuZXMsIHdoaWxl IEJHUCBkb2VzIG5vdCBleHBpcmUNCiEgICAgICAgcm91dGluZyBzdGF0ZS4NCg0KICAgICBvICBC R1Agc3VwcG9ydHMgdGhpcmQtcGFydHkgKHJlY3Vyc2l2ZWx5IHJlc29sdmVkKSBuZXh0LWhvcHMu ICBUaGlzDQogICAgICAgIGFsbG93cyBmb3IgbWFuaXB1bGF0aW5nIG11bHRpcGF0aCB0byBiZSBu b24tRUNNUCBiYXNlZCBvcg0KLS0tIDc0MSw3NTQgLS0tLQ0KICAgICAgICBzdGF0ZSBJR1BzLiAg U2luY2UgZXZlcnkgQkdQIHJvdXRlciBjYWxjdWxhdGVzIGFuZCBwcm9wYWdhdGVzIG9ubHkNCiAg ICAgICAgdGhlIGJlc3QtcGF0aCBzZWxlY3RlZCwgYSBuZXR3b3JrIGZhaWx1cmUgaXMgbWFza2Vk IGFzIHNvb24gYXMgdGhlDQogICAgICAgIEJHUCBzcGVha2VyIGZpbmRzIGFuIGFsdGVybmF0ZSBw YXRoLCB3aGljaCBleGlzdHMgd2hlbiBoaWdobHkNCiEgICAgICAgc3ltbWV0cmljIHRvcG9sb2dp ZXMsIHN1Y2ggYXMgQ2xvcywgYXJlIGNvdXBsZWQgd2l0aCBhbiBFQkdQIG9ubHkNCiAgICAgICAg ZGVzaWduLiAgSW4gY29udHJhc3QsIHRoZSBldmVudCBwcm9wYWdhdGlvbiBzY29wZSBvZiBhIGxp bmstc3RhdGUNCiAgICAgICAgSUdQIGlzIGFuIGVudGlyZSBhcmVhLCByZWdhcmRsZXNzIG9mIHRo ZSBmYWlsdXJlIHR5cGUuICBJbiB0aGlzDQogICAgICAgIHdheSwgQkdQIGJldHRlciBtZWV0cyBS RVEzIGFuZCBSRVE0LiAgSXQgaXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nDQogICAgICAgIHRoYXQg YWxsIHdpZGVseSBkZXBsb3llZCBsaW5rLXN0YXRlIElHUHMgZmVhdHVyZSBwZXJpb2RpYw0KISAg ICAgICByZWZyZXNoZXMgb2Ygcm91dGluZyBpbmZvcm1hdGlvbiB3aGlsZSBCR1AgZG9lcyBub3Qg ZXhwaXJlDQohICAgICAgIHJvdXRpbmcgc3RhdGUsIGFsdGhvdWdoIHRoaXMgcmFyZWx5IGltcGFj dHMgbW9kZXJuIHJvdXRlciBjb250cm9sDQohICAgICAgIHBsYW5lcy4NCg0KICAgICBvICBCR1Ag c3VwcG9ydHMgdGhpcmQtcGFydHkgKHJlY3Vyc2l2ZWx5IHJlc29sdmVkKSBuZXh0LWhvcHMuICBU aGlzDQogICAgICAgIGFsbG93cyBmb3IgbWFuaXB1bGF0aW5nIG11bHRpcGF0aCB0byBiZSBub24t RUNNUCBiYXNlZCBvcg0KKioqKioqKioqKioqKioqDQoqKiogNzY1LDc3NSAqKioqDQogICAgICAg IGNvbnRyb2xsZWQgYW5kIGNvbXBsZXggdW53YW50ZWQgcGF0aHMgd2lsbCBiZSBpZ25vcmVkLiAg U2VlDQogICAgICAgIFNlY3Rpb24gNS4yIGZvciBhbiBleGFtcGxlIG9mIGEgd29ya2luZyBBU04g YWxsb2NhdGlvbiBzY2hlbWUuICBJbg0KICAgICAgICBhIGxpbmstc3RhdGUgSUdQIGFjY29tcGxp c2hpbmcgdGhlIHNhbWUgZ29hbCB3b3VsZCByZXF1aXJlIG11bHRpLQ0KISAgICAgICAoaW5zdGFu Y2UvdG9wb2xvZ3kvcHJvY2Vzc2VzKSBzdXBwb3J0LCB0eXBpY2FsbHkgbm90IGF2YWlsYWJsZSBp bg0KICAgICAgICBhbGwgREMgZGV2aWNlcyBhbmQgcXVpdGUgY29tcGxleCB0byBjb25maWd1cmUg YW5kIHRyb3VibGVzaG9vdC4NCiAgICAgICAgVXNpbmcgYSB0cmFkaXRpb25hbCBzaW5nbGUgZmxv b2RpbmcgZG9tYWluLCB3aGljaCBtb3N0IERDIGRlc2lnbnMNCiAgICAgICAgdXRpbGl6ZSwgdW5k ZXIgY2VydGFpbiBmYWlsdXJlIGNvbmRpdGlvbnMgbWF5IHBpY2sgdXAgdW53YW50ZWQNCiEgICAg ICAgbGVuZ3RoeSBwYXRocywgZS5nLiB0cmF2ZXJzaW5nIG11bHRpcGxlIFRpZXItMiBkZXZpY2Vz Lg0KDQogICAgIG8gIEVCR1AgY29uZmlndXJhdGlvbiB0aGF0IGlzIGltcGxlbWVudGVkIHdpdGgg bWluaW1hbCByb3V0aW5nIHBvbGljeQ0KICAgICAgICBpcyBlYXNpZXIgdG8gdHJvdWJsZXNob290 IGZvciBuZXR3b3JrIHJlYWNoYWJpbGl0eSBpc3N1ZXMuICBJbg0KLS0tIDc2NSw3NzUgLS0tLQ0K ICAgICAgICBjb250cm9sbGVkIGFuZCBjb21wbGV4IHVud2FudGVkIHBhdGhzIHdpbGwgYmUgaWdu b3JlZC4gIFNlZQ0KICAgICAgICBTZWN0aW9uIDUuMiBmb3IgYW4gZXhhbXBsZSBvZiBhIHdvcmtp bmcgQVNOIGFsbG9jYXRpb24gc2NoZW1lLiAgSW4NCiAgICAgICAgYSBsaW5rLXN0YXRlIElHUCBh Y2NvbXBsaXNoaW5nIHRoZSBzYW1lIGdvYWwgd291bGQgcmVxdWlyZSBtdWx0aS0NCiEgICAgICAg KGluc3RhbmNlL3RvcG9sb2d5L3Byb2Nlc3MpIHN1cHBvcnQsIHR5cGljYWxseSBub3QgYXZhaWxh YmxlIGluDQogICAgICAgIGFsbCBEQyBkZXZpY2VzIGFuZCBxdWl0ZSBjb21wbGV4IHRvIGNvbmZp Z3VyZSBhbmQgdHJvdWJsZXNob290Lg0KICAgICAgICBVc2luZyBhIHRyYWRpdGlvbmFsIHNpbmds ZSBmbG9vZGluZyBkb21haW4sIHdoaWNoIG1vc3QgREMgZGVzaWducw0KICAgICAgICB1dGlsaXpl LCB1bmRlciBjZXJ0YWluIGZhaWx1cmUgY29uZGl0aW9ucyBtYXkgcGljayB1cCB1bndhbnRlZA0K ISAgICAgICBsZW5ndGh5IHBhdGhzLCBlLmcuLCB0cmF2ZXJzaW5nIG11bHRpcGxlIFRpZXItMiBk ZXZpY2VzLg0KDQogICAgIG8gIEVCR1AgY29uZmlndXJhdGlvbiB0aGF0IGlzIGltcGxlbWVudGVk IHdpdGggbWluaW1hbCByb3V0aW5nIHBvbGljeQ0KICAgICAgICBpcyBlYXNpZXIgdG8gdHJvdWJs ZXNob290IGZvciBuZXR3b3JrIHJlYWNoYWJpbGl0eSBpc3N1ZXMuICBJbg0KKioqKioqKioqKioq KioqDQoqKiogODA2LDgxMiAqKioqDQogICAgICAgIGxvb3BiYWNrIHNlc3Npb25zIGFyZSB1c2Vk IGV2ZW4gaW4gdGhlIGNhc2Ugb2YgbXVsdGlwbGUgbGlua3MNCiAgICAgICAgYmV0d2VlbiB0aGUg c2FtZSBwYWlyIG9mIG5vZGVzLg0KDQohICAgIG8gIFByaXZhdGUgVXNlIEFTTnMgZnJvbSB0aGUg cmFuZ2UgNjQ1MTItNjU1MzQgYXJlIHVzZWQgc28gYXMgdG8NCiAgICAgICAgYXZvaWQgQVNOIGNv bmZsaWN0cy4NCg0KICAgICBvICBBIHNpbmdsZSBBU04gaXMgYWxsb2NhdGVkIHRvIGFsbCBvZiB0 aGUgQ2xvcyB0b3BvbG9neSdzIFRpZXItMQ0KLS0tIDgwNiw4MTIgLS0tLQ0KICAgICAgICBsb29w YmFjayBzZXNzaW9ucyBhcmUgdXNlZCBldmVuIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlIGxpbmtz DQogICAgICAgIGJldHdlZW4gdGhlIHNhbWUgcGFpciBvZiBub2Rlcy4NCg0KISAgICBvICBQcml2 YXRlIFVzZSBBU05zIGZyb20gdGhlIHJhbmdlIDY0NTEyLTY1NTM0IGFyZSB1c2VkIHRvDQogICAg ICAgIGF2b2lkIEFTTiBjb25mbGljdHMuDQoNCiAgICAgbyAgQSBzaW5nbGUgQVNOIGlzIGFsbG9j YXRlZCB0byBhbGwgb2YgdGhlIENsb3MgdG9wb2xvZ3kncyBUaWVyLTENCioqKioqKioqKioqKioq Kg0KKioqIDgxNSw4MjEgKioqKg0KICAgICBvICBBIHVuaXF1ZSBBU04gaXMgYWxsb2NhdGVkIHRv IGVhY2ggc2V0IG9mIFRpZXItMiBkZXZpY2VzIGluIHRoZQ0KICAgICAgICBzYW1lIGNsdXN0ZXIu DQoNCiEgICAgbyAgQSB1bmlxdWUgQVNOIGlzIGFsbG9jYXRlZCB0byBldmVyeSBUaWVyLTMgZGV2 aWNlIChlLmcuICBUb1IpIGluDQogICAgICAgIHRoaXMgdG9wb2xvZ3kuDQoNCg0KLS0tIDgxNSw4 MjEgLS0tLQ0KICAgICBvICBBIHVuaXF1ZSBBU04gaXMgYWxsb2NhdGVkIHRvIGVhY2ggc2V0IG9m IFRpZXItMiBkZXZpY2VzIGluIHRoZQ0KICAgICAgICBzYW1lIGNsdXN0ZXIuDQoNCiEgICAgbyAg QSB1bmlxdWUgQVNOIGlzIGFsbG9jYXRlZCB0byBldmVyeSBUaWVyLTMgZGV2aWNlIChlLmcuLCAg VG9SKSBpbg0KICAgICAgICB0aGlzIHRvcG9sb2d5Lg0KDQoNCioqKioqKioqKioqKioqKg0KKioq IDkwMyw5MjIgKioqKg0KDQogICAgIEFub3RoZXIgc29sdXRpb24gdG8gdGhpcyBwcm9ibGVtIHdv dWxkIGJlIHVzaW5nIEZvdXItT2N0ZXQgQVNOcw0KICAgICAoW1JGQzY3OTNdKSwgd2hlcmUgdGhl cmUgYXJlIGFkZGl0aW9uYWwgUHJpdmF0ZSBVc2UgQVNOcyBhdmFpbGFibGUsDQohICAgIHNlZSBb SUFOQS5BUzxodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cC0z QV9fSUFOQS5BUyZkPUN3TUZhUSZjPTVWRDBSVHRObFRoM3ljZDQxYjNNVXcmcj1MVV92SmFNX0VR dTFTc20zNWoyeGxBJm09amx3bXFSTVNCYnpXSVJvcklfc0RBTTFpMEx1dU9kTEZtSkRWTkxwdElZ YyZzPXlXYTZrU0NjMk93d1ZhTmZ5Mm5CZ1pfTkxVTDRrSC1RTFAxQk5iMVphTFUmZT0+XS4gIFVz ZSBvZiBGb3VyLU9jdGV0IEFTTnMgcHV0IGFkZGl0aW9uYWwgcHJvdG9jb2wNCiEgICAgY29tcGxl eGl0eSBpbiB0aGUgQkdQIGltcGxlbWVudGF0aW9uIHNvIHNob3VsZCBiZSBjb25zaWRlcmVkIGFn YWluc3QNCiAgICAgdGhlIGNvbXBsZXhpdHkgb2YgcmUtdXNlIHdoZW4gY29uc2lkZXJpbmcgUkVR MyBhbmQgUkVRNC4gIFBlcmhhcHMNCiAgICAgbW9yZSBpbXBvcnRhbnRseSwgdGhleSBhcmUgbm90 IHlldCBzdXBwb3J0ZWQgYnkgYWxsIEJHUA0KICAgICBpbXBsZW1lbnRhdGlvbnMsIHdoaWNoIG1h eSBsaW1pdCB2ZW5kb3Igc2VsZWN0aW9uIG9mIERDIGVxdWlwbWVudC4NCiEgICAgV2hlbiBzdXBw b3J0ZWQsIGVuc3VyZSB0aGF0IGltcGxlbWVudGF0aW9ucyBpbiB1c2UgYXJlIGFibGUgdG8gcmVt b3ZlDQohICAgIHRoZSBQcml2YXRlIFVzZSBBU05zIGlmIHJlcXVpcmVkIGZvciBleHRlcm5hbCBj b25uZWN0aXZpdHkNCiEgICAgKFNlY3Rpb24gNS4yLjQpLg0KDQogIDUuMi4zLiAgUHJlZml4IEFk dmVydGlzZW1lbnQNCg0KICAgICBBIENsb3MgdG9wb2xvZ3kgZmVhdHVyZXMgYSBsYXJnZSBudW1i ZXIgb2YgcG9pbnQtdG8tcG9pbnQgbGlua3MgYW5kDQogICAgIGFzc29jaWF0ZWQgcHJlZml4ZXMu ICBBZHZlcnRpc2luZyBhbGwgb2YgdGhlc2Ugcm91dGVzIGludG8gQkdQIG1heQ0KISAgICBjcmVh dGUgRklCIG92ZXJsb2FkIGNvbmRpdGlvbnMgaW4gdGhlIG5ldHdvcmsgZGV2aWNlcy4gIEFkdmVy dGlzaW5nDQogICAgIHRoZXNlIGxpbmtzIGFsc28gcHV0cyBhZGRpdGlvbmFsIHBhdGggY29tcHV0 YXRpb24gc3RyZXNzIG9uIHRoZSBCR1ANCiAgICAgY29udHJvbCBwbGFuZSBmb3IgbGl0dGxlIGJl bmVmaXQuICBUaGVyZSBhcmUgdHdvIHBvc3NpYmxlIHNvbHV0aW9uczoNCg0KLS0tIDkwMyw5MjIg LS0tLQ0KDQogICAgIEFub3RoZXIgc29sdXRpb24gdG8gdGhpcyBwcm9ibGVtIHdvdWxkIGJlIHVz aW5nIEZvdXItT2N0ZXQgQVNOcw0KICAgICAoW1JGQzY3OTNdKSwgd2hlcmUgdGhlcmUgYXJlIGFk ZGl0aW9uYWwgUHJpdmF0ZSBVc2UgQVNOcyBhdmFpbGFibGUsDQohICAgIHNlZSBbSUFOQS5BUzxo dHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cC0zQV9fSUFOQS5B UyZkPUN3TUZhUSZjPTVWRDBSVHRObFRoM3ljZDQxYjNNVXcmcj1MVV92SmFNX0VRdTFTc20zNWoy eGxBJm09amx3bXFSTVNCYnpXSVJvcklfc0RBTTFpMEx1dU9kTEZtSkRWTkxwdElZYyZzPXlXYTZr U0NjMk93d1ZhTmZ5Mm5CZ1pfTkxVTDRrSC1RTFAxQk5iMVphTFUmZT0+XS4gIFVzZSBvZiBGb3Vy LU9jdGV0IEFTTnMgcHV0cyBhZGRpdGlvbmFsIHByb3RvY29sDQohICAgIGNvbXBsZXhpdHkgaW4g dGhlIEJHUCBpbXBsZW1lbnRhdGlvbiBhbmQgc2hvdWxkIGJlIGJhbGFuY2VkIGFnYWluc3QNCiAg ICAgdGhlIGNvbXBsZXhpdHkgb2YgcmUtdXNlIHdoZW4gY29uc2lkZXJpbmcgUkVRMyBhbmQgUkVR NC4gIFBlcmhhcHMNCiAgICAgbW9yZSBpbXBvcnRhbnRseSwgdGhleSBhcmUgbm90IHlldCBzdXBw b3J0ZWQgYnkgYWxsIEJHUA0KICAgICBpbXBsZW1lbnRhdGlvbnMsIHdoaWNoIG1heSBsaW1pdCB2 ZW5kb3Igc2VsZWN0aW9uIG9mIERDIGVxdWlwbWVudC4NCiEgICAgV2hlbiBzdXBwb3J0ZWQsIGVu c3VyZSB0aGF0IGRlcGxveWVkIGltcGxlbWVudGF0aW9ucyBhcmUgYWJsZSB0bw0KcmVtb3ZlDQoh ICAgIHRoZSBQcml2YXRlIFVzZSBBU05zIHdoZW4gZXh0ZXJuYWwgY29ubmVjdGl2aXR5IHRvIHRo ZXNlIEFTZXMgaXMNCiEgICAgcmVxdWlyZWQgKFNlY3Rpb24gNS4yLjQpLg0KDQogIDUuMi4zLiAg UHJlZml4IEFkdmVydGlzZW1lbnQNCg0KICAgICBBIENsb3MgdG9wb2xvZ3kgZmVhdHVyZXMgYSBs YXJnZSBudW1iZXIgb2YgcG9pbnQtdG8tcG9pbnQgbGlua3MgYW5kDQogICAgIGFzc29jaWF0ZWQg cHJlZml4ZXMuICBBZHZlcnRpc2luZyBhbGwgb2YgdGhlc2Ugcm91dGVzIGludG8gQkdQIG1heQ0K ISAgICBjcmVhdGUgRklCIG92ZXJsb2FkIGluIHRoZSBuZXR3b3JrIGRldmljZXMuICBBZHZlcnRp c2luZw0KICAgICB0aGVzZSBsaW5rcyBhbHNvIHB1dHMgYWRkaXRpb25hbCBwYXRoIGNvbXB1dGF0 aW9uIHN0cmVzcyBvbiB0aGUgQkdQDQogICAgIGNvbnRyb2wgcGxhbmUgZm9yIGxpdHRsZSBiZW5l Zml0LiAgVGhlcmUgYXJlIHR3byBwb3NzaWJsZSBzb2x1dGlvbnM6DQoNCioqKioqKioqKioqKioq Kg0KKioqIDkyNSw5NTEgKioqKg0KICAgICAgICBkZXZpY2UsIGRpc3RhbnQgbmV0d29ya3Mgd2ls bCBhdXRvbWF0aWNhbGx5IGJlIHJlYWNoYWJsZSB2aWEgdGhlDQogICAgICAgIGFkdmVydGlzaW5n IEVCR1AgcGVlciBhbmQgZG8gbm90IHJlcXVpcmUgcmVhY2hhYmlsaXR5IHRvIHRoZXNlDQogICAg ICAgIHByZWZpeGVzLiAgSG93ZXZlciwgdGhpcyBtYXkgY29tcGxpY2F0ZSBvcGVyYXRpb25zIG9y IG1vbml0b3Jpbmc6DQohICAgICAgIGUuZy4gdXNpbmcgdGhlIHBvcHVsYXIgInRyYWNlcm91dGUi IHRvb2wgd2lsbCBkaXNwbGF5IElQIGFkZHJlc3Nlcw0KICAgICAgICB0aGF0IGFyZSBub3QgcmVh Y2hhYmxlLg0KDQogICAgIG8gIEFkdmVydGlzZSBwb2ludC10by1wb2ludCBsaW5rcywgYnV0IHN1 bW1hcml6ZSB0aGVtIG9uIGV2ZXJ5DQogICAgICAgIGRldmljZS4gIFRoaXMgcmVxdWlyZXMgYW4g YWRkcmVzcyBhbGxvY2F0aW9uIHNjaGVtZSBzdWNoIGFzDQogICAgICAgIGFsbG9jYXRpbmcgYSBj b25zZWN1dGl2ZSBibG9jayBvZiBJUCBhZGRyZXNzZXMgcGVyIFRpZXItMSBhbmQNCiAgICAgICAg VGllci0yIGRldmljZSB0byBiZSB1c2VkIGZvciBwb2ludC10by1wb2ludCBpbnRlcmZhY2UgYWRk cmVzc2luZw0KISAgICAgICB0byB0aGUgbG93ZXIgbGF5ZXJzIChUaWVyLTIgdXBsaW5rcyB3aWxs IGJlIG51bWJlcmVkIG91dCBvZiBUaWVyLTENCiEgICAgICAgYWRkcmVzc2luZyBhbmQgc28gZm9y dGgpLg0KDQogICAgIFNlcnZlciBzdWJuZXRzIG9uIFRpZXItMyBkZXZpY2VzIG11c3QgYmUgYW5u b3VuY2VkIGludG8gQkdQIHdpdGhvdXQNCiAgICAgdXNpbmcgcm91dGUgc3VtbWFyaXphdGlvbiBv biBUaWVyLTIgYW5kIFRpZXItMSBkZXZpY2VzLiAgU3VtbWFyaXppbmcNCiAgICAgc3VibmV0cyBp biBhIENsb3MgdG9wb2xvZ3kgcmVzdWx0cyBpbiByb3V0ZSBibGFjay1ob2xpbmcgdW5kZXIgYQ0K ISAgICBzaW5nbGUgbGluayBmYWlsdXJlIChlLmcuIGJldHdlZW4gVGllci0yIGFuZCBUaWVyLTMg ZGV2aWNlcykgYW5kDQogICAgIGhlbmNlIG11c3QgYmUgYXZvaWRlZC4gIFRoZSB1c2Ugb2YgcGVl ciBsaW5rcyB3aXRoaW4gdGhlIHNhbWUgdGllciB0bw0KICAgICByZXNvbHZlIHRoZSBibGFjay1o b2xpbmcgcHJvYmxlbSBieSBwcm92aWRpbmcgImJ5cGFzcyBwYXRocyIgaXMNCiAgICAgdW5kZXNp cmFibGUgZHVlIHRvIE8oTl4yKSBjb21wbGV4aXR5IG9mIHRoZSBwZWVyaW5nIG1lc2ggYW5kIHdh c3RlIG9mDQogICAgIHBvcnRzIG9uIHRoZSBkZXZpY2VzLiAgQW4gYWx0ZXJuYXRpdmUgdG8gdGhl IGZ1bGwtbWVzaCBvZiBwZWVyLWxpbmtzDQohICAgIHdvdWxkIGJlIHVzaW5nIGEgc2ltcGxlciBi eXBhc3MgdG9wb2xvZ3ksIGUuZy4gYSAicmluZyIgYXMgZGVzY3JpYmVkDQogICAgIGluIFtGQjRQ T1NUXSwgYnV0IHN1Y2ggYSB0b3BvbG9neSBhZGRzIGV4dHJhIGhvcHMgYW5kIGhhcyB2ZXJ5DQoh ICAgIGxpbWl0ZWQgYmlzZWN0aW9uIGJhbmR3aWR0aCwgaW4gYWRkaXRpb24gcmVxdWlyaW5nIHNw ZWNpYWwgdHdlYWtzIHRvDQoNCg0KDQotLS0gOTI1LDk1MSAtLS0tDQogICAgICAgIGRldmljZSwg ZGlzdGFudCBuZXR3b3JrcyB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgcmVhY2hhYmxlIHZpYSB0aGUN CiAgICAgICAgYWR2ZXJ0aXNpbmcgRUJHUCBwZWVyIGFuZCBkbyBub3QgcmVxdWlyZSByZWFjaGFi aWxpdHkgdG8gdGhlc2UNCiAgICAgICAgcHJlZml4ZXMuICBIb3dldmVyLCB0aGlzIG1heSBjb21w bGljYXRlIG9wZXJhdGlvbnMgb3IgbW9uaXRvcmluZzoNCiEgICAgICAgZS5nLiwgdXNpbmcgdGhl IHBvcHVsYXIgInRyYWNlcm91dGUiIHRvb2wgd2lsbCBkaXNwbGF5IElQIGFkZHJlc3Nlcw0KICAg ICAgICB0aGF0IGFyZSBub3QgcmVhY2hhYmxlLg0KDQogICAgIG8gIEFkdmVydGlzZSBwb2ludC10 by1wb2ludCBsaW5rcywgYnV0IHN1bW1hcml6ZSB0aGVtIG9uIGV2ZXJ5DQogICAgICAgIGRldmlj ZS4gIFRoaXMgcmVxdWlyZXMgYW4gYWRkcmVzcyBhbGxvY2F0aW9uIHNjaGVtZSBzdWNoIGFzDQog ICAgICAgIGFsbG9jYXRpbmcgYSBjb25zZWN1dGl2ZSBibG9jayBvZiBJUCBhZGRyZXNzZXMgcGVy IFRpZXItMSBhbmQNCiAgICAgICAgVGllci0yIGRldmljZSB0byBiZSB1c2VkIGZvciBwb2ludC10 by1wb2ludCBpbnRlcmZhY2UgYWRkcmVzc2luZw0KISAgICAgICB0byB0aGUgbG93ZXIgbGF5ZXJz IChUaWVyLTIgdXBsaW5rIGFkZHJlc3NlcyB3aWxsIGJlIGFsbG9jYXRlZA0KISAgICAgICBmcm9t IFRpZXItMSBhZGRyZXNzIGJsb2NrcyBhbmQgc28gZm9ydGgpLg0KDQogICAgIFNlcnZlciBzdWJu ZXRzIG9uIFRpZXItMyBkZXZpY2VzIG11c3QgYmUgYW5ub3VuY2VkIGludG8gQkdQIHdpdGhvdXQN CiAgICAgdXNpbmcgcm91dGUgc3VtbWFyaXphdGlvbiBvbiBUaWVyLTIgYW5kIFRpZXItMSBkZXZp Y2VzLiAgU3VtbWFyaXppbmcNCiAgICAgc3VibmV0cyBpbiBhIENsb3MgdG9wb2xvZ3kgcmVzdWx0 cyBpbiByb3V0ZSBibGFjay1ob2xpbmcgdW5kZXIgYQ0KISAgICBzaW5nbGUgbGluayBmYWlsdXJl IChlLmcuLCBiZXR3ZWVuIFRpZXItMiBhbmQgVGllci0zIGRldmljZXMpIGFuZA0KICAgICBoZW5j ZSBtdXN0IGJlIGF2b2lkZWQuICBUaGUgdXNlIG9mIHBlZXIgbGlua3Mgd2l0aGluIHRoZSBzYW1l IHRpZXIgdG8NCiAgICAgcmVzb2x2ZSB0aGUgYmxhY2staG9saW5nIHByb2JsZW0gYnkgcHJvdmlk aW5nICJieXBhc3MgcGF0aHMiIGlzDQogICAgIHVuZGVzaXJhYmxlIGR1ZSB0byBPKE5eMikgY29t cGxleGl0eSBvZiB0aGUgcGVlcmluZyBtZXNoIGFuZCB3YXN0ZSBvZg0KICAgICBwb3J0cyBvbiB0 aGUgZGV2aWNlcy4gIEFuIGFsdGVybmF0aXZlIHRvIHRoZSBmdWxsLW1lc2ggb2YgcGVlci1saW5r cw0KISAgICB3b3VsZCBiZSB1c2luZyBhIHNpbXBsZXIgYnlwYXNzIHRvcG9sb2d5LCBlLmcuLCBh ICJyaW5nIiBhcyBkZXNjcmliZWQNCiAgICAgaW4gW0ZCNFBPU1RdLCBidXQgc3VjaCBhIHRvcG9s b2d5IGFkZHMgZXh0cmEgaG9wcyBhbmQgaGFzIHZlcnkNCiEgICAgbGltaXRlZCBiaXNlY3Rpb25h bCBiYW5kd2lkdGguIEFkZGl0aW9uYWxseSByZXF1aXJpbmcgc3BlY2lhbCB0d2Vha3MNCnRvDQoN Cg0KDQoqKioqKioqKioqKioqKioNCioqKiA5NTYsOTYzICoqKioNCg0KICAgICBtYWtlIEJHUCBy b3V0aW5nIHdvcmsgLSBzdWNoIGFzIHBvc3NpYmx5IHNwbGl0dGluZyBldmVyeSBkZXZpY2UgaW50 bw0KICAgICBhbiBBU04gb24gaXRzIG93bi4gIExhdGVyIGluIHRoaXMgZG9jdW1lbnQsIFNlY3Rp b24gOC4yIGludHJvZHVjZXMgYQ0KISAgICBsZXNzIGludHJ1c2l2ZSBtZXRob2QgZm9yIHBlcmZv cm1pbmcgYSBsaW1pdGVkIGZvcm0gcm91dGUNCiEgICAgc3VtbWFyaXphdGlvbiBpbiBDbG9zIG5l dHdvcmtzIGFuZCBkaXNjdXNzZXMgaXQncyBhc3NvY2lhdGVkIHRyYWRlLQ0KICAgICBvZmZzLg0K DQogIDUuMi40LiAgRXh0ZXJuYWwgQ29ubmVjdGl2aXR5DQotLS0gOTU2LDk2MyAtLS0tDQoNCiAg ICAgbWFrZSBCR1Agcm91dGluZyB3b3JrIC0gc3VjaCBhcyBwb3NzaWJseSBzcGxpdHRpbmcgZXZl cnkgZGV2aWNlIGludG8NCiAgICAgYW4gQVNOIG9uIGl0cyBvd24uICBMYXRlciBpbiB0aGlzIGRv Y3VtZW50LCBTZWN0aW9uIDguMiBpbnRyb2R1Y2VzIGENCiEgICAgbGVzcyBpbnRydXNpdmUgbWV0 aG9kIGZvciBwZXJmb3JtaW5nIGEgbGltaXRlZCBmb3JtIG9mIHJvdXRlDQohICAgIHN1bW1hcml6 YXRpb24gaW4gQ2xvcyBuZXR3b3JrcyBhbmQgZGlzY3Vzc2VzIGl0cyBhc3NvY2lhdGVkIHRyYWRl LQ0KICAgICBvZmZzLg0KDQogIDUuMi40LiAgRXh0ZXJuYWwgQ29ubmVjdGl2aXR5DQoqKioqKioq KioqKioqKioNCioqKiA5NzIsOTg1ICoqKioNCiAgICAgZG9jdW1lbnQuICBUaGVzZSBkZXZpY2Vz IGhhdmUgdG8gcGVyZm9ybSBhIGZldyBzcGVjaWFsIGZ1bmN0aW9uczoNCg0KICAgICBvICBIaWRl IG5ldHdvcmsgdG9wb2xvZ3kgaW5mb3JtYXRpb24gd2hlbiBhZHZlcnRpc2luZyBwYXRocyB0byBX QU4NCiEgICAgICAgcm91dGVycywgaS5lLiByZW1vdmUgUHJpdmF0ZSBVc2UgQVNOcyBbUkZDNjk5 Nl0gZnJvbSB0aGUgQVNfUEFUSA0KICAgICAgICBhdHRyaWJ1dGUuICBUaGlzIGlzIHR5cGljYWxs eSBkb25lIHRvIGF2b2lkIEFTTiBudW1iZXIgY29sbGlzaW9ucw0KICAgICAgICBiZXR3ZWVuIGRp ZmZlcmVudCBkYXRhIGNlbnRlcnMgYW5kIGFsc28gdG8gcHJvdmlkZSBhIHVuaWZvcm0NCiAgICAg ICAgQVNfUEFUSCBsZW5ndGggdG8gdGhlIFdBTiBmb3IgcHVycG9zZXMgb2YgV0FOIEVDTVAgdG8g QW55Y2FzdA0KICAgICAgICBwcmVmaXhlcyBvcmlnaW5hdGVkIGluIHRoZSB0b3BvbG9neS4gIEFu IGltcGxlbWVudGF0aW9uIHNwZWNpZmljDQogICAgICAgIEJHUCBmZWF0dXJlIHR5cGljYWxseSBj YWxsZWQgIlJlbW92ZSBQcml2YXRlIEFTIiBpcyBjb21tb25seSB1c2VkDQogICAgICAgIHRvIGFj Y29tcGxpc2ggdGhpcy4gIERlcGVuZGluZyBvbiBpbXBsZW1lbnRhdGlvbiwgdGhlIGZlYXR1cmUN CiEgICAgICAgc2hvdWxkIHN0cmlwIGEgY29udGlndW91cyBzZXF1ZW5jZSBvZiBQcml2YXRlIFVz ZSBBU05zIGZvdW5kIGluDQogICAgICAgIEFTX1BBVEggYXR0cmlidXRlIHByaW9yIHRvIGFkdmVy dGlzaW5nIHRoZSBwYXRoIHRvIGEgbmVpZ2hib3IuDQogICAgICAgIFRoaXMgYXNzdW1lcyB0aGF0 IGFsbCBBU05zIHVzZWQgZm9yIGludHJhIGRhdGEgY2VudGVyIG51bWJlcmluZw0KICAgICAgICBh cmUgZnJvbSB0aGUgUHJpdmF0ZSBVc2UgcmFuZ2VzLiAgVGhlIHByb2Nlc3MgZm9yIHN0cmlwcGlu ZyB0aGUNCi0tLSA5NzIsOTg1IC0tLS0NCiAgICAgZG9jdW1lbnQuICBUaGVzZSBkZXZpY2VzIGhh dmUgdG8gcGVyZm9ybSBhIGZldyBzcGVjaWFsIGZ1bmN0aW9uczoNCg0KICAgICBvICBIaWRlIG5l dHdvcmsgdG9wb2xvZ3kgaW5mb3JtYXRpb24gd2hlbiBhZHZlcnRpc2luZyBwYXRocyB0byBXQU4N CiEgICAgICAgcm91dGVycywgaS5lLiwgcmVtb3ZlIFByaXZhdGUgVXNlIEFTTnMgW1JGQzY5OTZd IGZyb20gdGhlIEFTX1BBVEgNCiAgICAgICAgYXR0cmlidXRlLiAgVGhpcyBpcyB0eXBpY2FsbHkg ZG9uZSB0byBhdm9pZCBBU04gbnVtYmVyIGNvbGxpc2lvbnMNCiAgICAgICAgYmV0d2VlbiBkaWZm ZXJlbnQgZGF0YSBjZW50ZXJzIGFuZCBhbHNvIHRvIHByb3ZpZGUgYSB1bmlmb3JtDQogICAgICAg IEFTX1BBVEggbGVuZ3RoIHRvIHRoZSBXQU4gZm9yIHB1cnBvc2VzIG9mIFdBTiBFQ01QIHRvIEFu eWNhc3QNCiAgICAgICAgcHJlZml4ZXMgb3JpZ2luYXRlZCBpbiB0aGUgdG9wb2xvZ3kuICBBbiBp bXBsZW1lbnRhdGlvbiBzcGVjaWZpYw0KICAgICAgICBCR1AgZmVhdHVyZSB0eXBpY2FsbHkgY2Fs bGVkICJSZW1vdmUgUHJpdmF0ZSBBUyIgaXMgY29tbW9ubHkgdXNlZA0KICAgICAgICB0byBhY2Nv bXBsaXNoIHRoaXMuICBEZXBlbmRpbmcgb24gaW1wbGVtZW50YXRpb24sIHRoZSBmZWF0dXJlDQoh ICAgICAgIHNob3VsZCBzdHJpcCBhIGNvbnRpZ3VvdXMgc2VxdWVuY2Ugb2YgUHJpdmF0ZSBVc2Ug QVNOcyBmb3VuZCBpbiBhbg0KICAgICAgICBBU19QQVRIIGF0dHJpYnV0ZSBwcmlvciB0byBhZHZl cnRpc2luZyB0aGUgcGF0aCB0byBhIG5laWdoYm9yLg0KICAgICAgICBUaGlzIGFzc3VtZXMgdGhh dCBhbGwgQVNOcyB1c2VkIGZvciBpbnRyYSBkYXRhIGNlbnRlciBudW1iZXJpbmcNCiAgICAgICAg YXJlIGZyb20gdGhlIFByaXZhdGUgVXNlIHJhbmdlcy4gIFRoZSBwcm9jZXNzIGZvciBzdHJpcHBp bmcgdGhlDQoqKioqKioqKioqKioqKioNCioqKiA5OTgsMTAwNSAqKioqDQogICAgICAgIHRvIHRo ZSBXQU4gUm91dGVycyB1cHN0cmVhbSwgdG8gcHJvdmlkZSByZXNpc3RhbmNlIHRvIGEgc2luZ2xl LQ0KICAgICAgICBsaW5rIGZhaWx1cmUgY2F1c2luZyB0aGUgYmxhY2staG9saW5nIG9mIHRyYWZm aWMuICBUbyBwcmV2ZW50DQogICAgICAgIGJsYWNrLWhvbGluZyBpbiB0aGUgc2l0dWF0aW9uIHdo ZW4gYWxsIG9mIHRoZSBFQkdQIHNlc3Npb25zIHRvIHRoZQ0KISAgICAgICBXQU4gcm91dGVycyBm YWlsIHNpbXVsdGFuZW91c2x5IG9uIGEgZ2l2ZW4gZGV2aWNlIGl0IGlzIG1vcmUNCiEgICAgICAg ZGVzaXJhYmxlIHRvIHRha2UgdGhlICJyZWxheWluZyIgYXBwcm9hY2ggcmF0aGVyIHRoYW4gaW50 cm9kdWNpbmcNCiAgICAgICAgdGhlIGRlZmF1bHQgcm91dGUgdmlhIGNvbXBsaWNhdGVkIGNvbmRp dGlvbmFsIHJvdXRlIG9yaWdpbmF0aW9uDQogICAgICAgIHNjaGVtZXMgcHJvdmlkZWQgYnkgc29t ZSBpbXBsZW1lbnRhdGlvbnMgW0NPTkRJVElPTkFMUk9VVEVdLg0KDQotLS0gOTk4LDEwMDUgLS0t LQ0KICAgICAgICB0byB0aGUgV0FOIFJvdXRlcnMgdXBzdHJlYW0sIHRvIHByb3ZpZGUgcmVzaXN0 YW5jZSB0byBhIHNpbmdsZS0NCiAgICAgICAgbGluayBmYWlsdXJlIGNhdXNpbmcgdGhlIGJsYWNr LWhvbGluZyBvZiB0cmFmZmljLiAgVG8gcHJldmVudA0KICAgICAgICBibGFjay1ob2xpbmcgaW4g dGhlIHNpdHVhdGlvbiB3aGVuIGFsbCBvZiB0aGUgRUJHUCBzZXNzaW9ucyB0byB0aGUNCiEgICAg ICAgV0FOIHJvdXRlcnMgZmFpbCBzaW11bHRhbmVvdXNseSBvbiBhIGdpdmVuIGRldmljZSwgaXQg aXMgbW9yZQ0KISAgICAgICBkZXNpcmFibGUgdG8gcmVhZHZlcnRpc2UgdGhlIGRlZmF1bHQgcm91 dGUgcmF0aGVyIHRoYW4gb3JpZ2luYXRpbmcNCiAgICAgICAgdGhlIGRlZmF1bHQgcm91dGUgdmlh IGNvbXBsaWNhdGVkIGNvbmRpdGlvbmFsIHJvdXRlIG9yaWdpbmF0aW9uDQogICAgICAgIHNjaGVt ZXMgcHJvdmlkZWQgYnkgc29tZSBpbXBsZW1lbnRhdGlvbnMgW0NPTkRJVElPTkFMUk9VVEVdLg0K DQoqKioqKioqKioqKioqKioNCioqKiAxMDE3LDEwMjMgKioqKg0KICAgICBwcmVmaXhlcyBvcmln aW5hdGVkIGZyb20gd2l0aGluIHRoZSBkYXRhIGNlbnRlciBpbiBhIGZ1bGx5IHJvdXRlZA0KICAg ICBuZXR3b3JrIGRlc2lnbi4gIEZvciBleGFtcGxlLCBhIG5ldHdvcmsgd2l0aCAyMDAwIFRpZXIt MyBkZXZpY2VzIHdpbGwNCiAgICAgaGF2ZSBhdCBsZWFzdCAyMDAwIHNlcnZlcnMgc3VibmV0cyBh ZHZlcnRpc2VkIGludG8gQkdQLCBhbG9uZyB3aXRoDQohICAgIHRoZSBpbmZyYXN0cnVjdHVyZSBv ciBvdGhlciBwcmVmaXhlcy4gIEhvd2V2ZXIsIGFzIGRpc2N1c3NlZCBiZWZvcmUsDQogICAgIHRo ZSBwcm9wb3NlZCBuZXR3b3JrIGRlc2lnbiBkb2VzIG5vdCBhbGxvdyBmb3Igcm91dGUgc3VtbWFy aXphdGlvbg0KICAgICBkdWUgdG8gdGhlIGxhY2sgb2YgcGVlciBsaW5rcyBpbnNpZGUgZXZlcnkg dGllci4NCg0KLS0tIDEwMTcsMTAyMyAtLS0tDQogICAgIHByZWZpeGVzIG9yaWdpbmF0ZWQgZnJv bSB3aXRoaW4gdGhlIGRhdGEgY2VudGVyIGluIGEgZnVsbHkgcm91dGVkDQogICAgIG5ldHdvcmsg ZGVzaWduLiAgRm9yIGV4YW1wbGUsIGEgbmV0d29yayB3aXRoIDIwMDAgVGllci0zIGRldmljZXMg d2lsbA0KICAgICBoYXZlIGF0IGxlYXN0IDIwMDAgc2VydmVycyBzdWJuZXRzIGFkdmVydGlzZWQg aW50byBCR1AsIGFsb25nIHdpdGgNCiEgICAgdGhlIGluZnJhc3RydWN0dXJlIGFuZCBsaW5rIHBy ZWZpeGVzLiAgSG93ZXZlciwgYXMgZGlzY3Vzc2VkIGJlZm9yZSwNCiAgICAgdGhlIHByb3Bvc2Vk IG5ldHdvcmsgZGVzaWduIGRvZXMgbm90IGFsbG93IGZvciByb3V0ZSBzdW1tYXJpemF0aW9uDQog ICAgIGR1ZSB0byB0aGUgbGFjayBvZiBwZWVyIGxpbmtzIGluc2lkZSBldmVyeSB0aWVyLg0KDQoq KioqKioqKioqKioqKioNCioqKiAxMDI4LDEwMzcgKioqKg0KICAgICBvICBJbnRlcmNvbm5lY3Qg dGhlIEJvcmRlciBSb3V0ZXJzIHVzaW5nIGEgZnVsbC1tZXNoIG9mIHBoeXNpY2FsDQogICAgICAg IGxpbmtzIG9yIHVzaW5nIGFueSBvdGhlciAicGVlci1tZXNoIiB0b3BvbG9neSwgc3VjaCBhcyBy aW5nIG9yDQogICAgICAgIGh1Yi1hbmQtc3Bva2UuICBDb25maWd1cmUgQkdQIGFjY29yZGluZ2x5 IG9uIGFsbCBCb3JkZXIgTGVhZnMgdG8NCiEgICAgICAgZXhjaGFuZ2UgbmV0d29yayByZWFjaGFi aWxpdHkgaW5mb3JtYXRpb24gLSBlLmcuIGJ5IGFkZGluZyBhIG1lc2gNCiAgICAgICAgb2YgSUJH UCBzZXNzaW9ucy4gIFRoZSBpbnRlcmNvbm5lY3RpbmcgcGVlciBsaW5rcyBuZWVkIHRvIGJlDQog ICAgICAgIGFwcHJvcHJpYXRlbHkgc2l6ZWQgZm9yIHRyYWZmaWMgdGhhdCB3aWxsIGJlIHByZXNl bnQgaW4gdGhlIGNhc2UNCiEgICAgICAgb2YgYSBkZXZpY2Ugb3IgbGluayBmYWlsdXJlIHVuZGVy bmVhdGggdGhlIEJvcmRlciBSb3V0ZXJzLg0KDQogICAgIG8gIFRpZXItMSBkZXZpY2VzIG1heSBo YXZlIGFkZGl0aW9uYWwgcGh5c2ljYWwgbGlua3MgcHJvdmlzaW9uZWQNCiAgICAgICAgdG93YXJk IHRoZSBCb3JkZXIgUm91dGVycyAod2hpY2ggYXJlIFRpZXItMiBkZXZpY2VzIGZyb20gdGhlDQot LS0gMTAyOCwxMDM3IC0tLS0NCiAgICAgbyAgSW50ZXJjb25uZWN0IHRoZSBCb3JkZXIgUm91dGVy cyB1c2luZyBhIGZ1bGwtbWVzaCBvZiBwaHlzaWNhbA0KICAgICAgICBsaW5rcyBvciB1c2luZyBh bnkgb3RoZXIgInBlZXItbWVzaCIgdG9wb2xvZ3ksIHN1Y2ggYXMgcmluZyBvcg0KICAgICAgICBo dWItYW5kLXNwb2tlLiAgQ29uZmlndXJlIEJHUCBhY2NvcmRpbmdseSBvbiBhbGwgQm9yZGVyIExl YWZzIHRvDQohICAgICAgIGV4Y2hhbmdlIG5ldHdvcmsgcmVhY2hhYmlsaXR5IGluZm9ybWF0aW9u LCBlLmcuLCBieSBhZGRpbmcgYSBtZXNoDQogICAgICAgIG9mIElCR1Agc2Vzc2lvbnMuICBUaGUg aW50ZXJjb25uZWN0aW5nIHBlZXIgbGlua3MgbmVlZCB0byBiZQ0KICAgICAgICBhcHByb3ByaWF0 ZWx5IHNpemVkIGZvciB0cmFmZmljIHRoYXQgd2lsbCBiZSBwcmVzZW50IGluIHRoZSBjYXNlDQoh ICAgICAgIG9mIGEgZGV2aWNlIG9yIGxpbmsgZmFpbHVyZSBpbiB0aGUgbWVzaCBjb25uZWN0aW5n IHRoZSBCb3JkZXINClJvdXRlcnMuDQoNCiAgICAgbyAgVGllci0xIGRldmljZXMgbWF5IGhhdmUg YWRkaXRpb25hbCBwaHlzaWNhbCBsaW5rcyBwcm92aXNpb25lZA0KICAgICAgICB0b3dhcmQgdGhl IEJvcmRlciBSb3V0ZXJzICh3aGljaCBhcmUgVGllci0yIGRldmljZXMgZnJvbSB0aGUNCioqKioq KioqKioqKioqKg0KKioqIDEwNDMsMTA0OSAqKioqDQogICAgICAgIGRldmljZSBjb21wYXJlZCB3 aXRoIHRoZSBvdGhlciBkZXZpY2VzIGluIHRoZSBDbG9zLiAgVGhpcyBhbHNvDQogICAgICAgIHJl ZHVjZXMgdGhlIG51bWJlciBvZiBwb3J0cyBhdmFpbGFibGUgdG8gInJlZ3VsYXIiIFRpZXItMiBz d2l0Y2hlcw0KICAgICAgICBhbmQgaGVuY2UgdGhlIG51bWJlciBvZiBjbHVzdGVycyB0aGF0IGNv dWxkIGJlIGludGVyY29ubmVjdGVkIHZpYQ0KISAgICAgICBUaWVyLTEgbGF5ZXIuDQoNCiAgICAg SWYgYW55IG9mIHRoZSBhYm92ZSBvcHRpb25zIGFyZSBpbXBsZW1lbnRlZCwgaXQgaXMgcG9zc2li bGUgdG8NCiAgICAgcGVyZm9ybSByb3V0ZSBzdW1tYXJpemF0aW9uIGF0IHRoZSBCb3JkZXIgUm91 dGVycyB0b3dhcmQgdGhlIFdBTg0KLS0tIDEwNDMsMTA0OSAtLS0tDQogICAgICAgIGRldmljZSBj b21wYXJlZCB3aXRoIHRoZSBvdGhlciBkZXZpY2VzIGluIHRoZSBDbG9zLiAgVGhpcyBhbHNvDQog ICAgICAgIHJlZHVjZXMgdGhlIG51bWJlciBvZiBwb3J0cyBhdmFpbGFibGUgdG8gInJlZ3VsYXIi IFRpZXItMiBzd2l0Y2hlcw0KICAgICAgICBhbmQgaGVuY2UgdGhlIG51bWJlciBvZiBjbHVzdGVy cyB0aGF0IGNvdWxkIGJlIGludGVyY29ubmVjdGVkIHZpYQ0KISAgICAgICB0aGUgVGllci0xIGxh eWVyLg0KDQogICAgIElmIGFueSBvZiB0aGUgYWJvdmUgb3B0aW9ucyBhcmUgaW1wbGVtZW50ZWQs IGl0IGlzIHBvc3NpYmxlIHRvDQogICAgIHBlcmZvcm0gcm91dGUgc3VtbWFyaXphdGlvbiBhdCB0 aGUgQm9yZGVyIFJvdXRlcnMgdG93YXJkIHRoZSBXQU4NCioqKioqKioqKioqKioqKg0KKioqIDEw NzEsMTA3OSAqKioqDQogICAgIEVDTVAgaXMgdGhlIGZ1bmRhbWVudGFsIGxvYWQgc2hhcmluZyBt ZWNoYW5pc20gdXNlZCBieSBhIENsb3MNCiAgICAgdG9wb2xvZ3kuICBFZmZlY3RpdmVseSwgZXZl cnkgbG93ZXItdGllciBkZXZpY2Ugd2lsbCB1c2UgYWxsIG9mIGl0cw0KICAgICBkaXJlY3RseSBh dHRhY2hlZCB1cHBlci10aWVyIGRldmljZXMgdG8gbG9hZCBzaGFyZSB0cmFmZmljIGRlc3RpbmVk DQohICAgIHRvIHRoZSBzYW1lIElQIHByZWZpeC4gIE51bWJlciBvZiBFQ01QIHBhdGhzIGJldHdl ZW4gYW55IHR3byBUaWVyLTMNCiAgICAgZGV2aWNlcyBpbiBDbG9zIHRvcG9sb2d5IGVxdWFscyB0 byB0aGUgbnVtYmVyIG9mIHRoZSBkZXZpY2VzIGluIHRoZQ0KISAgICBtaWRkbGUgc3RhZ2UgKFRp ZXItMSkuICBGb3IgZXhhbXBsZSwgRmlndXJlIDUgaWxsdXN0cmF0ZXMgdGhlDQogICAgIHRvcG9s b2d5IHdoZXJlIFRpZXItMyBkZXZpY2UgQSBoYXMgZm91ciBwYXRocyB0byByZWFjaCBzZXJ2ZXJz IFggYW5kDQogICAgIFksIHZpYSBUaWVyLTIgZGV2aWNlcyBCIGFuZCBDIGFuZCB0aGVuIFRpZXIt MSBkZXZpY2VzIDEsIDIsIDMsIGFuZCA0DQogICAgIHJlc3BlY3RpdmVseS4NCi0tLSAxMDcxLDEw NzkgLS0tLQ0KICAgICBFQ01QIGlzIHRoZSBmdW5kYW1lbnRhbCBsb2FkIHNoYXJpbmcgbWVjaGFu aXNtIHVzZWQgYnkgYSBDbG9zDQogICAgIHRvcG9sb2d5LiAgRWZmZWN0aXZlbHksIGV2ZXJ5IGxv d2VyLXRpZXIgZGV2aWNlIHdpbGwgdXNlIGFsbCBvZiBpdHMNCiAgICAgZGlyZWN0bHkgYXR0YWNo ZWQgdXBwZXItdGllciBkZXZpY2VzIHRvIGxvYWQgc2hhcmUgdHJhZmZpYyBkZXN0aW5lZA0KISAg ICB0byB0aGUgc2FtZSBJUCBwcmVmaXguICBUaGUgbnVtYmVyIG9mIEVDTVAgcGF0aHMgYmV0d2Vl biBhbnkgdHdvDQpUaWVyLTMNCiAgICAgZGV2aWNlcyBpbiBDbG9zIHRvcG9sb2d5IGVxdWFscyB0 byB0aGUgbnVtYmVyIG9mIHRoZSBkZXZpY2VzIGluIHRoZQ0KISAgICBtaWRkbGUgc3RhZ2UgKFRp ZXItMSkuICBGb3IgZXhhbXBsZSwgRmlndXJlIDUgaWxsdXN0cmF0ZXMgYQ0KICAgICB0b3BvbG9n eSB3aGVyZSBUaWVyLTMgZGV2aWNlIEEgaGFzIGZvdXIgcGF0aHMgdG8gcmVhY2ggc2VydmVycyBY IGFuZA0KICAgICBZLCB2aWEgVGllci0yIGRldmljZXMgQiBhbmQgQyBhbmQgdGhlbiBUaWVyLTEg ZGV2aWNlcyAxLCAyLCAzLCBhbmQgNA0KICAgICByZXNwZWN0aXZlbHkuDQoqKioqKioqKioqKioq KioNCioqKiAxMTA1LDExMTYgKioqKg0KDQogICAgIFRoZSBFQ01QIHJlcXVpcmVtZW50IGltcGxp ZXMgdGhhdCB0aGUgQkdQIGltcGxlbWVudGF0aW9uIG11c3Qgc3VwcG9ydA0KICAgICBtdWx0aXBh dGggZmFuLW91dCBmb3IgdXAgdG8gdGhlIG1heGltdW0gbnVtYmVyIG9mIGRldmljZXMgZGlyZWN0 bHkNCiEgICAgYXR0YWNoZWQgYXQgYW55IHBvaW50IGluIHRoZSB0b3BvbG9neSBpbiB1cHN0cmVh bSBvciBkb3duc3RyZWFtDQogICAgIGRpcmVjdGlvbi4gIE5vcm1hbGx5LCB0aGlzIG51bWJlciBk b2VzIG5vdCBleGNlZWQgaGFsZiBvZiB0aGUgcG9ydHMNCiAgICAgZm91bmQgb24gYSBkZXZpY2Ug aW4gdGhlIHRvcG9sb2d5LiAgRm9yIGV4YW1wbGUsIGFuIEVDTVAgZmFuLW91dCBvZg0KICAgICAz MiB3b3VsZCBiZSByZXF1aXJlZCB3aGVuIGJ1aWxkaW5nIGEgQ2xvcyBuZXR3b3JrIHVzaW5nIDY0 LXBvcnQNCiAgICAgZGV2aWNlcy4gIFRoZSBCb3JkZXIgUm91dGVycyBtYXkgbmVlZCB0byBoYXZl IHdpZGVyIGZhbi1vdXQgdG8gYmUNCiEgICAgYWJsZSB0byBjb25uZWN0IHRvIG11bHRpdHVkZSBv ZiBUaWVyLTEgZGV2aWNlcyBpZiByb3V0ZSBzdW1tYXJpemF0aW9uDQogICAgIGF0IEJvcmRlciBS b3V0ZXIgbGV2ZWwgaXMgaW1wbGVtZW50ZWQgYXMgZGVzY3JpYmVkIGluIFNlY3Rpb24gNS4yLjUu DQogICAgIElmIGEgZGV2aWNlJ3MgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCB3aWRlciBFQ01Q LCBsb2dpY2FsIGxpbmstDQogICAgIGdyb3VwaW5nIChsaW5rLWFnZ3JlZ2F0aW9uIGF0IGxheWVy IDIpIGNvdWxkIGJlIHVzZWQgdG8gcHJvdmlkZQ0KLS0tIDExMDUsMTExNiAtLS0tDQoNCiAgICAg VGhlIEVDTVAgcmVxdWlyZW1lbnQgaW1wbGllcyB0aGF0IHRoZSBCR1AgaW1wbGVtZW50YXRpb24g bXVzdCBzdXBwb3J0DQogICAgIG11bHRpcGF0aCBmYW4tb3V0IGZvciB1cCB0byB0aGUgbWF4aW11 bSBudW1iZXIgb2YgZGV2aWNlcyBkaXJlY3RseQ0KISAgICBhdHRhY2hlZCBhdCBhbnkgcG9pbnQg aW4gdGhlIHRvcG9sb2d5IGluIHRoZSB1cHN0cmVhbSBvciBkb3duc3RyZWFtDQogICAgIGRpcmVj dGlvbi4gIE5vcm1hbGx5LCB0aGlzIG51bWJlciBkb2VzIG5vdCBleGNlZWQgaGFsZiBvZiB0aGUg cG9ydHMNCiAgICAgZm91bmQgb24gYSBkZXZpY2UgaW4gdGhlIHRvcG9sb2d5LiAgRm9yIGV4YW1w bGUsIGFuIEVDTVAgZmFuLW91dCBvZg0KICAgICAzMiB3b3VsZCBiZSByZXF1aXJlZCB3aGVuIGJ1 aWxkaW5nIGEgQ2xvcyBuZXR3b3JrIHVzaW5nIDY0LXBvcnQNCiAgICAgZGV2aWNlcy4gIFRoZSBC b3JkZXIgUm91dGVycyBtYXkgbmVlZCB0byBoYXZlIHdpZGVyIGZhbi1vdXQgdG8gYmUNCiEgICAg YWJsZSB0byBjb25uZWN0IHRvIGEgbXVsdGl0dWRlIG9mIFRpZXItMSBkZXZpY2VzIGlmIHJvdXRl DQpzdW1tYXJpemF0aW9uDQogICAgIGF0IEJvcmRlciBSb3V0ZXIgbGV2ZWwgaXMgaW1wbGVtZW50 ZWQgYXMgZGVzY3JpYmVkIGluIFNlY3Rpb24gNS4yLjUuDQogICAgIElmIGEgZGV2aWNlJ3MgaGFy ZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCB3aWRlciBFQ01QLCBsb2dpY2FsIGxpbmstDQogICAgIGdy b3VwaW5nIChsaW5rLWFnZ3JlZ2F0aW9uIGF0IGxheWVyIDIpIGNvdWxkIGJlIHVzZWQgdG8gcHJv dmlkZQ0KKioqKioqKioqKioqKioqDQoqKiogMTEyMiwxMTMxICoqKioNCiAgSW50ZXJuZXQtRHJh ZnQgICAgZHJhZnQtaWV0Zi1ydGd3Zy1iZ3Atcm91dGluZy1sYXJnZS1kYyAgICAgICBNYXJjaCAy MDE2DQoNCg0KISAgICAiaGllcmFyY2hpY2FsIiBFQ01QIChMYXllciAzIEVDTVAgZm9sbG93ZWQg YnkgTGF5ZXIgMiBFQ01QKSB0bw0KICAgICBjb21wZW5zYXRlIGZvciBmYW4tb3V0IGxpbWl0YXRp b25zLiAgU3VjaCBhcHByb2FjaCwgaG93ZXZlciwNCiAgICAgaW5jcmVhc2VzIHRoZSByaXNrIG9m IGZsb3cgcG9sYXJpemF0aW9uLCBhcyBsZXNzIGVudHJvcHkgd2lsbCBiZQ0KISAgICBhdmFpbGFi bGUgdG8gdGhlIHNlY29uZCBzdGFnZSBvZiBFQ01QLg0KDQogICAgIE1vc3QgQkdQIGltcGxlbWVu dGF0aW9ucyBkZWNsYXJlIHBhdGhzIHRvIGJlIGVxdWFsIGZyb20gYW4gRUNNUA0KICAgICBwZXJz cGVjdGl2ZSBpZiB0aGV5IG1hdGNoIHVwIHRvIGFuZCBpbmNsdWRpbmcgc3RlcCAoZSkgaW4NCi0t LSAxMTIyLDExMzEgLS0tLQ0KICBJbnRlcm5ldC1EcmFmdCAgICBkcmFmdC1pZXRmLXJ0Z3dnLWJn cC1yb3V0aW5nLWxhcmdlLWRjICAgICAgIE1hcmNoIDIwMTYNCg0KDQohICAgICJoaWVyYXJjaGlj YWwiIEVDTVAgKExheWVyIDMgRUNNUCBjb3VwbGVkIHdpdGggTGF5ZXIgMiBFQ01QKSB0bw0KICAg ICBjb21wZW5zYXRlIGZvciBmYW4tb3V0IGxpbWl0YXRpb25zLiAgU3VjaCBhcHByb2FjaCwgaG93 ZXZlciwNCiAgICAgaW5jcmVhc2VzIHRoZSByaXNrIG9mIGZsb3cgcG9sYXJpemF0aW9uLCBhcyBs ZXNzIGVudHJvcHkgd2lsbCBiZQ0KISAgICBhdmFpbGFibGUgYXQgdGhlIHNlY29uZCBzdGFnZSBv ZiBFQ01QLg0KDQogICAgIE1vc3QgQkdQIGltcGxlbWVudGF0aW9ucyBkZWNsYXJlIHBhdGhzIHRv IGJlIGVxdWFsIGZyb20gYW4gRUNNUA0KICAgICBwZXJzcGVjdGl2ZSBpZiB0aGV5IG1hdGNoIHVw IHRvIGFuZCBpbmNsdWRpbmcgc3RlcCAoZSkgaW4NCioqKioqKioqKioqKioqKg0KKioqIDExNDgs MTE1NCAqKioqDQogICAgIHBlcnNwZWN0aXZlIG9mIG90aGVyIGRldmljZXMsIHN1Y2ggYSBwcmVm aXggd291bGQgaGF2ZSBCR1AgcGF0aHMgd2l0aA0KICAgICBkaWZmZXJlbnQgQVNfUEFUSCBhdHRy aWJ1dGUgdmFsdWVzLCB3aGlsZSBoYXZpbmcgdGhlIHNhbWUgQVNfUEFUSA0KICAgICBhdHRyaWJ1 dGUgbGVuZ3Rocy4gIFRoZXJlZm9yZSwgQkdQIGltcGxlbWVudGF0aW9ucyBtdXN0IHN1cHBvcnQg bG9hZA0KISAgICBzaGFyaW5nIG92ZXIgYWJvdmUtbWVudGlvbmVkIHBhdGhzLiAgVGhpcyBmZWF0 dXJlIGlzIHNvbWV0aW1lcyBrbm93bg0KICAgICBhcyAibXVsdGlwYXRoIHJlbGF4IiBvciAibXVs dGlwYXRoIG11bHRpcGxlLWFzIiBhbmQgZWZmZWN0aXZlbHkNCiAgICAgYWxsb3dzIGZvciBFQ01Q IHRvIGJlIGRvbmUgYWNyb3NzIGRpZmZlcmVudCBuZWlnaGJvcmluZyBBU05zIGlmIGFsbA0KICAg ICBvdGhlciBhdHRyaWJ1dGVzIGFyZSBlcXVhbCBhcyBhbHJlYWR5IGRlc2NyaWJlZCBpbiB0aGUg cHJldmlvdXMNCi0tLSAxMTQ4LDExNTQgLS0tLQ0KICAgICBwZXJzcGVjdGl2ZSBvZiBvdGhlciBk ZXZpY2VzLCBzdWNoIGEgcHJlZml4IHdvdWxkIGhhdmUgQkdQIHBhdGhzIHdpdGgNCiAgICAgZGlm ZmVyZW50IEFTX1BBVEggYXR0cmlidXRlIHZhbHVlcywgd2hpbGUgaGF2aW5nIHRoZSBzYW1lIEFT X1BBVEgNCiAgICAgYXR0cmlidXRlIGxlbmd0aHMuICBUaGVyZWZvcmUsIEJHUCBpbXBsZW1lbnRh dGlvbnMgbXVzdCBzdXBwb3J0IGxvYWQNCiEgICAgc2hhcmluZyBvdmVyIHRoZSBhYm92ZS1tZW50 aW9uZWQgcGF0aHMuICBUaGlzIGZlYXR1cmUgaXMgc29tZXRpbWVzDQprbm93bg0KICAgICBhcyAi bXVsdGlwYXRoIHJlbGF4IiBvciAibXVsdGlwYXRoIG11bHRpcGxlLWFzIiBhbmQgZWZmZWN0aXZl bHkNCiAgICAgYWxsb3dzIGZvciBFQ01QIHRvIGJlIGRvbmUgYWNyb3NzIGRpZmZlcmVudCBuZWln aGJvcmluZyBBU05zIGlmIGFsbA0KICAgICBvdGhlciBhdHRyaWJ1dGVzIGFyZSBlcXVhbCBhcyBh bHJlYWR5IGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMNCioqKioqKioqKioqKioqKg0KKioqIDEx ODIsMTE5OSAqKioqDQoNCiAgICAgSXQgaXMgb2Z0ZW4gZGVzaXJhYmxlIHRvIGhhdmUgdGhlIGhh c2hpbmcgZnVuY3Rpb24gdXNlZCBmb3IgRUNNUCB0bw0KICAgICBiZSBjb25zaXN0ZW50IChzZWUg W0NPTlMtSEFTSF0pLCB0byBtaW5pbWl6ZSB0aGUgaW1wYWN0IG9uIGZsb3cgdG8NCiEgICAgbmV4 dC1ob3AgYWZmaW5pdHkgY2hhbmdlcyB3aGVuIGEgbmV4dC1ob3AgaXMgYWRkZWQgb3IgcmVtb3Zl ZCB0byBFQ01QDQogICAgIGdyb3VwLiAgVGhpcyBjb3VsZCBiZSB1c2VkIGlmIHRoZSBuZXR3b3Jr IGRldmljZSBpcyB1c2VkIGFzIGEgbG9hZA0KICAgICBiYWxhbmNlciwgbWFwcGluZyBmbG93cyB0 b3dhcmQgbXVsdGlwbGUgZGVzdGluYXRpb25zIC0gaW4gdGhpcyBjYXNlLA0KISAgICBsb3Npbmcg b3IgYWRkaW5nIGEgZGVzdGluYXRpb24gd2lsbCBub3QgaGF2ZSBkZXRyaW1lbnRhbCBlZmZlY3Qg b2YNCiAgICAgY3VycmVudGx5IGVzdGFibGlzaGVkIGZsb3dzLiAgT25lIHBhcnRpY3VsYXIgcmVj b21tZW5kYXRpb24gb24NCiAgICAgaW1wbGVtZW50aW5nIGNvbnNpc3RlbnQgaGFzaGluZyBpcyBw cm92aWRlZCBpbiBbUkZDMjk5Ml0sIHRob3VnaA0KICAgICBvdGhlciBpbXBsZW1lbnRhdGlvbnMg YXJlIHBvc3NpYmxlLiAgVGhpcyBmdW5jdGlvbmFsaXR5IGNvdWxkIGJlDQogICAgIG5hdHVyYWxs eSBjb21iaW5lZCB3aXRoIHdlaWdodGVkIEVDTVAsIHdpdGggdGhlIGltcGFjdCBvZiB0aGUgbmV4 dC0NCiAgICAgaG9wIGNoYW5nZXMgYmVpbmcgcHJvcG9ydGlvbmFsIHRvIHRoZSB3ZWlnaHQgb2Yg dGhlIGdpdmVuIG5leHQtaG9wLg0KICAgICBUaGUgZG93bnNpZGUgb2YgY29uc2lzdGVudCBoYXNo aW5nIGlzIGluY3JlYXNlZCBsb2FkIG9uIGhhcmR3YXJlDQohICAgIHJlc291cmNlIHV0aWxpemF0 aW9uLCBhcyB0eXBpY2FsbHkgbW9yZSBzcGFjZSBpcyByZXF1aXJlZCB0bw0KISAgICBpbXBsZW1l bnQgYSBjb25zaXN0ZW50LWhhc2hpbmcgcmVnaW9uLg0KDQogIDcuICBSb3V0aW5nIENvbnZlcmdl bmNlIFByb3BlcnRpZXMNCg0KLS0tIDExODIsMTE5OSAtLS0tDQoNCiAgICAgSXQgaXMgb2Z0ZW4g ZGVzaXJhYmxlIHRvIGhhdmUgdGhlIGhhc2hpbmcgZnVuY3Rpb24gdXNlZCBmb3IgRUNNUCB0bw0K ICAgICBiZSBjb25zaXN0ZW50IChzZWUgW0NPTlMtSEFTSF0pLCB0byBtaW5pbWl6ZSB0aGUgaW1w YWN0IG9uIGZsb3cgdG8NCiEgICAgbmV4dC1ob3AgYWZmaW5pdHkgY2hhbmdlcyB3aGVuIGEgbmV4 dC1ob3AgaXMgYWRkZWQgb3IgcmVtb3ZlZCB0byBhbg0KRUNNUA0KICAgICBncm91cC4gIFRoaXMg Y291bGQgYmUgdXNlZCBpZiB0aGUgbmV0d29yayBkZXZpY2UgaXMgdXNlZCBhcyBhIGxvYWQNCiAg ICAgYmFsYW5jZXIsIG1hcHBpbmcgZmxvd3MgdG93YXJkIG11bHRpcGxlIGRlc3RpbmF0aW9ucyAt IGluIHRoaXMgY2FzZSwNCiEgICAgbG9zaW5nIG9yIGFkZGluZyBhIGRlc3RpbmF0aW9uIHdpbGwg bm90IGhhdmUgYSBkZXRyaW1lbnRhbCBlZmZlY3Qgb24NCiAgICAgY3VycmVudGx5IGVzdGFibGlz aGVkIGZsb3dzLiAgT25lIHBhcnRpY3VsYXIgcmVjb21tZW5kYXRpb24gb24NCiAgICAgaW1wbGVt ZW50aW5nIGNvbnNpc3RlbnQgaGFzaGluZyBpcyBwcm92aWRlZCBpbiBbUkZDMjk5Ml0sIHRob3Vn aA0KICAgICBvdGhlciBpbXBsZW1lbnRhdGlvbnMgYXJlIHBvc3NpYmxlLiAgVGhpcyBmdW5jdGlv bmFsaXR5IGNvdWxkIGJlDQogICAgIG5hdHVyYWxseSBjb21iaW5lZCB3aXRoIHdlaWdodGVkIEVD TVAsIHdpdGggdGhlIGltcGFjdCBvZiB0aGUgbmV4dC0NCiAgICAgaG9wIGNoYW5nZXMgYmVpbmcg cHJvcG9ydGlvbmFsIHRvIHRoZSB3ZWlnaHQgb2YgdGhlIGdpdmVuIG5leHQtaG9wLg0KICAgICBU aGUgZG93bnNpZGUgb2YgY29uc2lzdGVudCBoYXNoaW5nIGlzIGluY3JlYXNlZCBsb2FkIG9uIGhh cmR3YXJlDQohICAgIHJlc291cmNlIHV0aWxpemF0aW9uLCBhcyB0eXBpY2FsbHkgbW9yZSByZXNv dXJjZXMgKGUuZy4sIFRDQU0gc3BhY2UpDQohICAgIGFyZSByZXF1aXJlZCB0byBpbXBsZW1lbnQg YSBjb25zaXN0ZW50LWhhc2hpbmcgZnVuY3Rpb24uDQoNCiAgNy4gIFJvdXRpbmcgQ29udmVyZ2Vu Y2UgUHJvcGVydGllcw0KDQoqKioqKioqKioqKioqKioNCioqKiAxMjA5LDEyMjQgKioqKg0KICAg ICBkcml2ZW4gbWVjaGFuaXNtIHRvIG9idGFpbiB1cGRhdGVzIG9uIElHUCBzdGF0ZSBjaGFuZ2Vz LiAgVGhlDQogICAgIHByb3Bvc2VkIHJvdXRpbmcgZGVzaWduIGRvZXMgbm90IHVzZSBhbiBJR1As IHNvIHRoZSByZW1haW5pbmcNCiAgICAgbWVjaGFuaXNtcyB0aGF0IGNvdWxkIGJlIHVzZWQgZm9y IGZhdWx0IGRldGVjdGlvbiBhcmUgQkdQIGtlZXAtYWxpdmUNCiEgICAgcHJvY2VzcyAob3IgYW55 IG90aGVyIHR5cGUgb2Yga2VlcC1hbGl2ZSBtZWNoYW5pc20pIGFuZCBsaW5rLWZhaWx1cmUNCiAg ICAgdHJpZ2dlcnMuDQoNCiAgICAgUmVseWluZyBzb2xlbHkgb24gQkdQIGtlZXAtYWxpdmUgcGFj a2V0cyBtYXkgcmVzdWx0IGluIGhpZ2gNCiEgICAgY29udmVyZ2VuY2UgZGVsYXlzLCBpbiB0aGUg b3JkZXIgb2YgbXVsdGlwbGUgc2Vjb25kcyAob24gbWFueSBCR1ANCiAgICAgaW1wbGVtZW50YXRp b25zIHRoZSBtaW5pbXVtIGNvbmZpZ3VyYWJsZSBCR1AgaG9sZCB0aW1lciB2YWx1ZSBpcw0KICAg ICB0aHJlZSBzZWNvbmRzKS4gIEhvd2V2ZXIsIG1hbnkgQkdQIGltcGxlbWVudGF0aW9ucyBjYW4g c2h1dCBkb3duDQogICAgIGxvY2FsIEVCR1AgcGVlcmluZyBzZXNzaW9ucyBpbiByZXNwb25zZSB0 byB0aGUgImxpbmsgZG93biIgZXZlbnQgZm9yDQogICAgIHRoZSBvdXRnb2luZyBpbnRlcmZhY2Ug dXNlZCBmb3IgQkdQIHBlZXJpbmcuICBUaGlzIGZlYXR1cmUgaXMNCiEgICAgc29tZXRpbWVzIGNh bGxlZCBhcyAiZmFzdCBmYWxsb3ZlciIuICBTaW5jZSBsaW5rcyBpbiBtb2Rlcm4gZGF0YQ0KICAg ICBjZW50ZXJzIGFyZSBwcmVkb21pbmFudGx5IHBvaW50LXRvLXBvaW50IGZpYmVyIGNvbm5lY3Rp b25zLCBhDQogICAgIHBoeXNpY2FsIGludGVyZmFjZSBmYWlsdXJlIGlzIG9mdGVuIGRldGVjdGVk IGluIG1pbGxpc2Vjb25kcyBhbmQNCiAgICAgc3Vic2VxdWVudGx5IHRyaWdnZXJzIGEgQkdQIHJl LWNvbnZlcmdlbmNlLg0KLS0tIDEyMDksMTIyNCAtLS0tDQogICAgIGRyaXZlbiBtZWNoYW5pc20g dG8gb2J0YWluIHVwZGF0ZXMgb24gSUdQIHN0YXRlIGNoYW5nZXMuICBUaGUNCiAgICAgcHJvcG9z ZWQgcm91dGluZyBkZXNpZ24gZG9lcyBub3QgdXNlIGFuIElHUCwgc28gdGhlIHJlbWFpbmluZw0K ICAgICBtZWNoYW5pc21zIHRoYXQgY291bGQgYmUgdXNlZCBmb3IgZmF1bHQgZGV0ZWN0aW9uIGFy ZSBCR1Aga2VlcC1hbGl2ZQ0KISAgICB0aW1lLW91dCAob3IgYW55IG90aGVyIHR5cGUgb2Yga2Vl cC1hbGl2ZSBtZWNoYW5pc20pIGFuZCBsaW5rLWZhaWx1cmUNCiAgICAgdHJpZ2dlcnMuDQoNCiAg ICAgUmVseWluZyBzb2xlbHkgb24gQkdQIGtlZXAtYWxpdmUgcGFja2V0cyBtYXkgcmVzdWx0IGlu IGhpZ2gNCiEgICAgY29udmVyZ2VuY2UgZGVsYXlzLCBvbiB0aGUgb3JkZXIgb2YgbXVsdGlwbGUg c2Vjb25kcyAob24gbWFueSBCR1ANCiAgICAgaW1wbGVtZW50YXRpb25zIHRoZSBtaW5pbXVtIGNv bmZpZ3VyYWJsZSBCR1AgaG9sZCB0aW1lciB2YWx1ZSBpcw0KICAgICB0aHJlZSBzZWNvbmRzKS4g IEhvd2V2ZXIsIG1hbnkgQkdQIGltcGxlbWVudGF0aW9ucyBjYW4gc2h1dCBkb3duDQogICAgIGxv Y2FsIEVCR1AgcGVlcmluZyBzZXNzaW9ucyBpbiByZXNwb25zZSB0byB0aGUgImxpbmsgZG93biIg ZXZlbnQgZm9yDQogICAgIHRoZSBvdXRnb2luZyBpbnRlcmZhY2UgdXNlZCBmb3IgQkdQIHBlZXJp bmcuICBUaGlzIGZlYXR1cmUgaXMNCiEgICAgc29tZXRpbWVzIGNhbGxlZCAiZmFzdCBmYWxsb3Zl ciIuICBTaW5jZSBsaW5rcyBpbiBtb2Rlcm4gZGF0YQ0KICAgICBjZW50ZXJzIGFyZSBwcmVkb21p bmFudGx5IHBvaW50LXRvLXBvaW50IGZpYmVyIGNvbm5lY3Rpb25zLCBhDQogICAgIHBoeXNpY2Fs IGludGVyZmFjZSBmYWlsdXJlIGlzIG9mdGVuIGRldGVjdGVkIGluIG1pbGxpc2Vjb25kcyBhbmQN CiAgICAgc3Vic2VxdWVudGx5IHRyaWdnZXJzIGEgQkdQIHJlLWNvbnZlcmdlbmNlLg0KKioqKioq KioqKioqKioqDQoqKiogMTIzNiwxMjQyICoqKioNCg0KICAgICBBbHRlcm5hdGl2ZWx5LCBzb21l IHBsYXRmb3JtcyBtYXkgc3VwcG9ydCBCaWRpcmVjdGlvbmFsIEZvcndhcmRpbmcNCiAgICAgRGV0 ZWN0aW9uIChCRkQpIFtSRkM1ODgwXSB0byBhbGxvdyBmb3Igc3ViLXNlY29uZCBmYWlsdXJlIGRl dGVjdGlvbg0KISAgICBhbmQgZmF1bHQgc2lnbmFsaW5nIHRvIHRoZSBCR1AgcHJvY2Vzcy4gIEhv d2V2ZXIsIHVzZSBvZiBlaXRoZXIgb2YNCiAgICAgdGhlc2UgcHJlc2VudHMgYWRkaXRpb25hbCBy ZXF1aXJlbWVudHMgdG8gdmVuZG9yIHNvZnR3YXJlIGFuZA0KICAgICBwb3NzaWJseSBoYXJkd2Fy ZSwgYW5kIG1heSBjb250cmFkaWN0IFJFUTEuICBVbnRpbCByZWNlbnRseSB3aXRoDQogICAgIFtS RkM3MTMwXSwgQkZEIGFsc28gZGlkIG5vdCBhbGxvdyBkZXRlY3Rpb24gb2YgYSBzaW5nbGUgbWVt YmVyIGxpbmsNCi0tLSAxMjM2LDEyNDIgLS0tLQ0KDQogICAgIEFsdGVybmF0aXZlbHksIHNvbWUg cGxhdGZvcm1zIG1heSBzdXBwb3J0IEJpZGlyZWN0aW9uYWwgRm9yd2FyZGluZw0KICAgICBEZXRl Y3Rpb24gKEJGRCkgW1JGQzU4ODBdIHRvIGFsbG93IGZvciBzdWItc2Vjb25kIGZhaWx1cmUgZGV0 ZWN0aW9uDQohICAgIGFuZCBmYXVsdCBzaWduYWxpbmcgdG8gdGhlIEJHUCBwcm9jZXNzLiAgSG93 ZXZlciwgdGhlIHVzZSBvZiBlaXRoZXIgb2YNCiAgICAgdGhlc2UgcHJlc2VudHMgYWRkaXRpb25h bCByZXF1aXJlbWVudHMgdG8gdmVuZG9yIHNvZnR3YXJlIGFuZA0KICAgICBwb3NzaWJseSBoYXJk d2FyZSwgYW5kIG1heSBjb250cmFkaWN0IFJFUTEuICBVbnRpbCByZWNlbnRseSB3aXRoDQogICAg IFtSRkM3MTMwXSwgQkZEIGFsc28gZGlkIG5vdCBhbGxvdyBkZXRlY3Rpb24gb2YgYSBzaW5nbGUg bWVtYmVyIGxpbmsNCioqKioqKioqKioqKioqKg0KKioqIDEyNDUsMTI1MSAqKioqDQoNCiAgNy4y LiAgRXZlbnQgUHJvcGFnYXRpb24gVGltaW5nDQoNCiEgICAgSW4gdGhlIHByb3Bvc2VkIGRlc2ln biB0aGUgaW1wYWN0IG9mIEJHUCBNaW5pbXVtIFJvdXRlIEFkdmVydGlzZW1lbnQNCiAgICAgSW50 ZXJ2YWwgKE1SQUkpIHRpbWVyIChTZWUgc2VjdGlvbiA5LjIuMS4xIG9mIFtSRkM0MjcxXSkgc2hv dWxkIGJlDQogICAgIGNvbnNpZGVyZWQuICBQZXIgdGhlIHN0YW5kYXJkIGl0IGlzIHJlcXVpcmVk IGZvciBCR1AgaW1wbGVtZW50YXRpb25zDQogICAgIHRvIHNwYWNlIG91dCBjb25zZWN1dGl2ZSBC R1AgVVBEQVRFIG1lc3NhZ2VzIGJ5IGF0IGxlYXN0IE1SQUkNCi0tLSAxMjQ1LDEyNTEgLS0tLQ0K DQogIDcuMi4gIEV2ZW50IFByb3BhZ2F0aW9uIFRpbWluZw0KDQohICAgIEluIHRoZSBwcm9wb3Nl ZCBkZXNpZ24gdGhlIGltcGFjdCBvZiB0aGUgQkdQIE1pbmltdW0gUm91dGUNCkFkdmVydGlzZW1l bnQNCiAgICAgSW50ZXJ2YWwgKE1SQUkpIHRpbWVyIChTZWUgc2VjdGlvbiA5LjIuMS4xIG9mIFtS RkM0MjcxXSkgc2hvdWxkIGJlDQogICAgIGNvbnNpZGVyZWQuICBQZXIgdGhlIHN0YW5kYXJkIGl0 IGlzIHJlcXVpcmVkIGZvciBCR1AgaW1wbGVtZW50YXRpb25zDQogICAgIHRvIHNwYWNlIG91dCBj b25zZWN1dGl2ZSBCR1AgVVBEQVRFIG1lc3NhZ2VzIGJ5IGF0IGxlYXN0IE1SQUkNCioqKioqKioq KioqKioqKg0KKioqIDEyNTgsMTI3MCAqKioqDQogICAgIEluIGEgQ2xvcyB0b3BvbG9neSBlYWNo IEVCR1Agc3BlYWtlciB0eXBpY2FsbHkgaGFzIGVpdGhlciBvbmUgcGF0aA0KICAgICAoVGllci0y IGRldmljZXMgZG9uJ3QgYWNjZXB0IHBhdGhzIGZyb20gb3RoZXIgVGllci0yIGluIHRoZSBzYW1l DQogICAgIGNsdXN0ZXIgZHVlIHRvIHNhbWUgQVNOKSBvciBOIHBhdGhzIGZvciB0aGUgc2FtZSBw cmVmaXgsIHdoZXJlIE4gaXMgYQ0KISAgICBzaWduaWZpY2FudGx5IGxhcmdlIG51bWJlciwgZS5n LiAgTj0zMiAodGhlIEVDTVAgZmFuLW91dCB0byB0aGUgbmV4dA0KICAgICBUaWVyKS4gIFRoZXJl Zm9yZSwgaWYgYSBsaW5rIGZhaWxzIHRvIGFub3RoZXIgZGV2aWNlIGZyb20gd2hpY2ggYQ0KISAg ICBwYXRoIGlzIHJlY2VpdmVkIHRoZXJlIGlzIGVpdGhlciBubyBiYWNrdXAgcGF0aCBhdCBhbGwg KGUuZy4gZnJvbQ0KICAgICBwZXJzcGVjdGl2ZSBvZiBhIFRpZXItMiBzd2l0Y2ggbG9zaW5nIGxp bmsgdG8gYSBUaWVyLTMgZGV2aWNlKSwgb3INCiEgICAgdGhlIGJhY2t1cCBpcyByZWFkaWx5IGF2 YWlsYWJsZSBpbiBCR1AgTG9jLVJJQiAoZS5nLiBmcm9tIHBlcnNwZWN0aXZlDQogICAgIG9mIGEg VGllci0yIGRldmljZSBsb3NpbmcgbGluayB0byBhIFRpZXItMSBzd2l0Y2gpLiAgSW4gdGhlIGZv cm1lcg0KISAgICBjYXNlLCB0aGUgQkdQIHdpdGhkcmF3YWwgYW5ub3VuY2VtZW50IHdpbGwgcHJv cGFnYXRlIHVuLWRlbGF5ZWQgYW5kDQogICAgIHRyaWdnZXIgcmUtY29udmVyZ2VuY2Ugb24gYWZm ZWN0ZWQgZGV2aWNlcy4gIEluIHRoZSBsYXR0ZXIgY2FzZSwgdGhlDQogICAgIGJlc3QtcGF0aCB3 aWxsIGJlIHJlLWV2YWx1YXRlZCBhbmQgdGhlIGxvY2FsIEVDTVAgZ3JvdXAgY29ycmVzcG9uZGlu Zw0KICAgICB0byB0aGUgbmV3IG5leHQtaG9wIHNldCBjaGFuZ2VkLiAgSWYgdGhlIEJHUCBwYXRo IHdhcyB0aGUgYmVzdC1wYXRoDQotLS0gMTI1OCwxMjcwIC0tLS0NCiAgICAgSW4gYSBDbG9zIHRv cG9sb2d5IGVhY2ggRUJHUCBzcGVha2VyIHR5cGljYWxseSBoYXMgZWl0aGVyIG9uZSBwYXRoDQog ICAgIChUaWVyLTIgZGV2aWNlcyBkb24ndCBhY2NlcHQgcGF0aHMgZnJvbSBvdGhlciBUaWVyLTIg aW4gdGhlIHNhbWUNCiAgICAgY2x1c3RlciBkdWUgdG8gc2FtZSBBU04pIG9yIE4gcGF0aHMgZm9y IHRoZSBzYW1lIHByZWZpeCwgd2hlcmUgTiBpcyBhDQohICAgIHNpZ25pZmljYW50bHkgbGFyZ2Ug bnVtYmVyLCBlLmcuLCAgTj0zMiAodGhlIEVDTVAgZmFuLW91dCB0byB0aGUgbmV4dA0KICAgICBU aWVyKS4gIFRoZXJlZm9yZSwgaWYgYSBsaW5rIGZhaWxzIHRvIGFub3RoZXIgZGV2aWNlIGZyb20g d2hpY2ggYQ0KISAgICBwYXRoIGlzIHJlY2VpdmVkIHRoZXJlIGlzIGVpdGhlciBubyBiYWNrdXAg cGF0aCBhdCBhbGwgKGUuZy4sIGZyb20gdGhlDQogICAgIHBlcnNwZWN0aXZlIG9mIGEgVGllci0y IHN3aXRjaCBsb3NpbmcgbGluayB0byBhIFRpZXItMyBkZXZpY2UpLCBvcg0KISAgICB0aGUgYmFj a3VwIGlzIHJlYWRpbHkgYXZhaWxhYmxlIGluIEJHUCBMb2MtUklCIChlLmcuLCBmcm9tIHBlcnNw ZWN0aXZlDQogICAgIG9mIGEgVGllci0yIGRldmljZSBsb3NpbmcgbGluayB0byBhIFRpZXItMSBz d2l0Y2gpLiAgSW4gdGhlIGZvcm1lcg0KISAgICBjYXNlLCB0aGUgQkdQIHdpdGhkcmF3YWwgYW5u b3VuY2VtZW50IHdpbGwgcHJvcGFnYXRlIHdpdGhvdXQgZGVsYXkgYW5kDQogICAgIHRyaWdnZXIg cmUtY29udmVyZ2VuY2Ugb24gYWZmZWN0ZWQgZGV2aWNlcy4gIEluIHRoZSBsYXR0ZXIgY2FzZSwg dGhlDQogICAgIGJlc3QtcGF0aCB3aWxsIGJlIHJlLWV2YWx1YXRlZCBhbmQgdGhlIGxvY2FsIEVD TVAgZ3JvdXAgY29ycmVzcG9uZGluZw0KICAgICB0byB0aGUgbmV3IG5leHQtaG9wIHNldCBjaGFu Z2VkLiAgSWYgdGhlIEJHUCBwYXRoIHdhcyB0aGUgYmVzdC1wYXRoDQoqKioqKioqKioqKioqKioN CioqKiAxMjc5LDEyODUgKioqKg0KICAgICBzaXR1YXRpb24gd2hlbiBhIGxpbmsgYmV0d2VlbiBU aWVyLTMgYW5kIFRpZXItMiBkZXZpY2UgZmFpbHMsIHRoZQ0KICAgICBUaWVyLTIgZGV2aWNlIHdp bGwgc2VuZCBCR1AgVVBEQVRFIG1lc3NhZ2VzIHRvIGFsbCB1cHN0cmVhbSBUaWVyLTENCiAgICAg ZGV2aWNlcywgd2l0aGRyYXdpbmcgdGhlIGFmZmVjdGVkIHByZWZpeGVzLiAgVGhlIFRpZXItMSBk ZXZpY2VzLCBpbg0KISAgICB0dXJuLCB3aWxsIHJlbGF5IHRob3NlIG1lc3NhZ2VzIHRvIGFsbCBk b3duc3RyZWFtIFRpZXItMiBkZXZpY2VzDQogICAgIChleGNlcHQgZm9yIHRoZSBvcmlnaW5hdG9y KS4gIFRpZXItMiBkZXZpY2VzIG90aGVyIHRoYW4gdGhlIG9uZQ0KICAgICBvcmlnaW5hdGluZyB0 aGUgVVBEQVRFIHNob3VsZCB0aGVuIHdhaXQgZm9yIEFMTCB1cHN0cmVhbSBUaWVyLTENCg0KLS0t IDEyNzksMTI4NSAtLS0tDQogICAgIHNpdHVhdGlvbiB3aGVuIGEgbGluayBiZXR3ZWVuIFRpZXIt MyBhbmQgVGllci0yIGRldmljZSBmYWlscywgdGhlDQogICAgIFRpZXItMiBkZXZpY2Ugd2lsbCBz ZW5kIEJHUCBVUERBVEUgbWVzc2FnZXMgdG8gYWxsIHVwc3RyZWFtIFRpZXItMQ0KICAgICBkZXZp Y2VzLCB3aXRoZHJhd2luZyB0aGUgYWZmZWN0ZWQgcHJlZml4ZXMuICBUaGUgVGllci0xIGRldmlj ZXMsIGluDQohICAgIHR1cm4sIHdpbGwgcmVsYXkgdGhlc2UgbWVzc2FnZXMgdG8gYWxsIGRvd25z dHJlYW0gVGllci0yIGRldmljZXMNCiAgICAgKGV4Y2VwdCBmb3IgdGhlIG9yaWdpbmF0b3IpLiAg VGllci0yIGRldmljZXMgb3RoZXIgdGhhbiB0aGUgb25lDQogICAgIG9yaWdpbmF0aW5nIHRoZSBV UERBVEUgc2hvdWxkIHRoZW4gd2FpdCBmb3IgQUxMIHVwc3RyZWFtIFRpZXItMQ0KDQoqKioqKioq KioqKioqKioNCioqKiAxMzA3LDEzMTMgKioqKg0KICAgICBmZWF0dXJlcyB0aGF0IHZlbmRvcnMg aW5jbHVkZSB0byByZWR1Y2UgdGhlIGNvbnRyb2wgcGxhbmUgaW1wYWN0IG9mDQogICAgIHJhcGlk bHkgZmxhcHBpbmcgcHJlZml4ZXMuICBIb3dldmVyLCBkdWUgdG8gaXNzdWVzIGRlc2NyaWJlZCB3 aXRoDQogICAgIGZhbHNlIHBvc2l0aXZlcyBpbiB0aGVzZSBpbXBsZW1lbnRhdGlvbnMgZXNwZWNp YWxseSB1bmRlciBzdWNoDQohICAgICJkaXNwZXJzaW9uIiBldmVudHMsIGl0IGlzIG5vdCByZWNv bW1lbmRlZCB0byB0dXJuIHRoaXMgZmVhdHVyZSBvbiBpbg0KICAgICB0aGlzIGRlc2lnbi4gIE1v cmUgYmFja2dyb3VuZCBhbmQgaXNzdWVzIHdpdGggInJvdXRlIGZsYXAgZGFtcGVuaW5nIg0KICAg ICBhbmQgcG9zc2libGUgaW1wbGVtZW50YXRpb24gY2hhbmdlcyB0aGF0IGNvdWxkIGFmZmVjdCB0 aGlzIGFyZSB3ZWxsDQogICAgIGRlc2NyaWJlZCBpbiBbUkZDNzE5Nl0uDQotLS0gMTMwNywxMzEz IC0tLS0NCiAgICAgZmVhdHVyZXMgdGhhdCB2ZW5kb3JzIGluY2x1ZGUgdG8gcmVkdWNlIHRoZSBj b250cm9sIHBsYW5lIGltcGFjdCBvZg0KICAgICByYXBpZGx5IGZsYXBwaW5nIHByZWZpeGVzLiAg SG93ZXZlciwgZHVlIHRvIGlzc3VlcyBkZXNjcmliZWQgd2l0aA0KICAgICBmYWxzZSBwb3NpdGl2 ZXMgaW4gdGhlc2UgaW1wbGVtZW50YXRpb25zIGVzcGVjaWFsbHkgdW5kZXIgc3VjaA0KISAgICAi ZGlzcGVyc2lvbiIgZXZlbnRzLCBpdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gZW5hYmxlIHRoaXMg ZmVhdHVyZSBpbg0KICAgICB0aGlzIGRlc2lnbi4gIE1vcmUgYmFja2dyb3VuZCBhbmQgaXNzdWVz IHdpdGggInJvdXRlIGZsYXAgZGFtcGVuaW5nIg0KICAgICBhbmQgcG9zc2libGUgaW1wbGVtZW50 YXRpb24gY2hhbmdlcyB0aGF0IGNvdWxkIGFmZmVjdCB0aGlzIGFyZSB3ZWxsDQogICAgIGRlc2Ny aWJlZCBpbiBbUkZDNzE5Nl0uDQoqKioqKioqKioqKioqKioNCioqKiAxMzE2LDEzMjQgKioqKg0K DQogICAgIEEgbmV0d29yayBpcyBkZWNsYXJlZCB0byBjb252ZXJnZSBpbiByZXNwb25zZSB0byBh IGZhaWx1cmUgb25jZSBhbGwNCiAgICAgZGV2aWNlcyB3aXRoaW4gdGhlIGZhaWx1cmUgaW1wYWN0 IHNjb3BlIGFyZSBub3RpZmllZCBvZiB0aGUgZXZlbnQgYW5kDQohICAgIGhhdmUgcmUtY2FsY3Vs YXRlZCB0aGVpciBSSUIncyBhbmQgY29uc2VxdWVudGx5IHVwZGF0ZWQgdGhlaXIgRklCJ3MuDQog ICAgIExhcmdlciBmYWlsdXJlIGltcGFjdCBzY29wZSB0eXBpY2FsbHkgbWVhbnMgc2xvd2VyIGNv bnZlcmdlbmNlIHNpbmNlDQohICAgIG1vcmUgZGV2aWNlcyBoYXZlIHRvIGJlIG5vdGlmaWVkLCBh bmQgYWRkaXRpb25hbGx5IHJlc3VsdHMgaW4gYSBsZXNzDQogICAgIHN0YWJsZSBuZXR3b3JrLiAg SW4gdGhpcyBzZWN0aW9uIHdlIGRlc2NyaWJlIEJHUCdzIGFkdmFudGFnZXMgb3Zlcg0KICAgICBs aW5rLXN0YXRlIHJvdXRpbmcgcHJvdG9jb2xzIGluIHJlZHVjaW5nIGZhaWx1cmUgaW1wYWN0IHNj b3BlIGZvciBhDQogICAgIENsb3MgdG9wb2xvZ3kuDQotLS0gMTMxNiwxMzI0IC0tLS0NCg0KICAg ICBBIG5ldHdvcmsgaXMgZGVjbGFyZWQgdG8gY29udmVyZ2UgaW4gcmVzcG9uc2UgdG8gYSBmYWls dXJlIG9uY2UgYWxsDQogICAgIGRldmljZXMgd2l0aGluIHRoZSBmYWlsdXJlIGltcGFjdCBzY29w ZSBhcmUgbm90aWZpZWQgb2YgdGhlIGV2ZW50IGFuZA0KISAgICBoYXZlIHJlLWNhbGN1bGF0ZWQg dGhlaXIgUklCcyBhbmQgY29uc2VxdWVudGx5IHVwZGF0ZWQgdGhlaXIgRklCcy4NCiAgICAgTGFy Z2VyIGZhaWx1cmUgaW1wYWN0IHNjb3BlIHR5cGljYWxseSBtZWFucyBzbG93ZXIgY29udmVyZ2Vu Y2Ugc2luY2UNCiEgICAgbW9yZSBkZXZpY2VzIGhhdmUgdG8gYmUgbm90aWZpZWQsIGFuZCByZXN1 bHRzIGluIGEgbGVzcw0KICAgICBzdGFibGUgbmV0d29yay4gIEluIHRoaXMgc2VjdGlvbiB3ZSBk ZXNjcmliZSBCR1AncyBhZHZhbnRhZ2VzIG92ZXINCiAgICAgbGluay1zdGF0ZSByb3V0aW5nIHBy b3RvY29scyBpbiByZWR1Y2luZyBmYWlsdXJlIGltcGFjdCBzY29wZSBmb3IgYQ0KICAgICBDbG9z IHRvcG9sb2d5Lg0KKioqKioqKioqKioqKioqDQoqKiogMTMyNywxMzM1ICoqKioNCiAgICAgdGhl IGJlc3QgcGF0aCBmcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoZSBsb2NhbCByb3V0ZXIgaXMg c2VudCB0bw0KICAgICBuZWlnaGJvcnMuICBBcyBzdWNoLCBzb21lIGZhaWx1cmVzIGFyZSBtYXNr ZWQgaWYgdGhlIGxvY2FsIG5vZGUgY2FuDQogICAgIGltbWVkaWF0ZWx5IGZpbmQgYSBiYWNrdXAg cGF0aCBhbmQgZG9lcyBub3QgaGF2ZSB0byBzZW5kIGFueSB1cGRhdGVzDQohICAgIGZ1cnRoZXIu ICBOb3RpY2UgdGhhdCBpbiB0aGUgd29yc3QgY2FzZSBBTEwgZGV2aWNlcyBpbiBhIGRhdGEgY2Vu dGVyDQogICAgIHRvcG9sb2d5IGhhdmUgdG8gZWl0aGVyIHdpdGhkcmF3IGEgcHJlZml4IGNvbXBs ZXRlbHkgb3IgdXBkYXRlIHRoZQ0KISAgICBFQ01QIGdyb3VwcyBpbiB0aGUgRklCLiAgSG93ZXZl ciwgbWFueSBmYWlsdXJlcyB3aWxsIG5vdCByZXN1bHQgaW4NCiAgICAgc3VjaCBhIHdpZGUgaW1w YWN0LiAgVGhlcmUgYXJlIHR3byBtYWluIGZhaWx1cmUgdHlwZXMgd2hlcmUgaW1wYWN0DQogICAg IHNjb3BlIGlzIHJlZHVjZWQ6DQoNCi0tLSAxMzI3LDEzMzUgLS0tLQ0KICAgICB0aGUgYmVzdCBw YXRoIGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgdGhlIGxvY2FsIHJvdXRlciBpcyBzZW50IHRv DQogICAgIG5laWdoYm9ycy4gIEFzIHN1Y2gsIHNvbWUgZmFpbHVyZXMgYXJlIG1hc2tlZCBpZiB0 aGUgbG9jYWwgbm9kZSBjYW4NCiAgICAgaW1tZWRpYXRlbHkgZmluZCBhIGJhY2t1cCBwYXRoIGFu ZCBkb2VzIG5vdCBoYXZlIHRvIHNlbmQgYW55IHVwZGF0ZXMNCiEgICAgZnVydGhlci4gIE5vdGlj ZSB0aGF0IGluIHRoZSB3b3JzdCBjYXNlLCBhbGwgZGV2aWNlcyBpbiBhIGRhdGEgY2VudGVyDQog ICAgIHRvcG9sb2d5IGhhdmUgdG8gZWl0aGVyIHdpdGhkcmF3IGEgcHJlZml4IGNvbXBsZXRlbHkg b3IgdXBkYXRlIHRoZQ0KISAgICBFQ01QIGdyb3VwcyBpbiB0aGVpciBGSUJzLiAgSG93ZXZlciwg bWFueSBmYWlsdXJlcyB3aWxsIG5vdCByZXN1bHQgaW4NCiAgICAgc3VjaCBhIHdpZGUgaW1wYWN0 LiAgVGhlcmUgYXJlIHR3byBtYWluIGZhaWx1cmUgdHlwZXMgd2hlcmUgaW1wYWN0DQogICAgIHNj b3BlIGlzIHJlZHVjZWQ6DQoNCioqKioqKioqKioqKioqKg0KKioqIDEzNTcsMTM2NyAqKioqDQoN CiAgICAgbyAgRmFpbHVyZSBvZiBhIFRpZXItMSBkZXZpY2U6IEluIHRoaXMgY2FzZSwgYWxsIFRp ZXItMiBkZXZpY2VzDQogICAgICAgIGRpcmVjdGx5IGF0dGFjaGVkIHRvIHRoZSBmYWlsZWQgbm9k ZSB3aWxsIGhhdmUgdG8gdXBkYXRlIHRoZWlyDQohICAgICAgIEVDTVAgZ3JvdXBzIGZvciBhbGwg SVAgcHJlZml4ZXMgZnJvbSBub24tbG9jYWwgY2x1c3Rlci4gIFRoZQ0KICAgICAgICBUaWVyLTMg ZGV2aWNlcyBhcmUgb25jZSBhZ2FpbiBub3QgaW52b2x2ZWQgaW4gdGhlIHJlLWNvbnZlcmdlbmNl DQogICAgICAgIHByb2Nlc3MsIGJ1dCBtYXkgcmVjZWl2ZSAiaW1wbGljaXQgd2l0aGRyYXdzIiBh cyBkZXNjcmliZWQgYWJvdmUuDQoNCiEgICAgRXZlbiB0aG91Z2ggaW4gY2FzZSBvZiBzdWNoIGZh aWx1cmVzIG11bHRpcGxlIElQIHByZWZpeGVzIHdpbGwgaGF2ZQ0KICAgICB0byBiZSByZXByb2dy YW1tZWQgaW4gdGhlIEZJQiwgaXQgaXMgd29ydGggbm90aW5nIHRoYXQgQUxMIG9mIHRoZXNlDQog ICAgIHByZWZpeGVzIHNoYXJlIGEgc2luZ2xlIEVDTVAgZ3JvdXAgb24gVGllci0yIGRldmljZS4g IFRoZXJlZm9yZSwgaW4NCiAgICAgdGhlIGNhc2Ugb2YgaW1wbGVtZW50YXRpb25zIHdpdGggYSBo aWVyYXJjaGljYWwgRklCLCBvbmx5IGEgc2luZ2xlDQotLS0gMTM1NywxMzY3IC0tLS0NCg0KICAg ICBvICBGYWlsdXJlIG9mIGEgVGllci0xIGRldmljZTogSW4gdGhpcyBjYXNlLCBhbGwgVGllci0y IGRldmljZXMNCiAgICAgICAgZGlyZWN0bHkgYXR0YWNoZWQgdG8gdGhlIGZhaWxlZCBub2RlIHdp bGwgaGF2ZSB0byB1cGRhdGUgdGhlaXINCiEgICAgICAgRUNNUCBncm91cHMgZm9yIGFsbCBJUCBw cmVmaXhlcyBmcm9tIGEgbm9uLWxvY2FsIGNsdXN0ZXIuICBUaGUNCiAgICAgICAgVGllci0zIGRl dmljZXMgYXJlIG9uY2UgYWdhaW4gbm90IGludm9sdmVkIGluIHRoZSByZS1jb252ZXJnZW5jZQ0K ICAgICAgICBwcm9jZXNzLCBidXQgbWF5IHJlY2VpdmUgImltcGxpY2l0IHdpdGhkcmF3cyIgYXMg ZGVzY3JpYmVkIGFib3ZlLg0KDQohICAgIEV2ZW4gaW4gdGhlIGNhc2Ugb2Ygc3VjaCBmYWlsdXJl cywgbXVsdGlwbGUgSVAgcHJlZml4ZXMgd2lsbCBoYXZlDQogICAgIHRvIGJlIHJlcHJvZ3JhbW1l ZCBpbiB0aGUgRklCLCBpdCBpcyB3b3J0aCBub3RpbmcgdGhhdCBBTEwgb2YgdGhlc2UNCiAgICAg cHJlZml4ZXMgc2hhcmUgYSBzaW5nbGUgRUNNUCBncm91cCBvbiBUaWVyLTIgZGV2aWNlLiAgVGhl cmVmb3JlLCBpbg0KICAgICB0aGUgY2FzZSBvZiBpbXBsZW1lbnRhdGlvbnMgd2l0aCBhIGhpZXJh cmNoaWNhbCBGSUIsIG9ubHkgYSBzaW5nbGUNCioqKioqKioqKioqKioqKg0KKioqIDEzNzUsMTM4 MSAqKioqDQogICAgIHBvc3NpYmxlIHdpdGggdGhlIHByb3Bvc2VkIGRlc2lnbiwgc2luY2UgdXNp bmcgdGhpcyB0ZWNobmlxdWUgbWF5DQogICAgIGNyZWF0ZSByb3V0aW5nIGJsYWNrLWhvbGVzIGFz IG1lbnRpb25lZCBwcmV2aW91c2x5LiAgVGhlcmVmb3JlLCB0aGUNCiAgICAgd29yc3QgY29udHJv bCBwbGFuZSBmYWlsdXJlIGltcGFjdCBzY29wZSBpcyB0aGUgbmV0d29yayBhcyBhIHdob2xlLA0K ISAgICBmb3IgaW5zdGFuY2UgaW4gYSBjYXNlIG9mIGEgbGluayBmYWlsdXJlIGJldHdlZW4gVGll ci0yIGFuZCBUaWVyLTMNCiAgICAgZGV2aWNlcy4gIFRoZSBhbW91bnQgb2YgaW1wYWN0ZWQgcHJl Zml4ZXMgaW4gdGhpcyBjYXNlIHdvdWxkIGJlIG11Y2gNCiAgICAgbGVzcyB0aGFuIGluIHRoZSBj YXNlIG9mIGEgZmFpbHVyZSBpbiB0aGUgdXBwZXIgbGF5ZXJzIG9mIGEgQ2xvcw0KICAgICBuZXR3 b3JrIHRvcG9sb2d5LiAgVGhlIHByb3BlcnR5IG9mIGhhdmluZyBzdWNoIGxhcmdlIGZhaWx1cmUg c2NvcGUgaXMNCi0tLSAxMzc1LDEzODEgLS0tLQ0KICAgICBwb3NzaWJsZSB3aXRoIHRoZSBwcm9w b3NlZCBkZXNpZ24sIHNpbmNlIHVzaW5nIHRoaXMgdGVjaG5pcXVlIG1heQ0KICAgICBjcmVhdGUg cm91dGluZyBibGFjay1ob2xlcyBhcyBtZW50aW9uZWQgcHJldmlvdXNseS4gIFRoZXJlZm9yZSwg dGhlDQogICAgIHdvcnN0IGNvbnRyb2wgcGxhbmUgZmFpbHVyZSBpbXBhY3Qgc2NvcGUgaXMgdGhl IG5ldHdvcmsgYXMgYSB3aG9sZSwNCiEgICAgZm9yIGluc3RhbmNlIGluIHRoZWNhc2Ugb2YgYSBs aW5rIGZhaWx1cmUgYmV0d2VlbiBUaWVyLTIgYW5kIFRpZXItMw0KICAgICBkZXZpY2VzLiAgVGhl IGFtb3VudCBvZiBpbXBhY3RlZCBwcmVmaXhlcyBpbiB0aGlzIGNhc2Ugd291bGQgYmUgbXVjaA0K ICAgICBsZXNzIHRoYW4gaW4gdGhlIGNhc2Ugb2YgYSBmYWlsdXJlIGluIHRoZSB1cHBlciBsYXll cnMgb2YgYSBDbG9zDQogICAgIG5ldHdvcmsgdG9wb2xvZ3kuICBUaGUgcHJvcGVydHkgb2YgaGF2 aW5nIHN1Y2ggbGFyZ2UgZmFpbHVyZSBzY29wZSBpcw0KKioqKioqKioqKioqKioqDQoqKiogMTM4 NCwxMzk3ICoqKioNCg0KICA3LjUuICBSb3V0aW5nIE1pY3JvLUxvb3BzDQoNCiEgICAgV2hlbiBh IGRvd25zdHJlYW0gZGV2aWNlLCBlLmcuICBUaWVyLTIgZGV2aWNlLCBsb3NlcyBhbGwgcGF0aHMg Zm9yIGENCiAgICAgcHJlZml4LCBpdCBub3JtYWxseSBoYXMgdGhlIGRlZmF1bHQgcm91dGUgcG9p bnRpbmcgdG93YXJkIHRoZQ0KICAgICB1cHN0cmVhbSBkZXZpY2UsIGluIHRoaXMgY2FzZSB0aGUg VGllci0xIGRldmljZS4gIEFzIGEgcmVzdWx0LCBpdCBpcw0KISAgICBwb3NzaWJsZSB0byBnZXQg aW4gdGhlIHNpdHVhdGlvbiB3aGVuIFRpZXItMiBzd2l0Y2ggbG9zZXMgYSBwcmVmaXgsDQohICAg IGJ1dCBUaWVyLTEgc3dpdGNoIHN0aWxsIGhhcyB0aGUgcGF0aCBwb2ludGluZyB0byB0aGUgVGll ci0yIGRldmljZSwNCiEgICAgd2hpY2ggcmVzdWx0cyBpbiB0cmFuc2llbnQgbWljcm8tbG9vcCwg c2luY2UgVGllci0xIHN3aXRjaCB3aWxsIGtlZXANCiAgICAgcGFzc2luZyBwYWNrZXRzIHRvIHRo ZSBhZmZlY3RlZCBwcmVmaXggYmFjayB0byBUaWVyLTIgZGV2aWNlLCBhbmQNCiEgICAgVGllci0y IHdpbGwgYm91bmNlIGl0IGJhY2sgYWdhaW4gdXNpbmcgdGhlIGRlZmF1bHQgcm91dGUuICBUaGlz DQogICAgIG1pY3JvLWxvb3Agd2lsbCBsYXN0IGZvciB0aGUgZHVyYXRpb24gb2YgdGltZSBpdCB0 YWtlcyB0aGUgdXBzdHJlYW0NCiAgICAgZGV2aWNlIHRvIGZ1bGx5IHVwZGF0ZSBpdHMgZm9yd2Fy ZGluZyB0YWJsZXMuDQoNCi0tLSAxMzg0LDEzOTcgLS0tLQ0KDQogIDcuNS4gIFJvdXRpbmcgTWlj cm8tTG9vcHMNCg0KISAgICBXaGVuIGEgZG93bnN0cmVhbSBkZXZpY2UsIGUuZy4sICBUaWVyLTIg ZGV2aWNlLCBsb3NlcyBhbGwgcGF0aHMgZm9yIGENCiAgICAgcHJlZml4LCBpdCBub3JtYWxseSBo YXMgdGhlIGRlZmF1bHQgcm91dGUgcG9pbnRpbmcgdG93YXJkIHRoZQ0KICAgICB1cHN0cmVhbSBk ZXZpY2UsIGluIHRoaXMgY2FzZSB0aGUgVGllci0xIGRldmljZS4gIEFzIGEgcmVzdWx0LCBpdCBp cw0KISAgICBwb3NzaWJsZSB0byBnZXQgaW4gdGhlIHNpdHVhdGlvbiB3aGVyZSBhIFRpZXItMiBz d2l0Y2ggbG9zZXMgYSBwcmVmaXgsDQohICAgIGJ1dCBhIFRpZXItMSBzd2l0Y2ggc3RpbGwgaGFz IHRoZSBwYXRoIHBvaW50aW5nIHRvIHRoZSBUaWVyLTIgZGV2aWNlLA0KISAgICB3aGljaCByZXN1 bHRzIGluIHRyYW5zaWVudCBtaWNyby1sb29wLCBzaW5jZSB0aGUgVGllci0xIHN3aXRjaCB3aWxs DQprZWVwDQogICAgIHBhc3NpbmcgcGFja2V0cyB0byB0aGUgYWZmZWN0ZWQgcHJlZml4IGJhY2sg dG8gVGllci0yIGRldmljZSwgYW5kDQohICAgIHRoZSBUaWVyLTIgd2lsbCBib3VuY2UgaXQgYmFj ayBhZ2FpbiB1c2luZyB0aGUgZGVmYXVsdCByb3V0ZS4gIFRoaXMNCiAgICAgbWljcm8tbG9vcCB3 aWxsIGxhc3QgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aW1lIGl0IHRha2VzIHRoZSB1cHN0cmVhbQ0K ICAgICBkZXZpY2UgdG8gZnVsbHkgdXBkYXRlIGl0cyBmb3J3YXJkaW5nIHRhYmxlcy4NCg0KKioq KioqKioqKioqKioqDQoqKiogMTQwMiwxNDA4ICoqKioNCiAgSW50ZXJuZXQtRHJhZnQgICAgZHJh ZnQtaWV0Zi1ydGd3Zy1iZ3Atcm91dGluZy1sYXJnZS1kYyAgICAgICBNYXJjaCAyMDE2DQoNCg0K ISAgICBUbyBtaW5pbWl6ZSBpbXBhY3Qgb2YgdGhlIG1pY3JvLWxvb3BzLCBUaWVyLTIgYW5kIFRp ZXItMSBzd2l0Y2hlcyBjYW4NCiAgICAgYmUgY29uZmlndXJlZCB3aXRoIHN0YXRpYyAiZGlzY2Fy ZCIgb3IgIm51bGwiIHJvdXRlcyB0aGF0IHdpbGwgYmUNCiAgICAgbW9yZSBzcGVjaWZpYyB0aGFu IHRoZSBkZWZhdWx0IHJvdXRlIGZvciBwcmVmaXhlcyBtaXNzaW5nIGR1cmluZw0KICAgICBuZXR3 b3JrIGNvbnZlcmdlbmNlLiAgRm9yIFRpZXItMiBzd2l0Y2hlcywgdGhlIGRpc2NhcmQgcm91dGUg c2hvdWxkDQotLS0gMTQwMiwxNDA4IC0tLS0NCiAgSW50ZXJuZXQtRHJhZnQgICAgZHJhZnQtaWV0 Zi1ydGd3Zy1iZ3Atcm91dGluZy1sYXJnZS1kYyAgICAgICBNYXJjaCAyMDE2DQoNCg0KISAgICBU byBtaW5pbWl6ZSB0aGUgaW1wYWN0IG9mIHN1Y2ggbWljcm8tbG9vcHMsIFRpZXItMiBhbmQgVGll ci0xDQpzd2l0Y2hlcyBjYW4NCiAgICAgYmUgY29uZmlndXJlZCB3aXRoIHN0YXRpYyAiZGlzY2Fy ZCIgb3IgIm51bGwiIHJvdXRlcyB0aGF0IHdpbGwgYmUNCiAgICAgbW9yZSBzcGVjaWZpYyB0aGFu IHRoZSBkZWZhdWx0IHJvdXRlIGZvciBwcmVmaXhlcyBtaXNzaW5nIGR1cmluZw0KICAgICBuZXR3 b3JrIGNvbnZlcmdlbmNlLiAgRm9yIFRpZXItMiBzd2l0Y2hlcywgdGhlIGRpc2NhcmQgcm91dGUg c2hvdWxkDQoqKioqKioqKioqKioqKioNCioqKiAxNDE3LDE0MjMgKioqKg0KDQogIDguMS4gIFRo aXJkLXBhcnR5IFJvdXRlIEluamVjdGlvbg0KDQohICAgIEJHUCBhbGxvd3MgZm9yIGEgInRoaXJk LXBhcnR5IiwgaS5lLiBkaXJlY3RseSBhdHRhY2hlZCwgQkdQIHNwZWFrZXINCiAgICAgdG8gaW5q ZWN0IHJvdXRlcyBhbnl3aGVyZSBpbiB0aGUgbmV0d29yayB0b3BvbG9neSwgbWVldGluZyBSRVE1 Lg0KICAgICBUaGlzIGNhbiBiZSBhY2hpZXZlZCBieSBwZWVyaW5nIHZpYSBhIG11bHRpaG9wIEJH UCBzZXNzaW9uIHdpdGggc29tZQ0KICAgICBvciBldmVuIGFsbCBkZXZpY2VzIGluIHRoZSB0b3Bv bG9neS4gIEZ1cnRoZXJtb3JlLCBCR1AgZGl2ZXJzZSBwYXRoDQotLS0gMTQxNywxNDIzIC0tLS0N Cg0KICA4LjEuICBUaGlyZC1wYXJ0eSBSb3V0ZSBJbmplY3Rpb24NCg0KISAgICBCR1AgYWxsb3dz IGZvciBhICJ0aGlyZC1wYXJ0eSIsIGkuZS4sIGRpcmVjdGx5IGF0dGFjaGVkLCBCR1Agc3BlYWtl cg0KICAgICB0byBpbmplY3Qgcm91dGVzIGFueXdoZXJlIGluIHRoZSBuZXR3b3JrIHRvcG9sb2d5 LCBtZWV0aW5nIFJFUTUuDQogICAgIFRoaXMgY2FuIGJlIGFjaGlldmVkIGJ5IHBlZXJpbmcgdmlh IGEgbXVsdGlob3AgQkdQIHNlc3Npb24gd2l0aCBzb21lDQogICAgIG9yIGV2ZW4gYWxsIGRldmlj ZXMgaW4gdGhlIHRvcG9sb2d5LiAgRnVydGhlcm1vcmUsIEJHUCBkaXZlcnNlIHBhdGgNCioqKioq KioqKioqKioqKg0KKioqIDE0MjcsMTQzMyAqKioqDQogICAgIGltcGxlbWVudGF0aW9uLiAgVW5m b3J0dW5hdGVseSwgaW4gbWFueSBpbXBsZW1lbnRhdGlvbnMgQURELVBBVEggaGFzDQogICAgIGJl ZW4gZm91bmQgdG8gb25seSBzdXBwb3J0IElCR1AgcHJvcGVybHkgZHVlIHRvIHRoZSB1c2UgY2Fz ZXMgaXQgd2FzDQogICAgIG9yaWdpbmFsbHkgb3B0aW1pemVkIGZvciwgd2hpY2ggbGltaXRzIHRo ZSAidGhpcmQtcGFydHkiIHBlZXJpbmcgdG8NCiEgICAgSUJHUCBvbmx5LCBpZiB0aGUgZmVhdHVy ZSBpcyB1c2VkLg0KDQogICAgIFRvIGltcGxlbWVudCByb3V0ZSBpbmplY3Rpb24gaW4gdGhlIHBy b3Bvc2VkIGRlc2lnbiwgYSB0aGlyZC1wYXJ0eQ0KICAgICBCR1Agc3BlYWtlciBtYXkgcGVlciB3 aXRoIFRpZXItMyBhbmQgVGllci0xIHN3aXRjaGVzLCBpbmplY3RpbmcgdGhlDQotLS0gMTQyNywx NDMzIC0tLS0NCiAgICAgaW1wbGVtZW50YXRpb24uICBVbmZvcnR1bmF0ZWx5LCBpbiBtYW55IGlt cGxlbWVudGF0aW9ucyBBREQtUEFUSCBoYXMNCiAgICAgYmVlbiBmb3VuZCB0byBvbmx5IHN1cHBv cnQgSUJHUCBwcm9wZXJseSBkdWUgdG8gdGhlIHVzZSBjYXNlcyBpdCB3YXMNCiAgICAgb3JpZ2lu YWxseSBvcHRpbWl6ZWQgZm9yLCB3aGljaCBsaW1pdHMgdGhlICJ0aGlyZC1wYXJ0eSIgcGVlcmlu ZyB0bw0KISAgICBJQkdQIG9ubHkuDQoNCiAgICAgVG8gaW1wbGVtZW50IHJvdXRlIGluamVjdGlv biBpbiB0aGUgcHJvcG9zZWQgZGVzaWduLCBhIHRoaXJkLXBhcnR5DQogICAgIEJHUCBzcGVha2Vy IG1heSBwZWVyIHdpdGggVGllci0zIGFuZCBUaWVyLTEgc3dpdGNoZXMsIGluamVjdGluZyB0aGUN CioqKioqKioqKioqKioqKg0KKioqIDE0NDIsMTQ1MyAqKioqDQogICAgIEFzIG1lbnRpb25lZCBw cmV2aW91c2x5LCByb3V0ZSBzdW1tYXJpemF0aW9uIGlzIG5vdCBwb3NzaWJsZSB3aXRoaW4NCiAg ICAgdGhlIHByb3Bvc2VkIENsb3MgdG9wb2xvZ3kgc2luY2UgaXQgbWFrZXMgdGhlIG5ldHdvcmsg c3VzY2VwdGlibGUgdG8NCiAgICAgcm91dGUgYmxhY2staG9saW5nIHVuZGVyIHNpbmdsZSBsaW5r IGZhaWx1cmVzLiAgVGhlIG1haW4gcHJvYmxlbSBpcw0KISAgICB0aGUgbGltaXRlZCBudW1iZXIg b2YgcmVkdW5kYW50IHBhdGhzIGJldHdlZW4gbmV0d29yayBlbGVtZW50cywgZS5nLg0KICAgICB0 aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhdGggYmV0d2VlbiBhbnkgcGFpciBvZiBUaWVyLTEgYW5k IFRpZXItMw0KICAgICBkZXZpY2VzLiAgSG93ZXZlciwgc29tZSBvcGVyYXRvcnMgbWF5IGZpbmQg cm91dGUgYWdncmVnYXRpb24NCiAgICAgZGVzaXJhYmxlIHRvIGltcHJvdmUgY29udHJvbCBwbGFu ZSBzdGFiaWxpdHkuDQoNCiEgICAgSWYgcGxhbm5pbmcgb24gdXNpbmcgYW55IHRlY2huaXF1ZSB0 byBzdW1tYXJpemUgd2l0aGluIHRoZSB0b3BvbG9neQ0KICAgICBtb2RlbGluZyBvZiB0aGUgcm91 dGluZyBiZWhhdmlvciBhbmQgcG90ZW50aWFsIGZvciBibGFjay1ob2xpbmcNCiAgICAgc2hvdWxk IGJlIGRvbmUgbm90IG9ubHkgZm9yIHNpbmdsZSBvciBtdWx0aXBsZSBsaW5rIGZhaWx1cmVzLCBi dXQNCg0KLS0tIDE0NDIsMTQ1MyAtLS0tDQogICAgIEFzIG1lbnRpb25lZCBwcmV2aW91c2x5LCBy b3V0ZSBzdW1tYXJpemF0aW9uIGlzIG5vdCBwb3NzaWJsZSB3aXRoaW4NCiAgICAgdGhlIHByb3Bv c2VkIENsb3MgdG9wb2xvZ3kgc2luY2UgaXQgbWFrZXMgdGhlIG5ldHdvcmsgc3VzY2VwdGlibGUg dG8NCiAgICAgcm91dGUgYmxhY2staG9saW5nIHVuZGVyIHNpbmdsZSBsaW5rIGZhaWx1cmVzLiAg VGhlIG1haW4gcHJvYmxlbSBpcw0KISAgICB0aGUgbGltaXRlZCBudW1iZXIgb2YgcmVkdW5kYW50 IHBhdGhzIGJldHdlZW4gbmV0d29yayBlbGVtZW50cywgZS5nLiwNCiAgICAgdGhlcmUgaXMgb25s eSBhIHNpbmdsZSBwYXRoIGJldHdlZW4gYW55IHBhaXIgb2YgVGllci0xIGFuZCBUaWVyLTMNCiAg ICAgZGV2aWNlcy4gIEhvd2V2ZXIsIHNvbWUgb3BlcmF0b3JzIG1heSBmaW5kIHJvdXRlIGFnZ3Jl Z2F0aW9uDQogICAgIGRlc2lyYWJsZSB0byBpbXByb3ZlIGNvbnRyb2wgcGxhbmUgc3RhYmlsaXR5 Lg0KDQohICAgIElmIGFueSB0ZWNobmlxdWUgdG8gc3VtbWFyaXplIHdpdGhpbiB0aGUgdG9wb2xv Z3kgaXMgcGxhbm5lZCwNCiAgICAgbW9kZWxpbmcgb2YgdGhlIHJvdXRpbmcgYmVoYXZpb3IgYW5k IHBvdGVudGlhbCBmb3IgYmxhY2staG9saW5nDQogICAgIHNob3VsZCBiZSBkb25lIG5vdCBvbmx5 IGZvciBzaW5nbGUgb3IgbXVsdGlwbGUgbGluayBmYWlsdXJlcywgYnV0DQoNCioqKioqKioqKioq KioqKg0KKioqIDE0NTgsMTQ2OCAqKioqDQogIEludGVybmV0LURyYWZ0ICAgIGRyYWZ0LWlldGYt cnRnd2ctYmdwLXJvdXRpbmctbGFyZ2UtZGMgICAgICAgTWFyY2ggMjAxNg0KDQoNCiEgICAgYWxz byBmaWJlciBwYXRod2F5IGZhaWx1cmVzIG9yIG9wdGljYWwgZG9tYWluIGZhaWx1cmVzIGlmIHRo ZQ0KICAgICB0b3BvbG9neSBleHRlbmRzIGJleW9uZCBhIHBoeXNpY2FsIGxvY2F0aW9uLiAgU2lt cGxlIG1vZGVsaW5nIGNhbiBiZQ0KICAgICBkb25lIGJ5IGNoZWNraW5nIHRoZSByZWFjaGFiaWxp dHkgb24gZGV2aWNlcyBkb2luZyBzdW1tYXJpemF0aW9uDQogICAgIHVuZGVyIHRoZSBjb25kaXRp b24gb2YgYSBsaW5rIG9yIHBhdGh3YXkgZmFpbHVyZSBiZXR3ZWVuIGEgc2V0IG9mDQohICAgIGRl dmljZXMgaW4gZXZlcnkgdGllciBhcyB3ZWxsIGFzIHRvIHRoZSBXQU4gcm91dGVycyBpZiBleHRl cm5hbA0KICAgICBjb25uZWN0aXZpdHkgaXMgcHJlc2VudC4NCg0KICAgICBSb3V0ZSBzdW1tYXJp emF0aW9uIHdvdWxkIGJlIHBvc3NpYmxlIHdpdGggYSBzbWFsbCBtb2RpZmljYXRpb24gdG8NCi0t LSAxNDU4LDE0NjggLS0tLQ0KICBJbnRlcm5ldC1EcmFmdCAgICBkcmFmdC1pZXRmLXJ0Z3dnLWJn cC1yb3V0aW5nLWxhcmdlLWRjICAgICAgIE1hcmNoIDIwMTYNCg0KDQohICAgIGFsc28gZmliZXIg cGF0aHdheSBmYWlsdXJlcyBvciBvcHRpY2FsIGRvbWFpbiBmYWlsdXJlcyB3aGVuIHRoZQ0KICAg ICB0b3BvbG9neSBleHRlbmRzIGJleW9uZCBhIHBoeXNpY2FsIGxvY2F0aW9uLiAgU2ltcGxlIG1v ZGVsaW5nIGNhbiBiZQ0KICAgICBkb25lIGJ5IGNoZWNraW5nIHRoZSByZWFjaGFiaWxpdHkgb24g ZGV2aWNlcyBkb2luZyBzdW1tYXJpemF0aW9uDQogICAgIHVuZGVyIHRoZSBjb25kaXRpb24gb2Yg YSBsaW5rIG9yIHBhdGh3YXkgZmFpbHVyZSBiZXR3ZWVuIGEgc2V0IG9mDQohICAgIGRldmljZXMg aW4gZXZlcnkgdGllciBhcyB3ZWxsIGFzIHRvIHRoZSBXQU4gcm91dGVycyB3aGVuIGV4dGVybmFs DQogICAgIGNvbm5lY3Rpdml0eSBpcyBwcmVzZW50Lg0KDQogICAgIFJvdXRlIHN1bW1hcml6YXRp b24gd291bGQgYmUgcG9zc2libGUgd2l0aCBhIHNtYWxsIG1vZGlmaWNhdGlvbiB0bw0KKioqKioq KioqKioqKioqDQoqKiogMTUxOSwxNTQ0ICoqKioNCiAgICAgY2x1c3RlciBmcm9tIFRpZXItMiBk ZXZpY2VzIHNpbmNlIGVhY2ggb2YgdGhlbSBoYXMgb25seSBhIHNpbmdsZSBwYXRoDQogICAgIGRv d24gdG8gdGhpcyBwcmVmaXguICBJdCB3b3VsZCByZXF1aXJlIGR1YWwtaG9tZWQgc2VydmVycyB0 bw0KICAgICBhY2NvbXBsaXNoIHRoYXQuICBBbHNvIG5vdGUgdGhhdCB0aGlzIGRlc2lnbiBpcyBv bmx5IHJlc2lsaWVudCB0bw0KISAgICBzaW5nbGUgbGluayBmYWlsdXJlLiAgSXQgaXMgcG9zc2li bGUgZm9yIGEgZG91YmxlIGxpbmsgZmFpbHVyZSB0bw0KICAgICBpc29sYXRlIGEgVGllci0yIGRl dmljZSBmcm9tIGFsbCBwYXRocyB0b3dhcmQgYSBzcGVjaWZpYyBUaWVyLTMNCiAgICAgZGV2aWNl LCB0aHVzIGNhdXNpbmcgYSByb3V0aW5nIGJsYWNrLWhvbGUuDQoNCiEgICAgQSByZXN1bHQgb2Yg dGhlIHByb3Bvc2VkIHRvcG9sb2d5IG1vZGlmaWNhdGlvbiB3b3VsZCBiZSByZWR1Y3Rpb24gb2YN CiAgICAgVGllci0xIGRldmljZXMgcG9ydCBjYXBhY2l0eS4gIFRoaXMgbGltaXRzIHRoZSBtYXhp bXVtIG51bWJlciBvZg0KICAgICBhdHRhY2hlZCBUaWVyLTIgZGV2aWNlcyBhbmQgdGhlcmVmb3Jl IHdpbGwgbGltaXQgdGhlIG1heGltdW0gREMNCiAgICAgbmV0d29yayBzaXplLiAgQSBsYXJnZXIg bmV0d29yayB3b3VsZCByZXF1aXJlIGRpZmZlcmVudCBUaWVyLTENCiAgICAgZGV2aWNlcyB0aGF0 IGhhdmUgaGlnaGVyIHBvcnQgZGVuc2l0eSB0byBpbXBsZW1lbnQgdGhpcyBjaGFuZ2UuDQoNCiAg ICAgQW5vdGhlciBwcm9ibGVtIGlzIHRyYWZmaWMgcmUtYmFsYW5jaW5nIHVuZGVyIGxpbmsgZmFp bHVyZXMuICBTaW5jZQ0KISAgICB0aHJlZSBhcmUgdHdvIHBhdGhzIGZyb20gVGllci0xIHRvIFRp ZXItMywgYSBmYWlsdXJlIG9mIHRoZSBsaW5rDQogICAgIGJldHdlZW4gVGllci0xIGFuZCBUaWVy LTIgc3dpdGNoIHdvdWxkIHJlc3VsdCBpbiBhbGwgdHJhZmZpYyB0aGF0IHdhcw0KICAgICB0YWtp bmcgdGhlIGZhaWxlZCBsaW5rIHRvIHN3aXRjaCB0byB0aGUgcmVtYWluaW5nIHBhdGguICBUaGlz IHdpbGwNCiEgICAgcmVzdWx0IGluIGRvdWJsaW5nIG9mIGxpbmsgdXRpbGl6YXRpb24gb24gdGhl IHJlbWFpbmluZyBsaW5rLg0KDQogIDguMi4yLiAgU2ltcGxlIFZpcnR1YWwgQWdncmVnYXRpb24N Cg0KICAgICBBIGNvbXBsZXRlbHkgZGlmZmVyZW50IGFwcHJvYWNoIHRvIHJvdXRlIHN1bW1hcml6 YXRpb24gaXMgcG9zc2libGUsDQohICAgIHByb3ZpZGVkIHRoYXQgdGhlIG1haW4gZ29hbCBpcyB0 byByZWR1Y2UgdGhlIEZJQiBwcmVzc3VyZSwgd2hpbGUNCiAgICAgYWxsb3dpbmcgdGhlIGNvbnRy b2wgcGxhbmUgdG8gZGlzc2VtaW5hdGUgZnVsbCByb3V0aW5nIGluZm9ybWF0aW9uLg0KICAgICBG aXJzdGx5LCBpdCBjb3VsZCBiZSBlYXNpbHkgbm90ZWQgdGhhdCBpbiBtYW55IGNhc2VzIG11bHRp cGxlDQogICAgIHByZWZpeGVzLCBzb21lIG9mIHdoaWNoIGFyZSBsZXNzIHNwZWNpZmljLCBzaGFy ZSB0aGUgc2FtZSBzZXQgb2YgdGhlDQotLS0gMTUxOSwxNTQ0IC0tLS0NCiAgICAgY2x1c3RlciBm cm9tIFRpZXItMiBkZXZpY2VzIHNpbmNlIGVhY2ggb2YgdGhlbSBoYXMgb25seSBhIHNpbmdsZSBw YXRoDQogICAgIGRvd24gdG8gdGhpcyBwcmVmaXguICBJdCB3b3VsZCByZXF1aXJlIGR1YWwtaG9t ZWQgc2VydmVycyB0bw0KICAgICBhY2NvbXBsaXNoIHRoYXQuICBBbHNvIG5vdGUgdGhhdCB0aGlz IGRlc2lnbiBpcyBvbmx5IHJlc2lsaWVudCB0bw0KISAgICBzaW5nbGUgbGluayBmYWlsdXJlcy4g IEl0IGlzIHBvc3NpYmxlIGZvciBhIGRvdWJsZSBsaW5rIGZhaWx1cmUgdG8NCiAgICAgaXNvbGF0 ZSBhIFRpZXItMiBkZXZpY2UgZnJvbSBhbGwgcGF0aHMgdG93YXJkIGEgc3BlY2lmaWMgVGllci0z DQogICAgIGRldmljZSwgdGh1cyBjYXVzaW5nIGEgcm91dGluZyBibGFjay1ob2xlLg0KDQohICAg IEEgcmVzdWx0IG9mIHRoZSBwcm9wb3NlZCB0b3BvbG9neSBtb2RpZmljYXRpb24gd291bGQgYmUg YSByZWR1Y3Rpb24gb2YNCiAgICAgVGllci0xIGRldmljZXMgcG9ydCBjYXBhY2l0eS4gIFRoaXMg bGltaXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZg0KICAgICBhdHRhY2hlZCBUaWVyLTIgZGV2aWNl cyBhbmQgdGhlcmVmb3JlIHdpbGwgbGltaXQgdGhlIG1heGltdW0gREMNCiAgICAgbmV0d29yayBz aXplLiAgQSBsYXJnZXIgbmV0d29yayB3b3VsZCByZXF1aXJlIGRpZmZlcmVudCBUaWVyLTENCiAg ICAgZGV2aWNlcyB0aGF0IGhhdmUgaGlnaGVyIHBvcnQgZGVuc2l0eSB0byBpbXBsZW1lbnQgdGhp cyBjaGFuZ2UuDQoNCiAgICAgQW5vdGhlciBwcm9ibGVtIGlzIHRyYWZmaWMgcmUtYmFsYW5jaW5n IHVuZGVyIGxpbmsgZmFpbHVyZXMuICBTaW5jZQ0KISAgICB0aGVyZSBhcmUgdHdvIHBhdGhzIGZy b20gVGllci0xIHRvIFRpZXItMywgYSBmYWlsdXJlIG9mIHRoZSBsaW5rDQogICAgIGJldHdlZW4g VGllci0xIGFuZCBUaWVyLTIgc3dpdGNoIHdvdWxkIHJlc3VsdCBpbiBhbGwgdHJhZmZpYyB0aGF0 IHdhcw0KICAgICB0YWtpbmcgdGhlIGZhaWxlZCBsaW5rIHRvIHN3aXRjaCB0byB0aGUgcmVtYWlu aW5nIHBhdGguICBUaGlzIHdpbGwNCiEgICAgcmVzdWx0IGluIGRvdWJsaW5nIHRoZSBsaW5rIHV0 aWxpemF0aW9uIG9mIHRoZSByZW1haW5pbmcgbGluay4NCg0KICA4LjIuMi4gIFNpbXBsZSBWaXJ0 dWFsIEFnZ3JlZ2F0aW9uDQoNCiAgICAgQSBjb21wbGV0ZWx5IGRpZmZlcmVudCBhcHByb2FjaCB0 byByb3V0ZSBzdW1tYXJpemF0aW9uIGlzIHBvc3NpYmxlLA0KISAgICBwcm92aWRlZCB0aGF0IHRo ZSBtYWluIGdvYWwgaXMgdG8gcmVkdWNlIHRoZSBGSUIgc2l6ZSwgd2hpbGUNCiAgICAgYWxsb3dp bmcgdGhlIGNvbnRyb2wgcGxhbmUgdG8gZGlzc2VtaW5hdGUgZnVsbCByb3V0aW5nIGluZm9ybWF0 aW9uLg0KICAgICBGaXJzdGx5LCBpdCBjb3VsZCBiZSBlYXNpbHkgbm90ZWQgdGhhdCBpbiBtYW55 IGNhc2VzIG11bHRpcGxlDQogICAgIHByZWZpeGVzLCBzb21lIG9mIHdoaWNoIGFyZSBsZXNzIHNw ZWNpZmljLCBzaGFyZSB0aGUgc2FtZSBzZXQgb2YgdGhlDQoqKioqKioqKioqKioqKioNCioqKiAx NTUwLDE1NjMgKioqKg0KICAgICBbUkZDNjc2OV0gYW5kIG9ubHkgaW5zdGFsbCB0aGUgbGVhc3Qg c3BlY2lmaWMgcm91dGUgaW4gdGhlIEZJQiwNCiAgICAgaWdub3JpbmcgbW9yZSBzcGVjaWZpYyBy b3V0ZXMgaWYgdGhleSBzaGFyZSB0aGUgc2FtZSBuZXh0LWhvcCBzZXQuDQogICAgIEZvciBleGFt cGxlLCB1bmRlciBub3JtYWwgbmV0d29yayBjb25kaXRpb25zLCBvbmx5IHRoZSBkZWZhdWx0IHJv dXRlDQohICAgIG5lZWQgdG8gYmUgcHJvZ3JhbW1lZCBpbnRvIEZJQi4NCg0KICAgICBGdXJ0aGVy bW9yZSwgaWYgdGhlIFRpZXItMiBkZXZpY2VzIGFyZSBjb25maWd1cmVkIHdpdGggc3VtbWFyeQ0K ISAgICBwcmVmaXhlcyBjb3ZlcmluZyBhbGwgb2YgdGhlaXIgYXR0YWNoZWQgVGllci0zIGRldmlj ZSdzIHByZWZpeGVzIHRoZQ0KICAgICBzYW1lIGxvZ2ljIGNvdWxkIGJlIGFwcGxpZWQgaW4gVGll ci0xIGRldmljZXMgYXMgd2VsbCwgYW5kLCBieQ0KICAgICBpbmR1Y3Rpb24gdG8gVGllci0yL1Rp ZXItMyBzd2l0Y2hlcyBpbiBkaWZmZXJlbnQgY2x1c3RlcnMuICBUaGVzZQ0KICAgICBzdW1tYXJ5 IHJvdXRlcyBzaG91bGQgc3RpbGwgYWxsb3cgZm9yIG1vcmUgc3BlY2lmaWMgcHJlZml4ZXMgdG8g bGVhaw0KISAgICB0byBUaWVyLTEgZGV2aWNlcywgdG8gZW5hYmxlIGZvciBkZXRlY3Rpb24gb2Yg bWlzbWF0Y2hlcyBpbiB0aGUgbmV4dC0NCiAgICAgaG9wIHNldHMgaWYgYSBwYXJ0aWN1bGFyIGxp bmsgZmFpbHMsIGNoYW5naW5nIHRoZSBuZXh0LWhvcCBzZXQgZm9yIGENCiAgICAgc3BlY2lmaWMg cHJlZml4Lg0KDQotLS0gMTU1MCwxNTYzIC0tLS0NCiAgICAgW1JGQzY3NjldIGFuZCBvbmx5IGlu c3RhbGwgdGhlIGxlYXN0IHNwZWNpZmljIHJvdXRlIGluIHRoZSBGSUIsDQogICAgIGlnbm9yaW5n IG1vcmUgc3BlY2lmaWMgcm91dGVzIGlmIHRoZXkgc2hhcmUgdGhlIHNhbWUgbmV4dC1ob3Agc2V0 Lg0KICAgICBGb3IgZXhhbXBsZSwgdW5kZXIgbm9ybWFsIG5ldHdvcmsgY29uZGl0aW9ucywgb25s eSB0aGUgZGVmYXVsdCByb3V0ZQ0KISAgICBuZWVkcyB0byBiZSBwcm9ncmFtbWVkIGludG8gRklC Lg0KDQogICAgIEZ1cnRoZXJtb3JlLCBpZiB0aGUgVGllci0yIGRldmljZXMgYXJlIGNvbmZpZ3Vy ZWQgd2l0aCBzdW1tYXJ5DQohICAgIHByZWZpeGVzIGNvdmVyaW5nIGFsbCBvZiB0aGVpciBhdHRh Y2hlZCBUaWVyLTMgZGV2aWNlJ3MgcHJlZml4ZXMsIHRoZQ0KICAgICBzYW1lIGxvZ2ljIGNvdWxk IGJlIGFwcGxpZWQgaW4gVGllci0xIGRldmljZXMgYXMgd2VsbCwgYW5kLCBieQ0KICAgICBpbmR1 Y3Rpb24gdG8gVGllci0yL1RpZXItMyBzd2l0Y2hlcyBpbiBkaWZmZXJlbnQgY2x1c3RlcnMuICBU aGVzZQ0KICAgICBzdW1tYXJ5IHJvdXRlcyBzaG91bGQgc3RpbGwgYWxsb3cgZm9yIG1vcmUgc3Bl Y2lmaWMgcHJlZml4ZXMgdG8gbGVhaw0KISAgICB0byBUaWVyLTEgZGV2aWNlcywgdG8gZW5hYmxl IGRldGVjdGlvbiBvZiBtaXNtYXRjaGVzIGluIHRoZSBuZXh0LQ0KICAgICBob3Agc2V0cyBpZiBh IHBhcnRpY3VsYXIgbGluayBmYWlscywgY2hhbmdpbmcgdGhlIG5leHQtaG9wIHNldCBmb3IgYQ0K ICAgICBzcGVjaWZpYyBwcmVmaXguDQoNCioqKioqKioqKioqKioqKg0KKioqIDE1NzEsMTU4NCAq KioqDQoNCg0KICAgICBSZS1zdGF0aW5nIG9uY2UgYWdhaW4sIHRoaXMgdGVjaG5pcXVlIGRvZXMg bm90IHJlZHVjZSB0aGUgYW1vdW50IG9mDQohICAgIGNvbnRyb2wgcGxhbmUgc3RhdGUgKGkuZS4g IEJHUCBVUERBVEVzL0JHUCBMb2NSSUIgc2l6aW5nKSwgYnV0IG9ubHkNCiEgICAgYWxsb3dzIGZv ciBtb3JlIGVmZmljaWVudCBGSUIgdXRpbGl6YXRpb24sIGJ5IHNwb3R0aW5nIG1vcmUgc3BlY2lm aWMNCiEgICAgcHJlZml4ZXMgdGhhdCBzaGFyZSB0aGVpciBuZXh0LWhvcHMgd2l0aCBsZXNzIHNw ZWNpZmljcy4NCg0KICA4LjMuICBJQ01QIFVucmVhY2hhYmxlIE1lc3NhZ2UgTWFzcXVlcmFkaW5n DQoNCiAgICAgVGhpcyBzZWN0aW9uIGRpc2N1c3NlcyBzb21lIG9wZXJhdGlvbmFsIGFzcGVjdHMg b2Ygbm90IGFkdmVydGlzaW5nDQohICAgIHBvaW50LXRvLXBvaW50IGxpbmsgc3VibmV0cyBpbnRv IEJHUCwgYXMgcHJldmlvdXNseSBvdXRsaW5lZCBhcyBhbg0KICAgICBvcHRpb24gaW4gU2VjdGlv biA1LjIuMy4gIFRoZSBvcGVyYXRpb25hbCBpbXBhY3Qgb2YgdGhpcyBkZWNpc2lvbg0KICAgICBj b3VsZCBiZSBzZWVuIHdoZW4gdXNpbmcgdGhlIHdlbGwta25vd24gInRyYWNlcm91dGUiIHRvb2wu DQogICAgIFNwZWNpZmljYWxseSwgSVAgYWRkcmVzc2VzIGRpc3BsYXllZCBieSB0aGUgdG9vbCB3 aWxsIGJlIHRoZSBsaW5rJ3MNCi0tLSAxNTcxLDE1ODUgLS0tLQ0KDQoNCiAgICAgUmUtc3RhdGlu ZyBvbmNlIGFnYWluLCB0aGlzIHRlY2huaXF1ZSBkb2VzIG5vdCByZWR1Y2UgdGhlIGFtb3VudCBv Zg0KISAgICBjb250cm9sIHBsYW5lIHN0YXRlIChpLmUuLCAgQkdQIFVQREFURXMvQkdQIExvYy1S SUIgc2l6ZSksIGJ1dCBvbmx5DQohICAgIGFsbG93cyBmb3IgbW9yZSBlZmZpY2llbnQgRklCIHV0 aWxpemF0aW9uLCBieSBkZXRlY3RpbmcgbW9yZSBzcGVjaWZpYw0KISAgICBwcmVmaXhlcyB0aGF0 IHNoYXJlIHRoZWlyIG5leHQtaG9wIHNldCB3aXRoIGEgc3Vic3VtaW5nIGxlc3Mgc3BlY2lmaWMN CiEgICAgcHJlZml4Lg0KDQogIDguMy4gIElDTVAgVW5yZWFjaGFibGUgTWVzc2FnZSBNYXNxdWVy YWRpbmcNCg0KICAgICBUaGlzIHNlY3Rpb24gZGlzY3Vzc2VzIHNvbWUgb3BlcmF0aW9uYWwgYXNw ZWN0cyBvZiBub3QgYWR2ZXJ0aXNpbmcNCiEgICAgcG9pbnQtdG8tcG9pbnQgbGluayBzdWJuZXRz IGludG8gQkdQLCBhcyBwcmV2aW91c2x5IGlkZW50aWZpZWQgYXMgYW4NCiAgICAgb3B0aW9uIGlu IFNlY3Rpb24gNS4yLjMuICBUaGUgb3BlcmF0aW9uYWwgaW1wYWN0IG9mIHRoaXMgZGVjaXNpb24N CiAgICAgY291bGQgYmUgc2VlbiB3aGVuIHVzaW5nIHRoZSB3ZWxsLWtub3duICJ0cmFjZXJvdXRl IiB0b29sLg0KICAgICBTcGVjaWZpY2FsbHksIElQIGFkZHJlc3NlcyBkaXNwbGF5ZWQgYnkgdGhl IHRvb2wgd2lsbCBiZSB0aGUgbGluaydzDQoqKioqKioqKioqKioqKioNCioqKiAxNTg3LDE2MDUg KioqKg0KICAgICBjb21wbGljYXRlZC4NCg0KICAgICBPbmUgd2F5IHRvIG92ZXJjb21lIHRoaXMg bGltaXRhdGlvbiBpcyBieSB1c2luZyB0aGUgRE5TIHN1YnN5c3RlbSB0bw0KISAgICBjcmVhdGUg dGhlICJyZXZlcnNlIiBlbnRyaWVzIGZvciB0aGUgSVAgYWRkcmVzc2VzIG9mIHRoZSBzYW1lIGRl dmljZQ0KISAgICBwb2ludGluZyB0byB0aGUgc2FtZSBuYW1lLiAgVGhlIGNvbm5lY3Rpdml0eSB0 aGVuIGNhbiBiZSBtYWRlIGJ5DQohICAgIHJlc29sdmluZyB0aGlzIG5hbWUgdG8gdGhlICJwcmlt YXJ5IiBJUCBhZGRyZXNzIG9mIHRoZSBkZXZpY2VzLCBlLmcuDQogICAgIGl0cyBMb29wYmFjayBp bnRlcmZhY2UsIHdoaWNoIGlzIGFsd2F5cyBhZHZlcnRpc2VkIGludG8gQkdQLg0KICAgICBIb3dl dmVyLCB0aGlzIGNyZWF0ZXMgYSBkZXBlbmRlbmN5IG9uIHRoZSBETlMgc3Vic3lzdGVtLCB3aGlj aCBtYXkgYmUNCiAgICAgdW5hdmFpbGFibGUgZHVyaW5nIGFuIG91dGFnZS4NCg0KICAgICBBbm90 aGVyIG9wdGlvbiBpcyB0byBtYWtlIHRoZSBuZXR3b3JrIGRldmljZSBwZXJmb3JtIElQIGFkZHJl c3MNCiAgICAgbWFzcXVlcmFkaW5nLCB0aGF0IGlzIHJld3JpdGluZyB0aGUgc291cmNlIElQIGFk ZHJlc3NlcyBvZiB0aGUNCiEgICAgYXBwcm9wcmlhdGUgSUNNUCBtZXNzYWdlcyBzZW50IG9mZiBv ZiB0aGUgZGV2aWNlIHdpdGggdGhlICJwcmltYXJ5Ig0KICAgICBJUCBhZGRyZXNzIG9mIHRoZSBk ZXZpY2UuICBTcGVjaWZpY2FsbHksIHRoZSBJQ01QIERlc3RpbmF0aW9uDQogICAgIFVucmVhY2hh YmxlIE1lc3NhZ2UgKHR5cGUgMykgY29kZXMgMyAocG9ydCB1bnJlYWNoYWJsZSkgYW5kIElDTVAg VGltZQ0KISAgICBFeGNlZWRlZCAodHlwZSAxMSkgY29kZSAwLCB3aGljaCBhcmUgaW52b2x2ZWQg aW4gcHJvcGVyIHdvcmtpbmcgb2YNCiAgICAgdGhlICJ0cmFjZXJvdXRlIiB0b29sLiAgV2l0aCB0 aGlzIG1vZGlmaWNhdGlvbiwgdGhlICJ0cmFjZXJvdXRlIg0KICAgICBwcm9iZXMgc2VudCB0byB0 aGUgZGV2aWNlcyB3aWxsIGFsd2F5cyBiZSBzZW50IGJhY2sgd2l0aCB0aGUNCiAgICAgInByaW1h cnkiIElQIGFkZHJlc3MgYXMgdGhlIHNvdXJjZSwgYWxsb3dpbmcgdGhlIG9wZXJhdG9yIHRvIGRp c2NvdmVyDQotLS0gMTU4OCwxNjA2IC0tLS0NCiAgICAgY29tcGxpY2F0ZWQuDQoNCiAgICAgT25l IHdheSB0byBvdmVyY29tZSB0aGlzIGxpbWl0YXRpb24gaXMgYnkgdXNpbmcgdGhlIEROUyBzdWJz eXN0ZW0gdG8NCiEgICAgY3JlYXRlIHRoZSAicmV2ZXJzZSIgZW50cmllcyBmb3IgdGhlc2UgcG9p bnQtdG8tcG9pbnQgSVAgYWRkcmVzc2VzDQpwb2ludGluZw0KISAgICB0byBhIHRoZSBzYW1lIG5h bWUgYXMgdGhlIGxvb3BiYWNrIGFkZHJlc3MuICBUaGUgY29ubmVjdGl2aXR5IHRoZW4NCmNhbiBi ZSBtYWRlIGJ5DQohICAgIHJlc29sdmluZyB0aGlzIG5hbWUgdG8gdGhlICJwcmltYXJ5IiBJUCBh ZGRyZXNzIG9mIHRoZSBkZXZpY2VzLCBlLmcuLA0KICAgICBpdHMgTG9vcGJhY2sgaW50ZXJmYWNl LCB3aGljaCBpcyBhbHdheXMgYWR2ZXJ0aXNlZCBpbnRvIEJHUC4NCiAgICAgSG93ZXZlciwgdGhp cyBjcmVhdGVzIGEgZGVwZW5kZW5jeSBvbiB0aGUgRE5TIHN1YnN5c3RlbSwgd2hpY2ggbWF5IGJl DQogICAgIHVuYXZhaWxhYmxlIGR1cmluZyBhbiBvdXRhZ2UuDQoNCiAgICAgQW5vdGhlciBvcHRp b24gaXMgdG8gbWFrZSB0aGUgbmV0d29yayBkZXZpY2UgcGVyZm9ybSBJUCBhZGRyZXNzDQogICAg IG1hc3F1ZXJhZGluZywgdGhhdCBpcyByZXdyaXRpbmcgdGhlIHNvdXJjZSBJUCBhZGRyZXNzZXMg b2YgdGhlDQohICAgIGFwcHJvcHJpYXRlIElDTVAgbWVzc2FnZXMgc2VudCBieSB0aGUgZGV2aWNl IHdpdGggdGhlICJwcmltYXJ5Ig0KICAgICBJUCBhZGRyZXNzIG9mIHRoZSBkZXZpY2UuICBTcGVj aWZpY2FsbHksIHRoZSBJQ01QIERlc3RpbmF0aW9uDQogICAgIFVucmVhY2hhYmxlIE1lc3NhZ2Ug KHR5cGUgMykgY29kZXMgMyAocG9ydCB1bnJlYWNoYWJsZSkgYW5kIElDTVAgVGltZQ0KISAgICBF eGNlZWRlZCAodHlwZSAxMSkgY29kZSAwLCB3aGljaCBhcmUgcmVxdWlyZWQgZm9yIGNvcnJlY3Qg b3BlcmF0aW9uIG9mDQogICAgIHRoZSAidHJhY2Vyb3V0ZSIgdG9vbC4gIFdpdGggdGhpcyBtb2Rp ZmljYXRpb24sIHRoZSAidHJhY2Vyb3V0ZSINCiAgICAgcHJvYmVzIHNlbnQgdG8gdGhlIGRldmlj ZXMgd2lsbCBhbHdheXMgYmUgc2VudCBiYWNrIHdpdGggdGhlDQogICAgICJwcmltYXJ5IiBJUCBh ZGRyZXNzIGFzIHRoZSBzb3VyY2UsIGFsbG93aW5nIHRoZSBvcGVyYXRvciB0byBkaXNjb3Zlcg0K DQpUaGFua3MsDQpBY2VlDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQpydGd3ZyBtYWlsaW5nIGxpc3QNCnJ0Z3dnQGlldGYub3JnPG1haWx0bzpydGd3 Z0BpZXRmLm9yZz4NCmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vcnRnd2c8 aHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX193d3cu aWV0Zi5vcmdfbWFpbG1hbl9saXN0aW5mb19ydGd3ZyZkPUN3TUZhUSZjPTVWRDBSVHRObFRoM3lj ZDQxYjNNVXcmcj1MVV92SmFNX0VRdTFTc20zNWoyeGxBJm09amx3bXFSTVNCYnpXSVJvcklfc0RB TTFpMEx1dU9kTEZtSkRWTkxwdElZYyZzPUEybm9hVXRTRklPcjByV19hUUVXVzAtbkZLdnNKNEJP R3Zwc2FTajc0cHMmZT0+DQoNCg== --_000_3F437107848A5140A6A19222EFFB34812015BB92PRNMBX012TheFac_ Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PGh0bWwgZGlyPSJsdHIiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUi IGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+DQo8c3R5bGUgdHlwZT0idGV4dC9j c3MiIGlkPSJvd2FQYXJhU3R5bGUiPjwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keSBmcHN0eWxlPSIx IiBvY3NpPSIwIj4NCjxkaXYgc3R5bGU9ImRpcmVjdGlvbjogbHRyO2ZvbnQtZmFtaWx5OiBUYWhv bWE7Y29sb3I6ICMwMDAwMDA7Zm9udC1zaXplOiAxMHB0OyI+QWNlc3MsIHRoYW5rIHlvdSBzbyBt dWNoIGZvciBmaW5pc2hpbmcgdGhlIHJldmlldyENCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkFs aWEsIHdlJ2xsIHdvcmsgb24gYWRkcmVzc2luZyB0aGUgZmVlZGJhY2sgQVNBUC48L2Rpdj4NCjxk aXY+PGJyPg0KPC9kaXY+DQo8ZGl2PlJlZ2FyZHMsPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0K PGRpdj5QZXRyPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXYgc3R5bGU9ImZv bnQtZmFtaWx5OiBUaW1lcyBOZXcgUm9tYW47IGNvbG9yOiAjMDAwMDAwOyBmb250LXNpemU6IDE2 cHgiPg0KPGhyIHRhYmluZGV4PSItMSI+DQo8ZGl2IGlkPSJkaXZScEY5MDcwNjkiIHN0eWxlPSJk aXJlY3Rpb246IGx0cjsiPjxmb250IGZhY2U9IlRhaG9tYSIgc2l6ZT0iMiIgY29sb3I9IiMwMDAw MDAiPjxiPkZyb206PC9iPiBydGd3ZyBbcnRnd2ctYm91bmNlc0BpZXRmLm9yZ10gb24gYmVoYWxm IG9mIEFsaWEgQXRsYXMgW2FrYXRsYXNAZ21haWwuY29tXTxicj4NCjxiPlNlbnQ6PC9iPiBNb25k YXksIEFwcmlsIDI1LCAyMDE2IDEyOjAxIFBNPGJyPg0KPGI+VG86PC9iPiBBY2VlIExpbmRlbSAo YWNlZSk8YnI+DQo8Yj5DYzo8L2I+IGRyYWZ0LWlldGYtcnRnd2ctYmdwLXJvdXRpbmctbGFyZ2Ut ZGNAaWV0Zi5vcmc7IFJvdXRpbmcgV0c7IFJvdXRpbmcgRGlyZWN0b3JhdGU7IFJvdXRpbmcgQURz PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBSb3V0aW5nIERpcmVjdG9yYXRlIFJldmlldyBmb3Ig JnF1b3Q7VXNlIG9mIEJHUCBmb3Igcm91dGluZyBpbiBsYXJnZS1zY2FsZSBkYXRhIGNlbnRlcnMm cXVvdDsgKGFkZGluZyBSVEcgV0cpPGJyPg0KPC9mb250Pjxicj4NCjwvZGl2Pg0KPGRpdj48L2Rp dj4NCjxkaXY+DQo8ZGl2IGRpcj0ibHRyIj5IaSBBY2VlLA0KPGRpdj48YnI+DQo8L2Rpdj4NCjxk aXY+VGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgeW91ciByZXZpZXcuPC9kaXY+DQo8ZGl2Pjxicj4N CjwvZGl2Pg0KPGRpdj5BdXRob3JzLCBjb3VsZCB5b3UgcGxlYXNlIHJlc3BvbmQgc29vbj8mbmJz cDsgSSBhbSBob3BpbmcgdG8gZ2V0IHRoaXMgb3V0IHRvIElFVEYgTGFzdCBDYWxsPC9kaXY+DQo8 ZGl2PmJ5IFRodXJzZGF5IC0gYW5kIG9uIHRoZSB0ZWxlY2hhdCBmb3IgTWF5IDE5LiAmbmJzcDsg Jm5ic3A7VGhhdCBkZXBlbmRzIG9uIHRpbWVseSB1cGRhdGVzIGZyb208L2Rpdj4NCjxkaXY+dGhl IGF1dGhvcnMgYW5kIHNoZXBoZXJkLjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+VGhh bmtzLDwvZGl2Pg0KPGRpdj5BbGlhPC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRpdj48YnI+ DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj4NCjxkaXYgY2xh c3M9ImdtYWlsX3F1b3RlIj5PbiBNb24sIEFwciAyNSwgMjAxNiBhdCAxOjE2IFBNLCBBY2VlIExp bmRlbSAoYWNlZSkgPHNwYW4gZGlyPSJsdHIiPg0KJmx0OzxhIGhyZWY9Im1haWx0bzphY2VlQGNp c2NvLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmFjZWVAY2lzY28uY29tPC9hPiZndDs8L3NwYW4+IHdy b3RlOjxicj4NCjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjow IDAgMCAuOGV4OyBib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDsgcGFkZGluZy1sZWZ0OjFleCI+ DQpIZWxsbyw8YnI+DQo8YnI+DQpJIGhhdmUgYmVlbiBzZWxlY3RlZCBhcyB0aGUgUm91dGluZyBE aXJlY3RvcmF0ZSByZXZpZXdlciBmb3IgdGhpcyBkcmFmdC48YnI+DQpUaGUgUm91dGluZyBEaXJl Y3RvcmF0ZSBzZWVrcyB0byByZXZpZXcgYWxsIHJvdXRpbmcgb3Igcm91dGluZy1yZWxhdGVkPGJy Pg0KZHJhZnRzIGFzIHRoZXkgcGFzcyB0aHJvdWdoIElFVEYgbGFzdCBjYWxsIGFuZCBJRVNHIHJl dmlldywgYW5kIHNvbWV0aW1lczxicj4NCm9uIHNwZWNpYWwgcmVxdWVzdC4gVGhlIHB1cnBvc2Ug b2YgdGhlIHJldmlldyBpcyB0byBwcm92aWRlIGFzc2lzdGFuY2UgdG88YnI+DQp0aGUgUm91dGlu ZyBBRHMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBSb3V0aW5nIERpcmVjdG9yYXRl LDxicj4NCnBsZWFzZSBzZWUg4oCLPGEgaHJlZj0iaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9p bnQuY29tL3YyL3VybD91PWh0dHAtM0FfX3RyYWMudG9vbHMuaWV0Zi5vcmdfYXJlYV9ydGdfdHJh Y193aWtpX1J0Z0RpciZhbXA7ZD1Dd01GYVEmYW1wO2M9NVZEMFJUdE5sVGgzeWNkNDFiM01VdyZh bXA7cj1MVV92SmFNX0VRdTFTc20zNWoyeGxBJmFtcDttPWpsd21xUk1TQmJ6V0lSb3JJX3NEQU0x aTBMdXVPZExGbUpEVk5McHRJWWMmYW1wO3M9YkdNUl90RXBOeENVbkVlTjZCQlBSdmZNb0QwVGVT dmRvM3pKQUVSZ3RfcyZhbXA7ZT0iIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0 dHA6Ly90cmFjLnRvb2xzLmlldGYub3JnL2FyZWEvcnRnL3RyYWMvd2lraS9SdGdEaXI8L2E+PGJy Pg0KPGJyPg0KQWx0aG91Z2ggdGhlc2UgY29tbWVudHMgYXJlIHByaW1hcmlseSBmb3IgdGhlIHVz ZSBvZiB0aGUgUm91dGluZyBBRHMsIGl0PGJyPg0Kd291bGQgYmUgaGVscGZ1bCBpZiB5b3UgY291 bGQgY29uc2lkZXIgdGhlbSBhbG9uZyB3aXRoIGFueSBvdGhlciBJRVRGIExhc3Q8YnI+DQpDYWxs IGNvbW1lbnRzIHRoYXQgeW91IHJlY2VpdmUsIGFuZCBzdHJpdmUgdG8gcmVzb2x2ZSB0aGVtIHRo cm91Z2g8YnI+DQpkaXNjdXNzaW9uIG9yIGJ5IHVwZGF0aW5nIHRoZSBkcmFmdC48YnI+DQo8YnI+ DQpEb2N1bWVudDogZHJhZnQtaWV0Zi1ydGd3Zy1iZ3Atcm91dGluZy1sYXJnZS1kYy0wOS50eHQ8 YnI+DQpSZXZpZXdlcjogQWNlZSBMaW5kZW08YnI+DQpSZXZpZXcgRGF0ZTogNC8yNS8xNjxicj4N CklFVEYgTEMgRW5kIERhdGU6IE5vdCBzdGFydGVkPGJyPg0KSW50ZW5kZWQgU3RhdHVzOiBJbmZv cm1hdGlvbmFsPGJyPg0KPGJyPg0KU3VtbWFyeTo8YnI+DQombmJzcDsgJm5ic3A7IFRoaXMgZG9j dW1lbnQgaXMgYmFzaWNhbGx5IHJlYWR5IGZvciBwdWJsaWNhdGlvbiwgYnV0IGhhcyBzb21lIG1p bm9yPGJyPg0KaXNzdWVzIGFuZCBuaXRzIHRoYXQgc2hvdWxkIGJlIHJlc29sdmVkIHByaW9yIHRv IHB1YmxpY2F0aW9uLjxicj4NCjxicj4NCkNvbW1lbnRzOjxicj4NCiZuYnNwOyAmbmJzcDsgVGhl IGRvY3VtZW50IHN0YXJ0cyB3aXRoIHRoZSByZXF1aXJlbWVudHMgZm9yIGFuIE1TREMgcm91dGlu ZyBhbmQgdGhlbjxicj4NCnByb3ZpZGVzIGFuIG92ZXJ2aWV3IG9mIENsb3MgZGF0YSB0b3BvbG9n aWVzIGFuZCBkYXRhIGNlbnRlciBuZXR3b3JrPGJyPg0KZGVzaWduLiBUaGlzIG92ZXJ2aWV3IGF0 dGVtcHRzIHRvIGNvdmVyIGEgbG90IG9mIGEgbWF0ZXJpYWwgaW4gYSB2ZXJ5PGJyPg0Kc21hbGwg YW1vdW50IG9mIHRleHQuIFdoaWxlIG5vdCBjb21wbGV0ZWx5IHN1Y2Nlc3NmdWwsIHRoZSBvdmVy dmlldzxicj4NCnByb3ZpZGVzIGEgbG90IG9mIGdvb2QgaW5mb3JtYXRpb24gYW5kIHJlZmVyZW5j ZXMuIFRoZSBidWxrIG9mIHRoZTxicj4NCmRvY3VtZW50IGNvdmVycyB0aGUgdXNhZ2Ugb2YgRUJH UCBhcyB0aGUgc29sZSBkYXRhIGNlbnRlciByb3V0aW5nIHByb3RvY29sPGJyPg0KYW5kIG90aGVy IGFzcGVjdHMgb2YgdGhlIHJvdXRpbmcgZGVzaWduIGluY2x1ZGluZyBFQ01QLCBzdW1tYXJpemF0 aW9uPGJyPg0KaXNzdWVzLCBhbmQgY29udmVyZ2VuY2UuIFRoZXNlIHNlY3Rpb25zIHByb3ZpZGUg YSB2ZXJ5IGdvb2QgZ3VpZGUgZm9yPGJyPg0KdXNpbmcgRUJHUCBpbiBhIENsb3MgZGF0YSBjZW50 ZXIgYW5kIGFuIGV4Y2VsbGVudCBkaXNjdXNzaW9uIG9mIHRoZTxicj4NCmRlcGxveW1lbnQgaXNz dWVzIChiYXNlZCBvbiByZWFsIGRlcGxveW1lbnQgZXhwZXJpZW5jZSkuPGJyPg0KPGJyPg0KJm5i c3A7ICZuYnNwOyBUaGUgdGVjaG5pY2FsIGNvbnRlbnQgb2YgdGhlIGRvY3VtZW50IGlzIGV4Y2Vs bGVudC4gVGhlIHJlYWRhYmlsaXR5PGJyPg0KY291bGQgYmUgaW1wcm92ZWQgYnkgYnJlYWtpbmcg dXAgc29tZSBvZiB0aGUgcnVuLW9uIHNlbnRlbmNlcyBhbmQgd2l0aCB0aGU8YnI+DQpzdWdnZXN0 ZWQgZWRpdG9yaWFsIGNoYW5nZXMgKHNlZSBOaXRzIGJlbG93KS48YnI+DQo8YnI+DQo8YnI+DQpN YWpvciBJc3N1ZXM6PGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyBJIGhhdmUgbm8gbWFqb3IgaXNz dWVzIHdpdGggdGhlIGRvY3VtZW50Ljxicj4NCjxicj4NCk1pbm9yIElzc3Vlczo8YnI+DQo8YnI+ DQombmJzcDsgJm5ic3A7IFNlY3Rpb24gNC4yOiBDYW4gYW4gaW5mb3JtYXRpdmUgcmVmZXJlbmNl IGJlIGFkZGVkIGZvciBEaXJlY3QgU2VydmVyPGJyPg0KUmV0dXJuIChEU1IpPzxicj4NCiZuYnNw OyAmbmJzcDsgU2VjdGlvbiA1LjIuNCBhbmQgNy40OiBEZWZpbmUgcHJlY2lzZWx5IHdoYXQgaXMg bWVhbnQgYnkgJnF1b3Q7c2NhbGUtb3V0JnF1b3Q7PGJyPg0KdG9wb2xvZ3kgc29tZXdoZXJlIGlu IHRoZSBkb2N1bWVudC48YnI+DQombmJzcDsgJm5ic3A7IFNlY3Rpb24gNS4yLjU6IENhbiB5b3Ug YWRkIGEgYmFja3dhcmQgcmVmZXJlbmNlIHRvIHRoZSBkaXNjdXNzaW9uIG9mPGJyPg0KJnF1b3Q7 bGFjayBvZiBwZWVyIGxpbmtzIGluc2lkZSBldmVyeSBwZWVy4oCdPyBBbHNvLCBpdCB3b3VsZCBi ZSBnb29kIHRvIGRlc2NyaWJlPGJyPg0KaG93IHRoaXMgd291bGQgYWxsb3cgZm9yIHN1bW1hcml6 YXRpb24gYW5kIHVuZGVyIHdoYXQgZmFpbHVyZSBjb25kaXRpb25zLjxicj4NCiZuYnNwOyAmbmJz cDsgU2VjdGlvbiA3LjQ6IFNob3VsZCB5b3UgYWRkIGEgcmVmZXJlbmNlIHRvPGJyPg0KPGEgaHJl Zj0iaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX193 d3cuaWV0Zi5vcmdfaWRfZHJhZnQtMkRpZXRmLTJEcnRnd2ctMkRiZ3AtMkRwaWMtMkQwMC50eHQm YW1wO2Q9Q3dNRmFRJmFtcDtjPTVWRDBSVHRObFRoM3ljZDQxYjNNVXcmYW1wO3I9TFVfdkphTV9F UXUxU3NtMzVqMnhsQSZhbXA7bT1qbHdtcVJNU0JieldJUm9ySV9zREFNMWkwTHV1T2RMRm1KRFZO THB0SVljJmFtcDtzPVNEX0FQbTZfMm5sMFNOOTBzZVRiWmNVV3ZkZnBBMnoySkxMckRVd1ZEc0Em YW1wO2U9IiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL3d3dy5pZXRm Lm9yZy9pZC9kcmFmdC1pZXRmLXJ0Z3dnLWJncC1waWMtMDAudHh0PC9hPg0KIHRvIHRoZSBwZW51 bHRpbWF0ZTxicj4NCnBhcmFncmFwaCBpbiB0aGlzIHNlY3Rpb24/PGJyPg0KPGJyPg0KTml0czo8 YnI+DQo8YnI+DQoqKioqKioqKioqKioqKio8YnI+DQoqKiogMTQzLDE0OSAqKioqPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDtuZXR3b3JrIHN0YWJpbGl0eSBzbyB0aGF0IGEgc21hbGwgZ3JvdXAg b2YgcGVvcGxlIGNhbiBlZmZlY3RpdmVseTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7c3VwcG9y dCBhIHNpZ25pZmljYW50bHkgc2l6ZWQgbmV0d29yay48YnI+DQo8YnI+DQohJm5ic3A7ICZuYnNw OyBFeHBlcmltZW50YXRpb24gYW5kIGV4dGVuc2l2ZSB0ZXN0aW5nIGhhcyBzaG93biB0aGF0IEV4 dGVybmFsIEJHUDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7KEVCR1ApIFtSRkM0MjcxXSBpcyB3 ZWxsIHN1aXRlZCBhcyBhIHN0YW5kLWFsb25lIHJvdXRpbmcgcHJvdG9jb2wgZm9yPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDt0aGVzZSB0eXBlIG9mIGRhdGEgY2VudGVyIGFwcGxpY2F0aW9ucy4m bmJzcDsgVGhpcyBpcyBpbiBjb250cmFzdCB3aXRoPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtt b3JlIHRyYWRpdGlvbmFsIERDIGRlc2lnbnMsIHdoaWNoIG1heSBzZSBzaW1wbGUgdHJlZSB0b3Bv bG9naWVzIGFuZDxicj4NCi0tLSAxNDMsMTQ5IC0tLS08YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw O25ldHdvcmsgc3RhYmlsaXR5IHNvIHRoYXQgYSBzYWxsIGdyb3VwIG9mIHBlb3BsZSBjYW4gZWZm ZWN0aXZlbHk8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3N1cHBvcnQgYSBzaWduaWZpY2FudGx5 IHNpemVkIG5ldHdvcmsuPGJyPg0KPGJyPg0KISZuYnNwOyAmbmJzcDsgRXhwZXJpbWVudGF0aW9u IGFuZCBleHRlbnNpdmUgdGVzdGluZyBoYXZlIHNob3duIHRoYXQgRXh0ZXJuYWwgQkdQPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDsoRUJHUCkgW1JGQzQyNzFdIGlzIHdlbGwgc3VpdGVkIGFzIGEg c3RhbmQtYWxvbmUgcm91dGluZyBwcm90b2NvbCBmb3I8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw O3RoZXNlIHR5cGUgb2YgZGF0YSBjZW50ZXIgYXBwbGljYXRpb25zLiZuYnNwOyBUaGlzIGlzIGlu IGNvbnRyYXN0IHdpdGg8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO21vcmUgdHJhZGl0aW9uYWwg REMgZGVzaWducywgd2hpY2ggbWF5IHVzZSBzaW1wbGUgdHJlZSB0b3BvbG9naWVzIGFuZDxicj4N CioqKioqKioqKioqKioqKjxicj4NCioqKiAxNzgsMTkxICoqKio8YnI+DQombmJzcDsgMi4xLiZu YnNwOyBCYW5kd2lkdGggYW5kIFRyYWZmaWMgUGF0dGVybnM8YnI+DQo8YnI+DQombmJzcDsgJm5i c3A7ICZuYnNwO1RoZSBwcmltYXJ5IHJlcXVpcmVtZW50IHdoZW4gYnVpbGRpbmcgYW4gaW50ZXJj b25uZWN0aW9uIG5ldHdvcmsgZm9yPGJyPg0KISZuYnNwOyAmbmJzcDsgbGFyZ2UgbnVtYmVyIG9m IHNlcnZlcnMgaXMgdG8gYWNjb21tb2RhdGUgYXBwbGljYXRpb24gYmFuZHdpZHRoIGFuZDxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7bGF0ZW5jeSByZXF1aXJlbWVudHMuJm5ic3A7IFVudGlsIHJl Y2VudGx5IGl0IHdhcyBxdWl0ZSBjb21tb24gdG8gc2VlIHRoZTxicj4NCiZuYnNwOyAmbmJzcDsg Jm5ic3A7bWFqb3JpdHkgb2YgdHJhZmZpYyBlbnRlcmluZyBhbmQgbGVhdmluZyB0aGUgZGF0YSBj ZW50ZXIsIGNvbW1vbmx5PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtyZWZlcnJlZCB0byBhcyAm cXVvdDtub3J0aC1zb3V0aCZxdW90OyB0cmFmZmljLiZuYnNwOyBUcmFkaXRpb25hbCAmcXVvdDt0 cmVlJnF1b3Q7IHRvcG9sb2dpZXM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3dlcmUgc3VmZmlj aWVudCB0byBhY2NvbW1vZGF0ZSBzdWNoIGZsb3dzLCBldmVuIHdpdGggaGlnaDxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7b3ZlcnN1YnNjcmlwdGlvbiByYXRpb3MgYmV0d2VlbiB0aGUgbGF5ZXJz IG9mIHRoZSBuZXR3b3JrLiZuYnNwOyBJZiBtb3JlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDti YW5kd2lkdGggd2FzIHJlcXVpcmVkLCBpdCB3YXMgYWRkZWQgYnkgJnF1b3Q7c2NhbGluZyB1cCZx dW90OyB0aGUgbmV0d29yazxicj4NCiEmbmJzcDsgJm5ic3A7IGVsZW1lbnRzLCBlLmcuIGJ5IHVw Z3JhZGluZyB0aGUgZGV2aWNlJ3MgbGluZWNhcmRzIG9yIGZhYnJpY3Mgb3I8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwO3JlcGxhY2luZyB0aGUgZGV2aWNlIHdpdGggb25lIHdpdGggaGlnaGVyIHBv cnQgZGVuc2l0eS48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO1RvZGF5IG1hbnkgbGFy Z2Utc2NhbGUgZGF0YSBjZW50ZXJzIGhvc3QgYXBwbGljYXRpb25zIGdlbmVyYXRpbmc8YnI+DQot LS0gMTc4LDE5MSAtLS0tPGJyPg0KJm5ic3A7IDIuMS4mbmJzcDsgQmFuZHdpZHRoIGFuZCBUcmFm ZmljIFBhdHRlcm5zPGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtUaGUgcHJpbWFyeSBy ZXF1aXJlbWVudCB3aGVuIGJ1aWxkaW5nIGFuIGludGVyY29ubmVjdGlvbiBuZXR3b3JrIGZvcjxi cj4NCiEmbmJzcDsgJm5ic3A7IGEgbGFyZ2UgbnVtYmVyIG9mIHNlcnZlcnMgaXMgdG8gYWNjb21t b2RhdGUgYXBwbGljYXRpb24gYmFuZHdpZHRoIGFuZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7 bGF0ZW5jeSByZXF1aXJlbWVudHMuJm5ic3A7IFVudGlsIHJlY2VudGx5IGl0IHdhcyBxdWl0ZSBj b21tb24gdG8gc2VlIHRoZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bWFqb3JpdHkgb2YgdHJh ZmZpYyBlbnRlcmluZyBhbmQgbGVhdmluZyB0aGUgZGF0YSBjZW50ZXIsIGNvbW1vbmx5PGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZWZlcnJlZCB0byBhcyAmcXVvdDtub3J0aC1zb3V0aCZxdW90 OyB0cmFmZmljLiZuYnNwOyBUcmFkaXRpb25hbCAmcXVvdDt0cmVlJnF1b3Q7IHRvcG9sb2dpZXM8 YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3dlcmUgc3VmZmljaWVudCB0byBhY2NvbW1vZGF0ZSBz dWNoIGZsb3dzLCBldmVuIHdpdGggaGlnaDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7b3ZlcnN1 YnNjcmlwdGlvbiByYXRpb3MgYmV0d2VlbiB0aGUgbGF5ZXJzIG9mIHRoZSBuZXR3b3JrLiZuYnNw OyBJZiBtb3JlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtiYW5kd2lkdGggd2FzIHJlcXVpcmVk LCBpdCB3YXMgYWRkZWQgYnkgJnF1b3Q7c2NhbGluZyB1cCZxdW90OyB0aGUgbmV0d29yazxicj4N CiEmbmJzcDsgJm5ic3A7IGVsZW1lbnRzLCBlLmcuLCBieSB1cGdyYWRpbmcgdGhlIGRldmljZSdz IGxpbmVjYXJkcyBvciBmYWJyaWNzIG9yPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXBsYWNp bmcgdGhlIGRldmljZSB3aXRoIG9uZSB3aXRoIGhpZ2hlciBwb3J0IGRlbnNpdHkuPGJyPg0KPGJy Pg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtUb2RheSBtYW55IGxhcmdlLXNjYWxlIGRhdGEgY2VudGVy cyBob3N0IGFwcGxpY2F0aW9ucyBnZW5lcmF0aW5nPGJyPg0KKioqKioqKioqKioqKioqPGJyPg0K KioqIDE5NSwyMDEgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7W0hBRE9PUF0sIG1hc3Np dmUgZGF0YSByZXBsaWNhdGlvbiBiZXR3ZWVuIGNsdXN0ZXJzIG5lZWRlZCBieSBjZXJ0YWluPGJy Pg0KJm5ic3A7ICZuYnNwOyAmbmJzcDthcHBsaWNhdGlvbnMsIG9yIHZpcnR1YWwgbWFjaGluZSBt aWdyYXRpb25zLiZuYnNwOyBTY2FsaW5nIHRyYWRpdGlvbmFsPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDt0cmVlIHRvcG9sb2dpZXMgdG8gbWF0Y2ggdGhlc2UgYmFuZHdpZHRoIGRlbWFuZHMgYmVj b21lcyBlaXRoZXIgdG9vPGJyPg0KISZuYnNwOyAmbmJzcDsgZXhwZW5zaXZlIG9yIGltcG9zc2li bGUgZHVlIHRvIHBoeXNpY2FsIGxpbWl0YXRpb25zLCBlLmcuIHBvcnQ8YnI+DQombmJzcDsgJm5i c3A7ICZuYnNwO2RlbnNpdHkgaW4gYSBzd2l0Y2guPGJyPg0KPGJyPg0KJm5ic3A7IDIuMi4mbmJz cDsgQ0FQRVggTWluaW1pemF0aW9uPGJyPg0KLS0tIDE5NSwyMDEgLS0tLTxicj4NCiZuYnNwOyAm bmJzcDsgJm5ic3A7W0hBRE9PUF0sIG1hc3NpdmUgZGF0YSByZXBsaWNhdGlvbiBiZXR3ZWVuIGNs dXN0ZXJzIG5lZWRlZCBieSBjZXJ0YWluPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDthcHBsaWNh dGlvbnMsIG9yIHZpcnR1YWwgbWFjaGluZSBtaWdyYXRpb25zLiZuYnNwOyBTY2FsaW5nIHRyYWRp dGlvbmFsPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0cmVlIHRvcG9sb2dpZXMgdG8gbWF0Y2gg dGhlc2UgYmFuZHdpZHRoIGRlbWFuZHMgYmVjb21lcyBlaXRoZXIgdG9vPGJyPg0KISZuYnNwOyAm bmJzcDsgZXhwZW5zaXZlIG9yIGltcG9zc2libGUgZHVlIHRvIHBoeXNpY2FsIGxpbWl0YXRpb25z LCBlLmcuLCBwb3J0PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtkZW5zaXR5IGluIGEgc3dpdGNo Ljxicj4NCjxicj4NCiZuYnNwOyAyLjIuJm5ic3A7IENBUEVYIE1pbmltaXphdGlvbjxicj4NCioq KioqKioqKioqKioqKjxicj4NCioqKiAyMDksMjE1ICoqKio8YnI+DQo8YnI+DQombmJzcDsgJm5i c3A7ICZuYnNwO28mbmJzcDsgVW5pZnlpbmcgYWxsIG5ldHdvcmsgZWxlbWVudHMsIHByZWZlcmFi bHkgdXNpbmcgdGhlIHNhbWUgaGFyZHdhcmU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgdHlwZSBvciBldmVuIHRoZSBzYW1lIGRldmljZS4mbmJzcDsgVGhpcyBhbGxvd3MgZm9yIHZv bHVtZSBwcmljaW5nIG9uPGJyPg0KISZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2J1bGsgcHVy Y2hhc2VzIGFuZCByZWR1Y2VkIG1haW50ZW5hbmNlIGFuZCBzcGFyaW5nIGNvc3RzLjxicj4NCjxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7byZuYnNwOyBEcml2aW5nIGNvc3RzIGRvd24gdXNpbmcg Y29tcGV0aXRpdmUgcHJlc3N1cmVzLCBieSBpbnRyb2R1Y2luZzxicj4NCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyBtdWx0aXBsZSBuZXR3b3JrIGVxdWlwbWVudCB2ZW5kb3JzLjxicj4NCi0t LSAyMDksMjE1IC0tLS08YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO28mbmJzcDsgVW5p ZnlpbmcgYWxsIG5ldHdvcmsgZWxlbWVudHMsIHByZWZlcmFibHkgdXNpbmcgdGhlIHNhbWUgaGFy ZHdhcmU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdHlwZSBvciBldmVuIHRoZSBz YW1lIGRldmljZS4mbmJzcDsgVGhpcyBhbGxvd3MgZm9yIHZvbHVtZSBwcmljaW5nIG9uPGJyPg0K ISZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2J1bGsgcHVyY2hhc2VzIGFuZCByZWR1Y2VkIG1h aW50ZW5hbmNlIGFuZCBpbnZlbnRvcnkgY29zdHMuPGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDtvJm5ic3A7IERyaXZpbmcgY29zdHMgZG93biB1c2luZyBjb21wZXRpdGl2ZSBwcmVzc3Vy ZXMsIGJ5IGludHJvZHVjaW5nPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IG11bHRp cGxlIG5ldHdvcmsgZXF1aXBtZW50IHZlbmRvcnMuPGJyPg0KKioqKioqKioqKioqKioqPGJyPg0K KioqIDIzNCwyNDQgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bWluaW1pemVzIHNvZnR3 YXJlIGlzc3VlLXJlbGF0ZWQgZmFpbHVyZXMuPGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz cDtBbiBpbXBvcnRhbnQgYXNwZWN0IG9mIE9wZXJhdGlvbmFsIEV4cGVuZGl0dXJlIChPUEVYKSBt aW5pbWl6YXRpb24gaXM8YnI+DQohJm5ic3A7ICZuYnNwOyByZWR1Y2luZyBzaXplIG9mIGZhaWx1 cmUgZG9tYWlucyBpbiB0aGUgbmV0d29yay4mbmJzcDsgRXRoZXJuZXQgbmV0d29ya3M8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwO2FyZSBrbm93biB0byBiZSBzdXNjZXB0aWJsZSB0byBicm9hZGNh c3Qgb3IgdW5pY2FzdCB0cmFmZmljIHN0b3Jtczxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7dGhh dCBjYW4gaGF2ZSBhIGRyYW1hdGljIGltcGFjdCBvbiBuZXR3b3JrIHBlcmZvcm1hbmNlIGFuZDxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7YXZhaWxhYmlsaXR5LiZuYnNwOyBUaGUgdXNlIG9mIGEg ZnVsbHkgcm91dGVkIGRlc2lnbiBzaWduaWZpY2FudGx5IHJlZHVjZXM8YnI+DQohJm5ic3A7ICZu YnNwOyB0aGUgc2l6ZSBvZiB0aGUgZGF0YSBwbGFuZSBmYWlsdXJlIGRvbWFpbnMgLSBpLmUuIGxp bWl0cyB0aGVtIHRvIHRoZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bG93ZXN0IGxldmVsIGlu IHRoZSBuZXR3b3JrIGhpZXJhcmNoeS4mbmJzcDsgSG93ZXZlciwgc3VjaCBkZXNpZ25zPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDtpbnRyb2R1Y2UgdGhlIHByb2JsZW0gb2YgZGlzdHJpYnV0ZWQg Y29udHJvbCBwbGFuZSBmYWlsdXJlcy4mbmJzcDsgVGhpczxicj4NCiZuYnNwOyAmbmJzcDsgJm5i c3A7b2JzZXJ2YXRpb24gY2FsbHMgZm9yIHNpbXBsZXIgYW5kIGxlc3MgY29udHJvbCBwbGFuZSBw cm90b2NvbHMgdG88YnI+DQotLS0gMjM0LDI0NCAtLS0tPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz cDttaW5pbWl6ZXMgc29mdHdhcmUgaXNzdWUtcmVsYXRlZCBmYWlsdXJlcy48YnI+DQo8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwO0FuIGltcG9ydGFudCBhc3BlY3Qgb2YgT3BlcmF0aW9uYWwgRXhw ZW5kaXR1cmUgKE9QRVgpIG1pbmltaXphdGlvbiBpczxicj4NCiEmbmJzcDsgJm5ic3A7IHJlZHVj aW5nIHRoZSBzaXplIG9mIGZhaWx1cmUgZG9tYWlucyBpbiB0aGUgbmV0d29yay4mbmJzcDsgRXRo ZXJuZXQ8YnI+DQpuZXR3b3Jrczxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7YXJlIGtub3duIHRv IGJlIHN1c2NlcHRpYmxlIHRvIGJyb2FkY2FzdCBvciB1bmljYXN0IHRyYWZmaWMgc3Rvcm1zPGJy Pg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0aGF0IGNhbiBoYXZlIGEgZHJhbWF0aWMgaW1wYWN0IG9u IG5ldHdvcmsgcGVyZm9ybWFuY2UgYW5kPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDthdmFpbGFi aWxpdHkuJm5ic3A7IFRoZSB1c2Ugb2YgYSBmdWxseSByb3V0ZWQgZGVzaWduIHNpZ25pZmljYW50 bHkgcmVkdWNlczxicj4NCiEmbmJzcDsgJm5ic3A7IHRoZSBzaXplIG9mIHRoZSBkYXRhIHBsYW5l IGZhaWx1cmUgZG9tYWlucywgaS5lLiwgbGltaXRzIHRoZW0gdG8gdGhlPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDtsb3dlc3QgbGV2ZWwgaW4gdGhlIG5ldHdvcmsgaGllcmFyY2h5LiZuYnNwOyBI b3dldmVyLCBzdWNoIGRlc2lnbnM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2ludHJvZHVjZSB0 aGUgcHJvYmxlbSBvZiBkaXN0cmlidXRlZCBjb250cm9sIHBsYW5lIGZhaWx1cmVzLiZuYnNwOyBU aGlzPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtvYnNlcnZhdGlvbiBjYWxscyBmb3Igc2ltcGxl ciBhbmQgbGVzcyBjb250cm9sIHBsYW5lIHByb3RvY29scyB0bzxicj4NCioqKioqKioqKioqKioq Kjxicj4NCioqKiAyNTMsMjU5ICoqKio8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3BlcmZvcm1l ZCBieSBuZXR3b3JrIGRldmljZXMuJm5ic3A7IFRyYWRpdGlvbmFsbHksIGxvYWQgYmFsYW5jZXJz IGFyZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGVwbG95ZWQgYXMgZGVkaWNhdGVkIGRldmlj ZXMgaW4gdGhlIHRyYWZmaWMgZm9yd2FyZGluZyBwYXRoLiZuYnNwOyBUaGU8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwO3Byb2JsZW0gYXJpc2VzIGluIHNjYWxpbmcgbG9hZCBiYWxhbmNlcnMgdW5k ZXIgZ3Jvd2luZyB0cmFmZmljPGJyPg0KISZuYnNwOyAmbmJzcDsgZGVtYW5kLiZuYnNwOyBBIHBy ZWZlcmFibGUgc29sdXRpb24gd291bGQgYmUgYWJsZSB0byBzY2FsZSBsb2FkIGJhbGFuY2luZzxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bGF5ZXIgaG9yaXpvbnRhbGx5LCBieSBhZGRpbmcgbW9y ZSBvZiB0aGUgdW5pZm9ybSBub2RlcyBhbmQ8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2Rpc3Ry aWJ1dGluZyBpbmNvbWluZyB0cmFmZmljIGFjcm9zcyB0aGVzZSBub2Rlcy4mbmJzcDsgSW4gc2l0 dWF0aW9ucyBsaWtlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0aGlzLCBhbiBpZGVhbCBjaG9p Y2Ugd291bGQgYmUgdG8gdXNlIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUgaXRzZWxmPGJyPg0KLS0t IDI1MywyNTkgLS0tLTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7cGVyZm9ybWVkIGJ5IG5ldHdv cmsgZGV2aWNlcy4mbmJzcDsgVHJhZGl0aW9uYWxseSwgbG9hZCBiYWxhbmNlcnMgYXJlPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDtkZXBsb3llZCBhcyBkZWRpY2F0ZWQgZGV2aWNlcyBpbiB0aGUg dHJhZmZpYyBmb3J3YXJkaW5nIHBhdGguJm5ic3A7IFRoZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5i c3A7cHJvYmxlbSBhcmlzZXMgaW4gc2NhbGluZyBsb2FkIGJhbGFuY2VycyB1bmRlciBncm93aW5n IHRyYWZmaWM8YnI+DQohJm5ic3A7ICZuYnNwOyBkZW1hbmQuJm5ic3A7IEEgcHJlZmVyYWJsZSBz b2x1dGlvbiB3b3VsZCBiZSBhYmxlIHRvIHNjYWxlIHRoZSBsb2FkPGJyPg0KYmFsYW5jaW5nPGJy Pg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtsYXllciBob3Jpem9udGFsbHksIGJ5IGFkZGluZyBtb3Jl IG9mIHRoZSB1bmlmb3JtIG5vZGVzIGFuZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGlzdHJp YnV0aW5nIGluY29taW5nIHRyYWZmaWMgYWNyb3NzIHRoZXNlIG5vZGVzLiZuYnNwOyBJbiBzaXR1 YXRpb25zIGxpa2U8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3RoaXMsIGFuIGlkZWFsIGNob2lj ZSB3b3VsZCBiZSB0byB1c2UgbmV0d29yayBpbmZyYXN0cnVjdHVyZSBpdHNlbGY8YnI+DQoqKioq KioqKioqKioqKio8YnI+DQoqKiogMzA1LDMxMSAqKioqPGJyPg0KJm5ic3A7IDMuMS4mbmJzcDsg VHJhZGl0aW9uYWwgREMgVG9wb2xvZ3k8YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0lu IHRoZSBuZXR3b3JraW5nIGluZHVzdHJ5LCBhIGNvbW1vbiBkZXNpZ24gY2hvaWNlIGZvciBkYXRh IGNlbnRlcnM8YnI+DQohJm5ic3A7ICZuYnNwOyB0eXBpY2FsbHkgbG9vayBsaWtlIGEgKHVwc2lk ZSBkb3duKSB0cmVlIHdpdGggcmVkdW5kYW50IHVwbGlua3MgYW5kPGJyPg0KJm5ic3A7ICZuYnNw OyAmbmJzcDt0aHJlZSBsYXllcnMgb2YgaGllcmFyY2h5IG5hbWVseTsgY29yZSwgYWdncmVnYXRp b24vZGlzdHJpYnV0aW9uIGFuZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7YWNjZXNzIGxheWVy cyAoc2VlIEZpZ3VyZSAxKS4mbmJzcDsgVG8gYWNjb21tb2RhdGUgYmFuZHdpZHRoIGRlbWFuZHMs IGVhY2g8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2hpZ2hlciBsYXllciwgZnJvbSBzZXJ2ZXIg dG93YXJkcyBEQyBlZ3Jlc3Mgb3IgV0FOLCBoYXMgaGlnaGVyIHBvcnQ8YnI+DQotLS0gMzA1LDMx MSAtLS0tPGJyPg0KJm5ic3A7IDMuMS4mbmJzcDsgVHJhZGl0aW9uYWwgREMgVG9wb2xvZ3k8YnI+ DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0luIHRoZSBuZXR3b3JraW5nIGluZHVzdHJ5LCBh IGNvbW1vbiBkZXNpZ24gY2hvaWNlIGZvciBkYXRhIGNlbnRlcnM8YnI+DQohJm5ic3A7ICZuYnNw OyB0eXBpY2FsbHkgbG9vayBsaWtlIGFuICh1cHNpZGUgZG93bikgdHJlZSB3aXRoIHJlZHVuZGFu dCB1cGxpbmtzIGFuZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7dGhyZWUgbGF5ZXJzIG9mIGhp ZXJhcmNoeSBuYW1lbHk7IGNvcmUsIGFnZ3JlZ2F0aW9uL2Rpc3RyaWJ1dGlvbiBhbmQ8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwO2FjY2VzcyBsYXllcnMgKHNlZSBGaWd1cmUgMSkuJm5ic3A7IFRv IGFjY29tbW9kYXRlIGJhbmR3aWR0aCBkZW1hbmRzLCBlYWNoPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDtoaWdoZXIgbGF5ZXIsIGZyb20gc2VydmVyIHRvd2FyZHMgREMgZWdyZXNzIG9yIFdBTiwg aGFzIGhpZ2hlciBwb3J0PGJyPg0KKioqKioqKioqKioqKioqPGJyPg0KKioqIDM3MywzNzkgKioq Kjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7dG9wb2xvZ3ksIHNvbWV0aW1lcyBjYWxsZWQgJnF1 b3Q7ZmF0LXRyZWUmcXVvdDsgKHNlZSwgZm9yIGV4YW1wbGUsIFtJTlRFUkNPTl08YnI+DQombmJz cDsgJm5ic3A7ICZuYnNwO2FuZCBbQUxGQVJFUzIwMDhdKS4mbmJzcDsgVGhpcyB0b3BvbG9neSBm ZWF0dXJlcyBhbiBvZGQgbnVtYmVyIG9mIHN0YWdlczxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7 KHNvbWV0aW1lcyBrbm93biBhcyBkaW1lbnNpb25zKSBhbmQgaXMgY29tbW9ubHkgbWFkZSBvZiB1 bmlmb3JtPGJyPg0KISZuYnNwOyAmbmJzcDsgZWxlbWVudHMsIGUuZy4gbmV0d29yayBzd2l0Y2hl cyB3aXRoIHRoZSBzYW1lIHBvcnQgY291bnQuJm5ic3A7IFRoZXJlZm9yZSw8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwO3RoZSBjaG9pY2Ugb2YgZm9sZGVkIENsb3MgdG9wb2xvZ3kgc2F0aXNmaWVz IFJFUTEgYW5kIGZhY2lsaXRhdGVzPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtSRVEyLiZuYnNw OyBTZWUgRmlndXJlIDIgYmVsb3cgZm9yIGFuIGV4YW1wbGUgb2YgYSBmb2xkZWQgMy1zdGFnZSBD bG9zPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0b3BvbG9neSAoMyBzdGFnZXMgY291bnRpbmcg VGllci0yIHN0YWdlIHR3aWNlLCB3aGVuIHRyYWNpbmcgYSBwYWNrZXQ8YnI+DQotLS0gMzczLDM3 OSAtLS0tPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0b3BvbG9neSwgc29tZXRpbWVzIGNhbGxl ZCAmcXVvdDtmYXQtdHJlZSZxdW90OyAoc2VlLCBmb3IgZXhhbXBsZSwgW0lOVEVSQ09OXTxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7YW5kIFtBTEZBUkVTMjAwOF0pLiZuYnNwOyBUaGlzIHRvcG9s b2d5IGZlYXR1cmVzIGFuIG9kZCBudW1iZXIgb2Ygc3RhZ2VzPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDsoc29tZXRpbWVzIGtub3duIGFzIGRpbWVuc2lvbnMpIGFuZCBpcyBjb21tb25seSBtYWRl IG9mIHVuaWZvcm08YnI+DQohJm5ic3A7ICZuYnNwOyBlbGVtZW50cywgZS5nLiwgbmV0d29yayBz d2l0Y2hlcyB3aXRoIHRoZSBzYW1lIHBvcnQgY291bnQuJm5ic3A7IFRoZXJlZm9yZSw8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwO3RoZSBjaG9pY2Ugb2YgZm9sZGVkIENsb3MgdG9wb2xvZ3kgc2F0 aXNmaWVzIFJFUTEgYW5kIGZhY2lsaXRhdGVzPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtSRVEy LiZuYnNwOyBTZWUgRmlndXJlIDIgYmVsb3cgZm9yIGFuIGV4YW1wbGUgb2YgYSBmb2xkZWQgMy1z dGFnZSBDbG9zPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0b3BvbG9neSAoMyBzdGFnZXMgY291 bnRpbmcgVGllci0yIHN0YWdlIHR3aWNlLCB3aGVuIHRyYWNpbmcgYSBwYWNrZXQ8YnI+DQoqKioq KioqKioqKioqKio8YnI+DQoqKiogNDYwLDQ2NiAqKioqPGJyPg0KJm5ic3A7IDMuMi4zLiZuYnNw OyBTY2FsaW5nIHRoZSBDbG9zIHRvcG9sb2d5PGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz cDtBIENsb3MgdG9wb2xvZ3kgY2FuIGJlIHNjYWxlZCBlaXRoZXIgYnkgaW5jcmVhc2luZyBuZXR3 b3JrIGVsZW1lbnQ8YnI+DQohJm5ic3A7ICZuYnNwOyBwb3J0IGRlbnNpdHkgb3IgYWRkaW5nIG1v cmUgc3RhZ2VzLCBlLmcuIG1vdmluZyB0byBhIDUtc3RhZ2UgQ2xvcywgYXM8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwO2lsbHVzdHJhdGVkIGluIEZpZ3VyZSAzIGJlbG93Ojxicj4NCjxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgVGllci0xPGJyPg0KLS0tIDQ2MCw0NjYgLS0tLTxicj4N CiZuYnNwOyAzLjIuMy4mbmJzcDsgU2NhbGluZyB0aGUgQ2xvcyB0b3BvbG9neTxicj4NCjxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7QSBDbG9zIHRvcG9sb2d5IGNhbiBiZSBzY2FsZWQgZWl0aGVy IGJ5IGluY3JlYXNpbmcgbmV0d29yayBlbGVtZW50PGJyPg0KISZuYnNwOyAmbmJzcDsgcG9ydCBk ZW5zaXR5IG9yIGFkZGluZyBtb3JlIHN0YWdlcywgZS5nLiwgbW92aW5nIHRvIGEgNS1zdGFnZSBD bG9zLCBhczxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7aWxsdXN0cmF0ZWQgaW4gRmlndXJlIDMg YmVsb3c6PGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaWVyLTE8YnI+DQoq KioqKioqKioqKioqKio8YnI+DQoqKiogNTIzLDUyOSAqKioqPGJyPg0KJm5ic3A7IDMuMi40LiZu YnNwOyBNYW5hZ2luZyB0aGUgU2l6ZSBvZiBDbG9zIFRvcG9sb2d5IFRpZXJzPGJyPg0KPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDtJZiBhIGRhdGEgY2VudGVyIG5ldHdvcmsgc2l6ZSBpcyBzbWFs bCwgaXQgaXMgcG9zc2libGUgdG8gcmVkdWNlIHRoZTxicj4NCiEmbmJzcDsgJm5ic3A7IG51bWJl ciBvZiBzd2l0Y2hlcyBpbiBUaWVyLTEgb3IgVGllci0yIG9mIENsb3MgdG9wb2xvZ3kgYnkgYSBm YWN0b3I8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO29mIHR3by4mbmJzcDsgVG8gdW5kZXJzdGFu ZCBob3cgdGhpcyBjb3VsZCBiZSBkb25lLCB0YWtlIFRpZXItMSBhcyBhbjxicj4NCiZuYnNwOyAm bmJzcDsgJm5ic3A7ZXhhbXBsZS4mbmJzcDsgRXZlcnkgVGllci0yIGRldmljZSBjb25uZWN0cyB0 byBhIHNpbmdsZSBncm91cCBvZiBUaWVyLTE8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2Rldmlj ZXMuJm5ic3A7IElmIGhhbGYgb2YgdGhlIHBvcnRzIG9uIGVhY2ggb2YgdGhlIFRpZXItMSBkZXZp Y2VzIGFyZSBub3Q8YnI+DQotLS0gNTIzLDUyOSAtLS0tPGJyPg0KJm5ic3A7IDMuMi40LiZuYnNw OyBNYW5hZ2luZyB0aGUgU2l6ZSBvZiBDbG9zIFRvcG9sb2d5IFRpZXJzPGJyPg0KPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDtJZiBhIGRhdGEgY2VudGVyIG5ldHdvcmsgc2l6ZSBpcyBzbWFsbCwg aXQgaXMgcG9zc2libGUgdG8gcmVkdWNlIHRoZTxicj4NCiEmbmJzcDsgJm5ic3A7IG51bWJlciBv ZiBzd2l0Y2hlcyBpbiBUaWVyLTEgb3IgVGllci0yIG9mIGEgQ2xvcyB0b3BvbG9neSBieSBhIGZh Y3Rvcjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7b2YgdHdvLiZuYnNwOyBUbyB1bmRlcnN0YW5k IGhvdyB0aGlzIGNvdWxkIGJlIGRvbmUsIHRha2UgVGllci0xIGFzIGFuPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDtleGFtcGxlLiZuYnNwOyBFdmVyeSBUaWVyLTIgZGV2aWNlIGNvbm5lY3RzIHRv IGEgc2luZ2xlIGdyb3VwIG9mIFRpZXItMTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGV2aWNl cy4mbmJzcDsgSWYgaGFsZiBvZiB0aGUgcG9ydHMgb24gZWFjaCBvZiB0aGUgVGllci0xIGRldmlj ZXMgYXJlIG5vdDxicj4NCioqKioqKioqKioqKioqKjxicj4NCioqKiA1NzQsNTgwICoqKio8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwO29yaWdpbmFsbHkgZGVmaW5lZCBpbiBbSUVFRTgwMjFELTE5 OTBdIGZvciBsb29wIGZyZWUgdG9wb2xvZ3k8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2NyZWF0 aW9uLCB0eXBpY2FsbHkgdXRpbGl6aW5nIHZhcmlhbnRzIG9mIHRoZSB0cmFkaXRpb25hbCBEQyB0 b3BvbG9neTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGVzY3JpYmVkIGluIFNlY3Rpb24gMy4x LiZuYnNwOyBBdCB0aGUgdGltZSwgbWFueSBEQyBzd2l0Y2hlcyBlaXRoZXIgZGlkPGJyPg0KISZu YnNwOyAmbmJzcDsgbm90IHN1cHBvcnQgTGF5ZXIgMyByb3V0ZWQgcHJvdG9jb2xzIG9yIHN1cHBv cnRlZCBpdCB3aXRoIGFkZGl0aW9uYWw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2xpY2Vuc2lu ZyBmZWVzLCB3aGljaCBwbGF5ZWQgYSBwYXJ0IGluIHRoZSBkZXNpZ24gY2hvaWNlLiZuYnNwOyBB bHRob3VnaDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bWFueSBlbmhhbmNlbWVudHMgaGF2ZSBi ZWVuIG1hZGUgdGhyb3VnaCB0aGUgaW50cm9kdWN0aW9uIG9mIFJhcGlkPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDtTcGFubmluZyBUcmVlIFByb3RvY29sIChSU1RQKSBpbiB0aGUgbGF0ZXN0IHJl dmlzaW9uIG9mPGJyPg0KLS0tIDU3NCw1ODAgLS0tLTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7 b3JpZ2luYWxseSBkZWZpbmVkIGluIFtJRUVFODAyMUQtMTk5MF0gZm9yIGxvb3AgZnJlZSB0b3Bv bG9neTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7Y3JlYXRpb24sIHR5cGljYWxseSB1dGlsaXpp bmcgdmFyaWFudHMgb2YgdGhlIHRyYWRpdGlvbmFsIERDIHRvcG9sb2d5PGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDtkZXNjcmliZWQgaW4gU2VjdGlvbiAzLjEuJm5ic3A7IEF0IHRoZSB0aW1lLCBt YW55IERDIHN3aXRjaGVzIGVpdGhlciBkaWQ8YnI+DQohJm5ic3A7ICZuYnNwOyBub3Qgc3VwcG9y dCBMYXllciAzIHJvdXRpbmcgcHJvdG9jb2xzIG9yIHN1cHBvcnRlZCB0aGVtIHdpdGg8YnI+DQph ZGRpdGlvbmFsPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtsaWNlbnNpbmcgZmVlcywgd2hpY2gg cGxheWVkIGEgcGFydCBpbiB0aGUgZGVzaWduIGNob2ljZS4mbmJzcDsgQWx0aG91Z2g8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwO21hbnkgZW5oYW5jZW1lbnRzIGhhdmUgYmVlbiBtYWRlIHRocm91 Z2ggdGhlIGludHJvZHVjdGlvbiBvZiBSYXBpZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7U3Bh bm5pbmcgVHJlZSBQcm90b2NvbCAoUlNUUCkgaW4gdGhlIGxhdGVzdCByZXZpc2lvbiBvZjxicj4N CioqKioqKioqKioqKioqKjxicj4NCioqKiA1OTksNjA1ICoqKio8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO2FzIHRoZSBiYWNrdXAgZm9yIGxvb3AgcHJldmVudGlvbi4mbmJzcDsgVGhlIG1ham9y IGRvd25zaWRlcyBvZiB0aGlzPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDthcHByb2FjaCBhcmUg dGhlIGxhY2sgb2YgYWJpbGl0eSB0byBzY2FsZSBsaW5lYXJseSBwYXN0IHR3byBpbiBtb3N0PGJy Pg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtpbXBsZW1lbnRhdGlvbnMsIGxhY2sgb2Ygc3RhbmRhcmRz IGJhc2VkIGltcGxlbWVudGF0aW9ucywgYW5kIGFkZGVkPGJyPg0KISZuYnNwOyAmbmJzcDsgZmFp bHVyZSBkb21haW4gcmlzayBvZiBrZWVwaW5nIHN0YXRlIGJldHdlZW4gdGhlIGRldmljZXMuPGJy Pg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBidWls ZGluZyBsYXJnZSwgaG9yaXpvbnRhbGx5IHNjYWxhYmxlLCBMYXllcjxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7MiBvbmx5IG5ldHdvcmtzIHdpdGhvdXQgU1RQIGlzIHBvc3NpYmxlIHJlY2VudGx5 IHRocm91Z2ggdGhlPGJyPg0KLS0tIDU5OSw2MDUgLS0tLTxicj4NCiZuYnNwOyAmbmJzcDsgJm5i c3A7YXMgdGhlIGJhY2t1cCBmb3IgbG9vcCBwcmV2ZW50aW9uLiZuYnNwOyBUaGUgbWFqb3IgZG93 bnNpZGVzIG9mIHRoaXM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2FwcHJvYWNoIGFyZSB0aGUg bGFjayBvZiBhYmlsaXR5IHRvIHNjYWxlIGxpbmVhcmx5IHBhc3QgdHdvIGluIG1vc3Q8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwO2ltcGxlbWVudGF0aW9ucywgbGFjayBvZiBzdGFuZGFyZHMgYmFz ZWQgaW1wbGVtZW50YXRpb25zLCBhbmQgYWRkZWQ8YnI+DQohJm5ic3A7ICZuYnNwOyB0aGUgZmFp bHVyZSBkb21haW4gcmlzayBvZiBzeW5jaW5nIHN0YXRlIGJldHdlZW4gdGhlIGRldmljZXMuPGJy Pg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBidWls ZGluZyBsYXJnZSwgaG9yaXpvbnRhbGx5IHNjYWxhYmxlLCBMYXllcjxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7MiBvbmx5IG5ldHdvcmtzIHdpdGhvdXQgU1RQIGlzIHBvc3NpYmxlIHJlY2VudGx5 IHRocm91Z2ggdGhlPGJyPg0KKioqKioqKioqKioqKioqPGJyPg0KKioqIDYyMSw2MzEgKioqKjxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7RmluYWxseSwgbmVpdGhlciB0aGUgYmFzZSBUUklMTCBz cGVjaWZpY2F0aW9uIG5vciB0aGUgTS1MQUcgYXBwcm9hY2g8YnI+DQombmJzcDsgJm5ic3A7ICZu YnNwO3RvdGFsbHkgZWxpbWluYXRlIHRoZSBwcm9ibGVtIG9mIHRoZSBzaGFyZWQgYnJvYWRjYXN0 IGRvbWFpbiwgdGhhdCBpczxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7c28gZGV0cmltZW50YWwg dG8gdGhlIG9wZXJhdGlvbnMgb2YgYW55IExheWVyIDIsIEV0aGVybmV0IGJhc2VkPGJyPg0KISZu YnNwOyAmbmJzcDsgc29sdXRpb25zLiZuYnNwOyBMYXRlciBUUklMTCBleHRlbnNpb25zIGhhdmUg YmVlbiBwcm9wb3NlZCB0byBzb2x2ZSB0aGU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3RoaXMg cHJvYmxlbSBzdGF0ZW1lbnQgcHJpbWFyaWx5IGJhc2VkIG9uIHRoZSBhcHByb2FjaGVzIG91dGxp bmVkIGluPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtbUkZDNzA2N10sIGJ1dCB0aGlzIGV2ZW4g ZnVydGhlciBsaW1pdHMgdGhlIG51bWJlciBvZiBhdmFpbGFibGU8YnI+DQohJm5ic3A7ICZuYnNw OyBpbnRlcm9wZXJhYmxlIGltcGxlbWVudGF0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHRvIGJ1aWxk IGEgZmFicmljLDxicj4NCiEmbmJzcDsgJm5ic3A7IHRoZXJlZm9yZSBUUklMTCBiYXNlZCBkZXNp Z25zIGhhdmUgaXNzdWVzIG1lZXRpbmcgUkVRMiwgUkVRMywgYW5kPGJyPg0KJm5ic3A7ICZuYnNw OyAmbmJzcDtSRVE0Ljxicj4NCjxicj4NCiZuYnNwOyA0LjIuJm5ic3A7IEh5YnJpZCBMMi9MMyBE ZXNpZ25zPGJyPg0KLS0tIDYyMSw2MzEgLS0tLTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7Rmlu YWxseSwgbmVpdGhlciB0aGUgYmFzZSBUUklMTCBzcGVjaWZpY2F0aW9uIG5vciB0aGUgTS1MQUcg YXBwcm9hY2g8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3RvdGFsbHkgZWxpbWluYXRlIHRoZSBw cm9ibGVtIG9mIHRoZSBzaGFyZWQgYnJvYWRjYXN0IGRvbWFpbiwgdGhhdCBpczxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7c28gZGV0cmltZW50YWwgdG8gdGhlIG9wZXJhdGlvbnMgb2YgYW55IExh eWVyIDIsIEV0aGVybmV0IGJhc2VkPGJyPg0KISZuYnNwOyAmbmJzcDsgc29sdXRpb24uJm5ic3A7 IExhdGVyIFRSSUxMIGV4dGVuc2lvbnMgaGF2ZSBiZWVuIHByb3Bvc2VkIHRvIHNvbHZlIHRoZTxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7dGhpcyBwcm9ibGVtIHN0YXRlbWVudCBwcmltYXJpbHkg YmFzZWQgb24gdGhlIGFwcHJvYWNoZXMgb3V0bGluZWQgaW48YnI+DQombmJzcDsgJm5ic3A7ICZu YnNwO1tSRkM3MDY3XSwgYnV0IHRoaXMgZXZlbiBmdXJ0aGVyIGxpbWl0cyB0aGUgbnVtYmVyIG9m IGF2YWlsYWJsZTxicj4NCiEmbmJzcDsgJm5ic3A7IGludGVyb3BlcmFibGUgaW1wbGVtZW50YXRp b25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gYnVpbGQgYSBmYWJyaWMuPGJyPg0KISZuYnNwOyAmbmJz cDsgVGhlcmVmb3JlLCBUUklMTCBiYXNlZCBkZXNpZ25zIGhhdmUgaXNzdWVzIG1lZXRpbmcgUkVR MiwgUkVRMywgYW5kPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtSRVE0Ljxicj4NCjxicj4NCiZu YnNwOyA0LjIuJm5ic3A7IEh5YnJpZCBMMi9MMyBEZXNpZ25zPGJyPg0KKioqKioqKioqKioqKioq PGJyPg0KKioqIDYzNSw2NDEgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7aW4gZWl0aGVy IHRoZSBUaWVyLTEgb3IgVGllci0yIHBhcnRzIG9mIHRoZSBuZXR3b3JrIGFuZCBkaXZpZGluZyB0 aGU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0xheWVyIDIgZG9tYWluIGludG8gbnVtZXJvdXMs IHNtYWxsZXIgZG9tYWlucy4mbmJzcDsgVGhpcyBkZXNpZ24gaGFzPGJyPg0KJm5ic3A7ICZuYnNw OyAmbmJzcDthbGxvd2VkIGRhdGEgY2VudGVycyB0byBzY2FsZSB1cCwgYnV0IGF0IHRoZSBjb3N0 IG9mIGNvbXBsZXhpdHkgaW48YnI+DQohJm5ic3A7ICZuYnNwOyB0aGUgbmV0d29yayBtYW5hZ2lu ZyBtdWx0aXBsZSBwcm90b2NvbHMuJm5ic3A7IEZvciB0aGUgZm9sbG93aW5nIHJlYXNvbnMsPGJy Pg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtvcGVyYXRvcnMgaGF2ZSByZXRhaW5lZCBMYXllciAyIGlu IGVpdGhlciB0aGUgYWNjZXNzIChUaWVyLTMpIG9yIGJvdGg8YnI+DQombmJzcDsgJm5ic3A7ICZu YnNwO2FjY2VzcyBhbmQgYWdncmVnYXRpb24gKFRpZXItMyBhbmQgVGllci0yKSBwYXJ0cyBvZiB0 aGUgbmV0d29yazo8YnI+DQo8YnI+DQotLS0gNjM1LDY0MSAtLS0tPGJyPg0KJm5ic3A7ICZuYnNw OyAmbmJzcDtpbiBlaXRoZXIgdGhlIFRpZXItMSBvciBUaWVyLTIgcGFydHMgb2YgdGhlIG5ldHdv cmsgYW5kIGRpdmlkaW5nIHRoZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7TGF5ZXIgMiBkb21h aW4gaW50byBudW1lcm91cywgc21hbGxlciBkb21haW5zLiZuYnNwOyBUaGlzIGRlc2lnbiBoYXM8 YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2FsbG93ZWQgZGF0YSBjZW50ZXJzIHRvIHNjYWxlIHVw LCBidXQgYXQgdGhlIGNvc3Qgb2YgY29tcGxleGl0eSBpbjxicj4NCiEmbmJzcDsgJm5ic3A7IHRo ZSBtYW5hZ2luZyBtdWx0aXBsZSBuZXR3b3JrIHByb3RvY29scy4mbmJzcDsgRm9yIHRoZSBmb2xs b3dpbmcgcmVhc29ucyw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO29wZXJhdG9ycyBoYXZlIHJl dGFpbmVkIExheWVyIDIgaW4gZWl0aGVyIHRoZSBhY2Nlc3MgKFRpZXItMykgb3IgYm90aDxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7YWNjZXNzIGFuZCBhZ2dyZWdhdGlvbiAoVGllci0zIGFuZCBU aWVyLTIpIHBhcnRzIG9mIHRoZSBuZXR3b3JrOjxicj4NCjxicj4NCioqKioqKioqKioqKioqKjxi cj4NCioqKiA2NDQsNjUwICoqKio8YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO28mbmJz cDsgU2VhbWxlc3MgbW9iaWxpdHkgZm9yIHZpcnR1YWwgbWFjaGluZXMgdGhhdCByZXF1aXJlIHRo ZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBwcmVzZXJ2YXRpb24gb2YgSVAgYWRk cmVzc2VzIHdoZW4gYSB2aXJ0dWFsIG1hY2hpbmUgbW92ZXMgdG88YnI+DQohJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ZGlmZmVyZW50IFRpZXItMyBzd2l0Y2guPGJyPg0KPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDtvJm5ic3A7IFNpbXBsaWZpZWQgSVAgYWRkcmVzc2luZyA9IGxlc3MgSVAg c3VibmV0cyBhcmUgcmVxdWlyZWQgZm9yIHRoZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyBkYXRhIGNlbnRlci48YnI+DQotLS0gNjQ0LDY1MCAtLS0tPGJyPg0KPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDtvJm5ic3A7IFNlYW1sZXNzIG1vYmlsaXR5IGZvciB2aXJ0dWFsIG1hY2hp bmVzIHRoYXQgcmVxdWlyZSB0aGU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcHJl c2VydmF0aW9uIG9mIElQIGFkZHJlc3NlcyB3aGVuIGEgdmlydHVhbCBtYWNoaW5lIG1vdmVzIHRv PGJyPg0KISZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2EgZGlmZmVyZW50IFRpZXItMyBzd2l0 Y2guPGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtvJm5ic3A7IFNpbXBsaWZpZWQgSVAg YWRkcmVzc2luZyA9IGxlc3MgSVAgc3VibmV0cyBhcmUgcmVxdWlyZWQgZm9yIHRoZTxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkYXRhIGNlbnRlci48YnI+DQoqKioqKioqKioqKioq Kio8YnI+DQoqKiogNjc5LDY4NiAqKioqPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDthZG9wdGlv biBpbiBuZXR3b3JrcyB3aGVyZSBsYXJnZSBMYXllciAyIGFkamFjZW5jeSBhbmQgbGFyZ2VyIHNp emU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0xheWVyIDMgc3VibmV0cyBhcmUgbm90IGFzIGNy aXRpY2FsIGNvbXBhcmVkIHRvIG5ldHdvcmsgc2NhbGFiaWxpdHk8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO2FuZCBzdGFiaWxpdHkuJm5ic3A7IEFwcGxpY2F0aW9uIHByb3ZpZGVycyBhbmQgbmV0 d29yayBvcGVyYXRvcnMgY29udGludWU8YnI+DQohJm5ic3A7ICZuYnNwOyB0byBhbHNvIGRldmVs b3AgbmV3IHNvbHV0aW9ucyB0byBtZWV0IHNvbWUgb2YgdGhlIHJlcXVpcmVtZW50cyB0aGF0PGJy Pg0KISZuYnNwOyAmbmJzcDsgcHJldmlvdXNseSBoYXZlIGRyaXZlbiBsYXJnZSBMYXllciAyIGRv bWFpbnMgYnkgdXNpbmcgdmFyaW91cyBvdmVybGF5PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtv ciB0dW5uZWxpbmcgdGVjaG5pcXVlcy48YnI+DQo8YnI+DQombmJzcDsgNS4mbmJzcDsgUm91dGlu ZyBQcm90b2NvbCBTZWxlY3Rpb24gYW5kIERlc2lnbjxicj4NCi0tLSA2NzksNjg2IC0tLS08YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwO2Fkb3B0aW9uIGluIG5ldHdvcmtzIHdoZXJlIGxhcmdlIExh eWVyIDIgYWRqYWNlbmN5IGFuZCBsYXJnZXIgc2l6ZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7 TGF5ZXIgMyBzdWJuZXRzIGFyZSBub3QgYXMgY3JpdGljYWwgY29tcGFyZWQgdG8gbmV0d29yayBz Y2FsYWJpbGl0eTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7YW5kIHN0YWJpbGl0eS4mbmJzcDsg QXBwbGljYXRpb24gcHJvdmlkZXJzIGFuZCBuZXR3b3JrIG9wZXJhdG9ycyBjb250aW51ZTxicj4N CiEmbmJzcDsgJm5ic3A7IHRvIGRldmVsb3AgbmV3IHNvbHV0aW9ucyB0byBtZWV0IHNvbWUgb2Yg dGhlIHJlcXVpcmVtZW50cyB0aGF0PGJyPg0KISZuYnNwOyAmbmJzcDsgcHJldmlvdXNseSBoYWQg ZHJpdmVuIGxhcmdlIExheWVyIDIgZG9tYWlucyB1c2luZyB2YXJpb3VzIG92ZXJsYXk8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwO29yIHR1bm5lbGluZyB0ZWNobmlxdWVzLjxicj4NCjxicj4NCiZu YnNwOyA1LiZuYnNwOyBSb3V0aW5nIFByb3RvY29sIFNlbGVjdGlvbiBhbmQgRGVzaWduPGJyPg0K KioqKioqKioqKioqKioqPGJyPg0KKioqIDcwMCw3MDYgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ZGVzaWduLjxicj4NCjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7QWx0aG91Z2ggRUJH UCBpcyB0aGUgcHJvdG9jb2wgdXNlZCBmb3IgYWxtb3N0IGFsbCBpbnRlci1kb21haW48YnI+DQoh Jm5ic3A7ICZuYnNwOyByb3V0aW5nIG9uIHRoZSBJbnRlcm5ldCBhbmQgaGFzIHdpZGUgc3VwcG9y dCBmcm9tIGJvdGggdmVuZG9yIGFuZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7c2VydmljZSBw cm92aWRlciBjb21tdW5pdGllcywgaXQgaXMgbm90IGdlbmVyYWxseSBkZXBsb3llZCBhcyB0aGU8 YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3ByaW1hcnkgcm91dGluZyBwcm90b2NvbCB3aXRoaW4g dGhlIGRhdGEgY2VudGVyIGZvciBhIG51bWJlciBvZjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7 cmVhc29ucyAoc29tZSBvZiB3aGljaCBhcmUgaW50ZXJyZWxhdGVkKTo8YnI+DQotLS0gNzAwLDcw NiAtLS0tPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtkZXNpZ24uPGJyPg0KPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDtBbHRob3VnaCBFQkdQIGlzIHRoZSBwcm90b2NvbCB1c2VkIGZvciBhbG1v c3QgYWxsIGludGVyLWRvbWFpbjxicj4NCiEmbmJzcDsgJm5ic3A7IHJvdXRpbmcgaW4gdGhlIElu dGVybmV0IGFuZCBoYXMgd2lkZSBzdXBwb3J0IGZyb20gYm90aCB2ZW5kb3IgYW5kPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDtzZXJ2aWNlIHByb3ZpZGVyIGNvbW11bml0aWVzLCBpdCBpcyBub3Qg Z2VuZXJhbGx5IGRlcGxveWVkIGFzIHRoZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7cHJpbWFy eSByb3V0aW5nIHByb3RvY29sIHdpdGhpbiB0aGUgZGF0YSBjZW50ZXIgZm9yIGEgbnVtYmVyIG9m PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtyZWFzb25zIChzb21lIG9mIHdoaWNoIGFyZSBpbnRl cnJlbGF0ZWQpOjxicj4NCioqKioqKioqKioqKioqKjxicj4NCioqKiA3NDEsNzU0ICoqKio8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc3RhdGUgSUdQcy4mbmJzcDsgU2luY2UgZXZl cnkgQkdQIHJvdXRlciBjYWxjdWxhdGVzIGFuZCBwcm9wYWdhdGVzIG9ubHk8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgdGhlIGJlc3QtcGF0aCBzZWxlY3RlZCwgYSBuZXR3b3JrIGZh aWx1cmUgaXMgbWFza2VkIGFzIHNvb24gYXMgdGhlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7IEJHUCBzcGVha2VyIGZpbmRzIGFuIGFsdGVybmF0ZSBwYXRoLCB3aGljaCBleGlzdHMg d2hlbiBoaWdobHk8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7c3ltbWV0cmljIHRv cG9sb2dpZXMsIHN1Y2ggYXMgQ2xvcywgYXJlIGNvdXBsZWQgd2l0aCBFQkdQIG9ubHk8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZGVzaWduLiZuYnNwOyBJbiBjb250cmFzdCwgdGhl IGV2ZW50IHByb3BhZ2F0aW9uIHNjb3BlIG9mIGEgbGluay1zdGF0ZTxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyBJR1AgaXMgYW4gZW50aXJlIGFyZWEsIHJlZ2FyZGxlc3Mgb2YgdGhl IGZhaWx1cmUgdHlwZS4mbmJzcDsgSW4gdGhpczxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyB3YXksIEJHUCBiZXR0ZXIgbWVldHMgUkVRMyBhbmQgUkVRNC4mbmJzcDsgSXQgaXMgYWxz byB3b3J0aCBtZW50aW9uaW5nPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHRoYXQg YWxsIHdpZGVseSBkZXBsb3llZCBsaW5rLXN0YXRlIElHUHMgZmVhdHVyZSBwZXJpb2RpYzxicj4N CiEmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZWZyZXNoZXMgb2Ygcm91dGluZyBpbmZvcm1h dGlvbiwgZXZlbiBpZiB0aGlzIHJhcmVseSBjYXVzZXM8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7aW1wYWN0IHRvIG1vZGVybiByb3V0ZXIgY29udHJvbCBwbGFuZXMsIHdoaWxlIEJH UCBkb2VzIG5vdCBleHBpcmU8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cm91dGlu ZyBzdGF0ZS48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO28mbmJzcDsgQkdQIHN1cHBv cnRzIHRoaXJkLXBhcnR5IChyZWN1cnNpdmVseSByZXNvbHZlZCkgbmV4dC1ob3BzLiZuYnNwOyBU aGlzPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGFsbG93cyBmb3IgbWFuaXB1bGF0 aW5nIG11bHRpcGF0aCB0byBiZSBub24tRUNNUCBiYXNlZCBvcjxicj4NCi0tLSA3NDEsNzU0IC0t LS08YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc3RhdGUgSUdQcy4mbmJzcDsgU2lu Y2UgZXZlcnkgQkdQIHJvdXRlciBjYWxjdWxhdGVzIGFuZCBwcm9wYWdhdGVzIG9ubHk8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdGhlIGJlc3QtcGF0aCBzZWxlY3RlZCwgYSBuZXR3 b3JrIGZhaWx1cmUgaXMgbWFza2VkIGFzIHNvb24gYXMgdGhlPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7IEJHUCBzcGVha2VyIGZpbmRzIGFuIGFsdGVybmF0ZSBwYXRoLCB3aGljaCBl eGlzdHMgd2hlbiBoaWdobHk8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7c3ltbWV0 cmljIHRvcG9sb2dpZXMsIHN1Y2ggYXMgQ2xvcywgYXJlIGNvdXBsZWQgd2l0aCBhbiBFQkdQIG9u bHk8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZGVzaWduLiZuYnNwOyBJbiBjb250 cmFzdCwgdGhlIGV2ZW50IHByb3BhZ2F0aW9uIHNjb3BlIG9mIGEgbGluay1zdGF0ZTxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBJR1AgaXMgYW4gZW50aXJlIGFyZWEsIHJlZ2FyZGxl c3Mgb2YgdGhlIGZhaWx1cmUgdHlwZS4mbmJzcDsgSW4gdGhpczxicj4NCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyB3YXksIEJHUCBiZXR0ZXIgbWVldHMgUkVRMyBhbmQgUkVRNC4mbmJzcDsg SXQgaXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IHRoYXQgYWxsIHdpZGVseSBkZXBsb3llZCBsaW5rLXN0YXRlIElHUHMgZmVhdHVyZSBwZXJp b2RpYzxicj4NCiEmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZWZyZXNoZXMgb2Ygcm91dGlu ZyBpbmZvcm1hdGlvbiB3aGlsZSBCR1AgZG9lcyBub3QgZXhwaXJlPGJyPg0KISZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO3JvdXRpbmcgc3RhdGUsIGFsdGhvdWdoIHRoaXMgcmFyZWx5IGltcGFj dHMgbW9kZXJuIHJvdXRlciBjb250cm9sPGJyPg0KISZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O3BsYW5lcy48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO28mbmJzcDsgQkdQIHN1cHBv cnRzIHRoaXJkLXBhcnR5IChyZWN1cnNpdmVseSByZXNvbHZlZCkgbmV4dC1ob3BzLiZuYnNwOyBU aGlzPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGFsbG93cyBmb3IgbWFuaXB1bGF0 aW5nIG11bHRpcGF0aCB0byBiZSBub24tRUNNUCBiYXNlZCBvcjxicj4NCioqKioqKioqKioqKioq Kjxicj4NCioqKiA3NjUsNzc1ICoqKio8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Y29udHJvbGxlZCBhbmQgY29tcGxleCB1bndhbnRlZCBwYXRocyB3aWxsIGJlIGlnbm9yZWQuJm5i c3A7IFNlZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBTZWN0aW9uIDUuMiBmb3Ig YW4gZXhhbXBsZSBvZiBhIHdvcmtpbmcgQVNOIGFsbG9jYXRpb24gc2NoZW1lLiZuYnNwOyBJbjxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhIGxpbmstc3RhdGUgSUdQIGFjY29tcGxp c2hpbmcgdGhlIHNhbWUgZ29hbCB3b3VsZCByZXF1aXJlIG11bHRpLTxicj4NCiEmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsoaW5zdGFuY2UvdG9wb2xvZ3kvcHJvY2Vzc2VzKSBzdXBwb3J0LCB0 eXBpY2FsbHkgbm90IGF2YWlsYWJsZSBpbjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyBhbGwgREMgZGV2aWNlcyBhbmQgcXVpdGUgY29tcGxleCB0byBjb25maWd1cmUgYW5kIHRyb3Vi bGVzaG9vdC48YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgVXNpbmcgYSB0cmFkaXRp b25hbCBzaW5nbGUgZmxvb2RpbmcgZG9tYWluLCB3aGljaCBtb3N0IERDIGRlc2lnbnM8YnI+DQom bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdXRpbGl6ZSwgdW5kZXIgY2VydGFpbiBmYWlsdXJl IGNvbmRpdGlvbnMgbWF5IHBpY2sgdXAgdW53YW50ZWQ8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7bGVuZ3RoeSBwYXRocywgZS5nLiB0cmF2ZXJzaW5nIG11bHRpcGxlIFRpZXItMiBk ZXZpY2VzLjxicj4NCjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7byZuYnNwOyBFQkdQIGNvbmZp Z3VyYXRpb24gdGhhdCBpcyBpbXBsZW1lbnRlZCB3aXRoIG1pbmltYWwgcm91dGluZyBwb2xpY3k8 YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgaXMgZWFzaWVyIHRvIHRyb3VibGVzaG9v dCBmb3IgbmV0d29yayByZWFjaGFiaWxpdHkgaXNzdWVzLiZuYnNwOyBJbjxicj4NCi0tLSA3NjUs Nzc1IC0tLS08YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgY29udHJvbGxlZCBhbmQg Y29tcGxleCB1bndhbnRlZCBwYXRocyB3aWxsIGJlIGlnbm9yZWQuJm5ic3A7IFNlZTxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBTZWN0aW9uIDUuMiBmb3IgYW4gZXhhbXBsZSBvZiBh IHdvcmtpbmcgQVNOIGFsbG9jYXRpb24gc2NoZW1lLiZuYnNwOyBJbjxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyBhIGxpbmstc3RhdGUgSUdQIGFjY29tcGxpc2hpbmcgdGhlIHNhbWUg Z29hbCB3b3VsZCByZXF1aXJlIG11bHRpLTxicj4NCiEmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsoaW5zdGFuY2UvdG9wb2xvZ3kvcHJvY2Vzcykgc3VwcG9ydCwgdHlwaWNhbGx5IG5vdCBhdmFp bGFibGUgaW48YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgYWxsIERDIGRldmljZXMg YW5kIHF1aXRlIGNvbXBsZXggdG8gY29uZmlndXJlIGFuZCB0cm91Ymxlc2hvb3QuPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFVzaW5nIGEgdHJhZGl0aW9uYWwgc2luZ2xlIGZsb29k aW5nIGRvbWFpbiwgd2hpY2ggbW9zdCBEQyBkZXNpZ25zPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IHV0aWxpemUsIHVuZGVyIGNlcnRhaW4gZmFpbHVyZSBjb25kaXRpb25zIG1heSBw aWNrIHVwIHVud2FudGVkPGJyPg0KISZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2xlbmd0aHkg cGF0aHMsIGUuZy4sIHRyYXZlcnNpbmcgbXVsdGlwbGUgVGllci0yIGRldmljZXMuPGJyPg0KPGJy Pg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtvJm5ic3A7IEVCR1AgY29uZmlndXJhdGlvbiB0aGF0IGlz IGltcGxlbWVudGVkIHdpdGggbWluaW1hbCByb3V0aW5nIHBvbGljeTxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyBpcyBlYXNpZXIgdG8gdHJvdWJsZXNob290IGZvciBuZXR3b3JrIHJl YWNoYWJpbGl0eSBpc3N1ZXMuJm5ic3A7IEluPGJyPg0KKioqKioqKioqKioqKioqPGJyPg0KKioq IDgwNiw4MTIgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBsb29wYmFjayBz ZXNzaW9ucyBhcmUgdXNlZCBldmVuIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlIGxpbmtzPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJldHdlZW4gdGhlIHNhbWUgcGFpciBvZiBub2Rl cy48YnI+DQo8YnI+DQohJm5ic3A7ICZuYnNwOyBvJm5ic3A7IFByaXZhdGUgVXNlIEFTTnMgZnJv bSB0aGUgcmFuZ2UgNjQ1MTItNjU1MzQgYXJlIHVzZWQgc28gYXMgdG88YnI+DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgYXZvaWQgQVNOIGNvbmZsaWN0cy48YnI+DQo8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwO28mbmJzcDsgQSBzaW5nbGUgQVNOIGlzIGFsbG9jYXRlZCB0byBhbGwgb2Yg dGhlIENsb3MgdG9wb2xvZ3kncyBUaWVyLTE8YnI+DQotLS0gODA2LDgxMiAtLS0tPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGxvb3BiYWNrIHNlc3Npb25zIGFyZSB1c2VkIGV2ZW4g aW4gdGhlIGNhc2Ugb2YgbXVsdGlwbGUgbGlua3M8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgYmV0d2VlbiB0aGUgc2FtZSBwYWlyIG9mIG5vZGVzLjxicj4NCjxicj4NCiEmbmJzcDsg Jm5ic3A7IG8mbmJzcDsgUHJpdmF0ZSBVc2UgQVNOcyBmcm9tIHRoZSByYW5nZSA2NDUxMi02NTUz NCBhcmUgdXNlZCB0bzxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhdm9pZCBBU04g Y29uZmxpY3RzLjxicj4NCjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7byZuYnNwOyBBIHNpbmds ZSBBU04gaXMgYWxsb2NhdGVkIHRvIGFsbCBvZiB0aGUgQ2xvcyB0b3BvbG9neSdzIFRpZXItMTxi cj4NCioqKioqKioqKioqKioqKjxicj4NCioqKiA4MTUsODIxICoqKio8YnI+DQombmJzcDsgJm5i c3A7ICZuYnNwO28mbmJzcDsgQSB1bmlxdWUgQVNOIGlzIGFsbG9jYXRlZCB0byBlYWNoIHNldCBv ZiBUaWVyLTIgZGV2aWNlcyBpbiB0aGU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg c2FtZSBjbHVzdGVyLjxicj4NCjxicj4NCiEmbmJzcDsgJm5ic3A7IG8mbmJzcDsgQSB1bmlxdWUg QVNOIGlzIGFsbG9jYXRlZCB0byBldmVyeSBUaWVyLTMgZGV2aWNlIChlLmcuJm5ic3A7IFRvUikg aW48YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdGhpcyB0b3BvbG9neS48YnI+DQo8 YnI+DQo8YnI+DQotLS0gODE1LDgyMSAtLS0tPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtvJm5i c3A7IEEgdW5pcXVlIEFTTiBpcyBhbGxvY2F0ZWQgdG8gZWFjaCBzZXQgb2YgVGllci0yIGRldmlj ZXMgaW4gdGhlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHNhbWUgY2x1c3Rlci48 YnI+DQo8YnI+DQohJm5ic3A7ICZuYnNwOyBvJm5ic3A7IEEgdW5pcXVlIEFTTiBpcyBhbGxvY2F0 ZWQgdG8gZXZlcnkgVGllci0zIGRldmljZSAoZS5nLiwmbmJzcDsgVG9SKSBpbjxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB0aGlzIHRvcG9sb2d5Ljxicj4NCjxicj4NCjxicj4NCioq KioqKioqKioqKioqKjxicj4NCioqKiA5MDMsOTIyICoqKio8YnI+DQo8YnI+DQombmJzcDsgJm5i c3A7ICZuYnNwO0Fub3RoZXIgc29sdXRpb24gdG8gdGhpcyBwcm9ibGVtIHdvdWxkIGJlIHVzaW5n IEZvdXItT2N0ZXQgQVNOczxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7KFtSRkM2NzkzXSksIHdo ZXJlIHRoZXJlIGFyZSBhZGRpdGlvbmFsIFByaXZhdGUgVXNlIEFTTnMgYXZhaWxhYmxlLDxicj4N CiEmbmJzcDsgJm5ic3A7IHNlZSBbPGEgaHJlZj0iaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9p bnQuY29tL3YyL3VybD91PWh0dHAtM0FfX0lBTkEuQVMmYW1wO2Q9Q3dNRmFRJmFtcDtjPTVWRDBS VHRObFRoM3ljZDQxYjNNVXcmYW1wO3I9TFVfdkphTV9FUXUxU3NtMzVqMnhsQSZhbXA7bT1qbHdt cVJNU0JieldJUm9ySV9zREFNMWkwTHV1T2RMRm1KRFZOTHB0SVljJmFtcDtzPXlXYTZrU0NjMk93 d1ZhTmZ5Mm5CZ1pfTkxVTDRrSC1RTFAxQk5iMVphTFUmYW1wO2U9IiByZWw9Im5vcmVmZXJyZXIi IHRhcmdldD0iX2JsYW5rIj5JQU5BLkFTPC9hPl0uJm5ic3A7DQogVXNlIG9mIEZvdXItT2N0ZXQg QVNOcyBwdXQgYWRkaXRpb25hbCBwcm90b2NvbDxicj4NCiEmbmJzcDsgJm5ic3A7IGNvbXBsZXhp dHkgaW4gdGhlIEJHUCBpbXBsZW1lbnRhdGlvbiBzbyBzaG91bGQgYmUgY29uc2lkZXJlZCBhZ2Fp bnN0PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0aGUgY29tcGxleGl0eSBvZiByZS11c2Ugd2hl biBjb25zaWRlcmluZyBSRVEzIGFuZCBSRVE0LiZuYnNwOyBQZXJoYXBzPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDttb3JlIGltcG9ydGFudGx5LCB0aGV5IGFyZSBub3QgeWV0IHN1cHBvcnRlZCBi eSBhbGwgQkdQPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtpbXBsZW1lbnRhdGlvbnMsIHdoaWNo IG1heSBsaW1pdCB2ZW5kb3Igc2VsZWN0aW9uIG9mIERDIGVxdWlwbWVudC48YnI+DQohJm5ic3A7 ICZuYnNwOyBXaGVuIHN1cHBvcnRlZCwgZW5zdXJlIHRoYXQgaW1wbGVtZW50YXRpb25zIGluIHVz ZSBhcmUgYWJsZSB0byByZW1vdmU8YnI+DQohJm5ic3A7ICZuYnNwOyB0aGUgUHJpdmF0ZSBVc2Ug QVNOcyBpZiByZXF1aXJlZCBmb3IgZXh0ZXJuYWwgY29ubmVjdGl2aXR5PGJyPg0KISZuYnNwOyAm bmJzcDsgKFNlY3Rpb24gNS4yLjQpLjxicj4NCjxicj4NCiZuYnNwOyA1LjIuMy4mbmJzcDsgUHJl Zml4IEFkdmVydGlzZW1lbnQ8YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0EgQ2xvcyB0 b3BvbG9neSBmZWF0dXJlcyBhIGxhcmdlIG51bWJlciBvZiBwb2ludC10by1wb2ludCBsaW5rcyBh bmQ8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2Fzc29jaWF0ZWQgcHJlZml4ZXMuJm5ic3A7IEFk dmVydGlzaW5nIGFsbCBvZiB0aGVzZSByb3V0ZXMgaW50byBCR1AgbWF5PGJyPg0KISZuYnNwOyAm bmJzcDsgY3JlYXRlIEZJQiBvdmVybG9hZCBjb25kaXRpb25zIGluIHRoZSBuZXR3b3JrIGRldmlj ZXMuJm5ic3A7IEFkdmVydGlzaW5nPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0aGVzZSBsaW5r cyBhbHNvIHB1dHMgYWRkaXRpb25hbCBwYXRoIGNvbXB1dGF0aW9uIHN0cmVzcyBvbiB0aGUgQkdQ PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtjb250cm9sIHBsYW5lIGZvciBsaXR0bGUgYmVuZWZp dC4mbmJzcDsgVGhlcmUgYXJlIHR3byBwb3NzaWJsZSBzb2x1dGlvbnM6PGJyPg0KPGJyPg0KLS0t IDkwMyw5MjIgLS0tLTxicj4NCjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7QW5vdGhlciBzb2x1 dGlvbiB0byB0aGlzIHByb2JsZW0gd291bGQgYmUgdXNpbmcgRm91ci1PY3RldCBBU05zPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDsoW1JGQzY3OTNdKSwgd2hlcmUgdGhlcmUgYXJlIGFkZGl0aW9u YWwgUHJpdmF0ZSBVc2UgQVNOcyBhdmFpbGFibGUsPGJyPg0KISZuYnNwOyAmbmJzcDsgc2VlIFs8 YSBocmVmPSJodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cC0z QV9fSUFOQS5BUyZhbXA7ZD1Dd01GYVEmYW1wO2M9NVZEMFJUdE5sVGgzeWNkNDFiM01VdyZhbXA7 cj1MVV92SmFNX0VRdTFTc20zNWoyeGxBJmFtcDttPWpsd21xUk1TQmJ6V0lSb3JJX3NEQU0xaTBM dXVPZExGbUpEVk5McHRJWWMmYW1wO3M9eVdhNmtTQ2MyT3d3VmFOZnkybkJnWl9OTFVMNGtILVFM UDFCTmIxWmFMVSZhbXA7ZT0iIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPklBTkEu QVM8L2E+XS4mbmJzcDsNCiBVc2Ugb2YgRm91ci1PY3RldCBBU05zIHB1dHMgYWRkaXRpb25hbCBw cm90b2NvbDxicj4NCiEmbmJzcDsgJm5ic3A7IGNvbXBsZXhpdHkgaW4gdGhlIEJHUCBpbXBsZW1l bnRhdGlvbiBhbmQgc2hvdWxkIGJlIGJhbGFuY2VkIGFnYWluc3Q8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO3RoZSBjb21wbGV4aXR5IG9mIHJlLXVzZSB3aGVuIGNvbnNpZGVyaW5nIFJFUTMgYW5k IFJFUTQuJm5ic3A7IFBlcmhhcHM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO21vcmUgaW1wb3J0 YW50bHksIHRoZXkgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IGFsbCBCR1A8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwO2ltcGxlbWVudGF0aW9ucywgd2hpY2ggbWF5IGxpbWl0IHZlbmRvciBzZWxl Y3Rpb24gb2YgREMgZXF1aXBtZW50Ljxicj4NCiEmbmJzcDsgJm5ic3A7IFdoZW4gc3VwcG9ydGVk LCBlbnN1cmUgdGhhdCBkZXBsb3llZCBpbXBsZW1lbnRhdGlvbnMgYXJlIGFibGUgdG88YnI+DQpy ZW1vdmU8YnI+DQohJm5ic3A7ICZuYnNwOyB0aGUgUHJpdmF0ZSBVc2UgQVNOcyB3aGVuIGV4dGVy bmFsIGNvbm5lY3Rpdml0eSB0byB0aGVzZSBBU2VzIGlzPGJyPg0KISZuYnNwOyAmbmJzcDsgcmVx dWlyZWQgKFNlY3Rpb24gNS4yLjQpLjxicj4NCjxicj4NCiZuYnNwOyA1LjIuMy4mbmJzcDsgUHJl Zml4IEFkdmVydGlzZW1lbnQ8YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0EgQ2xvcyB0 b3BvbG9neSBmZWF0dXJlcyBhIGxhcmdlIG51bWJlciBvZiBwb2ludC10by1wb2ludCBsaW5rcyBh bmQ8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2Fzc29jaWF0ZWQgcHJlZml4ZXMuJm5ic3A7IEFk dmVydGlzaW5nIGFsbCBvZiB0aGVzZSByb3V0ZXMgaW50byBCR1AgbWF5PGJyPg0KISZuYnNwOyAm bmJzcDsgY3JlYXRlIEZJQiBvdmVybG9hZCBpbiB0aGUgbmV0d29yayBkZXZpY2VzLiZuYnNwOyBB ZHZlcnRpc2luZzxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7dGhlc2UgbGlua3MgYWxzbyBwdXRz IGFkZGl0aW9uYWwgcGF0aCBjb21wdXRhdGlvbiBzdHJlc3Mgb24gdGhlIEJHUDxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7Y29udHJvbCBwbGFuZSBmb3IgbGl0dGxlIGJlbmVmaXQuJm5ic3A7IFRo ZXJlIGFyZSB0d28gcG9zc2libGUgc29sdXRpb25zOjxicj4NCjxicj4NCioqKioqKioqKioqKioq Kjxicj4NCioqKiA5MjUsOTUxICoqKio8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg ZGV2aWNlLCBkaXN0YW50IG5ldHdvcmtzIHdpbGwgYXV0b21hdGljYWxseSBiZSByZWFjaGFibGUg dmlhIHRoZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhZHZlcnRpc2luZyBFQkdQ IHBlZXIgYW5kIGRvIG5vdCByZXF1aXJlIHJlYWNoYWJpbGl0eSB0byB0aGVzZTxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBwcmVmaXhlcy4mbmJzcDsgSG93ZXZlciwgdGhpcyBtYXkg Y29tcGxpY2F0ZSBvcGVyYXRpb25zIG9yIG1vbml0b3Jpbmc6PGJyPg0KISZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO2UuZy4gdXNpbmcgdGhlIHBvcHVsYXIgJnF1b3Q7dHJhY2Vyb3V0ZSZxdW90 OyB0b29sIHdpbGwgZGlzcGxheSBJUCBhZGRyZXNzZXM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgdGhhdCBhcmUgbm90IHJlYWNoYWJsZS48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO28mbmJzcDsgQWR2ZXJ0aXNlIHBvaW50LXRvLXBvaW50IGxpbmtzLCBidXQgc3VtbWFy aXplIHRoZW0gb24gZXZlcnk8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZGV2aWNl LiZuYnNwOyBUaGlzIHJlcXVpcmVzIGFuIGFkZHJlc3MgYWxsb2NhdGlvbiBzY2hlbWUgc3VjaCBh czxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhbGxvY2F0aW5nIGEgY29uc2VjdXRp dmUgYmxvY2sgb2YgSVAgYWRkcmVzc2VzIHBlciBUaWVyLTEgYW5kPGJyPg0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IFRpZXItMiBkZXZpY2UgdG8gYmUgdXNlZCBmb3IgcG9pbnQtdG8tcG9p bnQgaW50ZXJmYWNlIGFkZHJlc3Npbmc8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 dG8gdGhlIGxvd2VyIGxheWVycyAoVGllci0yIHVwbGlua3Mgd2lsbCBiZSBudW1iZXJlZCBvdXQg b2YgVGllci0xPGJyPg0KISZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FkZHJlc3NpbmcgYW5k IHNvIGZvcnRoKS48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO1NlcnZlciBzdWJuZXRz IG9uIFRpZXItMyBkZXZpY2VzIG11c3QgYmUgYW5ub3VuY2VkIGludG8gQkdQIHdpdGhvdXQ8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwO3VzaW5nIHJvdXRlIHN1bW1hcml6YXRpb24gb24gVGllci0y IGFuZCBUaWVyLTEgZGV2aWNlcy4mbmJzcDsgU3VtbWFyaXppbmc8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO3N1Ym5ldHMgaW4gYSBDbG9zIHRvcG9sb2d5IHJlc3VsdHMgaW4gcm91dGUgYmxhY2st aG9saW5nIHVuZGVyIGE8YnI+DQohJm5ic3A7ICZuYnNwOyBzaW5nbGUgbGluayBmYWlsdXJlIChl LmcuIGJldHdlZW4gVGllci0yIGFuZCBUaWVyLTMgZGV2aWNlcykgYW5kPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDtoZW5jZSBtdXN0IGJlIGF2b2lkZWQuJm5ic3A7IFRoZSB1c2Ugb2YgcGVlciBs aW5rcyB3aXRoaW4gdGhlIHNhbWUgdGllciB0bzxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7cmVz b2x2ZSB0aGUgYmxhY2staG9saW5nIHByb2JsZW0gYnkgcHJvdmlkaW5nICZxdW90O2J5cGFzcyBw YXRocyZxdW90OyBpczxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7dW5kZXNpcmFibGUgZHVlIHRv IE8oTl4yKSBjb21wbGV4aXR5IG9mIHRoZSBwZWVyaW5nIG1lc2ggYW5kIHdhc3RlIG9mPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDtwb3J0cyBvbiB0aGUgZGV2aWNlcy4mbmJzcDsgQW4gYWx0ZXJu YXRpdmUgdG8gdGhlIGZ1bGwtbWVzaCBvZiBwZWVyLWxpbmtzPGJyPg0KISZuYnNwOyAmbmJzcDsg d291bGQgYmUgdXNpbmcgYSBzaW1wbGVyIGJ5cGFzcyB0b3BvbG9neSwgZS5nLiBhICZxdW90O3Jp bmcmcXVvdDsgYXMgZGVzY3JpYmVkPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtpbiBbRkI0UE9T VF0sIGJ1dCBzdWNoIGEgdG9wb2xvZ3kgYWRkcyBleHRyYSBob3BzIGFuZCBoYXMgdmVyeTxicj4N CiEmbmJzcDsgJm5ic3A7IGxpbWl0ZWQgYmlzZWN0aW9uIGJhbmR3aWR0aCwgaW4gYWRkaXRpb24g cmVxdWlyaW5nIHNwZWNpYWwgdHdlYWtzIHRvPGJyPg0KPGJyPg0KPGJyPg0KPGJyPg0KLS0tIDky NSw5NTEgLS0tLTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkZXZpY2UsIGRpc3Rh bnQgbmV0d29ya3Mgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHJlYWNoYWJsZSB2aWEgdGhlPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGFkdmVydGlzaW5nIEVCR1AgcGVlciBhbmQgZG8g bm90IHJlcXVpcmUgcmVhY2hhYmlsaXR5IHRvIHRoZXNlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IHByZWZpeGVzLiZuYnNwOyBIb3dldmVyLCB0aGlzIG1heSBjb21wbGljYXRlIG9w ZXJhdGlvbnMgb3IgbW9uaXRvcmluZzo8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ZS5nLiwgdXNpbmcgdGhlIHBvcHVsYXIgJnF1b3Q7dHJhY2Vyb3V0ZSZxdW90OyB0b29sIHdpbGwg ZGlzcGxheSBJUCBhZGRyZXNzZXM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdGhh dCBhcmUgbm90IHJlYWNoYWJsZS48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO28mbmJz cDsgQWR2ZXJ0aXNlIHBvaW50LXRvLXBvaW50IGxpbmtzLCBidXQgc3VtbWFyaXplIHRoZW0gb24g ZXZlcnk8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZGV2aWNlLiZuYnNwOyBUaGlz IHJlcXVpcmVzIGFuIGFkZHJlc3MgYWxsb2NhdGlvbiBzY2hlbWUgc3VjaCBhczxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhbGxvY2F0aW5nIGEgY29uc2VjdXRpdmUgYmxvY2sgb2Yg SVAgYWRkcmVzc2VzIHBlciBUaWVyLTEgYW5kPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IFRpZXItMiBkZXZpY2UgdG8gYmUgdXNlZCBmb3IgcG9pbnQtdG8tcG9pbnQgaW50ZXJmYWNl IGFkZHJlc3Npbmc8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7dG8gdGhlIGxvd2Vy IGxheWVycyAoVGllci0yIHVwbGluayBhZGRyZXNzZXMgd2lsbCBiZSBhbGxvY2F0ZWQ8YnI+DQoh Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZnJvbSBUaWVyLTEgYWRkcmVzcyBibG9ja3MgYW5k IHNvIGZvcnRoKS48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO1NlcnZlciBzdWJuZXRz IG9uIFRpZXItMyBkZXZpY2VzIG11c3QgYmUgYW5ub3VuY2VkIGludG8gQkdQIHdpdGhvdXQ8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwO3VzaW5nIHJvdXRlIHN1bW1hcml6YXRpb24gb24gVGllci0y IGFuZCBUaWVyLTEgZGV2aWNlcy4mbmJzcDsgU3VtbWFyaXppbmc8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO3N1Ym5ldHMgaW4gYSBDbG9zIHRvcG9sb2d5IHJlc3VsdHMgaW4gcm91dGUgYmxhY2st aG9saW5nIHVuZGVyIGE8YnI+DQohJm5ic3A7ICZuYnNwOyBzaW5nbGUgbGluayBmYWlsdXJlIChl LmcuLCBiZXR3ZWVuIFRpZXItMiBhbmQgVGllci0zIGRldmljZXMpIGFuZDxicj4NCiZuYnNwOyAm bmJzcDsgJm5ic3A7aGVuY2UgbXVzdCBiZSBhdm9pZGVkLiZuYnNwOyBUaGUgdXNlIG9mIHBlZXIg bGlua3Mgd2l0aGluIHRoZSBzYW1lIHRpZXIgdG88YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3Jl c29sdmUgdGhlIGJsYWNrLWhvbGluZyBwcm9ibGVtIGJ5IHByb3ZpZGluZyAmcXVvdDtieXBhc3Mg cGF0aHMmcXVvdDsgaXM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3VuZGVzaXJhYmxlIGR1ZSB0 byBPKE5eMikgY29tcGxleGl0eSBvZiB0aGUgcGVlcmluZyBtZXNoIGFuZCB3YXN0ZSBvZjxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7cG9ydHMgb24gdGhlIGRldmljZXMuJm5ic3A7IEFuIGFsdGVy bmF0aXZlIHRvIHRoZSBmdWxsLW1lc2ggb2YgcGVlci1saW5rczxicj4NCiEmbmJzcDsgJm5ic3A7 IHdvdWxkIGJlIHVzaW5nIGEgc2ltcGxlciBieXBhc3MgdG9wb2xvZ3ksIGUuZy4sIGEgJnF1b3Q7 cmluZyZxdW90OyBhcyBkZXNjcmliZWQ8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2luIFtGQjRQ T1NUXSwgYnV0IHN1Y2ggYSB0b3BvbG9neSBhZGRzIGV4dHJhIGhvcHMgYW5kIGhhcyB2ZXJ5PGJy Pg0KISZuYnNwOyAmbmJzcDsgbGltaXRlZCBiaXNlY3Rpb25hbCBiYW5kd2lkdGguIEFkZGl0aW9u YWxseSByZXF1aXJpbmcgc3BlY2lhbCB0d2Vha3M8YnI+DQp0bzxicj4NCjxicj4NCjxicj4NCjxi cj4NCioqKioqKioqKioqKioqKjxicj4NCioqKiA5NTYsOTYzICoqKio8YnI+DQo8YnI+DQombmJz cDsgJm5ic3A7ICZuYnNwO21ha2UgQkdQIHJvdXRpbmcgd29yayAtIHN1Y2ggYXMgcG9zc2libHkg c3BsaXR0aW5nIGV2ZXJ5IGRldmljZSBpbnRvPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDthbiBB U04gb24gaXRzIG93bi4mbmJzcDsgTGF0ZXIgaW4gdGhpcyBkb2N1bWVudCwgU2VjdGlvbiA4LjIg aW50cm9kdWNlcyBhPGJyPg0KISZuYnNwOyAmbmJzcDsgbGVzcyBpbnRydXNpdmUgbWV0aG9kIGZv ciBwZXJmb3JtaW5nIGEgbGltaXRlZCBmb3JtIHJvdXRlPGJyPg0KISZuYnNwOyAmbmJzcDsgc3Vt bWFyaXphdGlvbiBpbiBDbG9zIG5ldHdvcmtzIGFuZCBkaXNjdXNzZXMgaXQncyBhc3NvY2lhdGVk IHRyYWRlLTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7b2Zmcy48YnI+DQo8YnI+DQombmJzcDsg NS4yLjQuJm5ic3A7IEV4dGVybmFsIENvbm5lY3Rpdml0eTxicj4NCi0tLSA5NTYsOTYzIC0tLS08 YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO21ha2UgQkdQIHJvdXRpbmcgd29yayAtIHN1 Y2ggYXMgcG9zc2libHkgc3BsaXR0aW5nIGV2ZXJ5IGRldmljZSBpbnRvPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDthbiBBU04gb24gaXRzIG93bi4mbmJzcDsgTGF0ZXIgaW4gdGhpcyBkb2N1bWVu dCwgU2VjdGlvbiA4LjIgaW50cm9kdWNlcyBhPGJyPg0KISZuYnNwOyAmbmJzcDsgbGVzcyBpbnRy dXNpdmUgbWV0aG9kIGZvciBwZXJmb3JtaW5nIGEgbGltaXRlZCBmb3JtIG9mIHJvdXRlPGJyPg0K ISZuYnNwOyAmbmJzcDsgc3VtbWFyaXphdGlvbiBpbiBDbG9zIG5ldHdvcmtzIGFuZCBkaXNjdXNz ZXMgaXRzIGFzc29jaWF0ZWQgdHJhZGUtPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtvZmZzLjxi cj4NCjxicj4NCiZuYnNwOyA1LjIuNC4mbmJzcDsgRXh0ZXJuYWwgQ29ubmVjdGl2aXR5PGJyPg0K KioqKioqKioqKioqKioqPGJyPg0KKioqIDk3Miw5ODUgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ZG9jdW1lbnQuJm5ic3A7IFRoZXNlIGRldmljZXMgaGF2ZSB0byBwZXJmb3JtIGEgZmV3 IHNwZWNpYWwgZnVuY3Rpb25zOjxicj4NCjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7byZuYnNw OyBIaWRlIG5ldHdvcmsgdG9wb2xvZ3kgaW5mb3JtYXRpb24gd2hlbiBhZHZlcnRpc2luZyBwYXRo cyB0byBXQU48YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cm91dGVycywgaS5lLiBy ZW1vdmUgUHJpdmF0ZSBVc2UgQVNOcyBbUkZDNjk5Nl0gZnJvbSB0aGUgQVNfUEFUSDxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhdHRyaWJ1dGUuJm5ic3A7IFRoaXMgaXMgdHlwaWNh bGx5IGRvbmUgdG8gYXZvaWQgQVNOIG51bWJlciBjb2xsaXNpb25zPGJyPg0KJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IGJldHdlZW4gZGlmZmVyZW50IGRhdGEgY2VudGVycyBhbmQgYWxzbyB0 byBwcm92aWRlIGEgdW5pZm9ybTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBBU19Q QVRIIGxlbmd0aCB0byB0aGUgV0FOIGZvciBwdXJwb3NlcyBvZiBXQU4gRUNNUCB0byBBbnljYXN0 PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHByZWZpeGVzIG9yaWdpbmF0ZWQgaW4g dGhlIHRvcG9sb2d5LiZuYnNwOyBBbiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYzxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBCR1AgZmVhdHVyZSB0eXBpY2FsbHkgY2FsbGVkICZxdW90 O1JlbW92ZSBQcml2YXRlIEFTJnF1b3Q7IGlzIGNvbW1vbmx5IHVzZWQ8YnI+DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgdG8gYWNjb21wbGlzaCB0aGlzLiZuYnNwOyBEZXBlbmRpbmcgb24g aW1wbGVtZW50YXRpb24sIHRoZSBmZWF0dXJlPGJyPg0KISZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO3Nob3VsZCBzdHJpcCBhIGNvbnRpZ3VvdXMgc2VxdWVuY2Ugb2YgUHJpdmF0ZSBVc2UgQVNO cyBmb3VuZCBpbjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBBU19QQVRIIGF0dHJp YnV0ZSBwcmlvciB0byBhZHZlcnRpc2luZyB0aGUgcGF0aCB0byBhIG5laWdoYm9yLjxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGlzIGFzc3VtZXMgdGhhdCBhbGwgQVNOcyB1c2Vk IGZvciBpbnRyYSBkYXRhIGNlbnRlciBudW1iZXJpbmc8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgYXJlIGZyb20gdGhlIFByaXZhdGUgVXNlIHJhbmdlcy4mbmJzcDsgVGhlIHByb2Nl c3MgZm9yIHN0cmlwcGluZyB0aGU8YnI+DQotLS0gOTcyLDk4NSAtLS0tPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDtkb2N1bWVudC4mbmJzcDsgVGhlc2UgZGV2aWNlcyBoYXZlIHRvIHBlcmZvcm0g YSBmZXcgc3BlY2lhbCBmdW5jdGlvbnM6PGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtv Jm5ic3A7IEhpZGUgbmV0d29yayB0b3BvbG9neSBpbmZvcm1hdGlvbiB3aGVuIGFkdmVydGlzaW5n IHBhdGhzIHRvIFdBTjxicj4NCiEmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyb3V0ZXJzLCBp LmUuLCByZW1vdmUgUHJpdmF0ZSBVc2UgQVNOcyBbUkZDNjk5Nl0gZnJvbSB0aGUgQVNfUEFUSDxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhdHRyaWJ1dGUuJm5ic3A7IFRoaXMgaXMg dHlwaWNhbGx5IGRvbmUgdG8gYXZvaWQgQVNOIG51bWJlciBjb2xsaXNpb25zPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJldHdlZW4gZGlmZmVyZW50IGRhdGEgY2VudGVycyBhbmQg YWxzbyB0byBwcm92aWRlIGEgdW5pZm9ybTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyBBU19QQVRIIGxlbmd0aCB0byB0aGUgV0FOIGZvciBwdXJwb3NlcyBvZiBXQU4gRUNNUCB0byBB bnljYXN0PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHByZWZpeGVzIG9yaWdpbmF0 ZWQgaW4gdGhlIHRvcG9sb2d5LiZuYnNwOyBBbiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYzxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBCR1AgZmVhdHVyZSB0eXBpY2FsbHkgY2FsbGVk ICZxdW90O1JlbW92ZSBQcml2YXRlIEFTJnF1b3Q7IGlzIGNvbW1vbmx5IHVzZWQ8YnI+DQombmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdG8gYWNjb21wbGlzaCB0aGlzLiZuYnNwOyBEZXBlbmRp bmcgb24gaW1wbGVtZW50YXRpb24sIHRoZSBmZWF0dXJlPGJyPg0KISZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3Nob3VsZCBzdHJpcCBhIGNvbnRpZ3VvdXMgc2VxdWVuY2Ugb2YgUHJpdmF0ZSBV c2UgQVNOcyBmb3VuZCBpbiBhbjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBBU19Q QVRIIGF0dHJpYnV0ZSBwcmlvciB0byBhZHZlcnRpc2luZyB0aGUgcGF0aCB0byBhIG5laWdoYm9y Ljxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGlzIGFzc3VtZXMgdGhhdCBhbGwg QVNOcyB1c2VkIGZvciBpbnRyYSBkYXRhIGNlbnRlciBudW1iZXJpbmc8YnI+DQombmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgYXJlIGZyb20gdGhlIFByaXZhdGUgVXNlIHJhbmdlcy4mbmJzcDsg VGhlIHByb2Nlc3MgZm9yIHN0cmlwcGluZyB0aGU8YnI+DQoqKioqKioqKioqKioqKio8YnI+DQoq KiogOTk4LDEwMDUgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB0byB0aGUg V0FOIFJvdXRlcnMgdXBzdHJlYW0sIHRvIHByb3ZpZGUgcmVzaXN0YW5jZSB0byBhIHNpbmdsZS08 YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgbGluayBmYWlsdXJlIGNhdXNpbmcgdGhl IGJsYWNrLWhvbGluZyBvZiB0cmFmZmljLiZuYnNwOyBUbyBwcmV2ZW50PGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IGJsYWNrLWhvbGluZyBpbiB0aGUgc2l0dWF0aW9uIHdoZW4gYWxs IG9mIHRoZSBFQkdQIHNlc3Npb25zIHRvIHRoZTxicj4NCiEmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtXQU4gcm91dGVycyBmYWlsIHNpbXVsdGFuZW91c2x5IG9uIGEgZ2l2ZW4gZGV2aWNlIGl0 IGlzIG1vcmU8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZGVzaXJhYmxlIHRvIHRh a2UgdGhlICZxdW90O3JlbGF5aW5nJnF1b3Q7IGFwcHJvYWNoIHJhdGhlciB0aGFuIGludHJvZHVj aW5nPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHRoZSBkZWZhdWx0IHJvdXRlIHZp YSBjb21wbGljYXRlZCBjb25kaXRpb25hbCByb3V0ZSBvcmlnaW5hdGlvbjxicj4NCiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyBzY2hlbWVzIHByb3ZpZGVkIGJ5IHNvbWUgaW1wbGVtZW50YXRp b25zIFtDT05ESVRJT05BTFJPVVRFXS48YnI+DQo8YnI+DQotLS0gOTk4LDEwMDUgLS0tLTxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB0byB0aGUgV0FOIFJvdXRlcnMgdXBzdHJlYW0s IHRvIHByb3ZpZGUgcmVzaXN0YW5jZSB0byBhIHNpbmdsZS08YnI+DQombmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgbGluayBmYWlsdXJlIGNhdXNpbmcgdGhlIGJsYWNrLWhvbGluZyBvZiB0cmFm ZmljLiZuYnNwOyBUbyBwcmV2ZW50PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGJs YWNrLWhvbGluZyBpbiB0aGUgc2l0dWF0aW9uIHdoZW4gYWxsIG9mIHRoZSBFQkdQIHNlc3Npb25z IHRvIHRoZTxicj4NCiEmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtXQU4gcm91dGVycyBmYWls IHNpbXVsdGFuZW91c2x5IG9uIGEgZ2l2ZW4gZGV2aWNlLCBpdCBpcyBtb3JlPGJyPg0KISZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Rlc2lyYWJsZSB0byByZWFkdmVydGlzZSB0aGUgZGVmYXVs dCByb3V0ZSByYXRoZXIgdGhhbiBvcmlnaW5hdGluZzxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyB0aGUgZGVmYXVsdCByb3V0ZSB2aWEgY29tcGxpY2F0ZWQgY29uZGl0aW9uYWwgcm91 dGUgb3JpZ2luYXRpb248YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc2NoZW1lcyBw cm92aWRlZCBieSBzb21lIGltcGxlbWVudGF0aW9ucyBbQ09ORElUSU9OQUxST1VURV0uPGJyPg0K PGJyPg0KKioqKioqKioqKioqKioqPGJyPg0KKioqIDEwMTcsMTAyMyAqKioqPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDtwcmVmaXhlcyBvcmlnaW5hdGVkIGZyb20gd2l0aGluIHRoZSBkYXRhIGNl bnRlciBpbiBhIGZ1bGx5IHJvdXRlZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bmV0d29yayBk ZXNpZ24uJm5ic3A7IEZvciBleGFtcGxlLCBhIG5ldHdvcmsgd2l0aCAyMDAwIFRpZXItMyBkZXZp Y2VzIHdpbGw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2hhdmUgYXQgbGVhc3QgMjAwMCBzZXJ2 ZXJzIHN1Ym5ldHMgYWR2ZXJ0aXNlZCBpbnRvIEJHUCwgYWxvbmcgd2l0aDxicj4NCiEmbmJzcDsg Jm5ic3A7IHRoZSBpbmZyYXN0cnVjdHVyZSBvciBvdGhlciBwcmVmaXhlcy4mbmJzcDsgSG93ZXZl ciwgYXMgZGlzY3Vzc2VkIGJlZm9yZSw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3RoZSBwcm9w b3NlZCBuZXR3b3JrIGRlc2lnbiBkb2VzIG5vdCBhbGxvdyBmb3Igcm91dGUgc3VtbWFyaXphdGlv bjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZHVlIHRvIHRoZSBsYWNrIG9mIHBlZXIgbGlua3Mg aW5zaWRlIGV2ZXJ5IHRpZXIuPGJyPg0KPGJyPg0KLS0tIDEwMTcsMTAyMyAtLS0tPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDtwcmVmaXhlcyBvcmlnaW5hdGVkIGZyb20gd2l0aGluIHRoZSBkYXRh IGNlbnRlciBpbiBhIGZ1bGx5IHJvdXRlZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bmV0d29y ayBkZXNpZ24uJm5ic3A7IEZvciBleGFtcGxlLCBhIG5ldHdvcmsgd2l0aCAyMDAwIFRpZXItMyBk ZXZpY2VzIHdpbGw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2hhdmUgYXQgbGVhc3QgMjAwMCBz ZXJ2ZXJzIHN1Ym5ldHMgYWR2ZXJ0aXNlZCBpbnRvIEJHUCwgYWxvbmcgd2l0aDxicj4NCiEmbmJz cDsgJm5ic3A7IHRoZSBpbmZyYXN0cnVjdHVyZSBhbmQgbGluayBwcmVmaXhlcy4mbmJzcDsgSG93 ZXZlciwgYXMgZGlzY3Vzc2VkIGJlZm9yZSw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3RoZSBw cm9wb3NlZCBuZXR3b3JrIGRlc2lnbiBkb2VzIG5vdCBhbGxvdyBmb3Igcm91dGUgc3VtbWFyaXph dGlvbjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZHVlIHRvIHRoZSBsYWNrIG9mIHBlZXIgbGlu a3MgaW5zaWRlIGV2ZXJ5IHRpZXIuPGJyPg0KPGJyPg0KKioqKioqKioqKioqKioqPGJyPg0KKioq IDEwMjgsMTAzNyAqKioqPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtvJm5ic3A7IEludGVyY29u bmVjdCB0aGUgQm9yZGVyIFJvdXRlcnMgdXNpbmcgYSBmdWxsLW1lc2ggb2YgcGh5c2ljYWw8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgbGlua3Mgb3IgdXNpbmcgYW55IG90aGVyICZx dW90O3BlZXItbWVzaCZxdW90OyB0b3BvbG9neSwgc3VjaCBhcyByaW5nIG9yPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGh1Yi1hbmQtc3Bva2UuJm5ic3A7IENvbmZpZ3VyZSBCR1Ag YWNjb3JkaW5nbHkgb24gYWxsIEJvcmRlciBMZWFmcyB0bzxicj4NCiEmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtleGNoYW5nZSBuZXR3b3JrIHJlYWNoYWJpbGl0eSBpbmZvcm1hdGlvbiAtIGUu Zy4gYnkgYWRkaW5nIGEgbWVzaDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBvZiBJ QkdQIHNlc3Npb25zLiZuYnNwOyBUaGUgaW50ZXJjb25uZWN0aW5nIHBlZXIgbGlua3MgbmVlZCB0 byBiZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBhcHByb3ByaWF0ZWx5IHNpemVk IGZvciB0cmFmZmljIHRoYXQgd2lsbCBiZSBwcmVzZW50IGluIHRoZSBjYXNlPGJyPg0KISZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO29mIGEgZGV2aWNlIG9yIGxpbmsgZmFpbHVyZSB1bmRlcm5l YXRoIHRoZSBCb3JkZXIgUm91dGVycy48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO28m bmJzcDsgVGllci0xIGRldmljZXMgbWF5IGhhdmUgYWRkaXRpb25hbCBwaHlzaWNhbCBsaW5rcyBw cm92aXNpb25lZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB0b3dhcmQgdGhlIEJv cmRlciBSb3V0ZXJzICh3aGljaCBhcmUgVGllci0yIGRldmljZXMgZnJvbSB0aGU8YnI+DQotLS0g MTAyOCwxMDM3IC0tLS08YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO28mbmJzcDsgSW50ZXJjb25u ZWN0IHRoZSBCb3JkZXIgUm91dGVycyB1c2luZyBhIGZ1bGwtbWVzaCBvZiBwaHlzaWNhbDxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBsaW5rcyBvciB1c2luZyBhbnkgb3RoZXIgJnF1 b3Q7cGVlci1tZXNoJnF1b3Q7IHRvcG9sb2d5LCBzdWNoIGFzIHJpbmcgb3I8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgaHViLWFuZC1zcG9rZS4mbmJzcDsgQ29uZmlndXJlIEJHUCBh Y2NvcmRpbmdseSBvbiBhbGwgQm9yZGVyIExlYWZzIHRvPGJyPg0KISZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2V4Y2hhbmdlIG5ldHdvcmsgcmVhY2hhYmlsaXR5IGluZm9ybWF0aW9uLCBlLmcu LCBieSBhZGRpbmcgYSBtZXNoPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IG9mIElC R1Agc2Vzc2lvbnMuJm5ic3A7IFRoZSBpbnRlcmNvbm5lY3RpbmcgcGVlciBsaW5rcyBuZWVkIHRv IGJlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGFwcHJvcHJpYXRlbHkgc2l6ZWQg Zm9yIHRyYWZmaWMgdGhhdCB3aWxsIGJlIHByZXNlbnQgaW4gdGhlIGNhc2U8YnI+DQohJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7b2YgYSBkZXZpY2Ugb3IgbGluayBmYWlsdXJlIGluIHRoZSBt ZXNoIGNvbm5lY3RpbmcgdGhlIEJvcmRlcjxicj4NClJvdXRlcnMuPGJyPg0KPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDtvJm5ic3A7IFRpZXItMSBkZXZpY2VzIG1heSBoYXZlIGFkZGl0aW9uYWwg cGh5c2ljYWwgbGlua3MgcHJvdmlzaW9uZWQ8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgdG93YXJkIHRoZSBCb3JkZXIgUm91dGVycyAod2hpY2ggYXJlIFRpZXItMiBkZXZpY2VzIGZy b20gdGhlPGJyPg0KKioqKioqKioqKioqKioqPGJyPg0KKioqIDEwNDMsMTA0OSAqKioqPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGRldmljZSBjb21wYXJlZCB3aXRoIHRoZSBvdGhl ciBkZXZpY2VzIGluIHRoZSBDbG9zLiZuYnNwOyBUaGlzIGFsc288YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHBvcnRzIGF2YWlsYWJsZSB0byAm cXVvdDtyZWd1bGFyJnF1b3Q7IFRpZXItMiBzd2l0Y2hlczxicj4NCiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyBhbmQgaGVuY2UgdGhlIG51bWJlciBvZiBjbHVzdGVycyB0aGF0IGNvdWxkIGJl IGludGVyY29ubmVjdGVkIHZpYTxicj4NCiEmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtUaWVy LTEgbGF5ZXIuPGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtJZiBhbnkgb2YgdGhlIGFi b3ZlIG9wdGlvbnMgYXJlIGltcGxlbWVudGVkLCBpdCBpcyBwb3NzaWJsZSB0bzxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7cGVyZm9ybSByb3V0ZSBzdW1tYXJpemF0aW9uIGF0IHRoZSBCb3JkZXIg Um91dGVycyB0b3dhcmQgdGhlIFdBTjxicj4NCi0tLSAxMDQzLDEwNDkgLS0tLTxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkZXZpY2UgY29tcGFyZWQgd2l0aCB0aGUgb3RoZXIgZGV2 aWNlcyBpbiB0aGUgQ2xvcy4mbmJzcDsgVGhpcyBhbHNvPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IHJlZHVjZXMgdGhlIG51bWJlciBvZiBwb3J0cyBhdmFpbGFibGUgdG8gJnF1b3Q7 cmVndWxhciZxdW90OyBUaWVyLTIgc3dpdGNoZXM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgYW5kIGhlbmNlIHRoZSBudW1iZXIgb2YgY2x1c3RlcnMgdGhhdCBjb3VsZCBiZSBpbnRl cmNvbm5lY3RlZCB2aWE8YnI+DQohJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7dGhlIFRpZXIt MSBsYXllci48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0lmIGFueSBvZiB0aGUgYWJv dmUgb3B0aW9ucyBhcmUgaW1wbGVtZW50ZWQsIGl0IGlzIHBvc3NpYmxlIHRvPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDtwZXJmb3JtIHJvdXRlIHN1bW1hcml6YXRpb24gYXQgdGhlIEJvcmRlciBS b3V0ZXJzIHRvd2FyZCB0aGUgV0FOPGJyPg0KKioqKioqKioqKioqKioqPGJyPg0KKioqIDEwNzEs MTA3OSAqKioqPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtFQ01QIGlzIHRoZSBmdW5kYW1lbnRh bCBsb2FkIHNoYXJpbmcgbWVjaGFuaXNtIHVzZWQgYnkgYSBDbG9zPGJyPg0KJm5ic3A7ICZuYnNw OyAmbmJzcDt0b3BvbG9neS4mbmJzcDsgRWZmZWN0aXZlbHksIGV2ZXJ5IGxvd2VyLXRpZXIgZGV2 aWNlIHdpbGwgdXNlIGFsbCBvZiBpdHM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2RpcmVjdGx5 IGF0dGFjaGVkIHVwcGVyLXRpZXIgZGV2aWNlcyB0byBsb2FkIHNoYXJlIHRyYWZmaWMgZGVzdGlu ZWQ8YnI+DQohJm5ic3A7ICZuYnNwOyB0byB0aGUgc2FtZSBJUCBwcmVmaXguJm5ic3A7IE51bWJl ciBvZiBFQ01QIHBhdGhzIGJldHdlZW4gYW55IHR3byBUaWVyLTM8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO2RldmljZXMgaW4gQ2xvcyB0b3BvbG9neSBlcXVhbHMgdG8gdGhlIG51bWJlciBvZiB0 aGUgZGV2aWNlcyBpbiB0aGU8YnI+DQohJm5ic3A7ICZuYnNwOyBtaWRkbGUgc3RhZ2UgKFRpZXIt MSkuJm5ic3A7IEZvciBleGFtcGxlLCBGaWd1cmUgNSBpbGx1c3RyYXRlcyB0aGU8YnI+DQombmJz cDsgJm5ic3A7ICZuYnNwO3RvcG9sb2d5IHdoZXJlIFRpZXItMyBkZXZpY2UgQSBoYXMgZm91ciBw YXRocyB0byByZWFjaCBzZXJ2ZXJzIFggYW5kPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtZLCB2 aWEgVGllci0yIGRldmljZXMgQiBhbmQgQyBhbmQgdGhlbiBUaWVyLTEgZGV2aWNlcyAxLCAyLCAz LCBhbmQgNDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzcGVjdGl2ZWx5Ljxicj4NCi0tLSAx MDcxLDEwNzkgLS0tLTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7RUNNUCBpcyB0aGUgZnVuZGFt ZW50YWwgbG9hZCBzaGFyaW5nIG1lY2hhbmlzbSB1c2VkIGJ5IGEgQ2xvczxicj4NCiZuYnNwOyAm bmJzcDsgJm5ic3A7dG9wb2xvZ3kuJm5ic3A7IEVmZmVjdGl2ZWx5LCBldmVyeSBsb3dlci10aWVy IGRldmljZSB3aWxsIHVzZSBhbGwgb2YgaXRzPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtkaXJl Y3RseSBhdHRhY2hlZCB1cHBlci10aWVyIGRldmljZXMgdG8gbG9hZCBzaGFyZSB0cmFmZmljIGRl c3RpbmVkPGJyPg0KISZuYnNwOyAmbmJzcDsgdG8gdGhlIHNhbWUgSVAgcHJlZml4LiZuYnNwOyBU aGUgbnVtYmVyIG9mIEVDTVAgcGF0aHMgYmV0d2VlbiBhbnkgdHdvPGJyPg0KVGllci0zPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDtkZXZpY2VzIGluIENsb3MgdG9wb2xvZ3kgZXF1YWxzIHRvIHRo ZSBudW1iZXIgb2YgdGhlIGRldmljZXMgaW4gdGhlPGJyPg0KISZuYnNwOyAmbmJzcDsgbWlkZGxl IHN0YWdlIChUaWVyLTEpLiZuYnNwOyBGb3IgZXhhbXBsZSwgRmlndXJlIDUgaWxsdXN0cmF0ZXMg YTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7dG9wb2xvZ3kgd2hlcmUgVGllci0zIGRldmljZSBB IGhhcyBmb3VyIHBhdGhzIHRvIHJlYWNoIHNlcnZlcnMgWCBhbmQ8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO1ksIHZpYSBUaWVyLTIgZGV2aWNlcyBCIGFuZCBDIGFuZCB0aGVuIFRpZXItMSBkZXZp Y2VzIDEsIDIsIDMsIGFuZCA0PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXNwZWN0aXZlbHku PGJyPg0KKioqKioqKioqKioqKioqPGJyPg0KKioqIDExMDUsMTExNiAqKioqPGJyPg0KPGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDtUaGUgRUNNUCByZXF1aXJlbWVudCBpbXBsaWVzIHRoYXQgdGhl IEJHUCBpbXBsZW1lbnRhdGlvbiBtdXN0IHN1cHBvcnQ8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw O211bHRpcGF0aCBmYW4tb3V0IGZvciB1cCB0byB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGV2aWNl cyBkaXJlY3RseTxicj4NCiEmbmJzcDsgJm5ic3A7IGF0dGFjaGVkIGF0IGFueSBwb2ludCBpbiB0 aGUgdG9wb2xvZ3kgaW4gdXBzdHJlYW0gb3IgZG93bnN0cmVhbTxicj4NCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ZGlyZWN0aW9uLiZuYnNwOyBOb3JtYWxseSwgdGhpcyBudW1iZXIgZG9lcyBub3QgZXhj ZWVkIGhhbGYgb2YgdGhlIHBvcnRzPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtmb3VuZCBvbiBh IGRldmljZSBpbiB0aGUgdG9wb2xvZ3kuJm5ic3A7IEZvciBleGFtcGxlLCBhbiBFQ01QIGZhbi1v dXQgb2Y8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOzMyIHdvdWxkIGJlIHJlcXVpcmVkIHdoZW4g YnVpbGRpbmcgYSBDbG9zIG5ldHdvcmsgdXNpbmcgNjQtcG9ydDxicj4NCiZuYnNwOyAmbmJzcDsg Jm5ic3A7ZGV2aWNlcy4mbmJzcDsgVGhlIEJvcmRlciBSb3V0ZXJzIG1heSBuZWVkIHRvIGhhdmUg d2lkZXIgZmFuLW91dCB0byBiZTxicj4NCiEmbmJzcDsgJm5ic3A7IGFibGUgdG8gY29ubmVjdCB0 byBtdWx0aXR1ZGUgb2YgVGllci0xIGRldmljZXMgaWYgcm91dGUgc3VtbWFyaXphdGlvbjxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7YXQgQm9yZGVyIFJvdXRlciBsZXZlbCBpcyBpbXBsZW1lbnRl ZCBhcyBkZXNjcmliZWQgaW4gU2VjdGlvbiA1LjIuNS48YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw O0lmIGEgZGV2aWNlJ3MgaGFyZHdhcmUgZG9lcyBub3Qgc3VwcG9ydCB3aWRlciBFQ01QLCBsb2dp Y2FsIGxpbmstPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtncm91cGluZyAobGluay1hZ2dyZWdh dGlvbiBhdCBsYXllciAyKSBjb3VsZCBiZSB1c2VkIHRvIHByb3ZpZGU8YnI+DQotLS0gMTEwNSwx MTE2IC0tLS08YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO1RoZSBFQ01QIHJlcXVpcmVt ZW50IGltcGxpZXMgdGhhdCB0aGUgQkdQIGltcGxlbWVudGF0aW9uIG11c3Qgc3VwcG9ydDxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7bXVsdGlwYXRoIGZhbi1vdXQgZm9yIHVwIHRvIHRoZSBtYXhp bXVtIG51bWJlciBvZiBkZXZpY2VzIGRpcmVjdGx5PGJyPg0KISZuYnNwOyAmbmJzcDsgYXR0YWNo ZWQgYXQgYW55IHBvaW50IGluIHRoZSB0b3BvbG9neSBpbiB0aGUgdXBzdHJlYW0gb3IgZG93bnN0 cmVhbTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGlyZWN0aW9uLiZuYnNwOyBOb3JtYWxseSwg dGhpcyBudW1iZXIgZG9lcyBub3QgZXhjZWVkIGhhbGYgb2YgdGhlIHBvcnRzPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDtmb3VuZCBvbiBhIGRldmljZSBpbiB0aGUgdG9wb2xvZ3kuJm5ic3A7IEZv ciBleGFtcGxlLCBhbiBFQ01QIGZhbi1vdXQgb2Y8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOzMy IHdvdWxkIGJlIHJlcXVpcmVkIHdoZW4gYnVpbGRpbmcgYSBDbG9zIG5ldHdvcmsgdXNpbmcgNjQt cG9ydDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGV2aWNlcy4mbmJzcDsgVGhlIEJvcmRlciBS b3V0ZXJzIG1heSBuZWVkIHRvIGhhdmUgd2lkZXIgZmFuLW91dCB0byBiZTxicj4NCiEmbmJzcDsg Jm5ic3A7IGFibGUgdG8gY29ubmVjdCB0byBhIG11bHRpdHVkZSBvZiBUaWVyLTEgZGV2aWNlcyBp ZiByb3V0ZTxicj4NCnN1bW1hcml6YXRpb248YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2F0IEJv cmRlciBSb3V0ZXIgbGV2ZWwgaXMgaW1wbGVtZW50ZWQgYXMgZGVzY3JpYmVkIGluIFNlY3Rpb24g NS4yLjUuPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtJZiBhIGRldmljZSdzIGhhcmR3YXJlIGRv ZXMgbm90IHN1cHBvcnQgd2lkZXIgRUNNUCwgbG9naWNhbCBsaW5rLTxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7Z3JvdXBpbmcgKGxpbmstYWdncmVnYXRpb24gYXQgbGF5ZXIgMikgY291bGQgYmUg dXNlZCB0byBwcm92aWRlPGJyPg0KKioqKioqKioqKioqKioqPGJyPg0KKioqIDExMjIsMTEzMSAq KioqPGJyPg0KJm5ic3A7IEludGVybmV0LURyYWZ0Jm5ic3A7ICZuYnNwOyBkcmFmdC1pZXRmLXJ0 Z3dnLWJncC1yb3V0aW5nLWxhcmdlLWRjJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7TWFyY2gg MjAxNjxicj4NCjxicj4NCjxicj4NCiEmbmJzcDsgJm5ic3A7ICZxdW90O2hpZXJhcmNoaWNhbCZx dW90OyBFQ01QIChMYXllciAzIEVDTVAgZm9sbG93ZWQgYnkgTGF5ZXIgMiBFQ01QKSB0bzxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7Y29tcGVuc2F0ZSBmb3IgZmFuLW91dCBsaW1pdGF0aW9ucy4m bmJzcDsgU3VjaCBhcHByb2FjaCwgaG93ZXZlciw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2lu Y3JlYXNlcyB0aGUgcmlzayBvZiBmbG93IHBvbGFyaXphdGlvbiwgYXMgbGVzcyBlbnRyb3B5IHdp bGwgYmU8YnI+DQohJm5ic3A7ICZuYnNwOyBhdmFpbGFibGUgdG8gdGhlIHNlY29uZCBzdGFnZSBv ZiBFQ01QLjxicj4NCjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7TW9zdCBCR1AgaW1wbGVtZW50 YXRpb25zIGRlY2xhcmUgcGF0aHMgdG8gYmUgZXF1YWwgZnJvbSBhbiBFQ01QPGJyPg0KJm5ic3A7 ICZuYnNwOyAmbmJzcDtwZXJzcGVjdGl2ZSBpZiB0aGV5IG1hdGNoIHVwIHRvIGFuZCBpbmNsdWRp bmcgc3RlcCAoZSkgaW48YnI+DQotLS0gMTEyMiwxMTMxIC0tLS08YnI+DQombmJzcDsgSW50ZXJu ZXQtRHJhZnQmbmJzcDsgJm5ic3A7IGRyYWZ0LWlldGYtcnRnd2ctYmdwLXJvdXRpbmctbGFyZ2Ut ZGMmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtNYXJjaCAyMDE2PGJyPg0KPGJyPg0KPGJyPg0K ISZuYnNwOyAmbmJzcDsgJnF1b3Q7aGllcmFyY2hpY2FsJnF1b3Q7IEVDTVAgKExheWVyIDMgRUNN UCBjb3VwbGVkIHdpdGggTGF5ZXIgMiBFQ01QKSB0bzxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7 Y29tcGVuc2F0ZSBmb3IgZmFuLW91dCBsaW1pdGF0aW9ucy4mbmJzcDsgU3VjaCBhcHByb2FjaCwg aG93ZXZlciw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2luY3JlYXNlcyB0aGUgcmlzayBvZiBm bG93IHBvbGFyaXphdGlvbiwgYXMgbGVzcyBlbnRyb3B5IHdpbGwgYmU8YnI+DQohJm5ic3A7ICZu YnNwOyBhdmFpbGFibGUgYXQgdGhlIHNlY29uZCBzdGFnZSBvZiBFQ01QLjxicj4NCjxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7TW9zdCBCR1AgaW1wbGVtZW50YXRpb25zIGRlY2xhcmUgcGF0aHMg dG8gYmUgZXF1YWwgZnJvbSBhbiBFQ01QPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtwZXJzcGVj dGl2ZSBpZiB0aGV5IG1hdGNoIHVwIHRvIGFuZCBpbmNsdWRpbmcgc3RlcCAoZSkgaW48YnI+DQoq KioqKioqKioqKioqKio8YnI+DQoqKiogMTE0OCwxMTU0ICoqKio8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO3BlcnNwZWN0aXZlIG9mIG90aGVyIGRldmljZXMsIHN1Y2ggYSBwcmVmaXggd291bGQg aGF2ZSBCR1AgcGF0aHMgd2l0aDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGlmZmVyZW50IEFT X1BBVEggYXR0cmlidXRlIHZhbHVlcywgd2hpbGUgaGF2aW5nIHRoZSBzYW1lIEFTX1BBVEg8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwO2F0dHJpYnV0ZSBsZW5ndGhzLiZuYnNwOyBUaGVyZWZvcmUs IEJHUCBpbXBsZW1lbnRhdGlvbnMgbXVzdCBzdXBwb3J0IGxvYWQ8YnI+DQohJm5ic3A7ICZuYnNw OyBzaGFyaW5nIG92ZXIgYWJvdmUtbWVudGlvbmVkIHBhdGhzLiZuYnNwOyBUaGlzIGZlYXR1cmUg aXMgc29tZXRpbWVzIGtub3duPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDthcyAmcXVvdDttdWx0 aXBhdGggcmVsYXgmcXVvdDsgb3IgJnF1b3Q7bXVsdGlwYXRoIG11bHRpcGxlLWFzJnF1b3Q7IGFu ZCBlZmZlY3RpdmVseTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7YWxsb3dzIGZvciBFQ01QIHRv IGJlIGRvbmUgYWNyb3NzIGRpZmZlcmVudCBuZWlnaGJvcmluZyBBU05zIGlmIGFsbDxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7b3RoZXIgYXR0cmlidXRlcyBhcmUgZXF1YWwgYXMgYWxyZWFkeSBk ZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzPGJyPg0KLS0tIDExNDgsMTE1NCAtLS0tPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDtwZXJzcGVjdGl2ZSBvZiBvdGhlciBkZXZpY2VzLCBzdWNoIGEgcHJl Zml4IHdvdWxkIGhhdmUgQkdQIHBhdGhzIHdpdGg8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2Rp ZmZlcmVudCBBU19QQVRIIGF0dHJpYnV0ZSB2YWx1ZXMsIHdoaWxlIGhhdmluZyB0aGUgc2FtZSBB U19QQVRIPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDthdHRyaWJ1dGUgbGVuZ3Rocy4mbmJzcDsg VGhlcmVmb3JlLCBCR1AgaW1wbGVtZW50YXRpb25zIG11c3Qgc3VwcG9ydCBsb2FkPGJyPg0KISZu YnNwOyAmbmJzcDsgc2hhcmluZyBvdmVyIHRoZSBhYm92ZS1tZW50aW9uZWQgcGF0aHMuJm5ic3A7 IFRoaXMgZmVhdHVyZSBpcyBzb21ldGltZXM8YnI+DQprbm93bjxicj4NCiZuYnNwOyAmbmJzcDsg Jm5ic3A7YXMgJnF1b3Q7bXVsdGlwYXRoIHJlbGF4JnF1b3Q7IG9yICZxdW90O211bHRpcGF0aCBt dWx0aXBsZS1hcyZxdW90OyBhbmQgZWZmZWN0aXZlbHk8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw O2FsbG93cyBmb3IgRUNNUCB0byBiZSBkb25lIGFjcm9zcyBkaWZmZXJlbnQgbmVpZ2hib3Jpbmcg QVNOcyBpZiBhbGw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO290aGVyIGF0dHJpYnV0ZXMgYXJl IGVxdWFsIGFzIGFscmVhZHkgZGVzY3JpYmVkIGluIHRoZSBwcmV2aW91czxicj4NCioqKioqKioq KioqKioqKjxicj4NCioqKiAxMTgyLDExOTkgKioqKjxicj4NCjxicj4NCiZuYnNwOyAmbmJzcDsg Jm5ic3A7SXQgaXMgb2Z0ZW4gZGVzaXJhYmxlIHRvIGhhdmUgdGhlIGhhc2hpbmcgZnVuY3Rpb24g dXNlZCBmb3IgRUNNUCB0bzxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7YmUgY29uc2lzdGVudCAo c2VlIFtDT05TLUhBU0hdKSwgdG8gbWluaW1pemUgdGhlIGltcGFjdCBvbiBmbG93IHRvPGJyPg0K ISZuYnNwOyAmbmJzcDsgbmV4dC1ob3AgYWZmaW5pdHkgY2hhbmdlcyB3aGVuIGEgbmV4dC1ob3Ag aXMgYWRkZWQgb3IgcmVtb3ZlZCB0byBFQ01QPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtncm91 cC4mbmJzcDsgVGhpcyBjb3VsZCBiZSB1c2VkIGlmIHRoZSBuZXR3b3JrIGRldmljZSBpcyB1c2Vk IGFzIGEgbG9hZDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7YmFsYW5jZXIsIG1hcHBpbmcgZmxv d3MgdG93YXJkIG11bHRpcGxlIGRlc3RpbmF0aW9ucyAtIGluIHRoaXMgY2FzZSw8YnI+DQohJm5i c3A7ICZuYnNwOyBsb3Npbmcgb3IgYWRkaW5nIGEgZGVzdGluYXRpb24gd2lsbCBub3QgaGF2ZSBk ZXRyaW1lbnRhbCBlZmZlY3Qgb2Y8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2N1cnJlbnRseSBl c3RhYmxpc2hlZCBmbG93cy4mbmJzcDsgT25lIHBhcnRpY3VsYXIgcmVjb21tZW5kYXRpb24gb248 YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2ltcGxlbWVudGluZyBjb25zaXN0ZW50IGhhc2hpbmcg aXMgcHJvdmlkZWQgaW4gW1JGQzI5OTJdLCB0aG91Z2g8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw O290aGVyIGltcGxlbWVudGF0aW9ucyBhcmUgcG9zc2libGUuJm5ic3A7IFRoaXMgZnVuY3Rpb25h bGl0eSBjb3VsZCBiZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bmF0dXJhbGx5IGNvbWJpbmVk IHdpdGggd2VpZ2h0ZWQgRUNNUCwgd2l0aCB0aGUgaW1wYWN0IG9mIHRoZSBuZXh0LTxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7aG9wIGNoYW5nZXMgYmVpbmcgcHJvcG9ydGlvbmFsIHRvIHRoZSB3 ZWlnaHQgb2YgdGhlIGdpdmVuIG5leHQtaG9wLjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7VGhl IGRvd25zaWRlIG9mIGNvbnNpc3RlbnQgaGFzaGluZyBpcyBpbmNyZWFzZWQgbG9hZCBvbiBoYXJk d2FyZTxicj4NCiEmbmJzcDsgJm5ic3A7IHJlc291cmNlIHV0aWxpemF0aW9uLCBhcyB0eXBpY2Fs bHkgbW9yZSBzcGFjZSBpcyByZXF1aXJlZCB0bzxicj4NCiEmbmJzcDsgJm5ic3A7IGltcGxlbWVu dCBhIGNvbnNpc3RlbnQtaGFzaGluZyByZWdpb24uPGJyPg0KPGJyPg0KJm5ic3A7IDcuJm5ic3A7 IFJvdXRpbmcgQ29udmVyZ2VuY2UgUHJvcGVydGllczxicj4NCjxicj4NCi0tLSAxMTgyLDExOTkg LS0tLTxicj4NCjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7SXQgaXMgb2Z0ZW4gZGVzaXJhYmxl IHRvIGhhdmUgdGhlIGhhc2hpbmcgZnVuY3Rpb24gdXNlZCBmb3IgRUNNUCB0bzxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7YmUgY29uc2lzdGVudCAoc2VlIFtDT05TLUhBU0hdKSwgdG8gbWluaW1p emUgdGhlIGltcGFjdCBvbiBmbG93IHRvPGJyPg0KISZuYnNwOyAmbmJzcDsgbmV4dC1ob3AgYWZm aW5pdHkgY2hhbmdlcyB3aGVuIGEgbmV4dC1ob3AgaXMgYWRkZWQgb3IgcmVtb3ZlZCB0byBhbjxi cj4NCkVDTVA8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2dyb3VwLiZuYnNwOyBUaGlzIGNvdWxk IGJlIHVzZWQgaWYgdGhlIG5ldHdvcmsgZGV2aWNlIGlzIHVzZWQgYXMgYSBsb2FkPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDtiYWxhbmNlciwgbWFwcGluZyBmbG93cyB0b3dhcmQgbXVsdGlwbGUg ZGVzdGluYXRpb25zIC0gaW4gdGhpcyBjYXNlLDxicj4NCiEmbmJzcDsgJm5ic3A7IGxvc2luZyBv ciBhZGRpbmcgYSBkZXN0aW5hdGlvbiB3aWxsIG5vdCBoYXZlIGEgZGV0cmltZW50YWwgZWZmZWN0 IG9uPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtjdXJyZW50bHkgZXN0YWJsaXNoZWQgZmxvd3Mu Jm5ic3A7IE9uZSBwYXJ0aWN1bGFyIHJlY29tbWVuZGF0aW9uIG9uPGJyPg0KJm5ic3A7ICZuYnNw OyAmbmJzcDtpbXBsZW1lbnRpbmcgY29uc2lzdGVudCBoYXNoaW5nIGlzIHByb3ZpZGVkIGluIFtS RkMyOTkyXSwgdGhvdWdoPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtvdGhlciBpbXBsZW1lbnRh dGlvbnMgYXJlIHBvc3NpYmxlLiZuYnNwOyBUaGlzIGZ1bmN0aW9uYWxpdHkgY291bGQgYmU8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwO25hdHVyYWxseSBjb21iaW5lZCB3aXRoIHdlaWdodGVkIEVD TVAsIHdpdGggdGhlIGltcGFjdCBvZiB0aGUgbmV4dC08YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw O2hvcCBjaGFuZ2VzIGJlaW5nIHByb3BvcnRpb25hbCB0byB0aGUgd2VpZ2h0IG9mIHRoZSBnaXZl biBuZXh0LWhvcC48YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO1RoZSBkb3duc2lkZSBvZiBjb25z aXN0ZW50IGhhc2hpbmcgaXMgaW5jcmVhc2VkIGxvYWQgb24gaGFyZHdhcmU8YnI+DQohJm5ic3A7 ICZuYnNwOyByZXNvdXJjZSB1dGlsaXphdGlvbiwgYXMgdHlwaWNhbGx5IG1vcmUgcmVzb3VyY2Vz IChlLmcuLCBUQ0FNIHNwYWNlKTxicj4NCiEmbmJzcDsgJm5ic3A7IGFyZSByZXF1aXJlZCB0byBp bXBsZW1lbnQgYSBjb25zaXN0ZW50LWhhc2hpbmcgZnVuY3Rpb24uPGJyPg0KPGJyPg0KJm5ic3A7 IDcuJm5ic3A7IFJvdXRpbmcgQ29udmVyZ2VuY2UgUHJvcGVydGllczxicj4NCjxicj4NCioqKioq KioqKioqKioqKjxicj4NCioqKiAxMjA5LDEyMjQgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsgJm5i c3A7ZHJpdmVuIG1lY2hhbmlzbSB0byBvYnRhaW4gdXBkYXRlcyBvbiBJR1Agc3RhdGUgY2hhbmdl cy4mbmJzcDsgVGhlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtwcm9wb3NlZCByb3V0aW5nIGRl c2lnbiBkb2VzIG5vdCB1c2UgYW4gSUdQLCBzbyB0aGUgcmVtYWluaW5nPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDttZWNoYW5pc21zIHRoYXQgY291bGQgYmUgdXNlZCBmb3IgZmF1bHQgZGV0ZWN0 aW9uIGFyZSBCR1Aga2VlcC1hbGl2ZTxicj4NCiEmbmJzcDsgJm5ic3A7IHByb2Nlc3MgKG9yIGFu eSBvdGhlciB0eXBlIG9mIGtlZXAtYWxpdmUgbWVjaGFuaXNtKSBhbmQgbGluay1mYWlsdXJlPGJy Pg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0cmlnZ2Vycy48YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO1JlbHlpbmcgc29sZWx5IG9uIEJHUCBrZWVwLWFsaXZlIHBhY2tldHMgbWF5IHJlc3Vs dCBpbiBoaWdoPGJyPg0KISZuYnNwOyAmbmJzcDsgY29udmVyZ2VuY2UgZGVsYXlzLCBpbiB0aGUg b3JkZXIgb2YgbXVsdGlwbGUgc2Vjb25kcyAob24gbWFueSBCR1A8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO2ltcGxlbWVudGF0aW9ucyB0aGUgbWluaW11bSBjb25maWd1cmFibGUgQkdQIGhvbGQg dGltZXIgdmFsdWUgaXM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3RocmVlIHNlY29uZHMpLiZu YnNwOyBIb3dldmVyLCBtYW55IEJHUCBpbXBsZW1lbnRhdGlvbnMgY2FuIHNodXQgZG93bjxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7bG9jYWwgRUJHUCBwZWVyaW5nIHNlc3Npb25zIGluIHJlc3Bv bnNlIHRvIHRoZSAmcXVvdDtsaW5rIGRvd24mcXVvdDsgZXZlbnQgZm9yPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDt0aGUgb3V0Z29pbmcgaW50ZXJmYWNlIHVzZWQgZm9yIEJHUCBwZWVyaW5nLiZu YnNwOyBUaGlzIGZlYXR1cmUgaXM8YnI+DQohJm5ic3A7ICZuYnNwOyBzb21ldGltZXMgY2FsbGVk IGFzICZxdW90O2Zhc3QgZmFsbG92ZXImcXVvdDsuJm5ic3A7IFNpbmNlIGxpbmtzIGluIG1vZGVy biBkYXRhPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtjZW50ZXJzIGFyZSBwcmVkb21pbmFudGx5 IHBvaW50LXRvLXBvaW50IGZpYmVyIGNvbm5lY3Rpb25zLCBhPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDtwaHlzaWNhbCBpbnRlcmZhY2UgZmFpbHVyZSBpcyBvZnRlbiBkZXRlY3RlZCBpbiBtaWxs aXNlY29uZHMgYW5kPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtzdWJzZXF1ZW50bHkgdHJpZ2dl cnMgYSBCR1AgcmUtY29udmVyZ2VuY2UuPGJyPg0KLS0tIDEyMDksMTIyNCAtLS0tPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDtkcml2ZW4gbWVjaGFuaXNtIHRvIG9idGFpbiB1cGRhdGVzIG9uIElH UCBzdGF0ZSBjaGFuZ2VzLiZuYnNwOyBUaGU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3Byb3Bv c2VkIHJvdXRpbmcgZGVzaWduIGRvZXMgbm90IHVzZSBhbiBJR1AsIHNvIHRoZSByZW1haW5pbmc8 YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO21lY2hhbmlzbXMgdGhhdCBjb3VsZCBiZSB1c2VkIGZv ciBmYXVsdCBkZXRlY3Rpb24gYXJlIEJHUCBrZWVwLWFsaXZlPGJyPg0KISZuYnNwOyAmbmJzcDsg dGltZS1vdXQgKG9yIGFueSBvdGhlciB0eXBlIG9mIGtlZXAtYWxpdmUgbWVjaGFuaXNtKSBhbmQg bGluay1mYWlsdXJlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0cmlnZ2Vycy48YnI+DQo8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwO1JlbHlpbmcgc29sZWx5IG9uIEJHUCBrZWVwLWFsaXZlIHBh Y2tldHMgbWF5IHJlc3VsdCBpbiBoaWdoPGJyPg0KISZuYnNwOyAmbmJzcDsgY29udmVyZ2VuY2Ug ZGVsYXlzLCBvbiB0aGUgb3JkZXIgb2YgbXVsdGlwbGUgc2Vjb25kcyAob24gbWFueSBCR1A8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwO2ltcGxlbWVudGF0aW9ucyB0aGUgbWluaW11bSBjb25maWd1 cmFibGUgQkdQIGhvbGQgdGltZXIgdmFsdWUgaXM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3Ro cmVlIHNlY29uZHMpLiZuYnNwOyBIb3dldmVyLCBtYW55IEJHUCBpbXBsZW1lbnRhdGlvbnMgY2Fu IHNodXQgZG93bjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bG9jYWwgRUJHUCBwZWVyaW5nIHNl c3Npb25zIGluIHJlc3BvbnNlIHRvIHRoZSAmcXVvdDtsaW5rIGRvd24mcXVvdDsgZXZlbnQgZm9y PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0aGUgb3V0Z29pbmcgaW50ZXJmYWNlIHVzZWQgZm9y IEJHUCBwZWVyaW5nLiZuYnNwOyBUaGlzIGZlYXR1cmUgaXM8YnI+DQohJm5ic3A7ICZuYnNwOyBz b21ldGltZXMgY2FsbGVkICZxdW90O2Zhc3QgZmFsbG92ZXImcXVvdDsuJm5ic3A7IFNpbmNlIGxp bmtzIGluIG1vZGVybiBkYXRhPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtjZW50ZXJzIGFyZSBw cmVkb21pbmFudGx5IHBvaW50LXRvLXBvaW50IGZpYmVyIGNvbm5lY3Rpb25zLCBhPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDtwaHlzaWNhbCBpbnRlcmZhY2UgZmFpbHVyZSBpcyBvZnRlbiBkZXRl Y3RlZCBpbiBtaWxsaXNlY29uZHMgYW5kPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtzdWJzZXF1 ZW50bHkgdHJpZ2dlcnMgYSBCR1AgcmUtY29udmVyZ2VuY2UuPGJyPg0KKioqKioqKioqKioqKioq PGJyPg0KKioqIDEyMzYsMTI0MiAqKioqPGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtB bHRlcm5hdGl2ZWx5LCBzb21lIHBsYXRmb3JtcyBtYXkgc3VwcG9ydCBCaWRpcmVjdGlvbmFsIEZv cndhcmRpbmc8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0RldGVjdGlvbiAoQkZEKSBbUkZDNTg4 MF0gdG8gYWxsb3cgZm9yIHN1Yi1zZWNvbmQgZmFpbHVyZSBkZXRlY3Rpb248YnI+DQohJm5ic3A7 ICZuYnNwOyBhbmQgZmF1bHQgc2lnbmFsaW5nIHRvIHRoZSBCR1AgcHJvY2Vzcy4mbmJzcDsgSG93 ZXZlciwgdXNlIG9mIGVpdGhlciBvZjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7dGhlc2UgcHJl c2VudHMgYWRkaXRpb25hbCByZXF1aXJlbWVudHMgdG8gdmVuZG9yIHNvZnR3YXJlIGFuZDxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7cG9zc2libHkgaGFyZHdhcmUsIGFuZCBtYXkgY29udHJhZGlj dCBSRVExLiZuYnNwOyBVbnRpbCByZWNlbnRseSB3aXRoPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz cDtbUkZDNzEzMF0sIEJGRCBhbHNvIGRpZCBub3QgYWxsb3cgZGV0ZWN0aW9uIG9mIGEgc2luZ2xl IG1lbWJlciBsaW5rPGJyPg0KLS0tIDEyMzYsMTI0MiAtLS0tPGJyPg0KPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDtBbHRlcm5hdGl2ZWx5LCBzb21lIHBsYXRmb3JtcyBtYXkgc3VwcG9ydCBCaWRp cmVjdGlvbmFsIEZvcndhcmRpbmc8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0RldGVjdGlvbiAo QkZEKSBbUkZDNTg4MF0gdG8gYWxsb3cgZm9yIHN1Yi1zZWNvbmQgZmFpbHVyZSBkZXRlY3Rpb248 YnI+DQohJm5ic3A7ICZuYnNwOyBhbmQgZmF1bHQgc2lnbmFsaW5nIHRvIHRoZSBCR1AgcHJvY2Vz cy4mbmJzcDsgSG93ZXZlciwgdGhlIHVzZSBvZiBlaXRoZXIgb2Y8YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO3RoZXNlIHByZXNlbnRzIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnRzIHRvIHZlbmRvciBz b2Z0d2FyZSBhbmQ8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3Bvc3NpYmx5IGhhcmR3YXJlLCBh bmQgbWF5IGNvbnRyYWRpY3QgUkVRMS4mbmJzcDsgVW50aWwgcmVjZW50bHkgd2l0aDxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7W1JGQzcxMzBdLCBCRkQgYWxzbyBkaWQgbm90IGFsbG93IGRldGVj dGlvbiBvZiBhIHNpbmdsZSBtZW1iZXIgbGluazxicj4NCioqKioqKioqKioqKioqKjxicj4NCioq KiAxMjQ1LDEyNTEgKioqKjxicj4NCjxicj4NCiZuYnNwOyA3LjIuJm5ic3A7IEV2ZW50IFByb3Bh Z2F0aW9uIFRpbWluZzxicj4NCjxicj4NCiEmbmJzcDsgJm5ic3A7IEluIHRoZSBwcm9wb3NlZCBk ZXNpZ24gdGhlIGltcGFjdCBvZiBCR1AgTWluaW11bSBSb3V0ZSBBZHZlcnRpc2VtZW50PGJyPg0K Jm5ic3A7ICZuYnNwOyAmbmJzcDtJbnRlcnZhbCAoTVJBSSkgdGltZXIgKFNlZSBzZWN0aW9uIDku Mi4xLjEgb2YgW1JGQzQyNzFdKSBzaG91bGQgYmU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2Nv bnNpZGVyZWQuJm5ic3A7IFBlciB0aGUgc3RhbmRhcmQgaXQgaXMgcmVxdWlyZWQgZm9yIEJHUCBp bXBsZW1lbnRhdGlvbnM8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3RvIHNwYWNlIG91dCBjb25z ZWN1dGl2ZSBCR1AgVVBEQVRFIG1lc3NhZ2VzIGJ5IGF0IGxlYXN0IE1SQUk8YnI+DQotLS0gMTI0 NSwxMjUxIC0tLS08YnI+DQo8YnI+DQombmJzcDsgNy4yLiZuYnNwOyBFdmVudCBQcm9wYWdhdGlv biBUaW1pbmc8YnI+DQo8YnI+DQohJm5ic3A7ICZuYnNwOyBJbiB0aGUgcHJvcG9zZWQgZGVzaWdu IHRoZSBpbXBhY3Qgb2YgdGhlIEJHUCBNaW5pbXVtIFJvdXRlPGJyPg0KQWR2ZXJ0aXNlbWVudDxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7SW50ZXJ2YWwgKE1SQUkpIHRpbWVyIChTZWUgc2VjdGlv biA5LjIuMS4xIG9mIFtSRkM0MjcxXSkgc2hvdWxkIGJlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJz cDtjb25zaWRlcmVkLiZuYnNwOyBQZXIgdGhlIHN0YW5kYXJkIGl0IGlzIHJlcXVpcmVkIGZvciBC R1AgaW1wbGVtZW50YXRpb25zPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0byBzcGFjZSBvdXQg Y29uc2VjdXRpdmUgQkdQIFVQREFURSBtZXNzYWdlcyBieSBhdCBsZWFzdCBNUkFJPGJyPg0KKioq KioqKioqKioqKioqPGJyPg0KKioqIDEyNTgsMTI3MCAqKioqPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDtJbiBhIENsb3MgdG9wb2xvZ3kgZWFjaCBFQkdQIHNwZWFrZXIgdHlwaWNhbGx5IGhhcyBl aXRoZXIgb25lIHBhdGg8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyhUaWVyLTIgZGV2aWNlcyBk b24ndCBhY2NlcHQgcGF0aHMgZnJvbSBvdGhlciBUaWVyLTIgaW4gdGhlIHNhbWU8YnI+DQombmJz cDsgJm5ic3A7ICZuYnNwO2NsdXN0ZXIgZHVlIHRvIHNhbWUgQVNOKSBvciBOIHBhdGhzIGZvciB0 aGUgc2FtZSBwcmVmaXgsIHdoZXJlIE4gaXMgYTxicj4NCiEmbmJzcDsgJm5ic3A7IHNpZ25pZmlj YW50bHkgbGFyZ2UgbnVtYmVyLCBlLmcuJm5ic3A7IE49MzIgKHRoZSBFQ01QIGZhbi1vdXQgdG8g dGhlIG5leHQ8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO1RpZXIpLiZuYnNwOyBUaGVyZWZvcmUs IGlmIGEgbGluayBmYWlscyB0byBhbm90aGVyIGRldmljZSBmcm9tIHdoaWNoIGE8YnI+DQohJm5i c3A7ICZuYnNwOyBwYXRoIGlzIHJlY2VpdmVkIHRoZXJlIGlzIGVpdGhlciBubyBiYWNrdXAgcGF0 aCBhdCBhbGwgKGUuZy4gZnJvbTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7cGVyc3BlY3RpdmUg b2YgYSBUaWVyLTIgc3dpdGNoIGxvc2luZyBsaW5rIHRvIGEgVGllci0zIGRldmljZSksIG9yPGJy Pg0KISZuYnNwOyAmbmJzcDsgdGhlIGJhY2t1cCBpcyByZWFkaWx5IGF2YWlsYWJsZSBpbiBCR1Ag TG9jLVJJQiAoZS5nLiBmcm9tIHBlcnNwZWN0aXZlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtv ZiBhIFRpZXItMiBkZXZpY2UgbG9zaW5nIGxpbmsgdG8gYSBUaWVyLTEgc3dpdGNoKS4mbmJzcDsg SW4gdGhlIGZvcm1lcjxicj4NCiEmbmJzcDsgJm5ic3A7IGNhc2UsIHRoZSBCR1Agd2l0aGRyYXdh bCBhbm5vdW5jZW1lbnQgd2lsbCBwcm9wYWdhdGUgdW4tZGVsYXllZCBhbmQ8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwO3RyaWdnZXIgcmUtY29udmVyZ2VuY2Ugb24gYWZmZWN0ZWQgZGV2aWNlcy4m bmJzcDsgSW4gdGhlIGxhdHRlciBjYXNlLCB0aGU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2Jl c3QtcGF0aCB3aWxsIGJlIHJlLWV2YWx1YXRlZCBhbmQgdGhlIGxvY2FsIEVDTVAgZ3JvdXAgY29y cmVzcG9uZGluZzxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7dG8gdGhlIG5ldyBuZXh0LWhvcCBz ZXQgY2hhbmdlZC4mbmJzcDsgSWYgdGhlIEJHUCBwYXRoIHdhcyB0aGUgYmVzdC1wYXRoPGJyPg0K LS0tIDEyNTgsMTI3MCAtLS0tPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtJbiBhIENsb3MgdG9w b2xvZ3kgZWFjaCBFQkdQIHNwZWFrZXIgdHlwaWNhbGx5IGhhcyBlaXRoZXIgb25lIHBhdGg8YnI+ DQombmJzcDsgJm5ic3A7ICZuYnNwOyhUaWVyLTIgZGV2aWNlcyBkb24ndCBhY2NlcHQgcGF0aHMg ZnJvbSBvdGhlciBUaWVyLTIgaW4gdGhlIHNhbWU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2Ns dXN0ZXIgZHVlIHRvIHNhbWUgQVNOKSBvciBOIHBhdGhzIGZvciB0aGUgc2FtZSBwcmVmaXgsIHdo ZXJlIE4gaXMgYTxicj4NCiEmbmJzcDsgJm5ic3A7IHNpZ25pZmljYW50bHkgbGFyZ2UgbnVtYmVy LCBlLmcuLCZuYnNwOyBOPTMyICh0aGUgRUNNUCBmYW4tb3V0IHRvIHRoZSBuZXh0PGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDtUaWVyKS4mbmJzcDsgVGhlcmVmb3JlLCBpZiBhIGxpbmsgZmFpbHMg dG8gYW5vdGhlciBkZXZpY2UgZnJvbSB3aGljaCBhPGJyPg0KISZuYnNwOyAmbmJzcDsgcGF0aCBp cyByZWNlaXZlZCB0aGVyZSBpcyBlaXRoZXIgbm8gYmFja3VwIHBhdGggYXQgYWxsIChlLmcuLCBm cm9tIHRoZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7cGVyc3BlY3RpdmUgb2YgYSBUaWVyLTIg c3dpdGNoIGxvc2luZyBsaW5rIHRvIGEgVGllci0zIGRldmljZSksIG9yPGJyPg0KISZuYnNwOyAm bmJzcDsgdGhlIGJhY2t1cCBpcyByZWFkaWx5IGF2YWlsYWJsZSBpbiBCR1AgTG9jLVJJQiAoZS5n LiwgZnJvbSBwZXJzcGVjdGl2ZTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7b2YgYSBUaWVyLTIg ZGV2aWNlIGxvc2luZyBsaW5rIHRvIGEgVGllci0xIHN3aXRjaCkuJm5ic3A7IEluIHRoZSBmb3Jt ZXI8YnI+DQohJm5ic3A7ICZuYnNwOyBjYXNlLCB0aGUgQkdQIHdpdGhkcmF3YWwgYW5ub3VuY2Vt ZW50IHdpbGwgcHJvcGFnYXRlIHdpdGhvdXQgZGVsYXkgYW5kPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDt0cmlnZ2VyIHJlLWNvbnZlcmdlbmNlIG9uIGFmZmVjdGVkIGRldmljZXMuJm5ic3A7IElu IHRoZSBsYXR0ZXIgY2FzZSwgdGhlPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtiZXN0LXBhdGgg d2lsbCBiZSByZS1ldmFsdWF0ZWQgYW5kIHRoZSBsb2NhbCBFQ01QIGdyb3VwIGNvcnJlc3BvbmRp bmc8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3RvIHRoZSBuZXcgbmV4dC1ob3Agc2V0IGNoYW5n ZWQuJm5ic3A7IElmIHRoZSBCR1AgcGF0aCB3YXMgdGhlIGJlc3QtcGF0aDxicj4NCioqKioqKioq KioqKioqKjxicj4NCioqKiAxMjc5LDEyODUgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7 c2l0dWF0aW9uIHdoZW4gYSBsaW5rIGJldHdlZW4gVGllci0zIGFuZCBUaWVyLTIgZGV2aWNlIGZh aWxzLCB0aGU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO1RpZXItMiBkZXZpY2Ugd2lsbCBzZW5k IEJHUCBVUERBVEUgbWVzc2FnZXMgdG8gYWxsIHVwc3RyZWFtIFRpZXItMTxicj4NCiZuYnNwOyAm bmJzcDsgJm5ic3A7ZGV2aWNlcywgd2l0aGRyYXdpbmcgdGhlIGFmZmVjdGVkIHByZWZpeGVzLiZu YnNwOyBUaGUgVGllci0xIGRldmljZXMsIGluPGJyPg0KISZuYnNwOyAmbmJzcDsgdHVybiwgd2ls bCByZWxheSB0aG9zZSBtZXNzYWdlcyB0byBhbGwgZG93bnN0cmVhbSBUaWVyLTIgZGV2aWNlczxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7KGV4Y2VwdCBmb3IgdGhlIG9yaWdpbmF0b3IpLiZuYnNw OyBUaWVyLTIgZGV2aWNlcyBvdGhlciB0aGFuIHRoZSBvbmU8YnI+DQombmJzcDsgJm5ic3A7ICZu YnNwO29yaWdpbmF0aW5nIHRoZSBVUERBVEUgc2hvdWxkIHRoZW4gd2FpdCBmb3IgQUxMIHVwc3Ry ZWFtIFRpZXItMTxicj4NCjxicj4NCi0tLSAxMjc5LDEyODUgLS0tLTxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7c2l0dWF0aW9uIHdoZW4gYSBsaW5rIGJldHdlZW4gVGllci0zIGFuZCBUaWVyLTIg ZGV2aWNlIGZhaWxzLCB0aGU8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO1RpZXItMiBkZXZpY2Ug d2lsbCBzZW5kIEJHUCBVUERBVEUgbWVzc2FnZXMgdG8gYWxsIHVwc3RyZWFtIFRpZXItMTxicj4N CiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGV2aWNlcywgd2l0aGRyYXdpbmcgdGhlIGFmZmVjdGVkIHBy ZWZpeGVzLiZuYnNwOyBUaGUgVGllci0xIGRldmljZXMsIGluPGJyPg0KISZuYnNwOyAmbmJzcDsg dHVybiwgd2lsbCByZWxheSB0aGVzZSBtZXNzYWdlcyB0byBhbGwgZG93bnN0cmVhbSBUaWVyLTIg ZGV2aWNlczxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7KGV4Y2VwdCBmb3IgdGhlIG9yaWdpbmF0 b3IpLiZuYnNwOyBUaWVyLTIgZGV2aWNlcyBvdGhlciB0aGFuIHRoZSBvbmU8YnI+DQombmJzcDsg Jm5ic3A7ICZuYnNwO29yaWdpbmF0aW5nIHRoZSBVUERBVEUgc2hvdWxkIHRoZW4gd2FpdCBmb3Ig QUxMIHVwc3RyZWFtIFRpZXItMTxicj4NCjxicj4NCioqKioqKioqKioqKioqKjxicj4NCioqKiAx MzA3LDEzMTMgKioqKjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZmVhdHVyZXMgdGhhdCB2ZW5k b3JzIGluY2x1ZGUgdG8gcmVkdWNlIHRoZSBjb250cm9sIHBsYW5lIGltcGFjdCBvZjxicj4NCiZu YnNwOyAmbmJzcDsgJm5ic3A7cmFwaWRseSBmbGFwcGluZyBwcmVmaXhlcy4mbmJzcDsgSG93ZXZl ciwgZHVlIHRvIGlzc3VlcyBkZXNjcmliZWQgd2l0aDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7 ZmFsc2UgcG9zaXRpdmVzIGluIHRoZXNlIGltcGxlbWVudGF0aW9ucyBlc3BlY2lhbGx5IHVuZGVy IHN1Y2g8YnI+DQohJm5ic3A7ICZuYnNwOyAmcXVvdDtkaXNwZXJzaW9uJnF1b3Q7IGV2ZW50cywg aXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHR1cm4gdGhpcyBmZWF0dXJlIG9uIGluPGJyPg0KJm5i c3A7ICZuYnNwOyAmbmJzcDt0aGlzIGRlc2lnbi4mbmJzcDsgTW9yZSBiYWNrZ3JvdW5kIGFuZCBp c3N1ZXMgd2l0aCAmcXVvdDtyb3V0ZSBmbGFwIGRhbXBlbmluZyZxdW90Ozxicj4NCiZuYnNwOyAm bmJzcDsgJm5ic3A7YW5kIHBvc3NpYmxlIGltcGxlbWVudGF0aW9uIGNoYW5nZXMgdGhhdCBjb3Vs ZCBhZmZlY3QgdGhpcyBhcmUgd2VsbDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGVzY3JpYmVk IGluIFtSRkM3MTk2XS48YnI+DQotLS0gMTMwNywxMzEzIC0tLS08YnI+DQombmJzcDsgJm5ic3A7 ICZuYnNwO2ZlYXR1cmVzIHRoYXQgdmVuZG9ycyBpbmNsdWRlIHRvIHJlZHVjZSB0aGUgY29udHJv bCBwbGFuZSBpbXBhY3Qgb2Y8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3JhcGlkbHkgZmxhcHBp bmcgcHJlZml4ZXMuJm5ic3A7IEhvd2V2ZXIsIGR1ZSB0byBpc3N1ZXMgZGVzY3JpYmVkIHdpdGg8 YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2ZhbHNlIHBvc2l0aXZlcyBpbiB0aGVzZSBpbXBsZW1l bnRhdGlvbnMgZXNwZWNpYWxseSB1bmRlciBzdWNoPGJyPg0KISZuYnNwOyAmbmJzcDsgJnF1b3Q7 ZGlzcGVyc2lvbiZxdW90OyBldmVudHMsIGl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byBlbmFibGUg dGhpcyBmZWF0dXJlIGluPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0aGlzIGRlc2lnbi4mbmJz cDsgTW9yZSBiYWNrZ3JvdW5kIGFuZCBpc3N1ZXMgd2l0aCAmcXVvdDtyb3V0ZSBmbGFwIGRhbXBl bmluZyZxdW90Ozxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7YW5kIHBvc3NpYmxlIGltcGxlbWVu dGF0aW9uIGNoYW5nZXMgdGhhdCBjb3VsZCBhZmZlY3QgdGhpcyBhcmUgd2VsbDxicj4NCiZuYnNw OyAmbmJzcDsgJm5ic3A7ZGVzY3JpYmVkIGluIFtSRkM3MTk2XS48YnI+DQoqKioqKioqKioqKioq Kio8YnI+DQoqKiogMTMxNiwxMzI0ICoqKio8YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNw O0EgbmV0d29yayBpcyBkZWNsYXJlZCB0byBjb252ZXJnZSBpbiByZXNwb25zZSB0byBhIGZhaWx1 cmUgb25jZSBhbGw8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2RldmljZXMgd2l0aGluIHRoZSBm YWlsdXJlIGltcGFjdCBzY29wZSBhcmUgbm90aWZpZWQgb2YgdGhlIGV2ZW50IGFuZDxicj4NCiEm bmJzcDsgJm5ic3A7IGhhdmUgcmUtY2FsY3VsYXRlZCB0aGVpciBSSUIncyBhbmQgY29uc2VxdWVu dGx5IHVwZGF0ZWQgdGhlaXIgRklCJ3MuPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtMYXJnZXIg ZmFpbHVyZSBpbXBhY3Qgc2NvcGUgdHlwaWNhbGx5IG1lYW5zIHNsb3dlciBjb252ZXJnZW5jZSBz aW5jZTxicj4NCiEmbmJzcDsgJm5ic3A7IG1vcmUgZGV2aWNlcyBoYXZlIHRvIGJlIG5vdGlmaWVk LCBhbmQgYWRkaXRpb25hbGx5IHJlc3VsdHMgaW4gYSBsZXNzPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDtzdGFibGUgbmV0d29yay4mbmJzcDsgSW4gdGhpcyBzZWN0aW9uIHdlIGRlc2NyaWJlIEJH UCdzIGFkdmFudGFnZXMgb3Zlcjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7bGluay1zdGF0ZSBy b3V0aW5nIHByb3RvY29scyBpbiByZWR1Y2luZyBmYWlsdXJlIGltcGFjdCBzY29wZSBmb3IgYTxi cj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7Q2xvcyB0b3BvbG9neS48YnI+DQotLS0gMTMxNiwxMzI0 IC0tLS08YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO0EgbmV0d29yayBpcyBkZWNsYXJl ZCB0byBjb252ZXJnZSBpbiByZXNwb25zZSB0byBhIGZhaWx1cmUgb25jZSBhbGw8YnI+DQombmJz cDsgJm5ic3A7ICZuYnNwO2RldmljZXMgd2l0aGluIHRoZSBmYWlsdXJlIGltcGFjdCBzY29wZSBh cmUgbm90aWZpZWQgb2YgdGhlIGV2ZW50IGFuZDxicj4NCiEmbmJzcDsgJm5ic3A7IGhhdmUgcmUt Y2FsY3VsYXRlZCB0aGVpciBSSUJzIGFuZCBjb25zZXF1ZW50bHkgdXBkYXRlZCB0aGVpciBGSUJz Ljxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7TGFyZ2VyIGZhaWx1cmUgaW1wYWN0IHNjb3BlIHR5 cGljYWxseSBtZWFucyBzbG93ZXIgY29udmVyZ2VuY2Ugc2luY2U8YnI+DQohJm5ic3A7ICZuYnNw OyBtb3JlIGRldmljZXMgaGF2ZSB0byBiZSBub3RpZmllZCwgYW5kIHJlc3VsdHMgaW4gYSBsZXNz PGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtzdGFibGUgbmV0d29yay4mbmJzcDsgSW4gdGhpcyBz ZWN0aW9uIHdlIGRlc2NyaWJlIEJHUCdzIGFkdmFudGFnZXMgb3Zlcjxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7bGluay1zdGF0ZSByb3V0aW5nIHByb3RvY29scyBpbiByZWR1Y2luZyBmYWlsdXJl IGltcGFjdCBzY29wZSBmb3IgYTxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7Q2xvcyB0b3BvbG9n eS48YnI+DQoqKioqKioqKioqKioqKio8YnI+DQoqKiogMTMyNywxMzM1ICoqKio8YnI+DQombmJz cDsgJm5ic3A7ICZuYnNwO3RoZSBiZXN0IHBhdGggZnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZiB0 aGUgbG9jYWwgcm91dGVyIGlzIHNlbnQgdG88YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO25laWdo Ym9ycy4mbmJzcDsgQXMgc3VjaCwgc29tZSBmYWlsdXJlcyBhcmUgbWFza2VkIGlmIHRoZSBsb2Nh bCBub2RlIGNhbjxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7aW1tZWRpYXRlbHkgZmluZCBhIGJh Y2t1cCBwYXRoIGFuZCBkb2VzIG5vdCBoYXZlIHRvIHNlbmQgYW55IHVwZGF0ZXM8YnI+DQohJm5i c3A7ICZuYnNwOyBmdXJ0aGVyLiZuYnNwOyBOb3RpY2UgdGhhdCBpbiB0aGUgd29yc3QgY2FzZSBB TEwgZGV2aWNlcyBpbiBhIGRhdGEgY2VudGVyPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDt0b3Bv bG9neSBoYXZlIHRvIGVpdGhlciB3aXRoZHJhdyBhIHByZWZpeCBjb21wbGV0ZWx5IG9yIHVwZGF0 ZSB0aGU8YnI+DQohJm5ic3A7ICZuYnNwOyBFQ01QIGdyb3VwcyBpbiB0aGUgRklCLiZuYnNwOyBI b3dldmVyLCBtYW55IGZhaWx1cmVzIHdpbGwgbm90IHJlc3VsdCBpbjxicj4NCiZuYnNwOyAmbmJz cDsgJm5ic3A7c3VjaCBhIHdpZGUgaW1wYWN0LiZuYnNwOyBUaGVyZSBhcmUgdHdvIG1haW4gZmFp bHVyZSB0eXBlcyB3aGVyZSBpbXBhY3Q8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3Njb3BlIGlz IHJlZHVjZWQ6PGJyPg0KPGJyPg0KLS0tIDEzMjcsMTMzNSAtLS0tPGJyPg0KJm5ic3A7ICZuYnNw OyAmbmJzcDt0aGUgYmVzdCBwYXRoIGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgdGhlIGxvY2Fs IHJvdXRlciBpcyBzZW50IHRvPGJyPg0KJm5ic3A7ICZuYnNwOyAmbmJzcDtuZWlnaGJvcnMuJm5i c3A7IEFzIHN1Y2gsIHNvbWUgZmFpbHVyZXMgYXJlIG1hc2tlZCBpZiB0aGUgbG9jYWwgbm9kZSBj YW48YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO2ltbWVkaWF0ZWx5IGZpbmQgYSBiYWNrdXAgcGF0 aCBhbmQgZG9lcyBub3QgaGF2ZSB0byBzZW5kIGFueSB1cGRhdGVzPGJyPg0KISZuYnNwOyAmbmJz cDsgZnVydGhlci4mbmJzcDsgTm90aWNlIHRoYXQgaW4gdGhlIHdvcnN0IGNhc2UsIGFsbCBkZXZp Y2VzIGluIGEgZGF0YSBjZW50ZXI8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO3RvcG9sb2d5IGhh dmUgdG8gZWl0aGVyIHdpdGhkcmF3IGEgcHJlZml4IGNvbXBsZXRlbHkgb3IgdXBkYXRlIHRoZTxi cj4NCiEmbmJzcDsgJm5ic3A7IEVDTVAgZ3JvdXBzIGluIHRoZWlyIEZJQnMuJm5ic3A7IEhvd2V2 ZXIsIG1hbnkgZmFpbHVyZXMgd2lsbCBub3QgcmVzdWx0IGluPGJyPg0KJm5ic3A7ICZuYnNwOyAm bmJzcDtzdWNoIGEgd2lkZSBpbXBhY3QuJm5ic3A7IFRoZXJlIGFyZSB0d28gbWFpbiBmYWlsdXJl IHR5cGVzIHdoZXJlIGltcGFjdDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7c2NvcGUgaXMgcmVk dWNlZDo8YnI+DQo8YnI+DQoqKioqKioqKioqKioqKio8YnI+DQoqKiogMTM1NywxMzY3ICoqKio8 YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwO28mbmJzcDsgRmFpbHVyZSBvZiBhIFRpZXIt MSBkZXZpY2U6IEluIHRoaXMgY2FzZSwgYWxsIFRpZXItMiBkZXZpY2VzPGJyPg0KJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IGRpcmVjdGx5IGF0dGFjaGVkIHRvIHRoZSBmYWlsZWQgbm9kZSB3 aWxsIGhhdmUgdG8gdXBkYXRlIHRoZWlyPGJyPg0KISZuYnNwOyAmbmJzcDsgJ